Пример #1
0
def newItem(user_id):
    credentials = login_session.get('credentials')
    if request.method == 'GET':
        categorylst = dbi.getAllCategory()
        categorySelect_choices = [
            (int(
                category.id), str(
                category.name)) for category in categorylst]
        newItemFrm = forms.NewItem(request.form)
        newItemFrm.categorySelect.choices = categorySelect_choices
        newItemFrm.categorySelect.choices.insert(0, ("0", "None"))
        newItemFrm.user_id = user_id
        return render_template(
            'newitem.html',
            newItemForm=newItemFrm,
            username=login_session['username'])
    else:
        # SelectField  choices have to be filled in with current select list
        # before validating!!!
        categorylst = dbi.getAllCategory()
        categorySelect_choices = [
            (int(
                category.id), str(
                category.name)) for category in categorylst]
        newItemFrm = forms.NewItem(request.form)
        newItemFrm.categorySelect.choices = categorySelect_choices
        newItemFrm.categorySelect.choices.insert(0, ("0", "None"))
        if newItemFrm.validate():
            print "New Item Validation OK"
            iuser = dbi.getUserById(user_id)
            icaty = dbi.getCategoryById(request.form['categorySelect'])
            creation = datetime.date.today()
            newItem = Item(name=request.form['name'],
                           description=request.form['description'],
                           imageurl=request.form['imageurl'],
                           cuser=iuser,
                           creation=creation,
                           category=icaty)
            dbi.addNewItem(newItem)
            flash("Item has been added!!!")
            # print 'name'
            # print request.form['name']
            # print 'description'
            # print request.form['description']
            print 'imageurl'
            print request.form['imageurl']
            print 'categorySelect'
            print request.form['categorySelect']
        else:
            print "New Item Validation Failed"
            print 'name'
            print newItemFrm.name.errors
            print 'description'
            print newItemFrm.description.errors
            print 'imageurl'
            print newItemFrm.imageurl.errors
            print 'categorySelect'
            print newItemFrm.categorySelect.errors
            flash("Something has gone wrong with submitted data")
        return redirect(url_for('index'))
Пример #2
0
def editItem(user_id, item_id):
    credentials = login_session.get('credentials')
    oldItem = dbi.getItemById(item_id)
    if oldItem.user_id != user_id:
        response = make_response(
            json.dumps("Requested Item does not belong to current user."), 401)
        response.headers['Content-Type'] = 'application/json'
        return response
    if request.method == 'GET':
        categorylst = dbi.getAllCategory()
        categorySelect_choices = [
            (int(
                category.id), str(
                category.name)) for category in categorylst]
        oldItemFrm = forms.NewItem(request.form)
        oldItemFrm.name.data = oldItem.name
        oldItemFrm.description.data = oldItem.description
        oldItemFrm.imageurl.data = oldItem.imageurl
        oldItemFrm.categorySelect.choices = categorySelect_choices
        oldItemFrm.categorySelect.choices.insert(0, ("0", "None"))
        oldItemFrm.categorySelect.data = oldItem.category_id
        oldItemFrm.user_id = user_id
        return render_template(
            'edititem.html',
            newItemForm=oldItemFrm,
            username=login_session['username'],
            oldItem=oldItem)
    else:
        # SelectField  choices have to be filled in with current select list
        # before validating!!!
        categorylst = dbi.getAllCategory()
        categorySelect_choices = [
            (int(
                category.id), str(
                category.name)) for category in categorylst]
        newItemFrm = forms.NewItem(request.form)
        newItemFrm.categorySelect.choices = categorySelect_choices
        newItemFrm.categorySelect.choices.insert(0, ("0", "None"))
        if newItemFrm.validate():
            print "Edited Item Validation OK"

            dbi.updateItemById(item_id=item_id,
                               new_name=request.form['name'],
                               new_description=request.form['description'],
                               new_imgURL=request.form['imageurl'],
                               new_category_id=request.form['categorySelect'])

            flash("Item has been edited!!!")
        else:
            print "Edited Item Validation Failed"
            flash("Something has gone wrong with submitted data")
        return redirect(url_for('index'))
Пример #3
0
def catalogXML():
    categorylst = dbi.getAllCategory()
    dicjson = [i.serialize for i in categorylst]
    dicjsonStr = json.dumps(dicjson)
    xml = dicttoxml(json.loads(dicjsonStr), custom_root='EmbeddedWorldCatalog')
    response = make_response(xml, 200)
    response.headers['Content-Type'] = 'application/xml'
    return response
Пример #4
0
def index():
    if request.method == 'GET':
        # Optain a catalog list and a last 10 added item list
        catLst = dbi.getAllCategory()
        recentItemLst = dbi.getRecetItems(10)
        username = None
        useremail = None
        userid = None
        # Check for current logrd user
        credentials = login_session.get('credentials')
        if credentials is not None:
            username = login_session['username']
            useremail = login_session['email']
            userid = login_session['user_id']
        return render_template('nonloghome.html',
                               catLst=catLst,
                               recentItemLst=recentItemLst,
                               username=username,
                               useremail=useremail,
                               userid=userid)
Пример #5
0
def catalogJSON():
    categorylst = dbi.getAllCategory()
    return jsonify(Category=[i.serialize for i in categorylst])