示例#1
0
    def prepare(self):
        self.data = self._transform_request_file()
        if self.data is None:
            return False

        context = self.importer_cls.get_importer_context(
            self.request,
            shop=get_shop(self.request),
            language=self.lang,
        )
        self.importer = self.importer_cls(self.data, context)
        self.importer.process_data()

        if self.request.method == "POST":
            # check if mapping was done
            for field in self.importer.unmatched_fields:
                key = "remap[%s]" % field
                vals = self.request.POST.getlist(key)
                if len(vals):
                    self.importer.manually_match(field, vals[0])
            self.importer.do_remap()

        self.settings_form = ImportSettingsForm(
            data=self.request.POST if self.request.POST else None)
        if self.settings_form.is_bound:
            self.settings_form.is_valid()
        return True
示例#2
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        file_importer = FileImporter(
            importer=self.request.GET["importer"],
            import_mode=ImportMode.CREATE_UPDATE,
            file_name=self.request.GET["n"],
            language=self.request.GET.get("lang"),
            shop_id=get_shop(self.request),
            supplier_id=get_supplier(self.request),
        )
        file_importer.prepare()

        settings_form = ImportSettingsForm(
            data=self.request.POST if self.request.POST else None)
        if settings_form.is_bound:
            settings_form.is_valid()

        context["data"] = file_importer.data
        context["importer"] = file_importer.importer
        context["form"] = settings_form
        context[
            "model_fields"] = file_importer.importer.get_fields_for_mapping()
        context["visible_rows"] = file_importer.data.rows[1:5]
        return context