From d470e5a140ec09fca2f1d369c8028bf75c2cc04f Mon Sep 17 00:00:00 2001 From: Alejandro Aristizabal Date: Wed, 3 Jul 2024 12:34:56 -0500 Subject: [PATCH] Update list when annotations are loaded --- scripts/monitor/rano_monitor/dataset_browser.py | 4 ++++ scripts/monitor/rano_monitor/messages/__init__.py | 3 ++- scripts/monitor/rano_monitor/messages/annotations_loaded.py | 5 +++++ scripts/monitor/rano_monitor/widgets/summary.py | 5 ++++- 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 scripts/monitor/rano_monitor/messages/annotations_loaded.py diff --git a/scripts/monitor/rano_monitor/dataset_browser.py b/scripts/monitor/rano_monitor/dataset_browser.py index 00794cd9f..454de633f 100644 --- a/scripts/monitor/rano_monitor/dataset_browser.py +++ b/scripts/monitor/rano_monitor/dataset_browser.py @@ -5,6 +5,7 @@ import yaml from rano_monitor.messages import InvalidSubjectsUpdated from rano_monitor.messages import ReportUpdated +from rano_monitor.messages import AnnotationsLoaded from rano_monitor.utils import generate_full_report from rano_monitor.widgets.subject_details import SubjectDetails from rano_monitor.widgets.subject_list_view import SubjectListView @@ -156,6 +157,9 @@ def on_input_changed(self, event: Input.Changed) -> None: search_term = search_input.value subjects_list.update_list(search_term) + def on_annotations_loaded(self, message: AnnotationsLoaded): + subjects_list = self.query_one("#subjects-list") + subjects_list.update_list() def update_prompt(self, prompt: str): self.prompt = prompt diff --git a/scripts/monitor/rano_monitor/messages/__init__.py b/scripts/monitor/rano_monitor/messages/__init__.py index 2abb1e07f..5d88cbf2d 100644 --- a/scripts/monitor/rano_monitor/messages/__init__.py +++ b/scripts/monitor/rano_monitor/messages/__init__.py @@ -1,4 +1,5 @@ from .invalid_subject_updated import InvalidSubjectsUpdated from .report_updated import ReportUpdated +from .annotations_loaded import AnnotationsLoaded -__all__ = [InvalidSubjectsUpdated, ReportUpdated] +__all__ = [InvalidSubjectsUpdated, ReportUpdated, AnnotationsLoaded] diff --git a/scripts/monitor/rano_monitor/messages/annotations_loaded.py b/scripts/monitor/rano_monitor/messages/annotations_loaded.py new file mode 100644 index 000000000..7cd068107 --- /dev/null +++ b/scripts/monitor/rano_monitor/messages/annotations_loaded.py @@ -0,0 +1,5 @@ +from textual.message import Message + + +class AnnotationsLoaded(Message): + pass \ No newline at end of file diff --git a/scripts/monitor/rano_monitor/widgets/summary.py b/scripts/monitor/rano_monitor/widgets/summary.py index 79e4500a1..81022bc92 100644 --- a/scripts/monitor/rano_monitor/widgets/summary.py +++ b/scripts/monitor/rano_monitor/widgets/summary.py @@ -3,6 +3,7 @@ from rano_monitor.constants import REVIEW_FILENAME, REVIEWED_FILENAME from rano_monitor.messages import InvalidSubjectsUpdated from rano_monitor.messages import ReportUpdated +from rano_monitor.messages import AnnotationsLoaded from rano_monitor.utils import package_review_cases, unpackage_reviews from textual.app import ComposeResult from textual.containers import Center @@ -71,7 +72,8 @@ def update_summary(self): widgets = [] for name, val in status_percents.items(): - wname = Label(name.capitalize().replace("_", " ")) + count = status_counts[name] if name in status_counts else 0 + wname = Label(f'{name.capitalize().replace("_", " ")} ({count}/{len(report_df)})') wpbar = ProgressBar(total=1, show_eta=False) wpbar.advance(val) widget = Center(wname, wpbar, classes="pbar") @@ -105,6 +107,7 @@ async def _unpackage_reviews(self): self.notify("Annotations have been loaded") unpkg_btn.label = label unpkg_btn.disabled = False + self.post_message(AnnotationsLoaded()) async def on_button_pressed(self, event: Button.Pressed) -> None: event.stop()