feat: ordenar proyectos por prioridad real + separa paginas web de dominios
canWriteProject/ListView ya soportaba ordenar por cualquier columna con clic en el encabezado; solo Prioridad ordenaba alfabetico por el texto en vez de por severidad real. Se agrega pr.level a la consulta y sortValue en la columna. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,14 @@
|
||||
# Changelog - project.linkedcorp.net
|
||||
|
||||
## [1.10.0] - 2026-09-11
|
||||
### Added
|
||||
- Ordenar proyectos por Prioridad ahora usa la severidad real (Baja→Media→Alta→Crítica), no el
|
||||
orden alfabético del texto. El resto de columnas (Nombre, Estado, Creado, etc.) ya se podían
|
||||
ordenar con clic en el encabezado — no era nuevo, solo Prioridad tenía este detalle.
|
||||
### Changed
|
||||
- "Páginas web y dominios" separada en dos tareas dentro de "Inventario de servicios de
|
||||
tecnología": "Páginas web" y "Dominios".
|
||||
|
||||
## [1.9.3] - 2026-09-11
|
||||
### Added
|
||||
- Nueva actividad en Infraestructura y redes: "Inventario de servicios de tecnología", con 8
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
-- "Paginas web y dominios" separada en dos tareas. Idempotente: DELETE de la vieja es inofensivo
|
||||
-- si ya no existe; INSERT de las nuevas protegido por NOT EXISTS.
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
DELETE t FROM tasks t
|
||||
JOIN activities a ON a.id = t.activity_id
|
||||
WHERE a.name = 'Inventario de servicios de tecnologia'
|
||||
AND t.name = 'Paginas web y dominios (hosting, registrador, fechas de vencimiento)';
|
||||
|
||||
INSERT INTO tasks (activity_id, name)
|
||||
SELECT a.id, x.name
|
||||
FROM activities a
|
||||
JOIN (
|
||||
SELECT 'Paginas web (hosting, actualizaciones, responsables)' AS name
|
||||
UNION ALL SELECT 'Dominios (registrador, fechas de vencimiento, renovacion)'
|
||||
) x ON 1=1
|
||||
WHERE a.name = 'Inventario de servicios de tecnologia'
|
||||
AND NOT EXISTS (SELECT 1 FROM tasks y WHERE y.activity_id = a.id AND y.name = x.name);
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "project-linkedcorp-backend",
|
||||
"version": "1.9.3",
|
||||
"version": "1.10.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "src/server.js",
|
||||
|
||||
@@ -2,7 +2,7 @@ import { pool } from '../../config/db.js';
|
||||
|
||||
const LIST_SELECT = `
|
||||
SELECT p.id, p.code, p.name, p.description, p.objective, p.project_type_id, pt.name AS project_type_name,
|
||||
p.priority_id, pr.name AS priority_name, pr.color AS priority_color,
|
||||
p.priority_id, pr.name AS priority_name, pr.color AS priority_color, pr.level AS priority_level,
|
||||
p.status_id, ps.name AS status_name, ps.color AS status_color, ps.is_closed AS status_is_closed,
|
||||
p.owner_user_id, u.name AS owner_name,
|
||||
p.requesting_department_id, rd.name AS requesting_department_name,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "project-linkedcorp-frontend",
|
||||
"private": true,
|
||||
"version": "1.9.3",
|
||||
"version": "1.10.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
||||
@@ -123,7 +123,7 @@ export default function ProyectosPage() {
|
||||
{ key: 'code', label: t('project_code') },
|
||||
{ key: 'name', label: t('common_name') },
|
||||
{ key: 'status_name', label: t('common_status'), render: (r) => <StatusBadge name={r.status_name} color={r.status_color} /> },
|
||||
{ key: 'priority_name', label: t('common_priority'), render: (r) => <StatusBadge name={r.priority_name} color={r.priority_color} /> },
|
||||
{ key: 'priority_name', label: t('common_priority'), sortValue: (r) => r.priority_level, render: (r) => <StatusBadge name={r.priority_name} color={r.priority_color} /> },
|
||||
{ key: 'owner_name', label: t('project_owner') },
|
||||
{ key: 'progress_pct', label: t('project_progress'), render: (r) => <div style={{ width: 100 }}><ProgressBar value={Number(r.progress_pct)} /></div> },
|
||||
{ key: 'risk_level', label: t('project_risk'), render: (r) => <Badge color={RISK_COLOR[r.risk_level]}>{t(`risk_${r.risk_level}`)}</Badge> },
|
||||
|
||||
Reference in New Issue
Block a user