Commit graph

766 commits

Author SHA1 Message Date
Ashwin Kumar
a197ac4134
Merge pull request #817 from moneebullah25/fix/lead-import-archived-tag
fix(leads): report archived tags in a CSV import as row errors
2026-10-15 11:45:41 +05:30
moneebullah25
ea3ce09420 style: apply ruff format to lead import tests 2026-10-14 11:12:46 -04:00
moneebullah25
c415d50c12 fix(leads): report archived tags as import row errors instead of restoring them 2026-10-14 10:54:05 -04:00
Ashwin Kumar
9e912ec86f
Merge pull request #824 from moneebullah25/fix/recurring-invoice-month-end-drift
fix(invoices): keep month-end day for recurring invoice schedules
2026-10-14 14:02:29 +05:30
Ashwin Kumar
558fd32981
Merge pull request #823 from moneebullah25/fix/payment-delete-revert-invoice-status-821
fix: revert invoice status and paid_at when a payment is deleted
2026-10-14 14:02:14 +05:30
Ashwin Kumar
c21e4e8bf7
Merge pull request #820 from moneebullah25/fix/business-hours-dst-812
fix(business_hours): count real elapsed time across DST in add_business_hours
2026-10-14 14:01:57 +05:30
Ashwin Kumar
283499fb29
Merge pull request #819 from moneebullah25/fix/business-hours-calendar-put-500
fix(business-hours): accept PUT on /calendar/ without a pk
2026-10-14 14:01:26 +05:30
Ashwin Kumar
4bb3b4858f
Merge pull request #818 from moneebullah25/fix/lead-csv-extra-cells
fix(leads): reject CSV rows with more cells than the header
2026-10-14 14:01:11 +05:30
Ashwin Kumar
92e19c411b
Merge pull request #816 from moneebullah25/fix/lead-conversion-none-account-name
fix(leads): skip missing name parts in converted account name
2026-10-14 14:00:35 +05:30
moneebullah25
1497894a38 test(invoices): document month-end anchor and cover more recurring frequencies 2026-10-11 00:18:32 -04:00
moneebullah25
f60a23c137 fix(invoices): keep month-end day for monthly, quarterly, semi-annual and yearly recurring schedules 2026-10-11 00:11:15 -04:00
moneebullah25
8fffe52a0d fix: revert never-sent invoices to Draft when a payment is deleted 2026-10-10 18:52:18 -04:00
moneebullah25
fd2c0dd89f fix: revert invoice status and paid_at when a payment is deleted 2026-10-10 18:45:36 -04:00
moneebullah25
98d31d66cc fix(business_hours): compare window bounds in UTC to handle repeated DST hour 2026-10-10 17:13:29 -04:00
moneebullah25
fd6c740ca2 fix(business_hours): count real elapsed time across DST in add_business_hours 2026-10-10 17:06:40 -04:00
moneebullah25
fa5241a967 test(business-hours): cover PUT /calendar/ creating the default calendar 2026-10-10 16:47:36 -04:00
moneebullah25
71adde09f6 fix(business-hours): accept PUT on /calendar/ without a pk 2026-10-10 16:38:53 -04:00
moneebullah25
d35f39b6b0 fix(leads): keep wide rows legal on legacy upload, sort row errors, add tests 2026-10-10 11:54:19 -04:00
moneebullah25
dd4092c1c3 fix(leads): reject CSV rows with more cells than the header 2026-10-10 11:48:32 -04:00
moneebullah25
d6b602f628 fix(leads): stamp audit fields when an import reactivates a tag 2026-10-10 11:26:24 -04:00
moneebullah25
bc251bbd6c fix(leads): reactivate archived tags named in a CSV import 2026-10-10 11:12:33 -04:00
moneebullah25
e011f5281b test(leads): group account name tests in a class like the rest of the file 2026-10-10 11:06:11 -04:00
moneebullah25
fc875f8678 fix(leads): strip whitespace in conversion account name 2026-10-10 10:58:33 -04:00
moneebullah25
9d630c83cf fix(leads): skip missing name parts in converted account name 2026-10-10 10:49:03 -04:00
Ashwin Kumar
5d71f26368
Merge pull request #809 from Django-CRM/dev
feat: Implement per-client and global rate limits for magic-link and …
2026-10-02 12:28:01 +05:30
Ashwin
14cd99fb3c feat: Implement per-client and global rate limits for magic-link and portal sign-in requests
- Added `FirstRefusalThrottleMixin` to various views to prevent a single client from consuming shared throttle limits.
- Introduced new throttles: `MagicLinkIPThrottle`, `MagicLinkGlobalThrottle`, `PortalLoginIPThrottle`, and `PortalLoginOrgThrottle`.
- Updated environment variables in `.env.example` to include new throttle settings.
- Enhanced tests to verify that refused clients do not affect global limits.
- Updated documentation to reflect changes in authentication and throttling behavior.
2026-10-02 12:23:22 +05:30
Ashwin Kumar
51772ffefa
Merge pull request #808 from Django-CRM/dev
feat: update version to 1.14.4 and enhance form submission handling t…
2026-10-02 11:27:55 +05:30
Ashwin
1de4401be8 feat: update version to 1.14.4 and enhance form submission handling to prevent duplicate entries 2026-10-02 11:27:28 +05:30
Ashwin Kumar
5017ea2255
Merge pull request #807 from Django-CRM/dev
Dev
2026-10-02 09:58:39 +05:30
Ashwin
2e8d53987c chore: bump version to 1.14.3 in pyproject.toml and uv.lock 2026-10-02 09:57:19 +05:30
Ashwin
3d3330bcbf fix: update referrer policy to same-origin for CSRF protection 2026-10-02 09:53:33 +05:30
Ashwin Kumar
232fb5b84b
Merge pull request #806 from Django-CRM/dev
Dev
2026-10-02 09:23:18 +05:30
Ashwin
5b6bc01687 feat(audit): enhance visitor tracking with user agent and IP address
- Updated the audit log to record the user's IP address and user agent from relayed requests.
- Introduced a new `user_agent` function in `request_meta.py` to handle user agent extraction.
- Modified the `AuditLogger` to utilize the new `user_agent` function.
- Added tests to ensure correct logging of relayed visitor information in `test_audit_log.py`.
- Updated various views and tests to accommodate the new user agent handling, including `public_views.py`, `test_invoices_api.py`, and frontend hooks.
- Enhanced relay headers to include user agent information for better tracking.
- Updated documentation and comments to reflect changes in user agent handling.
2026-10-02 08:32:51 +05:30
Ashwin
d920cc294f chore: update dependencies and version in pubspec.yaml
- Bump version to 1.10.0+14
- Update http from ^1.1.0 to ^1.6.0
- Update google_sign_in from ^7.1.1 to ^7.2.0
- Update flutter_secure_storage from ^10.3.1 to ^11.2.0
- Update firebase_core from ^4.12.1 to ^4.15.0
- Update firebase_crashlytics from ^5.2.6 to ^5.4.0
- Update go_router from ^17.2.3 to ^18.0.1
- Update flutter_riverpod from ^3.3.1 to ^3.4.3
- Update table_calendar from ^3.2.0 to ^3.2.1
- Update intl from ^0.20.2 to ^0.20.3
- Update url_launcher from ^6.3.1 to ^6.3.2
- Update file_picker from ^11.0.3 to ^13.1.0
- Update google_fonts from ^8.1.0 to ^8.2.1
- Update lucide_icons_flutter from ^3.1.15 to ^3.1.20
- Add cross_file dependency for testing

test: add FakePlatformFile for testing file uploads

- Introduce FakePlatformFile to mock file picker behavior in tests
- Update attachment_upload_test, csv_import_provider_test, support_ticket_test, and csv_import_sheet_test to use FakePlatformFile
2026-09-27 18:58:13 +05:30
Ashwin Kumar
656aaa6c33
Merge pull request #779 from Django-CRM/dev
feat: implement attachment handling in email ingestion and add tests
2026-09-27 15:25:04 +05:30
Ashwin
2c70c62eaf docs: update README to include new features and enhancements in the CRM 2026-09-27 15:17:55 +05:30
Ashwin
6a43836566 feat: implement attachment handling in email ingestion and add tests 2026-09-27 15:13:19 +05:30
Ashwin Kumar
913203540b
Merge pull request #778 from Django-CRM/dev
Dev
2026-09-27 14:56:41 +05:30
Ashwin
5c1ffa802f Merge branch 'master' of https://github.com/django-crm/Django-CRM into dev 2026-09-27 14:45:24 +05:30
Ashwin Kumar
30d636a2f6
Merge pull request #777 from Django-CRM/dev
Dev
2026-09-27 14:45:09 +05:30
Ashwin
22c660ef44 chore: bump version to 1.14.0 and update currency options
- Updated version from 1.13.0 to 1.14.0 in backend/pyproject.toml and backend/uv.lock.
- Added South African Rand (ZAR) to currency options in frontend and mobile applications.
- Refactored currency and country options to use a centralized list in mobile and frontend.
- Added tests to ensure South African Rand and country options are correctly included.
2026-09-27 14:44:49 +05:30
Ashwin
ed4263a534 Refactor tests and add new functionality for ticket closing and mailbox handling
- Updated phone viewport test to check for new text related to SNS topics.
- Enhanced audit log screen tests with new credential events and filters.
- Modified mailbox form sheet tests to handle SNS Topic ARN correctly.
- Introduced new tests for ticket form close date functionality, ensuring correct behavior for optional close dates.
- Added support for organization timezone handling in tests, ensuring accurate date calculations based on user organization.
- Improved unit tests for mailbox and organization date handling, ensuring proper behavior for various scenarios.
- Implemented bulk close date functionality in ticket selection tests, verifying correct behavior for date selection and submission.
2026-09-27 11:43:51 +05:30
Ashwin
2be3f51efc Add comprehensive tests for ticket closing, calendar feed, deal board, macros, session caches, and web form models
- Implement tests for closing tickets via menu and status picker, ensuring correct API interactions and error handling.
- Create tests for calendar feed provider, verifying throttling behavior and success responses.
- Add tests for deal board provider, covering reading and moving deals, including edge cases for card movement and filters.
- Enhance macro tests to validate action parsing and application to tickets, including error handling.
- Introduce session cache tests to ensure proper cleanup on sign-out and validate session-scoped providers.
- Extend web form model tests to cover lead rotation functionality, ensuring correct serialization and defaults.
2026-09-27 06:28:09 +05:30
Ashwin Kumar
0055635828
Merge pull request #776 from Django-CRM/dev
Add ticket approval panel tests and enhance ticket board functionality
2026-09-26 23:44:55 +05:30
Ashwin
66421bbad0 Add ticket approval panel tests and enhance ticket board functionality
- Implement tests for ticket approval panel to verify approval request logic and visibility based on user roles.
- Add functionality to handle ticket movement based on server response for both tickets and leads.
- Introduce new tests for duplicate checking API to ensure correct handling of duplicates and merging logic.
- Remove outdated permissions tests that are no longer relevant.
- Update ticket board and lead board providers to include 'can_move' field for better control over ticket actions.
- Refactor existing tests to improve coverage and ensure accurate representation of API responses.
2026-09-26 23:33:20 +05:30
Ashwin Kumar
425d73501f
Merge pull request #775 from Django-CRM/dev
refactor: update Sentry configuration and improve data privacy
2026-09-26 21:32:45 +05:30
Ashwin
073c3bc666 refactor: update Sentry configuration and improve data privacy
- Removed enableLogs option from Sentry client initialization.
- Added dataCollection settings to Sentry server initialization to prevent sending user info, cookies, and HTTP bodies.
- Updated import path for Sentry SvelteKit in Vite configuration to use the correct module.
- Simplified source maps upload options in Vite configuration.
2026-09-26 21:08:01 +05:30
Ashwin Kumar
5004d7a656
Merge pull request #774 from Django-CRM/dev
Add unit tests for organization admin checks and saved views provider
2026-09-26 20:47:21 +05:30
Ashwin Kumar
fafd567c33
Merge branch 'master' into dev 2026-09-26 20:39:33 +05:30
Ashwin
dd6ca2958d Add unit tests for organization admin checks and saved views provider
- Implement tests for `isOrgAdminProvider` to validate admin roles based on organization membership and role.
- Create tests for `saved_views_provider` to ensure correct API interactions for saving, renaming, and deleting saved views.
- Enhance ticket tree tests to accurately reflect inactive and merged ticket handling.
- Update CSV import tests to verify error handling and file saving functionality.
- Introduce tests for deal cards to ensure correct display of next steps and task statuses.
2026-09-26 20:38:32 +05:30