@@ -46,10 +61,34 @@
/
+
+
+
{% macro project_card(repo, archived=False) %}
{% set full = repo.full_name %}
@@ -107,9 +159,62 @@
{% endif %}
+ {% if repo.activity %}
+
+ {% if repo.activity.closed or repo.activity.moved %}
+ 📈 {{ repo.activity.closed }} fermée(s) · {{ repo.activity.moved }} déplacement(s) cette semaine
+ {% elif repo.activity.idle_days is not none and repo.activity.idle_days > 7 %}
+ 💤 aucune activité kanban depuis {{ repo.activity.idle_days }} j
+ {% endif %}
+
+ {% endif %}
{% endmacro %}
+ {% macro project_row(repo, archived=False) %}
+ {% set full = repo.full_name %}
+ {% set st = stats.get(full, {}) %}
+
+ | {{ repo.name }} |
+ {{ repo.owner.login }} |
+ {{ repo.open_issues_count or 0 }} |
+ {{ st.get('in_progress', 0) + st.get('qa', 0) + st.get('review', 0) }} |
+ {% if repo.next_milestone %}🎯 {{ repo.next_milestone.title }}{% if repo.next_milestone.late %} ⚠️{% endif %}{% else %}—{% endif %} |
+ {% if repo.health_dot %}{% else %}—{% endif %} |
+ {{ repo.updated_at[:10] }} |
+
+ {% endmacro %}
+
+ {% macro project_table(repos, tab_name, archived=False) %}
+
+
+
+
+ | Projet |
+ Propriétaire |
+ Ouvertes |
+ En vol |
+ Prochain jalon |
+ Santé |
+ Dernière activité |
+
+
+
+ {% for repo in repos %}{{ project_row(repo, archived) }}{% endfor %}
+
+
+ {% if not repos %}
+
Aucun projet dans cette vue.
+ {% endif %}
+
+ {% endmacro %}
+
+
⭐ Épinglés
@@ -138,6 +243,14 @@
🗄️ Aucun projet archivé. L'archivage se fait dans Gitea (Réglages du dépôt).
{% endif %}
+
+
+
+
+ {{ project_table(active_repos, 'active') }}
+ {{ project_table(inactive_repos, 'inactive') }}
+ {{ project_table(archived_repos, 'archived', archived=True) }}
+