Skip to main content

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

Project description

SUSE Apprentices Timesheets made easy

Installation

  • If you just want to start right away: pip install azubi-timesheet
  • Development mode:
    1. git clone https://github.com/eliroca/azubi-timesheet.git; cd azubi-timesheet
    2. pip install -e .

Contributions are welcome

  • Subcommand export should accept date without day, like this -d 10.2019
  • Possibility to add more days with one command for vacation, etc.
  • Raise exceptions in timesheet.py and catch them in main, instead of exiting the program
  • Reformat code with black: https://pypi.org/project/black
  • Implement 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 that
  • Method to fill in records from json file to xlsx exported file
  • Method to create file names like timesheet_2019_10.json timesheet_2019_10.xlsx and implement where needed
  • Method to load specific json files of the given date's month and year

How it looks like

Main help message

azubi-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 message

azubi-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 comment

Subcommands

  • add creates a new json string and appends it to the list
azubi-timesheet.py add --date 07.10.2019 --work-hours 09:00-17:30 --break-time 12:00-12:30
  • add -s adds special records like school, vacation, sick leave, where --work-hours or --break_time are not necessary
azubi-timesheet.py --non-interactive add --date 09.10.2019 --comment "Berufsschule" --special-record
  • update finds record, updates it with the given data
azubi-timesheet.py update --date 07.10.2019 --work-hours 10:00-18:30 --break-time 13:00-13:30
  • delete removes record with given date
azubi-timesheet.py delete --date 07.10.2019
  • export creates an xlsx document from the given date's month and year; day is not relevant but unfortunately still necessary
azubi-timesheet.py export --date 01.12.2019
  • config lets you enter your name, choose where to save your records and exported documents
azubi-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 =

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

azubi-timesheet-0.9.1.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

azubi_timesheet-0.9.1-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file azubi-timesheet-0.9.1.tar.gz.

File metadata

  • Download URL: azubi-timesheet-0.9.1.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.6.9

File hashes

Hashes for azubi-timesheet-0.9.1.tar.gz
Algorithm Hash digest
SHA256 73af908f4cf77c809733979b288b983170958338d59c7618724f9d34cd0661df
MD5 a4bf8cc4dfb3037507407da5e1dddb58
BLAKE2b-256 4f576f3e4b5152566ea94f175c907cd3672c5bb22537e98cad6cfcfda013d342

See more details on using hashes here.

File details

Details for the file azubi_timesheet-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: azubi_timesheet-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.6.9

File hashes

Hashes for azubi_timesheet-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9be75f00efa73eb24521d28c1559f99bfbf24517f787b9b40a0c83e66895d242
MD5 e28ac36d5dbabb17b65a5345ed5a929c
BLAKE2b-256 8baf68a2b80bad767e3183171a0650db3b74f0a153d893118b4b22f05f9e87a7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page