def manager_items(request, client_id): #TODO: some refactoring, # make the form validations work with the javascript part menu = dao.get_active_menu(client_id) items = dao.get_client_items(client_id) item_form = ItemForm() if request.method == 'POST': if request.is_ajax(): if 'add_item' in request.POST: #This case handles the add items submit form item_form = ItemForm(request.POST) if item_form.is_valid(): #If the form is valid it enters here cd = item_form.cleaned_data name = cd['name'] price = cd['price'] description = cd['description'] dao.add_item(client_id, name, price, description) elif 'delete_item_id' in request.POST: #This case handles the delete item submit form item_id = request.POST['delete_item_id'] dao.del_item(client_id, item_id) elif 'save_edit' in request.POST: #This case handles the updated items item_id = request.POST['item_id'] name = request.POST['name'] price = float(request.POST['price']) description = request.POST['description'] dao.update_item(item_id, name = name, price = price, description = description) return render(request, 'desktop_index.html', {'items': items, 'item_form': item_form, 'template': 'manager_items.html', 'title': 'Manager'})
def manager_menus(request, client_id): #TODO: some refactoring, # make the form validations work with the javascript part, # make a clean decoupled design and python view code that is independent of # the DB or JS code. menus = dao.get_client_menus(client_id) items = dao.get_client_items(client_id) if request.method == 'POST': if request.is_ajax(): if 'add_menu' in request.POST: "Adds new menu to the db" dao.add_menu(request.POST['menu_title'], client_id) elif 'save_menu' in request.POST: "Saves the selected menu to the db" menu = jstree2mongo(request.POST) dao.update_menu_title(menu['id'], menu['title']) dao.update_menu_structure(menu['id'], menu['structure']) elif 'active_menu' in request.POST: "Sets the selected menu as active" menu_id = jstree2mongo(request.POST)['id'] dao.update_active_menu(client_id, menu_id) return render(request, 'desktop_index.html', {'menus': menus, 'items': items, 'json_menus': mongo2jstree_list(menus), 'template': 'manager_menus.html', 'title': 'Manager'})
def bill_add_order(request, bill_id): client_id = request.session['client_id'] items = dao.get_client_items(client_id) bill = dao.get_bill(bill_id) return render(request, 'index_screen.html', {'template': 'bill_add_order.html', 'items': items, 'bill': bill})
def manager_items(request): client_id = dao.get_client_id_from_username(request.user.username) items = dao.get_client_items(client_id) item_form = ItemForm() if request.method == 'POST': if request.is_ajax(): if 'create_item' in request.POST: #This case handles the add items submit form item_form = ItemForm(request.POST) if item_form.is_valid(): #If the form is valid it enters here cd = item_form.cleaned_data name = cd['name'] price = cd['price'] description = cd['description'] dao.add_item(client_id, name, price, description) elif 'delete_item_id' in request.POST: #This case handles the delete item submit form item_id = request.POST['delete_item_id'] dao.del_item(client_id, item_id) elif 'edit_item' in request.POST: #This case handles the updated items item_id = request.POST['item_id'] name = request.POST['name'] price = float(request.POST['price']) description = request.POST['description'] dao.update_item(item_id, name = name, price = price, description = description) elif 'set_item_photo' in request.POST: #This case handles the upload item photo form dao.set_item_photo(request.POST['item_id']) elif 'toggle_availability' in request.POST: item_id = request.POST['item_id'] dao.toggle_item_availability(item_id) return render(request, 'desktop_index.html', {'items': items, 'item_form': item_form, 'template': 'manager_items.html', 'title': 'Manager', 'AWS_ACCESS_KEY_ID': settings.AWS_ACCESS_KEY_ID, 'policy': settings.POLICY, 'signature': settings.SIGNATURE, 'client': client_id})
def manager_menus(request): client_id = dao.get_client_id_from_username(request.user.username) try: menus = dao.get_client_menus(client_id) except TypeError: menus = [] item_form = ItemForm() items = dao.get_client_items(client_id) if request.method == 'POST': if request.is_ajax(): if 'add_menu' in request.POST: "Adds new menu to the db" dao.add_menu(request.POST['menu_title'], client_id) elif 'save_menu' in request.POST: "Saves the selected menu to the db" menu = jstree2mongo(request.POST) dao.update_menu_title(menu['id'], menu['title']) dao.update_menu_structure(menu['id'], menu['structure']) elif 'delete_menu' in request.POST: menu = request.POST['menu_id'] dao.delete_menu(client_id, menu) elif 'item_form' in request.POST: item_form = ItemForm(request.POST) if item_form.is_valid(): cd = item_form.cleaned_data name = cd['name'] price = cd['price'] description = cd['description'] if 'create_item' in request.POST: dao.add_item(client_id, name, price, description) elif 'edit_item' in request.POST: item_id = request.POST['item_id'] dao.update_item(item_id, name = name, price = price, description = description) return render(request, 'desktop_index.html', {'menus': menus, 'items': items, 'item_form': item_form, 'json_menus': mongo2jstree_list(menus), 'template': 'manager_menus.html', 'title': 'Manager'})