summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-06-01 17:39:10 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:21:00 +0100
commit1bc40bcbc0792abe3686f5a09eeb7a229ab18a95 (patch)
tree78d25ed0a224c5a87af078f12a0bffe9a64c04f2 /ishtar_common/views.py
parente435a4929b8d315f13184ea65086fc032c1fbea6 (diff)
downloadIshtar-1bc40bcbc0792abe3686f5a09eeb7a229ab18a95.tar.bz2
Ishtar-1bc40bcbc0792abe3686f5a09eeb7a229ab18a95.zip
Geodata - geo forms: create item form
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py38
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