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