mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2025-12-31 08:19:45 -06:00
Implement comprehensive client notes system allowing users to add internal notes about clients that are never visible to clients themselves. Notes support importance flagging, full CRUD operations, and proper access controls. Key Changes: - Add ClientNote model with user/client relationships - Create Alembic migration (025) for client_notes table - Implement full REST API with 9 endpoints - Add client_notes blueprint with CRUD routes - Create UI templates (edit page + notes section on client view) - Add importance toggle with AJAX functionality - Implement permission system (users edit own, admins edit all) Features: - Internal-only notes with rich text support - Mark notes as important for quick identification - Author tracking with timestamps - Cascade delete when client is removed - Mobile-responsive design - i18n support for all user-facing text Testing: - 24 comprehensive model tests - 23 route/integration tests - Full coverage of CRUD operations and permissions Documentation: - Complete feature guide in docs/CLIENT_NOTES_FEATURE.md - API documentation with examples - Troubleshooting section - Updated main docs index Database: - Migration revision 025 (depends on 024) - Fixed PostgreSQL boolean default value issue - 4 indexes for query performance - CASCADE delete constraint on client_id This feature addresses the need for teams to track important information about clients internally without exposing sensitive notes to client-facing interfaces or documents.
20 lines
468 B
Python
20 lines
468 B
Python
"""
|
|
Setup configuration for TimeTracker application.
|
|
This allows the app to be installed as a package for testing.
|
|
"""
|
|
|
|
from setuptools import setup, find_packages
|
|
|
|
setup(
|
|
name='timetracker',
|
|
version='3.4.0',
|
|
packages=find_packages(),
|
|
include_package_data=True,
|
|
install_requires=[
|
|
# Core requirements are in requirements.txt
|
|
# This file is mainly for making the app importable during testing
|
|
],
|
|
python_requires='>=3.11',
|
|
)
|
|
|