Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Goal & Task에서 time duration feature update #28

Open
jiyewise opened this issue Nov 29, 2020 · 3 comments
Open

Goal & Task에서 time duration feature update #28

jiyewise opened this issue Nov 29, 2020 · 3 comments
Labels
backend documentation Improvements or additions to documentation enhancement New feature or request frontend UI/UX

Comments

@jiyewise
Copy link
Contributor

jiyewise commented Nov 29, 2020

현재는 goal이나 task를 만든 날짜가 자동으로 goal / task의 시작 날짜로 설정이 되었지만,
사용자가 미래의 goal이나 task를 미리 만들고 싶을 수 있는 등 시간 설정에서 사용자에게 좀더 유동성을 주기 위해 backend goal/task에 'start_at' feature를 추가했고 아래와 같은 feature update를 진행했습니다.

  1. Goal feature update
    즉 현재 날짜가 11/29일이어도, 12/21-2/20 (겨울방학 때 할일 goal을 미리 만든다던지) duration을 가진 goal을 만들 수 있습니다.
    이때 달력에서 11/29일을 선택하면 해당 goal이 시작 전이므로 안 뜨지만 12/22를 선택하면 해당 goal이 뜹니다.
    start_at는 유저가 아무 설정도 안할 경우 default로 오늘 날짜 00:00:00 값으로 timestamp 형태로 백엔드에 보내집니다. 즉 start_at가 none이 될 일은 없습니다.

  2. Task feature update - date
    예를 들어 12/21-2/20 goal 내에서 12/21-30에만 해당하는 task를 만들고 싶다고 할 때, add task form에서 start date 12/21을 고르고 deadline에서 12/30을 고르면 됩니다. 이때 달력에서 12/31을 선택하면 해당 task는 뜨지 않습니다.
    Recurrent한 경우 (매주 월요일에만 한다던지) 에만 deadline이 있고 일시적인 task는 deadline이 없는 걸로 처음에 스프린트 때 합의가 되었었는데 이 합의를 반영해서 day_of_week가 비어 있으면 start date가 '일시적인 날' 이 되고 deadline은 자동으로 start date와 같아집니다. 이때 day_of_week가 비어 있으면 자동으로 설정된 deadline은 readOnly가 되어 유저가 프론트에서 임의로 바꿀 수 없습니다. day of week를 추가하면 readonly가 해제되어 유저가 데드라인을 설정할 수 있고요.
    그리고 task start date가 goal start date보다 앞지른다거나 (12/21에 시작된 goal이면 그 goal의 task는 12/21부터 가능) task deadline을 goal deadline보다 늦게 유저가 고를 경우 alert 창이 뜨고 자동으로 goal deadline으로 설정되도록 해 놓았습니다.

  3. Task feature update - weekday
    Task가 12/21-30, 매주 토요일과 일요일로 설정되어 있다면 해당 기간이어도 요일이 다르면 task가 메인 페이지에서 보여지지 않습니다. 예를 들어 오늘 날짜가 12/21-30 사이에 있지만 금요일이면 토, 일 설정된 task는 안 보이게 해 놓았습니다.
    -> 이 부분은 요일이 다르면 안보이게 할지 아니면 색을 연한 회색 등으로 다르게 할지 좀더 고민해볼게요.
    -> taskbar에 해당 task가 언제 시작해서 언제 끝나는지, 그리고 무슨무슨 요일에 반복되는지 뜨게 할 예정입니다. 이건 아마 오늘 할 거 같네요.

프론트와 백엔드 모두 이 feature를 반영해서 수정하였으며 프론트 상에서 잘 작동하는지 확인하였습니다.
다만 기존의 goal들을 get할때 start_at이 없으므로 에러가 날 수 있으니 먼저 django admin으로 예전에 추가한 goal들을 삭제한 후 테스트 해보시길 바랍니다.
테스팅이 꼬일 것 같아 일단 develop에는 푸시하지 않고 jiye-frontend-dateChanges 브랜치에 푸시해 두었습니다.

@jiyewise jiyewise added documentation Improvements or additions to documentation enhancement New feature or request frontend UI/UX labels Nov 29, 2020
@jiyewise
Copy link
Contributor Author

jiyewise commented Nov 29, 2020

time data는 모두 timestamp 형태로 백엔드에 보내집니다.
그리고 goal의 경우 edit goal에서 goal deadline과 start_at 모두 바꿀 수 있습니다.

@jiyewise
Copy link
Contributor Author

Update:
default에서는 현재 해당하는 요일 & 날짜의 task만 보이게 해 두었고, show all task라는 toggle button을 누르면 현재 해당 없는 task까지 보이도록 해 두었습니다.

@jiyewise
Copy link
Contributor Author

jiyewise commented Nov 29, 2020

Backend response에도 수정사항을 반영하였습니다.

  1. POST 후 response & GET response에서 모두 timestamp로 반환

Develop 브랜치에서 pull 하시면 확인 가능합니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend documentation Improvements or additions to documentation enhancement New feature or request frontend UI/UX
Projects
None yet
Development

No branches or pull requests

1 participant