def testDateTimeSinceColumn(self): """Testing DateTimeSinceColumn""" class DummyObj: time = None column = DateTimeSinceColumn("Test", field_name='time') now = datetime.now() obj = DummyObj() obj.time = now self.assertEqual(column.render_data(obj), "0 minutes ago") obj.time = now - timedelta(days=5) self.assertEqual(column.render_data(obj), "5 days ago") obj.time = now - timedelta(days=7) self.assertEqual(column.render_data(obj), "1 week ago")
def testDateTimeSinceColumn(self): """Testing DateTimeSinceColumn""" class DummyObj: time = None column = DateTimeSinceColumn("Test", field_name='time') if settings.USE_TZ: now = get_tz_aware_utcnow() else: now = datetime.now() obj = DummyObj() obj.time = now self.assertEqual(column.render_data(obj), "0\xa0minutes ago") obj.time = now - timedelta(days=5) self.assertEqual(column.render_data(obj), "5\xa0days ago") obj.time = now - timedelta(days=7) self.assertEqual(column.render_data(obj), "1\xa0week ago")
def testDateTimeSinceColumn(self): """Testing DateTimeSinceColumn""" class DummyObj: time = None column = DateTimeSinceColumn("Test", field_name='time') state = StatefulColumn(None, column) if settings.USE_TZ: now = get_tz_aware_utcnow() else: now = datetime.now() obj = DummyObj() obj.time = now self.assertEqual(column.render_data(state, obj), "0\xa0minutes ago") obj.time = now - timedelta(days=5) self.assertEqual(column.render_data(state, obj), "5\xa0days ago") obj.time = now - timedelta(days=7) self.assertEqual(column.render_data(state, obj), "1\xa0week ago")
def test_render_data(self): """Testing DateTimeSinceColumn.render_data""" class DummyObj: time = None column = DateTimeSinceColumn('Test', field_name='time') state = StatefulColumn(None, column) if settings.USE_TZ: now = get_tz_aware_utcnow() else: now = datetime.now() obj = DummyObj() obj.time = now self.assertEqual(column.render_data(state, obj), '0\xa0minutes ago') obj.time = now - timedelta(days=5) self.assertEqual(column.render_data(state, obj), '5\xa0days ago') obj.time = now - timedelta(days=7) self.assertEqual(column.render_data(state, obj), '1\xa0week ago')
def render_data(self, obj): if obj.diffset_history.last_diff_updated: return DateTimeSinceColumn.render_data(self, obj.diffset_history) else: return ""
def __init__(self, *args, **kwargs): DateTimeSinceColumn.__init__(self, _("Diff Updated"), db_field="diffset_history__last_diff_updated", field_name='last_diff_updated', sortable=True, link=False, *args, **kwargs)
class ReviewRequestDataGrid(DataGrid): """ A datagrid that displays a list of review requests. This datagrid accepts the show_submitted parameter in the URL, allowing submitted review requests to be filtered out or displayed. """ star = ReviewRequestStarColumn() ship_it = ShipItColumn() summary = SummaryColumn(expand=True, link=True, css_class="summary") submitter = SubmitterColumn() branch = Column(_("Branch"), db_field="branch", shrink=True, sortable=True, link=False) bugs_closed = Column(_("Bugs"), db_field="bugs_closed", shrink=True, sortable=False, link=False) repository = RepositoryColumn() time_added = DateTimeColumn(_("Posted"), detailed_label=_("Posted Time"), format="F jS, Y, P", shrink=True, css_class=lambda r: ageid(r.time_added)) last_updated = DateTimeColumn(_("Last Updated"), format="F jS, Y, P", shrink=True, db_field="last_updated", field_name="last_updated", css_class=lambda r: ageid(r.last_updated)) diff_updated = DateTimeColumn(_("Diff Updated"), format="F jS, Y, P", shrink=True, field_name="last_updated", css_class=lambda r: ageid(r.last_updated)) time_added_since = DateTimeSinceColumn(_("Posted"), detailed_label=_("Posted Time (Relative)"), field_name="time_added", shrink=True, css_class=lambda r: ageid(r.time_added)) last_updated_since = DateTimeSinceColumn(_("Last Updated"), detailed_label=_("Last Updated (Relative)"), shrink=True, db_field="last_updated", field_name="last_updated", css_class=lambda r: ageid(r.last_updated)) diff_updated_since = DateTimeSinceColumn(_("Diff Updated"), detailed_label=_("Diff Updated (Relative)"), field_name="last_updated", shrink=True, css_class=lambda r: ageid(r.last_updated)) review_count = ReviewCountColumn() target_groups = GroupsColumn() target_people = PeopleColumn() review_id = Column(_("Review ID"), field_name="id", db_field="id", shrink=True, sortable=True, link=True) def __init__(self, *args, **kwargs): self.local_site = kwargs.pop('local_site', None) DataGrid.__init__(self, *args, **kwargs) self.listview_template = 'reviews/review_request_listview.html' self.profile_sort_field = 'sort_review_request_columns' self.profile_columns_field = 'review_request_columns' self.show_submitted = True self.submitter_url_name = "user" self.default_sort = ["-last_updated"] self.default_columns = [ "star", "summary", "submitter", "time_added", "last_updated_since" ] def load_extra_state(self, profile): if profile: self.show_submitted = profile.show_submitted try: self.show_submitted = \ int(self.request.GET.get('show_submitted', self.show_submitted)) != 0 except ValueError: # do nothing pass if self.show_submitted: # There are only three states: Published, Submitted and Discarded. # We want the first two, but it's faster to just search for not # discarded. self.queryset = self.queryset.exclude(status='D') else: self.queryset = self.queryset.filter(status='P') self.queryset = self.queryset.filter(local_site=self.local_site) if profile and self.show_submitted != profile.show_submitted: profile.show_submitted = self.show_submitted return True return False def post_process_queryset(self, queryset): q = queryset.with_counts(self.request.user) return super(ReviewRequestDataGrid, self).post_process_queryset(q) def link_to_object(self, obj, value): if value and isinstance(value, User): return local_site_reverse("user", request=self.request, args=[value]) return obj.get_absolute_url()