Commit graph

705 commits

Author SHA1 Message Date
Ashwin
794ff2dbd4 Refactor ticket and contact handling to improve visibility and access control
- Updated task views to utilize new access functions for accounts and contacts, ensuring users only see what they can access.
- Enhanced contact editing to maintain linked accounts even when not visible in the picker, preventing accidental unlinking.
- Introduced tests for contact form to verify linked account behavior.
- Implemented parent ticket handling to correctly display restricted tickets, ensuring hidden parents are represented accurately in the UI.
- Added tests for ticket parent visibility and interaction, confirming that restricted parents do not allow navigation.
- Improved ticket tree structure to handle restricted nodes, ensuring proper functionality during close operations.
2026-09-26 12:17:45 +05:30
Ashwin
41d4148edb feat: Enhance goal tracking with currency support and separate totals
- Updated goal model to include currency, allowing for multiple currencies in goals.
- Modified goal totals calculation to keep currencies separate and accurately reflect targets and achievements.
- Added tests to ensure correct handling of multiple currencies in goal tracking.
- Enhanced invoice reports to support multiple currencies, ensuring accurate reporting without summing across different currencies.
- Implemented lead board provider tests to validate lead movement and pipeline functionality.
- Introduced record edit verb tests for accounts, contacts, and leads, ensuring PATCH requests are correctly formed.
- Improved tag normalization to handle non-Latin scripts and prevent duplicates.
2026-09-26 10:06:25 +05:30
Ashwin
6e9fd8c98c chore: update dependencies and configurations
- Updated `pnpm-workspace.yaml` to force patch for `cookie` package to address GHSA-pxg6-pf52-xh8x vulnerability.
- Modified `vitest.config.js` to set `maxWorkers` to '50%' for improved test performance.
- Bumped version in `pubspec.yaml` from 1.2.1+12 to 1.9.0+13 for mobile application.
2026-09-05 22:49:29 +05:30
Ashwin
ebd6e45f15 bump 2026-08-17 20:19:55 +05:30
Ashwin
9558be109d feat: implement migration to clear stale FORCE ROW LEVEL SECURITY flags and update disable policy SQL 2026-08-17 19:19:15 +05:30
Ashwin
dc166fb600 feat: add documentation for web forms integration and update environment variables 2026-08-17 13:46:40 +05:30
Ashwin
41250838ad Add comprehensive tests for web forms functionality
- Implement tests for web forms screen to ensure proper rendering and behavior on different devices.
- Create unit tests for web form model to validate JSON serialization and deserialization.
- Add tests for web forms provider to verify API interactions and state management.
- Ensure that publishing rules and field validations are correctly enforced in the tests.
2026-08-17 13:33:14 +05:30
Ashwin
8b20bc0edb feat: add goal history screen and integrate with goals screen
- Implemented GoalHistoryScreen to display finished goal periods and their attainment.
- Added navigation from GoalsScreen to GoalHistoryScreen via a history icon.
- Enhanced GoalsScreen to support filtering goals with a search bar and filter chips.
- Updated formatGoalValue function to handle new goal type 'ACTIVITIES'.
- Added unit tests for goal history, filtering, and goal types.
- Improved error handling and empty states for goal history and goals list.
2026-08-16 19:05:23 +05:30
Ashwin Kumar
dc4cf8147b
Merge pull request #760 from Django-CRM/dev
feat: add time report feature with CSV export
2026-08-16 10:23:55 +05:30
Ashwin
d2a2d690fc feat: add time report feature with CSV export
- 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.
2026-08-16 10:23:02 +05:30
Ashwin Kumar
3b39536202
Merge pull request #759 from Django-CRM/dev
feat: add SLA targets to escalation policies and tickets
2026-08-16 09:25:19 +05:30
Ashwin
3726150a2e feat: add SLA targets to escalation policies and tickets
- 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.
2026-08-16 09:24:18 +05:30
Ashwin Kumar
eaa8b64b6f
Merge pull request #758 from Django-CRM/dev
feat: enhance article management with tagging system
2026-08-16 07:30:13 +05:30
Ashwin
cab3e92c60 feat: enhance article management with tagging system
- 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.
2026-08-16 07:29:38 +05:30
Ashwin Kumar
17c9696a75
Merge pull request #757 from Django-CRM/dev
feat: enhance customer portal case management and article publishing
2026-08-16 04:51:01 +05:30
Ashwin
ff02a12d2b Enhance account deletion handling and date filtering across models
- 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.
2026-08-16 04:50:18 +05:30
Ashwin
d9082aed75 Merge branch 'master' of https://github.com/django-crm/Django-CRM into dev 2026-08-16 00:14:24 +05:30
Ashwin Kumar
c690116ad6
Merge pull request #756 from Rohit10jr/fix/rls-exempt-healthz
fix(rls): exempt the /healthz/ liveness probe from RequireOrgContext
2026-08-16 00:13:28 +05:30
Ashwin
cf73af30e5 Merge branch 'master' of https://github.com/django-crm/Django-CRM into dev 2026-08-16 00:09:51 +05:30
Ashwin Kumar
bc82759355
Merge pull request #755 from Rohit10jr/fix/accounts-delete-protected
fix(accounts): return 409 instead of 500 when deleting an account with linked invoices/estimates
2026-08-16 00:09:15 +05:30
Ashwin Kumar
1ce0aa7d65
Merge pull request #754 from Rohit10jr/fix/accounts-created-at-date
fix(accounts): make created_at range filter inclusive of the end day
2026-08-16 00:04:17 +05:30
Ashwin
a9e0dd9bc3 feat: enhance customer portal case management and article publishing
- 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.
2026-08-15 23:59:44 +05:30
Rohit10jr
2c793dfdbd fix(rls): exempt the /healthz/ liveness probe from RequireOrgContext 2026-08-13 12:10:20 +05:30
Rohit10jr
0505da735d fix(accounts): return 409 instead of 500 when deleting an account with linked invoices/estimates 2026-08-13 11:56:20 +05:30
Ashwin Kumar
7cf6b4529b
Merge pull request #753 from Django-CRM/dev
feat: enhance API settings serializer to conditionally expose `apikey…
2026-08-12 23:16:43 +05:30
Ashwin
55bee162b6 Merge branch 'master' of https://github.com/django-crm/Django-CRM into dev 2026-08-12 23:05:10 +05:30
Ashwin
b112b5a392 feat: enhance API settings serializer to conditionally expose apikey for admins; add tests for access control 2026-08-12 22:58:51 +05:30
Ashwin Kumar
66f5ea77e7
Merge pull request #751 from Rohit10jr/fix/leads-detail-404
fix(leads): return 404 instead of 500 for an unknown lead on comment/attachment POST
2026-08-12 22:52:56 +05:30
Ashwin Kumar
96d19c749c
Merge pull request #750 from Rohit10jr/fix/api-settings-list-id
fix(api-settings): include id in the list serializer
2026-08-12 22:45:52 +05:30
Ashwin Kumar
0875185804
Merge pull request #752 from Django-CRM/dev
chore: update project version to 1.3.1 and enhance description in pyp…
2026-08-12 22:19:59 +05:30
Ashwin
2226887224 chore: update project version to 1.3.1 and enhance description in pyproject.toml; add shared testing fixtures and improve CodeQL workflow 2026-08-12 22:19:21 +05:30
Rohit10jr
9187ab22b7 fix(accounts): make created_at range filter inclusive of the end day 2026-08-12 21:36:48 +05:30
Rohit10jr
43745f16c9 fix(leads): 404 instead of 500 on unknown lead in comment/attachment POST 2026-08-12 21:32:46 +05:30
Rohit10jr
6f0b9b830c fix(api-settings): include id in the list serializer so rows can be edited/deleted 2026-08-12 21:26:03 +05:30
Ashwin Kumar
ad3134a5ea
Merge pull request #749 from Django-CRM/dev
fix: update CodeQL workflow to include permissions and use latest act…
2026-08-12 21:16:48 +05:30
Ashwin
49c5db94d1 fix: update CodeQL workflow to include permissions and use latest actions versions; adjust publish job dependencies 2026-08-12 21:16:08 +05:30
Ashwin Kumar
41512a63eb
Merge pull request #748 from Django-CRM/dev
Dev
2026-08-12 20:28:52 +05:30
Ashwin
edb93cfcd0 Merge branch 'master' of https://github.com/django-crm/Django-CRM into dev 2026-08-12 20:28:30 +05:30
Ashwin
f8f7dc0c11 feat: add email templates for assigned contacts, leads, and opportunities
- 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.
2026-08-12 20:19:53 +05:30
Ashwin
ad2498a35e feat: implement move functionality for opportunities, tasks, and leads
- 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.
2026-08-12 17:52:00 +05:30
Ashwin Kumar
a0afb58caa
Merge pull request #747 from Rohit10jr/fix/opportunity-kanban-rbac
fix(opportunity): fix dead creator check in kanban move RBAC
2026-08-12 16:17:49 +05:30
Rohit10jr
56fe450ab4 fix(opportunity): fix dead creator check in kanban move RBAC
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.
2026-08-12 12:33:39 +05:30
Ashwin Kumar
799bb12102
Merge pull request #746 from Django-CRM/dev
feat(tickets): implement bulk update and delete actions for tickets
2026-08-12 08:06:51 +05:30
Ashwin
ccfe065979 feat(tickets): implement bulk update and delete actions for tickets
- 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.
2026-08-12 08:06:00 +05:30
Ashwin Kumar
e42c563164
Merge pull request #744 from Django-CRM/dev
Dev
2026-08-09 12:54:52 +05:30
Ashwin
c96a5d3bbf feat: update icons to Lucide icons across various models and screens 2026-08-09 12:53:56 +05:30
Ashwin
f8bb608336 fix: update goal period display format in milestone email template 2026-08-09 09:27:45 +05:30
Ashwin Kumar
d3eb5f9448
Merge pull request #743 from Django-CRM/dev
Dev
2026-08-08 15:47:48 +05:30
Ashwin
c11ced7894 feat: add invoice template form screen and integrate with templates list
- 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.
2026-08-08 15:47:13 +05:30
Ashwin
f132d17d0c feat: enhance profile screen with additional information and links
- 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.
2026-08-08 14:18:17 +05:30