Giter VIP home page Giter VIP logo

kimai.jl's People

Contributors

pb866 avatar

Watchers

 avatar

kimai.jl's Issues

Handle sick leave within vacation

Ensure that if sick leave occurs within a defined vacation, it is counted as sick leave only and not as vacation.

  • in a first step for v0.1, it is enough to add a description in the documentation, not to define sick and vacation days in the same period
  • later, make sure sick days are counted before vacation days and no double counts occur
    • Update documentation

Add Documentation

Add a README. Decide, whether a wiki is necessary for more detailed explanations.

Refactor calculation of leave days

  • Use a custom calendar from BusinessDays to define Vacation and SickLeave.
  • Define a Set of vacation and sick days to overwrite the isholiday function from BusinessDays.
    • The Set should be redefined, when new leave days are added and automatically recognised by the isholiday function
  • Refactor load_offdays using the new calendars for vacation and sick days.
  • If the Xmas rule is applied, the full vacation and sick leave version with tables should be mandatory as it is necessary to know, whether Xmas and NYE are vacation or work days. Just an integer number does not provide enough information.
  • This implementation will have the advantage of being able to extract for each day, whether it is a work day, weekend, vacation or holiday. A function should be written to return the type of day for a given Date.
    • This can be used to analyse previous periods, after kimai data has been loaded.

Allow a more detailed analysis of Kimai time logs

Either allow to restrict to a specified time period in the Kimai history (through the config.yaml or by kwargs) or introduce switches for compact and detailed output of the show function, possibly several levels of complexity (minimal out, full stats, additionally monthly stats).

Check kwargs

Implement control measures to check for unused or wrong kwargs. As a bonus warn of kwargs manipulating the same value, e.g. setting the balance directly or adding/subtracting to/from a balance.

Save current Kimai session

Write a function save to save the current Kimai session and continue in the future. Start or continue a history of the balance, the vacation and sick leave.

  • Save stop time of last Kimai entry to continue from there later (don't use stop date, may be corrupted from vacation)
  • Ensure balance of new sessions that start with a fraction of a vacation are counted as overtime
  • Ensure correct balances of work, vacation and sick days of current and previous balances (no double counts)
  • Delete tmp data on save

Ensure break times

Ensure break times are taken according to German law. Shorten work times, if breaks were not taken correctly. Ignore minimum length of 15 minutes for break times.

Summarise stats of previous sick leave in sick leave data

Use the first row of the sick leave DataFrame to summarise previous sick leave (total number of absence days, start/stop either of Kimai history or minimum span, in which sick leave occurred, remarks that labels sick history).

Allow comments in input files

Allow the possibility to add comments in the input data files of vacation and sick leave by specifying a character, e.g. #, in CSV.read.

Use github actions and CD/CI

Use continuous development/integration for current project. Setup tool chain and a github actions script. Define workflows and rules how to commits.

Add exception rule for Christmas and New Year's Eve

  • Make sure Christmas and New Year's Eve are counted as 0.5 workdays and adjust work balance
  • Make sure vacation is properly counted
  • Set behaviour with flag in the config.yaml or through kwargs
  • Ensure correct warnings about vacation balance at the end of the year

Define unit tests

Use unit tests to ensure quality of code.
Use code coverage to check coverage of tests.
Integrate with #17.

Show stats

Add a function show to list the statistics of the Kimai time log:

  • work balance as hh:mm and float in hours
  • vacation taken/remaining
    • Mark hangover balance
  • sick leave
  • detailed and compressed stats
  • comparable to kimbal

Refactor data storage

  • Check, whether balance can be directly saved in params["Recover"] rather than "tmp"
  • Or should "Recover" be preserved for the length of the session?
  • Otherwise save "balance" and "deadline" in params["tmp"]["vacation"]
  • Save vacation and sick leave data sets (and calendars?) in "Recover" for next session and restore at the beginning of a session
  • Rename "tmp" to "Recover" or alike

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.