def test_get_tickets(session): service = worker_factory(TicketService, rep=session) assert len(service.get_all_tickets()) == 0 session.db.add(Ticket(title=TEST_TITLE, content=TEST_CONTENT)) session.db.add(Ticket(title=TEST_TITLE, content=TEST_CONTENT)) session.db.commit() assert len(service.get_all_tickets()) == 2 assert service.get_all_tickets()[0]["title"] == TEST_TITLE assert service.get_all_tickets()[0]["content"] == TEST_CONTENT
def delete(request, id): lesson_user = Lesson_user.objects.get(id=id) lesson_user.delete() user_model = get_user_model() user = user_model.objects.get(id=lesson_user.user_id) lesson_info = Lesson_info.objects.get(id=lesson_user.lesson_info_id) lesson_info.use_num -= 1 lesson_info.save() try: live_ticket = Ticket.objects.get(user_id=user.id, lesson_type=lesson_info.lesson_type, is_use=True) live_ticket.coupon += 1 live_ticket.save() except Ticket.DoesNotExist: last_ticket = Ticket.objects.get( user_id=user.id, lesson_type=lesson_info.lesson_type).order_by('-expired_date')[:1] Ticket( lesson_type=lesson_info.lesson_type, ticket_type='coupon10', create_date=datetime.now(), started_date=datetime.now(), expired_date=last_ticket.expired_date, user_id=user.id, is_use=True, coupon=1, ).save() #SMS 보내기 send_sms(lesson_info, user, 'delete') param_lesson_user = Lesson_user.objects.select_related( 'lesson_info').select_related('user') param_lesson_user = param_lesson_user.filter(user_id=user.id) param_lesson_user = param_lesson_user.order_by('-lesson_info.date', '-lesson_info.time') tickets = Ticket.objects.filter(user_id=user.id, is_use=True, coupon__gt=0, expired_date__gt=datetime.now(), started_date__lt=datetime.now()) context = {'user': user, 'tickets': tickets, 'lessons': param_lesson_user} if request.user.is_superuser: admin_lesson_user = Lesson_user.objects.select_related( 'lesson_info').select_related('user') admin_lesson_user = admin_lesson_user.order_by('lesson_info.date', 'lesson_info.time') return render(request, 'lessonList.html', {'lesson_user': admin_lesson_user}) else: return render(request, 'accountsDetail.html', context)
def customer_service_add_ticket(request): customerservice_user_id = request.session.get('customerservice_user_id', None) customer_service = request.session.get('customer_service', None) if customerservice_user_id and customer_service: template = "customerservice/customerservice_add_ticket.html" context = dict() if request.POST: form = ticket_form.TicketForm(request.POST) if form.is_valid(): f_c_d = form.cleaned_data device_id = request.session.get('device_id', None) if device_id: device = Device.objects.get(pk=device_id) ticket = Ticket(problem_title = f_c_d['problem_title'], problem_description = f_c_d['problem_description'],\ status = f_c_d['status'], device_concerned = device) ticket.save() return HttpResponse("Good job adding this ticket") else: return HttpResponse( "There is no device to add a problem to") else: return HttpResponse("The form is invalid") else: form = ticket_form.TicketForm() context['form'] = form return render(request, template, context) else: response_redirect_url = reverse('customer_service_login') return HttpResponseRedirect(response_redirect_url)
def buy(request, id): # print(request.path_info.split("/buy/")[0]+"/buy/",type(request.path_info),'------------') ids = request.GET['id_str'] id_li = ids.split(" ") schedule = get_object_or_404(Schedule, id=id) seats = [get_object_or_404(Seat, id=int(seat_id)) for seat_id in id_li] if request.method == 'POST': with transaction.atomic(): save_id = transaction.savepoint() order = Order() money = len(seats) * schedule.ticket_money order.money = money order.schedule = schedule order.save() for seat in seats: if seat.status: if seat.ticket_set.filter(schedule=schedule): print('=-=---===========================') transaction.savepoint_rollback(save_id) # raise # return JsonResponse({'res':5, 'errmsg':'错误'}) messages.info(request, "您选的座位已被购买,请重选!") return redirect( reverse('ticket_seat', args=(schedule.id, ))) seat.status = True seat.save() schedule.ticket_counts -= 1 schedule.save() # order.save() ticket = Ticket(schedule=schedule, seat=seat, order=order) ticket.save() transaction.savepoint_commit(save_id) return render(request, 'ticket/ok.html') # order_time = (datetime.datetime.now() + datetime.timedelta(minutes=1)).replace(tzinfo=pytz.timezone('UTC')) # print(order_time,'-----') # request.session['order_time'] = datetime.datetime.now() # request.session.set_expiry(60) return render( request, 'ticket/order.html', context={ 'schedule': schedule, 'seats': seats, 'ids': ids, # 'order_time':order_time })
def create_ticket(self, title, content): ticket = Ticket(title=title, content=content) try: self.rep.db.add(ticket) self.rep.db.commit() except: self.rep.db.rollback() return False return True
def carShopSecurity(request): template_name = 'shop/car_shop_security.html' items = request.POST.getlist('item', []) queryset = Item.objects.filter(pk__in=items) epayco = EpayCo.objects.first() ticket = Ticket() ticket.total = queryset.aggregate(Sum('price'))['price__sum'] ticket.status = Status(Status.PENDING) ticket.save() ticket.items.set(queryset) p_description = 'demo-app-co ePayCo' p_cust_id_cliente = epayco.client_id p_key = epayco.p_key p_id_invoice = '%s' % ticket.pk p_amount = '%s' % ticket.total p_currency_code = epayco.p_currency_code signature = '{0}^{1}^{2}^{3}^{4}'.format(p_cust_id_cliente, p_key, p_id_invoice, p_amount, p_currency_code) h = hashlib.md5() h.update(signature.encode('utf-8')) p_signature = h.hexdigest() p_tax = 0 p_amount_base = 0 p_test_request = 'TRUE' if epayco.test else 'FALSE' p_url_response = epayco.url_response p_url_confirmation = epayco.url_confirmation context = { 'p_cust_id_cliente': p_cust_id_cliente, 'p_key': p_key, 'p_id_invoice': p_id_invoice, 'p_amount': p_amount, 'p_currency_code': p_currency_code, 'p_signature': p_signature, 'p_tax': p_tax, 'p_amount_base': p_amount_base, 'p_test_request': p_test_request, 'p_url_response': p_url_response, 'p_url_confirmation': p_url_confirmation, 'p_description': p_description } return render_to_response(template_name, context)
def tick(request): ticket = Ticket(fname=request.POST['firstName'], lname=request.POST['lastName'], email=request.POST['email'], age=request.POST['age'], gender=request.POST['gr'], country=request.POST['country'], city=request.POST['city'], pincode=request.POST['pincode'], number='5522') ticket.save() return redirect('/ticket')
def update(self, validated_data): instance = Ticket() instance.code = validated_data.get('code') instance.title = validated_data.get('title') instance.date = validated_data.get('date') instance.startTime = validated_data.get('startTime') instance.endTime = validated_data.get('endTime') instance.address = validated_data.get('address') instance.detail = validated_data.get('detail') instance.created_at = validated_data.get('created_at') instance.modify_at = validated_data.get('modify_at') instance.url_img = validated_data.get('url_img') instance.save() return instance
def newticket(): form = NewTicketForm() if form.validate_on_submit(): theticket = Ticket( unique_id = str(uuid.uuid4().hex), buyer_email=form.buyer_email.data, buyer_tel= form.buyer_tel.data, quanlity= form.quanlity.data, amount= form.amount.data, note= form.note.data, created_at = datetime.utcnow(), updated_at = datetime.utcnow(), created_by = current_user.id, updated_by = current_user.id ) db.session.add(theticket) db.session.flush() ticket_id = theticket.unique_id db.session.commit() return redirect(url_for('main.genticket',data=ticket_id),code=307) return render_template('ticket/new.html', form=form)
def get_ticket(self, ticket_id): ticket = Ticket(id=ticket_id) self.rep.db.add(ticket) self.rep.db.commit()
def create_tickets_for_event(self, chosen_ticket_num): """Create ticket instances given the """ Ticket.objects.bulk_create([ Ticket(event=self) for _ in range(chosen_ticket_num) ])
def create(self, validated_data): instance = Ticket() return self.update(instance, validated_data)
def save(self, **kwargs): data = self.validated_data event = Event.objects.filter(pk=data["event_id"]).first() tickets = Ticket.objects.bulk_create( [Ticket(event=event) for _ in range(data["num_of_tickets"])]) self._created_ticket_ids = [str(ticket.id) for ticket in tickets]