v2.4.1 Release Notes

V2.4 to V2.4.1

Copy and paste the contents of:

  • api
  • other_modules
  • store

Restart Donation Store:

service donationstore restart

V2.4 Release Notes

V2.4 marks quite a large update as Donation Store has been updated from Python 2.7 and Django 1.11 to Python 3.8 and Django 3.0.6 respectively. Because of this, it is advised that you read the upgrade instructions carefully as there quite a few things that need to be changed. The upgrade process should remain quite simple. It's advised that you upgrade as soon as possible


  • Updated to Python 3.8 and Django 3.0.6
  • Stop non super users from being able to delete super users.
  • Loyalty Rewards Setting Gift Card Current Balance Properly
  • Added "Include Global Commnds" and "Exclude Package Commmands" when adding a manual payment
  • Language Auto Detection from listed files in /languages
  • Fixed docs links
  • Fixed module spelling mistakes
  • Added ability to change from email in SMTP information
  • Fixed certain group permissions that were having issues and fixed issue where the same perm was listed.
  • Fixed package gifting so that only the packages being gifted have the giftee's UUID, the others that aren't being gifted don't have it
  • Fixed currency issues
  • Added Category slug so you can go to yourdomain.com/yourcategory, instead of a number/ID
  • Fixed issue where the packages weren't being sorted properly by price if selected in category
  • Fixed permissions so that if theres more than one existing it will pick one instead of throwing an error
  • Fixed permissions for fraud permissions. They fall under "Chargeback Case" Permissions
  • Made it so that System Logs can now be viewed through the Control Panel instead of through the database
  • Fixed issue where ticket replies could be sent by both staff and customers with an empty body
  • Added permissions for viewing statistics
  • Fixed issue with Coupons and Gift Cards being added to the Webhook request incorrectly
  • Fixed issue where Coupons and Gift Cards stay in your cart after the payment is made
  • Fixed issue where the redeem limit per coupon per user wasn't working
  • Fixed issue where the expiry of a coupon for the total number of redeems wasn't working
  • Fixed issue where allowing a coupon on a certain basket wasn't working
  • Fixed issue where start date on coupon wasn't working
  • Fixed issue where minimum basket amount wasn't working
   Gift Cards
  • Completely overhauled how gift cards are handled at checkout. Originally it involved taking the money from the card first and then letting the payment continue. However this was problematic as if the payment was abandoned the user would still have money taken from them
  • The money from the gift card is only taken after the payment has completed and extra error handling and notifications have been added to stop Gift Cards from being used simultaneously/being abused
  • Made Gift Cards deletable and editable
   Stripe, SCA and Chargeback Evidence
  • Re-implemented Stripe to be inline with SCA
  • Fixed refund handling on Stripe
  • Added chargeback evidence auto generation (PDF) for Disputes on Stripe and Chargebacks on PayPal
  • Made Stripe evidence be automatically submittable to Stripe from the Control Panel

Upgrading to V2.4 (From Any Version)

You must manually upgrade, you cannot use the setup script for this

Step 1: Delete the Old Virtual Environment

The virtual environment is what stores the Python version for Donation Store and it's dependencies. With Python 3, there is a built in tool for creating a virtual environment, so let's delete the old one.

In the following folder:


Delete the following folders:

  • bin
  • local
  • include
  • lib
  • share
Step 2: Install Python 3.8

Donation Store used to use Python 2.7, meaning you could run anything using the python command. However, Python 3 uses the python3 command. Most Ubuntu servers have Python 3 installed in some form, to check simply run:


If it is installed, and the version states 3.8.x you can skip this step. If not, continue below:

sudo apt-get install python3.8 python3.8-venv python3.8-dev

Now we need to set the default Python version to 3.8

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2

Now we need to make sure that Python 3.8 is set. Run the python3 command again:


Step 3: Recreate the Virtual Environment

Run the following command to recreate the virtual environment

python3 -m venv /home/donationstore/env

Step 4: Replace new Application Files

Drag and drop the contents of the following files (all of the files, make sure to overwrite) into your servers respetive folders EXCLUDING THE SETTINGS.PY FILE IN DonationStoreV2. DO NOT OVERWRITE THAT

  • api
  • controlpanel
  • install
  • ipn
  • languages
  • other_moduleS
  • store
Step 5: Install new Dependencies

You need to now install the new dependcies into your virtual environment. Take the new requirements.txt file from the downloaded files in the /setup directory and place it into home and navigate to there.

source /home/donationstore/env/bin/activate
pip3 install wheel
pip3 install -r requirements.txt

Step 6: Change Database Driver

As of Python 3, the old MySQL-python driver is no longer supported. If you are using MySQL, you'll have to install the new driver using:

pip3 install mysqlclient

Step 7: Migrate new Table

While you environment is still activated from the previous step, navigate to the following directory and run the following command

cd /home/donationstore/env
python3 manage.py migrate

Step 8: Collect Static Files

You need to now collect some static files that were added in this update and choose 'yes' when asked if toy want to overwrite current files.

cd /home/donationstore/env
python3 manage.py collectstatic

Step 9: Protect Evidence Directory

Because the evidence files that are generated on chargeback are in the static files directory, we need to ensure that they are protected from external access and are only accessible internally by the app to users who are logged in and have the correct permissions.

To do so we need to edit or Nginx configuration and add a location block under the current static location block.

nano /etc/nginx/sites-available/DonationStore

Add the following, under the already existing location /static block.

location /static/evidence {
   alias /home/donationstore/env/static/evidence;

Step 10: Restart Services

Now you just need to restart Nginx and Donation Store

service nginx restart
service donationstore restart

Step 11: Stripe

If you had Stripe setup before installing the V2.4 update, please delete the gateway and re add it because it needs to add some features to your Stripe account.

Step 12: Update SMTP From Information

Donation Store now uses the SMTP from email in your Application Settings page to send emails. You need add your SMTP from email here