Compare commits
2 Commits
f553f75462
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| aa2c08838e | |||
| d06ab9d6f0 |
55
timeTrack.py
55
timeTrack.py
@@ -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 = []
|
||||||
|
|||||||
Reference in New Issue
Block a user