示例#1
0
 def test_EstacionamientoReserva_UnCampo(self):
     form_data = {'inicio_1': time(hour = 6, minute = 0),
                  'final_1': time(hour = 15, minute = 0),
                  'final_0': date(year=2015,month=2,day=27)
     }
     form = ReservaForm(data = form_data)
     self.assertFalse(form.is_valid())
示例#2
0
 def test_EstacionamientoReserva_vehiculoTipolNone(self):
     form_data = {'inicio_1': time(hour = 6, minute = 0),
                  'final_1': time(hour = 15, minute = 0),
                  'final_0': None,
                  'inicio_0': date(year=2015,month=2,day=27),
                  'vehiculoTipo' : None
     }
     form = ReservaForm(data = form_data)
     self.assertFalse(form.is_valid())
示例#3
0
 def test_EstacionamientoReserva_FinString(self):
     form_data = {'inicio_1': time(hour = 6, minute = 0),
                  'final_1': 'Reinoza',
                  'final_0': date(year=2015,month=2,day=27),
                  'inicio_0': date(year=2015,month=2,day=27),
                  'vehiculoTipo' : 'Moto'
     }
     form = ReservaForm(data = form_data)
     self.assertFalse(form.is_valid())
示例#4
0
 def test_EstacionamientoReserva_TodosCamposBien(self):
     form_data = {'inicio_1': time(hour=6, minute=0),
                  'final_1' : time(hour=15, minute=0),
                  'final_0' : date(year=2015, month=2, day=27),
                  'inicio_0': date(year=2015, month=2, day=27),
                  'vehiculoTipo' : 'Moto'
                 }
     form = ReservaForm(data = form_data)
     self.assertTrue(form.is_valid())
示例#5
0
 def test_EstacionamientoReserva_InicioString(self):
     form_data = {'inicio_1': 'teruel',
                  'tipo_puesto':'Particular',
                  'final_1': time(hour = 15, minute = 0),
                  'final_0': date(year=2015,month=2,day=27),
                  'inicio_0': date(year=2015,month=2,day=27)
     }
     form = ReservaForm(data = form_data)
     self.assertFalse(form.is_valid())
示例#6
0
 def test_EstacionamientoReserva_Campos_Sin_TipoPuesto(self):
     form_data = {'nombre': 'Marisela',
                  'apellido': 'Del Valle',
                  'cedula': 'V-23638870',
                  'inicio_1': time(hour=6, minute=0),
                  'final_1' : time(hour=15, minute=0),
                  'final_0' : date(year=2015, month=2, day=27),
                  'inicio_0': date(year=2015, month=2, day=27)
                 }
     form = ReservaForm(data = form_data)
     self.assertFalse(form.is_valid())
示例#7
0
 def test_EstacionamientoReserva_finalNone(self):
     form_data = {'nombre'  : 'Carlos',
                  'apellido': 'Ferrer-Acosta',
                  'ci'      : 'V-12345678',
                  'inicio_1': time(hour = 6, minute = 0),
                  'final_1': time(hour = 15, minute = 0),
                  'final_0': None,
                  'inicio_0': date(year=2015,month=2,day=27),
                  'tipoVehiculo': 'Moto'
     }
     form = ReservaForm(data = form_data)
     self.assertFalse(form.is_valid())
示例#8
0
 def test_EstacionamientoReserva_TodosCamposBien(self):
     form_data = {'nombre': 'Marisela',
                  'apellido': 'Del Valle',
                  'cedula': 'V-23638870',
                  'tipo_puesto':'Particular',
                  'inicio_1': time(hour=6, minute=0),
                  'final_1' : time(hour=15, minute=0),
                  'final_0' : date(year=2015, month=2, day=27),
                  'inicio_0': date(year=2015, month=2, day=27)
                 }
     form = ReservaForm(data = form_data)
     self.assertTrue(form.is_valid())
示例#9
0
 def test_EstacionamientoReserva_finalNone(self):
     form_data = {
         'nombre': 'Carlos',
         'apellido': 'Ferrer-Acosta',
         'ci': 'V-12345678',
         'inicio_1': time(hour=6, minute=0),
         'final_1': time(hour=15, minute=0),
         'final_0': None,
         'inicio_0': date(year=2015, month=2, day=27),
         'tipoVehiculo': 'Moto'
     }
     form = ReservaForm(data=form_data)
     self.assertFalse(form.is_valid())
示例#10
0
def crearReserva(request):
    context = RequestContext(request)
    if request.method == 'POST':
        form = ReservaForm(request.POST)
        if form.is_valid():
            est = form.cleaned_data['estacionamiento']
            inicio = form.cleaned_data['horaInicio']
            fin = form.cleaned_data['horaFin']
            hayReserva = verificarReserva(est, inicio, fin)
            if hayReserva:
                form.save(commit=True)
            else:
                ocupado = True
                return render_to_response('estacionamientos/crear_reserva.html',
                                          {'form': form, 'ocupado': ocupado, 'estacionamiento': est},
                                          context)                
            return index(request)
    else:
        form = ReservaForm()
    return render_to_response('estacionamientos/crear_reserva.html',
                              {'form': form}, context)
示例#11
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
    })
示例#12
0
 def test_estacionamiento_reserva_vacio(self):
     form_data = {}
     form = ReservaForm(data = form_data)
     self.assertFalse(form.is_valid())
示例#13
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
        }
    )