def item_edit(request, id, library_code, menu_id=None, managed_libraries=[]): library = org_utils.get_library(library_code, managed_libraries) if not library: return HttpResponseForbidden( u'Вы должны быть сотрудником этой организации') menu = get_object_or_404(Menu, id=menu_id) item = get_object_or_404(MenuItem, id=id) if request.method == 'POST': item_form = MenuItemForm(request.POST, prefix='item_form', instance=item) if item_form.is_valid(): item_form.save() return redirect('participant_menu:administration:menu_detail', menu_id=menu_id, library_code=library_code) else: item_form = MenuItemForm(prefix="item_form", instance=item) return render(request, 'participant_menu/administration/edit_item.html', { 'library': library, 'item': item, 'item_form': item_form, 'menu': menu })
def menu_edit(request, key=None): if not key: return redirect(menu_list) m = MenuItem.get(key) if request.method == 'POST': formset = MenuItemForm(request.POST, instance=m) if formset.is_valid(): m = formset.save() MenuItem.get(m.key()) # for refreshing purposes http://stackoverflow.com/questions/15773892/should-i-expect-stale-results-after-redirect-on-local-environment return redirect(menu_list) else: formset = MenuItemForm(instance=m) return render_to_response("menu_add.html", { "formset": formset, "level" : m.level }, context_instance=RequestContext(request))
def menu_add(request, url_level=None): isInitial = False level = request.POST.get('level') or url_level or "" if not level: formset = SelectChoiceForm() isInitial = True elif request.POST.get('initial') == "True" or url_level: formset = MenuItemForm(initial={'level': level}) elif request.method == 'POST': formset = MenuItemForm(request.POST) if formset.is_valid(): instance = formset.save() MenuItem.get(instance.key()) # for refreshing purposes http://stackoverflow.com/questions/15773892/should-i-expect-stale-results-after-redirect-on-local-environment return redirect(menu_list) return render_to_response("menu_add.html", { "formset": formset, "initial": isInitial, "level" : level }, context_instance=RequestContext(request))
def new_menu(): form = MenuItemForm() if form.validate_on_submit(): name = form.name.data price = form.price.data desc = form.desc.data photo = form.photo.data photo_name = secure_filename(photo.filename) photo_path = os.path.join('static/images/menus', photo_name) thumb_path = os.path.join('static/images/menus/thumbs', photo_name) thumb_size = 128, 128 menu = db.engine.execute( text( "SELECT * FROM menus WHERE menu_name = :name AND menu_price = :price LIMIT 1" ), { "name": name, "price": price }).first() # add new staff if not exists if menu is None: # save staff photo photo.save(photo_path) # create thumbnail for staff try: im = Image.open(photo_path) im.thumbnail(thumb_size, Image.ANTIALIAS) im.save(thumb_path, "JPEG") except IOError: flash("cannot create thumbnail for this menu item") # save user and the thumbnail name insertSql = "INSERT INTO menus (menu_name, menu_price, menu_desc, menu_photo) VALUES (:mname, :mprice, :mdesc, :mphoto)" insertParams = { 'mname': name, 'mprice': price, 'mdesc': desc, 'mphoto': photo_name } db.engine.execute(text(insertSql), insertParams) flash('New menu item added successfully.') return redirect(url_for('menus')) else: flash('Menu item already exists.') return render_template('new-menu-item.html', auth=current_user, form=form, async_mode=socketio.async_mode)
def deleteMenuItem(restaurant_id, menu_id): session = DBSession() form = MenuItemForm() menuItemToDelete = session.query(Menu).filter_by(id=menu_id).one() if form.validate_on_submit(): session.delete(menuItemToDelete) session.commit() session.close() flash("Menu Item Deleted Successfully!!! ") return redirect(url_for('viewRestaurantDetails', restaurant_id=restaurant_id)) return render_template('menu/deletemenu.html', item = menuItemToDelete, form=form)
def create_item(request, menu_id, library_code, parent=None, managed_libraries=[]): library = org_utils.get_library(library_code, managed_libraries) if not library: return HttpResponseForbidden( u'Вы должны быть сотрудником этой организации') menu = get_object_or_404(Menu, id=menu_id) if not parent: parent = menu.root_item else: parent = get_object_or_404(MenuItem, id=parent) if request.method == 'POST': item_form = MenuItemForm(request.POST, prefix='item_form') if item_form.is_valid(): item = item_form.save(commit=False) item.parent = parent item.show = parent.show item.save() return redirect('participant_menu:administration:menu_detail', menu_id=menu.id, library_code=library_code) else: item_form = MenuItemForm(prefix="item_form") return render(request, 'participant_menu/administration/create_item.html', { 'library': library, 'item_form': item_form, 'menu': menu })
def createMenuItem(restaurant_id): session = DBSession() form = MenuItemForm() if form.validate_on_submit(): name = form.name.data course = form.course.data category = form.category.data price = form.price.data description = form.description.data menuItem = models.Menu(name=name, course =course, category=category, description = description, price= price, restaurant_id=restaurant_id) session.add(menuItem) session.commit() session.close() flash("Added {} ".format(name)) return redirect(url_for('viewRestaurantDetails', restaurant_id = restaurant_id)) return render_template('menu/createmenu.html', form=form)
def editMenuItem(restaurant_id, menu_id): session = DBSession() form = MenuItemForm() restaurant = session.query(Restaurant).filter_by(id=restaurant_id).one() editedMenu = session.query(Menu).filter_by(id=menu_id).one() if form.validate_on_submit(): if request.form['name']: editedMenu.name = form.name.data if request.form['course']: editedMenu.course = form.course.data if request.form['category']: editedMenu.category = form.category.data if request.form['price']: editedMenu.price = form.price.data if request.form['description']: editedMenu.description = form.description.data session.add(editedMenu) session.commit() session.close() flash("Menu Item Successfully Edited") return redirect(url_for('viewRestaurantDetails', restaurant_id = restaurant_id)) return render_template('menu/editmenu.html', restaurant_id = restaurant_id, menu_id=menu_id, item=editedMenu, form=form)
def item_edit(request, id, menu_id=None): menu = get_object_or_404(Menu, id=menu_id) item = get_object_or_404(MenuItem, id=id) item_titles = MenuItemTitle.objects.filter(item=item) item_titles_langs = {} for lang in settings.LANGUAGES: item_titles_langs[lang] = None for item_title in item_titles: item_titles_langs[item_title.lang] = item_title if request.method == 'POST': item_form = MenuItemForm(request.POST, prefix='item_form', instance=item) menu_item_title_forms = [] for lang in settings.LANGUAGES: if lang in item_titles_langs: lang = lang[0] if lang in item_titles_langs: menu_item_title_forms.append({ 'form': MenuItemTitleForm(request.POST, prefix='menu_item_title_' + lang, instance=item_titles_langs[lang]), 'lang': lang }) else: menu_item_title_forms.append({ 'form': MenuItemTitleForm(request.POST, prefix='menu_item_title_' + lang), 'lang': lang }) valid = False for menu_item_title_form in menu_item_title_forms: valid = menu_item_title_form['form'].is_valid() if not valid: break if not item_form.is_valid(): valid = False if valid: item = item_form.save() for menu_item_title_form in menu_item_title_forms: menu_item_title = menu_item_title_form['form'].save( commit=False) menu_item_title.item = item menu_item_title.lang = menu_item_title_form['lang'] menu_item_title.save() if not item.is_leaf_node(): ditems = item.get_descendants() for ditem in ditems: ditem.show = item.show ditem.save() return redirect('menu:administration:item_list', menu_id=menu_id) else: item_form = MenuItemForm(prefix="item_form", instance=item) menu_item_title_forms = [] for lang in settings.LANGUAGES: lang = lang[0] if lang in item_titles_langs: menu_item_title_forms.append({ 'form': MenuItemTitleForm(prefix='menu_item_title_' + lang, instance=item_titles_langs[lang]), 'lang': lang }) else: menu_item_title_forms.append({ 'form': MenuItemTitleForm(prefix='menu_item_title_' + lang), 'lang': lang }) return render( request, 'menu/administration/edit_item.html', { 'item': item, 'item_form': item_form, 'menu_item_title_forms': menu_item_title_forms, 'menu': menu })
def create_item(request, menu_id, parent=None): menu = get_object_or_404(Menu, id=menu_id) if not parent: parent = menu.root_item else: parent = get_object_or_404(MenuItem, id=parent) if request.method == 'POST': item_form = MenuItemForm(request.POST, prefix='item_form') menu_item_title_forms = [] for lang in settings.LANGUAGES: menu_item_title_forms.append({ 'form': MenuItemTitleForm(request.POST, prefix='menu_item_title_' + lang[0]), 'lang': lang[0] }) if item_form.is_valid(): item = item_form.save(commit=False) item.parent = parent item.show = parent.show item.save() valid = False for menu_item_title_form in menu_item_title_forms: valid = menu_item_title_form['form'].is_valid() if not valid: break if valid: for menu_item_title_form in menu_item_title_forms: menu_item_title = menu_item_title_form['form'].save( commit=False) menu_item_title.lang = menu_item_title_form['lang'] menu_item_title.item = item menu_item_title.save() return redirect('menu:administration:item_list', menu_id=menu.id) else: item_form = MenuItemForm(prefix="item_form") menu_item_title_forms = [] for lang in settings.LANGUAGES: menu_item_title_forms.append({ 'form': MenuItemTitleForm(initial={'url': u'/' + lang[0] + u'/#'}, prefix='menu_item_title_' + lang[0]), 'lang': lang[0] }) return render( request, 'menu/administration/create_item.html', { 'item_form': item_form, 'menu_item_title_forms': menu_item_title_forms, 'menu': menu })