示例#1
0
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()
                  })
示例#2
0
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})
示例#3
0
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')
示例#4
0
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()})
示例#5
0
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})
示例#6
0
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()})
示例#7
0
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)
示例#8
0
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)
示例#9
0
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)})
示例#10
0
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})
示例#11
0
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)
示例#12
0
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})
示例#13
0
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)
                  })
示例#14
0
def help_page(request):
    activity(request)

    return render(request, 'help.html')
示例#15
0
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})
示例#16
0
def error_payment(request):
    activity(request)

    return render(request, 'error_payment.html')