コード例 #1
0
ファイル: mixins.py プロジェクト: einarfelix/xl
 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)
コード例 #2
0
ファイル: models.py プロジェクト: zhuangyan/lino
 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())
コード例 #3
0
    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)
コード例 #4
0
ファイル: mixins.py プロジェクト: lino-framework/xl
 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)
コード例 #5
0
 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)
コード例 #6
0
ファイル: models.py プロジェクト: lino-framework/xl
 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
コード例 #7
0
 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
コード例 #8
0
ファイル: models.py プロジェクト: NewRGB/lino
    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))
コード例 #9
0
    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))
コード例 #10
0
ファイル: models.py プロジェクト: lino-framework/lino
    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))
コード例 #11
0
ファイル: models.py プロジェクト: sandeez/lino
    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')
コード例 #12
0
ファイル: mixins.py プロジェクト: forexblog/xl
    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)
コード例 #13
0
 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())