Skip to content

Commit

Permalink
Merge pull request #22 from yduman/user-story-16
Browse files Browse the repository at this point in the history
Capturing Freie Fragen
  • Loading branch information
ckleemann committed Jan 18, 2017
2 parents 065dff2 + 348236a commit e608f39
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 13 deletions.
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
coverage==4.3.1
coverage==4.3.2
Django==1.10.5
django-debug-toolbar==1.6
docutils==0.13.1
Expand Down
5 changes: 5 additions & 0 deletions src/feedback/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,11 @@ class Meta:
fields = ('email', 'anschrift')


class VeranstaltungFreieFragen(forms.ModelForm):
class Meta:
model = Veranstaltung
fields = ('freiefrage1', 'freiefrage2')


class UploadFileForm(forms.Form):
file = forms.FileField(label='Datei')
Expand Down
21 changes: 21 additions & 0 deletions src/feedback/migrations/0032_auto_20170117_1536.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.5 on 2017-01-17 15:36
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('feedback', '0031_veranstaltung_primaerdozent'),
]

operations = [
migrations.AlterField(
model_name='veranstaltung',
name='primaerdozent',
field=models.ForeignKey(blank=True, help_text='Die Person, die im Anschreiben erw\xe4hnt wird', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='primaerdozent', to='feedback.Person'),
),
]
41 changes: 30 additions & 11 deletions src/feedback/tests/test_views_veranstalter.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,12 @@ def test_nothing(self):
def test_post_bestellung(self):
Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
c = login_veranstalter(self.v)
response_firststep = c.post('/veranstalter/', {'evaluation-evaluieren': True,
"veranstalter_wizard-current_step": "evaluation"})
response_first_step = c.post('/veranstalter/', {'evaluation-evaluieren': True,
"veranstalter_wizard-current_step": "evaluation"})

self.assertTemplateUsed(response_firststep, "formtools/wizard/basisdaten.html")
self.assertTemplateUsed(response_first_step, "formtools/wizard/basisdaten.html")

response_secondstep = c.post('/veranstalter/', {
response_second_step = c.post('/veranstalter/', {
"veranstalter_wizard-current_step": "basisdaten",
"basisdaten-typ": "vu",
"basisdaten-anzahl": 22,
Expand All @@ -79,28 +79,36 @@ def test_post_bestellung(self):
"save": "Speichern"
})

self.assertTemplateUsed(response_secondstep, "formtools/wizard/primaerdozent.html")
self.assertTemplateUsed(response_second_step, "formtools/wizard/primaerdozent.html")

response_thirdstep = c.post('/veranstalter/', {
response_third_step = c.post('/veranstalter/', {
"veranstalter_wizard-current_step": "primaerdozent",
"primaerdozent-primaerdozent": self.p.id
})

self.assertTemplateUsed(response_thirdstep, "formtools/wizard/address.html")
self.assertTemplateUsed(response_third_step, "formtools/wizard/address.html")

response_fourth_step = c.post('/veranstalter/', {
"veranstalter_wizard-current_step": "verantwortlicher_address",
"verantwortlicher_address-email": "test@test.de",
"verantwortlicher_address-anschrift": "Alexanderstrasse 8, 64287 Darmstadt"
})

self.assertTemplateUsed(response_fourth_step, "formtools/wizard/freiefragen.html")

response_fifth_step = c.post('/veranstalter/', {
"veranstalter_wizard-current_step": "freie_fragen",
"freie_fragen-freifrage1": "Ist das die erste Frage?",
"freie_fragen-freifrage2": "Ist das die zweite Frage?"
})

self.v.refresh_from_db()
self.p.refresh_from_db()

self.assertTrue(self.v.evaluieren)
self.assertEqual(self.v.primaerdozent, self.p)
self.assertEqual(self.p.email, "test@test.de")
self.assertTemplateUsed(response_fourth_step, "formtools/wizard/zusammenfassung.html")
self.assertTemplateUsed(response_fifth_step, "formtools/wizard/zusammenfassung.html")

def test_post_keine_evaluation(self):
Einstellung.objects.create(name='bestellung_erlaubt', wert='1')
Expand Down Expand Up @@ -136,8 +144,11 @@ def test_post_access_bestellung(self):

c = login_veranstalter(self.v)

response_firststep = c.post('/veranstalter/', {'evaluation-evaluieren': True,
"veranstalter_wizard-current_step": "evaluation"})
response_firststep = c.post('/veranstalter/', {
'evaluation-evaluieren': True,
"veranstalter_wizard-current_step": "evaluation"
})

self.v.refresh_from_db()
self.assertTrue(self.v.evaluieren)
self.assertTemplateUsed(response_firststep, "formtools/wizard/basisdaten.html")
Expand Down Expand Up @@ -168,11 +179,19 @@ def test_post_bestellung_ein_ergebnis_empfaenger(self):
"verantwortlicher_address-anschrift": "Alexanderstrasse 8, 64287 Darmstadt"
})

self.assertTemplateUsed(response_fourth_step, "formtools/wizard/freiefragen.html")

response_fifth_step = c.post('/veranstalter/', {
"veranstalter_wizard-current_step": "freie_fragen",
"freie_fragen-freifrage1": "Ist das die erste Frage?",
"freie_fragen-freifrage2": "Ist das die zweite Frage?"
})

self.v.refresh_from_db()
self.p.refresh_from_db()

self.assertTrue(self.v.evaluieren)
self.assertEqual(self.v.primaerdozent, self.p2)
self.assertEqual(self.p.email, "test@test.de")
self.assertTemplateUsed(response_fourth_step, "formtools/wizard/zusammenfassung.html")
self.assertTemplateUsed(response_fifth_step, "formtools/wizard/zusammenfassung.html")

6 changes: 5 additions & 1 deletion src/feedback/views/veranstalter.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

from feedback.models import Veranstaltung
from feedback.forms import VeranstaltungEvaluationForm, VeranstaltungBasisdatenForm, VeranstaltungPrimaerDozentForm, \
VeranstaltungDozentDatenForm
VeranstaltungDozentDatenForm, VeranstaltungFreieFragen


@require_safe
Expand All @@ -38,6 +38,7 @@ def login(request):
"basisdaten": "formtools/wizard/basisdaten.html",
"primaerdozent": "formtools/wizard/primaerdozent.html",
"verantwortlicher_address": "formtools/wizard/address.html",
"freie_fragen": "formtools/wizard/freiefragen.html"
}


Expand Down Expand Up @@ -73,11 +74,14 @@ class VeranstalterWizard(SessionWizardView):
('basisdaten', VeranstaltungBasisdatenForm),
('primaerdozent', VeranstaltungPrimaerDozentForm),
('verantwortlicher_address', VeranstaltungDozentDatenForm),
('freie_fragen', VeranstaltungFreieFragen),
]

condition_dict = {
'basisdaten': perform_evalution,
'primaerdozent': show_primaerdozent_form,
'verantwortlicher_address': perform_evalution,
'freie_fragen': perform_evalution,
}

def get_instance(self):
Expand Down
6 changes: 6 additions & 0 deletions src/templates/formtools/wizard/freiefragen.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{% extends "formtools/wizard/base.html" %}

{% block feedback_veranstalter_form %}
<h3>Erfassung der Freien Fragen</h3>
{{ wizard.form }}
{% endblock %}

0 comments on commit e608f39

Please sign in to comment.