fix: normalizar sync de google sheets para todos los dias, reparar 500 en ciclos lectivos, selector de ciclo lectivo en comisiones y opciones --keep-db --keep-users en install.sh
This commit is contained in:
@@ -240,11 +240,16 @@ def get_commissions():
|
||||
'career_name': c_name
|
||||
})
|
||||
|
||||
from app.models.academic_term import AcademicTerm
|
||||
terms = AcademicTerm.query.filter_by(is_active=True).order_by(AcademicTerm.year.desc(), AcademicTerm.start_date.desc()).all()
|
||||
terms_data = [t.to_dict() for t in terms]
|
||||
|
||||
return jsonify({
|
||||
'status': 'success',
|
||||
'total': len(commissions_data),
|
||||
'commissions': commissions_data,
|
||||
'subjects': subjects_data
|
||||
'subjects': subjects_data,
|
||||
'academic_terms': terms_data
|
||||
}), 200
|
||||
|
||||
# ---------------------------------------------------------
|
||||
@@ -799,6 +804,25 @@ def create_commission():
|
||||
code = data.get('code', '').strip()
|
||||
semester = (data.get('semester') or '1C').strip()
|
||||
year = int(data.get('year', datetime.now().year) or datetime.now().year)
|
||||
academic_term_id = data.get('academic_term_id')
|
||||
academic_term_id = int(academic_term_id) if (academic_term_id and str(academic_term_id).strip()) else None
|
||||
|
||||
# Si se seleccionó Ciclo Lectivo, sincronizar año y cuatrimestre inteligentemente
|
||||
if academic_term_id:
|
||||
from app.models.academic_term import AcademicTerm
|
||||
term_obj = AcademicTerm.query.get(academic_term_id)
|
||||
if term_obj:
|
||||
if not data.get('year') or int(data.get('year')) == datetime.now().year:
|
||||
year = term_obj.year
|
||||
if not data.get('semester') or data.get('semester') == '1C':
|
||||
p_text = f"{term_obj.name} {term_obj.period_type or ''} {term_obj.code}".lower()
|
||||
if '2c' in p_text or 'segundo' in p_text or '2º' in p_text or '2do' in p_text:
|
||||
semester = '2C'
|
||||
elif 'anual' in p_text:
|
||||
semester = 'Anual'
|
||||
else:
|
||||
semester = '1C'
|
||||
|
||||
teacher_id = data.get('teacher_id')
|
||||
teacher_id = int(teacher_id) if (teacher_id and str(teacher_id).strip()) else None
|
||||
max_students = int(data.get('max_students', 35) or 35)
|
||||
@@ -834,6 +858,8 @@ def create_commission():
|
||||
existing.max_students = max_students
|
||||
existing.schedule = schedule
|
||||
existing.shift = shift
|
||||
if academic_term_id:
|
||||
existing.academic_term_id = academic_term_id
|
||||
if virtual_link:
|
||||
existing.virtual_link = virtual_link
|
||||
existing.active = bool(active)
|
||||
@@ -858,6 +884,7 @@ def create_commission():
|
||||
schedule=schedule,
|
||||
shift=shift,
|
||||
virtual_link=virtual_link,
|
||||
academic_term_id=academic_term_id,
|
||||
active=bool(active)
|
||||
)
|
||||
db.session.add(commission)
|
||||
|
||||
Reference in New Issue
Block a user