Skip to content

Releases: PPeitsch/TimeTrack

v1.5.0

16 Dec 01:50

Choose a tag to compare

Added

  • Comprehensive Test Coverage: Increased test coverage from 75% to 98% (Issue #29).
    • Added test_init_db.py: 15 tests for environment parsing and database info extraction.
    • Added test_init_data.py: 8 tests for data seeding functions.
    • Added test_import_log.py: 18 tests for import routes.
    • Added test_pdf_importer.py: 19 tests for PDF parsing.
    • Expanded Excel importer tests with 15 edge cases.
    • Expanded route tests with 7 time summary edge cases.
  • Added .coveragerc configuration to exclude interactive scripts from coverage.
  • Integrated Codecov test results action for improved CI reporting.
  • Dynamic Codecov coverage badge in README.

Changed

  • Improved CI workflow with junitxml output for better test reporting.

v1.4.0

14 Dec 07:11

Choose a tag to compare

Added

  • File Import System: Implemented automatic time data import from PDF and Excel files (Issue #78).
    • New /import route for uploading and parsing time reports.
    • Added PDFImporter using pdfplumber and ExcelImporter using pandas.
    • Factory pattern for selecting appropriate importer based on file type.
    • Preview page to validate parsed data before import.
  • Added observation column to ScheduleEntry model.
  • Added Flask-Migrate support for database migrations.

v1.3.2

14 Dec 06:09

Choose a tag to compare

Added

  • Added AGENTS.md and WORKFLOW.md to provide guidelines and workflows for AI agents.

v1.2.3

22 Aug 21:43
6bf5cf0

Choose a tag to compare

Added

  • Increased test coverage for the time_log.py module from 88% to 100%.

v1.2.2

22 Aug 21:06
1cb6ece

Choose a tag to compare

Added

  • Increased test coverage for the manual_entry.py module from 72% to 98%.

v1.2.1

22 Aug 18:48
7d8a6f3

Choose a tag to compare

Fixed

  • Corrected and updated the release comparison links in CHANGELOG.md.

v1.2.0

08 Aug 01:08
5d2ac7a

Choose a tag to compare

Added

  • CRUD Management for Absence Codes:
    • Implemented a new "Settings" page at /settings/absences for full CRUD (Create, Read, Update, Delete) management of absence codes.
    • Created a set of RESTful API endpoints under /settings/api/absence-codes to support the new management interface.
    • Added a comprehensive test suite (tests/test_settings.py) with 100% code coverage for the new backend routes and logic.

Changed

  • The "Manual Entry" dropdown is now dynamically populated with the user-managed absence codes from the database, replacing the previous hardcoded list.
  • The "Calendar Log" view now fetches absence codes from the new centralized API endpoint, ensuring consistency across the application.

Fixed

  • Prevented the deletion of absence codes that are currently in use in any ScheduleEntry, ensuring data integrity.

v1.1.1

07 Aug 22:54
7de483e

Choose a tag to compare

Changed

  • Calendar Interaction Logic:
    • Users can now select and modify weekends and holidays in the "Monthly Log" calendar to log work hours on non-standard workdays.
    • The day editing modal now includes a "(Revert to Default)" option, allowing users to remove an override and restore a day to its original state (e.g., Holiday or Weekend).
    • The backend API was updated to handle explicit "Work Day" overrides and the new "Revert to Default" action, ensuring predictable and intuitive behavior.

v1.1.0

07 Aug 22:12
ff00683

Choose a tag to compare

Fixed

  • Resolved a CSS bug in the "Monthly Log" calendar where day types with multiple words (e.g., "LICENCIA MÉDICA") were unreadable due to poor color contrast.

v1.0.9

07 Aug 21:57
526a225

Choose a tag to compare

Fixed

  • Resolved a bug in the "Monthly Log" calendar where the "Edit Day Type" modal was not being populated with absence codes. This was caused by an error in the database initialization script that failed to seed the absence_codes table.
  • Corrected an asynchronous flow issue in the frontend JavaScript to ensure the modal's dropdown is populated only after the absence codes have been successfully fetched from the API.