def weekdays_text(self, ar=None): if self.every_unit == Recurrencies.once: if self.end_date and self.end_date != self.start_date: return gettext("{0}-{1}").format(dd.fds(self.start_date), dd.fds(self.end_date)) # return _("From {0} until {1}").format( # dd.fdf(self.start_date), dd.fdf(self.end_date)) return gettext("On {0}").format(dd.fdf(self.start_date)) elif self.every_unit == Recurrencies.weekly: every_text = self.weekdays_text_(', ') elif self.every_unit == Recurrencies.daily: every_text = gettext("day") elif self.every_unit == Recurrencies.monthly: if self.positions: positions = [] for i in self.positions.split(): positions.append(str(POSITION_TEXTS.get(i, "?!"))) every_text = " {} ".format(gettext("and")).join(positions) \ + " " + self.weekdays_text_(gettext(' and '), gettext("day")) \ + " " + gettext("of the month") else: every_text = gettext("month") elif self.every_unit in (Recurrencies.yearly, Recurrencies.easter): every_text = gettext("year") else: return '' if self.every == 1: return gettext("Every %s") % every_text return gettext("Every %snd %s") % (self.every, every_text)
def dtfmt(dt): if isinstance(dt, float): dt = datetime.datetime.fromtimestamp(dt) #~ raise ValueError("Expected float, go %r" % dt) return unicode(_("%(date)s at %(time)s")) % dict( date=dd.fdf(dt.date()), time=dt.time())
def get_table_summary(cls, obj, ar, max_num=10, **context): context = ar.get_printable_context(**context) qs = rt.models.blogs.Entry.objects.filter(pub_date__isnull=False) qs = qs.order_by("-pub_date") render = dd.plugins.jinja.render_jinja elems = [] for num, e in enumerate(qs): if num >= max_num: break context.update(obj=e) # s = render(ar, 'blogs/entry.html', context) elems.append(E.h2(e.title or str(e), " ", e.obj2href( ar, u"⏏", **{'style': "text-decoration:none"}))) # s = ar.parse_memo(e.short_preview) s = e.short_preview tree = etree.parse(StringIO(s), html_parser) # elems.extend(tree.iter()) # elems.append(tree.iter().next()) elems.append(tree.getroot()) elems.append(E.p( _("{} by {}").format(dd.fdf(e.pub_date), e.user))) # elems.append(E.p( # _("{} by {}").format(dd.fdf(e.pub_date), e.user), # " ", e.obj2href(ar, "(edit)"))) return E.div(*elems)
def weekdays_text(self, ar): if self.every_unit == Recurrencies.once: if self.end_date and self.end_date != self.start_date: return _("{0}-{1}").format( dd.fds(self.start_date), dd.fds(self.end_date)) # return _("From {0} until {1}").format( # dd.fdf(self.start_date), dd.fdf(self.end_date)) return _("On {0}").format(dd.fdf(self.start_date)) elif self.every_unit == Recurrencies.weekly: weekdays = [] for wd in Weekdays.objects(): if getattr(self, wd.name): weekdays.append(str(wd.text)) if len(weekdays) == 0: return '' every_text = ', '.join(weekdays) elif self.every_unit == Recurrencies.daily: every_text = _("day") elif self.every_unit == Recurrencies.monthly: every_text = _("month") elif self.every_unit in (Recurrencies.yearly, Recurrencies.easter): every_text = _("year") else: return '' if self.every == 1: return _("Every %s") % every_text return _("Every %snd %s") % (self.every, every_text)
def weekdays_text(self, ar): if self.every_unit == Recurrencies.once: if self.end_date: return _("{0}-{1}").format(dd.fds(self.start_date), dd.fds(self.end_date)) # return _("From {0} until {1}").format( # dd.fdf(self.start_date), dd.fdf(self.end_date)) return _("On {0}").format(dd.fdf(self.start_date)) elif self.every_unit == Recurrencies.weekly: weekdays = [] for wd in Weekdays.objects(): if getattr(self, wd.name): weekdays.append(str(wd.text)) if len(weekdays) == 0: return '' every_text = ', '.join(weekdays) elif self.every_unit == Recurrencies.daily: every_text = _("day") elif self.every_unit == Recurrencies.monthly: every_text = _("month") elif self.every_unit in (Recurrencies.yearly, Recurrencies.easter): every_text = _("year") else: return '' if self.every == 1: return _("Every %s") % every_text return _("Every %snd %s") % (self.every, every_text)
def when(self, obj, ar): #~ rv = dbutils.dtosl(obj.date) rv = dd.fdf(obj.date) if obj.url: # replaces spaces by newline to avoid large column rv = '\n'.join(rv.split()) rv = E.a(rv, href=obj.url) return rv
def about_html(cls): body = [] body.append(settings.SITE.welcome_html()) if settings.SITE.languages: body.append( E.p( str(_("Languages")) + ": " + ', '.join( [lng.django_code for lng in settings.SITE.languages]))) # print "20121112 startup_time", settings.SITE.startup_time.date() def dtfmt(dt): if isinstance(dt, float): dt = datetime.datetime.fromtimestamp(dt) # raise ValueError("Expected float, go %r" % dt) return str(_("%(date)s at %(time)s")) % dict( date=dd.fds(dt.date()), time=settings.SITE.strftime(dt.time())) value = settings.SITE.startup_time label = _("Server uptime") body.append( E.p(str(label), ' : ', E.b(dtfmt(value)), ' ({})'.format(settings.TIME_ZONE))) if settings.SITE.is_demo_site: s = str(_("This is a Lino demo site.")) body.append(E.p(s)) if settings.SITE.the_demo_date: s = _("We are running with simulated date set to {0}.").format( dd.fdf(settings.SITE.the_demo_date)) body.append(E.p(s)) body.append(E.p(str(_("Source timestamps:")))) items = [] times = [] packages = set(['lino', 'django', 'atelier']) for p in settings.SITE.installed_plugins: packages.add(p.app_name.split('.')[0]) for src in packages: label = src value = codetime('%s.*' % src) if value is not None: times.append((label, value)) times.sort(key=lambda x: x[1]) for label, value in times: items.append(E.li(str(label), ' : ', E.b(dtfmt(value)))) body.append(E.ul(*items)) body.append( E.p("{} : {}".format( _("Complexity factors"), ', '.join(analyzer.get_complexity_factors(dd.today()))))) return rt.html_text(E.div(*body))
def about_html(cls): body = [] body.append(settings.SITE.welcome_html()) if settings.SITE.languages: body.append( E.p( str(_("Languages")) + ": " + ', '.join( [lng.django_code for lng in settings.SITE.languages]))) # print "20121112 startup_time", settings.SITE.startup_time.date() # showing startup time here makes no sense as this is a constant text # body.append(E.p( # gettext("Server uptime"), ' : ', # E.b(dtfmt(settings.SITE.startup_time)), # ' ({})'.format(settings.TIME_ZONE))) if settings.SITE.is_demo_site: body.append(E.p(gettext(_("This is a Lino demo site.")))) if settings.SITE.the_demo_date: s = _("We are running with simulated date set to {0}.").format( dd.fdf(settings.SITE.the_demo_date)) body.append(E.p(s)) body.append(E.p(str(_("Source timestamps:")))) items = [] times = [] packages = set(['django']) items.append( E.li(gettext("Server timestamp"), ' : ', E.b(dtfmt(settings.SITE.kernel.code_mtime)))) for p in settings.SITE.installed_plugins: packages.add(p.app_name.split('.')[0]) for src in packages: label = src value = codetime('%s.*' % src) if value is not None: times.append((label, value)) times.sort(key=lambda x: x[1]) for label, value in times: items.append(E.li(str(label), ' : ', E.b(dtfmt(value)))) body.append(E.ul(*items)) body.append( E.p("{} : {}".format( _("Complexity factors"), ', '.join(analyzer.get_complexity_factors(dd.today()))))) return rt.html_text(E.div(*body))
def about_html(cls): body = [] body.append(settings.SITE.welcome_html()) if settings.SITE.languages: body.append(E.p(str(_("Languages")) + ": " + ', '.join([ lng.django_code for lng in settings.SITE.languages]))) # print "20121112 startup_time", settings.SITE.startup_time.date() def dtfmt(dt): if isinstance(dt, float): dt = datetime.datetime.fromtimestamp(dt) # raise ValueError("Expected float, go %r" % dt) return str(_("%(date)s at %(time)s")) % dict( date=dd.fds(dt.date()), time=settings.SITE.strftime(dt.time())) value = settings.SITE.startup_time label = _("Server uptime") body.append(E.p( str(label), ' : ', E.b(dtfmt(value)), ' ({})'.format(settings.TIME_ZONE))) if settings.SITE.is_demo_site: s = str(_("This is a Lino demo site.")) body.append(E.p(s)) if settings.SITE.the_demo_date: s = _("We are running with simulated date set to {0}.").format( dd.fdf(settings.SITE.the_demo_date)) body.append(E.p(s)) body.append(E.p(str(_("Source timestamps:")))) items = [] times = [] packages = set(['lino', 'django', 'atelier']) for p in settings.SITE.installed_plugins: packages.add(p.app_name.split('.')[0]) for src in packages: label = src value = codetime('%s.*' % src) if value is not None: times.append((label, value)) times.sort(key=lambda x: x[1]) for label, value in times: items.append(E.li(str(label), ' : ', E.b(dtfmt(value)))) body.append(E.ul(*items)) return rt.html_text(E.div(*body))
def about_html(cls): body = [] body.append(settings.SITE.welcome_html()) if settings.SITE.languages: body.append(E.p(str(_("Languages")) + ": " + ', '.join([ lng.django_code for lng in settings.SITE.languages]))) #~ print "20121112 startup_time", settings.SITE.startup_time.date() def dtfmt(dt): if isinstance(dt, float): dt = datetime.datetime.fromtimestamp(dt) #~ raise ValueError("Expected float, go %r" % dt) return str(_("%(date)s at %(time)s")) % dict( date=dd.fdf(dt.date()), time=dt.time()) items = [] times = [] value = settings.SITE.startup_time label = _("Server uptime") body.append(E.p(str(label), ' : ', E.b(dtfmt(value)))) if settings.SITE.is_demo_site: s = str(_("This is a Lino demo site.")) body.append(E.p(s)) if settings.SITE.the_demo_date: s = _("We are running with simulated date set to {0}.").format( dd.fdf(settings.SITE.the_demo_date)) body.append(E.p(s)) body.append(E.p(str(_("Source timestamps:")))) for src in ("lino", "lino_welfare", 'django', 'atelier'): label = src value = codetime('%s.*' % src) if value is not None: times.append((label, value)) def mycmp(a, b): return cmp(b[1], a[1]) times.sort(mycmp) for label, value in times: items.append(E.li(str(label), ' : ', E.b(dtfmt(value)))) body.append(E.ul(*items)) return E.div(*body, class_='htmlText')
def weekdays_text(self, ar=None): if self.every_unit == Recurrencies.once: if self.end_date and self.end_date != self.start_date: return gettext("{0}-{1}").format(dd.fds(self.start_date), dd.fds(self.end_date)) # return _("From {0} until {1}").format( # dd.fdf(self.start_date), dd.fdf(self.end_date)) return gettext("On {0}").format(dd.fdf(self.start_date)) elif self.every_unit == Recurrencies.daily: day_text = gettext("day") elif self.every_unit == Recurrencies.weekly: day_text = self.weekdays_text_(', ') if not day_text: return gettext("Every week") elif self.every_unit == Recurrencies.monthly: if self.positions: # assert self.every == 1 # day_text = " {} ".format(gettext("and")).join(positions) \ # + " " + self.weekdays_text_(gettext(' and '), gettext("day")) \ # + " " + gettext("of the month") day_text = self.positions_text_(" {} ".format(gettext("and"))) \ + " " + self.weekdays_text_(" {} ".format(gettext("and")), gettext("day")) return gettext("Every {day} of the month").format(day=day_text) else: s = ngettext("Every month", "Every {count} months", self.every) return s.format(count=self.every) elif self.every_unit == Recurrencies.yearly: s = ngettext("Every year", "Every {count} years", self.every) return s.format(count=self.every) elif self.every_unit == Recurrencies.easter: s = ngettext("Every year (with Easter)", "Every {count} years (with Easter)", self.every) return s.format(count=self.every) else: return "Invalid recurrency unit {}".format(self.every_unit) s = ngettext("Every {day}", "Every {ord_count} {day}", self.every) return s.format(ord_count=num2words(self.every, to='ordinal', lang=translation.get_language()), day=day_text)