def to_html(self, ar): self.analyze_view() get_rnd = rt.models.cal.EventGenerator.get_cal_entry_renderer if self.mode == TABLE_MODE: sep = ' ' fmt = get_rnd(day_and_weekday) elif self.mode == UL_MODE: sep = ' ' fmt = get_rnd(day_and_weekday) elif self.mode == PLAIN_MODE: sep = ', ' fmt = get_rnd(dd.fds) def xxx(list_of_entries): elems = [] for e in list_of_entries: if len(elems): elems.append(sep) elems.extend(fmt(e, ar)) return elems if self.mode == TABLE_MODE: rows = [] cells = [E.th("")] + [E.th(monthname(m+1)) for m in range(12)] # print(''.join([tostring(c) for c in cells])) rows.append(E.tr(*cells)) for y in self.years.values(): cells = [E.td(str(y.year), width="4%")] for m in y.months: # every m is a list of etree elems cells.append(E.td(*xxx(m), width="8%", **ar.renderer.cellattrs)) # print(str(y.year) +":" + ''.join([tostring(c) for c in cells])) rows.append(E.tr(*cells)) return E.table(*rows, **ar.renderer.tableattrs) if self.mode == UL_MODE: items = [] for y in self.years.values(): for m, lst in enumerate(y.months): if len(lst): items.append(E.li( monthname(m+1), " ", str(y.year), ": ", *xxx(lst))) return E.ul(*items) if self.mode == PLAIN_MODE: elems = [] for y in self.years.values(): for lst in y.months: if len(lst): if len(elems): elems.append(sep) elems.extend(xxx(lst)) return E.p(*elems) raise Exception("20180720")
def get_report(ar, today=None, weeksback=1, weeksforth=0, datefmt=dd.fds): if not ar.user.user_type.has_required_roles([SiteUser]): return E.p() if today is None: today = dd.today() start_date = today - ONE_DAY * today.weekday() - weeksback * SEVEN_DAYS numweeks = weeksback + weeksforth + 1 days = dict() cd = start_date numdays = numweeks * 7 for i in range(numdays): days[cd] = [] cd += ONE_DAY end_date = cd for r in REPORTERS: r(days, ar, start_date, end_date) headers = [E.th(Weekdays.choices[i][1], **ar.cellattrs) for i in range(7)] rows = [E.tr(*headers)] cd = start_date for week in range(numweeks): week = [] for weekday in range(7): chunks = days[cd] chunks.insert(0, datefmt(cd)) week.append(E.td(*chunks, **ar.cellattrs)) cd += ONE_DAY rows.append(E.tr(*week)) # print 20150420, rows return E.table(*rows, **ar.tableattrs)
def to_html(self, ar): self.analyze_view() if self.mode == TABLE_MODE: sep = ' ' fmt = day_and_weekday elif self.mode == UL_MODE: sep = ' ' fmt = day_and_weekday elif self.mode == PLAIN_MODE: sep = ', ' fmt = dd.fds def rnd(obj, ar): if self.model is rt.models.cal.Guest: d = obj.event.start_date evt = obj.event else: d = obj.start_date evt = obj # if show_auto_num and evt.auto_type: # yield str(evt.auto_type)+":" yield ar.obj2html(evt, fmt(d)) if obj.state.button_text: yield str(obj.state.button_text) # return (fdmy(d) + ": ", ar.obj2html(evt, lbl)) def xxx(list_of_entries): elems = [] # for e in reversed(list_of_entries): for e in list_of_entries: if len(elems): elems.append(sep) elems.extend(rnd(e, ar)) return elems if self.mode == TABLE_MODE: rows = [] cells = [E.th("")] + [E.th(monthname(m + 1)) for m in range(12)] # print(''.join([tostring(c) for c in cells])) rows.append(E.tr(*cells)) for y in self.years.values(): cells = [E.td(str(y.year), width="4%")] for m in y.months: # every m is a list of etree elems cells.append( E.td(*xxx(m), width="8%", **ar.renderer.cellattrs)) # print(str(y.year) +":" + ''.join([tostring(c) for c in cells])) rows.append(E.tr(*cells)) return E.table(*rows, **ar.renderer.tableattrs) if self.mode == UL_MODE: items = [] for y in self.years.values(): for m, lst in enumerate(reversed(y.months)): # January is [11], Dec is [0] if len(lst): items.append( E.li(monthname(12 - m), " ", str(y.year), ": ", *xxx(lst))) return E.ul(*items) if self.mode == PLAIN_MODE: elems = [] for y in self.years.values(): for lst in y.months: if len(lst): if len(elems): elems.append(sep) elems.extend(xxx(lst)) return E.p(*elems) raise Exception("20180720")
def to_html(self, ar): self.analyze_view() if self.mode == TABLE_MODE: sep = ' ' fmt = day_and_weekday elif self.mode == UL_MODE: sep = ' ' fmt = day_and_weekday elif self.mode == PLAIN_MODE: sep = ', ' fmt = dd.fds def rnd(obj, ar): if self.model is rt.models.cal.Guest: d = obj.event.start_date evt = obj.event else: d = obj.start_date evt = obj # if show_auto_num and evt.auto_type: # yield str(evt.auto_type)+":" yield ar.obj2html(evt, fmt(d)) if obj.state.button_text: yield str(obj.state.button_text) # return (fdmy(d) + ": ", ar.obj2html(evt, lbl)) def xxx(list_of_entries): elems = [] # for e in reversed(list_of_entries): for e in list_of_entries: if len(elems): elems.append(sep) elems.extend(rnd(e, ar)) return elems if self.mode == TABLE_MODE: rows = [] cells = [E.th("")] + [E.th(monthname(m+1)) for m in range(12)] # print(''.join([tostring(c) for c in cells])) rows.append(E.tr(*cells)) for y in self.years.values(): cells = [E.td(str(y.year), width="4%")] for m in y.months: # every m is a list of etree elems cells.append(E.td(*xxx(m), width="8%", **ar.renderer.cellattrs)) # print(str(y.year) +":" + ''.join([tostring(c) for c in cells])) rows.append(E.tr(*cells)) return E.table(*rows, **ar.renderer.tableattrs) if self.mode == UL_MODE: items = [] for y in self.years.values(): for m, lst in enumerate(reversed(y.months)): # January is [11], Dec is [0] if len(lst): items.append(E.li( monthname(12-m), " ", str(y.year), ": ", *xxx(lst))) return E.ul(*items) if self.mode == PLAIN_MODE: elems = [] for y in self.years.values(): for lst in y.months: if len(lst): if len(elems): elems.append(sep) elems.extend(xxx(lst)) return E.p(*elems) raise Exception("20180720")