def get(self, *args, **kwargs): try: self.model_type_id = int(self.kwargs.get('type', '')) except ValueError: self.model_type_id = None try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: self.group_id = None self.group = None else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) if self.group: self.query = self.group.devicemodel_set.all() else: self.query = DeviceModel.objects.filter( type=self.model_type_id).filter(group=None) unassigned_devices = DeviceModel.objects.filter( type=self.model_type_id ).filter( group=None ) unassigned_count = 0 for u in unassigned_devices: unassigned_count = unassigned_count + u.get_count() self.unassigned_count = unassigned_count self.groups = list(DeviceModelGroup.objects.filter( type=self.model_type_id)) for g in self.groups: g.count = g.get_count() if not self.form: self.form = DeviceModelGroupForm(instance=self.group) return super(CatalogDevice, self).get(*args, **kwargs)
def post(self, *args, **kwargs): if not self.request.user.get_profile().has_perm( Perm.edit_device_info_financial): raise HttpResponseForbidden( "You have no permission to edit catalog") if 'move' in self.request.POST: items = self.request.POST.getlist('items') if not items: messages.error(self.request, "Nothing to move.") return HttpResponseRedirect(self.request.path) target_id = self.request.POST.get('target', '') if target_id == 'none': target = None elif target_id == 'new': item = get_object_or_404(DeviceModel, id=items[0]) target = DeviceModelGroup(name=item.name, type=item.type) target.save(user=self.request.user) else: target = get_object_or_404(DeviceModelGroup, id=target_id) for item in items: model = get_object_or_404(DeviceModel, id=item) model.group = target model.save(user=self.request.user) self.update_cached(target) messages.success(self.request, "Items moved.") return HttpResponseRedirect(self.request.path) elif 'clear' in self.request.POST: items = self.request.POST.getlist('items') if not items: messages.error(self.request, "Nothing to clear.") return HttpResponseRedirect(self.request.path) for item in items: model = get_object_or_404(DeviceModel, id=item) priorities = model.get_save_priorities() priorities = dict((key, 0) for key in priorities) model.update_save_priorities(priorities) model.save(user=self.request.user) messages.success(self.request, "Items cleaned.") return HttpResponseRedirect(self.request.path) elif 'delete' in self.request.POST: try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: messages.error(self.request, "No such group.") else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) self.group.price = 0 self.group.save(user=self.request.user) self.update_cached(self.group) self.group.delete() messages.warning(self.request, "Group '%s' deleted." % self.group.name) return HttpResponseRedirect(self.request.path+'..') else: try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: self.group_id = None self.group = None else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) self.form = DeviceModelGroupForm(self.request.POST, instance=self.group) if self.form.is_valid(): self.form.save(commit=False) self.form.instance.save(user=self.request.user) self.update_cached(self.group) messages.success(self.request, "Changes saved.") return HttpResponseRedirect(self.request.path) else: messages.error(self.request, "Correct the errors.") return self.get(*args, **kwargs)
class CatalogDevice(Catalog): template_name = 'ui/catalog/device.html' def __init__(self, *args, **kwargs): super(CatalogDevice, self).__init__(*args, **kwargs) self.form = None def update_cached(self, group): for device in Device.objects.filter(model__group=group): pricing.device_update_cached(device) def post(self, *args, **kwargs): if not self.request.user.get_profile().has_perm( Perm.edit_device_info_financial): raise HttpResponseForbidden( "You have no permission to edit catalog") if 'move' in self.request.POST: items = self.request.POST.getlist('items') if not items: messages.error(self.request, "Nothing to move.") return HttpResponseRedirect(self.request.path) target_id = self.request.POST.get('target', '') if target_id == 'none': target = None elif target_id == 'new': item = get_object_or_404(DeviceModel, id=items[0]) target = DeviceModelGroup(name=item.name, type=item.type) target.save(user=self.request.user) else: target = get_object_or_404(DeviceModelGroup, id=target_id) for item in items: model = get_object_or_404(DeviceModel, id=item) model.group = target model.save(user=self.request.user) self.update_cached(target) messages.success(self.request, "Items moved.") return HttpResponseRedirect(self.request.path) elif 'clear' in self.request.POST: items = self.request.POST.getlist('items') if not items: messages.error(self.request, "Nothing to clear.") return HttpResponseRedirect(self.request.path) for item in items: model = get_object_or_404(DeviceModel, id=item) priorities = model.get_save_priorities() priorities = dict((key, 0) for key in priorities) model.update_save_priorities(priorities) model.save(user=self.request.user) messages.success(self.request, "Items cleaned.") return HttpResponseRedirect(self.request.path) elif 'delete' in self.request.POST: try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: messages.error(self.request, "No such group.") else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) self.group.price = 0 self.group.save(user=self.request.user) self.update_cached(self.group) self.group.delete() messages.warning(self.request, "Group '%s' deleted." % self.group.name) return HttpResponseRedirect(self.request.path+'..') else: try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: self.group_id = None self.group = None else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) self.form = DeviceModelGroupForm(self.request.POST, instance=self.group) if self.form.is_valid(): self.form.save(commit=False) self.form.instance.save(user=self.request.user) self.update_cached(self.group) messages.success(self.request, "Changes saved.") return HttpResponseRedirect(self.request.path) else: messages.error(self.request, "Correct the errors.") return self.get(*args, **kwargs) def get(self, *args, **kwargs): try: self.model_type_id = int(self.kwargs.get('type', '')) except ValueError: self.model_type_id = None try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: self.group_id = None self.group = None else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) if self.group: self.query = self.group.devicemodel_set.all() else: self.query = DeviceModel.objects.filter( type=self.model_type_id).filter(group=None) unassigned_devices = DeviceModel.objects.filter( type=self.model_type_id ).filter( group=None ) unassigned_count = 0 for u in unassigned_devices: unassigned_count = unassigned_count + u.get_count() self.unassigned_count = unassigned_count self.groups = list(DeviceModelGroup.objects.filter( type=self.model_type_id)) for g in self.groups: g.count = g.get_count() if not self.form: self.form = DeviceModelGroupForm(instance=self.group) return super(CatalogDevice, self).get(*args, **kwargs) def get_context_data(self, **kwargs): ret = super(CatalogDevice, self).get_context_data(**kwargs) ret.update({ 'columns': ['count', 'size'], 'groups': self.groups, 'group': self.group, 'unassigned_count': self.unassigned_count, 'form': self.form, }) ret.update(_prepare_model_groups(self.request, self.query)) return ret
def post(self, *args, **kwargs): if not self.request.user.get_profile().has_perm( Perm.edit_device_info_financial): raise HttpResponseForbidden( "You have no permission to edit catalog") if 'move' in self.request.POST: items = self.request.POST.getlist('items') if not items: messages.error(self.request, "Nothing to move.") return HttpResponseRedirect(self.request.path) target_id = self.request.POST.get('target', '') if target_id == 'none': target = None elif target_id == 'new': item = get_object_or_404(DeviceModel, id=items[0]) target = DeviceModelGroup(name=item.name, type=item.type) target.save(user=self.request.user) else: target = get_object_or_404(DeviceModelGroup, id=target_id) for item in items: model = get_object_or_404(DeviceModel, id=item) model.group = target model.save(user=self.request.user) self.update_cached(target) messages.success(self.request, "Items moved.") return HttpResponseRedirect(self.request.path) elif 'clear' in self.request.POST: items = self.request.POST.getlist('items') if not items: messages.error(self.request, "Nothing to clear.") return HttpResponseRedirect(self.request.path) for item in items: model = get_object_or_404(DeviceModel, id=item) priorities = model.get_save_priorities() priorities = dict((key, 0) for key in priorities) model.update_save_priorities(priorities) model.save(user=self.request.user) messages.success(self.request, "Items cleaned.") return HttpResponseRedirect(self.request.path) elif 'delete' in self.request.POST: try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: messages.error(self.request, "No such group.") else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) self.group.price = 0 self.group.save(user=self.request.user) self.update_cached(self.group) self.group.delete() messages.warning(self.request, "Group '%s' deleted." % self.group.name) return HttpResponseRedirect(self.request.path + '..') else: try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: self.group_id = None self.group = None else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) self.form = DeviceModelGroupForm(self.request.POST, instance=self.group) if self.form.is_valid(): self.form.save(commit=False) self.form.instance.save(user=self.request.user) self.update_cached(self.group) messages.success(self.request, "Changes saved.") return HttpResponseRedirect(self.request.path) else: messages.error(self.request, "Correct the errors.") return self.get(*args, **kwargs)
class CatalogDevice(Catalog): template_name = 'ui/catalog/device.html' def __init__(self, *args, **kwargs): super(CatalogDevice, self).__init__(*args, **kwargs) self.form = None def update_cached(self, group): for device in Device.objects.filter(model__group=group): pricing.device_update_cached(device) def post(self, *args, **kwargs): if not self.request.user.get_profile().has_perm( Perm.edit_device_info_financial): raise HttpResponseForbidden( "You have no permission to edit catalog") if 'move' in self.request.POST: items = self.request.POST.getlist('items') if not items: messages.error(self.request, "Nothing to move.") return HttpResponseRedirect(self.request.path) target_id = self.request.POST.get('target', '') if target_id == 'none': target = None elif target_id == 'new': item = get_object_or_404(DeviceModel, id=items[0]) target = DeviceModelGroup(name=item.name, type=item.type) target.save(user=self.request.user) else: target = get_object_or_404(DeviceModelGroup, id=target_id) for item in items: model = get_object_or_404(DeviceModel, id=item) model.group = target model.save(user=self.request.user) self.update_cached(target) messages.success(self.request, "Items moved.") return HttpResponseRedirect(self.request.path) elif 'clear' in self.request.POST: items = self.request.POST.getlist('items') if not items: messages.error(self.request, "Nothing to clear.") return HttpResponseRedirect(self.request.path) for item in items: model = get_object_or_404(DeviceModel, id=item) priorities = model.get_save_priorities() priorities = dict((key, 0) for key in priorities) model.update_save_priorities(priorities) model.save(user=self.request.user) messages.success(self.request, "Items cleaned.") return HttpResponseRedirect(self.request.path) elif 'delete' in self.request.POST: try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: messages.error(self.request, "No such group.") else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) self.group.price = 0 self.group.save(user=self.request.user) self.update_cached(self.group) self.group.delete() messages.warning(self.request, "Group '%s' deleted." % self.group.name) return HttpResponseRedirect(self.request.path + '..') else: try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: self.group_id = None self.group = None else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) self.form = DeviceModelGroupForm(self.request.POST, instance=self.group) if self.form.is_valid(): self.form.save(commit=False) self.form.instance.save(user=self.request.user) self.update_cached(self.group) messages.success(self.request, "Changes saved.") return HttpResponseRedirect(self.request.path) else: messages.error(self.request, "Correct the errors.") return self.get(*args, **kwargs) def get(self, *args, **kwargs): try: self.model_type_id = int(self.kwargs.get('type', '')) except ValueError: self.model_type_id = None try: self.group_id = int(self.kwargs.get('group', '')) except ValueError: self.group_id = None self.group = None else: self.group = get_object_or_404(DeviceModelGroup, id=self.group_id) if self.group: self.query = self.group.devicemodel_set.all() else: self.query = DeviceModel.objects.filter( type=self.model_type_id).filter(group=None) unassigned_devices = DeviceModel.objects.filter( type=self.model_type_id ).filter( group=None ) unassigned_count = 0 for u in unassigned_devices: unassigned_count = unassigned_count + u.get_count() self.unassigned_count = unassigned_count self.groups = list(DeviceModelGroup.objects.filter( type=self.model_type_id)) for g in self.groups: g.count = g.get_count() if not self.form: self.form = DeviceModelGroupForm(instance=self.group) return super(CatalogDevice, self).get(*args, **kwargs) def get_context_data(self, **kwargs): ret = super(CatalogDevice, self).get_context_data(**kwargs) ret.update({ 'columns': ['count', 'size'], 'groups': self.groups, 'group': self.group, 'unassigned_count': self.unassigned_count, 'form': self.form, }) ret.update(_prepare_model_groups(self.request, self.query)) return ret