diff --git a/src/pretix/api/serializers/item.py b/src/pretix/api/serializers/item.py
index dea711d79..d4b2c3103 100644
--- a/src/pretix/api/serializers/item.py
+++ b/src/pretix/api/serializers/item.py
@@ -555,7 +555,8 @@ class QuestionSerializer(I18nAwareModelSerializer):
def validate_dependency_question(self, value):
if value:
- if value.type not in (Question.TYPE_CHOICE, Question.TYPE_BOOLEAN, Question.TYPE_CHOICE_MULTIPLE):
+ if value.type not in (Question.TYPE_CHOICE, Question.TYPE_BOOLEAN, Question.TYPE_CHOICE_MULTIPLE,
+ Question.TYPE_COUNTRYCODE):
raise ValidationError('Question dependencies can only be set to boolean or choice questions.')
if value == self.instance:
raise ValidationError('A question cannot depend on itself.')
diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py
index bb56ceb9c..5b91ba8ce 100644
--- a/src/pretix/base/forms/questions.py
+++ b/src/pretix/base/forms/questions.py
@@ -1061,6 +1061,7 @@ class BaseQuestionsForm(forms.Form):
return (
('True' in qvals and dval)
or ('False' in qvals and not dval)
+ or (parentq.type == Question.TYPE_COUNTRYCODE and str(dval) in qvals)
or (isinstance(dval, QuestionOption) and dval.identifier in qvals)
or (isinstance(dval, (list, QuerySet)) and any(qval in [o.identifier for o in dval] for qval in qvals))
)
diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py
index f8201f071..2ee78f059 100644
--- a/src/pretix/base/models/orders.py
+++ b/src/pretix/base/models/orders.py
@@ -1623,6 +1623,7 @@ class AbstractPosition(RoundingCorrectionMixin, models.Model):
return (
('True' in qvals and self.answ[parentid].answer == 'True')
or ('False' in qvals and self.answ[parentid].answer == 'False')
+ or (parentq.type == Question.TYPE_COUNTRYCODE and self.answ[parentid].answer in qvals)
or (any(qval in [o.identifier for o in self.answ[parentid].options.all()] for qval in qvals))
)
diff --git a/src/pretix/control/forms/item.py b/src/pretix/control/forms/item.py
index 6d5b8f179..5fbb8f251 100644
--- a/src/pretix/control/forms/item.py
+++ b/src/pretix/control/forms/item.py
@@ -155,7 +155,7 @@ class QuestionForm(I18nModelForm):
self.fields['items'].queryset = self.instance.event.items.all()
self.fields['items'].required = True
self.fields['dependency_question'].queryset = self.instance.event.questions.filter(
- type__in=(Question.TYPE_BOOLEAN, Question.TYPE_CHOICE, Question.TYPE_CHOICE_MULTIPLE),
+ type__in=(Question.TYPE_BOOLEAN, Question.TYPE_CHOICE, Question.TYPE_CHOICE_MULTIPLE, Question.TYPE_COUNTRYCODE),
ask_during_checkin=False
)
if self.instance.pk:
diff --git a/src/pretix/control/templates/pretixcontrol/items/question_edit.html b/src/pretix/control/templates/pretixcontrol/items/question_edit.html
index e42b084cf..953841082 100644
--- a/src/pretix/control/templates/pretixcontrol/items/question_edit.html
+++ b/src/pretix/control/templates/pretixcontrol/items/question_edit.html
@@ -143,6 +143,7 @@