Improve admin interfaces.

This commit is contained in:
Roberto Rosario
2015-09-08 18:13:22 -04:00
parent f21ee34a94
commit 02353927db
18 changed files with 139 additions and 67 deletions

View File

@@ -5,11 +5,12 @@ from django.contrib import admin
from .models import AccessControlList from .models import AccessControlList
@admin.register(AccessControlList)
class AccessControlListAdmin(admin.ModelAdmin): class AccessControlListAdmin(admin.ModelAdmin):
list_display = ('pk', 'role', 'content_object') filter_horizontal = ('permissions',)
list_display = ('pk', 'role', 'content_type', 'content_object')
list_display_links = ('pk',) list_display_links = ('pk',)
list_filter = ('content_type',)
related_lookup_fields = { related_lookup_fields = {
'generic': (('content_type', 'object_id'),), 'generic': (('content_type', 'object_id'),),
} }
admin.site.register(AccessControlList, AccessControlListAdmin)

View File

@@ -2,6 +2,21 @@ from __future__ import unicode_literals
from django.contrib import admin from django.contrib import admin
from .models import SharedUploadedFile from .models import SharedUploadedFile, UserLocaleProfile
admin.site.register(SharedUploadedFile)
@admin.register(SharedUploadedFile)
class SharedUploadedFileAdmin(admin.ModelAdmin):
date_hierarchy = 'datetime'
list_display = ('file', 'filename', 'datetime',)
readonly_fields = list_display
@admin.register(UserLocaleProfile)
class UserLocaleProfileAdmin(admin.ModelAdmin):
list_display = ('user', 'timezone', 'language',)
list_filter = ('timezone', 'language')
search_fields = (
'user__username', 'user__first_name', 'user__last_name',
'user__email', 'timezone',
)

View File

@@ -5,10 +5,10 @@ from django.contrib import admin
from .models import Comment from .models import Comment
@admin.register(Comment)
class CommentAdmin(admin.ModelAdmin): class CommentAdmin(admin.ModelAdmin):
date_hierarchy = 'submit_date' date_hierarchy = 'submit_date'
list_display = ('document', 'submit_date', 'user', 'comment') list_display = ('document', 'submit_date', 'user', 'comment')
list_filter = ('user',)
readonly_fields = ('document', 'submit_date', 'user', 'comment') readonly_fields = ('document', 'submit_date', 'user', 'comment')
search_fields = ('comment',)
admin.site.register(Comment, CommentAdmin)

View File

@@ -12,15 +12,15 @@ class IndexTemplateNodeInline(admin.StackedInline):
model = IndexTemplateNode model = IndexTemplateNode
@admin.register(Index)
class IndexAdmin(admin.ModelAdmin): class IndexAdmin(admin.ModelAdmin):
filter_horizontal = ('document_types',) filter_horizontal = ('document_types',)
inlines = [IndexTemplateNodeInline] inlines = (IndexTemplateNodeInline,)
list_display = ('label', 'enabled', 'get_document_types') list_display = ('label', 'enabled', 'get_document_types')
def get_document_types(self, instance): def get_document_types(self, instance):
return ', '.join(['"{0}"'.format(document_type) for document_type in instance.document_types.all()]) or _('None') return ', '.join(
['"{0}"'.format(document_type) for document_type in instance.document_types.all()]
) or _('None')
get_document_types.short_description = _('Document types') get_document_types.short_description = _('Document types')
admin.site.register(Index, IndexAdmin)

View File

@@ -5,13 +5,18 @@ from django.contrib import admin
from .models import DocumentVersionSignature from .models import DocumentVersionSignature
@admin.register(DocumentVersionSignature)
class DocumentVersionSignatureAdmin(admin.ModelAdmin): class DocumentVersionSignatureAdmin(admin.ModelAdmin):
def document(self, instance):
return instance.document_version.document
def has_detached_signature(self, instance): def has_detached_signature(self, instance):
return True if instance.signature_file else False return True if instance.signature_file else False
has_detached_signature.boolean = True has_detached_signature.boolean = True
list_display = ('document_version', 'has_embedded_signature', 'has_detached_signature') list_display = (
'document', 'document_version', 'has_embedded_signature',
'has_detached_signature'
)
list_display_links = ('document_version',) list_display_links = ('document_version',)
search_fields = ('document_version__document__label',)
admin.site.register(DocumentVersionSignature, DocumentVersionSignatureAdmin)

View File

@@ -2,7 +2,15 @@ from __future__ import unicode_literals
from django.contrib import admin from django.contrib import admin
from .models import Workflow, WorkflowInstance, WorkflowState, WorkflowTransition from .models import (
Workflow, WorkflowInstance, WorkflowInstanceLogEntry, WorkflowState,
WorkflowTransition
)
class WorkflowInstanceLogEntryInline(admin.TabularInline):
extra = 1
model = WorkflowInstanceLogEntry
class WorkflowStateInline(admin.TabularInline): class WorkflowStateInline(admin.TabularInline):
@@ -13,13 +21,21 @@ class WorkflowTransitionInline(admin.TabularInline):
model = WorkflowTransition model = WorkflowTransition
@admin.register(Workflow)
class WorkflowAdmin(admin.ModelAdmin): class WorkflowAdmin(admin.ModelAdmin):
inlines = [WorkflowStateInline, WorkflowTransitionInline] def document_types_list(self, instance):
return ','.join(
instance.document_types.values_list('label', flat=True)
)
filter_horizontal = ('document_types',)
inlines = (WorkflowStateInline, WorkflowTransitionInline)
list_display = ('label', 'document_types_list')
@admin.register(WorkflowInstance)
class WorkflowInstanceAdmin(admin.ModelAdmin): class WorkflowInstanceAdmin(admin.ModelAdmin):
list_display = ('workflow', 'document') inlines = (WorkflowInstanceLogEntryInline,)
list_display = (
'workflow', 'document', 'get_current_state', 'get_last_transition'
admin.site.register(Workflow, WorkflowAdmin) )
admin.site.register(WorkflowInstance, WorkflowInstanceAdmin)

View File

@@ -29,6 +29,7 @@ class DocumentVersionInline(admin.StackedInline):
allow_add = True allow_add = True
@admin.register(DeletedDocument)
class DeletedDocumentAdmin(admin.ModelAdmin): class DeletedDocumentAdmin(admin.ModelAdmin):
date_hierarchy = 'deleted_date_time' date_hierarchy = 'deleted_date_time'
list_filter = ('document_type',) list_filter = ('document_type',)
@@ -36,35 +37,28 @@ class DeletedDocumentAdmin(admin.ModelAdmin):
readonly_fields = ('uuid', 'document_type') readonly_fields = ('uuid', 'document_type')
@admin.register(Document)
class DocumentAdmin(admin.ModelAdmin): class DocumentAdmin(admin.ModelAdmin):
date_hierarchy = 'date_added' date_hierarchy = 'date_added'
inlines = [ inlines = (DocumentVersionInline,)
DocumentVersionInline list_filter = ('document_type', 'is_stub')
] list_display = ('uuid', 'label', 'document_type', 'date_added', 'is_stub')
list_filter = ('document_type',)
list_display = ('uuid', 'label', 'document_type', 'date_added')
readonly_fields = ('uuid', 'document_type', 'date_added') readonly_fields = ('uuid', 'document_type', 'date_added')
@admin.register(DocumentType)
class DocumentTypeAdmin(admin.ModelAdmin): class DocumentTypeAdmin(admin.ModelAdmin):
inlines = ( inlines = (DocumentTypeFilenameInline,)
DocumentTypeFilenameInline,
)
list_display = ( list_display = (
'label', 'trash_time_period', 'trash_time_unit', 'delete_time_period', 'label', 'trash_time_period', 'trash_time_unit', 'delete_time_period',
'delete_time_unit' 'delete_time_unit'
) )
@admin.register(RecentDocument)
class RecentDocumentAdmin(admin.ModelAdmin): class RecentDocumentAdmin(admin.ModelAdmin):
date_hierarchy = 'datetime_accessed' date_hierarchy = 'datetime_accessed'
list_display = ('user', 'document', 'datetime_accessed') list_display = ('user', 'document', 'datetime_accessed')
list_display_links = ('document', 'datetime_accessed') list_display_links = ('document', 'datetime_accessed')
list_filter = ('user',) list_filter = ('user',)
readonly_fields = ('user', 'document', 'datetime_accessed') readonly_fields = ('user', 'document', 'datetime_accessed')
admin.site.register(DeletedDocument, DeletedDocumentAdmin)
admin.site.register(Document, DocumentAdmin)
admin.site.register(DocumentType, DocumentTypeAdmin)
admin.site.register(RecentDocument, RecentDocumentAdmin)

View File

@@ -5,10 +5,10 @@ from django.contrib import admin
from .models import RecentSearch from .models import RecentSearch
@admin.register(RecentSearch)
class RecentSearchAdmin(admin.ModelAdmin): class RecentSearchAdmin(admin.ModelAdmin):
date_hierarchy = 'datetime_created'
list_display = ('user', 'query', 'datetime_created', 'hits') list_display = ('user', 'query', 'datetime_created', 'hits')
list_display_links = ('user', 'query', 'datetime_created', 'hits') list_display_links = ('user', 'query', 'datetime_created', 'hits')
list_filter = ('user',)
readonly_fields = ('user', 'query', 'datetime_created', 'hits') readonly_fields = ('user', 'query', 'datetime_created', 'hits')
admin.site.register(RecentSearch, RecentSearchAdmin)

View File

@@ -5,8 +5,6 @@ from django.contrib import admin
from .models import EventType from .models import EventType
@admin.register(EventType)
class EventTypeAdmin(admin.ModelAdmin): class EventTypeAdmin(admin.ModelAdmin):
readonly_fields = ('name', '__str__') readonly_fields = ('name', '__str__')
admin.site.register(EventType, EventTypeAdmin)

View File

@@ -1,5 +1,12 @@
from __future__ import unicode_literals
from django.contrib import admin from django.contrib import admin
from .models import Folder from .models import Folder
admin.site.register(Folder)
@admin.register(Folder)
class FolderAdmin(admin.ModelAdmin):
filter_horizontal = ('documents',)
list_display = ('label', 'user', 'datetime_created')
list_filter = ('user',)

View File

@@ -12,7 +12,13 @@ class SmartLinkConditionInline(admin.StackedInline):
allow_add = True allow_add = True
@admin.register(SmartLink)
class SmartLinkAdmin(admin.ModelAdmin): class SmartLinkAdmin(admin.ModelAdmin):
inlines = [SmartLinkConditionInline] def document_type_list(self, instance):
return ','.join(
instance.document_types.values_list('label', flat=True)
)
admin.site.register(SmartLink, SmartLinkAdmin) filter_horizontal = ('document_types',)
inlines = (SmartLinkConditionInline,)
list_display = ('label', 'dynamic_label', 'enabled', 'document_type_list')

View File

@@ -1,10 +1,11 @@
from __future__ import unicode_literals
from django.contrib import admin from django.contrib import admin
from .models import Lock from .models import Lock
@admin.register(Lock)
class LockAdmin(admin.ModelAdmin): class LockAdmin(admin.ModelAdmin):
model = Lock date_hierarchy = 'creation_datetime'
list_display = ('name', 'creation_datetime', 'timeout')
admin.site.register(Lock, LockAdmin)

View File

@@ -5,10 +5,8 @@ from django.contrib import admin
from .models import LogEntry from .models import LogEntry
@admin.register(LogEntry)
class LogEntryAdmin(admin.ModelAdmin): class LogEntryAdmin(admin.ModelAdmin):
date_hierarchy = 'datetime' date_hierarchy = 'datetime'
list_display = ('datetime', 'message') list_display = ('datetime', 'message')
readonly_fields = ('datetime', 'message') readonly_fields = ('datetime', 'message')
admin.site.register(LogEntry, LogEntryAdmin)

View File

@@ -5,10 +5,8 @@ from django.contrib import admin
from .models import MetadataType from .models import MetadataType
@admin.register(MetadataType)
class MetadataTypeAdmin(admin.ModelAdmin): class MetadataTypeAdmin(admin.ModelAdmin):
list_display = ( list_display = (
'name', 'label', 'default', 'lookup', 'validation', 'parser' 'name', 'label', 'default', 'lookup', 'validation', 'parser'
) )
admin.site.register(MetadataType, MetadataTypeAdmin)

View File

@@ -5,10 +5,14 @@ from django.contrib import admin
from .models import DocumentTypeSettings, DocumentVersionOCRError from .models import DocumentTypeSettings, DocumentVersionOCRError
@admin.register(DocumentTypeSettings)
class DocumentTypeSettingsAdmin(admin.ModelAdmin):
list_display = ('document_type', 'auto_ocr')
@admin.register(DocumentVersionOCRError)
class DocumentVersionOCRErrorAdmin(admin.ModelAdmin): class DocumentVersionOCRErrorAdmin(admin.ModelAdmin):
list_display = ('document_version', 'datetime_submitted') list_display = ('document_version', 'datetime_submitted')
readonly_fields = ('document_version', 'datetime_submitted', 'result') readonly_fields = ('document_version', 'datetime_submitted', 'result')
admin.site.register(DocumentVersionOCRError, DocumentVersionOCRErrorAdmin)
admin.site.register(DocumentTypeSettings)

View File

@@ -5,10 +5,20 @@ from django.contrib import admin
from .models import StoredPermission, Role from .models import StoredPermission, Role
@admin.register(Role)
class RoleAdmin(admin.ModelAdmin):
def groups_list(self, instance):
return ','.join(instance.groups.values_list('name', flat=True))
def permissions_list(self, instance):
return ','.join(instance.permissions.values_list('name', flat=True))
filter_horizontal = ('groups', 'permissions')
list_display = ('label', 'permissions_list', 'groups_list')
@admin.register(StoredPermission)
class StoredPermissionAdmin(admin.ModelAdmin): class StoredPermissionAdmin(admin.ModelAdmin):
list_display = ('namespace', 'name') list_display = ('namespace', 'name')
list_display_links = list_display list_display_links = list_display
list_filter = ('namespace',)
admin.site.register(StoredPermission, StoredPermissionAdmin)
admin.site.register(Role)

View File

@@ -1,9 +1,22 @@
from __future__ import unicode_literals
from django.contrib import admin from django.contrib import admin
from .models import ( from .models import (
StagingFolderSource, WatchFolderSource, WebFormSource StagingFolderSource, WatchFolderSource, WebFormSource
) )
admin.site.register(StagingFolderSource)
admin.site.register(WatchFolderSource) @admin.register(StagingFolderSource)
admin.site.register(WebFormSource) class StagingFolderSourceAdmin(admin.ModelAdmin):
list_display = ('label', 'enabled', 'folder_path', 'preview_width', 'preview_height', 'uncompress', 'delete_after_upload')
@admin.register(WatchFolderSource)
class WatchFolderSourceAdmin(admin.ModelAdmin):
list_display = ('label', 'enabled', 'folder_path', 'uncompress')
@admin.register(WebFormSource)
class WebFormSourceAdmin(admin.ModelAdmin):
list_display = ('label', 'enabled', 'uncompress')

View File

@@ -1,5 +1,11 @@
from __future__ import unicode_literals
from django.contrib import admin from django.contrib import admin
from .models import Tag from .models import Tag
admin.site.register(Tag)
@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
filter_horizontal = ('documents',)
list_display = ('label', 'color')