Skip to content
Snippets Groups Projects
Commit c150ab6c authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Link accepted terms to registration

parent 97d73329
No related branches found
No related tags found
1 merge request!1Reformat and cleanup
# Generated by Django 3.2.12 on 2022-02-20 21:23
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('paweljong', '0009_remove_feedback'),
]
operations = [
migrations.AddField(
model_name='terms',
name='confirmation_text',
field=models.TextField(default='', verbose_name='Confirmation text'),
preserve_default=False,
),
]
# Generated by Django 3.2.12 on 2022-02-20 22:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('paweljong', '0010_term_confirmation_text'),
]
operations = [
migrations.AddField(
model_name='eventregistration',
name='accepted_terms',
field=models.ManyToManyField(related_name='registrations', to='paweljong.Terms', verbose_name='Accepted terms'),
),
]
......@@ -14,6 +14,7 @@ from aleksis.core.util.core_helpers import generate_random_code
class Terms(ExtensibleModel):
title = models.CharField(max_length=255, verbose_name=_("Title"))
term = RichTextField(verbose_name=_("Term"))
confirmation_text = models.TextField(verbose_name=_("Confirmation text"))
def __str__(self) -> str:
return self.title
......@@ -141,6 +142,11 @@ class EventRegistration(ExtensibleModel):
null=True,
)
donation = models.PositiveIntegerField(verbose_name=_("Donation"), blank=True, null=True)
accepted_terms = models.ManyToManyField(
Terms,
verbose_name=_("Accepted terms"),
related_name="registrations",
)
accept_sepa = models.BooleanField(verbose_name=_("SEPA direct debit"))
iban = IBANField(
......
......@@ -272,7 +272,7 @@ def is_email_needed(wizard):
return True
register_forms = }
TEMPLATES = {
"email": "paweljong/event/register_wizard.html",
"register": "paweljong/event/register_wizard.html",
"contact_details": "paweljong/event/register_wizard.html",
......@@ -286,6 +286,9 @@ class RegisterEventWizardView(SessionWizardView):
template_name = "paweljong/event/register_wizard.html"
file_storage = settings.DEFAULT_FILE_STORAGE
def get_template_names(self):
return [TEMPLATES[self.steps.current]]
def get_context_data(self, form, **kwargs):
context = super().get_context_data(form, **kwargs)
context["event"] = Event.objects.get(linked_group__short_name=self.kwargs["slug"])
......@@ -363,11 +366,15 @@ class RegisterEventWizardView(SessionWizardView):
kwargs = super().get_form_kwargs()
if step == "email":
kwargs["request"] = self.request
if step == "additional" or step == "consent":
if step == "additional":
event = Event.objects.get(linked_group__short_name=self.kwargs["slug"])
kwargs["event"] = event
if step == "consent":
event = Event.objects.get(linked_group__short_name=self.kwargs["slug"])
kwargs["event"] = event
return kwargs
def get_form_initial(self, step):
initial = self.initial_dict.get(step, {})
......@@ -543,10 +550,10 @@ class RegisterEventWizardView(SessionWizardView):
slugify(field.title).replace("-", "_")
] = cleaned_data_additional[field.title]
for field in event.terms.all():
registration.extended_data[
slugify(field.title).replace("-", "_")
] = cleaned_data_consent[field.title]
for field in cleaned_data_consent:
pk = int(field.split("_")[1])
term = Terms.objects.get(id=pk)
registration.accepted_terms.add(term)
registration.save()
......@@ -590,7 +597,7 @@ class RegisterEventWizardView(SessionWizardView):
)
act = Activity(
[5~ title=_("You registred for an event"),
title=_("You registred for an event"),
description=_("You registred for the event %s" % event.display_name),
app="Paweljong",
user=person,
......@@ -611,6 +618,7 @@ class EventFullView(DetailView):
context = super().get_context_data(**kwargs)
context["can_register"] = context["event"].can_register(request=self.request)
context["is_authenticated"] = self.request.user.is_authenticated
return 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