- Implemented a new time report page in the frontend that displays totals by agent, ticket, or account over a specified date range.
- Added a CSV export functionality for the time report, allowing users to download their report data.
- Created API endpoint for exporting time report data in CSV format.
- Developed data models and providers for managing time report data in the mobile application.
- Integrated time report navigation into the mobile app, allowing users to access the report from the timesheet screen.
- Added unit tests for time report data parsing and API request handling.
- Enhance escalation policy tests to include first response and resolution hours.
- Introduce new SLA target fields in escalation policies and ensure they are correctly handled in the API.
- Implement SLA target handling in ticket properties, including at-risk and breached states.
- Update UI components to display SLA targets and their default values.
- Add validation for SLA hours input in forms, ensuring proper error handling.
- Create unit tests for SLA target functionality in both escalation policies and tickets.
- Implemented tagging functionality in the article editing and creation forms, allowing users to select tags for articles.
- Updated the article detail view to display related articles based on shared tags.
- Added a new portal view for customers to access help articles, including search functionality.
- Introduced a suggestions feature in the request form to display relevant articles based on user input.
- Enhanced the mobile solution detail screen to support tag selection and display.
- Updated data models to include tag IDs for articles, ensuring proper handling of tags in the backend.
- Added tests to verify the correct behavior of the tagging system in the solution detail screen.
- Added handling for ProtectedError when deleting accounts with linked invoices, estimates, or recurring invoices.
- Updated account deletion response message to include all related billing records.
- Modified date filtering in various views to ensure inclusivity of the end day by using `created_at__date`.
- Introduced tests for date filtering edge cases and account deletion scenarios with billing records.
- Updated package version to 1.4.0 in uv.lock.
- Implemented a new customer portal for users to manage their support requests.
- Added functionality for users to create and view their support cases.
- Updated article publishing logic to clarify the distinction between approval and visibility in the ticket reply panel.
- Enhanced the comment model to include the author's name when comments are made through the customer portal.
- Improved UI/UX for the solutions and cases pages, ensuring better clarity on article status and visibility.
- Updated documentation to reflect changes in the API and customer portal features.
- Created new email templates for notifying users when a contact, lead, or opportunity is assigned to them.
- Added a health check HTML template for server status.
- Introduced magic link email templates for sign-in codes and links.
- Implemented a new root email template for consistent styling across emails.
- Updated packaging tests to ensure all templates are included in the wheel.
- Modified settings to remove project-level template directories, ensuring templates are sourced from app directories.
- Added new templates for goal milestones and stale deals alerts in the opportunity module.
- Bumped version to 1.3.0 and updated dependencies in the project configuration.
- Enhanced Dockerfile for better build management and added .dockerignore for cleaner builds.
- Introduced CSAT rating functionality in the frontend with corresponding tests.
- Added tests for moving leads, allowing non-admin creators to move their own leads.
- Updated the LeadMoveView to support moving leads with explicit order and improved permission checks.
- Introduced OpportunityMoveSerializer for moving opportunities, including permission checks for creators and assignees.
- Created tests for moving opportunities, ensuring proper RBAC and handling of closed stages.
- Enhanced TaskMoveView to allow non-admin creators to move tasks, with similar permission checks.
- Updated frontend to support moving deals with drag-and-drop functionality, including optimistic UI updates and error handling.
- Added API endpoints for moving opportunities and updated mobile app to utilize the new move functionality.
is_owner compared request.profile (a Profile) to opportunity.created_by (a
User FK), which is never equal, so a non-admin creator who is not also an
assignee was wrongly denied moving their own deal. Compare user ids, matching
the detail-view RBAC.
- Added bulkUpdate and bulkDelete actions in the tickets server-side logic.
- Enhanced the tickets Svelte component to support bulk selection and actions.
- Introduced a BulkActionBar component for managing selected tickets.
- Updated the tickets API configuration for bulk operations in the mobile app.
- Implemented bulk update and delete methods in the mobile tickets provider.
- Created unit tests for bulk update and delete functionalities in both mobile and frontend.
- Added UI tests for ticket selection and bulk actions in the mobile app.
- Implemented `InvoiceTemplateFormScreen` for creating and editing invoice templates.
- Added functionality to pre-fill form fields from existing templates.
- Enhanced `InvoiceTemplatesScreen` to allow admins to create new templates and set defaults.
- Updated routing to include paths for creating and editing templates.
- Added tests for the new template form and its integration with the templates list.
- Ensured proper handling of admin-only actions and user permissions.
- Added teams and last signed in information to the profile screen.
- Introduced new link rows for API tokens, goals, timesheet, and tasks.
- Implemented a new _LinkRow widget for better navigation and UI consistency.
fix: update attachment handling in task and ticket detail screens
- Changed attachment opening logic to use API for downloads instead of direct file paths.
- Ensured that attachments without files are handled gracefully.
feat: add contact management to ticket form and detail screens
- Included contact selection in the ticket form, allowing users to link contacts to tickets.
- Updated ticket detail screen to display associated contacts.
refactor: improve API service for file uploads
- Modified the API service to support both POST and PUT methods for file uploads.
test: add unit tests for ticket contacts and document download URLs
- Created tests to ensure correct handling of ticket contacts and document download logic.
- Verified that the absence of contacts does not cause crashes and that payloads are correctly formed.
- Introduced new MenuRow items for Documents and Goals in the MoreScreen.
- Updated the navigation to link to the respective screens for Documents and Goals.
test: add comprehensive tests for Documents and Goals functionality
- Created unit tests for document handling, including sharing and editing permissions.
- Added tests for goal management, including creation, status tracking, and validation.
- Ensured coverage for edge cases in document and goal functionalities.
test: implement integration tests for Documents and Goals screens
- Developed integration tests to verify the rendering and functionality of Documents and Goals screens.
- Included tests for user roles (admin vs member) and their respective permissions.
- Implemented a new support ticket creation screen with form validation and file attachment capabilities.
- Added a support ticket detail screen to view ticket messages and reply functionality.
- Created a support ticket list screen to display all tickets with options to create new tickets.
- Enhanced API service to handle downloading private attachments securely.
- Updated attachment upload service to support file selection and validation for support tickets.
- Added unit tests for support ticket functionalities, including ticket creation, replies, and attachment handling.
- Introduced self-serve help options for deployments without support queues.
- Added a confirmation step for closing parent tickets that may have open child tickets.
- Introduced a new `close.js` module to handle the logic for identifying open descendants and generating summary messages.
- Updated the ticket detail page to include a close button that triggers the confirmation panel.
- Enhanced the close dialog to display the names of tickets that will be closed and allow users to add a resolution comment.
- Implemented tests for the new close functionality, ensuring correct behavior for various scenarios.
- Updated mobile app to reflect changes in the ticket closing process, including the handling of open descendants and resolution comments.
- Removed the old server endpoint for closing tickets with children, as the new logic is now handled client-side.
- Updated SettingsHubScreen to include new menu options for Inbound Email and Approval Rules.
- Implemented new screens for managing inbound emails and approval rules.
- Added tests for the new inbound email and approval rules functionalities, ensuring proper rendering and behavior.
- Created unit tests for ApprovalRule and Mailbox models, covering JSON serialization and business logic.
- Added `close_with_children_dialog.dart` to handle the close ticket prompt with linked tickets.
- Updated `_closeWithChildren` method in `ticket_detail_screen.dart` to utilize the new dialog and respect organization settings for default checkbox state.
- Enhanced ticket closing feedback messages based on whether linked tickets were also closed.
- Introduced unit tests for `AccessToken` and `OrgSettings` to ensure proper serialization and functionality.
- Added tests for the new close-with-children dialog to verify UI behavior and settings integration.
- Updated existing tests to cover new functionality and ensure no regressions.
- Implemented ReopenScreen for managing the reopen policy, including admin-only access and editing capabilities.
- Added MenuRow for navigating to the Reopen policy settings in the SettingsHubScreen.
- Created unit tests for the ReopenPolicy model, covering JSON serialization and validation logic.
- Introduced BusinessCalendar model and tests for business hours functionality.
- Updated phone viewport tests to include scenarios for the reopen policy screen.
- Introduced a new menu option for 'Escalation' in the settings hub screen.
- Added tests for the escalation policies, including rendering, sorting, and behavior based on active/inactive states.
- Implemented logic to handle escalation policies in various scenarios, ensuring proper notifications and actions based on the policy configuration.
- Created unit tests to validate the functionality of escalation policies, including edge cases for targets and breach counts.
- Added a new menu option for routing settings in the settings hub screen.
- Implemented comprehensive tests for routing rules, covering various scenarios including rule creation, activation, deactivation, and condition handling.
- Introduced fake client for testing API interactions and ensured proper serialization of routing rules.
- Enhanced routing rule logic to handle active and inactive assignees correctly.
- Introduced a new TagsScreen for managing tags across records.
- Implemented functionality for creating, turning off, turning on, and merging tags.
- Updated SettingsHubScreen to include a link to the new TagsScreen.
- Added tests for the TagsScreen to ensure proper rendering and functionality.
- Created unit tests for tag-related logic, including usage calculations and duplicate detection.