def __init__(self): """ Constructor. start -- datetime end -- datetime """ self.__gobject_init__() self.next_event_id = 0 self.calendar = MyCalendar(calendar.SUNDAY) self.events = {}
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)
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!")
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
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
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
def initialize(self, dbname='runlog'): self.pdmm = PerDayMemberManager(dbname) self.calendar = MyCalendar()