mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-04-24 21:49:51 -05:00
feat: Add comprehensive issue/bug tracking system
Implement a complete issue management system with client portal integration and internal admin interface for tracking and resolving client-reported issues. Features: - New Issue model with full lifecycle management (open, in_progress, resolved, closed, cancelled) - Priority levels (low, medium, high, urgent) with visual indicators - Issue linking to projects and tasks - Create tasks directly from issues - Client portal integration for issue reporting and viewing - Internal admin routes for issue management, filtering, and assignment - Comprehensive templates for both client and admin views - Status filtering and search functionality - Issue assignment to internal users - Automatic timestamp tracking (created, updated, resolved, closed) Client Portal: - Clients can report new issues with project association - View all issues with status filtering - View individual issue details - Submit issues with optional submitter name/email Admin Interface: - List all issues with advanced filtering (status, priority, client, project, assignee, search) - View, edit, and delete issues - Link issues to existing tasks - Create tasks from issues - Update issue status, priority, and assignment - Issue statistics dashboard Technical: - Added Issue model with relationships to Client, Project, Task, and User - New issues blueprint for internal management - Extended client_portal routes with issue endpoints - Updated model imports and relationships - Added navigation links in base templates - Version bump to 4.6.0 - Code cleanup in docker scripts and schema verification
This commit is contained in:
@@ -96,8 +96,14 @@ def verify_and_fix_table(engine, inspector, model_class, dialect):
|
||||
|
||||
# Check if table exists
|
||||
if table_name not in inspector.get_table_names():
|
||||
print(f"⚠ Table '{table_name}' does not exist (will be created by migrations)")
|
||||
return 0
|
||||
print(f"⚠ Table '{table_name}' does not exist, creating it...")
|
||||
try:
|
||||
# Create the table
|
||||
model_class.__table__.create(engine, checkfirst=True)
|
||||
print(f" ✓ Created table '{table_name}'")
|
||||
except Exception as e:
|
||||
print(f" ✗ Failed to create table '{table_name}': {e}")
|
||||
return 0
|
||||
|
||||
# Get expected columns from model
|
||||
expected_columns = {}
|
||||
|
||||
Reference in New Issue
Block a user