def show_item(category_id, item_id): """Specific item page. Shows desc.""" categories = db.get_all_categories() cat = db.get_cat(category_id) item = db.get_item(item_id) return render_template( 'item.html', categories=categories, category=cat, item=item )
def show_category(category_id): """Specific category page. Shows all titles.""" categories = db.get_all_categories() cat = db.get_cat(category_id) items = session.query(ItemTitle).filter_by(category_id=cat.id).order_by(asc(ItemTitle.name)) return render_template( 'category.html', categories=categories, category=cat, items=items )
def edit_film(category_id, item_id): """Edit item page. User must have created the item to edit.""" categories = db.get_all_categories() cat = db.get_cat(category_id) item = db.get_item(item_id) user_id = login_session['user_id'] if item.user_id != user_id: return redirect(url_for('main_page')) if request.method == 'POST': name = request.form['name'] description = request.form['description'] category = request.form['category'] field_vals = {} if name and description: flash('Film edited!') db.edit_film(item, name, description, db.get_cat_id(category)) time.sleep(1) return redirect(url_for( 'show_item', category_id=category_id, item_id=item_id ) ) else: field_vals['default_cat'] = category flash('Invalid input! Must enter values.') field_vals['input_name'] = name field_vals['input_description'] = description return render_template('new_film.html', categories=categories, **field_vals) else: return render_template( 'edit_film.html', category_id=category_id, item_id=item_id, categories=categories, input_name=item.name, input_description=item.description, default_cat=cat.name )
def new_film(category_id): """Add new item page.""" categories = db.get_all_categories() if request.method == 'POST': name = request.form['name'] description = request.form['description'] category = request.form['category'] field_vals = {} user_id = login_session['user_id'] if name and description and category != "None": print 'received inputs' flash('New film added!') cat_id = db.get_cat_id(category) new_film = db.create_item( name, description, cat_id, user_id ) return redirect(url_for( 'show_item', category_id=cat_id, item_id=new_film.id ) ) elif category == "None": flash('Must enter a category.') else: field_vals['default_cat'] = category flash('Invalid input! Must enter values.') field_vals['input_name'] = name field_vals['input_description'] = description return render_template('new_film.html', categories=categories, **field_vals) else: if category_id: cat_name = db.get_cat(category_id).name return render_template('new_film.html', categories=categories, default_cat=cat_name) else: return render_template('new_film.html', categories=categories)
def delete_film(category_id, item_id): """Delete item page. User must have created item to delete.""" cat = db.get_cat(category_id) item = db.get_item(item_id) user_id = login_session['user_id'] if item.user_id != user_id: return redirect(url_for('main_page')) if request.method == 'POST': delete_confirmation = request.form['delete'] if delete_confirmation == 'yes': db.delete_film(item) flash('film entry deleted.') return redirect(url_for('show_category', category_id=cat.id)) else: return render_template( 'delete_film.html', category=cat, item=item )
def category_items_json(category_id): item_list = db.get_items_in_category(category_id) category = db.get_cat(category_id) return jsonify(Category=category.name, Items=[item.serialize for item in item_list])