class EditPart(Base): template_name = 'assets/edit_part.html' def get_context_data(self, **kwargs): ret = super(EditPart, self).get_context_data(**kwargs) status_history = AssetHistoryChange.objects.all().filter( asset=kwargs.get('asset_id'), field_name__exact='status').order_by('-date') ret.update({ 'asset_form': self.asset_form, 'office_info_form': self.office_info_form, 'part_info_form': self.part_info_form, 'form_id': 'edit_part_form', 'edit_mode': True, 'status_history': status_history, 'history_link': self.get_history_link(), 'parent_link': self.get_parent_link(), }) return ret def get(self, *args, **kwargs): self.asset = get_object_or_404(Asset.admin_objects, id=kwargs.get('asset_id')) if self.asset.device_info: # it isn't part asset raise Http404() mode = _get_mode(self.request) self.asset_form = EditPartForm(instance=self.asset, mode=mode) self.office_info_form = OfficeForm(instance=self.asset.office_info) self.part_info_form = BasePartForm( instance=self.asset.part_info, mode=mode, ) return super(EditPart, self).get(*args, **kwargs) def post(self, *args, **kwargs): self.asset = get_object_or_404(Asset.admin_objects, id=kwargs.get('asset_id')) mode = _get_mode(self.request) self.asset_form = EditPartForm(self.request.POST, instance=self.asset, mode=mode) self.office_info_form = OfficeForm(self.request.POST, self.request.FILES) self.part_info_form = BasePartForm(self.request.POST, mode=mode) if all((self.asset_form.is_valid(), self.office_info_form.is_valid(), self.part_info_form.is_valid())): modifier_profile = self.request.user.get_profile() self.asset = _update_asset(modifier_profile, self.asset, self.asset_form.cleaned_data) self.asset = _update_office_info( modifier_profile.user, self.asset, self.office_info_form.cleaned_data) self.asset = _update_part_info(modifier_profile.user, self.asset, self.part_info_form.cleaned_data) self.asset.save(user=self.request.user) messages.success(self.request, _("Part of asset was edited.")) cat = self.request.path.split('/')[2] return HttpResponseRedirect('/assets/%s/edit/part/%s/' % (cat, self.asset.id)) else: messages.error(self.request, _("Please correct the errors.")) messages.error(self.request, self.asset_form.non_field_errors()) return super(EditPart, self).get(*args, **kwargs) def get_parent_link(self): mode = _get_mode(self.request) asset = self.asset.part_info.source_device url = '' if asset: if mode == 'dc': url = reverse('dc_device_edit', args=[ asset.id, ]) elif mode == 'back_office': url = reverse('back_office_device_edit', args=[ asset.id, ]) return url def get_history_link(self): mode = _get_mode(self.request) asset_id = self.asset.id if mode == 'dc': url = reverse('dc_part_history', args=[ asset_id, ]) elif mode == 'back_office': url = reverse('back_office_part_history', args=[ asset_id, ]) return url
class EditPart(AssetsBase): template_name = 'assets/edit_part.html' def initialize_vars(self): self.office_info_form = None def get_context_data(self, **kwargs): ret = super(EditPart, self).get_context_data(**kwargs) status_history = AssetHistoryChange.objects.all().filter( asset=kwargs.get('asset_id'), field_name__exact='status' ).order_by('-date') ret.update({ 'asset_form': self.asset_form, 'office_info_form': self.office_info_form, 'part_info_form': self.part_info_form, 'form_id': 'edit_part_form', 'edit_mode': True, 'status_history': status_history, 'history_link': self.get_history_link(), 'parent_link': self.get_parent_link(), 'asset': self.asset, }) return ret def get(self, *args, **kwargs): self.initialize_vars() self.asset = get_object_or_404( Asset.admin_objects, id=kwargs.get('asset_id') ) if self.asset.device_info: # it isn't part asset raise Http404() self.asset_form = EditPartForm(instance=self.asset, mode=self.mode) self.write_office_info2asset_form() self.part_info_form = BasePartForm( instance=self.asset.part_info, mode=self.mode, ) return super(EditPart, self).get(*args, **kwargs) def post(self, *args, **kwargs): self.asset = get_object_or_404( Asset.admin_objects, id=kwargs.get('asset_id') ) mode = self.mode self.asset_form = EditPartForm( self.request.POST, instance=self.asset, mode=mode ) self.office_info_form = OfficeForm( self.request.POST, self.request.FILES) self.part_info_form = BasePartForm(self.request.POST, mode=mode) if all(( self.asset_form.is_valid(), self.office_info_form.is_valid(), self.part_info_form.is_valid() )): modifier_profile = self.request.user.get_profile() self.asset = _update_asset( modifier_profile, self.asset, self.asset_form.cleaned_data ) new_src, new_dst = _move_data( self.asset_form.cleaned_data, self.office_info_form.cleaned_data, ['imei'], ) self.asset_form.cleaned_data = new_src self.office_info_form.cleaned_data = new_dst self.asset = _update_office_info( modifier_profile.user, self.asset, self.office_info_form.cleaned_data ) self.asset = _update_part_info( modifier_profile.user, self.asset, self.part_info_form.cleaned_data ) self.asset.save(user=self.request.user) self.asset.supports.clear() for support in self.asset_form.cleaned_data.get( 'supports', [] ): self.asset.supports.add(support) messages.success(self.request, _("Part of asset was edited.")) cat = self.request.path.split('/')[2] return HttpResponseRedirect( '/assets/%s/edit/part/%s/' % (cat, self.asset.id) ) else: messages.error(self.request, _("Please correct the errors.")) messages.error(self.request, self.asset_form.non_field_errors()) return super(EditPart, self).get(*args, **kwargs) def get_parent_link(self): asset = self.asset.part_info.source_device if asset: return reverse('device_edit', kwargs={ 'asset_id': asset.id, 'mode': self.mode, }) def get_history_link(self): return reverse('part_history', kwargs={ 'asset_id': self.asset.id, 'mode': self.mode, })
class EditPart(Base): template_name = 'assets/edit_part.html' def get_context_data(self, **kwargs): ret = super(EditPart, self).get_context_data(**kwargs) status_history = AssetHistoryChange.objects.all().filter( asset=kwargs.get('asset_id'), field_name__exact='status' ).order_by('-date') ret.update({ 'asset_form': self.asset_form, 'office_info_form': self.office_info_form, 'part_info_form': self.part_info_form, 'form_id': 'edit_part_form', 'edit_mode': True, 'status_history': status_history, 'history_link': self.get_history_link(), 'parent_link': self.get_parent_link(), }) return ret def get(self, *args, **kwargs): self.asset = get_object_or_404( Asset.admin_objects, id=kwargs.get('asset_id') ) if self.asset.device_info: # it isn't part asset raise Http404() mode = _get_mode(self.request) self.asset_form = EditPartForm(instance=self.asset, mode=mode) self.office_info_form = OfficeForm(instance=self.asset.office_info) self.part_info_form = BasePartForm( instance=self.asset.part_info, mode=mode, ) return super(EditPart, self).get(*args, **kwargs) def post(self, *args, **kwargs): self.asset = get_object_or_404( Asset.admin_objects, id=kwargs.get('asset_id') ) mode = _get_mode(self.request) self.asset_form = EditPartForm( self.request.POST, instance=self.asset, mode=mode ) self.office_info_form = OfficeForm( self.request.POST, self.request.FILES) self.part_info_form = BasePartForm(self.request.POST, mode=mode) if all(( self.asset_form.is_valid(), self.office_info_form.is_valid(), self.part_info_form.is_valid() )): modifier_profile = self.request.user.get_profile() self.asset = _update_asset( modifier_profile, self.asset, self.asset_form.cleaned_data ) self.asset = _update_office_info( modifier_profile.user, self.asset, self.office_info_form.cleaned_data ) self.asset = _update_part_info( modifier_profile.user, self.asset, self.part_info_form.cleaned_data ) self.asset.save(user=self.request.user) messages.success(self.request, _("Part of asset was edited.")) cat = self.request.path.split('/')[2] return HttpResponseRedirect( '/assets/%s/edit/part/%s/' % (cat, self.asset.id) ) else: messages.error(self.request, _("Please correct the errors.")) messages.error(self.request, self.asset_form.non_field_errors()) return super(EditPart, self).get(*args, **kwargs) def get_parent_link(self): mode = _get_mode(self.request) asset = self.asset.part_info.source_device url = '' if asset: if mode == 'dc': url = reverse('dc_device_edit', args=[asset.id, ]) elif mode == 'back_office': url = reverse('back_office_device_edit', args=[asset.id, ]) return url def get_history_link(self): mode = _get_mode(self.request) asset_id = self.asset.id if mode == 'dc': url = reverse('dc_part_history', args=[asset_id, ]) elif mode == 'back_office': url = reverse('back_office_part_history', args=[asset_id, ]) return url
class EditPart(HardwareModeMixin, SubmoduleModeMixin, AssetsBase): detect_changes = True template_name = 'assets/edit_part.html' def initialize_vars(self): self.office_info_form = None def get_context_data(self, **kwargs): context = super(EditPart, self).get_context_data(**kwargs) context.update({ 'asset_form': self.asset_form, 'office_info_form': self.office_info_form, 'part_info_form': self.part_info_form, 'form_id': 'edit_part_form', 'edit_mode': True, 'parent_link': self.get_parent_link(), 'asset': self.asset, }) return context def get(self, *args, **kwargs): self.initialize_vars() self.asset = get_object_or_404(Asset.admin_objects, id=kwargs.get('asset_id')) if self.asset.device_info: # it isn't part asset raise Http404() self.asset_form = EditPartForm(instance=self.asset, mode=self.mode) self.write_office_info2asset_form() self.part_info_form = BasePartForm( instance=self.asset.part_info, mode=self.mode, ) return super(EditPart, self).get(*args, **kwargs) def post(self, *args, **kwargs): self.asset = get_object_or_404(Asset.admin_objects, id=kwargs.get('asset_id')) mode = self.mode self.asset_form = EditPartForm(self.request.POST, instance=self.asset, mode=mode) self.office_info_form = OfficeForm(self.request.POST, self.request.FILES) self.part_info_form = BasePartForm(self.request.POST, mode=mode) if all((self.asset_form.is_valid(), self.office_info_form.is_valid(), self.part_info_form.is_valid())): modifier_profile = self.request.user.get_profile() self.asset = _update_asset(modifier_profile, self.asset, self.asset_form.cleaned_data) new_src, new_dst = _move_data( self.asset_form.cleaned_data, self.office_info_form.cleaned_data, ['imei'], ) self.asset_form.cleaned_data = new_src self.office_info_form.cleaned_data = new_dst self.asset = _update_office_info( modifier_profile.user, self.asset, self.office_info_form.cleaned_data) self.asset = _update_part_info(modifier_profile.user, self.asset, self.part_info_form.cleaned_data) self.asset.save(user=self.request.user) self.asset.supports.clear() for support in self.asset_form.cleaned_data.get('supports', []): self.asset.supports.add(support) messages.success(self.request, _("Part of asset was edited.")) cat = self.request.path.split('/')[2] return HttpResponseRedirect('/assets/%s/edit/part/%s/' % (cat, self.asset.id)) else: messages.error(self.request, _("Please correct the errors.")) messages.error(self.request, self.asset_form.non_field_errors()) return super(EditPart, self).get(*args, **kwargs) def get_parent_link(self): asset = self.asset.part_info.source_device if asset: return reverse('device_edit', kwargs={ 'asset_id': asset.id, 'mode': self.mode, })