diff options
| author | matin <matin.kaufmann@gmail.com> | 2025-09-11 23:09:42 +0200 |
|---|---|---|
| committer | matin <matin.kaufmann@gmail.com> | 2025-09-11 23:09:42 +0200 |
| commit | 0f55c85af88578e6cc01d1e9a44d39ee6453722a (patch) | |
| tree | 0b41b9138a3aa0f9afbae7242ab935b2c3be0943 | |
| parent | c7fc1d523a80c2eddacadab97b195cbe60ff83e0 (diff) | |
Anzeige der angerechneten Zeitraeume
| -rw-r--r-- | calendar_gui.py | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/calendar_gui.py b/calendar_gui.py index 9d89b7e..f5e015b 100644 --- a/calendar_gui.py +++ b/calendar_gui.py @@ -186,28 +186,28 @@ class CalendarManagerGUI(QMainWindow): menubar.setFont(self.app_font) # File menu - file_menu = menubar.addMenu('File') + file_menu = menubar.addMenu('Start') # Save action - save_action = QAction('Save', self) + save_action = QAction('Speichern', self) save_action.setShortcut('Ctrl+S') save_action.triggered.connect(self.save_file) file_menu.addAction(save_action) # Load action - load_action = QAction('Load', self) - load_action.setShortcut('Ctrl+O') + load_action = QAction('Laden', self) + load_action.setShortcut('Ctrl+L') load_action.triggered.connect(self.load_file) file_menu.addAction(load_action) # Clear action - clear_action = QAction('Clear', self) + clear_action = QAction('Einträge löschen', self) clear_action.setShortcut('Ctrl+N') clear_action.triggered.connect(self.clear_entries) file_menu.addAction(clear_action) # Exit action - exit_action = QAction('Exit', self) + exit_action = QAction('Beenden', self) exit_action.setShortcut('Ctrl+Q') exit_action.triggered.connect(self.close) file_menu.addAction(exit_action) @@ -276,8 +276,8 @@ class CalendarManagerGUI(QMainWindow): # Events table self.events_table = QTableWidget() self.events_table.setFont(self.app_font) - self.events_table.setColumnCount(6) # ID (hidden), Start, End, Keyword, Commentary, Actions - self.events_table.setHorizontalHeaderLabels(["ID", "Anfangsdatum", "Enddatum", "Art", "Kommentar", "Aktionen"]) + self.events_table.setColumnCount(7) # ID (hidden), Start, End, Keyword, RelevantTime, Commentary, Actions + self.events_table.setHorizontalHeaderLabels(["ID", "Anfangsdatum", "Enddatum", "Art", "Angerechneter Zeitraum", "Kommentar", "Aktionen"]) self.events_table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.events_table.horizontalHeader().setFont(self.app_font) self.events_table.setColumnHidden(0, True) # Hide ID column @@ -374,9 +374,31 @@ class CalendarManagerGUI(QMainWindow): self.events_table.setItem(i, 2, QTableWidgetItem(end_date_text)) self.events_table.setItem(i, 3, QTableWidgetItem(entry.keyword)) + # Relevant accounted time based on corrected dates + relevant_text = "" + if entry.corrected_start_date and entry.corrected_end_date: + start_dt = entry.corrected_start_date + end_dt = entry.corrected_end_date + if end_dt < start_dt: + start_dt, end_dt = end_dt, start_dt + delta_days = (end_dt.date() - start_dt.date()).days + 1 + # Determine if less than 3 months using relativedelta + rd = relativedelta(end_dt.date(), start_dt.date()) + total_months = rd.years * 12 + rd.months + if total_months < 3: + relevant_text = f"{delta_days} Tage" + else: + # Months and remaining days + # Compute month/day split precisely + month_start = start_dt.date() + month_split = month_start + relativedelta(months=+total_months) + remaining_days = (end_dt.date() - month_split).days + 1 if end_dt.date() >= month_split else delta_days + relevant_text = f"{total_months} Monate, {max(0, remaining_days)} Tage" + self.events_table.setItem(i, 4, QTableWidgetItem(relevant_text)) + # Commentary commentary_text = getattr(entry, 'commentary', "") or "" - self.events_table.setItem(i, 4, QTableWidgetItem(commentary_text)) + self.events_table.setItem(i, 5, QTableWidgetItem(commentary_text)) # Action buttons actions_widget = QWidget() @@ -396,7 +418,7 @@ class CalendarManagerGUI(QMainWindow): actions_layout.addWidget(delete_button) actions_widget.setLayout(actions_layout) - self.events_table.setCellWidget(i, 5, actions_widget) + self.events_table.setCellWidget(i, 6, actions_widget) def save_file(self): """Save calendar entries to a JSON file""" |
