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')
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'))
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))
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)
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')
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)
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))
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))
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'))
def itemJSON(category_id, item_id): category = models.category_get(category_id) item = models.item_get(item_id) return jsonify(CatalogItem=[item.serialize])
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])