summaryrefslogtreecommitdiff
path: root/calendar_gui.py
diff options
context:
space:
mode:
authormatin <matin.kaufmann@gmail.com>2025-09-11 23:09:42 +0200
committermatin <matin.kaufmann@gmail.com>2025-09-11 23:09:42 +0200
commit0f55c85af88578e6cc01d1e9a44d39ee6453722a (patch)
tree0b41b9138a3aa0f9afbae7242ab935b2c3be0943 /calendar_gui.py
parentc7fc1d523a80c2eddacadab97b195cbe60ff83e0 (diff)
Anzeige der angerechneten Zeitraeume
Diffstat (limited to 'calendar_gui.py')
-rw-r--r--calendar_gui.py42
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"""