pulseapi/entries/admin.py (66 lines of code) (raw):

from django.contrib import admin from .models import Entry, ModerationState from pulseapi.entries.forms import EntryAdminForm from pulseapi.utility.autocomplete import autoselect_fields_check_can_add class ModerationStateAdmin(admin.ModelAdmin): """ Show a list of moderation states available for entry moderation """ fields = ( 'name', ) ordering = ( 'id', ) class EntryAdmin(admin.ModelAdmin): """ Show a list of entries a user has submitted in the EmailUser Admin app """ form = EntryAdminForm fields = ( 'id', 'created', 'entry_type', 'moderation_state', 'title', 'description', 'content_url', 'thumbnail', 'thumbnail_image_tag', 'tags', 'get_involved', 'get_involved_url', 'interest', 'featured', 'internal_notes', 'issues', 'help_types', 'published_by', 'creators', 'bookmark_count', ) readonly_fields = ( 'id', 'created', 'thumbnail_image_tag', ) ordering = ( '-created', ) list_display = ( 'id', 'entry_type', 'title', 'created', 'published_by', 'moderation_state', ) # this allows us to filter on moderation state in the admin list_filter = ( 'moderation_state', 'featured' ) search_fields = ( 'title', 'tags__name', ) def get_form(self, request, *args, **kwargs): form = super().get_form(request, *args, **kwargs) autoselect_fields_check_can_add(form, self.model, request.user) form.current_user = request.user return form admin.site.register(ModerationState, ModerationStateAdmin) admin.site.register(Entry, EntryAdmin)