feat: catalogo dinamico de tipificaciones de hitos, matriz RBAC y desacoplamiento en modal de eventos
This commit is contained in:
+31
-4
@@ -76,7 +76,8 @@ def init_database():
|
||||
'academic': 'read_write',
|
||||
'import': 'read_write',
|
||||
'optimizer': 'read_write',
|
||||
'users': 'read_write'
|
||||
'users': 'read_write',
|
||||
'milestone_types': 'read_write'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -91,7 +92,8 @@ def init_database():
|
||||
'academic': 'read',
|
||||
'import': 'none',
|
||||
'optimizer': 'read',
|
||||
'users': 'none'
|
||||
'users': 'none',
|
||||
'milestone_types': 'read'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -106,7 +108,8 @@ def init_database():
|
||||
'academic': 'read_write',
|
||||
'import': 'read_write',
|
||||
'optimizer': 'none',
|
||||
'users': 'none'
|
||||
'users': 'none',
|
||||
'milestone_types': 'read_write'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -121,7 +124,8 @@ def init_database():
|
||||
'academic': 'read',
|
||||
'import': 'none',
|
||||
'optimizer': 'none',
|
||||
'users': 'none'
|
||||
'users': 'none',
|
||||
'milestone_types': 'read'
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -215,6 +219,29 @@ def init_database():
|
||||
db.session.add(b_virtual)
|
||||
db.session.commit()
|
||||
print("[OK] Edificios institucionales configurados con dirección oficial.")
|
||||
|
||||
# 6. Inicializar catálogo dinámico de tipificaciones de hitos académicos
|
||||
print("[*] Verificando catálogo de tipificaciones de hitos académicos...")
|
||||
from app.models.milestone import MilestoneType, BASE_MILESTONE_TYPES
|
||||
for item in BASE_MILESTONE_TYPES:
|
||||
mt = MilestoneType.query.filter_by(code=item['code']).first()
|
||||
if not mt:
|
||||
mt = MilestoneType(
|
||||
name=item['name'],
|
||||
code=item['code'],
|
||||
color=item['color'],
|
||||
description=item['description'],
|
||||
sort_order=item['sort_order'],
|
||||
is_active=True
|
||||
)
|
||||
db.session.add(mt)
|
||||
else:
|
||||
if not mt.color:
|
||||
mt.color = item['color']
|
||||
if not mt.sort_order:
|
||||
mt.sort_order = item['sort_order']
|
||||
db.session.commit()
|
||||
print(f"[OK] Catálogo de tipificaciones inicializado ({MilestoneType.query.count()} tipos disponibles).")
|
||||
|
||||
print("\n[LISTO] Base de datos inicializada y lista para usar.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user