Example #1
0
class UsersDataGrid(DataGrid):
    """A datagrid showing a list of users registered on Review Board."""
    username = Column(_('Username'), link=True, sortable=True)
    fullname = Column(_('Full Name'),
                      field_name='get_full_name',
                      link=True,
                      expand=True)
    pending_count = PendingCountColumn(_('Open Review Requests'),
                                       field_name='directed_review_requests',
                                       shrink=True)

    def __init__(self,
                 request,
                 queryset=User.objects.filter(is_active=True),
                 title=_('All users'),
                 local_site=None):
        if local_site:
            qs = queryset.filter(local_site=local_site)
        else:
            qs = queryset

        super(UsersDataGrid, self).__init__(request, qs, title)

        self.default_sort = ['username']
        self.profile_sort_field = 'sort_submitter_columns'
        self.profile_columns_field = 'submitter_columns'
        self.default_columns = ['username', 'fullname', 'pending_count']

    def link_to_object(self, state, obj, value):
        return local_site_reverse('user',
                                  request=self.request,
                                  args=[obj.username])
Example #2
0
class SubmitterDataGrid(DataGrid):
    """
    A datagrid showing a list of submitters.
    """
    username = Column(_("Username"), link=True, sortable=True)
    fullname = Column(_("Full Name"),
                      field_name="get_full_name",
                      link=True,
                      expand=True)
    pending_count = PendingCountColumn(_("Pending Reviews"),
                                       field_name="directed_review_requests",
                                       shrink=True)

    def __init__(self,
                 request,
                 queryset=User.objects.filter(is_active=True),
                 title=_("All submitters"),
                 local_site=None):
        if local_site:
            qs = queryset.filter(local_site=local_site)
        else:
            qs = queryset

        DataGrid.__init__(self, request, qs, title)
        self.default_sort = ["username"]
        self.profile_sort_field = 'sort_submitter_columns'
        self.profile_columns_field = 'submitter_columns'
        self.default_columns = ["username", "fullname", "pending_count"]

    def link_to_object(self, obj, value):
        return local_site_reverse("user",
                                  request=self.request,
                                  args=[obj.username])
Example #3
0
class GroupDataGrid(DataGrid):
    """
    A datagrid showing a list of review groups.
    """
    star          = ReviewGroupStarColumn()
    name          = Column(_("Group ID"), link=True, sortable=True)
    displayname   = Column(_("Group Name"), field_name="display_name",
                           link=True, expand=True)
    pending_count = PendingCountColumn(_("Pending Reviews"),
                                       field_name="review_requests",
                                       link=True,
                                       shrink=True)
    member_count  = GroupMemberCountColumn(_("Members"),
                                           field_name="members",
                                           shrink=True)

    def __init__(self, request, title=_("All groups"), *args, **kwargs):
        local_site = kwargs.pop('local_site', None)
        queryset = Group.objects.accessible(request.user, local_site=local_site)

        DataGrid.__init__(self, request, queryset=queryset, title=title,
                          *args, **kwargs)
        self.profile_sort_field = 'sort_group_columns'
        self.profile_columns_field = 'group_columns'
        self.default_sort = ["name"]
        self.default_columns = [
            "star", "name", "displayname", "pending_count"
        ]

    @staticmethod
    def link_to_object(obj, value):
        return obj.get_absolute_url()
Example #4
0
class GroupDataGrid(DataGrid):
    """A datagrid showing a list of review groups accessible by the user."""
    star = ReviewGroupStarColumn()
    name = Column(_('Group ID'), link=True, sortable=True)
    displayname = Column(_('Group Name'),
                         field_name='display_name',
                         link=True,
                         expand=True)
    pending_count = PendingCountColumn(_('Open Review Requests'),
                                       field_name='review_requests',
                                       link=True,
                                       shrink=True)
    member_count = GroupMemberCountColumn(_('Members'),
                                          field_name='members',
                                          shrink=True)

    def __init__(self, request, title=_('All groups'), *args, **kwargs):
        local_site = kwargs.pop('local_site', None)
        queryset = Group.objects.accessible(request.user,
                                            local_site=local_site)

        super(GroupDataGrid, self).__init__(request,
                                            queryset=queryset,
                                            title=title,
                                            *args,
                                            **kwargs)

        self.profile_sort_field = 'sort_group_columns'
        self.profile_columns_field = 'group_columns'
        self.default_sort = ['name']
        self.default_columns = ['star', 'name', 'displayname', 'pending_count']

    @staticmethod
    def link_to_object(state, obj, value):
        return obj.get_absolute_url()
Example #5
0
 def __init__(self, label="Date d'achat",
              detailed_label="Date d'achat",
              *args, **kwargs):
     Column.__init__(self, label=label, detailed_label=detailed_label,
                     *kwargs, **kwargs)
     self.sortable = True
     self.shrink = True
Example #6
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = static("rb/images/comment-draft-small.png")
     self.image_width = 16
     self.image_height = 16
     self.image_alt = _("My Comments")
     self.detailed_label = _("My Comments")
     self.shrink = True
Example #7
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = static("rb/images/convo.png")
     self.image_width = 18
     self.image_height = 16
     self.image_alt = "New Updates"
     self.detailed_label = "New Updates"
     self.shrink = True
Example #8
0
 def __init__(self, label=_("Reviews"),
              detailed_label=_("Number of Reviews"),
              *args, **kwargs):
     Column.__init__(self, label=label, detailed_label=detailed_label,
                     *kwargs, **kwargs)
     self.shrink = True
     self.link = True
     self.link_func = self.link_to_object
Example #9
0
class GroupDataGrid(DataGrid):
    objid = Column("ID", link=True, sortable=True, field_name="id")
    name = Column("Group Name", link=True, sortable=True, expand=True)

    def __init__(self, request):
        DataGrid.__init__(self, request, Group.objects.all(), "All Groups")
        self.default_sort = []
        self.default_columns = ['objid', 'name']
Example #10
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = settings.MEDIA_URL + "rb/images/convo.png"
     self.image_width = 18
     self.image_height = 16
     self.image_alt = "New Updates"
     self.detailed_label = "New Updates"
     self.shrink = True
Example #11
0
 def __init__(self, label=_("Reviews"),
              detailed_label=_("Number of Reviews"),
              *args, **kwargs):
     Column.__init__(self, label=label, detailed_label=detailed_label,
                     *kwargs, **kwargs)
     self.shrink = True
     self.link = True
     self.link_func = self.link_to_object
Example #12
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = settings.MEDIA_URL + "rb/images/star_on.png"
     self.image_width = 16
     self.image_height = 15
     self.image_alt = "Starred"
     self.detailed_label = "Starred"
     self.shrink = True
Example #13
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = settings.MEDIA_URL + "rb/images/comment-draft-small.png"
     self.image_width = 16
     self.image_height = 16
     self.image_alt = _("My Comments")
     self.detailed_label = _("My Comments")
     self.shrink = True
Example #14
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = "%srb/images/convo.png?%s" % \
         (settings.MEDIA_URL, settings.MEDIA_SERIAL)
     self.image_width = 18
     self.image_height = 16
     self.image_alt = "New Updates"
     self.detailed_label = "New Updates"
     self.shrink = True
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = "%srb/images/star_on.png?%s" % (settings.MEDIA_URL, settings.MEDIA_SERIAL)
     self.image_width = 16
     self.image_height = 15
     self.image_alt = _("Starred")
     self.detailed_label = _("Starred")
     self.shrink = True
     self.all_starred = {}
Example #16
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = static("rb/images/star_on.png")
     self.image_width = 16
     self.image_height = 15
     self.image_alt = _("Starred")
     self.detailed_label = _("Starred")
     self.shrink = True
     self.all_starred = {}
Example #17
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self,
                     _("Submitter"),
                     db_field="submitter__username",
                     shrink=True,
                     sortable=True,
                     link=True,
                     *args,
                     **kwargs)
Example #18
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = static("rb/images/star_on.png")
     self.image_width = 16
     self.image_height = 15
     self.image_alt = _("Starred")
     self.detailed_label = _("Starred")
     self.shrink = True
     self.all_starred = {}
Example #19
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = "%srb/images/comment-draft-small.png?%s" % \
         (settings.STATIC_URL, settings.MEDIA_SERIAL)
     self.image_width = 16
     self.image_height = 16
     self.image_alt = _("My Comments")
     self.detailed_label = _("My Comments")
     self.shrink = True
Example #20
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = "%srb/images/convo.png?%s" % \
         (settings.STATIC_URL, settings.MEDIA_SERIAL)
     self.image_width = 18
     self.image_height = 16
     self.image_alt = "New Updates"
     self.detailed_label = "New Updates"
     self.shrink = True
Example #21
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = "%srb/images/comment-draft-small.png?%s" % \
         (settings.MEDIA_URL, settings.MEDIA_SERIAL)
     self.image_width = 16
     self.image_height = 16
     self.image_alt = _("My Comments")
     self.detailed_label = _("My Comments")
     self.shrink = True
Example #22
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = static("rb/images/shipit.png")
     self.image_width = 16
     self.image_height = 16
     self.image_alt = _("Ship It!")
     self.detailed_label = _("Ship It!")
     self.db_field = "shipit_count"
     self.sortable = True
     self.shrink = True
Example #23
0
class GroupDataGrid(DataGrid):
    objid = Column('ID', link=True, sortable=True, field_name='id')
    name = Column('Group Name', link=True, sortable=True, expand=True)

    def __init__(self, request):
        super(GroupDataGrid, self).__init__(request=request,
                                            queryset=Group.objects.all(),
                                            title='All Groups')
        self.default_sort = []
        self.default_columns = ['objid', 'name']
Example #24
0
 def __init__(self, label="Titre",
              detailed_label="Titre",
              *args, **kwargs):
     Column.__init__(self, label=label, detailed_label=detailed_label,
                     *kwargs, **kwargs)
     self.sortable = True
     self.shrink = True
     self.link = True
     self.link_func = self.link_to_object
     self.css_class = "linkedcolumn"
Example #25
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self,
                     _("Repository"),
                     db_field="repository__name",
                     shrink=True,
                     sortable=True,
                     link=False,
                     css_class='repository-column',
                     *args,
                     **kwargs)
Example #26
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = "%srb/images/star_on.png?%s" % \
         (settings.MEDIA_URL, settings.MEDIA_SERIAL)
     self.image_width = 16
     self.image_height = 15
     self.image_alt = _("Starred")
     self.detailed_label = _("Starred")
     self.shrink = True
     self.all_starred = {}
Example #27
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = settings.MEDIA_URL + "rb/images/shipit.png"
     self.image_width = 16
     self.image_height = 16
     self.image_alt = _("Ship It!")
     self.detailed_label = _("Ship It!")
     self.db_field = "shipit_count"
     self.sortable = True
     self.shrink = True
Example #28
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.image_url = "%srb/images/shipit.png?%s" % \
         (settings.MEDIA_URL, settings.MEDIA_SERIAL)
     self.image_width = 16
     self.image_height = 16
     self.image_alt = _("Ship It!")
     self.detailed_label = _("Ship It!")
     self.db_field = "shipit_count"
     self.sortable = True
     self.shrink = True
Example #29
0
 def __init__(self, *args, **kwargs):
     Column.__init__(
         self,
         _("Repository"),
         db_field="repository__name",
         shrink=True,
         sortable=True,
         link=False,
         css_class="repository-column",
         *args,
         **kwargs
     )
Example #30
0
    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
Example #31
0
class NodeDataGrid(DataGrid):
    name = Column('Node', sortable=False)
    is_sync = CheckColumn('Sync')
    is_primary = RadioColumn('Primary')

    def __init__(self, request, data):
        self.pk = PK()
        items = []
        if type(data) in (str, unicode):
            # BEWARE, UGLY HACK!!! Data should be list there already!
            data = json.loads(data)
        for kwargs in data:
            items.append(
                Node(**dict(kwargs.items() + [('id', self.pk.next())])))
        super(NodeDataGrid, self).__init__(request,
                                           FakeQuerySet(Node, items=items),
                                           optimize_sorts=False)
        self.default_sort = []
        self.default_columns = ['name', 'is_sync', 'is_primary']

    # hack
    def load_state(self, render_context=None):
        if self.request.user.is_authenticated():

            def get_profile():
                raise SiteProfileNotAvailable

            setattr(self.request.user, 'get_profile', get_profile)
        super(NodeDataGrid, self).load_state(render_context)
Example #32
0
    def test_add_column(self):
        """Testing DataGridColumnsHook registers column"""
        self.spy_on(DataGrid.add_column)

        DataGridColumnsHook(extension=self.extension,
                            datagrid_cls=DataGrid,
                            columns=[Column(id='sandbox')])

        self.assertTrue(DataGrid.add_column.called)
Example #33
0
    def test_remove_column(self):
        """Testing DataGridColumnsHook unregisters column"""
        self.spy_on(DataGrid.remove_column)

        hook = DataGridColumnsHook(extension=self.extension,
                                   datagrid_cls=DataGrid,
                                   columns=[Column(id='sandbox2')])

        hook.shutdown()

        self.assertTrue(DataGrid.remove_column.called)
Example #34
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.label = _("Groups")
     self.detailed_label = _("Target Groups")
     self.sortable = False
     self.shrink = False
Example #35
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()
Example #36
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.link = True
     self.link_func = self.link_to_object
Example #37
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.link = True
     self.link_func = self.link_to_object
Example #38
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, _("Submitter"), db_field="submitter__username",
                     shrink=True, sortable=True, link=True,
                     *args, **kwargs)
Example #39
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
Example #40
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()
Example #41
0
 def __init__(self, label=_("Summary"), *args, **kwargs):
     Column.__init__(self, label=label, *args, **kwargs)
     self.sortable = True
Example #42
0
 def render_data(self, obj):
     return Column.render_data(self, obj).get_orthologs_link()
Example #43
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.label = _("Groups")
     self.detailed_label = _("Target Groups")
     self.sortable = False
     self.shrink = False
Example #44
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.label = u"\u00BB"  # this is »
     self.detailed_label = u"\u00BB To Me"
     self.shrink = True
Example #45
0
 def __init__(self, *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
Example #46
0
class UsersDataGrid(AlphanumericDataGrid):
    """A datagrid showing a list of users registered on Review Board."""

    username = UsernameColumn(label=_('Username'))
    fullname = Column(_('Full Name'),
                      field_name='get_full_name',
                      link=True,
                      expand=True)
    pending_count = PendingCountColumn(_('Open Review Requests'),
                                       field_name='directed_review_requests',
                                       shrink=True)

    def __init__(self,
                 request,
                 queryset=User.objects.all(),
                 title=_('All users'),
                 local_site=None):
        """Initialize the datagrid."""
        if local_site:
            qs = queryset.filter(local_site=local_site)
        else:
            qs = queryset

        super(UsersDataGrid, self).__init__(request,
                                            qs,
                                            title=title,
                                            sortable_column='username',
                                            extra_regex='^[0-9_\-\.].*')

        self.listview_template = 'datagrids/user_listview.html'
        self.default_sort = ['username']
        self.profile_sort_field = 'sort_submitter_columns'
        self.profile_columns_field = 'submitter_columns'
        self.default_columns = ['username', 'fullname', 'pending_count']
        self.show_inactive = False

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

    def load_extra_state(self, profile):
        """Load extra state for the datagrid.

        This handles hiding or showing inactive users.

        Args:
            profile (reviewboard.accounts.models.Profile):
                The user profile which contains some basic
                configurable settings.

        Returns:
            bool:
            Always returns False.
        """
        show_inactive = self.request.GET.get('show-inactive', 0)

        try:
            self.show_inactive = int(show_inactive)
        except ValueError:
            pass

        if not self.show_inactive:
            self.queryset = self.queryset.filter(is_active=True)

        return False
Example #47
0
 def __init__(self, autolink_func='', *args, **kwargs):
     Column.__init__(self, *args, **kwargs)
     self.autolink_func = autolink_func
Example #48
0
 def render_data(self, obj):
     value = Column.render_data(self, obj)
     return uniprot_link(value)