def save(self, request): "Process form and create DB objects as required" if self.instance: item = self.instance else: item = Item() item.item_type = self.item_type item.name = unicode(self.cleaned_data['name']) item.parent = self.cleaned_data['parent'] item.status = self.cleaned_data['status'] item.manufacturer = self.cleaned_data['manufacturer'] item.supplier = self.cleaned_data['supplier'] item.owner = self.cleaned_data['owner'] item.location = self.cleaned_data['location'] item.asset = self.cleaned_data['asset'] if not item.id: item.set_user_from_request(request) item.save() if self.instance: item.itemvalue_set.all().delete() for field in item.item_type.fields.all(): for form_name in self.cleaned_data: if re.match(str("^" + field.name + "___\d+$"), form_name): value = None if isinstance(self.fields[form_name], forms.FileField): value = ItemValue( field=field, item=item, value=self._handle_uploaded_file(form_name)) if isinstance(self.fields[form_name], forms.ImageField): self._image_resize(value.value) else: if field.field_type == 'picture' and isinstance( self.fields[form_name], forms.ChoiceField): if self.cleaned_data[form_name] != 'delete': value = ItemValue( field=field, item=item, value=self.cleaned_data[form_name]) else: value = ItemValue( field=field, item=item, value=self.cleaned_data[form_name]) if value: if not value.value: value.value = '' value.save() return item
def test_model_item(self): "Test item model" type = ItemType(name='test') type.save() status = ItemStatus(name='test') status.save() obj = Item(name='test', item_type=type, status=status) obj.save() self.assertEquals('test', obj.name) self.assertNotEquals(obj.id, None) obj.delete()
def setUp(self): "Initial Setup" if not self.prepared: self.group, created = Group.objects.get_or_create(name='test') duser, created = DjangoUser.objects.get_or_create( username=self.username) duser.set_password(self.password) duser.save() self.user, created = User.objects.get_or_create(user=duser) self.user.save() perspective, created = Perspective.objects.get_or_create( name='default') perspective.set_default_user() perspective.save() ModuleSetting.set('default_perspective', perspective.id) self.type = ItemType(name='test') self.type.set_default_user() self.type.save() self.status = ItemStatus(name='test') self.status.set_default_user() self.status.save() self.field = ItemField(name='test', label='test', field_type='text') self.field.set_default_user() self.field.save() self.item = Item(name='test', item_type=self.type, status=self.status) self.item.set_default_user() self.item.save() self.value = ItemValue(field=self.field, item=self.item) self.value.save() self.servicing = ItemServicing(name='test') self.servicing.set_default_user() self.servicing.save() self.client = Client() self.prepared = True
def test_model_item_value(self): "Test item value model" status = ItemStatus(name='test') status.save() type = ItemType(name='test') type.save() item = Item(name='test', item_type=type, status=status) item.save() field = ItemField(name='test', label='test', field_type='text') field.save() obj = ItemValue(value='test', field=field, item=item) obj.save() self.assertEquals('test', obj.value) self.assertNotEquals(obj.id, None) obj.delete()
def setUp(self): "Initial Setup" if not self.prepared: # Clean up first Object.objects.all().delete() # Create objects try: self.group = Group.objects.get(name='test') except Group.DoesNotExist: Group.objects.all().delete() self.group = Group(name='test') self.group.save() try: self.user = DjangoUser.objects.get(username=self.username) self.user.set_password(self.password) try: self.profile = self.user.get_profile() except Exception: User.objects.all().delete() self.user = DjangoUser(username=self.username, password='') self.user.set_password(self.password) self.user.save() except DjangoUser.DoesNotExist: User.objects.all().delete() self.user = DjangoUser(username=self.username, password='') self.user.set_password(self.password) self.user.save() try: perspective = Perspective.objects.get(name='default') except Perspective.DoesNotExist: Perspective.objects.all().delete() perspective = Perspective(name='default') perspective.set_default_user() perspective.save() ModuleSetting.set('default_perspective', perspective.id) self.type = ItemType(name='test') self.type.set_default_user() self.type.save() self.status = ItemStatus(name='test') self.status.set_default_user() self.status.save() self.field = ItemField(name='test', label='test', field_type='text') self.field.set_default_user() self.field.save() self.item = Item(name='test', item_type=self.type, status=self.status) self.item.set_default_user() self.item.save() self.value = ItemValue(field=self.field, item=self.item) self.value.save() self.servicing = ItemServicing(name='test') self.servicing.set_default_user() self.servicing.save() self.client = Client() self.prepared = True