示例#1
0
    def test_with_non_datetime(self):
        """Testing {% ageid %} with non-datetime object"""
        class Foo:
            def __init__(self, now):
                self.day = now.day
                self.month = now.month
                self.year = now.year

        self.assertEqual(ageid(Foo(self.now)), 'age1')
示例#2
0
文件: tests.py 项目: dekoza/djblets
    def testNotDateTime(self):
        """Testing ageid tag (non-datetime object)"""
        class Foo:
            def __init__(self, now):
                self.day   = now.day
                self.month = now.month
                self.year  = now.year

        self.assertEqual(djblets_utils.ageid(Foo(self.now)), 'age1')
    def test_with_non_datetime(self):
        """Testing {% ageid %} with non-datetime object"""
        class Foo:
            def __init__(self, now):
                self.day = now.day
                self.month = now.month
                self.year = now.year

        self.assertEqual(ageid(Foo(self.now)), 'age1')
示例#4
0
    def testNotDateTime(self):
        """Testing ageid tag (non-datetime object)"""
        class Foo:
            def __init__(self, now):
                self.day = now.day
                self.month = now.month
                self.year = now.year

        self.assertEqual(djblets_utils.ageid(Foo(self.now)), 'age1')
示例#5
0
 def testMinus2(self):
     """Testing ageid tag (two days ago)"""
     self.assertEqual(djblets_utils.ageid(self.now - datetime.timedelta(2)),
                      'age3')
示例#6
0
 def testMinus1(self):
     """Testing ageid tag (yesterday)"""
     self.assertEqual(djblets_utils.ageid(self.now - datetime.timedelta(1)),
                      'age2')
示例#7
0
 def testNow(self):
     """Testing ageid tag (now)"""
     self.assertEqual(djblets_utils.ageid(self.now), 'age1')
 def test_with_now_minus_2_days(self):
     """Testing {% ageid %} with two days ago"""
     self.assertEqual(ageid(self.now - timedelta(2)), 'age3')
示例#9
0
文件: tests.py 项目: dekoza/djblets
 def testMinus2(self):
     """Testing ageid tag (two days ago)"""
     self.assertEqual(djblets_utils.ageid(self.now - datetime.timedelta(2)),
                      'age3')
示例#10
0
文件: tests.py 项目: dekoza/djblets
 def testNow(self):
     """Testing ageid tag (now)"""
     self.assertEqual(djblets_utils.ageid(self.now), 'age1')
示例#11
0
 def test_with_now_minus_2_days(self):
     """Testing {% ageid %} with two days ago"""
     self.assertEqual(ageid(self.now - timedelta(2)), 'age3')
示例#12
0
 def test_with_now_minus_1_day(self):
     """Testing {% ageid %} with yesterday"""
     self.assertEqual(ageid(self.now - timedelta(1)), 'age2')
示例#13
0
 def test_with_now(self):
     """Testing {% ageid %} with now"""
     self.assertEqual(ageid(self.now), 'age1')
示例#14
0
 def test_with_now_minus_4_days(self):
     """Testing {% ageid %} with four days ago"""
     self.assertEqual(ageid(self.now - timedelta(4)), 'age5')
示例#15
0
 def test_with_now_minus_3_days(self):
     """Testing {% ageid %} with three days ago"""
     self.assertEqual(ageid(self.now - timedelta(3)), 'age4')
示例#16
0
 def testMinus3(self):
     """Testing ageid tag (three days ago)"""
     self.assertEqual(djblets_utils.ageid(self.now - datetime.timedelta(3)),
                      'age4')
示例#17
0
 def test_with_now_minus_3_days(self):
     """Testing {% ageid %} with three days ago"""
     self.assertEqual(ageid(self.now - timedelta(3)), 'age4')
示例#18
0
 def testMinus4(self):
     """Testing ageid tag (four days ago)"""
     self.assertEqual(djblets_utils.ageid(self.now - datetime.timedelta(4)),
                      'age5')
示例#19
0
 def test_with_now_minus_4_days(self):
     """Testing {% ageid %} with four days ago"""
     self.assertEqual(ageid(self.now - timedelta(4)), 'age5')
示例#20
0
class ReviewRequestDataGrid(ShowClosedReviewRequestsMixin, DataGrid):
    """A datagrid that displays a list of review requests.

    This datagrid accepts the show_closed parameter in the URL, allowing
    submitted review requests to be filtered out or displayed.
    """

    new_updates = NewUpdatesColumn()
    my_comments = MyCommentsColumn()
    star = ReviewRequestStarColumn()
    ship_it = ShipItColumn()
    summary = SummaryColumn()
    submitter = UsernameColumn(label=_('Owner'), user_relation=['submitter'])

    branch = Column(label=_('Branch'),
                    db_field='branch',
                    shrink=True,
                    sortable=True,
                    link=False)
    bugs_closed = BugsColumn()
    repository = RepositoryColumn()
    time_added = DateTimeColumn(label=_('Posted'),
                                detailed_label=_('Posted Time'),
                                format='F jS, Y, P',
                                shrink=True,
                                css_class=lambda r: ageid(r.time_added))
    last_updated = DateTimeColumn(label=_('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 = DiffUpdatedColumn(
        format='F jS, Y, P',
        shrink=True,
        css_class=lambda r: ageid(r.diffset_history.last_diff_updated))
    time_added_since = DateTimeSinceColumn(
        label=_('Posted'),
        detailed_label=_('Posted Time (Relative)'),
        field_name='time_added',
        shrink=True,
        css_class=lambda r: ageid(r.time_added))
    last_updated_since = DateTimeSinceColumn(
        label=_('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 = DiffUpdatedSinceColumn(
        detailed_label=_('Diff Updated (Relative)'),
        shrink=True,
        css_class=lambda r: ageid(r.diffset_history.last_diff_updated))
    diff_size = DiffSizeColumn()

    review_count = ReviewCountColumn()

    target_groups = GroupsColumn()
    target_people = PeopleColumn()
    to_me = ToMeColumn()

    review_id = ReviewRequestIDColumn()

    status_query_field = 'status'
    site_query_field = 'local_site'

    def __init__(self, *args, **kwargs):
        """Initialize the datagrid."""
        self.local_site = kwargs.pop('local_site', None)

        super(ReviewRequestDataGrid, self).__init__(*args, **kwargs)

        self.listview_template = 'datagrids/review_request_listview.html'
        self.profile_sort_field = 'sort_review_request_columns'
        self.profile_columns_field = 'review_request_columns'
        self.show_closed = True
        self.submitter_url_name = 'user'
        self.default_sort = ['-last_updated']
        self.default_columns = [
            'star', 'summary', 'submitter', 'time_added', 'last_updated_since'
        ]

        # Add local timezone info to the columns.
        user = self.request.user

        if user.is_authenticated():
            profile = user.get_profile()
            self.timezone = pytz.timezone(profile.timezone)
            self.time_added.timezone = self.timezone
            self.last_updated.timezone = self.timezone
            self.diff_updated.timezone = self.timezone

    def load_extra_state(self, profile, allow_hide_closed=True):
        """Load extra state for the datagrid."""
        return super(ReviewRequestDataGrid,
                     self).load_extra_state(profile, allow_hide_closed)

    def post_process_queryset(self, queryset):
        """Add additional data to the queryset."""
        q = queryset.with_counts(self.request.user)
        return super(ReviewRequestDataGrid, self).post_process_queryset(q)

    def link_to_object(self, state, obj, value):
        """Return a link to the given object."""
        if value and isinstance(value, User):
            return local_site_reverse('user',
                                      request=self.request,
                                      args=[value])

        return obj.get_absolute_url()
示例#21
0
文件: tests.py 项目: dekoza/djblets
 def testMinus4(self):
     """Testing ageid tag (four days ago)"""
     self.assertEqual(djblets_utils.ageid(self.now - datetime.timedelta(4)),
                      'age5')
示例#22
0
文件: tests.py 项目: dekoza/djblets
 def testMinus1(self):
     """Testing ageid tag (yesterday)"""
     self.assertEqual(djblets_utils.ageid(self.now - datetime.timedelta(1)),
                      'age2')
示例#23
0
 def test_with_now(self):
     """Testing {% ageid %} with now"""
     self.assertEqual(ageid(self.now), 'age1')
示例#24
0
文件: tests.py 项目: dekoza/djblets
 def testMinus3(self):
     """Testing ageid tag (three days ago)"""
     self.assertEqual(djblets_utils.ageid(self.now - datetime.timedelta(3)),
                      'age4')
示例#25
0
 def test_with_now_minus_1_day(self):
     """Testing {% ageid %} with yesterday"""
     self.assertEqual(ageid(self.now - timedelta(1)), 'age2')
示例#26
0
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.
    """
    my_comments = MyCommentsColumn()
    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 = BugsColumn()
    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 = DiffUpdatedColumn(
        format="F jS, Y, P",
        shrink=True,
        css_class=lambda r: ageid(r.diffset_history.last_diff_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 = DiffUpdatedSinceColumn(
        detailed_label=_("Diff Updated (Relative)"),
        shrink=True,
        css_class=lambda r: ageid(r.diffset_history.last_diff_updated))

    review_count = ReviewCountColumn()

    target_groups = GroupsColumn()
    target_people = PeopleColumn()
    to_me = ToMeColumn()

    review_id = Column(_("Review ID"), shrink=True, sortable=True, link=True)

    def __init__(self, *args, **kwargs):
        self.local_site = kwargs.pop('local_site', None)

        if self.local_site:
            review_id_field = 'local_id'
        else:
            review_id_field = 'pk'

        self.review_id = Column(_("Review ID"),
                                field_name=review_id_field,
                                shrink=True,
                                sortable=True,
                                link=True)

        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"
        ]

        # Add local timezone info to the columns
        user = self.request.user
        if user.is_authenticated():
            self.timezone = pytz.timezone(user.get_profile().timezone)
            self.time_added.timezone = self.timezone
            self.last_updated.timezone = self.timezone
            self.diff_updated.timezone = self.timezone

    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()
示例#27
0
文件: grids.py 项目: qbig/reviewboard
class ReviewRequestDataGrid(DataGrid):
    """A datagrid that displays a list of review requests.

    This datagrid accepts the show_closed parameter in the URL, allowing
    submitted review requests to be filtered out or displayed.
    """
    my_comments = MyCommentsColumn()
    star = ReviewRequestStarColumn()
    ship_it = ShipItColumn()
    summary = SummaryColumn()
    submitter = SubmitterColumn()

    branch = Column(label=_('Branch'),
                    db_field='branch',
                    shrink=True,
                    sortable=True,
                    link=False)
    bugs_closed = BugsColumn()
    repository = RepositoryColumn()
    time_added = DateTimeColumn(label=_('Posted'),
                                detailed_label=_('Posted Time'),
                                format='F jS, Y, P',
                                shrink=True,
                                css_class=lambda r: ageid(r.time_added))
    last_updated = DateTimeColumn(label=_('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 = DiffUpdatedColumn(
        format='F jS, Y, P',
        shrink=True,
        css_class=lambda r: ageid(r.diffset_history.last_diff_updated))
    time_added_since = DateTimeSinceColumn(
        label=_('Posted'),
        detailed_label=_('Posted Time (Relative)'),
        field_name='time_added',
        shrink=True,
        css_class=lambda r: ageid(r.time_added))
    last_updated_since = DateTimeSinceColumn(
        label=_('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 = DiffUpdatedSinceColumn(
        detailed_label=_('Diff Updated (Relative)'),
        shrink=True,
        css_class=lambda r: ageid(r.diffset_history.last_diff_updated))
    diff_size = DiffSizeColumn()

    review_count = ReviewCountColumn()

    target_groups = GroupsColumn()
    target_people = PeopleColumn()
    to_me = ToMeColumn()

    review_id = ReviewRequestIDColumn()

    def __init__(self, *args, **kwargs):
        self.local_site = kwargs.pop('local_site', None)

        super(ReviewRequestDataGrid, self).__init__(*args, **kwargs)

        self.listview_template = 'datagrids/review_request_listview.html'
        self.profile_sort_field = 'sort_review_request_columns'
        self.profile_columns_field = 'review_request_columns'
        self.show_closed = True
        self.submitter_url_name = 'user'
        self.default_sort = ['-last_updated']
        self.default_columns = [
            'star', 'summary', 'submitter', 'time_added', 'last_updated_since'
        ]

        # Add local timezone info to the columns
        user = self.request.user
        if user.is_authenticated():
            profile, is_new = Profile.objects.get_or_create(user=user)
            self.timezone = pytz.timezone(profile.timezone)
            self.time_added.timezone = self.timezone
            self.last_updated.timezone = self.timezone
            self.diff_updated.timezone = self.timezone

    def load_extra_state(self, profile):
        if profile:
            self.show_closed = profile.show_closed

        try:
            self.show_closed = (int(
                self.request.GET.get('show-closed', self.show_closed)) != 0)
        except ValueError:
            # do nothing
            pass

        if not self.show_closed:
            self.queryset = self.queryset.filter(status='P')

        self.queryset = self.queryset.filter(local_site=self.local_site)

        if profile and self.show_closed != profile.show_closed:
            profile.show_closed = self.show_closed
            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, state, obj, value):
        if value and isinstance(value, User):
            return local_site_reverse('user',
                                      request=self.request,
                                      args=[value])

        return obj.get_absolute_url()