Skip to main content

A plugin for pretix allowing automated validation of ESNcard numbers

Project description

PyPI - Version PyPI - License

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

  1. 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.

  2. Activate the virtual environment (from the pretix repository, not here!).

  3. cd to the pretix-esncard repository and run python3 setup.py develop. This will install the plugin on the Pretix instance.

  4. Go back to the pretix repository. cd into src and run python3 manage.py runserver.

  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pretix_esncard-1.3.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pretix_esncard-1.3.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

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

Hashes for pretix_esncard-1.3.0.tar.gz
Algorithm Hash digest
SHA256 7e4428ff194ec242d939568c67880c05ee744f16f4b2707555308094f25a9e26
MD5 b2bdb38d2b9ededf897d4f8d9ef6c350
BLAKE2b-256 3398c7e98bdc6fec47432e63dcfc8f74a26c64f44d070561ed3f1160c44457ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for pretix_esncard-1.3.0.tar.gz:

Publisher: publish.yml on esn-sweden/pretix-esncard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for pretix_esncard-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5cd89f226174625083f65f2a82c6ba3168318718345dc5b71d130398cc0f7dd4
MD5 0389746025d96b44e3ad3fdc94b8d830
BLAKE2b-256 98cae5f4948832f678c5b4f49deab2d252ba68a92ec26676822cee21039fa965

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page