- Remove JS tests
- Upgrade to Django 4.2 and PsycoPG 3.1
- Tweak access level checking on cases to let users personally assigned to cases always have update access
- Bump django from 4.1.7 to 4.1.9
- Bump redis from 4.5.1 to 4.5.4
- Fix initial syncing of contacts
- Use flow field on synced mesages instead of msg_type
- Bump ua-parser-js from 0.7.32 to 0.7.33
- Msg.backend_id needs to be a bigint
- Update dependencies
- Switch push_outgoing to use create_message for non-broadcasts
- Move coverage config to pyproject
- Use ruff insdtead of flake8
- Don't label messages for contacts with open tickets in RapidPro
- Merge pull request #391 from rapidpro/python3.10
- Add is_email_valid flag to profile which we can use to disable sending notifications to broken emails
- Bump django from 4.0.2 to 4.0.6
- Bump pillow from 9.0.0 to 9.0.1
- Bump handlebars from 4.7.6 to 4.7.7
- Add whatsapp as a valid urn scheme
- Implement push contacts for RapidPro and sync contact urns
- Bump django from 4.0.1 to 4.0.2
- Update to latest pillow, smartmin and dash
- Update to Django 4
- Disable transaction sampling in sentry
- Python 3.9
- Update celery to 5.x
- Update deps and test on Python 3.9.x
- Limit searching outgoing messages by text to last 90 days
- Tweak trim task to run for 8 hours
- Allow message trimming task to run for 6 hours
- Fix flake
- Trim messages task shouldn't worry about deleting message actions
- Update to new dash library to get rid of deprecation warning
- Fix trim_old_messages task to unset Outgoing.reply_to references and remove notifications for messages being deleted
- Update dependencies
- Add task to delete old messages no used in cases
- Bump djangorestframework from 3.11.0 to 3.11.2
- Add new index for fetching messages by modified_on to fix slow fetches of new/modified messages
- Update to Django 3.2
- Fix 0015_populate_is_squashed migration in statistics app
- Tweak polling of new messages
- Fix exports when a message text is longer than 32767 chars
- Bump django from 2.2.19 to 2.2.24
- Lock celery to v4.4.6
- Add case id to case list views
- Add timeout on contact case open lock
- Fix message syncing
- Extend partial syncing support to message pulling
- Add support for partial syncing of contacts
- Update dependencies
- Update dependencies
- Fix permission check in update view
- Also switch partner scoped totals to use TotalCount
- Re-enable total counts but this time from TotalCount and not summing DailyCount
- Migration to back-fill total counts for replies and cases opened/closed
- Start recording totals for replies and cases opened/closed
- Re-enable partner stats for all time, disable the equivalent user stats
- Fix problem with comments in templates
- Temporarily disable total counts for user stats until we can add a more performant way to calculate these
- Ignore invalid host errors
- Update to latest Sentry SDK
- Replace boto with boto3
- Update project version
- Merge pull request #331 from rapidpro/poetry
- Add SecurityMiddleware to common settings
- Fix XSS vulnerablilities in rules template tags
- Add management command for summarizing usage stats across orgs
- Bump pillow version
- Fix wrong arg name for latest rapidpro client
- Update to latest rapidpro-python
- Fix reply view when org has replies without reply_to set
- Add autocomplete=off to login page
- Remove novalidate on forms
- Upgrade to latest bootstrap 3.3.x
- Only allow CSV file extensions for FAQ imports
- Fix embedding of JSON in templates
- Only allow partners users to view users in same partner org
- Require current password when user changes their password
- Make password requirements stricter
- Fix unrelated failing test due to ordering of labels
- Fix styling on partner update/create forms and add validator for image file extensions
- Update to jQuery 1.11.3
- Add XFrameOptionsMiddleware
- Tweak notifications for re-assigned cases so if assignee is specific user, only they get notified
- Revert upgrade to django-storages
- Update to latest angular 1.4.x
- Fix editing of must_use_faq
- If case is assigned to specific user, only notify that user
- Show contact name on open case modal
- Add tab to user page which lists cases assigned to them
- Bump to latest minor release for all deps
- Fix translation
- Add spanish translations from transifex
- Minor dependency updates
- Tidy up translatable strings with trimmed
- Add code_check script and generate locale files for Spanish
- Bump django from 2.2.8 to 2.2.10
- Fix another case of filter getting duplicate keyword arguments
- Fix searching by text and date
- Limit searching by text to the last 90 days
- Add charts for cases opened and closed
- Drop pod support
- Add link to rules list page on org summary
- Improve rules list page
- Render label rule tests on read page
- Allow rules without keywords
- Rework message searching to use new fields on labelling
- Make message fields on labelling m2m no-null and add indexes
- Migration to backfill new fields on msgs_message_labels
- Add message fields to labelling m2m
- Simplify Message.search
- Add pre/post commit hooks
- Add management command to create test database
- Switch squashing to use is_squashed instead of redis key
- Add new partial indexes on squashable models
- Update database triggers for counts
- Add migration to backfill is_squashed on squashable models
- Add is_squashed field to squashable models
- Bump dependencies
- Switch CI tests to PG 10/11 and use github actions and codecov for coverage
- Don't create a rule for a label if there are no keywords set
- Bump some dependencies
- Log long message queries
- Include messages received after initial msg in case
- Actions should still succeed even if their backend operations fail (log that to sentry)
- Fix load label permissions
- Latest dash
- Refresh label counts after applying labels to messages
- Upgrade to last rapidpro client
- Extra logging in contact sync task
- Update all dependencies
- Ensure new orgs are created with a backend
- Fix not clearing follow-up flows
- Make followup flow optional
- Add support for followup flows which can be triggered when a case is closed
- Switch to using cursor pagination in the API
- Add labels API endpoint, bnew fields to cases endpoint, improve API docs
- Use new index on CaseAction.org in API requests
- Make CaseAction.org non-null and add index
- Migration to backfill CaseAction.org
- Add org field to CaseAction
- Add basic API
- Dpendency update and cleanup
- Upgrade to Django 2
- Fix not saving change_password when updating a user
- Import orgbackend CRUDL from dash
- Code formatting with black+isort
- Update to sorl-thumbnail 12.4.1
- Drop support for Python 2
- Update rapidpro-dash to 1.3.4
- Update to latest Django
- Don't allow label names which are invalid in RapidPro
- Remove searching by group - this should be done by labelling by group which we can actually optimize
- Fixes to language migration
- Migrate languages from ISO639-2 to ISO639-3
- Fix fetching of modified and new messages
- Increase max infinite scroll items to 2000
- Fix fields not being listed on label edit form
- Use BigInt primary keys on squashable models
- Add portuguese as supported languages
- Don't try to restore contacts into their groups if they are now stopped or blocked
- Fix new item polling in inbox controller
- Start using modified_on to fetch messages that have been acted on or locked
- Add index on Message.modified_on (large deployments should fake this and add manually with CONCURRENTLY)
- Add Message.modified_on field and start populating it for new messages
- Update to latest django, dash and smartmin
- Python 3.6 support
- Switch DailySecondCount.seconds field to big integer to avoid overflow
- delete personal info on Junebug optout
- Inbox refreshing and message locking
- Django 1.10 fix
- Increase default maximum message length to 160
- Add CHANGELOG.md
- Fix field test blowing up if contact.fields is null
- Remove no longer needed compress.py
- Update to latest smartmin
- Disable less and coffeescript compilation during unit tests to improve test performance
- Don't have celery store task results as these are modelled internally