Пример #1
0
 def __init__(self):
     """
     Constructor.
     
     start -- datetime
     end -- datetime
     """
     self.__gobject_init__()
     self.next_event_id = 0
     self.calendar = MyCalendar(calendar.SUNDAY)
     self.events = {}
Пример #2
0
    def __init__(self):
        """
        Constructor.

        start -- datetime
        end -- datetime
        """
        self.__gobject_init__()
        self.next_event_id = 0
        self.calendar      = MyCalendar(calendar.SUNDAY)
        self.events        = {}
Пример #3
0
class RunLogEveryYear(tornado.web.RequestHandler):
    def initialize(self, dbname='runlog'):
        self.pdmm = PerDayMemberManager(dbname)
        self.calendar = MyCalendar()
    def get(self, year):
        year = int(year)

        this_year = self.calendar.formatyear(year)

        self.render("runlog_year.html",
                    userlist = self.pdmm.get_year(year),
                    this_year=this_year)
Пример #4
0
class RunLogEveryMonth(tornado.web.RequestHandler):
    def initialize(self, dbname='runlog'):
        self.pdmm = PerDayMemberManager(dbname)
        self.calendar = MyCalendar()
    def get(self, year, month):
        year = int(year)
        month = int(month)
        if 1 <= month <= 12:
            this_month = self.calendar.formatmonth(year, month)
            self.render("runlog_month.html",
                        userlist=self.pdmm.get_month(year, month),
                        this_month=this_month)
        else:
            self.write("This month does not exist!")
Пример #5
0
class RunLogEveryDay(tornado.web.RequestHandler):
    def initialize(self, dbname='runlog'):
        self.pdmm = PerDayMemberManager(dbname)
        self.calendar = MyCalendar()

    def get(self, year, month, day):
        year, month, day = int(year), int(month), int(day)
        try:
            d = datetime.date(year, month, day)
        except:
            self.write("This day is not exist!")
            return
        strdate = d.strftime("%Y/%m/%d")

        this_month = self.calendar.formatmonth(d.year, d.month)

        self.render("runlog.html", 
                    userlist=self.pdmm.get(strdate),
                    strdate=strdate,
                    wholeusers=self.pdmm.getusers(),
                    this_month=this_month)


    def post(self, year, month, day):
        year, month, day = int(year), int(month), int(day)
        try:
            d = datetime.date(year, month, day)
        except:
            self.write("This day does not exist!")
            return
        strdate = d.strftime("%Y/%m/%d")
        user = self.get_argument("user", None)
        if user:
            self.pdmm.add(strdate, user)
        self.redirect("/%s"%strdate)
        pass
Пример #6
0
class Model(gobject.GObject):
    __gsignals__ = {
        'event-removed': (gobject.SIGNAL_RUN_FIRST,
                          gobject.TYPE_NONE,
                          (gobject.TYPE_PYOBJECT,)),
        'event-added': (gobject.SIGNAL_RUN_FIRST,
                        gobject.TYPE_NONE,
                        (gobject.TYPE_PYOBJECT,))
    }

    def __init__(self):
        """
        Constructor.

        start -- datetime
        end -- datetime
        """
        self.__gobject_init__()
        self.next_event_id = 0
        self.calendar      = MyCalendar(calendar.SUNDAY)
        self.events        = {}


    def get_week(self, date):
        """
        Returns a tuple (start, end), where "start" points to the first day
        of the given week, and "end" points to the last day of given week.
        """
        return self.calendar.get_week(date)


    def get_month(self, date):
        """
        Returns a tuple (start, end), where "start points to the first day
        of the given month and "end" points to the last day of the given
        month.
        """
        return self.calendar.get_month(date)


    def get_month_weeks(self, date, fill = True):
        """
        Returns a tuple (start, end), where "start" points to the first day
        of the first week of given month, and "end" points to the last day of
        the last week of the same month.
        """
        return self.calendar.get_month_weeks(date, fill)


    def get_day_name(self, date):
        """
        Returns the name of the given week day.
        """
        return self.calendar.get_day_name(date)


    def get_month_name(self, date):
        """
        Returns the name of the given month.
        """
        return self.calendar.get_month_name(date)


    def remove_event(self, event):
        assert event is not None
        if event.id is None:
            return
        del self.events[event.id]
        self.emit('event-removed', event)


    def add_event(self, event):
        assert event    is not None
        assert event.id is None
        self.events[self.next_event_id] = event
        event.id = self.next_event_id
        self.next_event_id += 1
        self.emit('event-added', event)


    def get_events(self, start, end):
        """
        Returns a list of all events that intersect with the given start
        and end times.
        """
        events = []
        for event in self.events.values():
            if util.event_intersects(event, start, end):
                events.append(event)
        events.sort(util.event_days, reverse = True)
        return events


    def get_all_day_events(self, start, end, include_timed_events = False):
        # Get a list of all-day events and sort them by length.
        events = []
        for event in self.get_events(start, end):
            if event.all_day:
                events.append(event)
                continue
            if include_timed_events \
              and not util.same_day(event.start, event.end):
                events.append(event)
        return events


    def get_normal_events(self, start, end, include_multi_day_events = True):
        # Get a list of non-all-day events and sort them by length.
        events = []
        for event in self.get_events(start, end):
            if not include_multi_day_events \
              and not util.same_day(event.start, event.end):
                continue
            if not event.all_day:
                events.append(event)
        return events
Пример #7
0
class Model(gobject.GObject):
    __gsignals__ = {
        'event-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
                          (gobject.TYPE_PYOBJECT, )),
        'event-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
                        (gobject.TYPE_PYOBJECT, ))
    }

    def __init__(self):
        """
        Constructor.
        
        start -- datetime
        end -- datetime
        """
        self.__gobject_init__()
        self.next_event_id = 0
        self.calendar = MyCalendar(calendar.SUNDAY)
        self.events = {}

    def get_week(self, date):
        """
        Returns a tuple (start, end), where "start" points to the first day 
        of the given week, and "end" points to the last day of given week.
        """
        return self.calendar.get_week(date)

    def get_month(self, date):
        """
        Returns a tuple (start, end), where "start points to the first day 
        of the given month and "end" points to the last day of the given 
        month.
        """
        return self.calendar.get_month(date)

    def get_month_weeks(self, date, fill=True):
        """
        Returns a tuple (start, end), where "start" points to the first day 
        of the first week of given month, and "end" points to the last day of 
        the last week of the same month.
        """
        return self.calendar.get_month_weeks(date, fill)

    def get_day_name(self, date):
        """
        Returns the name of the given week day.
        """
        return self.calendar.get_day_name(date)

    def get_month_name(self, date):
        """
        Returns the name of the given month.
        """
        return self.calendar.get_month_name(date)

    def remove_event(self, event):
        assert event is not None
        if event.id is None:
            return
        del self.events[event.id]
        self.emit('event-removed', event)

    def add_event(self, event):
        assert event is not None
        assert event.id is None
        self.events[self.next_event_id] = event
        event.id = self.next_event_id
        self.next_event_id += 1
        self.emit('event-added', event)

    def get_events(self, start, end):
        """
        Returns a list of all events that intersect with the given start
        and end times.
        """
        events = []
        for event in self.events.values():
            if util.event_intersects(event, start, end):
                events.append(event)
        events.sort(util.event_days, reverse=True)
        return events

    def get_all_day_events(self, start, end, include_timed_events=False):
        # Get a list of all-day events and sort them by length.
        events = []
        for event in self.get_events(start, end):
            if event.all_day:
                events.append(event)
                continue
            if include_timed_events \
              and not util.same_day(event.start, event.end):
                events.append(event)
        return events

    def get_normal_events(self, start, end, include_multi_day_events=True):
        # Get a list of non-all-day events and sort them by length.
        events = []
        for event in self.get_events(start, end):
            if not include_multi_day_events \
              and not util.same_day(event.start, event.end):
                continue
            if not event.all_day:
                events.append(event)
        return events
Пример #8
0
 def initialize(self, dbname='runlog'):
     self.pdmm = PerDayMemberManager(dbname)
     self.calendar = MyCalendar()