From 86d5605c8206355c5adf8cd26b9c4422462a3f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=20Lis=C3=A9?= Date: Mon, 18 Nov 2024 20:52:48 -0800 Subject: [PATCH] 255: Fix description field as well as better output for the pdf generation. --- epictrack-api/setup.cfg | 2 +- .../reports/anticipated_schedule_report.py | 7 ++++++- .../src/api/reports/report_factory.py | 11 +++++++---- .../anticipated_schedule.docx | Bin 34939 -> 35520 bytes 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/epictrack-api/setup.cfg b/epictrack-api/setup.cfg index ba8b4fc31..3cc38151c 100644 --- a/epictrack-api/setup.cfg +++ b/epictrack-api/setup.cfg @@ -71,7 +71,7 @@ notes=FIXME,XXX,TODO ignored-modules=flask_sqlalchemy,sqlalchemy,SQLAlchemy,alembic,scoped_session ignored-classes=scoped_session min-similarity-lines=15 -disable=C0301,W0511, R0917, C0411, R1710, E1101, W4904, R0914, R1702 +disable=C0301,W0511, R0917, C0411, R1710, E1101, W4904, R0914, R1702, R0912 good-names=f,id,k,v [isort] diff --git a/epictrack-api/src/api/reports/anticipated_schedule_report.py b/epictrack-api/src/api/reports/anticipated_schedule_report.py index 63f75639b..106f8a573 100644 --- a/epictrack-api/src/api/reports/anticipated_schedule_report.py +++ b/epictrack-api/src/api/reports/anticipated_schedule_report.py @@ -66,7 +66,8 @@ def __init__(self, filters, color_intensity): "next_pecp_short_description", "milestone_type", "category_type", - "event_name" + "event_name", + "notes" ] group_by = "phase_name" template_name = "anticipated_schedule.docx" @@ -272,6 +273,7 @@ def generate_report(self, report_date, return_type): item_dict = item._asdict() item_dict['work_issues'] = work_issues works_list.append(item_dict) + item_dict['notes'] = "" # go through all the work issues, find the update and add the description to the issue for issue in work_issues: @@ -289,6 +291,9 @@ def generate_report(self, report_date, return_type): for work_issue in item_dict['work_issues']: if work_issue.id == issue.id: work_issue.description = work_issue_updates.description + current_app.logger.debug(f"----Work title: {work_issue.title}") + current_app.logger.debug(f"----Work description: {work_issue.description}") + item_dict['notes'] += f"{work_issue.title}: {work_issue.description} " data = self._format_data(works_list, self.report_title) data = self._update_staleness(data, report_date) diff --git a/epictrack-api/src/api/reports/report_factory.py b/epictrack-api/src/api/reports/report_factory.py index eb78360fe..c8cb426d6 100644 --- a/epictrack-api/src/api/reports/report_factory.py +++ b/epictrack-api/src/api/reports/report_factory.py @@ -36,10 +36,13 @@ def _format_data(self, data, report_title=None): excluded_items = self.filters["exclude"] if report_title == "Anticipated EA Referral Schedule": for item in data: - obj = { - k: (item[k] if k != "work_issues" else self._deserialize_work_issues(item[k])) - for k in self.data_keys if k not in excluded_items - } + obj = {} + for k in self.data_keys: + if k not in excluded_items: + if k == "work_issues": + obj[k] = self._deserialize_work_issues(item[k]) + else: + obj[k] = item[k] if self.group_by: obj["sl_no"] = len(formatted_data[obj.get(self.group_by)]) + 1 formatted_data[obj.get(self.group_by)].append(obj) diff --git a/epictrack-api/src/api/reports/report_templates/anticipated_schedule.docx b/epictrack-api/src/api/reports/report_templates/anticipated_schedule.docx index 91f7486b16f0c0bd479d19858404857a0f186724..bf2234313eb3c57bf19f5054f76b8917d9677e03 100644 GIT binary patch delta 18248 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 DS7E>J delta 17688 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 JlWYd50RXX(>Sq7|