diff options
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 38 | 
1 files changed, 32 insertions, 6 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index f79ad25ee..9d5256df5 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -2713,6 +2713,24 @@ class DisplayItemView(IshtarMixin, TemplateView):          return data +class GeoPreCreateView(IshtarMixin, LoginRequiredMixin, FormView): +    page_name = _("Geo item creation") +    form_class = forms.PreGISForm +    template_name = "ishtar/forms/base_form.html" + +    def form_valid(self, form): +        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"), +                "geom_type": form.cleaned_data.get("geom_type"), +            } +        ) +        return HttpResponseRedirect(success_url) + +  class GeoFormMixin(IshtarMixin, LoginRequiredMixin):      form_class = forms.GISForm      template_name = "ishtar/forms/base_related_items.html" @@ -2776,15 +2794,10 @@ class GeoEditView(GeoFormMixin, UpdateView):          kwargs["initial"] = initial          kwargs["user"] = self.request.user -        self.geo = geo -        return kwargs - -    def get_context_data(self, **kwargs): -        kwargs = super(GeoEditView, self).get_context_data(**kwargs)          return kwargs -class GeoCreateView(GeoFormMixin, UpdateView): +class GeoCreateView(GeoFormMixin, CreateView):      page_name = _("Geo item creation")      def get_form_kwargs(self): @@ -2813,6 +2826,19 @@ class GeoCreateView(GeoFormMixin, UpdateView):                      or not obj.is_own(ishtaruser):                  # check permission to view own attached item                  raise Http404() +        kwargs["main_items_fields"] = {} +        for k in models.GeoVectorData.RELATED_MODELS: +            kwargs["main_items_fields"][k] = [] +            if k.endswith(obj.SLUG): +                kwargs["initial"][k] = [obj.pk] +                key = f"{k}_{obj.pk}_main_item" +                kwargs["main_items_fields"][k].append( +                    (key, "{} - {}".format(_("Main geo item for"), obj)) +                ) + +        kwargs["source_content_type"] = content_type.pk +        kwargs["source_id"] = obj.pk +        kwargs["geom_type"] = self.kwargs.get("geom_type")          kwargs["user"] = self.request.user          return kwargs  | 
