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)
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')
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)})
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)
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)
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, })
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()
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')
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)
def check_user(self, request): user = get_user(request) if user != None: return True else: return False
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)
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)