def blog(request, user_id): activity(request) blog_objects = MasterClass.objects.filter(author_id=user_id) user = User.objects.filter(id=user_id).first() if not user: return redirect('home_page') paginator = Paginator(blog_objects, 10) page = request.GET.get('page') try: articles = paginator.page(page) except PageNotAnInteger: # Если страница не является целым числом, поставим первую страницу articles = paginator.page(1) except EmptyPage: # Если страница больше максимальной, доставить последнюю страницу результатов articles = paginator.page(paginator.num_pages) articles_dict = [] for article_item in articles: articles_dict.append(article_item.to_dict()) return render(request, 'blog.html', context={ 'page': page, 'articles': articles, 'articles_dict': articles_dict, 'user': user.to_dict() })
def edit_master_class_window(request, article_id): activity(request) product_obj = MasterClass.objects.filter(id=article_id).first() return render(request, 'window_edit_product.html', context={'product': product_obj})
def success_payment(request): activity(request) card = request.user.cards.filter(status_id=1).first() card.status_id = 2 card.save() return render(request, 'success_payment.html')
def user(request, user_id): activity(request) user = User.objects.filter(id=user_id).first() if not user: return redirect('home_page') return render(request, 'account/user.html', context={'user': user.to_dict()})
def product(request, product_id): activity(request) product_obj = Product.objects.filter(id=product_id).first() delivery_methods = DeliveryMethod.objects.all() if not product_obj: return redirect('home_page') return render(request, 'shop_product.html', context={'product': product_obj, 'delivery_methods': delivery_methods})
def article(request, article_id): activity(request) article = MasterClass.objects.filter(id=article_id).first() if not article: return redirect('home_page') return render(request, 'article.html', context={'article': article.to_dict_full()})
def user_page(request, user_id): activity(request) user = User.objects.filter(id=user_id).first() categories = ProductCategory.objects.all() if not user: return redirect('home_page') context = { 'user': user.to_dict(), 'categories': categories, 'shop_exist': 1 if user.shops.first() else 0, } return render(request, 'account/user_page.html', context=context)
def card(request, card_id): activity(request) card_obj = Card.objects.filter(user_id=card_id).filter(status_id=1).first() if not card_obj or not card_obj.products.all(): return redirect('home_page') active_methods = ActiveDeliveryMethods.objects.filter(shop_id=card_obj.shop.id).all() context = { 'card': card_obj.to_dict(), 'delivery_methods': active_methods, 'price_sum': card_obj.get_amount, } return render(request, 'shop_card.html', context=context)
def all_users_page(request): activity(request) users = User.objects.all() paginator = Paginator(users, 8) page = request.GET.get('page') try: users = paginator.page(page) except PageNotAnInteger: # Если страница не является целым числом, поставим первую страницу users = paginator.page(1) except EmptyPage: # Если страница больше максимальной, доставить последнюю страницу результатов users = paginator.page(paginator.num_pages) return render(request, 'account/all_users.html', context={'page_obj': page, 'users': users, 'users_dict': to_dict_list(users)})
def shop(request, shop_id): activity(request) shop_obj = Shop.objects.filter(id=shop_id).first() products = to_dict_list(Product.objects.filter(shop_id=shop_id).all()) paginator = Paginator(products, 8) page = request.GET.get('page') try: products = paginator.page(page) except PageNotAnInteger: # Если страница не является целым числом, поставим первую страницу products = paginator.page(1) except EmptyPage: # Если страница больше максимальной, доставить последнюю страницу результатов products = paginator.page(paginator.num_pages) return render(request, 'shop_shop.html', context={'shop': shop_obj, 'products': products})
def home_page(request): activity(request) shops = Shop.objects.all().order_by('-rating')[:4] products = Product.objects.all().order_by('-rating')[:4] users = to_dict_list(User.objects.all().order_by('-rating')[:4]) mcs = MasterClass.objects.all().order_by('?')[:4] mcs_dict = [] for mc in mcs: mcs_dict.append(mc.to_dict()) for user in users: user['profile_link'] = f'{request.build_absolute_uri()}user/{user["id"]}/' context = { 'users': users, 'shops': shops, 'products': products, 'mcs': mcs_dict, 'card_products_count': request.user.cards.first().products.count() if request.user.is_authenticated and request.user.cards.first() and request.user.cards.first().products.first() else '0' } return render(request, 'home_page.html', context=context)
def all_shops(request): activity(request) shop_objects = Shop.objects.all() if not shop_objects: return redirect('home_page') paginator = Paginator(shop_objects, 8) page = request.GET.get('page') try: shops = paginator.page(page) except PageNotAnInteger: # Если страница не является целым числом, поставим первую страницу shops = paginator.page(1) except EmptyPage: # Если страница больше максимальной, доставить последнюю страницу результатов shops = paginator.page(paginator.num_pages) return render(request, 'shop_all_shops.html', context={'page': page, 'shops': shops})
def all_blogs(request): activity(request) blog_objects = MasterClass.objects.all() paginator = Paginator(blog_objects, 5) page = request.GET.get('page') try: mcs = paginator.page(page) except PageNotAnInteger: # Если страница не является целым числом, поставим первую страницу mcs = paginator.page(1) except EmptyPage: # Если страница больше максимальной, доставить последнюю страницу результатов mcs = paginator.page(paginator.num_pages) return render(request, 'all_creative_blogs.html', context={ 'page_obj': page, 'articles': mcs, 'mcs': to_dict_list(mcs) })
def help_page(request): activity(request) return render(request, 'help.html')
def edit_product_window(request, product_id): activity(request) product_obj = Product.objects.filter(id=product_id).first() return render(request, 'window_edit_product.html', context={'product': product_obj})
def error_payment(request): activity(request) return render(request, 'error_payment.html')