diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-09-01 17:00:53 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-09-01 17:00:53 +0200 |
commit | 7e7f4b81a8d7ec665c8945ef2ef26c9d5f13a66d (patch) | |
tree | e6c04aea5618e384bf37825b9198d474756aa7ca | |
parent | d9bd9cc1683d5e48f1544270b72fda5581a236cd (diff) | |
download | Ishtar-7e7f4b81a8d7ec665c8945ef2ef26c9d5f13a66d.tar.bz2 Ishtar-7e7f4b81a8d7ec665c8945ef2ef26c9d5f13a66d.zip |
Admin: for all hierarchical type lists add a colum for parent (refs #4956)
-rw-r--r-- | archaeological_finds/admin.py | 25 | ||||
-rw-r--r-- | archaeological_operations/admin.py | 6 | ||||
-rw-r--r-- | ishtar_common/admin.py | 17 |
3 files changed, 25 insertions, 23 deletions
diff --git a/archaeological_finds/admin.py b/archaeological_finds/admin.py index 1da39ed82..00f5501b5 100644 --- a/archaeological_finds/admin.py +++ b/archaeological_finds/admin.py @@ -28,8 +28,7 @@ from django.contrib.gis.forms import PointField, MultiPolygonField, \ from ishtar_common.utils import ugettext_lazy as _ from ishtar_common.apps import admin_site -from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin, \ - HierarchicalTypeAdmin +from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin from . import models @@ -181,7 +180,7 @@ class TreatmentFileAdmin(HistorizedObjectAdmin): admin_site.register(models.TreatmentFile, TreatmentFileAdmin) -class ObjectTypeAdmin(HierarchicalTypeAdmin): +class ObjectTypeAdmin(GeneralTypeAdmin): model = models.ObjectType form = make_ajax_form(model, { 'parent': 'object_type', @@ -191,24 +190,22 @@ class ObjectTypeAdmin(HierarchicalTypeAdmin): admin_site.register(models.ObjectType, ObjectTypeAdmin) -class MaterialTypeAdmin(HierarchicalTypeAdmin): - list_display = HierarchicalTypeAdmin.list_display + ['recommendation'] +class MaterialTypeAdmin(GeneralTypeAdmin): search_fields = ('label', 'parent__label', 'comment',) model = models.MaterialType form = make_ajax_form(model, { 'parent': 'material_type', }) + extra_list_display = ['recommendation'] admin_site.register(models.MaterialType, MaterialTypeAdmin) -admin_site.register(models.CommunicabilityType, HierarchicalTypeAdmin) +admin_site.register(models.CommunicabilityType, GeneralTypeAdmin) class TreatmentTypeAdmin(GeneralTypeAdmin): - list_display = HierarchicalTypeAdmin.list_display[:-1] + ['order'] + \ - [HierarchicalTypeAdmin.list_display[-1]] list_filter = [ 'virtual', 'destructive', 'create_new_find', 'upstream_is_many', 'downstream_is_many', 'destructive', 'change_reference_location', @@ -216,12 +213,16 @@ class TreatmentTypeAdmin(GeneralTypeAdmin): ] model = models.TreatmentType + def get_list_display(self, request): + list_display = super(TreatmentTypeAdmin, self).get_list_display(request) + return list_display[:-1] + ['order'] + [list_display[-1]] + admin_site.register(models.TreatmentType, TreatmentTypeAdmin) class CheckedTypeAdmin(GeneralTypeAdmin): - list_display = GeneralTypeAdmin.list_display + ['order'] + extra_list_display = ["order"] model = models.CheckedType @@ -230,17 +231,17 @@ admin_site.register(models.CheckedType, CheckedTypeAdmin) @admin.register(models.ConservatoryState, site=admin_site) class ConservatoryStateAdmin(GeneralTypeAdmin): - list_display = GeneralTypeAdmin.list_display + ['order'] + extra_list_display = ["order"] @admin.register(models.TreatmentFileType, site=admin_site) class TreatmentFileType(GeneralTypeAdmin): - list_display = GeneralTypeAdmin.list_display + ["treatment_type"] + extra_list_display = ["treatment_type"] @admin.register(models.TreatmentState, site=admin_site) class TreatmentState(GeneralTypeAdmin): - list_display = GeneralTypeAdmin.list_display[:-1] + ["order", "executed"] + extra_list_display = ["order", "executed"] general_models = [ diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py index 057936fc8..3d844e944 100644 --- a/archaeological_operations/admin.py +++ b/archaeological_operations/admin.py @@ -28,8 +28,7 @@ from django.contrib.gis.forms import PointField, MultiPolygonField, OSMWidget from ishtar_common.utils import ugettext_lazy as _ from ishtar_common.apps import admin_site -from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin, \ - HierarchicalTypeAdmin +from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin from . import models @@ -216,8 +215,7 @@ class ParcelOwnerAdmin(HistorizedObjectAdmin): admin_site.register(models.ParcelOwner, ParcelOwnerAdmin) -class CulturalAttributionTypeAdmin(HierarchicalTypeAdmin): - list_display = HierarchicalTypeAdmin.list_display +class CulturalAttributionTypeAdmin(GeneralTypeAdmin): search_fields = ('label', 'parent__label', ) model = models.CulturalAttributionType form = make_ajax_form(model, { diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index e606a81e7..b79dd8e5f 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -841,12 +841,19 @@ admin_site.register(models.Town, TownAdmin) class GeneralTypeAdmin(ImportActionAdmin, ImportJSONActionAdmin): - list_display = ['label', 'txt_idx', 'available', 'comment'] search_fields = ('label', 'txt_idx', 'comment',) list_filter = ('available',) save_on_top = True actions = [export_as_csv_action(), serialize_type_action] prepopulated_fields = {"txt_idx": ("label",)} + extra_list_display = [] + + def get_list_display(self, request): + if hasattr(self.model, "parent"): + return ['label', 'txt_idx', 'parent', 'available', 'comment'] + \ + self.extra_list_display + return ['label', 'txt_idx', 'available', 'comment'] + \ + self.extra_list_display @csrf_protect_m def get_changelist_queryset(self, request): @@ -904,10 +911,6 @@ class GeneralTypeAdmin(ImportActionAdmin, ImportJSONActionAdmin): request, object_id, form_url, extra_context) -class HierarchicalTypeAdmin(GeneralTypeAdmin): - list_display = ['label', 'txt_idx', 'parent', 'available', 'comment'] - - general_models = [models.OrganizationType, models.SourceType, models.AuthorType, models.TitleType, models.Format, models.SupportType, models.PersonType, models.LicenseType] @@ -1299,7 +1302,7 @@ admin_site.register(models.TargetKey, TargetKeyAdmin) class OperationTypeAdmin(GeneralTypeAdmin): - list_display = GeneralTypeAdmin.list_display + ['order', 'preventive'] + extra_list_display = ["order", "preventive"] model = models.OperationType @@ -1307,7 +1310,7 @@ admin_site.register(models.OperationType, OperationTypeAdmin) class SpatialReferenceSystemAdmin(GeneralTypeAdmin): - list_display = GeneralTypeAdmin.list_display + ['order', 'srid'] + extra_list_display = ['order', 'srid'] model = models.SpatialReferenceSystem |