Skip to content
Snippets Groups Projects
Verified Commit 759c4e87 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Add view and everything related for additional registration field submission.

Closes #15, #26.
parent 381cfe4c
No related branches found
No related tags found
1 merge request!20Add dynamic fields to event registration
{% extends "ticdesk/base_with_info_sidebar.html" %}
{% load bootstrap3 i18n %}
{% block page_title %}{% blocktrans %}Zusätzliche Angaben zur Veranstaltungsanmeldung{% endblocktrans %}{% endblock %}
{% block content_info_children %}
{% blocktrans %}
Bitte lies dir mit deinen Eltern gemeinsam alles genau durch und schicke
deine Anmeldung dann mit ihnen gemeinsam ab!
{% endblocktrans %}
{% endblock %}
{% block content_info_parents %}
{% blocktrans %}
Bitte gehen Sie die Anmeldung mit Ihrem Kind gemeinsam durch. Uns ist es
wichtig, schon mit der Anmeldung wichtige Kompetenzen im Umgang mit dem
Internet und Verantwortung im Allgemeinen zu trainieren.
{% endblocktrans %}
{% endblock %}
{% block main_content %}
<h2>
{% blocktrans %}Zusätzliche Angaben zu{% endblocktrans %} {{ event.display_name }}
</h2>
{% if error %}
<div class="panel panel-danger">
<div class="panel-heading">
{% blocktrans %}Fehler{% endblocktrans %}
</div>
<div class="panel-body">
<p>
{{ error }}
</p>
</div>
</div>
{% elif success %}
<div class="panel panel-success">
<div class="panel-heading">
{% blocktrans %}Anmeldung erfolgreich{% endblocktrans %}
</div>
<div class="panel-body">
<p>
{% blocktrans %}
Du hast deien Angaben erfolgreich eingesendet.
{% endblocktrans %}
</p>
</div>
</div>
{% else %}
<form method="post">
{% csrf_token %}
{% bootstrap_form register_form %}
<input type="submit" value="{% blocktrans %}Absenden{% endblocktrans %}" />
</form>
{% endif %}
{% endblock %}
......@@ -5,5 +5,6 @@ from . import views
urlpatterns = [
url(r'^upcoming$', views.upcoming_events, name='upcoming_events'),
url(r'^register/(?P<cn>[a-z][a-z0-9-]+)$', views.register_event, name='register_event_by_cn'),
url(r'^register/(?P<cn>[a-z][a-z0-9-]+)/additional$', views.register_event_additional, name='register_event_additional_by_cn'),
url(r'^feedback/(?P<cn>[a-z][a-z0-9-]+)$', views.feedback_event, name='feedback_event_by_cn'),
]
......@@ -188,6 +188,66 @@ def register_event(request, cn):
return render(request, 'ticdesk_events/register_event.html', context)
def register_event_additional(request, cn):
context = {}
# Only authenticated users can add registration data for events
if not request.user.is_authenticated:
return redirect(reverse('ticdesk_account:login') + '?next=%s' % request.path)
# Get current person and event
current_person = TeckidsPerson.objects.get(uid=request.user.username)
event = TeckidsProject.objects.get(cn=cn)
context['event'] = event
register_form = EventAdditionalSurveyForm(event)
# Check whether person is already a member of the event
if current_person.dn not in event.members:
context['error'] = _('Du bist nicht zu dieser Veranstaltung angemeldet.')
return render(request, 'ticdesk_events/register_event_additional.html', context)
if request.method == 'POST':
register_form = EventAdditionalSurveyForm(event, request.POST)
if register_form.is_valid():
# Store additional registration fields
for field in event.registration_fields:
label, help_text, *choices = field.split('|')
var = re.sub(r'\W|^(?=\d)', '_', label)
try:
field = RegistrationField.objects.get(project_cn = event.cn, person_uid=current_person.uid, title=label)
except RegistrationField.DoesNotExist:
field = RegistrationFeild.objects.create(project_cn = event.cn, person_uid=current_person.uid, title=label)
field.content = register_form.cleaned_data[var]
field.save()
# Produce e-mail to registration queue
message = EmailMessage()
message.reply_to = (current_person.mail, register_form.cleaned_data['guardian_mail'])
message.to = ['anmeldung@teckids.org',]
message.subject = _('Zusätzliche Angaben: %s von %s') % (event.display_name, current_person.cn)
message.extra_headers = {
'X-OTRS-DynamicField-TeckidsEvent': event.display_name,
'X-OTRS-CustomerUser': current_person.uid
}
message.body = ''
message.body += form_to_text_table(register_form, 78)
# Attach raw form data as attachment
message.attach('register_form.json', json.dumps(register_form.cleaned_data, indent=4, default=str), 'application/json')
# Send message
message.send()
# Set success
context['success'] = True
context['register_form'] = register_form
return render(request, 'ticdesk_events/register_event_additional.html', context)
def feedback_event(request, cn):
context = {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment