diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-05-31 16:10:33 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:21:00 +0100 |
commit | 6dc16ea82a21a9fd15a9691b10c09a8db48c5592 (patch) | |
tree | c1c350fe91b8ef7c9fb5536b57d523cb04d8cffe /ishtar_common | |
parent | df8a001203e9e936ae5bae4e06f5631d87fb3ada (diff) | |
download | Ishtar-6dc16ea82a21a9fd15a9691b10c09a8db48c5592.tar.bz2 Ishtar-6dc16ea82a21a9fd15a9691b10c09a8db48c5592.zip |
Geodata - geo forms: manage main item
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/forms_common.py | 5 | ||||
-rw-r--r-- | ishtar_common/views.py | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 695638120..ed97cbab1 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -2755,6 +2755,11 @@ class GISForm(forms.ModelForm, CustomForm, ManageOldType): related_item = related.model.objects.get(pk=new_pk) if new_pk not in initial.keys(): related.add(related_item) + key = "{}_{}_main_item".format(related_key, related_item.pk) + if self.cleaned_data.get(key, []) and related_item.main_geodata != item: + related_item.skip_history_when_saving = True + related_item.main_geodata = item + related_item.save() item = models.GeoVectorData.objects.get(pk=item.pk) if self.user: item.history_creator = self.user diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 361c32022..f79ad25ee 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -2763,6 +2763,17 @@ class GeoEditView(GeoFormMixin, UpdateView): value = value.pk initial[k] = value + kwargs["main_items_fields"] = {} + for k in models.GeoVectorData.RELATED_MODELS: + kwargs["main_items_fields"][k] = [] + for related_item in getattr(geo, k).all(): + key = "{}_{}_main_item".format(k, related_item.pk) + kwargs["main_items_fields"][k].append( + (key, "{} - {}".format(_("Main geo item for"), related_item)) + ) + if related_item.main_geodata == geo: + initial[key] = True + kwargs["initial"] = initial kwargs["user"] = self.request.user self.geo = geo |