From 4edc7d95c630f15c2ec31629e0f21d567897d845 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 26 Jan 2026 10:00:11 +0100 Subject: [PATCH] Address form: Add missing province Aosta for Italy (#5796) (#5800) --- src/pretix/base/settings.py | 6 ++++-- src/pretix/helpers/countries.py | 13 +++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index e1ad944b2..1562133f9 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -76,7 +76,7 @@ from pretix.base.validators import multimail_validate from pretix.control.forms import ( ExtFileField, FontSelect, MultipleLanguagesWidget, SingleLanguageWidget, ) -from pretix.helpers.countries import CachedCountries +from pretix.helpers.countries import CachedCountries, pycountry_add ROUNDING_MODES = ( ('line', _('Compute taxes for every line individually')), @@ -3936,7 +3936,7 @@ COUNTRIES_WITH_STATE_IN_ADDRESS = { 'MX': (['State', 'Federal district', 'Federal entity'], 'short'), 'US': (['State', 'Outlying area', 'District'], 'short'), 'IT': (['Province', 'Free municipal consortium', 'Metropolitan city', 'Autonomous province', - 'Free municipal consortium', 'Decentralized regional entity'], 'short'), + 'Decentralized regional entity'], 'short'), } COUNTRY_STATE_LABEL = { # Countries in which the "State" field should not be called "State" @@ -3944,6 +3944,8 @@ COUNTRY_STATE_LABEL = { 'JP': pgettext_lazy('address', 'Prefecture'), 'IT': pgettext_lazy('address', 'Province'), } +# Workaround for https://github.com/pretix/pretix/issues/5796 +pycountry_add(pycountry.subdivisions, code="IT-AO", country_code="IT", name="Valle d'Aosta", parent="23", parent_code="IT-23", type="Province") settings_hierarkey = Hierarkey(attribute_name='settings') diff --git a/src/pretix/helpers/countries.py b/src/pretix/helpers/countries.py index eeae03bd5..830501338 100644 --- a/src/pretix/helpers/countries.py +++ b/src/pretix/helpers/countries.py @@ -136,3 +136,16 @@ custom_translations = [ gettext_noop("North Macedonia"), gettext_noop("Macao"), ] + + +def pycountry_add(db, **kw): + # Workaround for https://github.com/pycountry/pycountry/issues/281 + db._load() + obj = db.factory(**kw) + db.objects.append(obj) + for key, value in kw.items(): + if key in db.no_index: + continue + value = value.lower() + index = db.indices.setdefault(key, {}) + index.setdefault(value, set()).add(obj)