add function report_by_date for specific date to interactive menu
This commit is contained in:
53
timeTrack.py
53
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 = []
|
||||
|
||||
Reference in New Issue
Block a user