fix: Review findings
continuous-integration/drone/pr Build is passing
Details
continuous-integration/drone/pr Build is passing
Details
This commit is contained in:
parent
333832293d
commit
7f9e70cc1f
|
@ -973,13 +973,8 @@ func createTask(s *xorm.Session, t *Task, a web.Auth, updateAssignees bool) (err
|
|||
}
|
||||
}
|
||||
|
||||
// Deprecated: the if clause can be removed when ReminderDates will be removed
|
||||
if t.ReminderDates != nil {
|
||||
t.overwriteRemindersWithReminderDates(t.ReminderDates)
|
||||
}
|
||||
|
||||
// Update the reminders
|
||||
if err := t.updateReminders(s, t.Reminders, t.DueDate, t.StartDate, t.EndDate); err != nil {
|
||||
if err := t.updateReminders(s, t); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -1031,7 +1026,7 @@ func (t *Task) Update(s *xorm.Session, a web.Auth) (err error) {
|
|||
t.ListID = ot.ListID
|
||||
}
|
||||
|
||||
// Get the reminders
|
||||
// Get the stored reminders
|
||||
reminders, err := getRemindersForTasks(s, []int64{t.ID})
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -1066,13 +1061,8 @@ func (t *Task) Update(s *xorm.Session, a web.Auth) (err error) {
|
|||
return err
|
||||
}
|
||||
|
||||
// Deprecated: This statement can be removed when ReminderDates will be removed
|
||||
if t.ReminderDates != nil {
|
||||
t.overwriteRemindersWithReminderDates(t.ReminderDates)
|
||||
}
|
||||
|
||||
// Update the reminders
|
||||
if err := ot.updateReminders(s, t.Reminders, t.DueDate, t.StartDate, t.EndDate); err != nil {
|
||||
if err := ot.updateReminders(s, t); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -1520,21 +1510,21 @@ func (t *Task) overwriteRemindersWithReminderDates(reminderDates []time.Time) {
|
|||
}
|
||||
|
||||
// Set the absolute trigger dates for Reminders with relative period
|
||||
func updateRelativeReminderDates(reminders []*TaskReminder, dueDate time.Time, startDate time.Time, endDate time.Time) {
|
||||
for _, reminder := range reminders {
|
||||
func updateRelativeReminderDates(task *Task) {
|
||||
for _, reminder := range task.Reminders {
|
||||
relativeDuration := time.Duration(reminder.RelativePeriod) * time.Second
|
||||
switch reminder.RelativeTo {
|
||||
case ReminderRelationDueDate:
|
||||
if !dueDate.IsZero() {
|
||||
reminder.Reminder = dueDate.Add(relativeDuration)
|
||||
if !task.DueDate.IsZero() {
|
||||
reminder.Reminder = task.DueDate.Add(relativeDuration)
|
||||
}
|
||||
case ReminderRelationStartDate:
|
||||
if !startDate.IsZero() {
|
||||
reminder.Reminder = startDate.Add(relativeDuration)
|
||||
if !task.StartDate.IsZero() {
|
||||
reminder.Reminder = task.StartDate.Add(relativeDuration)
|
||||
}
|
||||
case ReminderRelationEndDate:
|
||||
if !endDate.IsZero() {
|
||||
reminder.Reminder = endDate.Add(relativeDuration)
|
||||
if !task.EndDate.IsZero() {
|
||||
reminder.Reminder = task.EndDate.Add(relativeDuration)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1544,7 +1534,12 @@ func updateRelativeReminderDates(reminders []*TaskReminder, dueDate time.Time, s
|
|||
// trying to figure out which reminders changed and then only re-add those needed. And since it does
|
||||
// not make a performance difference we'll just do that.
|
||||
// The parameter is a slice which holds the new reminders.
|
||||
func (t *Task) updateReminders(s *xorm.Session, reminders []*TaskReminder, dueDate time.Time, startDate time.Time, endDate time.Time) (err error) {
|
||||
func (t *Task) updateReminders(s *xorm.Session, task *Task) (err error) {
|
||||
|
||||
// Deprecated: This statement must be removed when ReminderDates will be removed
|
||||
if t.ReminderDates != nil {
|
||||
t.overwriteRemindersWithReminderDates(t.ReminderDates)
|
||||
}
|
||||
|
||||
_, err = s.
|
||||
Where("task_id = ?", t.ID).
|
||||
|
@ -1553,12 +1548,12 @@ func (t *Task) updateReminders(s *xorm.Session, reminders []*TaskReminder, dueDa
|
|||
return
|
||||
}
|
||||
|
||||
updateRelativeReminderDates(reminders, dueDate, startDate, endDate)
|
||||
updateRelativeReminderDates(task)
|
||||
|
||||
// Resolve duplicates and sort them
|
||||
reminderMap := make(map[int64]TaskReminder, len(reminders))
|
||||
for _, reminder := range reminders {
|
||||
reminderMap[reminder.Reminder.UTC().Unix()] = *reminder
|
||||
reminderMap := make(map[int64]*TaskReminder, len(task.Reminders))
|
||||
for _, reminder := range task.Reminders {
|
||||
reminderMap[reminder.Reminder.UTC().Unix()] = reminder
|
||||
}
|
||||
|
||||
t.Reminders = make([]*TaskReminder, 0, len(reminderMap))
|
||||
|
|
Loading…
Reference in New Issue