Skip to content

fix/navegacion-sidebar-y-dependencias#257

Merged
mjnizac merged 7 commits into
mainfrom
develop
May 29, 2026
Merged

fix/navegacion-sidebar-y-dependencias#257
mjnizac merged 7 commits into
mainfrom
develop

Conversation

@mjnizac

@mjnizac mjnizac commented May 28, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

Notas de Lanzamiento

  • New Features

    • Nuevo dashboard administrativo con navegación por pestañas: inicio, actividad, administración y configuración
    • Panel de métricas global con gráficos de órdenes por día y ranking de compañías
    • Gestión de entidades: tablas interactivas para organizaciones, empresas, pedidos, usuarios y trabajadores
    • Visualización de rutas activas en mapa
    • Función de reset de base de datos para administradores
  • Chores

    • Ampliación de repositorios de datos
    • Textos de interfaz actualizados en inglés y español
    • Rediseño de estilos del dashboard administrativo

Review Change Stack

mjnizac and others added 6 commits May 13, 2026 08:22
* fix: Leaflet navigation crash and minor UX bugs

* fix: corregir bugs de mapas, navegación, ranking y asignación de trabajadores

* feat: ampliar datos de demo con global admin, nueva empresa y asignación de trabajadores a unidades

* fix: aplicar sugerencias CodeRabbit en mapas, layout y tests
* fix: mostrar mis pedidos en sidebar para usuarios LOYAL_USER

* fix: añadir campo username al formulario de reclamación de pedido

* fix: reutilizar fields.username en lugar de clave duplicada en tracking

* feat: pedidos B2B cross-org, registro desde tracking con address, validaciones y mejoras UI

* test: corregir tests tras cambios en OrderService, UnitService y WorkerService

* fix: añadir LoyalUserCompany y actualizar test useOrderForm a b2bOrganizations

* test: añadir address en test useUnitForm para pasar validación de ubicación

* test: añadir campo address en E2E de registro individual
@vercel

vercel Bot commented May 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
delivera Ready Ready Preview, Comment May 29, 2026 7:40am

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

Walkthrough

Este PR implementa un panel administrativo completo con reconfiguración de la organización del sistema, múltiples endpoints de administración global, gestión de entidades, eliminaciones en cascada y reinicio de base de datos, junto con una interfaz Vue de múltiples pestañas para métricas, actividad, administración y configuración.

Changes

Panel de Control Administrativo

Layer / File(s) Summary
System Organization Setup
backend/src/main/java/com/delivera/config/DemoDataSeeder.java, backend/src/main/resources/db/migration/V48__system_org_for_global_admin.sql
Se crea la organización Delivera (handle='delivera') y la empresa deliveraPlatform con activity type distribution y plan free. Se rebind el worker GLOBAL_ADMIN para que se asocie a la empresa de sistema en lugar de a la primera empresa cliente.
Admin DTOs and Repository Contracts
backend/src/main/java/com/delivera/dto/admin/*, backend/src/main/java/com/delivera/repository/{ApiKeyRepository,CompanyRepository,LoyalUserCompanyRepository,LoyalUserRepository,OperationalUnitRepository,OrderEventRepository,OrderMessageRepository,OrderRepository,OrganizationRepository,UserRepository,WorkerRepository}.java
Se agregan DTOs immutables (CompanySummary, OrderAdminSummary, UserSummary, WorkerAdminSummary, UnitAdminSummary, RouteAdminEntry, CompanyRankingEntry) y se extienden repositorios con métodos JPQL/nativos para conteos globales por estado/período, rankings de compañías, y borrados condicionados por compañía/origen/usuario.
AdminService Implementation
backend/src/main/java/com/delivera/service/AdminService.java
Se expande el constructor con 11 repositorios inyectados y se implementan operaciones públicas: listCompanies, listOrders, listUsers, listWorkers, listUnits, getActiveRoutes, getGlobalActivityMetrics, getCompanyRanking, getGlobalOrdersByDay (con soporte para TODAY/WEEK/MONTH), y métodos transaccionales de borrado (deleteOrganization, deleteCompany, deleteOrder, deleteUser, deleteWorker, resetDatabase). resetDatabase identifica al GLOBAL_ADMIN por email y ejecuta eliminación masiva de órdenes, leales, asignaciones/unidades y claves API, finalmente eliminando compañías/organizaciones/usuarios excepto los del admin.
AdminController Endpoints
backend/src/main/java/com/delivera/controller/AdminController.java
Se agrega inyección de SecurityUtils y se exponen endpoints GET para listas de entidades (empresas, órdenes, usuarios, trabajadores, unidades, rutas activas), métricas globales por período, actividad por día y ranking de compañías; se exponen endpoints DELETE en cascada por entidad y un POST /reset que ejecuta resetDatabase con el email del usuario autenticado.
Admin Dashboard Vue Component
frontend/src/views/admin/AdminDashboardView.vue, frontend/src/views/admin/AdminDashboardView.css
Se reemplaza la vista simple por un dashboard de 4 pestañas: home con métricas, gráfico de órdenes por día y mapa de rutas; activity con selector de período y ranking de compañías; administration con tablas de entidades (organizaciones, empresas, órdenes, usuarios, trabajadores) que incluyen confirmación inline de borrado por fila; settings con flujo de confirmación y reset de base de datos. Se incorpora lógica de carga paralela, cálculo de deliveryRate, inicialización/limpieza de mapa con clusters y rutas, y manejo de errores/estados de carga.
Localization and Navigation
frontend/src/locales/en.yml, frontend/src/locales/es.yml, frontend/src/components/AppLayout.vue
Se amplían traducciones del admin con nuevas claves para pestañas, entidades, métricas, acciones de borrado y reset. Se actualiza la lógica de visibilidad en AppLayout para excluir items con noRole cuando el usuario es GLOBAL_ADMIN.
Tests
backend/src/test/java/com/delivera/controller/AdminControllerTest.java, backend/src/test/java/com/delivera/service/AdminServiceTest.java, frontend/e2e/admin.spec.js
Se agrega mock de SecurityUtils en AdminControllerTest, se amplían mocks de repositorios en AdminServiceTest y se ajustan stubs (cambio de count() a countTenants(), ajuste de contadores de usuarios). Se actualizan tests E2E para agregar stubs de nuevos endpoints (/units, /routes, /activity/orders-by-day) y selector de la grilla de métricas.

Sequence Diagram

sequenceDiagram
  participant Admin as Admin User
  participant Frontend as AdminDashboard
  participant Controller as AdminController
  participant Service as AdminService
  participant Repo as Repositories
  participant DB as Database
  Admin->>Frontend: Navigate to home tab
  Frontend->>Controller: GET /admin/activity/metrics?period=MONTH
  Controller->>Service: getGlobalActivityMetrics(period)
  Service->>Repo: countTenants(), countByStatusAndCreatedAtAfter()
  Repo->>DB: Query aggregates
  DB-->>Repo: Counts
  Repo-->>Service: Results
  Service-->>Controller: ActivityMetricsResponse
  Controller-->>Frontend: Metrics data
  Frontend->>Controller: GET /admin/orders-by-day?period=MONTH
  Controller->>Service: getGlobalOrdersByDay(period)
  Service->>Repo: countByDayGlobal(after)
  Repo->>DB: Query daily counts
  DB-->>Frontend: Chart data
  Admin->>Frontend: Click delete company
  Frontend->>Frontend: Show inline confirmation
  Admin->>Frontend: Confirm delete
  Frontend->>Controller: DELETE /admin/companies/{id}
  Controller->>Service: deleteCompany(id)
  Service->>Repo: Delete cascade (orders,messages,events,workers)
  Repo->>DB: Execute deletes
  DB-->>Service: Success
  Service-->>Controller: 204 No Content
  Controller-->>Frontend: Success
  Frontend->>Frontend: Reload company list
  Admin->>Frontend: Navigate to settings
  Admin->>Frontend: Click reset database
  Frontend->>Frontend: Show confirmation modal
  Admin->>Frontend: Confirm reset
  Frontend->>Controller: POST /admin/reset
  Controller->>Service: resetDatabase(adminEmail)
  Service->>Repo: Delete all orders, events, messages, leals, units, workers
  Service->>Repo: Delete all companies except system
  Service->>Repo: Delete all orgs except system
  Service->>Repo: Delete all users except admin
  Repo->>DB: Execute all deletes in transaction
  DB-->>Frontend: 204 No Content
  Frontend->>Frontend: Reload to home
Loading

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly Related PRs

  • Delivera-Project/Delivera#254: Modifica la lógica de visibilidad de la barra lateral en AppLayout.vue con la misma gating de noRole y GLOBAL_ADMIN.
  • Delivera-Project/Delivera#256: Implementa los mismos cambios de interfaz global del admin (extensión de AdminController/AdminService con endpoints globales, DTOs de admin, lógica de demo/migración para crear Delivera/deliveraPlatform y rebind de GLOBAL_ADMIN).
  • Delivera-Project/Delivera#244: Modifica DemoDataSeeder.java para introducir/actualizar el seeding de GLOBAL_ADMIN y su configuración de organización/empresa de sistema.
🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning No se proporcionó descripción del PR, violando el template requerido. Falta resumen de cambios, issues relacionados, tipo de cambio y checklist. Complete la descripción del PR siguiendo el template: agregue un resumen de cambios, issue relacionado, tipo de cambio (Feature/Bug fix), y marque los items del checklist que apliquen.
Docstring Coverage ⚠️ Warning Docstring coverage is 3.13% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive El título describe cambios en navegación, sidebar y dependencias, lo cual se alinea parcialmente con el resumen completo de cambios (principalmente en backend para AdminController, DTOs, repositorios y AdminService). Sin embargo, es muy genérico e incompleto para el alcance real del PR. Considere un título más específico que refleje el alcance real: p.ej. 'feat: admin dashboard with metrics, entity management and database reset' o proporcione una descripción más detallada en el PR.
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mjnizac mjnizac changed the title release: fixes de navegación, sidebar y dependencias fix/navegacion-sidebar-y-dependencias May 29, 2026
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
4.5% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@mjnizac mjnizac merged commit 20aa49d into main May 29, 2026
13 of 18 checks passed
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