diff options
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 69 |
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") |