diff options
| -rw-r--r-- | ishtar_common/forms_common.py | 7 | ||||
| -rw-r--r-- | ishtar_common/templates/ishtar/blocks/sheet_map.html | 2 | ||||
| -rw-r--r-- | ishtar_common/views.py | 29 | 
3 files changed, 33 insertions, 5 deletions
| diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 11ae2009b..c6dbc9ae9 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -2611,7 +2611,6 @@ class GISForm(forms.ModelForm, CustomForm, ManageOldType):      pk = forms.IntegerField(label="", required=False, widget=forms.HiddenInput)      name = forms.CharField(          label=_("Name"), -        required=False,          validators=[validators.MaxLengthValidator(500)],      )      import_key = forms.CharField( @@ -2700,6 +2699,9 @@ class GISForm(forms.ModelForm, CustomForm, ManageOldType):          back_url = ""          if "back_url" in kwargs:              back_url = kwargs.pop("back_url") +        find_id = "" +        if "find_id" in kwargs: +            find_id = kwargs.pop("find_id")          main_items_fields = {}          if "main_items_fields" in kwargs:              main_items_fields = kwargs.pop("main_items_fields") @@ -2719,6 +2721,9 @@ class GISForm(forms.ModelForm, CustomForm, ManageOldType):          if back_url:              self.fields["back_url"] = forms.CharField(                  label="", required=False, widget=forms.HiddenInput, initial=back_url) +        if find_id: +            self.fields["find_id"] = forms.CharField( +                label="", required=False, widget=forms.HiddenInput, initial=find_id)          if not self.fields["import_key"].initial:              self.fields.pop("import_key")          if not self.source_content_type: diff --git a/ishtar_common/templates/ishtar/blocks/sheet_map.html b/ishtar_common/templates/ishtar/blocks/sheet_map.html index 954a7337d..bb143f1dc 100644 --- a/ishtar_common/templates/ishtar/blocks/sheet_map.html +++ b/ishtar_common/templates/ishtar/blocks/sheet_map.html @@ -15,7 +15,7 @@                     {% if not forloop.counter0 %}checked{% endif %}              >                <label for="map-ol-{{geo_item.SLUG}}-{{geo_item.pk}}-{{geodata.pk}}"> -                <strong>{{geodata.data_type}}</strong></label><br/> +                <strong>{% if geodata.data_type %}{{geodata.data_type}}{% else %}-{% endif %}</strong></label><br/>              {{geodata.name}}          </li>{% endfor %}          {% if geo_item.SLUG == "operation" and display_context_records %} diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 3ed8ad904..db05c74a1 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -2733,17 +2733,34 @@ class GeoPreCreateView(IshtarMixin, LoginRequiredMixin, FormView):          return kwargs      def form_valid(self, form): +        model_source = self.kwargs.get("model_source") +        source_pk = self.kwargs.get("source_pk") +        find_id = None +        if model_source == "find": +            try: +                find = Find.objects.get(pk=source_pk) +            except Find.DoesNotExist: +                raise Http404() +            bf = find.get_first_base_find() +            if not bf: +                raise Http404() +            model_source = "basefind" +            find_id = source_pk +            source_pk = bf.pk          success_url = reverse(              "create-geo",              kwargs={                  "app_source": self.kwargs.get("app_source"), -                "model_source": self.kwargs.get("model_source"), -                "source_pk": self.kwargs.get("source_pk"), +                "model_source": model_source, +                "source_pk": source_pk,                  "geom_type": form.cleaned_data.get("geom_type"),              }          )          if self.back_url:              success_url += "?back_url=" + urllib.parse.quote(self.back_url) +        if find_id: +            success_url += "&" if self.back_url else "?" +            success_url += f"find_id={find_id}"          return HttpResponseRedirect(success_url) @@ -2754,10 +2771,12 @@ class GeoFormMixin(IshtarMixin, LoginRequiredMixin):      def get(self, request, *args, **kwargs):          self.back_url = request.GET.get("back_url") +        self.find_id = request.GET.get("find_id")          return super().get(request, *args, **kwargs)      def post(self, request, *args, **kwargs):          self.back_url = request.POST.get("back_url") +        self.find_id = request.POST.get("find_id")          return super().post(request, *args, **kwargs)      def get_context_data(self, **kwargs): @@ -2768,11 +2787,15 @@ class GeoFormMixin(IshtarMixin, LoginRequiredMixin):      def get_success_url(self):          if not self.back_url:              return reverse("edit-geo", kwargs={"pk": self.object.pk}) -        return self.back_url +        back_url = self.back_url +        if self.find_id: +            back_url = back_url.split("=")[0] + "=" + str(self.find_id) +        return back_url      def get_form_kwargs(self):          kwargs = super().get_form_kwargs()          kwargs["back_url"] = self.back_url +        kwargs["find_id"] = self.find_id          return kwargs | 
