diff options
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r-- | ishtar_common/admin.py | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 07750ffe7..0b73f5708 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -554,8 +554,12 @@ 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", - "author_type__label") + search_fields = ( + "person__name", + "person__surname", + "person__attached_to__name", + "author_type__label", + ) model = models.Author autocomplete_fields = ["person"] @@ -2082,3 +2086,40 @@ class DocumentTemplateAdmin(admin.ModelAdmin): admin_site.register(models.DocumentTemplate, DocumentTemplateAdmin) + +class ApiUserAdmin(admin.ModelAdmin): + list_display = ("user_ptr", "ip") + + +admin_site.register(models.ApiUser, ApiUserAdmin) + + +def get_main_content_types_query(): + CONTENT_TYPES = ( + ("archaeological_operations", "operation"), + ) + pks = [] + for app_label, model_name in CONTENT_TYPES: + try: + ct = ContentType.objects.get(app_label=app_label, model=model_name) + pks.append(ct.pk) + except ContentType.DoesNotExist: + pass + return ContentType.objects.filter(pk__in=pks) + + +class ApiSearchModelAdminForm(forms.ModelForm): + class Meta: + model = models.ApiUser + exclude = [] + content_type = forms.ModelChoiceField( + label=_("Content type"), queryset=get_main_content_types_query() + ) + + +class ApiSearchModelAdmin(admin.ModelAdmin): + form = ApiSearchModelAdminForm + list_display = ("user", "content_type") + + +admin_site.register(models.ApiSearchModel, ApiSearchModelAdmin) |