mirror of
https://github.com/pretix/pretix.git
synced 2026-08-07 10:17:49 +00:00
@@ -17,10 +17,27 @@
|
||||
{% bootstrap_field form.type layout="horizontal" %}
|
||||
{% bootstrap_field form.required layout="horizontal" %}
|
||||
</fieldset>
|
||||
<div class="alert alert-info alert-required-boolean">
|
||||
{% blocktrans trimmed %}
|
||||
If you mark a Yes/No question as required, it means that the user has to select Yes and No is not
|
||||
accepted. If you want to allow both options, do not make this field required.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
<div class="form-group submit-group">
|
||||
<button type="submit" class="btn btn-primary btn-save">
|
||||
{% trans "Save" %}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
function alert_required_boolean() {
|
||||
var show = $("#id_type").val() == "B" && $("#id_required").prop("checked");
|
||||
$(".alert-required-boolean").toggle(show);
|
||||
}
|
||||
$("#id_type").change(alert_required_boolean);
|
||||
$("#id_required").change(alert_required_boolean);
|
||||
alert_required_boolean();
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
@@ -100,34 +100,6 @@ class CheckoutTestCase(TestCase):
|
||||
self.assertEqual(cr1.answers.filter(question=q2).count(), 1)
|
||||
self.assertFalse(cr2.answers.filter(question=q2).exists())
|
||||
|
||||
@expectedFailure
|
||||
def test_boolean_required_question(self):
|
||||
"""
|
||||
Expected to fail. See https://github.com/pretix/pretix/issues/19
|
||||
"""
|
||||
q1 = Question.objects.create(
|
||||
event=self.event, question='Breakfast', type=Question.TYPE_BOOLEAN,
|
||||
required=True
|
||||
)
|
||||
self.ticket.questions.add(q1)
|
||||
cr1 = CartPosition.objects.create(
|
||||
event=self.event, user=self.user, item=self.ticket,
|
||||
price=23, expires=now() + timedelta(minutes=10)
|
||||
)
|
||||
response = self.client.get('/%s/%s/checkout' % (self.orga.slug, self.event.slug), follow=True)
|
||||
doc = BeautifulSoup(response.rendered_content)
|
||||
self.assertEqual(len(doc.select('input[name=%s-question_%s]' % (cr1.identity, q1.identity))), 1)
|
||||
|
||||
response = self.client.post('/%s/%s/checkout' % (self.orga.slug, self.event.slug), {
|
||||
'%s-question_%s' % (cr1.identity, q1.identity): '',
|
||||
}, follow=True)
|
||||
self.assertRedirects(response, '/%s/%s/checkout/payment' % (self.orga.slug, self.event.slug),
|
||||
target_status_code=200)
|
||||
|
||||
cr1 = CartPosition.objects.current.get(identity=cr1.identity)
|
||||
self.assertEqual(cr1.answers.filter(question=q1).count(), 1)
|
||||
self.assertEqual(cr1.answers.get(question=q1).value, 'False')
|
||||
|
||||
def test_attendee_name_required(self):
|
||||
self.event.settings.set('attendee_names_asked', True)
|
||||
self.event.settings.set('attendee_names_required', True)
|
||||
|
||||
Reference in New Issue
Block a user