def new_menu(request, pk=None): if request.method == 'POST': menu = create_menu(request) if menu is not False: status = add_to_history(menu) if status: return redirect('/') else: perm = have_permission( request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/not_enough_ingredient.html', {'perm': perm}) # TODO create page else: return redirect('no_permission') else: if pk is not None: form = MenuForm(instance=Menu.objects.get(id=pk)) else: form = MenuForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/new_menu.html', { 'form': form, 'perm': perm })
def register(request): form = forms.NewUserForm() if request.POST: ensure_permissions() form = forms.NewUserForm(request.POST) role = request.POST.get('role') if form.is_valid(): username = form.cleaned_data.get('username') password = form.cleaned_data.get('password') user = User.objects.create_user(username=username, password=password) if role is not None: if have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']): if role == 'is_admin' or role == 'is_cashier': if role == 'is_admin': permission = Permission.objects.get(codename='can_add') elif role == 'is_cashier': permission = Permission.objects.get(codename='can_edit_schedule') else: user.delete() return redirect('no_permission') e = UserProfile() e.profile = user e.author = request.user e.save() user.user_permissions.add(permission) user.save() if request.user.has_perm('blog.can_add') or request.user.has_perm('blog.can_edit_schedule'): return redirect('users.html') else: return redirect('login.html') perm = have_permission(request, ['blog.can_add', 'blog.can_edit_scheduele']) return render(request, 'register.html', {'form': form, 'perm': perm})
def create_shares(request): user = have_permission(request) if user: share = Shares.objects.create(author=user) share_dict = share.__dict__ request_dict = request.POST end_date = request.POST.get('end_date') start_date = request.POST.get('start_date') image = get_image_from_request(request) if 'image' in request.POST: del request.POST['image'] for item in request_dict.items(): key, value = item if key in share_dict: if value: share_dict[key] = value try: if image: share.image = image except AttributeError: pass try: if end_date and start_date: share.end_date = end_date share.start_date = start_date else: share.end_date = timezone.now() share.start_date = timezone.now() except AttributeError: pass share.save() return share.id else: return False
def cashier_history_create(request): begin = contain_begin(request) end = contain_end(request) user = have_permission(request, ['blog.can_edit_schedule']) if user: if bool(begin) != bool(end): if begin: hist = CashierHist.objects.filter(date=timezone.now(), end_time=None) if not hist.__len__(): cash_hist = CashierHist() cash_hist.cashier = user cash_hist.save() return True else: return False elif end: cash_hist = CashierHist.objects.get(date=timezone.now(), end_time=None) cash_hist.end_time = timezone.now() summ = 0 offers_cuant = 0 for offer in Offers.objects.all(): if cash_hist.begin_time.date()<=offer.date.date()<= date.today(): summ += offer.offer_price() offers_cuant +=1 cash_hist.offers = offers_cuant cash_hist.jackpot = summ # TODO присваивать cash_hist.jackpot значение суммы всех заказов за период с begin time по настоящее время cash_hist.save() return True return False
def dish_details(request, pk=None): dish = get_object_or_404(Post, pk=pk) ingredients = dish.get_ingredients() class IngAm: ingredient = None amount = None def get_json_object(self): dic = self.__dict__ dic['ingredient'] = dic['ingredient'].get_json_object() return dic ing_list = [] for ing in ingredients: new_one = IngAm() new_one.ingredient = ing new_one.amount = dish.get_amount(ing) ing_list.append(new_one) context = { "instance": dish, "ingredients": ing_list, } if json(request): return json_response(context) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/post_detail.html', context)
def create_dish(request): user = have_permission(request) if user: dish = Post.objects.create(author=user) dish_dict = dish.__dict__ request_dict = request.POST image = get_image_from_request(request) if 'image' in request.POST: del request.POST['image'] for item in request_dict.items(): key, value = item if key in dish_dict: if value: dish_dict[key] = value try: if image: dish.image = image except AttributeError: pass dish.save() if contain_ingredients(request.POST): add_ing_dish_relations(request.POST, dish) return dish.id else: return False
def dish_edit(request, dish): user = have_permission(request) if user: obj_dict = dish.__dict__ request_dict = request.POST image = get_image_from_request(request) if 'image' in request.POST: del request.POST['image'] for item in request_dict.items(): key, value = item if key in obj_dict: if value: obj_dict[key] = value try: if image: dish.image = image except AttributeError: pass dish.author = user dish.save() if contain_ingredients(request.POST): delete_all_ingredients(dish) add_ing_dish_relations(request.POST, dish) return dish.id else: return False
def users(request): perm1 = Permission.objects.get(codename='can_edit_schedule') perm2 = Permission.objects.get(codename='can_add') users1 = User.objects.filter(Q(user_permissions=perm1)) users2 = User.objects.filter(Q(user_permissions=perm2)) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_scheduele']) return render(request, 'users.html', {'users1': users1, 'users2': users2, 'perm':perm})
def ingredient_list(request): ingredients = Ingredient.objects.all() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/post_ingredientlist.html', { 'posts': ingredients, 'perm': perm })
def create_ingredient(request): user = have_permission(request) if user: request_dict = request.POST ingredient = Ingredient(name=request.POST) return ingredient_change(request, ingredient) return False
def history_out(request): history = History.objects.all().order_by('-menu__date') perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/history.html', { 'history': history, 'perm': perm })
def contacts(request): contacts = Contacts.objects.all() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/contacts.html', { 'contacts': contacts, 'perm': perm })
def create_menu(request): user = have_permission(request) if user: menu = Menu() menu.author = user menu.save() return menu_edit(request, menu) return False
def create_schedule(request): user = have_permission(request) if user: menu = Schedule() menu.author = user menu.save() return schedule_edit(request, menu) return False
def schedule_for_user(request): if Schedule.objects.all().get(pk=1): schedule = Schedule.objects.all().get(pk=1) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, "blog_templates/schedule_for_user.html", { 'schedule': schedule, 'perm': perm })
def dishes_list(request): dishes = Post.objects.all().order_by('created_date').filter(status=True) data = {'posts': dishes} if json(request): return json_response(dishes) else: perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) data['perm'] = perm return render(request, 'blog_templates/dishes_list.html', data)
def ingredient_detail(request, pk=None): instance1 = get_object_or_404(Ingredient, pk=pk) context = { "title": instance1.name, "instance": instance1, "username": auth.get_user(request).is_superuser } perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/post_ingredientdetail.html', context)
def menu_detail(request, pk=None): menu = get_object_or_404(Menu, pk=pk) items = menu.items.all() context = { "instance": menu, "items": items, } perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/menu_detail.html', context)
def mymodel(request, pk=None): instance = get_object_or_404(Post, pk=pk) ingredientss = instance.ingredients.all() context = { "title": instance.title, "instance": instance, "ingredientss": ingredientss, } perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/mymodal.html', context)
def new_menu(request, pk=None): if request.method == 'POST': menu = create_menu(request) if menu is not False: status = add_to_history(menu) if status: return redirect('/') else: perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/not_enough_ingredient.html', {'perm': perm}) # TODO create page else: return redirect('no_permission') else: if pk is not None: form = MenuForm(instance=Menu.objects.get(id=pk)) else: form = MenuForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/new_menu.html', {'form': form, 'perm': perm})
def schedule_new(request): if request.method == 'POST': form = ScheduleForm(request.POST, request.FILES) if form.is_valid(): post = form.save(commit=False) post.save() return redirect('/') else: form = ScheduleForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/schedule_new.html', {'form': form, 'perm': perm})
def new_ingredient(request): if request.method == 'POST': ingredient = create_ingredient(request) if ingredient is not False: return redirect('post_ingredientlist') else: return redirect('no_permission') else: form = IngredientsForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/post_ingredientedit.html', {'form': form, 'perm': perm})
def shares_detail(request, pk=None): share = get_object_or_404(Shares, pk=pk) active = share.is_past_due() context = { "instance": share, "active": active, } if json(request): return json_response(context) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/shares_detail.html', context)
def shares_detail(request, pk=None): share = get_object_or_404(Shares, pk=pk) active=share.is_past_due() context = { "instance": share, "active": active, } if json(request): return json_response(context) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/shares_detail.html', context)
def ingredient_edit(request, pk): ingredient = get_object_or_404(Ingredient, pk=pk) if request.method == "POST": ingredient = ingredient_change(request, ingredient) if ingredient is not False: return redirect('post_ingredientlist') else: return redirect('no_permission') else: form = IngredientsForm(instance=ingredient) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/post_ingredientedit.html', {'form': form, 'perm': perm})
def schedule_edit(request, pk): post = get_object_or_404(Schedule, pk=1) if request.method == "POST": form = ScheduleForm(request.POST, instance=post) if form.is_valid(): form.save() return redirect('/') else: form = ScheduleForm(instance=post) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, "blog_templates/schedule_edit.html", {'form': form, 'perm': perm })
def new_dish(request): context = {'posts': Ingredient.objects.all()} if request.method == 'POST': dish = create_dish(request) if dish is not False: return redirect('dishes_list') else: return redirect('no_permission') else: context['form'] = PostForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/post_new.html', context)
def new_contact(request): context = {'posts': Contacts.objects.all()} if request.method == 'POST': contact = create_contact(request) if contact is not False: return redirect('contacts') else: return redirect('no_permission') else: context['form'] = ContactsForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/contacts_form.html', context)
def shares_new(request): context = {} if request.method == 'POST': share = create_shares(request) if share is not False: return redirect('shares') else: return redirect('no_permission') else: context['form'] = SharesForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, 'blog_templates/shares_new.html', context)
def ingredient_change(request, ingredient): user = have_permission(request) if user: obj_dict = ingredient.__dict__ request_dict = request.POST for item in request_dict.items(): key, value = item if key in obj_dict: if value: obj_dict[key] = value ingredient.save() return ingredient.id return False
def offer_detail(request, pk=None): offer = Offers.objects.get(id=pk) dish_list = offer.get_dish_list() price = 0 for dish in dish_list: price += dish.price*dish.amount context = { 'offer': offer, 'dishes': dish_list, 'price': price, } perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, "blog_templates/offer_detail.html", context)
def schedule_new(request): if request.method == 'POST': form = ScheduleForm(request.POST, request.FILES) if form.is_valid(): post = form.save(commit=False) post.save() return redirect('/') else: form = ScheduleForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/schedule_new.html', { 'form': form, 'perm': perm })
def offer_detail(request, pk=None): offer = Offers.objects.get(id=pk) dish_list = offer.get_dish_list() price = 0 for dish in dish_list: price += dish.price * dish.amount context = { 'offer': offer, 'dishes': dish_list, 'price': price, } perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, "blog_templates/offer_detail.html", context)
def shares_edit(request, pk): context = {} share = get_object_or_404(Shares, pk=pk) if request.method == "POST": share = shares_change(request, share) if share is not False: return redirect('shares') else: return redirect('no_permission') else: context['form'] = SharesForm(instance=share) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, "blog_templates/shares_edit.html", context)
def schedule_edit(request, pk): context = {} dish = get_object_or_404(Schedule, pk=pk) if request.method == "POST": dish = schedule_change(request, dish) if dish is not False: return redirect('blog.views.schedule_for_user') else: return redirect('no_permission') else: context['form'] = ScheduleForm(instance=dish) perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, "blog_templates/schedule_edit.html", context)
def new_ingredient(request): if request.method == 'POST': ingredient = create_ingredient(request) if ingredient is not False: return redirect('post_ingredientlist') else: return redirect('no_permission') else: form = IngredientsForm() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) return render(request, 'blog_templates/post_ingredientedit.html', { 'form': form, 'perm': perm })
def menu_out(request): menu = get_menu_of_current_time() shares = Shares.objects.all().filter(carousel=True) try: schedule = Schedule.objects.all().get(pk=1) except: schedule = None data = {'posts': menu, 'shares': shares, 'schedule':schedule} if json(request): data.pop('shares') return json_response(menu) else: perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) data['perm'] = perm return render(request, 'blog_templates/post_list.html', data)
def schedule_edit(request, menu): menu = Schedule.objects.all().get(pk=1) user = have_permission(request) if user: obj_dict = menu.__dict__ request_dict = request.POST delete_date(request_dict) for item in request_dict.items(): key, value = item if key in obj_dict: if value: obj_dict[key] = value menu.save() return menu return False
def contact_edit(request, pk): context = {} contact = get_object_or_404(Contacts, pk=pk) if request.method == "POST": contact = contact_change(request, contact) if contact is not False: return redirect('contacts') else: return redirect('no_permission') else: context['form'] = ContactsForm(instance=contact) context['posts'] = Contacts.objects.all() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, "blog_templates/contact_edit.html", context)
def dish_edit(request, pk): context = {} dish = get_object_or_404(Post, pk=pk) if request.method == "POST": dish = dish_change(request, dish) if dish is not False: return redirect('dishes_list') else: return redirect('no_permission') else: context['form'] = PostForm(instance=dish) context['posts'] = Ingredient.objects.all() perm = have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']) context['perm'] = perm return render(request, "blog_templates/post_edit.html", context)