def get(self, *args, **kwargs): mode = _get_mode(self.request) self.asset_form = AddDeviceForm(mode=mode) self.device_info_form = DeviceForm( mode=mode, exclude='create_stock', ) return super(AddDevice, self).get(*args, **kwargs)
def post(self, *args, **kwargs): mode = _get_mode(self.request) self.asset_form = AddDeviceForm(self.request.POST, mode=mode) self.device_info_form = DeviceForm(self.request.POST, mode=mode) if self.asset_form.is_valid() and self.device_info_form.is_valid(): creator_profile = self.request.user.get_profile() asset_data = {} for f_name, f_value in self.asset_form.cleaned_data.items(): if f_name in ["barcode", "sn"]: continue asset_data[f_name] = f_value serial_numbers = self.asset_form.cleaned_data['sn'] barcodes = self.asset_form.cleaned_data['barcode'] ids = [] for sn, index in zip(serial_numbers, range(len(serial_numbers))): barcode = barcodes[index] if barcodes else None ids.append( _create_device( creator_profile, asset_data, self.device_info_form.cleaned_data, sn, mode, barcode ) ) messages.success(self.request, _("Assets saved.")) cat = self.request.path.split('/')[2] if len(ids) == 1: return HttpResponseRedirect( '/assets/%s/edit/device/%s/' % (cat, ids[0]) ) else: return HttpResponseRedirect( '/assets/%s/bulkedit/?select=%s' % ( cat, '&select='.join(["%s" % id for id in ids])) ) else: messages.error(self.request, _("Please correct the errors.")) return super(AddDevice, self).get(*args, **kwargs)
def get(self, *args, **kwargs): self.asset_form = AddDeviceForm(mode=self.mode) device_form_class = self.form_dispatcher('AddDevice') self.asset_form = device_form_class(mode=self.mode) self._set_additional_info_form() return super(AddDevice, self).get(*args, **kwargs)