Пример #1
0
 def _set_additional_info_form(self):
     if self.mode == 'dc':
         # XXX: how do it better, differ only by one arg?
         if self.request.method == 'POST':
             self.additional_info = DeviceForm(
                 self.request.POST,
                 instance=self.asset.device_info,
                 mode=self.mode,
             )
         else:
             self.additional_info = DeviceForm(
                 instance=self.asset.device_info,
                 mode=self.mode,
             )
     elif self.mode == 'back_office':
         # XXX: how do it better, differ only by one arg?
         if self.request.method == 'POST':
             self.additional_info = OfficeForm(
                 self.request.POST,
                 instance=self.asset.office_info,
             )
         else:
             self.additional_info = OfficeForm(
                 instance=self.asset.office_info,
             )
             fields = ['imei', 'purpose']
             for field in fields:
                 if field in self.asset_form.fields:
                     self.asset_form.fields[field].initial = (
                         getattr(self.asset.office_info, field, '')
                     )
Пример #2
0
 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)
Пример #3
0
 def _set_additional_info_form(self):
     if self.mode == 'dc':
         # XXX: how to clean it?
         if self.request.method == 'POST':
             self.additional_info = DeviceForm(
                 self.request.POST,
                 mode=self.mode,
                 exclude='create_stock',
             )
         else:
             self.additional_info = DeviceForm(
                 mode=self.mode,
                 exclude='create_stock',
             )
     elif self.mode == 'back_office':
         if self.request.method == 'POST':
             self.additional_info = OfficeForm(self.request.POST)
         else:
             self.additional_info = OfficeForm()
Пример #4
0
 def write_office_info2asset_form(self):
     """
     Writes fields from office_info form to asset form.
     """
     if self.asset.type in AssetType.BO.choices:
         self.office_info_form = OfficeForm(instance=self.asset.office_info)
         fields = ['imei', 'purpose']
         for field in fields:
             if field not in self.asset_form.fields:
                 continue
             self.asset_form.fields[field].initial = (getattr(
                 self.asset.office_info, field, ''))
Пример #5
0
 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)
Пример #6
0
 def get(self, *args, **kwargs):
     self.initialize_vars()
     self.asset = get_object_or_404(Asset.admin_objects,
                                    id=kwargs.get('asset_id'))
     if not self.asset.device_info:  # it isn't device asset
         raise Http404()
     mode = _get_mode(self.request)
     self.asset_form = EditDeviceForm(instance=self.asset, mode=mode)
     if self.asset.type in AssetType.BO.choices:
         self.office_info_form = OfficeForm(instance=self.asset.office_info)
     self.device_info_form = DeviceForm(
         instance=self.asset.device_info,
         mode=mode,
     )
     self.parts = Asset.objects.filter(part_info__device=self.asset)
     return super(EditDevice, self).get(*args, **kwargs)
Пример #7
0
 def post(self, *args, **kwargs):
     self.initialize_vars()
     post_data = self.request.POST
     self.asset = get_object_or_404(Asset.admin_objects,
                                    id=kwargs.get('asset_id'))
     mode = _get_mode(self.request)
     self.asset_form = EditDeviceForm(
         post_data,
         instance=self.asset,
         mode=mode,
     )
     self.device_info_form = DeviceForm(
         post_data,
         mode=mode,
         instance=self.asset.device_info,
     )
     self.part_form = MoveAssetPartForm(post_data)
     if 'move_parts' in post_data.keys():
         destination_asset = post_data.get('new_asset')
         if not destination_asset or not Asset.objects.filter(
                 id=destination_asset, ):
             messages.error(
                 self.request,
                 _("Source device asset does not exist"),
             )
         elif kwargs.get('asset_id') == destination_asset:
             messages.error(
                 self.request,
                 _("You can't move parts to the same device"),
             )
         else:
             for part_id in post_data.get('part_ids'):
                 info_part = PartInfo.objects.get(asset=part_id)
                 info_part.device_id = destination_asset
                 info_part.save()
             messages.success(self.request, _("Selected parts was moved."))
     elif 'asset' in post_data.keys():
         if self.asset.type in AssetType.BO.choices:
             self.office_info_form = OfficeForm(
                 post_data,
                 self.request.FILES,
             )
         if all(
             (self.asset_form.is_valid(), self.device_info_form.is_valid(),
              self.asset.type not in AssetType.BO.choices
              or self.office_info_form.is_valid())):
             modifier_profile = self.request.user.get_profile()
             self.asset = _update_asset(modifier_profile, self.asset,
                                        self.asset_form.cleaned_data)
             if self.asset.type in AssetType.BO.choices:
                 self.asset = _update_office_info(
                     modifier_profile.user, self.asset,
                     self.office_info_form.cleaned_data)
             self.asset = _update_device_info(
                 modifier_profile.user, self.asset,
                 self.device_info_form.cleaned_data)
             if self.device_info_form.cleaned_data.get('create_stock'):
                 self.asset.create_stock_device()
             self.asset.save(user=self.request.user)
             messages.success(self.request, _("Assets edited."))
             cat = self.request.path.split('/')[2]
             return HttpResponseRedirect('/assets/%s/edit/device/%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(EditDevice, self).get(*args, **kwargs)