diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-09-09 11:07:01 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:20:58 +0100 | 
| commit | 3297cdadc31ea857ed51317081d7d3174af7dbc9 (patch) | |
| tree | 206966ec7684d85811f7a8686fd781d3ab9d9fd4 /ishtar_common/admin.py | |
| parent | 07e3e2e9c3da9f05634a45f65723504c229f2baa (diff) | |
| download | Ishtar-3297cdadc31ea857ed51317081d7d3174af7dbc9.tar.bz2 Ishtar-3297cdadc31ea857ed51317081d7d3174af7dbc9.zip  | |
Migration to Django 2.2 - fixes
- remove django-ajax-select
- fix migrations
Diffstat (limited to 'ishtar_common/admin.py')
| -rw-r--r-- | ishtar_common/admin.py | 81 | 
1 files changed, 37 insertions, 44 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 69f8ec92c..5953896bd 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -29,9 +29,6 @@ import zipfile  from rest_framework.authtoken.admin import TokenAdmin  from rest_framework.authtoken.models import Token -from ajax_select import make_ajax_form -from ajax_select.fields import AutoCompleteSelectField, AutoCompleteSelectMultipleField -  from django.conf import settings  from django.conf.urls import url  from django.contrib import admin, messages @@ -449,9 +446,7 @@ class HistorizedObjectAdmin(admin.ModelAdmin):          "history_m2m",      ] -    AJAX_FORM_DICT = { -        "lock_user": "user", -    } +    autocomplete_fields = ["lock_user"]      def save_model(self, request, obj, form, change):          obj.history_modifier = request.user @@ -526,7 +521,7 @@ class OrganizationAdmin(HistorizedObjectAdmin):          "merge_candidate",      )      model = models.Organization -    form = make_ajax_form(model, {"precise_town": "town"}) +    autocomplete_fields = ["precise_town"]  admin_site.register(models.Organization, OrganizationAdmin) @@ -542,13 +537,13 @@ class ProfileInline(admin.TabularInline):  class PersonAdmin(HistorizedObjectAdmin):      list_display = ("pk", "name", "surname", "raw_name", "email")      list_filter = ("person_types",) -    search_fields = ("name", "surname", "email", "raw_name") +    search_fields = ("name", "surname", "email", "raw_name", "attached_to__name")      exclude = (          "merge_key",          "merge_exclusion",          "merge_candidate",      ) -    form = make_ajax_form(models.Person, {"attached_to": "organization"}) +    autocomplete_fields = ["attached_to"]      model = models.Person      inlines = [ProfileInline] @@ -559,9 +554,10 @@ admin_site.register(models.Person, PersonAdmin)  class AuthorAdmin(admin.ModelAdmin):      list_display = ["person", "author_type"]      list_filter = ("author_type",) -    search_fields = ("person__name", "person__surname", "person__attached_to__name") +    search_fields = ("person__name", "person__surname", "person__attached_to__name", +                     "author_type__label")      model = models.Author -    form = make_ajax_form(models.Author, {"person": "person"}) +    autocomplete_fields = ["person"]  admin_site.register(models.Author, AuthorAdmin) @@ -992,14 +988,6 @@ class ImportJSONActionAdmin(admin.ModelAdmin):          ) -class AdminRelatedTownForm(forms.ModelForm): -    class Meta: -        model = models_common.Town.children.through -        exclude = [] - -    from_town = AutoCompleteSelectField("town", required=True, label=_("Parent")) - -  class AdminTownForm(forms.ModelForm):      class Meta:          model = models_common.Town @@ -1007,15 +995,12 @@ class AdminTownForm(forms.ModelForm):      center = PointField(label=_("Center"), required=False, widget=OSMWidget)      limit = MultiPolygonField(label=_("Limit"), required=False, widget=OSMWidget) -    children = AutoCompleteSelectMultipleField( -        "town", required=False, label=_("Town children") -    )  class TownParentInline(admin.TabularInline):      model = models_common.Town.children.through      fk_name = "to_town" -    form = AdminRelatedTownForm +    autocomplete_fields = ["from_town"]      verbose_name = _("Parent")      verbose_name_plural = _("Parents")      extra = 1 @@ -1030,9 +1015,10 @@ class TownAdmin(ImportGEOJSONActionAdmin, ImportActionAdmin):      readonly_fields = ["cached_label"]      if settings.COUNTRY == "fr":          list_display += ["numero_insee"] -        search_fields += ["numero_insee", "areas__label"] +        search_fields += ["numero_insee"]          list_filter = ("areas",)      form = AdminTownForm +    autocomplete_fields = ["children"]      inlines = [TownParentInline]      actions = [          export_as_csv_action(exclude=["center", "limit"]), @@ -1092,6 +1078,7 @@ class GeneralTypeAdmin(ChangeParentAdmin, ImportActionAdmin, ImportJSONActionAdm          list_filter = self.get_list_filter(request)          search_fields = self.get_search_fields(request)          list_select_related = self.get_list_select_related(request) +        sortable_by = self.get_sortable_by(request)          cl = ChangeListForChangeView(              request, @@ -1106,6 +1093,7 @@ class GeneralTypeAdmin(ChangeParentAdmin, ImportActionAdmin, ImportJSONActionAdm              self.list_max_show_all,              self.list_editable,              self, +            sortable_by,          )          return cl.get_queryset(request) @@ -1273,13 +1261,13 @@ class CreateDepartmentActionAdmin(GeneralTypeAdmin):  @admin.register(models.SupportType, site=admin_site)  class SupportType(GeneralTypeAdmin):      model = models.SupportType -    form = make_ajax_form(model, {"document_types": "source_type"}) +    autocomplete_fields = ["document_types"]  @admin.register(models.Format, site=admin_site)  class Format(GeneralTypeAdmin):      model = models.Format -    form = make_ajax_form(model, {"document_types": "source_type"}) +    autocomplete_fields = ["document_types"]  @admin.register(models.DocumentTag, site=admin_site) @@ -1287,12 +1275,20 @@ class DocumentTag(MergeActionAdmin, GeneralTypeAdmin):      pass +class DocumentAdmin(admin.ModelAdmin): +    model = models.Document +    search_fields = ("title", "reference", "internal_reference") + + +admin_site.register(models.Document, DocumentAdmin) + +  class AreaAdmin(CreateDepartmentActionAdmin):      list_display = ("label", "reference", "parent", "available")      search_fields = ("label", "reference")      list_filter = ("parent",)      model = models.Area -    form = make_ajax_form(model, {"towns": "town"}) +    autocomplete_fields = ["towns"]  admin_site.register(models.Area, AreaAdmin) @@ -1350,6 +1346,14 @@ class ProfileTypeSummaryAdmin(admin.ModelAdmin):  admin_site.register(models.ProfileTypeSummary, ProfileTypeSummaryAdmin) +class IshtarUserAdmin(admin.ModelAdmin): +    model = models.IshtarUser +    search_fields = ("user_ptr", "person") + + +admin_site.register(models.IshtarUser, IshtarUserAdmin) + +  class ImporterDefaultValuesInline(admin.TabularInline):      model = models.ImporterDefaultValues @@ -1480,7 +1484,7 @@ class ImporterTypeAdmin(ImportJSONActionAdmin):      ]      list_filter = ["available"]      search_fields = ["name"] -    form = make_ajax_form(models.ImporterType, {"users": "ishtaruser"}) +    autocomplete_fields = ["users"]      prepopulated_fields = {"slug": ("name",)} @@ -1690,7 +1694,7 @@ class ImportAdmin(admin.ModelAdmin):          "state",          "creation_date",      ) -    form = make_ajax_form(models.Import, {"user": "ishtaruser"}) +    autocomplete_fields = ["user"]  admin_site.register(models.Import, ImportAdmin) @@ -1818,17 +1822,6 @@ def get_choices_form():      return forms -class CustomFormForm(forms.ModelForm): -    class Meta: -        model = models.CustomForm -        exclude = [] - -    form = forms.ChoiceField(label=_("Form"), choices=get_choices_form) -    users = AutoCompleteSelectMultipleField( -        "ishtaruser", required=False, label=_("Users") -    ) - -  class ExcludeFieldFormset(BaseInlineFormSet):      def get_form_kwargs(self, index):          kwargs = super(ExcludeFieldFormset, self).get_form_kwargs(index) @@ -1909,7 +1902,7 @@ class CustomFormAdmin(admin.ModelAdmin):          "user_types",          "profile_types",      ) -    form = CustomFormForm +    autocomplete_fields = ["users"]      inlines = [ExcludeFieldInline, JsonFieldInline]      def get_inline_instances(self, request, obj=None): @@ -2012,7 +2005,7 @@ class ExportTaskAdmin(admin.ModelAdmin):      ]      list_filter = ["state"]      actions = [launch_export_action] -    form = make_ajax_form(models.ExportTask, {"lock_user": "user"}) +    autocomplete_fields = ["lock_user"]  admin_site.register(models.ExportTask, ExportTaskAdmin) @@ -2061,7 +2054,7 @@ class ImportTaskAdmin(admin.ModelAdmin):          "finished_date",      ]      list_filter = ["state"] -    form = make_ajax_form(models.ImportTask, {"import_user": "user"}) +    autocomplete_fields = ["import_user"]      actions = [launch_import_action]      class Media: @@ -2076,7 +2069,7 @@ class UserProfileAdmin(admin.ModelAdmin):      list_filter = ["profile_type"]      search_fields = ["person__raw_name"]      model = models.UserProfile -    form = make_ajax_form(model, {"areas": "area"}) +    autocomplete_fields = ["areas"]  admin_site.register(models.UserProfile, UserProfileAdmin)  | 
