Пример #1
0
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)
Пример #3
0
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('/')