Exemplo n.º 1
0
def lynch(request):
    playerno = CustomUser.objects.filter(group=request.user.group).count()
    names = [None]
    for i in range(1, playerno + 1):
        names.append(get_user(request, i))

    play = dict(zip(names, names))
    context = {'play': play}
    lynch = request.POST['lynch']
    if lynch is not None:
        CustomUser.objects.filter(username=lynch).update(is_alive=False)

        #Need to update the list after lynch:
        playerno = CustomUser.objects.filter(group=request.user.group).count()
        names = [None]
        for i in range(1, playerno + 1):
            names.append(get_user(request, i))

        play = dict(zip(names, names))
        context = {'play': play}
        #making sure they go to night afterwards
        CustomUser.objects.filter(group=request.user.group).update(
            has_lynched=True)
        return render(request, 'pages/night.html', context)
    else:
        CustomUser.objects.filter(group=request.user.group).update(
            has_lynched=True)
        return render(request, 'pages/night.html', context)
Exemplo n.º 2
0
def get_order_by_user(user_id, *args, **kwargs):
    if user_id is not None:
        try:
            get_user(item_id=user_id)
            return get_order_info(*args, ordered_by=user_id, **kwargs)
        except Users.DoesNotExist:
            raise Users.DoesNotExist
    raise Exception('User id is mandatory and cannot be empty')
Exemplo n.º 3
0
def view(request):
    if not request.session.get('user'):
        return redirect('users:login')
    else:
        uid = request.GET.get('uid', '')
        print(uid)
        return render(request, 'user/view.html', {'user': get_user(uid)})
Exemplo n.º 4
0
def night(request):
    playerno = CustomUser.objects.filter(group=request.user.group).count()
    names = [None]
    for i in range(1, playerno + 1):
        names.append(get_user(request, i))

    play = dict(zip(names, names))
    context = {'play': play}
    return render(request, 'pages/night.html', context)
Exemplo n.º 5
0
def day(request):
    playerno = CustomUser.objects.filter(group=request.user.group).count()
    #Context for players:
    names = [None]
    for i in range(1, playerno + 1):
        names.append(get_user(request, i))

    play = dict(zip(names, names))

    #Context for lists:
    live = []
    for i in range(1, playerno + 1):
        live.append(get_user(request, i))

    alive = dict(zip(live, live))
    context = {'play': play, 'alive': alive}

    return render(request, 'pages/day.html', context)
Exemplo n.º 6
0
def offer(request):
    session_key = get_session_key(request)
    cart = get_or_create_cart(request)
    user = get_user(request)
    categories = Category.objects.all()
    return render(request, 'cart/offer.html', {
        'categories': categories,
        'cart': cart,
        'user': user,
    })
Exemplo n.º 7
0
def add_book(req):
    if (req.method == 'POST'):
        postBody = req.POST
        if (postBody):
            user_id = postBody.get('user_id')
            book_id = postBody.get('book_id')
            try:
                bookObj = get_book(item_id=book_id)
                userObj = get_user(item_id=user_id)
                result = add_order(userObj=userObj, bookObj=bookObj)
                if (result):
                    return JsonResponse(
                        {
                            'status': 'failure',
                            'message': result
                        }, status=422)
                else:
                    return JsonResponse(
                        {
                            'status': 'success',
                            'message': 'Successfully added book to the order'
                        },
                        status=200)
            except Users.DoesNotExist:
                return JsonResponse(
                    {
                        'status': 'failure',
                        'message': 'User does not exist with' + str(user_id)
                    },
                    status=404)
            except Books.DoesNotExist:
                return JsonResponse(
                    {
                        'status': 'failure',
                        'message': 'Book does not exist with' + str(book_id)
                    },
                    status=404)
        else:
            return JsonResponse(
                {
                    'status': 'failure',
                    'message': 'Post Body params are mandatory'
                },
                status=422)
    return HttpResponseNotAllowed()
Exemplo n.º 8
0
def game(request):

    #Mafia and doctor:
    if heal != target:
        CustomUser.objects.filter(username=target).update(is_alive=False)

    #Sniper:
    if shoot is not None:
        if CustomUser.objects.filter(name=shoot, role='Mafia').exists():
            CustomUser.objects.filter(name=shoot).update(is_alive=False)
        else:
            CustomUser.objects.filter(role='Sniper').update(is_alive=False)

    #Detective:
    xx = None
    if CustomUser.objects.filter(role='Mafia',
                                 group=request.user.group).exists():
        xx = CustomUser.objects.filter(role='Mafia',
                                       group=request.user.group).get()

    if inspect == xx:
        CustomUser.objects.filter(role='Detective').update(
            message='Good Guess! The person you investigated is indeed Mafia!')
    else:
        CustomUser.objects.filter(role='Detective').update(
            message='Wrong Guess! The person you investigated is NOT Mafia! ')

    #Loading it to the list:
    names = [None]
    playerno = CustomUser.objects.filter(group=request.user.group).count()
    for i in range(1, playerno + 1):
        names.append(get_user(request, i))

    play = dict(zip(names, names))
    context = {'play': play}
    #Making sure they go to day afterwards
    if CustomUser.objects.filter(
            has_lynched=False, is_alive=True,
            group=request.user.group).count() == CustomUser.objects.filter(
                is_alive=True, group=request.user.group).count():
        return render(request, 'pages/day.html', context)
    else:
        return render(request, 'pages/wait.html')
Exemplo n.º 9
0
def process_bonus_use_ajax(request):
    bonus_to_use = int(request.GET['bonus_to_use'])
    user = get_user(request)
    cart = get_or_create_cart(request)
    if not user:
        return JsonResponse(
            {
                'success': False,
                'msg': 'Пользователь не авторизован',
            },
            status=200)
    if user.bonus < bonus_to_use:
        return JsonResponse(
            {
                'success': False,
                'msg': 'На вашем аккаунте недостаточно бонусов'
            },
            status=200)
    cart_total = cart.get_total()
    print('cart total is', cart_total)
    can_pay_with_bonus = int((cart_total * CAN_PAY_WITH_BONUS_PERCENT) / 100)
    print(can_pay_with_bonus)
    if bonus_to_use > can_pay_with_bonus:
        return JsonResponse(
            {
                'success':
                False,
                'msg':
                'Бонусами можно оплатить не больше {}% от суммы заказа! В данном заказе это {} бонусов'
                .format(CAN_PAY_WITH_BONUS_PERCENT, can_pay_with_bonus),
            },
            status=200)
    else:
        # need to add bonus
        cart.bonus_used = bonus_to_use
        cart.save()
        return JsonResponse({
            'success': True,
            'msg': 'Бонусы использованы'
        },
                            status=200)
Exemplo n.º 10
0
 def check_user(self, request):
     user = get_user(request)
     if user != None:
         return True
     else:
         return False
Exemplo n.º 11
0
def assign(request):
    global roleslist
    playerno = int(request.POST['playerno'])

    #Making everyone alive:

    for i in range(1, playerno + 1):
        CustomUser.objects.filter(
            number=i, group=request.user.group).update(is_alive=True)

    #Randoming roles

    x1, x2, x3, x4, x5, x6, x7 = 0, 0, 0, 0, 0, 0, 0
    xa, xb, xc, xd, xe, xf, xg = "", "", "", "", "", "", ""
    for i in range(1, 1000):
        r1 = randint(1, playerno)
        if r1 == 1:
            x1 = x1 + 1
        if r1 == 2:
            x2 = x2 + 1
        if r1 == 3:
            x3 = x3 + 1
        if r1 == 4 and playerno >= 4:
            x4 = x4 + 1
        if r1 == 5 and playerno >= 5:
            x5 = x5 + 1
        if r1 == 6 and playerno >= 6:
            x6 = x6 + 1
        if r1 == 7 and playerno >= 7:
            x7 = x7 + 1

    listx = [x1, x2, x3, x4, x5, x6, x7]
    listx.sort(reverse=True)
    listroles = roleslist
    # listroles=['Mafia','Doctor','Sniper','Detective','Joker','Silencer','Angel']
    mixlist = dict(zip(listx, listroles))

    # groupname = CustomUser.objects.filter(group=request.user.group,number=1).values_list('group', flat=True)
    # m=groupname
    set_user_role(request, 1, mixlist[x1])
    set_user_role(request, 2, mixlist[x2])
    set_user_role(request, 3, mixlist[x3])
    set_user_role(request, 4, mixlist[x4])
    set_user_role(request, 5, mixlist[x5])
    # set_user_role(request,6,mixlist[x6])
    # set_user_role(request,7,mixlist[x7])

    names = [None]
    # playerno= CustomUser.objects.filter(group=request.user.group).count()
    for i in range(1, playerno):
        names.append(get_user(request, i))

    play = dict(zip(names, names))
    context = {'play': play}
    #Making detective message disappear:
    CustomUser.objects.filter(group=request.user.group).update(message='')
    #Making sure they go to day.
    CustomUser.objects.filter(group=request.user.group).update(
        has_lynched=False)

    #Getting everyone permission to begin:
    CustomUser.objects.filter(group=request.user.group).update(can_play=True)
    return render(request, 'pages/day.html', context)
Exemplo n.º 12
0
def create_order_ajax(request):
    session_key = get_session_key(request)
    cart = get_or_create_cart(request)
    cart_total = cart.items_in_cart()
    purchase_amount = cart.get_total()
    coupon = cart.coupon
    bonus_used = cart.bonus_used
    delivery_discount_use = cart.delivery_discount_use
    # name = urllib.parse.unquote(request.GET['name'])
    # phone = urllib.parse.unquote(request.GET['phone'])
    # delivery = urllib.parse.unquote(request.GET['delivery'])
    # address = urllib.parse.unquote(request.GET['address'])
    # payment = urllib.parse.unquote(request.GET['payment'])

    name = request.GET['name']
    phone = request.GET['phone']
    delivery = request.GET['delivery']
    address = request.GET['address']
    payment = request.GET['payment']

    is_auth = is_authorized(request)
    if (is_auth):
        user = get_user(request)
        if bonus_used:
            user.bonus -= bonus_used
            user.save()
        if coupon:
            coupon.users.add(user)
        if delivery == 'Самовывоз':
            address = 'Самовывоз'
            pass
        else:
            address = Address.objects.get(id=delivery).get_full()
            delivery = 'Курьер'
        bonus_gained = calc_bonus_gained(user, purchase_amount)
    else:
        user = None
        bonus_gained = 0

    new_order = Order(
        user=user,
        name=name,
        phone=phone,
        delivery=delivery,
        address=address,
        payment=payment,
        bonus_gained=bonus_gained,
        bonus_used=bonus_used,
        amount=purchase_amount,
        coupon=coupon,
        delivery_discount_use=delivery_discount_use,
    )
    new_order.save()
    cart.coupon = None
    cart.bonus_used = None

    # add bonus gained to user and save the user
    # if (is_auth):
    #     user.bonus += bonus_gained
    #     user.save()

    cart_items_mail = []
    order_price_mail = 0
    cart.save()
    for item in cart.item_set.all():
        new_order.item_set.add(item)
        cart.item_set.remove(item)
        if item.has_sale():
            price = item.product.sale_price
        else:
            price = item.product.price
        order_price_mail += price
        cart_items_mail.append([item.product.name, item.quantity, price])
    all_items = new_order.item_set.all()
    new_order.save()
    # try:
    #     email_context = {
    #         'name': name,
    #         'phone': phone,
    #         'order_price': order_price_mail,
    #         'order_items': all_items,
    #         'address': address,
    #         'delivery': delivery,
    #         'payment': payment,
    #     }
    #     admin_html_message = render_to_string('cart/blocks/mail_template.html', email_context)
    #     admin_html_message_plain = strip_tags(admin_html_message)
    #     send_mail(
    #         'Новый заказ на сайте!',
    #         admin_html_message_plain,
    #         settings.EMAIL_HOST_USER,
    #         [
    #         # '*****@*****.**',
    #         # '*****@*****.**',
    #         # '*****@*****.**',
    #         # '*****@*****.**',
    #         ],
    #         html_message= admin_html_message,
    #         # '*****@*****.**'
    #         )
    # except:
    #     pass

    return JsonResponse({
        'order_created': 'yes',
    }, status=200)