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") | 
