Esempio n. 1
0
    def setUp(self):
        self.group, created = Group.objects.get_or_create(name='test')
        self.user, created = DjangoUser.objects.get_or_create(
            username=self.username)
        self.user.set_password(self.password)
        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()
Esempio n. 2
0
 def test_model_item_type(self):
     "Test item type model"
     obj = ItemType(name='test')
     obj.save()
     self.assertEquals('test', obj.name)
     self.assertNotEquals(obj.id, None)
     obj.delete()
Esempio n. 3
0
def type_add(request, response_format='html'):
    "ItemType add"

    if not request.user.profile.is_admin('anaf.infrastructure'):
        return user_denied(
            request,
            message=
            "You don't have administrator access to the Infrastructure module",
            response_format=response_format)

    if request.POST:
        if 'cancel' not in request.POST:
            item_type = ItemType()
            form = ItemTypeForm(request.user.profile,
                                request.POST,
                                instance=item_type)
            if form.is_valid():
                item = form.save(request)
                item_type.set_user_from_request(request)
                return HttpResponseRedirect(
                    reverse('infrastructure_type_view', args=[item.id]))
        else:
            return HttpResponseRedirect(
                reverse('infrastructure_settings_view'))
    else:
        form = ItemTypeForm(request.user.profile)

    context = _get_default_context(request)
    context.update({'form': form})

    return render_to_response('infrastructure/item_type_add',
                              context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
Esempio n. 4
0
 def itemFromXML(item_idmap, itemel):
     if itemel.tag != 'item':
         raise ValueError(f"Got element '{itemel.tag}', expecting 'item'.")
     itemid = itemel.attrib['id']
     if not _checkXMLHasNoText(itemel):
         raise ValueError(f"Invalid item {itemid}")
     if itemid in item_idmap:
         raise ValueError(f"Item {itemid} defined twice.")
     name = itemel.attrib.get('name', itemid)
     time = itemel.attrib.get('time', None)
     produced = itemel.attrib.get('produced', None)
     if (produced is None) != (time is None):
         raise ValueError(f"Invalid item '{itemid}'.")
     if time is not None:
         time = _F(time)
         produced = int(produced)
     ingredients = []
     for ingredientel in itemel.getchildren():
         if ingredientel.tag != 'ingredient':
             raise ValueError(f"Item {itemid} has {ingredientel.tag}")
         ingid = ingredientel.attrib['idref']
         if not _checkXMLHasNoText(ingredientel):
             raise ValueError(f"Invalid ingredient '{ingid}' in '{itemid}'")
         ingcount = int(ingredientel.attrib['count'])
         if ingid not in item_idmap:
             raise ValueError(f"Item '{itemid}' mentions ingredient "
                              f"'{ingid}' before it's defined.")
         ingredients.append((ingcount, item_idmap[ingid]))
     if (len(ingredients) > 0) and (time is None):
         raise ValueError(f"Item '{itemid}' has ingredients but "
                          "no production time.")
     return (itemid, ItemType(name, time, tuple(ingredients), produced))
Esempio n. 5
0
def item_type_save():
    try:
        new_item_type = ItemType(**request.form)
        db.session.add(new_item_type)
        db.session.commit()
    except BaseException as error:
        return str(error), 400
    return "success", 200
Esempio n. 6
0
def create_item_type():
    request_json = request.json
    name = request_json.get('name')
    try:
        item_type = ItemType(name=name)
    except:
        return '', HTTPStatus.CONFLICT
    db.session.add(item_type)
    db.session.commit()
    return jsonify(item_type), HTTPStatus.CREATED
Esempio n. 7
0
    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()
Esempio n. 8
0
def post_item_type():
    if not request.is_json:
        abort(400, "The request payload is not in JSON format")
    else:
        try:
            data = request.get_json()
            if data["name"] is None:
                abort(422)
            else:
                item_type = ItemType(name=data["name"])
                db.session.add(item_type)
                db.session.commit()
                return jsonify(item_type.serialize())
        except Exception as e:
            return abort(e.code, e)
Esempio n. 9
0
    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()