feat: add functionality for linking teachers to classes with a new UI tab and API endpoint
All checks were successful
Build & Push / Build & Push image (push) Successful in 40s
All checks were successful
Build & Push / Build & Push image (push) Successful in 40s
This commit is contained in:
@@ -459,6 +459,29 @@ def set_my_classes():
|
||||
return jsonify({'my_classes': [{'id': c.id, 'name': c.name} for c in current_user.classes]})
|
||||
|
||||
|
||||
|
||||
# ── Klas-leerkracht koppeling (directeur) ──────────────────────────────────────
|
||||
|
||||
@api_bp.route('/classes/<int:class_id>/teachers', methods=['PUT'])
|
||||
@login_required
|
||||
@director_required
|
||||
def set_class_teachers(class_id):
|
||||
"""Directeur koppelt leerkrachten aan een klas."""
|
||||
klas = Class.query.filter_by(id=class_id, school_id=current_user.school_id).first_or_404()
|
||||
data = request.get_json() or {}
|
||||
user_ids = data.get('teacher_ids', [])
|
||||
teachers = User.query.filter(
|
||||
User.id.in_(user_ids),
|
||||
User.school_id == current_user.school_id,
|
||||
User.is_active == True,
|
||||
).all()
|
||||
klas.users = teachers
|
||||
audit_log('class.user_assignment', 'class', target_id=str(class_id),
|
||||
detail={'class_name': klas.name, 'teacher_ids': user_ids,
|
||||
'teacher_names': [t.full_name for t in teachers]})
|
||||
db.session.commit()
|
||||
return jsonify({'teachers': [{'id': t.id, 'full_name': t.full_name} for t in teachers]})
|
||||
|
||||
# ── Auditlog ───────────────────────────────────────────────────────────────────
|
||||
|
||||
@api_bp.route('/audit-log')
|
||||
|
||||
Reference in New Issue
Block a user