Skip to content

Feature/edit booking dates#194

Open
asmulever wants to merge 2 commits intooscarchapp:mainfrom
asmulever:feature/edit-booking-dates
Open

Feature/edit booking dates#194
asmulever wants to merge 2 commits intooscarchapp:mainfrom
asmulever:feature/edit-booking-dates

Conversation

@asmulever
Copy link

Resumen

Este PR mejora el flujo de edición de fechas de reserva para hacerlo más confiable y claro para operación, corrigiendo validaciones de disponibilidad, consistencia de fechas y experiencia visual del formulario.

Qué cambia

  • Se fortalece la lógica de edición de fechas en backend.
  • Se valida disponibilidad real antes de persistir cambios.
  • Se incorpora validación de rango permitido de fechas (incluyendo límite máximo definido).
  • Se corrige la carga/formato de fechas en el formulario para evitar discrepancias entre input y valor guardado.
  • Se mejora el estilo del formulario para una experiencia más intuitiva y consistente con el resto de la app.

Valor funcional

  • Reduce riesgo de sobreventa por solapamiento de reservas.
  • Disminuye errores manuales al editar check-in/check-out.
  • Mejora la confianza operativa al mostrar mensajes de validación claros.

Archivos relevantes

  • pms/views.py
  • pms/templates/edit_booking_dates.html
  • pms/statics/css/style.css
  • pms/tests.py
  • docs/pr-3-edit-booking-dates.md

Validación / pruebas

  • Pruebas automáticas cubriendo:
    • actualización exitosa cuando hay disponibilidad,
    • bloqueo de edición cuando existe solapamiento,
    • render correcto de valores de fecha en formato esperado,
    • validación de rango máximo permitido.
  • Resultado esperado: flujo estable, sin regresiones en edición de reservas.

Información para Deploy

  • No requiere migraciones de base de datos.
  • No agrega variables de entorno nuevas.
  • No introduce dependencias externas.
  • Riesgo medio-bajo: impacta una ruta sensible de negocio (editar reserva), recomendado smoke test funcional post-deploy.

Smoke test recomendado post-deploy

  1. Editar una reserva con fechas libres y confirmar guardado correcto.
  2. Intentar editar una reserva con fechas solapadas y validar mensaje de error.
  3. Verificar que los date inputs carguen el valor correcto al abrir el formulario.
  4. Confirmar que el cálculo/total asociado a la reserva se mantenga consistente tras el cambio.

Documentación

Existe documentación detallada para PM/Arquitectura y Deploy en:

  • docs/pr-3-edit-booking-dates.md

…bilidad

Contexto de negocio:

- Se implementa el requerimiento PR 3 del challenge: permitir editar fechas desde el listado principal de reservas.

- La solucion conserva la habitacion asignada y valida disponibilidad real antes de persistir cambios.

Alcance funcional entregado:

- Nueva ruta y flujo de edicion de fechas: booking/<pk>/edit-dates.

- Nuevo enlace en Home por reserva para acceder a la pantalla de edicion.

- Nuevo formulario dedicado con campos checkin/checkout y guardado.

- Validaciones server-side: rango cronologico valido, limite maximo 31/12/2026 y control de solapamientos en la misma habitacion.

- Mensaje funcional requerido por consigna cuando no hay cupo: No hay disponibilidad para las fechas seleccionadas.

- Recalculo automatico del total al actualizar fechas.

Correcciones de UX/consistencia tecnica:

- Los inputs de fecha se renderizan en formato ISO (YYYY-MM-DD), evitando desalineacion entre valor del textbox y calendario nativo.

Calidad y verificacion:

- Se incorporan pruebas automatizadas para: guardado exitoso, render ISO de fechas, bloqueo por solape y validacion de rango.

- Suite ejecutada: python manage.py test pms.tests.EditBookingDatesTests.

- Resultado: OK (4 tests).
…tura

- Explica objetivo de negocio y alcance del flujo

- Detalla validaciones de disponibilidad y consistencia de datos

- Enumera archivos impactados y pruebas ejecutadas
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant