コード例 #1
0
 def renderCells(self, schedule, day, item):
     if sameProxiedObjects(schedule, self.context.periods):
         period = item
         return (period.title,
                 self.activityTitle(period.activity_type) or '')
     if sameProxiedObjects(schedule, self.context.time_slots):
         slot = item
         return (format_time_range(slot.tstart, slot.duration),
                 self.activityTitle(slot.activity_type) or '')
     return None
コード例 #2
0
    def format_time_slots(self, time_slots, ws, offset):
        self.write_header(ws, offset, 0, "Time schedule")
        offset += 1

        for day in time_slots.templates.values():
            self.write(ws, offset, 0, day.title)
            for col, slot in enumerate(day.values()):
                time = format_time_range(slot.tstart, slot.duration)
                self.write(ws, offset, col + 1, time)
                self.write(ws, offset + 1, col + 1, slot.activity_type)
            offset += 2
        return offset
コード例 #3
0
ファイル: export.py プロジェクト: achouhans/schooltool-2.8.5
    def format_time_slots(self, time_slots, ws, offset):
        self.write_header(ws, offset, 0, "Time schedule")
        offset += 1

        for day in time_slots.templates.values():
            self.write(ws, offset, 0, day.title)
            for col, slot in enumerate(day.values()):
                time = format_time_range(slot.tstart, slot.duration)
                self.write(ws, offset, col + 1, time)
                self.write(ws, offset + 1, col + 1, slot.activity_type)
            offset += 2
        return offset
コード例 #4
0
def default_period_names(time_slots):
    """Derive period names and order from time slots.

        >>> from datetime import time, timedelta
        >>> periods = [(time(9, 0), timedelta(minutes=50)),
        ...            (time(12, 35), timedelta(minutes=50)),
        ...            (time(14, 15), timedelta(minutes=55))]
        >>> periods2 = [(time(9, 10), timedelta(minutes=50)),
        ...             (time(12, 35), timedelta(minutes=50))]
        >>> default_period_names([periods] * 3 + [periods2])
        [['09:00-09:50', '12:35-13:25', '14:15-15:10'],
         ['09:00-09:50', '12:35-13:25', '14:15-15:10'],
         ['09:00-09:50', '12:35-13:25', '14:15-15:10'],
         ['09:10-10:00', '12:35-13:25']]

    """
    return [[
        format_time_range(tstart, duration) for tstart, duration in slots
    ] for slots in time_slots]
コード例 #5
0
def default_period_names(time_slots):
    """Derive period names and order from time slots.

        >>> from datetime import time, timedelta
        >>> periods = [(time(9, 0), timedelta(minutes=50)),
        ...            (time(12, 35), timedelta(minutes=50)),
        ...            (time(14, 15), timedelta(minutes=55))]
        >>> periods2 = [(time(9, 10), timedelta(minutes=50)),
        ...             (time(12, 35), timedelta(minutes=50))]
        >>> default_period_names([periods] * 3 + [periods2])
        [['09:00-09:50', '12:35-13:25', '14:15-15:10'],
         ['09:00-09:50', '12:35-13:25', '14:15-15:10'],
         ['09:00-09:50', '12:35-13:25', '14:15-15:10'],
         ['09:10-10:00', '12:35-13:25']]

    """
    return [[format_time_range(tstart, duration)
             for tstart, duration in slots]
            for slots in time_slots]
コード例 #6
0
 def renderCells(self, schedule, day, item):
     timetable = self.context.timetable
     if sameProxiedObjects(schedule, timetable.periods):
         checked = self.context.hasPeriod(item)
         key = self.getPeriodKey(day, item)
         checkbox = """
           <input class="activity" type="checkbox"
                  id="%(key)s" name="%(key)s"
                  value="%(key)s"%(checked)s></input>""" % {
             'key': key,
             'checked': checked and ' checked="checked"' or ''}
         label = """
           <label class="period" for="%(key)s">%(title)s</label>""" % {
             'key': key, 'title': item.title or ''}
         return (checkbox, label)
     if sameProxiedObjects(schedule, timetable.time_slots):
         slot = item
         return (format_time_range(slot.tstart, slot.duration),
                 self.activityTitle(slot.activity_type) or '')
     return None
コード例 #7
0
def format_time_range_list(times):
    r"""Format a multi-line string from a list of time slots.

    One slot per line (HH:MM - HH:MM).  Empty lines are ignored.  Extra
    spaces are stripped.

        >>> import datetime
        >>> times = [(datetime.time(9, 30), datetime.timedelta(0, 3300)),
        ...          (datetime.time(12, 30), datetime.timedelta(0, 3300))]

        >>> print format_time_range_list(times)
        09:30-10:25
        12:30-13:25

    """
    lines = []
    for tr_time, tr_delta in times:
        lines.append(format_time_range(tr_time, tr_delta))

    return '\n'.join(lines)
コード例 #8
0
def format_time_range_list(times):
    r"""Format a multi-line string from a list of time slots.

    One slot per line (HH:MM - HH:MM).  Empty lines are ignored.  Extra
    spaces are stripped.

        >>> import datetime
        >>> times = [(datetime.time(9, 30), datetime.timedelta(0, 3300)),
        ...          (datetime.time(12, 30), datetime.timedelta(0, 3300))]

        >>> print format_time_range_list(times)
        09:30-10:25
        12:30-13:25

    """
    lines = []
    for tr_time, tr_delta in times:
        lines.append(format_time_range(tr_time, tr_delta))

    return '\n'.join(lines)