Package: azubi-timesheet
SUSE Apprentices Timesheets made easyInstallationIf you just want to start right away:pip install azubi-timesheetDevelopment mode:git clone https://github.com/eliroca/azubi-timesheet.git; cd azubi-timesheetpip install -e .Contributions are welcomeSubcommandexportshould accept date without day, like this-d 10.2019Possibility to add more days with one command for vacation, etc.Raise exceptions intimesheet.pyand catch them in main, instead of exiting the programReformat code with black:https://pypi.org/project/blackImplement working hours carryover(Stundenübertrag)Update: early implementation does the job, but it can't extract the value from previous month unless:
you exported the previous month already AND opened the previous xlsx file AND Ctrl+S to save it,
so that the calculated values of all formulas are saved. Not quite ideal.Better separate the main script (azubi-timesheet.py) from a module (timesheet.py)Adding "special" days like: vacation, school; only date and comment needed for thatMethod to fill in records from json file to xlsx exported fileMethod to create file names liketimesheet_2019_10.jsontimesheet_2019_10.xlsxand implement where neededMethod to load specific json files of the given date's month and yearHow it looks likeMain help messageazubi-timesheet --help
usage: azubi-timesheet [-V] [-n] <SUBCOMMAND> ...

Keep track of your work hours. Add, delete, update records. Export and print
at the end of the month!

global arguments:
  -V, --version         show program's version number and exit
  -n, --non-interactive
                        do not ask anything, use default answers automatically

available subcommands:
  <SUBCOMMAND>
    add                 add a new record
    update              update an existing record
    delete              delete an existing record
    export              export records as .xlsx file
    config              configure the app with key=value pairs

Type <SUBCOMMAND> --help for more info.Subcommand help messageazubi-timesheet add --help
usage: azubi-timesheet add [-d DD.MM.YYYY] [-w HH:MM-HH:MM] [-b HH:MM-HH:MM]
                           [-c COMMENT] [-s]

Add a new record.

optional arguments:
  -d DD.MM.YYYY, --date DD.MM.YYYY
                        date of the record
  -w HH:MM-HH:MM, --work-hours HH:MM-HH:MM
                        begin and end time of the work day
  -b HH:MM-HH:MM, --break-time HH:MM-HH:MM
                        begin and end time of the break
  -c COMMENT, --comment COMMENT
                        comment of the record, if needed
  -s, --special-record  special records only need a date and a commentSubcommandsaddcreates a new json string and appends it to the listazubi-timesheet.py add --date 07.10.2019 --work-hours 09:00-17:30 --break-time 12:00-12:30add -sadds special records like school, vacation, sick leave, where--work-hoursor--break_timearenotnecessaryazubi-timesheet.py --non-interactive add --date 09.10.2019 --comment "Berufsschule" --special-recordupdatefinds record, updates it with the given dataazubi-timesheet.py update --date 07.10.2019 --work-hours 10:00-18:30 --break-time 13:00-13:30deleteremoves record with given dateazubi-timesheet.py delete --date 07.10.2019exportcreates anxlsxdocument from the given date'smonthandyear; day is not relevant but unfortunately still necessaryazubi-timesheet.py export --date 01.12.2019configlets you enter your name, choose where to save your records and exported documentsazubi-timesheet.py config --set "name=Elisei Roca"azubi-timesheet.py config --list
[DEFAULT]
name =
records_dir = /home/eroca/.local/lib/python3.6/site-packages/azubi_timesheet-0.9.0-py3.6.egg/azubi_timesheet/data/records
exports_dir = /home/eroca/.local/lib/python3.6/site-packages/azubi_timesheet-0.9.0-py3.6.egg/azubi_timesheet/data/exports
[user_defined]
name = Elisei Roca
exports_dir = /home/eroca/Documents/SUSE_Timesheets
records_dir =