Releases: costasiella/costasiella
Costasiella v2024.02.01
What's new
- Finance Invoices - search by invoice number & filter by date sent & date due
Improvements
- Show order delivery error messages in order details
- Show order delivery error badge in orders list for orders that could not be delivered
- Show order delivery error badge in customer portal orders list for orders that could not be delivered
- Don't create an invoice when an order can't be delivered
- Show trialpass labels in backend attendance list
- Create invoice when customer creates a subscription when the shop payment method is set to direct debit
Fixes
- Add "overdue" status to finance invoice edit options
- Class prices component now showing when drop-in card not set
- Include overdue invoices in invoices payment batch items
- Correct count of available reconciliation classes
- Allow clearing finance invoice payment method
- Allow clearing account subscription payment method
Costasiella v2023.05.03
What's new
- Insight: List of open invoices on a given date
- Relations: Add class attendance from account profile
Improvements
- Improved loading time for archived schedule events list
Fixes
- Fix possible permission issues when archiving class types or locations
- Fix "my classes" permission issue in shop, preventing from loading the list
- Fix permission issues on payment methods related to invoices and invoice payments
- Fix permission issues related to business names when viewing invoices within the shop
- Refund credits on attendance cancellation when ending or removing an enrollment
- Fix finance invoices not exporting when a status is set
- Fix select values when adding or editing an event
Installation
Update the docker-compose file to run the backend, celery worker and celery beat containers as the nginx user (www-data).
In the mounts directory update the permissions accordingly :
chown -R www-data:www-data logs
chown -R www-data:www-data media
chown -R www-data:www-data media_protected
chown -R www-data:www-data sockets
chown -R www-data:www-data static
Costasiella v2023.04.02
Improvements
- Cancel class bookings & refund credits on class cancellation
- Improve reliability of keeping the authentication status
Fixes
- Add direct debit mandate when a customer purchased a subscription in the shop & the payment method for subscriptions in the shop is set to direct debit
- Display the correct execution date for batches under finance
Costasiella v2023.04.0
What's new
- Insight subscribers without key number in profile (Keep track of customers with a subscription who don't have a door access card)
Improvements
- Add date filter to finance expense list
- Improve OpenStudio import reliability
- Add email to insight subscription & classpass exports
- Add displayPublic as filterable field to schedule_event_ticket schema
- Add keyNumber_isempty filter to account_subscription schema
- Export payment batch date fields using given date format instead of yyyy-mm-dd
- Add "trial" label to self-checkin attendance list
Technical changes
- Dockerfiles updates to python 3.11
- Drop arm builds for Docker images
- Update i18next-scanner configuration to current format
Fixes
- Allow customers to view tax rates for their invoice items
- Allow users with permission to view subscriptions, to view the related payment method (if any)
- Fix count for number of possible advance credits
- Fix unable to to clear drop in or trial pass set for a class
- Add missing logo to password reset done view
- Add manage.py command to fix missing classcard & subscription groups for classes (might be missing after migration from OpenStudio)
- Add manage.py command to fix missing bank accounts for self registered customers
- Do account setup for self registered customers to create linked bank account & instructor profile where applicable
- Set correct payment method when generating invoices for subscriptions for a given month
- Export event attendance when no invoice is set (would crash)
- Fix incorrect page title in insight instructor classes component
- Fix non-public tickets displaying in shop
- Fix self checkin search reliability
Costasiella v2023.03.01
What's new
- Supplier filter for finance expenses
- Export Event activity attendance as Excel sheet
Improvements
- Add urlShop to organizationClasspass & organizationSubscription GraphQL schema
- Add Mollie customer ID to GraphQL account schema
- Add Mollie customer ID to relations > accounts > tools
Technical changes
- CSRF default settings have been moved to settings/development.py
- Arm builds of Docker containers are no longer provided. From this release onward, only x86_64 builds will be created.
- The frontend development server is using port 3001 instead of 3000
Settings
- Add the following to app/settings/common.py
``CELERY_TASK_RESULT_EXPIRES = timedelta(days=90)`
v2023.02.04
What's new
- Duplicate finance expenses
- Add percentage & calculated total to finance expenses
Improvements
- Faster handling of protected media files
- Show expired badge in admin backend for expired subscription credits
Technical changes
- Update scheduleEvent graphql schema; added full_event & deletable filter
Fixes
- Weekday is off by one day in schedule - classes - edit all classes
- Automation - create subscription credits for a month stops further processing in some cases when a subscription is not valid.
- No user feedback when class booking status is updated
- Classes aren't cancelled reliably after stopping of deleting an enrolment
- urlShop field in scheduleEvent schema doesn't use global ID
- Auth token refreshed would occasionally fail while the refresh token is still valid
Installation
Some updates to Costasiella & webserver settings are required for production deployments being upgraded.
Nginx vhost
Add a new location for protected media.
# Django protected media
location /d/protected_media {
internal;
alias /path/to/your/media_protected/; # your Django project's protected media files - amend as required
}
Settings
common.py
Remove setting: MEDIA_PROTECTED_URL
Add settings:
MEDIA_PROTECTED_PUBLIC_URL = '/d/protected/'
MEDIA_PROTECTED_INTERNAL_URL = '/d/protected_media/' ## This one should be a known location to nginx
production.py
Add an import:
from django.core.files.storage import FileSystemStorage
Add the following settings:
MEDIA_PROTECTED_ROOT = "/opt/media_protected"
MEDIA_PROTECTED_STORAGE = FileSystemStorage(location=MEDIA_PROTECTED_ROOT, base_url=MEDIA_PROTECTED_PUBLIC_URL)
Docker compose file
Add a volume for the backend container
- "/path/to/your/costasiella/bind_mounts/media_protected:/opt/media_protected"
Docker bind mounts folder:
mkdir /path/to/your/costasiella/bind_mounts/media_protected
mv /path/to/your/costasiella/bind_mounts/media/finance_expense /path/to/your/costasiella/bind_mounts/media_protected
mv /path/to/your/costasiella/bind_mounts/media/account_document /path/to/your/costasiella/bind_mounts/media_protected
v2023.01.04
What's new
- A new model for subscription credits. Credits are now handled individually, with expiration dates
- Display credits overview for subscriptions in shop account profiles
- Setting to disable user signup
- A checkbox in class add & edit forms to allow disabling sending class info mails
- Class bookings during a subscription pause are cancelled when adding a pause
Improvements
- Add enrollment counts to class enrollments list
- Add enrollment spaces to class add & edit forms
- Classes booked when adding an enrollment
- Names on enrollment list sorted A - Z
- Display weekday in class edit component subtitles
- PDF button for each invoice in finance invoices list
- Display number of subscription credits available on class date when booking a class (instead of the total available today)
Technical changes
- Dockerfiles now use python slim containers
Fixes
- Text alignment on default invoice pdf template
- Reliably show subscription end dates in profile subscription lists
- Improve sign in reliability & fix possible token refresh loop
- Fix weekday display in enrollments list
- Refetch b2b invoices list after adding one
- Refetch invoice data after adding a payment
- Error sending class info mail when classtype is changed for a single class
- Import OpenStudio class enrollments
- Fix invoice status not set to paid after entering a payment >= invoice amount
- Fix invoice exports failing when account isn't set
v2022.06.01
Fixes
- Fix activities not loading in events component
v2022.06
What's new
- Finance - Expenses (Basic expense tracking)
- Manage enrollments from account profiles
- Show attendance counts in schedule - class -attendance
- Create invoices from b2b profile
- Add VIP & Supplier status to b2b profile
- Insight - Stopped subscriptions
Fixes
- Fix subscription credit list infinite scroll loading
v2022.05
What's new
- Configure whether contact information is required before purchases in the shop can be completed.
- Finance - Quotes
- Branding colors for finance quotes & invoices
- New order email notifications
- Manage a simple product catalog from organization - products
- Sell products from relations - accounts
Improvements
- Added categories to finance home
- Added categories to organization home
- Week chooser in class edit & class attendance components
Technical changes
- docker-compose.yml now contains ENV variables for the Hashicorp vault settings. Settings files should be updated to reflect this.
- docker-compose.yml now contains Hashicorp vault.
Fixes
- Improved sign-in reliability
- Links in page footers pointed to a non-existing url