Merged
Conversation
- Ensure Task View dropdown shows correct options and preserves selected state - Normalize dropdown/filter markup across tasks, clients, projects, reports, timer - Update routes to pass/handle filter params and template context - Align styles for dropdown spacing/alignment; improve mobile behavior - Keep base layout consistent for shared components
fix(tasks,ui): correct Task View dropdown behavior and unify filter UI
Use GET route `timer.start_timer_for_project` instead of POST-only `timer.start_timer` in task and project templates. This fixes “405 Method Not Allowed” when starting a timer from /tasks and /tasks/<id>, and from the project view.
fix(timer): resolve 405 when starting a timer from tasks/project views
- Update app/templates/tasks/create.html and app/templates/tasks/edit.html - Render project options as "Project (Client)" for clearer selection - No backend changes required
…nSelector feat(tasks): show client name next to project in task forms
…; polish Admin UI Add app/utils/backup.py with create_backup/restore_backup Include DB dump (SQLite file or pg_dump custom), settings.json, uploads/, manifest.json (incl. alembic_revision) Use local-time timestamps in filenames and metadata PostgreSQL: call pg_dump/pg_restore with host/port/user/db and PGPASSWORD Restore runs migrations to head for older data compatibility Admin /admin/backup now generates and downloads a .zip archive New /admin/restore (template: templates/admin/restore.html) for uploading and restoring backups Refresh admin dashboard visuals (hero header, hover-lift cards, soft buttons), keep color scheme Remove “System Overview” card from dashboard CLI Add flask backup_create and flask backup_restore <archive.zip> Docker Install PostgreSQL client tools; switch to PGDG postgresql-client-16 to match server v16 Docs/Config No schema changes; retains existing settings and migrations Notes: Requires pg_dump/pg_restore inside the app image (now included) Backups saved under project-root/backups and streamed to user on demand
feat(backup): add robust backup/restore with migration-aware restores…
models/user: add nullable full_name and display_name property (fallback to username) migrations: add 002_add_user_full_name to introduce users.full_name auth/profile: show and allow editing full_name; persist on POST templates: use display_name across navbar, dashboard greeting, tasks (list/view/edit/my/overdue), projects view, reports (user/project), invoices (creator and generate-from-time), and admin (dashboard/users) keep username where appropriate (e.g., read-only admin form field) reports: aggregate/group by display_name in summaries CSV export writes display_name instead of username projects: get_user_totals returns display names when available main/dashboard: replace inline Jinja in script with data attribute flag to satisfy linter tasks/view: remove Jinja desc() usage; iterate over pre-ordered time_entries from route and slice to 5 fixes jinja2 UndefinedError: 'desc' is undefined
feat: add real name support and fix task detail error
- New route: GET /reports/tasks - Lists tasks with status "done" completed within the selected date range - Filters: project_id, user_id, start_date, end_date (defaults to last 30 days) - Aggregates hours per task from matching TimeEntry records - Shows assignee, completion date, total hours, and entry count per task - UI: new template templates/reports/task_report.html with filters, summary cards, and results table - Navigation: add “Finished Tasks Report” link under Project Reports on templates/reports/index.html - Consistent styling and behavior with existing project/user reports - No schema changes; login required
feat(reports): add Finished Tasks report with per-task hours and filters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.