Corriger le détail des salles
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
This commit is contained in:
parent
a18e0f2713
commit
4d6e4be906
3 changed files with 54 additions and 7 deletions
|
|
@ -1,9 +1,11 @@
|
|||
"""Routes salles - GMAO Collège"""
|
||||
from datetime import date, datetime, timedelta
|
||||
from flask import Blueprint, render_template, redirect, url_for, request, flash
|
||||
from flask_login import login_required
|
||||
|
||||
from app_new.extensions import db
|
||||
from app_new.core.models.college import Room, Zone, Building, RoomType
|
||||
from app_new.core.models.college import Room, Zone, Building, RoomType, RoomSchedule
|
||||
from app_new.core.models.equipment import Equipment
|
||||
|
||||
rooms_bp = Blueprint('rooms', __name__, template_folder='templates')
|
||||
|
||||
|
|
@ -33,7 +35,52 @@ def index():
|
|||
def detail(id):
|
||||
"""Détail d'une salle."""
|
||||
room = Room.query.get_or_404(id)
|
||||
return render_template('equipments/room_detail.html', room=room)
|
||||
today = date.today()
|
||||
week_start = today - timedelta(days=today.weekday())
|
||||
courses = RoomSchedule.query.filter_by(
|
||||
room_id=room.id,
|
||||
week_start=week_start,
|
||||
day_of_week=today.weekday(),
|
||||
).order_by(RoomSchedule.start_time).all()
|
||||
current_time = datetime.now().time()
|
||||
current_course = next(
|
||||
(course for course in courses
|
||||
if course.start_time <= current_time <= course.end_time),
|
||||
None,
|
||||
)
|
||||
next_course = next(
|
||||
(course for course in courses if course.start_time > current_time),
|
||||
None,
|
||||
)
|
||||
if current_course:
|
||||
room_status = {
|
||||
'status': 'occupee',
|
||||
'message': 'Salle actuellement occupée',
|
||||
'course': current_course,
|
||||
'next_occupied': None,
|
||||
}
|
||||
elif courses:
|
||||
room_status = {
|
||||
'status': 'libre',
|
||||
'message': 'Salle libre actuellement',
|
||||
'course': None,
|
||||
'next_occupied': next_course.start_time.strftime('%H:%M') if next_course else None,
|
||||
}
|
||||
else:
|
||||
room_status = {
|
||||
'status': 'inconnu',
|
||||
'message': "Aucun emploi du temps importé pour cette salle aujourd'hui.",
|
||||
'course': None,
|
||||
'next_occupied': None,
|
||||
}
|
||||
|
||||
equipments = Equipment.query.filter(
|
||||
Equipment.room_id == room.id,
|
||||
Equipment.is_deleted.is_(False),
|
||||
).order_by(Equipment.name, Equipment.individual_number).all()
|
||||
return render_template('equipments/room_detail.html',
|
||||
room=room, equipments=equipments,
|
||||
courses=courses, room_status=room_status)
|
||||
|
||||
|
||||
@rooms_bp.route('/new', methods=['GET', 'POST'])
|
||||
|
|
|
|||
|
|
@ -96,8 +96,8 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
{% for course in courses %}
|
||||
<tr {% if room_status.course and course.subject == room_status.course.subject and course.start_hour == room_status.course.start_hour %}class="table-danger"{% endif %}>
|
||||
<td>{{ "%02d"|format(course.start_hour) }}:{{ "%02d"|format(course.start_minute) }} - {{ "%02d"|format(course.end_hour) }}:{{ "%02d"|format(course.end_minute) }}</td>
|
||||
<tr {% if room_status.course and course.id == room_status.course.id %}class="table-danger"{% endif %}>
|
||||
<td>{{ course.start_time.strftime('%H:%M') }} - {{ course.end_time.strftime('%H:%M') }}</td>
|
||||
<td>{{ course.subject }}</td>
|
||||
<td>{{ course.teacher }}</td>
|
||||
<td>{{ course.class_name }}</td>
|
||||
|
|
|
|||
|
|
@ -96,8 +96,8 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
{% for course in courses %}
|
||||
<tr {% if room_status.course and course.subject == room_status.course.subject and course.start_hour == room_status.course.start_hour %}class="table-danger"{% endif %}>
|
||||
<td>{{ "%02d"|format(course.start_hour) }}:{{ "%02d"|format(course.start_minute) }} - {{ "%02d"|format(course.end_hour) }}:{{ "%02d"|format(course.end_minute) }}</td>
|
||||
<tr {% if room_status.course and course.id == room_status.course.id %}class="table-danger"{% endif %}>
|
||||
<td>{{ course.start_time.strftime('%H:%M') }} - {{ course.end_time.strftime('%H:%M') }}</td>
|
||||
<td>{{ course.subject }}</td>
|
||||
<td>{{ course.teacher }}</td>
|
||||
<td>{{ course.class_name }}</td>
|
||||
|
|
|
|||
Loading…
Reference in a new issue