diff options
| 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 | 
| commit | c6c1f8dc49f9091053c196ec671a614062a6c3bc (patch) | |
| tree | 93745734f124e3793a7a8a4fbc9845f05062f637 /ishtar_common/admin.py | |
| parent | 2111c50f9ac78b2fc18c42cbbe723de803ba6c90 (diff) | |
| download | Ishtar-c6c1f8dc49f9091053c196ec671a614062a6c3bc.tar.bz2 Ishtar-c6c1f8dc49f9091053c196ec671a614062a6c3bc.zip | |
Syndication - filter field on sheet (bis)
Diffstat (limited to 'ishtar_common/admin.py')
| -rw-r--r-- | ishtar_common/admin.py | 49 | 
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) | 
