| author | ymh <ymh.work@gmail.com> |
| Sun, 14 Jul 2024 21:59:51 +0200 | |
| changeset 665 | 69d13e7dd286 |
| parent 621 | 192ce5938726 |
| permissions | -rw-r--r-- |
| 665 | 1 |
# -*- coding: utf-8 -*- |
| 612 | 2 |
from django import forms |
3 |
from django.contrib import admin |
|
4 |
from django.core.urlresolvers import reverse |
|
5 |
from .models import Renkan, Revision, Workspace |
|
| 621 | 6 |
from renkanmanager import settings |
| 612 | 7 |
|
8 |
class RenkanAdmin(admin.ModelAdmin): |
|
| 621 | 9 |
list_display = ('renkan_guid', 'current_revision_link', 'title', 'creator_display_field', 'creation_date') |
10 |
ordering = ('-creation_date',) |
|
11 |
||
12 |
readonly_fields = ('current_revision_link', 'title', 'content', 'is_copy', 'revision_count', 'creation_date', 'renkan_guid') |
|
13 |
||
| 612 | 14 |
fieldsets = ( |
15 |
(None, {'fields': ('renkan_guid',)}), |
|
16 |
("Révision courante", {'fields': ('current_revision_link', 'title', 'content')}), |
|
17 |
("Copie", {'fields': ( 'is_copy', 'source_revision',)}), |
|
18 |
("Création", {'fields': ('creator', 'creation_date')}), |
|
19 |
) |
|
|
614
23416a833ca8
Change guid fields to more optimal type + migration
ymh <ymh.work@gmail.com>
parents:
612
diff
changeset
|
20 |
|
| 621 | 21 |
search_fields = ['renkan_guid', 'current_revision__title', 'creator__'+settings.RENKAN_USER_DISPLAY_FIELD] |
22 |
||
23 |
def creator_display_field(self, obj): |
|
24 |
return getattr(obj.creator, settings.RENKAN_USER_DISPLAY_FIELD) if obj.creator else None |
|
25 |
creator_display_field.short_description = 'creator' |
|
26 |
||
27 |
def get_queryset(self, request): |
|
28 |
queryset = super(RenkanAdmin, self).get_queryset(request) |
|
29 |
return queryset.select_related('current_revision', 'creator') |
|
30 |
||
| 612 | 31 |
def current_revision_link(self, obj): |
32 |
return '<a href="%s">%s</a>' % (reverse("admin:renkanmanager_revision_change", args=(obj.current_revision.id,)), obj.current_revision.revision_guid) |
|
33 |
current_revision_link.allow_tags = True |
|
|
614
23416a833ca8
Change guid fields to more optimal type + migration
ymh <ymh.work@gmail.com>
parents:
612
diff
changeset
|
34 |
current_revision_link.short_description = "Révision courante" |
| 612 | 35 |
|
36 |
class RevisionAdmin(admin.ModelAdmin): |
|
| 621 | 37 |
list_display = ('revision_guid', 'parent_renkan_link', 'creator_display_field', 'title', 'modification_date') |
38 |
ordering = ('-modification_date',) |
|
39 |
readonly_fields = ('parent_renkan_link', 'creation_date', 'modification_date','revision_guid', 'parent_renkan') |
|
40 |
||
41 |
search_fields = ('revision_guid', 'parent_renkan__renkan_guid', 'title', 'creator__'+settings.RENKAN_USER_DISPLAY_FIELD) |
|
42 |
||
| 612 | 43 |
fieldsets = ( |
44 |
(None, {'fields': ('revision_guid', 'parent_renkan',)}), |
|
45 |
("Contenu", {'fields': ('title', 'content',)}), |
|
46 |
("Création", {'fields': ('creator', 'creation_date')}), |
|
47 |
("Edition", {'fields': ('last_updated_by', 'modification_date')}) |
|
48 |
) |
|
|
614
23416a833ca8
Change guid fields to more optimal type + migration
ymh <ymh.work@gmail.com>
parents:
612
diff
changeset
|
49 |
|
| 621 | 50 |
def creator_display_field(self, obj): |
51 |
return getattr(obj.creator, settings.RENKAN_USER_DISPLAY_FIELD) if obj.creator else None |
|
52 |
creator_display_field.short_description = 'creator' |
|
53 |
||
54 |
||
| 612 | 55 |
def parent_renkan_link(self, obj): |
56 |
return '<a href="%s">%s</a>' % (reverse("admin:renkanmanager_renkan_change", args=(obj.parent_renkan.id,)), obj.parent_renkan.renkan_guid) |
|
57 |
||
58 |
parent_renkan_link.allow_tags = True |
|
|
614
23416a833ca8
Change guid fields to more optimal type + migration
ymh <ymh.work@gmail.com>
parents:
612
diff
changeset
|
59 |
parent_renkan_link.short_description = "Renkan associé" |
|
23416a833ca8
Change guid fields to more optimal type + migration
ymh <ymh.work@gmail.com>
parents:
612
diff
changeset
|
60 |
|
| 621 | 61 |
def get_queryset(self, request): |
62 |
queryset = super(RevisionAdmin, self).get_queryset(request) |
|
63 |
return queryset.select_related('parent_renkan', 'creator') |
|
64 |
||
65 |
||
| 612 | 66 |
class WorkspaceAdmin(admin.ModelAdmin): |
67 |
pass |
|
68 |
||
69 |
admin.site.register(Renkan, RenkanAdmin) |
|
70 |
admin.site.register(Revision, RevisionAdmin) |
|
| 621 | 71 |
admin.site.register(Workspace, WorkspaceAdmin) |