2 Commits

Author SHA1 Message Date
aa2c08838e fix version number in dev branch 2021-06-29 06:23:43 +02:00
d06ab9d6f0 add function report_by_date for specific date to interactive menu 2021-06-29 05:34:39 +02:00

View File

@@ -3,7 +3,7 @@
# #
# timeTrack.py # timeTrack.py
# by 4nima # by 4nima
# v.2.1.5 # v.2.2.0a
# #
######################### #########################
# simple time tracking with database # simple time tracking with database
@@ -33,6 +33,12 @@ class TimeTrack:
format='%(asctime)s - %(process)d-%(levelname)s: %(message)s', format='%(asctime)s - %(process)d-%(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%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.db_setup()
self.load_config() self.load_config()
@@ -40,11 +46,9 @@ class TimeTrack:
#============== #==============
### Check OS and clear screen ### Check OS and clear screen
def clear_screen(self): def clear_screen(self):
if os.name == 'posix': if self.LINUX:
logging.debug('Unix/Linux system detected')
_ = os.system('clear') _ = os.system('clear')
else: else:
logging.debug('Winwos System detected')
_ = os.system('cls') _ = os.system('cls')
### Loads or creates a config file ### Loads or creates a config file
@@ -547,7 +551,8 @@ class TimeTrack:
'Was willst du tun?', 'Was willst du tun?',
'[1] Zeiterfassung starten', '[1] Zeiterfassung starten',
'[2] heutiger Report', '[2] heutiger Report',
'[3] Benutzerverwaltung', '[3] Reports',
'[4] Benutzerverwaltung',
'[0] Programm verlassen' '[0] Programm verlassen'
] ]
userinput = self.userchoise(printtext, 4) userinput = self.userchoise(printtext, 4)
@@ -560,14 +565,42 @@ class TimeTrack:
self.report_by_day(DETAIL=True) self.report_by_day(DETAIL=True)
input() input()
elif userinput == 3: elif userinput == 3:
self.interactive_usermanagment() self.interactive_reports()
elif userinput == 4: elif userinput == 4:
print('commig soon ...') self.interactive_usermanagment()
input()
else: else:
exit() exit()
self.start_interactive_mode() 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): def interactive_usermanagment(self):
self.clear_screen() self.clear_screen()
printtext = [ printtext = [
@@ -605,7 +638,6 @@ class TimeTrack:
printtext.append('[0] abbrechen') printtext.append('[0] abbrechen')
userid = self.userchoise(printtext, count) userid = self.userchoise(printtext, count)
self.delete_user(users[userid - 1][0]) self.delete_user(users[userid - 1][0])
pass
## Reports ## Reports
#========= #=========
@@ -614,6 +646,11 @@ class TimeTrack:
if not USER: if not USER:
USER = self.USERID USER = self.USERID
timedata = self.get_time_entry(DAY=DATE, USERID=USER) 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 = [] STARTTIMES = []
ENDTIMES = [] ENDTIMES = []