Beispiel #1
0
def itemXML(category_id, item_id):
    category = models.category_get(category_id)
    item = models.item_get(item_id)
    page = {'CatalogItem': [item.serialize]}
    xml = dicttoxml(page)
    dom = parseString(xml)
    return Response(dom.toprettyxml(), mimetype='text/xml')
Beispiel #2
0
def editCategory(category_id):
    # Adding logged in user verification to every route here on out.
    if 'email' in login_session.keys():
        # Get the category out of the DB.
        edit_category = models.category_get(category_id)
        # Let's make sure this user is the cateogory owner.
        user_id = models.getUserID(login_session['email'])
        if edit_category.user_id == user_id:
            # Get the form out of the form module.
            form = forms.categoryForm(request.form)
            # If the form is submitted via POST and is validated:
            if request.method == 'POST' and form.validate():
                # Update the category with the form data
                edit_category.name = form.name.data
                edit_category.image = form.image.data
                edit_category.description = form.description.data
                # Send the updated category back to the DB.
                models.category_edit(edit_category)
                # Redirect to the index page.
                return redirect(url_for('index'))
            else:
                # If the route is requested via GET render the edit page.
                user = models.getUserInfo(user_id)
                return render_template('categories/edit.html',
                                       category=edit_category,
                                       form=form, user=user)
        else:
            flash("You aren't the owner for that.")
            return redirect(url_for('index'))
    else:
        return redirect(url_for('index'))
Beispiel #3
0
def editItem(category_id, item_id):
    if 'email' in login_session.keys():
        edit_item = models.item_get(item_id)
        user_id = models.getUserID(login_session['email'])
        if edit_item.user_id == user_id:
            form = forms.itemForm(request.form)
            user = models.getUserInfo(user_id)
            category = models.category_get(category_id)
            if request.method == 'POST' and form.validate():
                edit_item.name = form.name.data
                edit_item.image = form.image.data
                edit_item.description = form.description.data
                models.item_edit(edit_item)
                items = models.items_get_by_category(category_id)
                return render_template('categories/show.html',
                                       category=category,
                                       items=items, user=user)
            else:
                return render_template('items/edit.html', category=category,
                                       item=edit_item, form=form, user=user)
        else:
            flash("You aren't the owner for that.")
            return redirect(url_for('showCategory', category_id=category_id))
    else:
        return redirect(url_for('showCategory', category_id=category_id))
Beispiel #4
0
def showItem(category_id, item_id):
    category = models.category_get(category_id)
    item = models.item_get(item_id)
    if 'email' in login_session.keys():
        user_id = models.getUserID(login_session['email'])
        user = models.getUserInfo(user_id)
        return render_template('items/show.html', category=category,
                               item=item, user=user)
    else:
        return render_template('items/public.html',
                               category=category, item=item)
Beispiel #5
0
def categoryXML(category_id):
    category = models.category_get(category_id)
    items = models.items_get_by_category(category_id)
    # For XML we will need a dictionary instead of a list.
    page = {'CatalogItems': [i.serialize for i in items]}
    # Convert that dictionary using the dicttoxml library.
    xml = dicttoxml(page)
    # Use Python's parseString to build a DOM for us.
    dom = parseString(xml)
    # Return that DOM making sure to tell the server our response is going
    # to be XML instead of HTML and while we're at it let's make that XML
    # look pretty and easy to read.
    return Response(dom.toprettyxml(), mimetype='text/xml')
Beispiel #6
0
def showCategory(category_id):
    # Get the selected category from the DB.
    category = models.category_get(category_id)
    # Get the items for that category out of the DB.
    items = models.items_get_by_category(category_id)
    # Show the information on the shetlers show page.
    if 'email' in login_session.keys():
        user_id = models.getUserID(login_session['email'])
        user = models.getUserInfo(user_id)
        return render_template('categories/show.html', category=category,
                               items=items, user=user)
    else:
        state = ''.join(random.choice(string.ascii_uppercase + string.digits)
                        for x in xrange(32))
        login_session['state'] = state
        return render_template('categories/public.html',
                               category=category, items=items, STATE=state)
Beispiel #7
0
def deleteItem(category_id, item_id):
    if 'email' in login_session.keys():
        delete_item = models.item_get(item_id)
        user_id = models.getUserID(login_session['email'])
        if delete_item.user_id == user_id:
            form = forms.deleteForm(request.form)
            category = models.category_get(category_id)
            user = models.getUserInfo(user_id)
            if request.method == 'POST':
                models.item_delete(delete_item)
                return redirect(url_for('showCategory',
                                        category_id=category.id))
            else:
                return render_template('items/delete.html', category=category,
                                       item=delete_item, user=user, form=form)
        else:
            flash("You aren't the owner for that.")
            return redirect(url_for('showCategory', category_id=category_id))
    else:
        return redirect(url_for('showCategory', category_id=category_id))
Beispiel #8
0
def newItem(category_id):
    if 'email' in login_session.keys():
        form = forms.itemForm(request.form)
        user_id = models.getUserID(login_session['email'])
        user = models.getUserInfo(user_id)
        category = models.category_get(category_id)
        if request.method == 'POST' and form.validate():
            new_item = {
                "name": form.name.data,
                "image": form.image.data,
                "description": form.description.data,
                "user_id": models.getUserID(login_session['email']),
                "category_id": category_id
            }
            models.item_new(category_id, new_item)
            items = models.items_get_by_category(category_id)
            return render_template('categories/show.html', category=category,
                                   items=items, user=user)
        else:
            return render_template('items/new.html', category=category,
                                   form=form, user=user)
    else:
        return redirect(url_for('showCategory', category_id=category_id))
Beispiel #9
0
def deleteCategory(category_id):
    if 'email' in login_session.keys():
        # Get the category to be deleted out of the DB.
        delete_category = models.category_get(category_id)
        user_id = models.getUserID(login_session['email'])
        if delete_category.user_id == user_id:
            form = forms.deleteForm(request.form)
            if request.method == 'POST':
                # Delete the category out of the DB.
                models.category_delete(delete_category)
                # Redirect to the index page.
                return redirect(url_for('index'))
            else:
                # If the route is requested via GET render the delete page.
                user = models.getUserInfo(user_id)
                return render_template('categories/delete.html',
                                       category=delete_category, user=user,
                                       form=form)
        else:
            flash("You aren't the owner for that.")
            return redirect(url_for('index'))
    else:
        return redirect(url_for('index'))
Beispiel #10
0
def itemJSON(category_id, item_id):
    category = models.category_get(category_id)
    item = models.item_get(item_id)
    return jsonify(CatalogItem=[item.serialize])
Beispiel #11
0
def categoryJSON(category_id):
    # Get the selected category from the DB.
    category = models.category_get(category_id)
    # Get the items for that category out of the DB.
    items = models.items_get_by_category(category_id)
    return jsonify(CatalogItems=[i.serialize for i in items])