A plugin for pretix allowing automated validation of ESNcard numbers
Project description
ESNcard Validity Checker
A plugin for Pretix allowing automated validation of ESNcard numbers.
Installation
Make sure to run from Pretix's virtual environment:
sudo -u pretix -s
source /var/pretix/venv/bin/activate
Install the package and update the database:
pip3 install pretix-esncard
python -m pretix migrate
python -m pretix rebuild
Restart Pretix:
sudo systemctl restart pretix-web pretix-worker
For more information about plugin installation, see the Pretix documentation.
Usage
Setup
Activate the plugin from the organizer or event settings.
Go to Products > Questions and select "Create a new question"
- Question: "ESNcard number"
- Type: Text (one line)
- Products: Select all products with an ESNcard discount
- Check "required question"
Go to the Advanced tab
Internal identifier: esncard
[!NOTE] You must write exactly this identifier for the plugin to work.
Validation
The ESNcard number is validated against the ESNcard API during checkout and the customer is notified of any errors.
The validation fails if the entered ESNcard number:
- is not found
- is expired
- is unregistered (the user must register their card on esncard.org)
- is used several times in the same order (each person must have their own ESNcard)
Cloudflare bypass token
To avoid getting blocked by Cloudflare when sending many requests, you may ask the WPA of ESN International for a bypass token which you can configure in the global Pretix settings. You can access the global settings by enabling admin mode and look for the option in the bottom of the left sidebar.
Development
Setup
-
Make sure that you have a working pretix development setup, including a virtual environment. Running on Linux is highly recommended as you may face issues with Windows.
-
Activate the virtual environment (from the pretix repository, not here!).
-
cdto thepretix-esncardrepository and runpython3 setup.py develop. This will install the plugin on the Pretix instance. -
Go back to the
pretixrepository.cdintosrcand runpython3 manage.py runserver. -
Enable the plugin in the event settings.
In VS Code configure Python: Select Interpreter and point it to path/to/pretix/env/bin/python. Never create a virtual environment within pretix-esncard, it will lead to errors.
Linting
This plugin has CI set up to enforce a few code style rules. To check locally, you need these packages installed:
pip install flake8 isort black
To check your plugin for rule violations, run:
black --check .
isort -c .
flake8 .
You can auto-fix some of these issues by running:
isort .
black .
To automatically check for these issues before you commit, add the following to .git/hooks/pre-commit:
#!/bin/bash
source /home/user/pretix/env/bin/activate # Adjust this to the path on your computer
for file in $(git diff --cached --name-only | grep -E '\.py$' | grep -Ev "migrations|mt940\.py|pretix/settings\.py|make>
do
echo $file
git show ":$file" | flake8 - --stdin-display-name="$file" || exit 1 # we only want to lint the staged changes, not an>
git show ":$file" | isort -c - | grep ERROR && exit 1 || true
done
Translations
Update translatable strings:
make localegen
After translating the strings in the .po files, run
make
to generate the binary .mo files.
Add a new language by copying the file structure. LANGUAGE_CODE/LC_MESSAGES/django.po.
Make sure Language: in the header contains the correct language code.
License
Copyright 2023 ESN Sea Battle OC
Released under the terms of the Apache License 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pretix_esncard-1.3.0.tar.gz.
File metadata
- Download URL: pretix_esncard-1.3.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e4428ff194ec242d939568c67880c05ee744f16f4b2707555308094f25a9e26
|
|
| MD5 |
b2bdb38d2b9ededf897d4f8d9ef6c350
|
|
| BLAKE2b-256 |
3398c7e98bdc6fec47432e63dcfc8f74a26c64f44d070561ed3f1160c44457ba
|
Provenance
The following attestation bundles were made for pretix_esncard-1.3.0.tar.gz:
Publisher:
publish.yml on esn-sweden/pretix-esncard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pretix_esncard-1.3.0.tar.gz -
Subject digest:
7e4428ff194ec242d939568c67880c05ee744f16f4b2707555308094f25a9e26 - Sigstore transparency entry: 920105264
- Sigstore integration time:
-
Permalink:
esn-sweden/pretix-esncard@6f13cad1a6433556d12ec798d80e97c6a08a5243 -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/esn-sweden
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6f13cad1a6433556d12ec798d80e97c6a08a5243 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pretix_esncard-1.3.0-py3-none-any.whl.
File metadata
- Download URL: pretix_esncard-1.3.0-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cd89f226174625083f65f2a82c6ba3168318718345dc5b71d130398cc0f7dd4
|
|
| MD5 |
0389746025d96b44e3ad3fdc94b8d830
|
|
| BLAKE2b-256 |
98cae5f4948832f678c5b4f49deab2d252ba68a92ec26676822cee21039fa965
|
Provenance
The following attestation bundles were made for pretix_esncard-1.3.0-py3-none-any.whl:
Publisher:
publish.yml on esn-sweden/pretix-esncard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pretix_esncard-1.3.0-py3-none-any.whl -
Subject digest:
5cd89f226174625083f65f2a82c6ba3168318718345dc5b71d130398cc0f7dd4 - Sigstore transparency entry: 920105270
- Sigstore integration time:
-
Permalink:
esn-sweden/pretix-esncard@6f13cad1a6433556d12ec798d80e97c6a08a5243 -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/esn-sweden
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6f13cad1a6433556d12ec798d80e97c6a08a5243 -
Trigger Event:
push
-
Statement type: