feat: add commentary in concil prep

This commit is contained in:
2025-08-15 07:59:23 +02:00
parent c3ef5287b3
commit f438082c4c
4 changed files with 656 additions and 5 deletions

View File

@@ -272,6 +272,30 @@
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
</svg>
</div>
{# Résumé compact des valeurs spéciales #}
{% if summary.special_values_summary and summary.special_values_summary.has_special_values %}
<div class="mt-2 flex items-center space-x-1 text-xs">
<span class="text-gray-500">Valeurs spéciales:</span>
{% for special_value, data in summary.special_values_summary.global.items() %}
{% if data.count > 0 %}
{% set tooltip_content = [] %}
{% for detail in data.details %}
{% if detail.comment %}
{% set _ = tooltip_content.append(detail.element_name + ': ' + detail.comment) %}
{% else %}
{% set _ = tooltip_content.append(detail.element_name) %}
{% endif %}
{% endfor %}
<span class="inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium cursor-help"
style="background-color: {{ data.color }}20; color: {{ data.color }};"
title="{{ data.label }} ({{ data.count }}){% if tooltip_content|length > 0 %}&#10;{{ tooltip_content|join('&#10;') }}{% endif %}">
{{ special_value }} {{ data.count }}
</span>
{% endif %}
{% endfor %}
</div>
{% endif %}
</div>
</div>
@@ -392,6 +416,87 @@
</div>
{% endfor %}
</div>
{# Section Valeurs spéciales par évaluation #}
{% if summary.special_values_summary and summary.special_values_summary.by_assessment %}
<div class="mt-4">
<h6 class="text-xs font-medium text-gray-600 mb-2 flex items-center">
<svg class="w-3 h-3 text-gray-500 mr-1" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"/>
</svg>
Valeurs spéciales
</h6>
<div class="space-y-1">
{% for assessment_id, assessment_data in summary.special_values_summary.by_assessment.items() %}
<div class="flex items-center justify-between p-1.5 bg-gray-50 rounded border border-gray-100">
<span class="text-xs text-gray-700 truncate">{{ assessment_data.title }}</span>
<div class="flex items-center space-x-1">
{% for special_value, data in assessment_data.special_values.items() %}
{% if data.count > 0 %}
{% set detail_tooltip = [] %}
{% for detail in data.details %}
{% if detail.comment %}
{% set _ = detail_tooltip.append(detail.element_name + ': ' + detail.comment) %}
{% else %}
{% set _ = detail_tooltip.append(detail.element_name) %}
{% endif %}
{% endfor %}
<span class="inline-flex items-center px-1 py-0.5 rounded text-xs font-medium cursor-help"
style="background-color: {{ data.color }}15; color: {{ data.color }}; border: 1px solid {{ data.color }}30;"
title="{{ data.label }} ({{ data.count }}){% if detail_tooltip|length > 0 %}&#10;{{ detail_tooltip|join('&#10;') }}{% endif %}">
{{ special_value }} {{ data.count }}
</span>
{% endif %}
{% endfor %}
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}
{# Section Commentaires par évaluation #}
{% if summary.special_values_summary and summary.special_values_summary.comments_by_assessments and summary.special_values_summary.comments_by_assessments.has_comments %}
<div class="mt-4">
<h6 class="text-xs font-medium text-gray-600 mb-2 flex items-center">
<svg class="w-3 h-3 text-gray-500 mr-1" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd"/>
</svg>
Commentaires ({{ summary.special_values_summary.comments_by_assessments.total_comments }})
</h6>
<div class="space-y-2">
{% for assessment in summary.special_values_summary.comments_by_assessments.assessments %}
<div class="bg-amber-50 border border-amber-200 rounded p-2">
<div class="flex items-center justify-between mb-1">
<span class="text-xs font-medium text-amber-800">{{ assessment.title }}</span>
<span class="text-xs text-amber-600">{{ assessment.comments|length }} commentaire(s)</span>
</div>
<div class="space-y-1">
{% for comment in assessment.comments %}
<div class="bg-white border border-amber-100 rounded p-1.5">
<div class="flex-1 min-w-0">
{# Ligne 1: Label et description #}
<div class="text-xs font-medium text-gray-800">
{{ comment.element_label }}{% if comment.element_description %} • {{ comment.element_description }}{% endif %}
</div>
{# Ligne 2: Valeur et commentaire #}
<div class="text-xs text-amber-700 mt-0.5 flex items-center">
{% if comment.value %}
<span class="inline-flex items-center px-1 py-0.5 rounded text-xs font-medium mr-2 bg-orange-100 text-orange-800">
{{ comment.value }}
</span>
{% endif %}
<span class="flex-1">{{ comment.comment }}</span>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}
</div>
{% endif %}