SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 531d7528 authored by Jorran de Wit's avatar Jorran de Wit
Browse files

Improve admin filters

parent ad6180aa
No related branches found
No related tags found
No related merge requests found
......@@ -26,6 +26,9 @@ admin.site.register(Issue, IssueAdmin)
class PublicationAdmin(admin.ModelAdmin):
search_fields = ['title', 'author_list']
list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date']
date_hierarchy = 'publication_date'
list_filter = ['in_issue']
admin.site.register(Publication, PublicationAdmin)
......
......@@ -28,8 +28,64 @@ admin.site.unregister(User)
admin.site.register(User, UserAdmin)
class RemarkTypeListFilter(admin.SimpleListFilter):
title = 'Remark Type'
parameter_name = 'type'
def lookups(self, request, model_admin):
"""
Returns a list of tuples to define the filter values in the Admin UI.
"""
return (
('feedback', 'Feedback'),
('nomination', 'Nomination'),
('motion', 'Motion'),
('submission', 'Submission'),
('recommendation', 'Recommendation'),
)
def queryset(self, request, queryset):
"""
Returns the filtered queryset based on the value
provided in the query string and retrievable via
`self.value()`.
"""
if self.value() == 'feedback':
return queryset.filter(feedback__isnull=False)
if self.value() == 'nomination':
return queryset.filter(nomination__isnull=False)
if self.value() == 'motion':
return queryset.filter(motion__isnull=False)
if self.value() == 'submission':
return queryset.filter(submission__isnull=False)
if self.value() == 'recommendation':
return queryset.filter(recommendation__isnull=False)
return None
def remark_text(obj):
return obj.remark[:30]
def get_remark_type(remark):
if remark.feedback:
return 'Feedback'
if remark.nomination:
return 'Nomination'
if remark.motion:
return 'Motion'
if remark.submission:
return 'Submission'
if remark.recommendation:
return 'Recommendation'
return ''
class RemarkAdmin(admin.ModelAdmin):
search_fields = ['contributor', 'remark']
list_display = [remark_text, 'contributor', 'date', get_remark_type]
date_hierarchy = 'date'
list_filter = [RemarkTypeListFilter]
admin.site.register(Remark, RemarkAdmin)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment