Ajouter le filtre des messages non interprétés
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run

This commit is contained in:
root 2026-08-16 13:32:55 +00:00
parent d10888c005
commit 0321a08b12
2 changed files with 23 additions and 3 deletions

View file

@ -347,7 +347,13 @@ def data_management():
page = request.args.get('page', 1, type=int)
page_eq = request.args.get('equipments_page', 1, type=int)
page_int = request.args.get('interventions_page', 1, type=int)
mails = OutlookMail.query.order_by(OutlookMail.received_at.desc()).paginate(page=page, per_page=25)
missing_only = request.args.get('non_interpretes') == '1'
if missing_only:
interpreted_mail_ids = db.session.query(OutlookMailInterpretation.mail_id).distinct()
mails_query = OutlookMail.query.filter(~OutlookMail.id.in_(interpreted_mail_ids))
else:
mails_query = OutlookMail.query
mails = mails_query.order_by(OutlookMail.received_at.desc()).paginate(page=page, per_page=25)
# Interventions recentes (pagine, non supprimees)
interventions = Intervention.query.filter_by(is_deleted=False).order_by(Intervention.created_at.desc()).paginate(page=page_int, per_page=25)
@ -361,7 +367,12 @@ def data_management():
outlook_interp_map[interp.mail_id] = interp
# Recuperer les messages ENT (pagine)
ent_messages = EntMessage.query.order_by(EntMessage.date.desc()).paginate(page=page, per_page=25)
if missing_only:
interpreted_ent_ids = db.session.query(EntMessageInterpretation.message_id).distinct()
ent_query = EntMessage.query.filter(~EntMessage.id.in_(interpreted_ent_ids))
else:
ent_query = EntMessage.query
ent_messages = ent_query.order_by(EntMessage.date.desc()).paginate(page=page, per_page=25)
# Pour chaque message ENT, verifier s'il a une interpretation
ent_interp_map = {}
@ -381,6 +392,7 @@ def data_management():
outlook_interp_map=outlook_interp_map,
ent_messages=ent_messages,
ent_interp_map=ent_interp_map,
missing_only=missing_only,
excluded_list=excluded_list)

View file

@ -270,6 +270,9 @@
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<span><i class="bi bi-envelope"></i> Mails Outlook en base ({{ stats.outlook_mails }})</span>
<a class="btn btn-sm {{ 'btn-primary' if missing_only else 'btn-outline-primary' }}" href="{{ url_for('admin.data_management', non_interpretes='0' if missing_only else '1') }}">
<i class="bi bi-funnel"></i> {{ 'Afficher tous' if missing_only else 'Non interprétés uniquement' }}
</a>
</div>
{% if mails.items %}
<div class="table-responsive">
@ -309,6 +312,7 @@
{% endif %}
{% else %}
<span class="badge bg-secondary">Non interprété</span>
<br><small class="text-danger">{% if mail.from_email and mail.from_email in excluded_list %}Expéditeur exclu{% else %}Aucune interprétation créée (échec ou traitement à venir){% endif %}</small>
{% endif %}
</td>
<td>
@ -361,6 +365,9 @@
<div class="card mt-3">
<div class="card-header d-flex justify-content-between align-items-center">
<span><i class="bi bi-broadcast"></i> Messages ENT en base ({{ stats.ent_messages }})</span>
<a class="btn btn-sm {{ 'btn-primary' if missing_only else 'btn-outline-primary' }}" href="{{ url_for('admin.data_management', non_interpretes='0' if missing_only else '1') }}">
<i class="bi bi-funnel"></i> {{ 'Afficher tous' if missing_only else 'Non interprétés uniquement' }}
</a>
</div>
{% if ent_messages.items %}
<div class="table-responsive">
@ -400,6 +407,7 @@
{% endif %}
{% else %}
<span class="badge bg-secondary">Non interprété</span>
<br><small class="text-danger">{% if msg.sender_name and msg.sender_name in excluded_list %}Expéditeur exclu{% else %}Aucune interprétation créée (échec ou traitement à venir){% endif %}</small>
{% endif %}
</td>
<td>
@ -448,4 +456,4 @@
{% endif %}
</div>
</div>
{% endblock %}
{% endblock %}