fix(bedelia): corregir purga academica con integridad referencial, circuito agil de asignacion de aulas y documentacion v3.1.0
This commit is contained in:
@@ -29,7 +29,8 @@ from app import create_app, db
|
||||
from app.models.reservation import Reservation
|
||||
from app.models.enrollment import StudentEnrollment
|
||||
from app.models.milestone import AcademicMilestone
|
||||
from app.models.subject import Commission, Subject
|
||||
from app.models.grade import MilestoneGrade
|
||||
from app.models.subject import Commission, Subject, CommissionTeacher
|
||||
from app.models.career import Career
|
||||
from app.models.classroom import Classroom, ClassroomResource
|
||||
|
||||
@@ -56,6 +57,8 @@ def execute_academic_reset(
|
||||
'reservations': 0,
|
||||
'enrollments': 0,
|
||||
'commissions': 0,
|
||||
'commission_teachers': 0,
|
||||
'milestones': 0,
|
||||
'subjects': 0,
|
||||
'careers': 0,
|
||||
'classrooms': 0,
|
||||
@@ -66,32 +69,46 @@ def execute_academic_reset(
|
||||
# 1. Eliminar Reservas (Asignaciones de aulas)
|
||||
if reset_reservations:
|
||||
deleted_counts['reservations'] = Reservation.query.delete()
|
||||
|
||||
# 2. Desvincular hitos de materias o comisiones si se van a eliminar
|
||||
if reset_subjects or reset_commissions:
|
||||
AcademicMilestone.query.update({
|
||||
AcademicMilestone.subject_id: None,
|
||||
AcademicMilestone.commission_id: None
|
||||
})
|
||||
db.session.flush()
|
||||
|
||||
# 3. Eliminar Inscripciones y Comisiones
|
||||
if reset_commissions:
|
||||
# 2. Eliminar calificaciones e hitos evaluativos vinculados a comisiones o materias
|
||||
if reset_subjects or reset_commissions or reset_careers:
|
||||
try:
|
||||
MilestoneGrade.query.delete()
|
||||
deleted_counts['milestones'] = AcademicMilestone.query.delete()
|
||||
except Exception as me:
|
||||
print("Notice during milestones cleanup:", me)
|
||||
db.session.flush()
|
||||
|
||||
# 3. Eliminar Docentes de comisión, Inscripciones de alumnos y Comisiones
|
||||
if reset_commissions or reset_subjects or reset_careers:
|
||||
try:
|
||||
deleted_counts['commission_teachers'] = CommissionTeacher.query.delete()
|
||||
except Exception as cte:
|
||||
print("Notice during commission teachers cleanup:", cte)
|
||||
db.session.flush()
|
||||
|
||||
deleted_counts['enrollments'] = StudentEnrollment.query.delete()
|
||||
db.session.flush()
|
||||
|
||||
deleted_counts['commissions'] = Commission.query.delete()
|
||||
db.session.flush()
|
||||
|
||||
# 4. Eliminar Materias / Asignaturas
|
||||
if reset_subjects:
|
||||
if reset_subjects or reset_careers:
|
||||
deleted_counts['subjects'] = Subject.query.delete()
|
||||
db.session.flush()
|
||||
|
||||
# 5. Eliminar Carreras
|
||||
if reset_careers:
|
||||
deleted_counts['careers'] = Career.query.delete()
|
||||
db.session.flush()
|
||||
|
||||
# 6. Eliminar Recursos y Aulas
|
||||
if reset_classrooms:
|
||||
deleted_counts['classroom_resources'] = ClassroomResource.query.delete()
|
||||
deleted_counts['classrooms'] = Classroom.query.delete()
|
||||
db.session.flush()
|
||||
|
||||
db.session.commit()
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user