summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r--ishtar_common/admin.py81
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)