Пример #1
0
 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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
    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
Пример #5
0
 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
Пример #6
0
    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