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")
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()