diff options
| -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 | 
