Example #1
0
 def post(self, *args, **kwargs):
     self.initialize_vars()
     mode = _get_mode(self.request)
     self.asset_form = AddPartForm(self.request.POST, mode=mode)
     self.part_info_form = BasePartForm(self.request.POST, mode=mode)
     if self.asset_form.is_valid() and self.part_info_form.is_valid():
         creator_profile = self.request.user.get_profile()
         asset_data = self.asset_form.cleaned_data
         asset_data['barcode'] = None
         serial_numbers = self.asset_form.cleaned_data['sn']
         del asset_data['sn']
         ids = []
         for sn in serial_numbers:
             ids.append(
                 _create_part(creator_profile, asset_data,
                              self.part_info_form.cleaned_data, sn))
         messages.success(self.request, _("Assets saved."))
         cat = self.request.path.split('/')[2]
         if len(ids) == 1:
             return HttpResponseRedirect('/assets/%s/edit/part/%s/' %
                                         (cat, ids[0]))
         else:
             return HttpResponseRedirect(
                 '/assets/%s/bulkedit/?select=%s' %
                 (cat, '&select='.join(["%s" % id for id in ids])))
         return HttpResponseRedirect(_get_return_link(self.request))
     else:
         messages.error(self.request, _("Please correct the errors."))
     return super(AddPart, self).get(*args, **kwargs)
Example #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)
Example #3
0
 def get(self, *args, **kwargs):
     self.initialize_vars()
     mode = _get_mode(self.request)
     self.asset_form = AddPartForm(mode=mode)
     self.device_id = self.request.GET.get('device')
     part_form_initial = {}
     if self.device_id:
         part_form_initial['device'] = self.device_id
     self.part_info_form = BasePartForm(initial=part_form_initial,
                                        mode=mode)
     return super(AddPart, self).get(*args, **kwargs)
Example #4
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)
Example #5
0
 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)
Example #6
0
 def post(self, *args, **kwargs):
     self.initialize_vars()
     mode = _get_mode(self.request)
     self.asset_form = AddPartForm(self.request.POST, mode=mode)
     self.part_info_form = BasePartForm(self.request.POST, mode=mode)
     if self.asset_form.is_valid() and self.part_info_form.is_valid():
         creator_profile = self.request.user.get_profile()
         asset_data = self.asset_form.cleaned_data
         asset_data['barcode'] = None
         serial_numbers = self.asset_form.cleaned_data['sn']
         del asset_data['sn']
         ids = []
         for sn in serial_numbers:
             ids.append(
                 _create_part(
                     creator_profile, asset_data,
                     self.part_info_form.cleaned_data, sn
                 )
             )
         messages.success(self.request, _("Assets saved."))
         cat = self.request.path.split('/')[2]
         if len(ids) == 1:
             return HttpResponseRedirect(
                 '/assets/%s/edit/part/%s/' % (cat, ids[0])
             )
         else:
             return HttpResponseRedirect(
                 '/assets/%s/bulkedit/?select=%s' % (
                     cat, '&select='.join(["%s" % id for id in ids]))
             )
         return HttpResponseRedirect(_get_return_link(self.request))
     else:
         messages.error(self.request, _("Please correct the errors."))
     return super(AddPart, self).get(*args, **kwargs)
Example #7
0
 def post(self, *args, **kwargs):
     self.initialize_vars()
     mode = self.mode
     self.asset_form = AddPartForm(self.request.POST, mode=mode)
     self.part_info_form = BasePartForm(self.request.POST, mode=mode)
     if self.asset_form.is_valid() and self.part_info_form.is_valid():
         creator_profile = self.request.user.get_profile()
         asset_data = self.asset_form.cleaned_data
         for f_name in {
                 "barcode",
                 "category",
                 "company",
                 "cost_center",
                 "department",
                 "employee_id",
                 "imei",
                 "licences",
                 "manager",
                 "profit_center",
                 "supports",
         }:
             if f_name in asset_data:
                 del asset_data[f_name]
         asset_data['barcode'] = None
         serial_numbers = self.asset_form.cleaned_data['sn']
         del asset_data['sn']
         if 'imei' in asset_data:
             del asset_data['imei']
         ids = []
         for sn in serial_numbers:
             ids.append(
                 _create_part(creator_profile, asset_data,
                              self.part_info_form.cleaned_data, sn))
         messages.success(self.request, _("Assets saved."))
         cat = self.request.path.split('/')[2]
         if len(ids) == 1:
             return HttpResponseRedirect('/assets/%s/edit/part/%s/' %
                                         (cat, ids[0]))
         else:
             return HttpResponseRedirect(
                 '/assets/%s/bulkedit/?select=%s' %
                 (cat, '&select='.join(["%s" % id for id in ids])))
         return HttpResponseRedirect(get_return_link(self.mode))
     else:
         messages.error(self.request, _("Please correct the errors."))
     return super(AddPart, self).get(*args, **kwargs)
Example #8
0
class AddPart(Base):
    template_name = 'assets/add_part.html'

    def get_context_data(self, **kwargs):
        ret = super(AddPart, self).get_context_data(**kwargs)
        ret.update({
            'asset_form': self.asset_form,
            'part_info_form': self.part_info_form,
            'form_id': 'add_part_form',
            'edit_mode': False,
        })
        return ret

    def initialize_vars(self):
        self.device_id = None

    def get(self, *args, **kwargs):
        self.initialize_vars()
        mode = _get_mode(self.request)
        self.asset_form = AddPartForm(mode=mode)
        self.device_id = self.request.GET.get('device')
        part_form_initial = {}
        if self.device_id:
            part_form_initial['device'] = self.device_id
        self.part_info_form = BasePartForm(initial=part_form_initial,
                                           mode=mode)
        return super(AddPart, self).get(*args, **kwargs)

    def post(self, *args, **kwargs):
        self.initialize_vars()
        mode = _get_mode(self.request)
        self.asset_form = AddPartForm(self.request.POST, mode=mode)
        self.part_info_form = BasePartForm(self.request.POST, mode=mode)
        if self.asset_form.is_valid() and self.part_info_form.is_valid():
            creator_profile = self.request.user.get_profile()
            asset_data = self.asset_form.cleaned_data
            asset_data['barcode'] = None
            serial_numbers = self.asset_form.cleaned_data['sn']
            del asset_data['sn']
            ids = []
            for sn in serial_numbers:
                ids.append(
                    _create_part(creator_profile, asset_data,
                                 self.part_info_form.cleaned_data, sn))
            messages.success(self.request, _("Assets saved."))
            cat = self.request.path.split('/')[2]
            if len(ids) == 1:
                return HttpResponseRedirect('/assets/%s/edit/part/%s/' %
                                            (cat, ids[0]))
            else:
                return HttpResponseRedirect(
                    '/assets/%s/bulkedit/?select=%s' %
                    (cat, '&select='.join(["%s" % id for id in ids])))
            return HttpResponseRedirect(_get_return_link(self.request))
        else:
            messages.error(self.request, _("Please correct the errors."))
        return super(AddPart, self).get(*args, **kwargs)
Example #9
0
 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)
Example #10
0
 def get(self, *args, **kwargs):
     self.initialize_vars()
     mode = _get_mode(self.request)
     self.asset_form = AddPartForm(mode=mode)
     self.device_id = self.request.GET.get('device')
     part_form_initial = {}
     if self.device_id:
         part_form_initial['device'] = self.device_id
     self.part_info_form = BasePartForm(
         initial=part_form_initial, mode=mode)
     return super(AddPart, self).get(*args, **kwargs)
Example #11
0
 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)
Example #12
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)
Example #13
0
 def post(self, *args, **kwargs):
     self.initialize_vars()
     mode = self.mode
     self.asset_form = AddPartForm(self.request.POST, mode=mode)
     self.part_info_form = BasePartForm(self.request.POST, mode=mode)
     if self.asset_form.is_valid() and self.part_info_form.is_valid():
         creator_profile = self.request.user.get_profile()
         asset_data = self.asset_form.cleaned_data
         for f_name in {
             "barcode", "category", "company", "cost_center", "department",
             "employee_id", "imei", "licences", "manager", "profit_center",
             "supports",
         }:
             if f_name in asset_data:
                 del asset_data[f_name]
         asset_data['barcode'] = None
         serial_numbers = self.asset_form.cleaned_data['sn']
         del asset_data['sn']
         if 'imei' in asset_data:
             del asset_data['imei']
         ids = []
         for sn in serial_numbers:
             ids.append(
                 _create_part(
                     creator_profile, asset_data,
                     self.part_info_form.cleaned_data, sn
                 )
             )
         messages.success(self.request, _("Assets saved."))
         cat = self.request.path.split('/')[2]
         if len(ids) == 1:
             return HttpResponseRedirect(
                 '/assets/%s/edit/part/%s/' % (cat, ids[0])
             )
         else:
             return HttpResponseRedirect(
                 '/assets/%s/bulkedit/?select=%s' % (
                     cat, '&select='.join(["%s" % id for id in ids]))
             )
         return HttpResponseRedirect(get_return_link(self.mode))
     else:
         messages.error(self.request, _("Please correct the errors."))
     return super(AddPart, self).get(*args, **kwargs)
Example #14
0
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,
                           })
Example #15
0
class AddPart(HardwareModeMixin, SubmoduleModeMixin, AssetsBase):
    active_sidebar_item = 'add part'
    template_name = 'assets/add_part.html'

    def get_context_data(self, **kwargs):
        ret = super(AddPart, self).get_context_data(**kwargs)
        ret.update({
            'asset_form': self.asset_form,
            'part_info_form': self.part_info_form,
            'form_id': 'add_part_form',
            'edit_mode': False,
        })
        return ret

    def initialize_vars(self):
        self.device_id = None

    def get(self, *args, **kwargs):
        self.initialize_vars()
        mode = self.mode
        self.asset_form = AddPartForm(mode=mode)
        self.device_id = self.request.GET.get('device')
        part_form_initial = {}
        if self.device_id:
            part_form_initial['device'] = self.device_id
        self.part_info_form = BasePartForm(initial=part_form_initial,
                                           mode=mode)
        return super(AddPart, self).get(*args, **kwargs)

    def post(self, *args, **kwargs):
        self.initialize_vars()
        mode = self.mode
        self.asset_form = AddPartForm(self.request.POST, mode=mode)
        self.part_info_form = BasePartForm(self.request.POST, mode=mode)
        if self.asset_form.is_valid() and self.part_info_form.is_valid():
            creator_profile = self.request.user.get_profile()
            asset_data = self.asset_form.cleaned_data
            for f_name in {
                    "barcode",
                    "category",
                    "company",
                    "cost_center",
                    "department",
                    "employee_id",
                    "imei",
                    "licences",
                    "manager",
                    "profit_center",
                    "supports",
            }:
                if f_name in asset_data:
                    del asset_data[f_name]
            asset_data['barcode'] = None
            serial_numbers = self.asset_form.cleaned_data['sn']
            del asset_data['sn']
            if 'imei' in asset_data:
                del asset_data['imei']
            ids = []
            for sn in serial_numbers:
                ids.append(
                    _create_part(creator_profile, asset_data,
                                 self.part_info_form.cleaned_data, sn))
            messages.success(self.request, _("Assets saved."))
            cat = self.request.path.split('/')[2]
            if len(ids) == 1:
                return HttpResponseRedirect('/assets/%s/edit/part/%s/' %
                                            (cat, ids[0]))
            else:
                return HttpResponseRedirect(
                    '/assets/%s/bulkedit/?select=%s' %
                    (cat, '&select='.join(["%s" % id for id in ids])))
            return HttpResponseRedirect(get_return_link(self.mode))
        else:
            messages.error(self.request, _("Please correct the errors."))
        return super(AddPart, self).get(*args, **kwargs)
Example #16
0
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
Example #17
0
class AddPart(HardwareModeMixin, SubmoduleModeMixin, AssetsBase):
    active_sidebar_item = 'add part'
    template_name = 'assets/add_part.html'

    def get_context_data(self, **kwargs):
        ret = super(AddPart, self).get_context_data(**kwargs)
        ret.update({
            'asset_form': self.asset_form,
            'part_info_form': self.part_info_form,
            'form_id': 'add_part_form',
            'edit_mode': False,
        })
        return ret

    def initialize_vars(self):
        self.device_id = None

    def get(self, *args, **kwargs):
        self.initialize_vars()
        mode = self.mode
        self.asset_form = AddPartForm(mode=mode)
        self.device_id = self.request.GET.get('device')
        part_form_initial = {}
        if self.device_id:
            part_form_initial['device'] = self.device_id
        self.part_info_form = BasePartForm(
            initial=part_form_initial, mode=mode)
        return super(AddPart, self).get(*args, **kwargs)

    def post(self, *args, **kwargs):
        self.initialize_vars()
        mode = self.mode
        self.asset_form = AddPartForm(self.request.POST, mode=mode)
        self.part_info_form = BasePartForm(self.request.POST, mode=mode)
        if self.asset_form.is_valid() and self.part_info_form.is_valid():
            creator_profile = self.request.user.get_profile()
            asset_data = self.asset_form.cleaned_data
            for f_name in {
                "barcode", "category", "company", "cost_center", "department",
                "employee_id", "imei", "licences", "manager", "profit_center",
                "supports", "segment",
            }:
                if f_name in asset_data:
                    del asset_data[f_name]
            asset_data['barcode'] = None
            serial_numbers = self.asset_form.cleaned_data['sn']
            del asset_data['sn']
            if 'imei' in asset_data:
                del asset_data['imei']
            ids = []
            for sn in serial_numbers:
                ids.append(
                    _create_part(
                        creator_profile, asset_data,
                        self.part_info_form.cleaned_data, sn
                    )
                )
            messages.success(self.request, _("Assets saved."))
            cat = self.request.path.split('/')[2]
            if len(ids) == 1:
                return HttpResponseRedirect(
                    '/assets/%s/edit/part/%s/' % (cat, ids[0])
                )
            else:
                return HttpResponseRedirect(
                    '/assets/%s/bulkedit/?select=%s' % (
                        cat, '&select='.join(["%s" % id for id in ids]))
                )
            return HttpResponseRedirect(get_return_link(self.mode))
        else:
            messages.error(self.request, _("Please correct the errors."))
        return super(AddPart, self).get(*args, **kwargs)
Example #18
0
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,
        })
Example #19
0
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
Example #20
0
class AddPart(Base):
    template_name = 'assets/add_part.html'

    def get_context_data(self, **kwargs):
        ret = super(AddPart, self).get_context_data(**kwargs)
        ret.update({
            'asset_form': self.asset_form,
            'part_info_form': self.part_info_form,
            'form_id': 'add_part_form',
            'edit_mode': False,
        })
        return ret

    def initialize_vars(self):
        self.device_id = None

    def get(self, *args, **kwargs):
        self.initialize_vars()
        mode = _get_mode(self.request)
        self.asset_form = AddPartForm(mode=mode)
        self.device_id = self.request.GET.get('device')
        part_form_initial = {}
        if self.device_id:
            part_form_initial['device'] = self.device_id
        self.part_info_form = BasePartForm(
            initial=part_form_initial, mode=mode)
        return super(AddPart, self).get(*args, **kwargs)

    def post(self, *args, **kwargs):
        self.initialize_vars()
        mode = _get_mode(self.request)
        self.asset_form = AddPartForm(self.request.POST, mode=mode)
        self.part_info_form = BasePartForm(self.request.POST, mode=mode)
        if self.asset_form.is_valid() and self.part_info_form.is_valid():
            creator_profile = self.request.user.get_profile()
            asset_data = self.asset_form.cleaned_data
            asset_data['barcode'] = None
            serial_numbers = self.asset_form.cleaned_data['sn']
            del asset_data['sn']
            ids = []
            for sn in serial_numbers:
                ids.append(
                    _create_part(
                        creator_profile, asset_data,
                        self.part_info_form.cleaned_data, sn
                    )
                )
            messages.success(self.request, _("Assets saved."))
            cat = self.request.path.split('/')[2]
            if len(ids) == 1:
                return HttpResponseRedirect(
                    '/assets/%s/edit/part/%s/' % (cat, ids[0])
                )
            else:
                return HttpResponseRedirect(
                    '/assets/%s/bulkedit/?select=%s' % (
                        cat, '&select='.join(["%s" % id for id in ids]))
                )
            return HttpResponseRedirect(_get_return_link(self.request))
        else:
            messages.error(self.request, _("Please correct the errors."))
        return super(AddPart, self).get(*args, **kwargs)