forked from CGM_Public/pretix_original
Fix KeyError in question_is_visible if question dependency is unknown
This commit is contained in:
@@ -348,6 +348,8 @@ class BaseQuestionsForm(forms.Form):
|
|||||||
question_cache = {f.question.pk: f.question for f in self.fields.values() if getattr(f, 'question', None)}
|
question_cache = {f.question.pk: f.question for f in self.fields.values() if getattr(f, 'question', None)}
|
||||||
|
|
||||||
def question_is_visible(parentid, qvals):
|
def question_is_visible(parentid, qvals):
|
||||||
|
if parentid not in question_cache:
|
||||||
|
return False
|
||||||
parentq = question_cache[parentid]
|
parentq = question_cache[parentid]
|
||||||
if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values):
|
if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values):
|
||||||
return False
|
return False
|
||||||
|
|||||||
@@ -1043,6 +1043,8 @@ class AbstractPosition(models.Model):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def question_is_visible(parentid, qvals):
|
def question_is_visible(parentid, qvals):
|
||||||
|
if parentid not in question_cache:
|
||||||
|
return False
|
||||||
parentq = question_cache[parentid]
|
parentq = question_cache[parentid]
|
||||||
if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values):
|
if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values):
|
||||||
return False
|
return False
|
||||||
|
|||||||
@@ -441,6 +441,8 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def question_is_visible(parentid, qvals):
|
def question_is_visible(parentid, qvals):
|
||||||
|
if parentid not in question_cache:
|
||||||
|
return False
|
||||||
parentq = question_cache[parentid]
|
parentq = question_cache[parentid]
|
||||||
if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values):
|
if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values):
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user