diff --git a/scrutiny/projects/templates/projects/date_export.html b/scrutiny/projects/templates/projects/date_export.html
index 0ee2510..798a4e9 100644
--- a/scrutiny/projects/templates/projects/date_export.html
+++ b/scrutiny/projects/templates/projects/date_export.html
@@ -1,39 +1,21 @@
- Nouveautés
-
-
- {% spaceless %}
- {% for issue in issues %}
- {% if issue.info.issue_type == 'NEW' %}
+ {% regroup issues by info.issue_type as issue_types %}
+ {% for issue_type, sub_issues in issue_types %}
+ {% if issue_type and issue_type != 'TECH' %}
+ {% if issue_type == 'NEW' %}
+ Nouveautés
+ {% elif issue_type == 'BUGFIX' %}
+ Corrections
+ {% elif issue_type == 'DEV' %}
+ Développement
+ {% endif %}
+
+ {% for issue in sub_issues %}
- {% if issue.info.wording %}{{ issue.info.wording }}{% else %}{{ issue.subject }} (#{{ issue.id }}){% endif %}
- {% endif %}
- {% endfor %}
- {% endspaceless %}
-
-
- Corrections
-
-
- {% spaceless %}
- {% for issue in issues %}
- {% if issue.info.issue_type == 'BUGFIX' %}
- - {% if issue.info.wording %}{{ issue.info.wording }}{% else %}{{ issue.subject }} (#{{ issue.id }}){% endif %}
- {% endif %}
- {% endfor %}
- {% endspaceless %}
-
-
- Développement
-
-
- {% spaceless %}
- {% for issue in issues %}
- {% if issue.info.issue_type == 'DEV' %}
- - {% if issue.info.wording %}{{ issue.info.wording }}{% else %}{{ issue.subject }} (#{{ issue.id }}){% endif %}
- {% endif %}
- {% endfor %}
- {% endspaceless %}
-
+ {% endfor %}
+
+ {% endif %}
+ {% endfor %}
diff --git a/scrutiny/projects/views.py b/scrutiny/projects/views.py
index 418b957..6fba191 100644
--- a/scrutiny/projects/views.py
+++ b/scrutiny/projects/views.py
@@ -12,7 +12,7 @@ from django.views.generic.base import TemplateView
from django.views.generic.detail import DetailView
from .forms import IssueInfoForm
-from .models import InstalledService, InstalledVersion, IssueInfo, Module, Project
+from .models import ISSUE_TYPES, InstalledService, InstalledVersion, IssueInfo, Module, Project
from .utils import CommitAndIssues, Issue, decorate_commit_line, get_issue_deployment_status
@@ -222,8 +222,14 @@ class IssuesMixin:
issues[int(info.issue_id)].info = info
issues = list(issues.values())
- issues.sort(key=lambda x: int(x.id))
- issues.sort(key=lambda x: sorted(x.modules.keys()))
+ issue_types = [x[0] for x in ISSUE_TYPES]
+ issues.sort(
+ key=lambda x: (
+ issue_types.index(x.info.issue_type) if hasattr(x, 'info') and x.info.issue_type else 42,
+ sorted(x.modules.keys()),
+ int(x.id),
+ )
+ )
return issues