summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py69
1 files changed, 9 insertions, 60 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 3ae686f99..98bded3ec 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -650,17 +650,15 @@ def get_by_importer(
if data_type == "json":
res = "{}"
return HttpResponse(res, content_type="text/plain")
- imp = q.all()[0].get_importer_class()
- cols, col_names = [], []
- for formater in imp.LINE_EXPORT_FORMAT:
- if not formater:
- cols.append("")
- col_names.append("")
- continue
- cols.append(formater.export_field_name)
- col_names.append(formater.label)
- obj_name = imp.OBJECT_CLS.__name__.lower()
- return get_item(imp.OBJECT_CLS, "get_" + obj_name, obj_name, own_table_cols=cols)(
+ importer = q.all()[0]
+ importer_class = importer.get_importer_class()
+ cols, col_names = importer.get_columns(importer_class=importer_class)
+ if data_type == "csv" or dct.get("type", "") == "csv":
+ obj_name = importer.name
+ else:
+ obj_name = importer_class.OBJECT_CLS.__name__.lower()
+ return get_item(importer_class.OBJECT_CLS, "get_" + obj_name, obj_name,
+ own_table_cols=cols)(
request, data_type, full, force_own, col_names=col_names, **dct
)
@@ -2691,55 +2689,6 @@ class GeoFormMixin(IshtarMixin, LoginRequiredMixin):
return kwargs
-class GeoEditView(GeoFormMixin, UpdateView):
- page_name = _("Geo item modification")
-
- def get_form_kwargs(self):
- kwargs = super(GeoEditView, self).get_form_kwargs()
- try:
- geo = models.GeoVectorData.objects.get(pk=self.kwargs.get("pk"))
- assert check_permission(self.request, "geo/edit", geo.pk)
- except (AssertionError, models.GeoVectorData.DoesNotExist):
- raise Http404()
- initial = {}
-
- for k in (
- list(self.form_class.base_fields.keys()) +
- models.GeoVectorData.RELATED_MODELS
- ):
- value = getattr(geo, k)
- if hasattr(value, "all"):
- value = ",".join([str(v.pk) for v in value.all().order_by("pk")])
- if hasattr(value, "pk"):
- value = value.pk
- initial[k] = value
-
- kwargs["main_items_fields"] = {}
- kwargs["too_many"] = {}
- LIMIT = 10
- for k in models.GeoVectorData.RELATED_MODELS:
- kwargs["main_items_fields"][k] = []
- values = []
- for idx, related_item in enumerate(getattr(geo, k).all()):
- if idx >= LIMIT:
- if k not in kwargs["too_many"]:
- kwargs["too_many"][k] = []
- kwargs["too_many"][k].append(related_item.pk)
- continue
- pk = str(related_item.pk)
- values.append(pk)
- key = "{}_{}_main_item".format(k, pk)
- kwargs["main_items_fields"][k].append(
- (key, "{} - {}".format(_("Main geo item for"), related_item))
- )
- if related_item.main_geodata == geo:
- initial[key] = True
- initial[k] = ",".join(values)
- kwargs["initial"] = initial
- kwargs["user"] = self.request.user
- return kwargs
-
-
class GeoCreateView(GeoFormMixin, CreateView):
page_name = _("Geo item creation")