mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-05-22 14:20:47 -05:00
acd30bc015
Major Features: - Complete quote management system with CRUD operations - Quote items management with dynamic add/remove functionality - Discount system (percentage and fixed amount) - Payment terms integration with invoice creation - Approval workflow with status tracking - Quote attachments with client visibility control - Quote templates for reusable configurations - Quote versioning for revision history - Email notifications for quote lifecycle events - Scheduled tasks for expiring quote reminders - Client portal integration for quote viewing/acceptance - Bulk actions for quote management - Analytics dashboard for quote metrics UI/UX Improvements: - Consistent table layout matching projects/clients pages - Professional quote view page with improved action buttons - Enhanced create/edit forms with organized sections - Dynamic line items management in quote forms - PDF template editor accessible via admin menu - PDF submenu under Admin with Invoice and Quote options - Fixed admin menu collapse when opening nested dropdowns PDF Template System: - Quote PDF layout editor with visual design tools - Separate preview route for quote PDF templates - Template reset functionality - Support for multiple page sizes (A4, Letter, Legal, A3, A5, Tabloid) Bug Fixes: - Fixed 405 Method Not Allowed error on quote PDF save - Fixed UnboundLocalError with translation function shadowing - Fixed quote preview template context (quote vs invoice) - Updated template references from invoice to quote variables Database: - Added 9 Alembic migrations for quote system schema - Support for quotes, quote_items, quote_attachments, quote_templates, quote_versions - Integration with existing comments system Technical: - Added Quote, QuoteItem, QuoteAttachment, QuoteTemplate, QuoteVersion models - Extended comment routes to support quotes - Integrated payment terms from quotes to invoices - Email notification system for quote events - Scheduled task for expiring quote checks
100 lines
2.8 KiB
Python
100 lines
2.8 KiB
Python
from .user import User
|
|
from .project import Project
|
|
from .time_entry import TimeEntry
|
|
from .task import Task
|
|
from .settings import Settings
|
|
from .invoice import Invoice, InvoiceItem
|
|
from .invoice_template import InvoiceTemplate
|
|
from .currency import Currency, ExchangeRate
|
|
from .tax_rule import TaxRule
|
|
from .payments import Payment, CreditNote, InvoiceReminderSchedule
|
|
from .reporting import SavedReportView, ReportEmailSchedule
|
|
from .client import Client
|
|
from .client_prepaid_consumption import ClientPrepaidConsumption
|
|
from .task_activity import TaskActivity
|
|
from .expense_category import ExpenseCategory
|
|
from .mileage import Mileage
|
|
from .per_diem import PerDiem, PerDiemRate
|
|
from .extra_good import ExtraGood
|
|
from .comment import Comment
|
|
from .focus_session import FocusSession
|
|
from .recurring_block import RecurringBlock
|
|
from .rate_override import RateOverride
|
|
from .saved_filter import SavedFilter
|
|
from .project_cost import ProjectCost
|
|
from .kanban_column import KanbanColumn
|
|
from .time_entry_template import TimeEntryTemplate
|
|
from .activity import Activity
|
|
from .user_favorite_project import UserFavoriteProject
|
|
from .client_note import ClientNote
|
|
from .weekly_time_goal import WeeklyTimeGoal
|
|
from .expense import Expense
|
|
from .permission import Permission, Role
|
|
from .api_token import ApiToken
|
|
from .calendar_event import CalendarEvent
|
|
from .budget_alert import BudgetAlert
|
|
from .import_export import DataImport, DataExport
|
|
from .invoice_pdf_template import InvoicePDFTemplate
|
|
from .audit_log import AuditLog
|
|
from .recurring_invoice import RecurringInvoice
|
|
from .invoice_email import InvoiceEmail
|
|
from .webhook import Webhook, WebhookDelivery
|
|
from .quote import Quote, QuoteItem, QuotePDFTemplate
|
|
from .quote_attachment import QuoteAttachment
|
|
from .quote_template import QuoteTemplate
|
|
from .quote_version import QuoteVersion
|
|
|
|
__all__ = [
|
|
"User",
|
|
"Project",
|
|
"TimeEntry",
|
|
"Task",
|
|
"Settings",
|
|
"Invoice",
|
|
"InvoiceItem",
|
|
"Client",
|
|
"TaskActivity",
|
|
"Comment",
|
|
"FocusSession",
|
|
"RecurringBlock",
|
|
"RateOverride",
|
|
"SavedFilter",
|
|
"ProjectCost",
|
|
"InvoiceTemplate",
|
|
"Currency",
|
|
"ExchangeRate",
|
|
"TaxRule",
|
|
"Payment",
|
|
"CreditNote",
|
|
"InvoiceReminderSchedule",
|
|
"SavedReportView",
|
|
"ReportEmailSchedule",
|
|
"KanbanColumn",
|
|
"TimeEntryTemplate",
|
|
"Activity",
|
|
"UserFavoriteProject",
|
|
"ClientNote",
|
|
"WeeklyTimeGoal",
|
|
"Expense",
|
|
"Permission",
|
|
"Role",
|
|
"ApiToken",
|
|
"CalendarEvent",
|
|
"BudgetAlert",
|
|
"DataImport",
|
|
"DataExport",
|
|
"InvoicePDFTemplate",
|
|
"ClientPrepaidConsumption",
|
|
"AuditLog",
|
|
"RecurringInvoice",
|
|
"InvoiceEmail",
|
|
"Webhook",
|
|
"WebhookDelivery",
|
|
"Quote",
|
|
"QuoteItem",
|
|
"QuotePDFTemplate",
|
|
"QuoteAttachment",
|
|
"QuoteTemplate",
|
|
"QuoteVersion",
|
|
]
|