def ticket(request): try: mail = Setup.objects.first().email except: mail = False if mail: recepient = mail else: recepient = '*****@*****.**' form = TicketForm(request.POST or None) if form.is_valid(): name = form.cleaned_data['name'] phone = form.cleaned_data['phone'] ticket = Ticket(name=name, phone=phone, text=u'') ticket.save() send_mail(u'vlifte.pro - Заявка с сайта', u'Имя: %s\nТелефон: %s\n' % (name, phone), settings.DEFAULT_FROM_EMAIL, [ recepient, ]) return {'success': 'Сообщение успешно отправлено!'} else: return {'error': 'Сообщение не может быть отправлено!'}
def create(self, request, *args, **kwargs): serializer = self.serializer_class_post(data=request.data) if serializer.is_valid( ) and 'multipart/form-data' in request.content_type: err = self._check_file_type(serializer.validated_data['ticket']) if err: return err ticket_file = serializer.validated_data['ticket'] # process file data_from_ticket = ticket_utils.process_ticket(ticket_file) try: qr_code = ticket_utils.extract_qr_code(ticket_file) base64_encoded_qr_code_str = ticket_utils.pil_image_to_base64( qr_code) except ValueError: base64_encoded_qr_code_str = None car_info = VagonInformation( train_number=data_from_ticket['train_number']) data_from_ticket['car_info'] = car_info.final_data data_from_ticket['qr_code'] = base64_encoded_qr_code_str closed_station_at_arrival = data_from_ticket["finish_time"].time( ) > datetime.strptime("23:00", "%H:%M").time() # arrival_station_open_hours = open_hours[data_from_ticket["finish_place"]] # if not arrival_station_open_hours: # open_end = datetime.strptime(arrival_station_open_hours[1], "%H:%M") # closed_station_at_arrival = open_end.time() < data_from_ticket["finish_time"].time() data_from_ticket[ 'closed_station_at_arrival'] = closed_station_at_arrival ticket = Ticket(**data_from_ticket) ticket.save() return Response(self.serializer_class(ticket).data, status=status.HTTP_200_OK) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def calculator(request): try: mail = Setup.objects.first().email except: mail = False if mail: recepient = mail else: recepient = '*****@*****.**' CalcFormSet = formset_factory(CalculatorForm) if request.method == "POST": form = TicketForm(request.POST) calc_formset = CalcFormSet(data=request.POST) if calc_formset.is_valid() and form.is_valid(): cd = calc_formset.cleaned_data cd_form = form.cleaned_data text_name = u'Заявка: \nИмя: %s\nТелефон: %s\n' % ( cd_form['name'], cd_form['phone']) text_form = '' # print cd for i in cd: # text_form = text_form + i['city'].name + ': ' + i['format'].name + '\n' if i: text_form = text_form + i['city'].name + ': ' + i[ 'format'].name + '\n' text = text_name + text_form ticket = Ticket(name=cd_form['name'], phone=cd_form['phone'], text=text) ticket.save() send_mail(u'vlifte.pro - Заказ рекламы с сайта', text, settings.DEFAULT_FROM_EMAIL, [ recepient, ]) return HttpResponseRedirect('/') else: calc_formset = CalcFormSet() form = TicketForm() return HttpResponseRedirect('/')