class AnalysisResultsAdmin(AbstractModelAdmin): """AnalysisResults model admin class. """ list_display = AbstractModelAdmin.list_display + ('name', ) fieldsets = (('Analysis results', { 'fields': _analysis_results_fields }), ) + AbstractModelAdmin.field_sets() # pylint: disable=no-member
class DocumentTagAdmin(AbstractModelAdmin): """Document tag association admin class""" list_display = AbstractModelAdmin.list_display + ('document', 'tag') model_class = DocumentTag fieldsets = (('Document tag', { 'fields': _document_tag_fields }), ) + AbstractModelAdmin.field_sets()
class DocumentAnnotationAdmin(AbstractModelAdmin): """Document annotation association admin class""" list_display = AbstractModelAdmin.list_display + ('document', 'annotation') model_class = DocumentTag fieldsets = (('Document annotation', { 'fields': _document_annotation_fields }), ) + AbstractModelAdmin.field_sets()
class AnnotationAdmin(AbstractModelAdmin): """Annotation model admin class. """ list_display = AbstractModelAdmin.list_display + ('client_id', 'name') fieldsets = (('Annotation', { 'fields': _annotation_fields }), ) + AbstractModelAdmin.field_sets() # pylint: disable=no-member
class ClientAdmin(AbstractModelAdmin): """Client model admin class. """ list_display = AbstractModelAdmin.list_display + ('client_id', 'name') fieldsets = ( ('Client', {'fields': _client_fields}), ) + AbstractModelAdmin.field_sets() # pylint: disable=no-member
class DocumentAssociationAdmin(AbstractModelAdmin): """Document association admin class""" list_display = AbstractModelAdmin.list_display + ('from_document', 'to_document', 'purpose') model_class = DocumentAssociation fieldsets = (('Document association', { 'fields': _document_association_fields }), ) + AbstractModelAdmin.field_sets()
class ClientUserAdmin(AbstractModelAdmin): """Client user model admin class. """ list_display = AbstractModelAdmin.list_display + ('client', 'user') readonly_fields = AbstractModelAdmin.readonly_fields fieldsets = ( ('ClientUser', {'fields': _client_user_fields}), ) + AbstractModelAdmin.field_sets() # pylint: disable=no-member
class DocumentAdmin(AbstractModelAdmin): """Base document admin class""" list_display = AbstractModelAdmin.list_display + ('name', 'document_type') inlines = (DocumentTagInline, DocumentAnnotationgInline, DocumentAssociationInline) fieldsets = (('Document', { 'fields': _document_fields }), ) + AbstractModelAdmin.field_sets() def parent(self): """ Returns the parent object from the request or None. """ if hasattr(self, '_instance'): return self._instance return None def save_model(self, request, obj, form, change): """ Given a model instance save it to the database. """ super(DocumentAdmin, self).save_model(request, obj, form, change) # @TODO: explore avoiding this capture of the instance and follow the foreign key link self._instance = obj # pylint: disable=attribute-defined-outside-init def save_formset(self, request, form, formset, change): """save the underlying inlines""" parent = self.parent() instances = formset.save(commit=False) for instance in instances: self.prepare_system_fields(request, instance, instance, change=None) instance.client = parent.client instance.save() super(DocumentAdmin, self).save_formset(request, form, formset, change)
class CategoryAdmin(AbstractClassificationAdmin): """Category document tag admin class""" model_class = Category fieldsets = (('Category', { 'fields': _classification_fields }), ) + AbstractModelAdmin.field_sets() # pylint: disable=no-member
class TagAdmin(AbstractClassificationAdmin): """Tag admin class""" model_class = Tag fieldsets = (('Tag', { 'fields': _classification_fields }), ) + AbstractModelAdmin.field_sets() # pylint: disable=no-member