44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.contrib import admin
|
|
|
|
from organizations.admin import OrganizationAdminMixin
|
|
|
|
from .models import (
|
|
Workflow, WorkflowInstance, WorkflowInstanceLogEntry, WorkflowState,
|
|
WorkflowTransition
|
|
)
|
|
|
|
|
|
class WorkflowInstanceLogEntryInline(admin.TabularInline):
|
|
extra = 1
|
|
model = WorkflowInstanceLogEntry
|
|
|
|
|
|
class WorkflowStateInline(admin.TabularInline):
|
|
model = WorkflowState
|
|
|
|
|
|
class WorkflowTransitionInline(admin.TabularInline):
|
|
model = WorkflowTransition
|
|
|
|
|
|
@admin.register(Workflow)
|
|
class WorkflowAdmin(OrganizationAdminMixin, admin.ModelAdmin):
|
|
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):
|
|
inlines = (WorkflowInstanceLogEntryInline,)
|
|
list_display = (
|
|
'workflow', 'document', 'get_current_state', 'get_last_transition'
|
|
)
|