feat: gestion RBAC granular, importacion sheets, filtrado de aulas virtuales y pisos, capacidad infinita y traduccion

This commit is contained in:
Carlos Tello
2026-09-03 03:08:49 -03:00
parent d1d4be0428
commit 5cc33cc7a0
138 changed files with 14419 additions and 1490 deletions
+12
View File
@@ -6,6 +6,7 @@ class Classroom(db.Model):
id = db.Column(db.Integer, primary_key=True)
campus_id = db.Column(db.Integer, nullable=True) # Maps to campus_id in DB
building_id = db.Column(db.Integer, db.ForeignKey('buildings.id'), nullable=True)
building = db.Column(db.String(100), nullable=False)
code = db.Column('room_number', db.String(50), nullable=False) # Maps to room_number column in DB
floor = db.Column(db.Integer, nullable=False)
@@ -40,6 +41,17 @@ class Classroom(db.Model):
def code_display(self):
return f"{self.building}-{self.code}"
@property
def capacity_display(self):
"""Retorna '∞' para aulas virtuales o capacidad ilimitada, o el número entero."""
if self.capacity == 0 or (self.code and 'VIRTUAL' in self.code.upper()):
return '∞'
return str(self.capacity)
@property
def is_unlimited(self):
return self.capacity == 0 or (self.code and 'VIRTUAL' in self.code.upper())
def to_dict(self):
"""Convert classroom to dictionary"""
return {