コード例 #1
0
 def test_HorarioReservaInvalido_InicioReservacion_Mayor_FinalReservacion(self):
     ReservaInicio = datetime.now()+timedelta(minutes=1)
     ReservaFin = datetime.now()
     HoraApertura = time(hour = 0, minute = 0, second = 0)
     HoraCierre = time(hour = 23, minute = 59, second = 59)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (False, 'El horario de inicio de reservacion debe ser menor al horario de fin de la reserva.'))
コード例 #2
0
 def test_HorarioReservaInvalido_TiempoTotalMenor1h(self):
     ReservaInicio = datetime(year=2000,month=2,day=6,hour = 13, minute = 0, second = 0)
     ReservaFin = datetime(year=2000,month=2,day=6,hour = 13, minute = 59, second = 59)
     HoraApertura = time(hour = 12, minute = 0, second = 0)
     HoraCierre = time(hour = 18, minute = 0, second = 0)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (False, 'El tiempo de reserva debe ser al menos de 1 hora.'))
コード例 #3
0
 def test_HorarioReservaInvalido_InicioReservacion_Mayor_FinalReservacion(self):
     ReservaInicio = datetime.now()+timedelta(minutes=1)
     ReservaFin = datetime.now()
     HoraApertura = time(hour = 0, minute = 0, second = 0)
     HoraCierre = time(hour = 23, minute = 59, second = 59)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (False, 'El horario de inicio de reservacion debe ser menor al horario de fin de la reserva.'))
コード例 #4
0
 def test_HorarioReservaInvalido_TiempoTotalMenor1h(self):
     ReservaInicio = datetime(year=2000,month=2,day=6,hour = 13, minute = 0, second = 0)
     ReservaFin = datetime(year=2000,month=2,day=6,hour = 13, minute = 59, second = 59)
     HoraApertura = time(hour = 12, minute = 0, second = 0)
     HoraCierre = time(hour = 18, minute = 0, second = 0)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (False, 'El tiempo de reserva debe ser al menos de 1 hora.'))
コード例 #5
0
 def test_SieteDiasDeReserva(self):
     hoy=datetime.now()
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(7)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (True, ''))
コード例 #6
0
 def test_UnDiaDeReserva_Estacionamiento_No_24_horas(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=2)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (False, 'No puede haber reservas entre dos días distintos'))
コード例 #7
0
 def test_reservaHorarioCompletoYUnMinuto(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,6) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,18,1) + timedelta(days=2)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (False, 'El horario de fin de la reserva debe estar en un horario válido.'))
コード例 #8
0
 def test_reservaHorarioCompleto(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,6) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,18) + timedelta(days=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (True,''))
コード例 #9
0
 def test_UnDiaDeReserva_Estacionamiento_No_24_horas(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=2)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (False, 'No puede haber reservas entre dos dias distintos'))
コード例 #10
0
 def test_HorarioReservaValido(self):
     hoy=datetime.now()
     ReservaInicio = datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin = datetime(hoy.year,hoy.month,hoy.day,17) + timedelta(days=1)
     HoraApertura = time(hour = 12, minute = 0, second = 0)
     HoraCierre = time(hour = 18, minute = 0, second = 0)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (True, ''))
コード例 #11
0
 def test_ExitoMaxHorizonte(self):
     hoy=datetime.now()
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(days=14,hours=23,minutes=59)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte=360)
     self.assertEqual(x, (True, ''))   
コード例 #12
0
 def test_Horizonte1Hora(self):
     hoy=datetime.now()
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(hours=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte=1)
     self.assertEqual(x, (True, ''))
コード例 #13
0
 def test_HorizonteNulo(self):
     hoy=datetime.now()
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(hours=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte=0)
     self.assertEqual(x, (False, 'La reserva debe estar dentro del horizonte de reservacion.'))
コード例 #14
0
 def test_HorarioReservaInvalido_ReservaInicial_Menor_HorarioApertura(self):
     hoy=datetime.now()
     ReservaInicio = datetime(hoy.year,hoy.month,hoy.day,7) + timedelta(days=1)
     ReservaFin = datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     HoraApertura=time(8,0)
     HoraCierre=time(18,0)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (False, 'El horario de inicio de reserva debe estar en un horario válido.'))
コード例 #15
0
 def test_HorarioReservaInvalido_ReservaFinal_Mayor_HorarioCierre(self):
     HoraApertura = time(hour = 10, minute = 0, second = 0)
     HoraCierre = time(hour = 22, minute = 0, second = 0)
     hoy=datetime.today()
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,17) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,23) + timedelta(days=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (False, 'El horario de fin de la reserva debe estar en un horario válido.'))
コード例 #16
0
 def test_QuinceDiasDeReservaYUnMinuto(self):
     hoy=datetime.now()
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(days=16,minutes=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (False, 'Se puede reservar un puesto por un maximo de 15 dias dependiendo horizonte de reservacion.'))
コード例 #17
0
 def test_HorarioReservaValido(self):
     hoy=datetime.now()
     ReservaInicio = datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin = datetime(hoy.year,hoy.month,hoy.day,17) + timedelta(days=1)
     HoraApertura = time(hour = 12, minute = 0, second = 0)
     HoraCierre = time(hour = 18, minute = 0, second = 0)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (True, ''))
コード例 #18
0
 def test_UnDiaDeReserva_Estacionamiento_24_horas(self):
     hoy=datetime.now()
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=2)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre)
     self.assertEqual(x, (True, ''))
コード例 #19
0
 def test_HorarioReservaInvalido_ReservaInicial_Menor_HorarioApertura(self):
     hoy=datetime.now()
     ReservaInicio = datetime(hoy.year,hoy.month,hoy.day,7) + timedelta(days=1)
     ReservaFin = datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     HoraApertura=time(8,0)
     HoraCierre=time(18,0)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (False, 'El horario de inicio de reserva debe estar en un horario válido.'))
コード例 #20
0
 def test_ReservaInicio_Ayer(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,15) - timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=2)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (False, 'La reserva no puede tener lugar en el pasado.'))
コード例 #21
0
 def test_reservaHorarioCompleto(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,6) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,18) + timedelta(days=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (True,''))
コード例 #22
0
 def test_HorarioReservaInvalido_ReservaFinal_Mayor_HorarioCierre(self):
     HoraApertura = time(hour = 10, minute = 0, second = 0)
     HoraCierre = time(hour = 22, minute = 0, second = 0)
     hoy=datetime.today()
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,17) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,23) + timedelta(days=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (False, 'El horario de fin de la reserva debe estar en un horario válido.'))
コード例 #23
0
 def test_reservaHorarioCompletoYUnMinuto(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,6) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,18,1) + timedelta(days=2)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (False, 'El horario de fin de la reserva debe estar en un horario válido.'))
コード例 #24
0
 def test_UnDiaDeReserva_Estacionamiento_24_horas(self):
     hoy=datetime.now()
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=2)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (True, ''))
コード例 #25
0
 def test_SieteDiasDeReserva(self):
     hoy=datetime.now().replace(hour = 0, minute = 0)
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(7) - timedelta(minutes=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (True, ''))
コード例 #26
0
 def test_SieteDiasDeReservaYUnMinuto(self):
     hoy=datetime.now().replace(hour = 0, minute = 0)
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(days=7,minutes=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, 7)
     self.assertEqual(x, (False, 'La reserva debe estar dentro de los próximos 7 días.'))
コード例 #27
0
 def test_SieteDiasDeReserva(self):
     hoy = datetime.now().replace(hour=0, minute=0)
     HoraApertura = time(0, 0)
     HoraCierre = time(23, 59)
     ReservaInicio = hoy
     ReservaFin = hoy + timedelta(7) - timedelta(minutes=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, 7)
     self.assertEqual(x, (True, ''))
コード例 #28
0
 def test_SieteDiasDeReservaYUnMinuto(self):
     hoy = datetime.now().replace(hour=0, minute=0)
     HoraApertura = time(0, 0)
     HoraCierre = time(23, 59)
     ReservaInicio = hoy
     ReservaFin = hoy + timedelta(days=7, minutes=1)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, 7)
     self.assertEqual(
         x, (False, 'La reserva debe estar dentro de los próximos 7 días.'))
コード例 #29
0
ファイル: views.py プロジェクト: Arleyn/Sage-Edwin
def receive_sms(request):
    ip = get_client_ip(request) # Busca el IP del telefono donde esta montado el SMS Gateway
    port = '8000' # Puerto del telefono donde esta montado el SMS Gateway
    phone = request.GET.get('phone', False)
    sms = request.GET.get('text', False)
    if (not sms or not phone):
        return HttpResponse(status=400) # Bad request
    
    phone = urllib.parse.quote(str(phone)) # Codificacion porcentaje del numero de telefono recibido
    
    # Tratamiento del texto recibido
    try:
        sms = sms.split(' ')
        id_sms = int(sms[0])
        inicio_reserva = sms[1] + ' ' + sms[2]
        final_reserva = sms[3] + ' ' + sms[4]
        inicio_reserva = parse_datetime(inicio_reserva)
        final_reserva = parse_datetime(final_reserva)
    except:
        return HttpResponse(status=400) # Bad request
    
    # Validacion del id de estacionamiento recibido por SMS
    try:
        estacionamiento = Estacionamiento.objects.get(id = id_sms)
    except ObjectDoesNotExist:
        text = 'No existe el estacionamiento ' + str(id_sms) + '.'
        text = urllib.parse.quote(str(text))
        urllib.request.urlopen('http://{0}:{1}/sendsms?phone={2}&text={3}&password='******'No existe el estacionamiento ' + str(id_sms) + '.')
    
    # Validacion de las dos fechas recibidas por SMS
    m_validado = validarHorarioReserva(
        inicio_reserva,
        final_reserva,
        estacionamiento.apertura,
        estacionamiento.cierre,
    )
    if m_validado[0]:
        '''reserva_sms = Reserva(
            estacionamiento = estacionamiento,
            inicioReserva   = inicio_reserva,
            finalReserva    = final_reserva,
        )
        reserva_sms.save()'''
        text = 'Se realizó la reserva satisfactoriamente.'
        text = urllib.parse.quote(str(text))
        urllib.request.urlopen('http://{0}:{1}/sendsms?phone={2}&text={3}&password='******'http://{0}:{1}/sendsms?phone={2}&text={3}&password='******'')
コード例 #30
0
 def test_ReservaInicio_Ayer(self):
     hoy = datetime.now()
     HoraApertura = time(6, 0)
     HoraCierre = time(18, 0)
     ReservaInicio = datetime(hoy.year, hoy.month, hoy.day,
                              15) - timedelta(days=1)
     ReservaFin = datetime(hoy.year, hoy.month, hoy.day,
                           15) + timedelta(days=2)
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, 7)
     self.assertEqual(
         x, (False, 'La reserva no puede tener lugar en el pasado.'))
コード例 #31
0
 def test_DiasDeReservaYUnMinuto(self):
     hoy=datetime.now().replace(hour = 0, minute = 0)
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(days=15,minutes=1)
     horizonteDias = "15"
     horizonteHoras = "0"
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre, horizonteDias, horizonteHoras)
     a = str(horizonteDias)
     b = str(horizonteHoras)
     self.assertEqual(x, (False, 'Se puede reservar un puesto por un máximo de ' + horizonteDias + ' dias '+ horizonteHoras +' horas'))
コード例 #32
0
 def test_DiasDeReservaYUnMinuto(self):
     hoy = datetime.now().replace(hour=0, minute=0)
     HoraApertura = time(0, 0)
     HoraCierre = time(23, 59)
     ReservaInicio = hoy
     ReservaFin = hoy + timedelta(days=15, minutes=1)
     horizonteDias = "15"
     horizonteHoras = "0"
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonteDias, horizonteHoras)
     a = str(horizonteDias)
     b = str(horizonteHoras)
     self.assertEqual(
         x, (False, 'Se puede reservar un puesto por un máximo de ' +
             horizonteDias + ' dias ' + horizonteHoras + ' horas'))
コード例 #33
0
ファイル: views.py プロジェクト: Arleyn/Sage-Edwin
def estacionamiento_reserva(request, _id):
    _id = int(_id)
    # Verificamos que el objeto exista antes de continuar
    try:
        estacionamiento = Estacionamiento.objects.get(id = _id)
    except ObjectDoesNotExist:
        raise Http404

    # Verificamos que el estacionamiento este parametrizado
    if (estacionamiento.apertura is None):
        return HttpResponse(status = 403) # Esta prohibido entrar aun

    # Si se hace un GET renderizamos los estacionamientos con su formulario
    if request.method == 'GET':
        form = ReservaForm()

    # Si es un POST estan mandando un request
    elif request.method == 'POST':
        form = ReservaForm(request.POST)
        # Verificamos si es valido con los validadores del formulario
        if form.is_valid():

            inicioReserva = form.cleaned_data['inicio']
            finalReserva = form.cleaned_data['final']

            # debería funcionar con excepciones, y el mensaje debe ser mostrado
            # en el mismo formulario
            m_validado = validarHorarioReserva(
                inicioReserva,
                finalReserva,
                estacionamiento.apertura,
                estacionamiento.cierre,
            )

            # Si no es valido devolvemos el request
            if not m_validado[0]:
                return render(
                    request,
                    'template-mensaje.html',
                    { 'color'  :'red'
                    , 'mensaje': m_validado[1]
                    }
                )

            if marzullo(_id, inicioReserva, finalReserva):
                reservaFinal = Reserva(
                    estacionamiento = estacionamiento,
                    inicioReserva   = inicioReserva,
                    finalReserva    = finalReserva,
                )

                monto = Decimal(
                    estacionamiento.tarifa.calcularPrecio(
                        inicioReserva,finalReserva
                    )
                )

                request.session['monto'] = float(
                    estacionamiento.tarifa.calcularPrecio(
                        inicioReserva,
                        finalReserva
                    )
                )
                request.session['finalReservaHora']    = finalReserva.hour
                request.session['finalReservaMinuto']  = finalReserva.minute
                request.session['inicioReservaHora']   = inicioReserva.hour
                request.session['inicioReservaMinuto'] = inicioReserva.minute
                request.session['anioinicial']         = inicioReserva.year
                request.session['mesinicial']          = inicioReserva.month
                request.session['diainicial']          = inicioReserva.day
                request.session['aniofinal']           = finalReserva.year
                request.session['mesfinal']            = finalReserva.month
                request.session['diafinal']            = finalReserva.day
                return render(
                    request,
                    'confirmar.html',
                    { 'id'      : _id
                    , 'monto'   : monto
                    , 'reserva' : reservaFinal
                    , 'color'   : 'green'
                    , 'mensaje' : 'Existe un puesto disponible'
                    }
                )
            else:
                # Cambiar mensaje
                return render(
                    request,
                    'template-mensaje.html',
                    {'color'   : 'red'
                    , 'mensaje' : 'No hay un puesto disponible para ese horario'
                    }
                )

    return render(
        request,
        'reserva.html',
        { 'form': form
        , 'estacionamiento': estacionamiento
        }
    )
コード例 #34
0
def estacionamiento_reserva(request, _id):
    _id = int(_id)
    # Verificamos que el objeto exista antes de continuar
    try:
        estacionamiento = Estacionamiento.objects.get(id=_id)
    except ObjectDoesNotExist:
        raise Http404

    # Verificamos que el estacionamiento este parametrizado
    if (estacionamiento.apertura is None):
        return HttpResponse(status=403)  # Esta prohibido entrar aun

    # Si se hace un GET renderizamos los estacionamientos con su formulario
    if request.method == 'GET':
        form = ReservaForm()

    # Si es un POST estan mandando un request
    elif request.method == 'POST':
        form = ReservaForm(request.POST)
        # Verificamos si es valido con los validadores del formulario
        if form.is_valid():

            inicioReserva = form.cleaned_data['inicio']
            finalReserva = form.cleaned_data['final']

            # debería funcionar con excepciones, y el mensaje debe ser mostrado
            # en el mismo formulario
            m_validado = validarHorarioReserva(
                inicioReserva,
                finalReserva,
                estacionamiento.apertura,
                estacionamiento.cierre,
            )

            # Si no es valido devolvemos el request
            if not m_validado[0]:
                return render(request, 'template-mensaje.html', {
                    'color': 'red',
                    'mensaje': m_validado[1]
                })

            if marzullo(_id, inicioReserva, finalReserva):
                reservaFinal = Reserva(
                    estacionamiento=estacionamiento,
                    inicioReserva=inicioReserva,
                    finalReserva=finalReserva,
                )

                monto = Decimal(
                    estacionamiento.tarifa.calcularPrecio(
                        inicioReserva, finalReserva))

                request.session['monto'] = float(
                    estacionamiento.tarifa.calcularPrecio(
                        inicioReserva, finalReserva))
                request.session['finalReservaHora'] = finalReserva.hour
                request.session['finalReservaMinuto'] = finalReserva.minute
                request.session['inicioReservaHora'] = inicioReserva.hour
                request.session['inicioReservaMinuto'] = inicioReserva.minute
                request.session['anioinicial'] = inicioReserva.year
                request.session['mesinicial'] = inicioReserva.month
                request.session['diainicial'] = inicioReserva.day
                request.session['aniofinal'] = finalReserva.year
                request.session['mesfinal'] = finalReserva.month
                request.session['diafinal'] = finalReserva.day
                return render(
                    request, 'confirmar.html', {
                        'id': _id,
                        'monto': monto,
                        'reserva': reservaFinal,
                        'color': 'green',
                        'mensaje': 'Existe un puesto disponible'
                    })
            else:
                # Cambiar mensaje
                return render(
                    request, 'template-mensaje.html', {
                        'color': 'red',
                        'mensaje':
                        'No hay un puesto disponible para ese horario'
                    })

    return render(request, 'reserva.html', {
        'form': form,
        'estacionamiento': estacionamiento
    })
コード例 #35
0
def receive_sms(request):
    ip = get_client_ip(
        request)  # Busca el IP del telefono donde esta montado el SMS Gateway
    port = '8000'  # Puerto del telefono donde esta montado el SMS Gateway
    phone = request.GET.get('phone', False)
    sms = request.GET.get('text', False)
    if (not sms or not phone):
        return HttpResponse(status=400)  # Bad request

    phone = urllib.parse.quote(
        str(phone))  # Codificacion porcentaje del numero de telefono recibido

    # Tratamiento del texto recibido
    try:
        sms = sms.split(' ')
        id_sms = int(sms[0])
        inicio_reserva = sms[1] + ' ' + sms[2]
        final_reserva = sms[3] + ' ' + sms[4]
        inicio_reserva = parse_datetime(inicio_reserva)
        final_reserva = parse_datetime(final_reserva)
    except:
        return HttpResponse(status=400)  # Bad request

    # Validacion del id de estacionamiento recibido por SMS
    try:
        estacionamiento = Estacionamiento.objects.get(id=id_sms)
    except ObjectDoesNotExist:
        text = 'No existe el estacionamiento ' + str(id_sms) + '.'
        text = urllib.parse.quote(str(text))
        urllib.request.urlopen(
            'http://{0}:{1}/sendsms?phone={2}&text={3}&password='******'No existe el estacionamiento ' + str(id_sms) +
                            '.')

    # Validacion de las dos fechas recibidas por SMS
    m_validado = validarHorarioReserva(
        inicio_reserva,
        final_reserva,
        estacionamiento.apertura,
        estacionamiento.cierre,
    )
    if m_validado[0]:
        '''reserva_sms = Reserva(
            estacionamiento = estacionamiento,
            inicioReserva   = inicio_reserva,
            finalReserva    = final_reserva,
        )
        reserva_sms.save()'''
        text = 'Se realizó la reserva satisfactoriamente.'
        text = urllib.parse.quote(str(text))
        urllib.request.urlopen(
            'http://{0}:{1}/sendsms?phone={2}&text={3}&password='******'http://{0}:{1}/sendsms?phone={2}&text={3}&password='******'')