From d06ab9d6f0099716c4127280978a2e6d729a8173 Mon Sep 17 00:00:00 2001
From: anima
Date: Tue, 29 Jun 2021 05:34:39 +0200
Subject: [PATCH] add function report_by_date for specific date to interactive
menu
---
timeTrack.py | 53 ++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 45 insertions(+), 8 deletions(-)
diff --git a/timeTrack.py b/timeTrack.py
index 6d42917..f87bbf4 100644
--- a/timeTrack.py
+++ b/timeTrack.py
@@ -33,6 +33,12 @@ class TimeTrack:
format='%(asctime)s - %(process)d-%(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
+ if os.name == 'posix':
+ logging.debug('Unix/Linux system detected')
+ self.LINUX = True
+ else:
+ logging.debug('Winwos System detected')
+
self.db_setup()
self.load_config()
@@ -40,11 +46,9 @@ class TimeTrack:
#==============
### Check OS and clear screen
def clear_screen(self):
- if os.name == 'posix':
- logging.debug('Unix/Linux system detected')
+ if self.LINUX:
_ = os.system('clear')
else:
- logging.debug('Winwos System detected')
_ = os.system('cls')
### Loads or creates a config file
@@ -547,7 +551,8 @@ class TimeTrack:
'Was willst du tun?',
'[1] Zeiterfassung starten',
'[2] heutiger Report',
- '[3] Benutzerverwaltung',
+ '[3] Reports',
+ '[4] Benutzerverwaltung',
'[0] Programm verlassen'
]
userinput = self.userchoise(printtext, 4)
@@ -560,14 +565,42 @@ class TimeTrack:
self.report_by_day(DETAIL=True)
input()
elif userinput == 3:
- self.interactive_usermanagment()
+ self.interactive_reports()
elif userinput == 4:
- print('commig soon ...')
- input()
+ self.interactive_usermanagment()
else:
exit()
self.start_interactive_mode()
+ ### Reports menu
+ def interactive_reports(self):
+ self.clear_screen()
+ printtext = [
+ '==> Reports für {}'.format(self.USERNAME),
+ 'Welcher Report soll angezeigt werden?',
+ '[1] Tages Report von [Datum]',
+ '[0] abbrechen'
+ ]
+ userinput = self.userchoise(printtext, 2)
+
+ if userinput == 1:
+ valid = False
+ while not valid:
+ self.clear_screen()
+ print('Report für welches Datum soll angezeigt werden?')
+ print('[0] für abbruch')
+ userdate = input("Datum: [yyyy-mm-dd]:")
+ if userdate == 0:
+ break
+ else:
+ try:
+ date = datetime.datetime.strptime(userdate, "%Y-%m-%d")
+ valid = True
+ except:
+ pass
+ self.report_by_day(date.date())
+
+ ### Usermanagment menu
def interactive_usermanagment(self):
self.clear_screen()
printtext = [
@@ -605,7 +638,6 @@ class TimeTrack:
printtext.append('[0] abbrechen')
userid = self.userchoise(printtext, count)
self.delete_user(users[userid - 1][0])
- pass
## Reports
#=========
@@ -614,6 +646,11 @@ class TimeTrack:
if not USER:
USER = self.USERID
timedata = self.get_time_entry(DAY=DATE, USERID=USER)
+ if timedata == 0:
+ print("Es wurden keine Zeiteinträge für den angegeben Tag gefunden")
+ logging.debug('No time entries for date: '.format(DATE))
+ input()
+ return 1
STARTTIMES = []
ENDTIMES = []