Fix grouping by version

This commit is contained in:
Кокос Артем Николаевич
2026-01-21 10:15:48 +07:00
parent 86041df76c
commit 9b28bf21e7
5 changed files with 9 additions and 8 deletions

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "redmine-reporter" name = "redmine-reporter"
version = "1.0.0" version = "0.1.1"
description = "Redmine time-entry based issue reporter for internal use" description = "Redmine time-entry based issue reporter for internal use"
readme = "README.md" readme = "README.md"
authors = [{ name = "Artem Kokos", email = "artem-kokos@mail.ru" }] authors = [{ name = "Artem Kokos", email = "artem-kokos@mail.ru" }]

View File

@@ -1 +1 @@
__version__ = "1.0.0" __version__ = "0.1.1"

View File

@@ -2,6 +2,7 @@ from typing import List, Optional, Dict, Tuple
from redminelib import Redmine from redminelib import Redmine
from redminelib.resources import Issue from redminelib.resources import Issue
from .config import Config from .config import Config
from .utils import get_version
def fetch_issues_with_spent_time(from_date: str, to_date: str) -> Optional[List[Tuple[Issue, float]]]: def fetch_issues_with_spent_time(from_date: str, to_date: str) -> Optional[List[Tuple[Issue, float]]]:
@@ -51,6 +52,7 @@ def fetch_issues_with_spent_time(from_date: str, to_date: str) -> Optional[List[
total_hours = spent_time.get(issue.id, 0.0) total_hours = spent_time.get(issue.id, 0.0)
result.append((issue, total_hours)) result.append((issue, total_hours))
# Сортируем по проекту (Redmine API уже сортирует, но для надёжности) # Сортируем по (проект, версия)
result.sort(key=lambda x: str(x[0].project)) result.sort(key=lambda x: (str(x[0].project), get_version(x[0])))
return result return result

View File

@@ -1,5 +1,6 @@
from typing import List, Tuple from typing import List, Tuple
from redminelib.resources import Issue from redminelib.resources import Issue
from .utils import get_version
STATUS_TRANSLATION = { STATUS_TRANSLATION = {
@@ -15,10 +16,6 @@ STATUS_TRANSLATION = {
} }
def get_version(issue: Issue) -> str:
return str(getattr(issue, 'fixed_version', '<N/A>'))
def hours_to_human(hours: float) -> str: def hours_to_human(hours: float) -> str:
if hours <= 0: if hours <= 0:
return "" return ""

View File

@@ -0,0 +1,2 @@
def get_version(issue) -> str:
return str(getattr(issue, 'fixed_version', '<N/A>'))