Added dynamic lists and fixed timezone issue

- **Today:** Display tasks of today and overdue
- **Tomorrow:** Tasks scheduled for tomorrow
- **Upcoming:** Tasks scheduled for next 7 days
- Keep "Today" focused on starting
- Order Tasks of dynamic list by Project
- Parsing date input using local TZ - Fixes #7
This commit is contained in:
Anis Ahmad
2020-07-04 16:48:45 +06:00
parent c1f11c3730
commit 1508edce6f
6 changed files with 102 additions and 14 deletions

View File

@@ -30,8 +30,18 @@ func (t *taskRepository) GetAllByProject(project model.Project) ([]model.Task, e
return tasks, err
}
func (t *taskRepository) GetAllByDate(from, to time.Time) ([]model.Task, error) {
panic("implement me")
func (t *taskRepository) GetAllByDate(date time.Time) ([]model.Task, error) {
var tasks []model.Task
err := t.DB.Find("DueDate", getRoundedDueDate(date), &tasks)
return tasks, err
}
func (t *taskRepository) GetAllByDateRange(from, to time.Time) ([]model.Task, error) {
var tasks []model.Task
err := t.DB.Range("DueDate", getRoundedDueDate(from), getRoundedDueDate(to), &tasks)
return tasks, err
}
func (t *taskRepository) GetByID(ID string) (model.Task, error) {
@@ -66,3 +76,11 @@ func (t *taskRepository) UpdateField(task *model.Task, field string, value inter
func (t *taskRepository) Delete(task *model.Task) error {
return t.DB.DeleteStruct(task)
}
func getRoundedDueDate(date time.Time) int64 {
if date.IsZero() {
return 0
}
return date.Unix()
}

View File

@@ -10,7 +10,8 @@ import (
type TaskRepository interface {
GetAll() ([]model.Task, error)
GetAllByProject(project model.Project) ([]model.Task, error)
GetAllByDate(from, to time.Time) ([]model.Task, error)
GetAllByDate(date time.Time) ([]model.Task, error)
GetAllByDateRange(from, to time.Time) ([]model.Task, error)
GetByID(ID string) (model.Task, error)
GetByUUID(UUID string) (model.Task, error)
Create(project model.Project, title, details, UUID string, dueDate int64) (model.Task, error)