Exemple #1
0
    def render(self):
        self.all_users = api.user.get_users()
        self.zero_date = DateTime('2000/01/01 00:00:00 GMT+1')
        self.now = DateTime()

        if "filter_by_days" in self.request.form:
            self.value = self.request.form["filter_by_days"]
            self.title = _(u"Filtered by {0} days").format(self.value)
            self.users = self.get_filtered_users(by_days=self.value)
            return ViewPageTemplateFile('hud_list_users.pt')(self)

        elif "filter_by_group" in self.request.form:
            value = self.request.form["filter_by_group"]
            self.value = urllib.unquote(value)
            self.title = _(u"Filtered by {0} group").format(self.value)
            self.users = self.get_filtered_users(by_group=self.value)
            return ViewPageTemplateFile('hud_list_users.pt')(self)

        self.count_users = len(self.all_users)
        days_list = [
            (_(u"Last day"), 1),
            (_(u"Last week"), 7),
            (_(u"Last month"), 31),
            (_(u"Last year"), 366),
            (_(u"Never"), -1)
        ]
        self.process_all(days_list=days_list)
        return self.panel_template()
    def format_datetime_friendly_ago(self, date):
        """ Format date & time using site specific settings.

        Source:
        http://developer.plone.org/misc/datetime.html
        """

        if date is None:
            return ""

        date = DateTime(date).asdatetime()  # zope DateTime -> python datetime

        # How long ago the timestamp is
        # See timedelta doc http://docs.python.org/lib/datetime-timedelta.html
        #since = datetime.datetime.utcnow() - date

        now = datetime.datetime.utcnow()
        now = now.replace(tzinfo=pytz.utc)

        since = now - date

        seconds = since.seconds + since.microseconds / 1E6 + since.days * 86400

        days = math.floor(seconds / (3600 * 24))

        if days <= 0 and seconds <= 0:
            # Timezone confusion, is in future
            return _(u"moment ago")

        if days >= 1:
            return self.portal.toLocalizedTime(date)
        else:
            hours = math.floor(seconds / 3600.0)
            minutes = math.floor((seconds % 3600) / 60)
            if hours > 0:
                return "{0} {1} {2} {3}".format(
                    hours, _(u"hours"), minutes, _(u"minutes ago")
                )
            else:
                if minutes > 0:
                    return "{0} {1}".format(minutes, _(u"minutes ago"))
                else:
                    return _(u"few seconds ago")
Exemple #3
0
    def render(self):
        self.all_users = api.user.get_users()
        self.now = DateTime()
        self.days_list = [
            (_(u"Last day"), 1),
            (_(u"Last week"), 7),
            (_(u"Last month"), 31),
            (_(u"Last year"), 366),
            (_(u"Never"), -1)
        ]

        if "filter_by_days" in self.request.form:
            self.value = self.request.form["filter_by_days"]
            self.filter_title = self.get_day_filter_title(self.value)
            self.users = get_filtered_users(by_days=self.value)
            return ViewPageTemplateFile('hud_list_users.pt')(self)

        self.count_users = len(self.all_users)
        self.process_all(days_list=self.days_list)
        return self.panel_template()