def action(self, selection): for app_entry in selection: old_value = app_entry.event_reminder_combined rlist = ReminderList(app_entry._item) if old_value == 'reminder': rlist.remove_all_reminders() else: trigger = getNow() if trigger.hour < 17: hour = 17 else: trigger += timedelta(days=1) hour = 8 trigger = trigger.replace(hour=hour, minute=0, second=0, microsecond=0) reminder = rlist.add_reminder() reminder.fixed_trigger = trigger
def dashboard_recurrence_ids(self): """The set of recurrence_ids which should have DashboardEntries. Updates self._recurrence_dashboard_entries when re-calculated. """ old_set = self.dashboard_recurrence_ids if old_set is None: old_set = frozenset() if not self in self.item.extensions or not self.start or not self.rruleset: new_set = frozenset() else: now_dt = getNow() past_done = None future_later = None new_set = set() for recurrence_id in self.rruleset: # XXX inefficient, creating an Occurrence for every past recurrence-id, # probably should be optimized by walking backwards from triaged_done_before triage = Triage(self.get_occurrence(recurrence_id)).calculated if triage not in (LATER, DONE): new_set.add(to_hashable(recurrence_id)) else: if triage == DONE and recurrence_id < now_dt: past_done = recurrence_id elif triage == LATER and recurrence_id > now_dt: future_later = recurrence_id break for recurrence_id in past_done, future_later: if recurrence_id is not None: new_set.add(to_hashable(recurrence_id)) new_set.update(self.triaged_recurrence_ids) new_set.update(self.modification_recipes) for recurrence_id in old_set - new_set: del self._recurrence_dashboard_entries[recurrence_id] for recurrence_id in new_set - old_set: entry = DashboardEntry(self.get_occurrence(recurrence_id)) self._recurrence_dashboard_entries[recurrence_id] = entry return new_set
def display_date(self): when, is_day = self._when_and_is_day when = when.astimezone(TimeZone.default) when_date = when.date() # [@@@] Real date format support rather than strftime time_part = when.strftime("%X") if not is_day else "" # [@@@] Probably time_services should offer a today cell here since_today = (when_date - getNow().date()).days if since_today == -1: return _(u"Yesterday"), time_part elif since_today == 0: return _(u"Today"), time_part elif since_today == 1: return _(u"Tomorrow"), time_part else: return when.strftime("%x"), time_part