diff -r 22b5739772d8 -r 192ce5938726 server/python/django2/renkanmanager/admin.py --- a/server/python/django2/renkanmanager/admin.py Wed Jun 22 01:15:52 2016 +0200 +++ b/server/python/django2/renkanmanager/admin.py Thu Jun 23 17:50:37 2016 +0200 @@ -2,12 +2,14 @@ from django.contrib import admin from django.core.urlresolvers import reverse from .models import Renkan, Revision, Workspace +from renkanmanager import settings class RenkanAdmin(admin.ModelAdmin): - list_display = ('renkan_guid', 'current_revision_link', 'title', 'creator', 'creation_date') - ordering = ('creation_date',) - #readonly_fields = ('current_revision_link', 'source_revision', 'title', 'content', 'is_copy', 'revision_count', 'creation_date') - readonly_fields = ('current_revision_link', 'title', 'content', 'is_copy', 'revision_count', 'creation_date') + list_display = ('renkan_guid', 'current_revision_link', 'title', 'creator_display_field', 'creation_date') + ordering = ('-creation_date',) + + readonly_fields = ('current_revision_link', 'title', 'content', 'is_copy', 'revision_count', 'creation_date', 'renkan_guid') + fieldsets = ( (None, {'fields': ('renkan_guid',)}), ("Révision courante", {'fields': ('current_revision_link', 'title', 'content')}), @@ -15,15 +17,28 @@ ("Création", {'fields': ('creator', 'creation_date')}), ) + search_fields = ['renkan_guid', 'current_revision__title', 'creator__'+settings.RENKAN_USER_DISPLAY_FIELD] + + def creator_display_field(self, obj): + return getattr(obj.creator, settings.RENKAN_USER_DISPLAY_FIELD) if obj.creator else None + creator_display_field.short_description = 'creator' + + def get_queryset(self, request): + queryset = super(RenkanAdmin, self).get_queryset(request) + return queryset.select_related('current_revision', 'creator') + def current_revision_link(self, obj): return '%s' % (reverse("admin:renkanmanager_revision_change", args=(obj.current_revision.id,)), obj.current_revision.revision_guid) current_revision_link.allow_tags = True current_revision_link.short_description = "Révision courante" class RevisionAdmin(admin.ModelAdmin): - list_display = ('revision_guid', 'parent_renkan_link', 'creator', 'title', 'creation_date') - ordering = ('creation_date',) - readonly_fields = ('parent_renkan_link', 'creation_date', 'modification_date',) + list_display = ('revision_guid', 'parent_renkan_link', 'creator_display_field', 'title', 'modification_date') + ordering = ('-modification_date',) + readonly_fields = ('parent_renkan_link', 'creation_date', 'modification_date','revision_guid', 'parent_renkan') + + search_fields = ('revision_guid', 'parent_renkan__renkan_guid', 'title', 'creator__'+settings.RENKAN_USER_DISPLAY_FIELD) + fieldsets = ( (None, {'fields': ('revision_guid', 'parent_renkan',)}), ("Contenu", {'fields': ('title', 'content',)}), @@ -31,15 +46,25 @@ ("Edition", {'fields': ('last_updated_by', 'modification_date')}) ) + def creator_display_field(self, obj): + return getattr(obj.creator, settings.RENKAN_USER_DISPLAY_FIELD) if obj.creator else None + creator_display_field.short_description = 'creator' + + def parent_renkan_link(self, obj): return '%s' % (reverse("admin:renkanmanager_renkan_change", args=(obj.parent_renkan.id,)), obj.parent_renkan.renkan_guid) parent_renkan_link.allow_tags = True parent_renkan_link.short_description = "Renkan associé" + def get_queryset(self, request): + queryset = super(RevisionAdmin, self).get_queryset(request) + return queryset.select_related('parent_renkan', 'creator') + + class WorkspaceAdmin(admin.ModelAdmin): pass admin.site.register(Renkan, RenkanAdmin) admin.site.register(Revision, RevisionAdmin) -admin.site.register(Workspace) +admin.site.register(Workspace, WorkspaceAdmin)