summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-12-20 19:42:56 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:20:59 +0100
commit1ad0312b086b0286b81322252991c855deca554e (patch)
tree93745734f124e3793a7a8a4fbc9845f05062f637 /ishtar_common/admin.py
parent9a933515d0a263a077b96cf2a0517f6e6b2be314 (diff)
downloadIshtar-1ad0312b086b0286b81322252991c855deca554e.tar.bz2
Ishtar-1ad0312b086b0286b81322252991c855deca554e.zip
Syndication - filter field on sheet (bis)
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r--ishtar_common/admin.py49
1 files changed, 45 insertions, 4 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index bb8daa372..5c2f33aa1 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -105,7 +105,7 @@ ISHTAR_FORMS = [
class ImportGenericForm(forms.Form):
csv_file = forms.FileField(
label=_("CSV file"),
- help_text=_("Only unicode encoding is managed - convert your" " file first"),
+ help_text=_("Only unicode encoding is managed - convert your file first"),
)
@@ -2094,7 +2094,7 @@ class ApiUserAdmin(admin.ModelAdmin):
list_display = ("user_ptr", "ip")
-admin_site.register(models.ApiUser, ApiUserAdmin)
+admin_site.register(models_rest.ApiUser, ApiUserAdmin)
def get_main_content_types_query():
@@ -2110,7 +2110,7 @@ def get_main_content_types_query():
class ApiSearchModelAdminForm(forms.ModelForm):
class Meta:
- model = models.ApiUser
+ model = models_rest.ApiUser
exclude = []
content_type = forms.ModelChoiceField(
@@ -2123,7 +2123,7 @@ class ApiSearchModelAdmin(admin.ModelAdmin):
list_display = ("user", "content_type")
-admin_site.register(models.ApiSearchModel, ApiSearchModelAdmin)
+admin_site.register(models_rest.ApiSearchModel, ApiSearchModelAdmin)
def send_error_message(request, msg, message_type=messages.ERROR):
@@ -2353,3 +2353,44 @@ class ApiKeyMatchAdmin(admin.ModelAdmin):
admin_site.register(models_rest.ApiKeyMatch, ApiKeyMatchAdmin)
+
+
+class ApiSheetFilterForm(forms.ModelForm):
+ api_search_model = forms.ModelChoiceField(
+ models_rest.ApiSearchModel.objects,
+ label=_("API - Remote access - Search model"),
+ )
+ key = forms.ChoiceField(
+ label=_("Key"),
+ initial="-",
+ choices=(("-", "-"),),
+ help_text=_("Save first to choose a key"),
+ )
+
+ class Meta:
+ model = models_rest.ApiSheetFilter
+ fields = ["api_search_model", "key"]
+
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ instance = kwargs.get("instance")
+ if not instance:
+ return
+ if args:
+ query_dict = args[0]
+ query_dict._mutable = True
+ query_dict.setlist("api_search_model", [instance.api_search_model.pk])
+ query_dict._mutable = False
+ self.fields["api_search_model"].widget.attrs = {'disabled': 'disabled'}
+ self.fields["key"].help_text = ""
+ self.fields["key"].choices = [(k, k) for k in instance.get_keys()]
+
+
+class ApiSheetFilterAdmin(admin.ModelAdmin):
+ form = ApiSheetFilterForm
+ model = models_rest.ApiSheetFilter
+ list_display = ["api_search_model", "key"]
+ list_filter = ["api_search_model"]
+
+
+admin_site.register(models_rest.ApiSheetFilter, ApiSheetFilterAdmin)