From 02cf8098b866606ce565e8a3ee359ef0998bf7f9 Mon Sep 17 00:00:00 2001 From: ezkat <50319957+ezkat@users.noreply.github.com> Date: Mon, 6 May 2024 10:07:15 +0300 Subject: [PATCH] Fix errors and unwanted behavior caused by universal fields (#359) --- resources/models/resource.py | 3 --- .../templates/respa_admin/resources/form/_options.html | 2 +- .../templates/respa_admin/resources/form/_universal.html | 2 +- respa_admin/views/resources.py | 8 +++++++- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/resources/models/resource.py b/resources/models/resource.py index d6c3bb079..a0e7c2d12 100644 --- a/resources/models/resource.py +++ b/resources/models/resource.py @@ -1315,9 +1315,6 @@ class Meta: def options(self): return ResourceUniversalFormOption.objects.filter(resource_universal_field=self) - def save(self, *args, **kwargs): - return super(ResourceUniversalField, self).save(*args, **kwargs) - def __str__(self): return "%s / %s / %s" % (self.name, self.field_type, self.resource) diff --git a/respa_admin/templates/respa_admin/resources/form/_options.html b/respa_admin/templates/respa_admin/resources/form/_options.html index 16a9d1223..3f78d4a7e 100644 --- a/respa_admin/templates/respa_admin/resources/form/_options.html +++ b/respa_admin/templates/respa_admin/resources/form/_options.html @@ -4,7 +4,7 @@ margin-top: 20px; } -
+

{% trans "Universal form options" %}

{% trans "*Mandatory fields" %} diff --git a/respa_admin/templates/respa_admin/resources/form/_universal.html b/respa_admin/templates/respa_admin/resources/form/_universal.html index 2045defa1..077727fad 100644 --- a/respa_admin/templates/respa_admin/resources/form/_universal.html +++ b/respa_admin/templates/respa_admin/resources/form/_universal.html @@ -4,7 +4,7 @@ margin-top: 20px; } -
+

{% trans "Universal form field" %}

{% trans "*Mandatory fields" %} diff --git a/respa_admin/views/resources.py b/respa_admin/views/resources.py index aeaf04445..04834b11f 100644 --- a/respa_admin/views/resources.py +++ b/respa_admin/views/resources.py @@ -650,7 +650,13 @@ def _save_resource_images(self, resource_image_formset): resource_image.save() def _save_resource_universal(self, resource_universal_formset): - resource_universal_formset.save() + if not any([bool(value) for value in resource_universal_formset.cleaned_data or []]): + return + + for idx in range(len(resource_universal_formset)): + universal_field = resource_universal_formset.forms[idx].save(commit=False) + universal_field.resource = self.object + universal_field.save() def _save_universal_options(self, resource_options_formset): resource_options_formset.save()