diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/admin.py | 22 | 
1 files changed, 16 insertions, 6 deletions
| diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index bbd61f14b..99c3b2deb 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -174,6 +174,8 @@ def export_as_csv_action(                      value = getattr(value, "txt_idx")                  elif value is None:                      value = "" +                elif isinstance(value, ContentType): +                    value = f"{value.app_label}|{value.model}"                  else:                      value = str(value)                  row.append(value) @@ -575,11 +577,16 @@ class ImportActionAdmin(admin.ModelAdmin):                          elif isinstance(field, ForeignKey):                              if value:                                  model = field.rel.to -                                try: -                                    value = model.objects.get(**{slug_col: value}) -                                except model.DoesNotExist: -                                    missing_parent.append(row.pop(k)) -                                    continue +                                if model == ContentType: +                                    value = value.split("|") +                                    value = ContentType.objects.get(app_label=value[0], +                                                                    model=value[1]) +                                else: +                                    try: +                                        value = model.objects.get(**{slug_col: value}) +                                    except model.DoesNotExist: +                                        missing_parent.append(row.pop(k)) +                                        continue                              else:                                  value = None                          row[k] = value @@ -1658,7 +1665,8 @@ class JsonDataFieldForm(JsonContentTypeFormMixin, forms.ModelForm):          exclude = [] -class JsonDataFieldAdmin(admin.ModelAdmin): +class JsonDataFieldAdmin(ImportActionAdmin): +    import_keys = ["key"]      list_display = [          "name",          "content_type", @@ -1672,9 +1680,11 @@ class JsonDataFieldAdmin(admin.ModelAdmin):      actions = [          change_value("display", True, _("Display selected")),          change_value("display", False, _("Hide selected")), +        export_as_csv_action(),      ]      list_filter = ["value_type", "search_index"]      form = JsonDataFieldForm +    model = models.JsonDataField  admin_site.register(models.JsonDataField, JsonDataFieldAdmin) | 
