From c3b2b887cd421c6851172831aa4cad86573c514e Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Sun, 20 Feb 2022 18:03:13 +0100 Subject: [PATCH] Update texts --- .../templates/paweljong/event/full.html | 2 +- .../templates/paweljong/event/manage.html | 1 + .../paweljong/event/register_start.html | 69 ++++++++++++--- .../paweljong/event_registration/full.html | 15 +++- .../paweljong/feedback_aspect/list.html | 14 +-- aleksis/apps/paweljong/views.py | 85 +++++++++++++------ 6 files changed, 131 insertions(+), 55 deletions(-) diff --git a/aleksis/apps/paweljong/templates/paweljong/event/full.html b/aleksis/apps/paweljong/templates/paweljong/event/full.html index 09ba8d9..49cec6e 100644 --- a/aleksis/apps/paweljong/templates/paweljong/event/full.html +++ b/aleksis/apps/paweljong/templates/paweljong/event/full.html @@ -54,7 +54,7 @@ </div> </div> <div class="card-action"> - <a href="{% url "register_event_by_name" event.linked_group.name %}">{% trans "Register now" %}</a> + <a href="{% url "register_event_by_slug_start" event.linked_group.short_name %}">{% trans "Register now" %}</a> </div> </div> diff --git a/aleksis/apps/paweljong/templates/paweljong/event/manage.html b/aleksis/apps/paweljong/templates/paweljong/event/manage.html index 3a455fc..bf3179c 100644 --- a/aleksis/apps/paweljong/templates/paweljong/event/manage.html +++ b/aleksis/apps/paweljong/templates/paweljong/event/manage.html @@ -17,6 +17,7 @@ <i class="material-icons left">clear</i> {% trans "Clear" %} </button> + <a class="btn colour-primary waves-effect waves-light" href="{% url 'create_event' %}">{% trans "Create event" %}</a> </form> <h5>{% trans "Selected events" %}</h5> diff --git a/aleksis/apps/paweljong/templates/paweljong/event/register_start.html b/aleksis/apps/paweljong/templates/paweljong/event/register_start.html index 489aaaf..c4c1f81 100644 --- a/aleksis/apps/paweljong/templates/paweljong/event/register_start.html +++ b/aleksis/apps/paweljong/templates/paweljong/event/register_start.html @@ -17,7 +17,39 @@ {{ event.display_name }} </span> <p> - Hier könnte Ihr Erklärungstext stehen… + {% blocktrans %} + Welcome to the registration for this event! Please make sure to fill in + the registration yourself, as the child who wants to participate. + You should fill in the registration together with a parent (or other legal + guardian). + {% endblocktrans %} + </p> + <p> + {% blocktrans %} + We ask parents to not fill in the registration on behalf of their child. + {% endblocktrans %} + </p> + <p> + {% blocktrans %} + Every participant needs a personal e-mail address. This address must be one + that you, the participating child, check and read yourself, not one owned by your + parents. Of course, we will always send important information to your parents as well. + {% endblocktrans %} + </p> + <p> + {% blocktrans %} + If you do not have a personal e-mail address yet, and do not want or cannot register + one with one of the "big" providers (keep in mind that Google, Outlook, etc. are + allowed from 16 years only, and often collect and analyse your private mail), you can + register an e-mail address with us. + {% endblocktrans %} + </p> + <p> + {% blocktrans %} + If you already have a user account with Teckids, do not register a new one. Login + with your existing username and password. If you have forgotten your password, please + send us an e-mail (pelase do this yourself, with the help of your parents, if needed). + {% endblocktrans %} </p> </div> </div> @@ -32,12 +64,12 @@ </li> <li class="tab"> <a href="#without_email"> - {% trans "I have an email address" %} + {% trans "I have a personal email address" %} </a> </li> <li class="tab"> <a href="#with_email"> - {% trans "I don't have an email address" %} + {% trans "I don't have a personal email address" %} </a> </li> {% else %} @@ -49,16 +81,31 @@ <div class="card-content grey lighten-4"> {% if can_register %} <div id="already_registered"> - <p>Ick hab schon nen Account, hier einloggen, blafoo und so</p> - <a href="{% url "login" %}?next=/app/paweljong/event/{{ event.id }}/register">{% trans "Login" %}</a> - </div> - <div id="without_email"> - <p>Lorem Ipsum dolor sit amet (Braucht keine Mail)</p> - <a href="{% url "register_event_by_id" event.id %}">{% trans "Register now" %}</a> + <p> + {% blocktrans %} + If you already have a Teckids account, please login here. If you forgot your password, + or have problems logging in, please send us an e-mail. + {% endblocktrans %} + </p> + <a href="{% url "login" %}?next=/app/paweljong/event/{{ event.linked_group.short_name }}/register">{% trans "Login" %}</a> </div> <div id="with_email"> - <p>Lorem Ipsum dolor sit amet (Braucht Mail)</p> - <a href="{% url "set_email_needed" event.id %}">{% trans "Register now" %}</a> + <p> + {% blocktrans %} + You can now choose a personal e-mail address hosted on our servers. + {% endblocktrans %} + </p> + <a href="{% url "set_email_needed" event.linked_group.short_name %}">{% trans "Register now" %}</a> + </div> + <div id="without_email"> + <p> + {% blocktrans %} + You will be asked for your existing, personal e-mail address. Please remember + that you should not use an address owned by your parents. If you do not have + a personal e-mail address, please choose the respective option instead! + {% endblocktrans %} + </p> + <a href="{% url "register_event_by_slug" event.linked_group.short_name %}">{% trans "Register now" %}</a> </div> {% else %} <div id="not_possible"> diff --git a/aleksis/apps/paweljong/templates/paweljong/event_registration/full.html b/aleksis/apps/paweljong/templates/paweljong/event_registration/full.html index a022247..decf0e8 100644 --- a/aleksis/apps/paweljong/templates/paweljong/event_registration/full.html +++ b/aleksis/apps/paweljong/templates/paweljong/event_registration/full.html @@ -98,6 +98,15 @@ <td colspan="3">{{ registration.person.date_of_birth|date }}</td> </tr> {% endif %} + <tr> + <td></td> + <td> + <i class="material-icons small">school</i> + </td> + <td>{{ registration.school_class }}</td> + <td>{{ registration.school }}</td> + <td>{{ registration.school_place }}</td> + </tr> </table> </div> <div class="col s12 m12"> @@ -107,7 +116,7 @@ <td> <i class="material-icons small">local_activity</a> </td> - <td colspan="3"><a href="{% url 'edit_event_by_pk' registration.event.pk %}">{{ registration.event }}</a></td> + <td colspan="3"><a href="{% url 'edit_event_by_slug' registration.event.linked_group.short_name %}">{{ registration.event }}</a></td> </tr> <tr> <td> @@ -142,7 +151,7 @@ <i class="material-icons small">medical_services</i> </td> <td> - {{ medical_information }} + {{ registration.medical_information }} </td> </tr> </tr> @@ -152,7 +161,7 @@ <i class="material-icons small">question_answer</i> </td> <td> - {{ comment }} + {{ registration.comment }} </td> </tr> </tr> diff --git a/aleksis/apps/paweljong/templates/paweljong/feedback_aspect/list.html b/aleksis/apps/paweljong/templates/paweljong/feedback_aspect/list.html index 8b02215..fef507e 100644 --- a/aleksis/apps/paweljong/templates/paweljong/feedback_aspect/list.html +++ b/aleksis/apps/paweljong/templates/paweljong/feedback_aspect/list.html @@ -8,19 +8,7 @@ {% block content %} - <h5>{% trans "Filter feedback_aspects" %}</h5> - <form method="get"> - {% form form=feedback_aspects_filter.form %}{% endform %} - {% trans "Search" as caption %} - {% include "core/partials/save_button.html" with caption=caption icon="search" %} - <button type="reset" class="btn red waves-effect waves-light"> - <i class="material-icons left">clear</i> - {% trans "Clear" %} - </button> <a class="btn colour-primary waves-effect waves-light" href="{% url 'create_feedback_aspect' %}">{% trans "Create feedback aspect" %}</a> - </form> - - <h5>{% blocktrans %}Selected feedback aspects{% endblocktrans %}</h5> - {% render_table feedback_aspects_table %} + {% render_table table %} {% endblock %} diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py index 6504a8a..7776be6 100644 --- a/aleksis/apps/paweljong/views.py +++ b/aleksis/apps/paweljong/views.py @@ -25,7 +25,7 @@ from aleksis.core.models import Activity, Person from aleksis.core.util import messages from aleksis.core.util.core_helpers import lazy_preference, objectgetter_optional -from .filters import EventFilter, EventRegistrationFilter, VoucherFilter +from .filters import EventFilter, EventRegistrationFilter, VoucherFilter, TermsFilter from .forms import ( EditEventForm, EditEventRegistrationForm, @@ -33,20 +33,21 @@ from .forms import ( EditVoucherForm, EventFeedbackForm, GenerateListForm, + EditTermForm, ) -from .models import Event, EventRegistration, FeedbackAspect, Voucher -from .tables import EventRegistrationsTable, FeedbackAspectsTable, ManageEventsTable, VouchersTable +from .models import Event, EventRegistration, FeedbackAspect, Voucher, Terms +from .tables import EventRegistrationsTable, FeedbackAspectsTable, ManageEventsTable, VouchersTable, TermsTable User = get_user_model() @login_required -def feedback_event(request, pk): +def feedback_event(request, slug): context = {} # Get current person and event - current_person = Person.objects.get(user__username=request.user.username) - event = Event.objects.get(id=pk) + current_person = request.user.person + event = Event.objects.get(linked_group__short_name=slug) context["event"] = event # Prepare the form @@ -111,6 +112,7 @@ class CreateEventView(PermissionRequiredMixin, AdvancedCreateView): class EditEventView(PermissionRequiredMixin, RevisionMixin, AdvancedEditView): form_class = EditEventForm model = Event + slug_field = "linked_group__short_name" permission_required = "paweljong.change_event" context_object_name = "manage_events" template_name = "paweljong/event/edit.html" @@ -361,10 +363,10 @@ def is_person_anonymous(wizard): return wizard.request.user.is_anonymous -def set_email_needed(request, pk): +def set_email_needed(request, slug): request.session["email_needed"] = "true" - return redirect("register_event_by_id", pk) + return redirect("register_event_by_slug", slug) def is_email_needed(wizard): @@ -379,7 +381,7 @@ class RegisterEventWizardView(SessionWizardView): def get_context_data(self, form, **kwargs): context = super().get_context_data(form, **kwargs) - context["event"] = Event.objects.get(id=self.kwargs["pk"]) + context["event"] = Event.objects.get(linked_group__short_name=self.kwargs["slug"]) if self.steps.current == "email": context["page_title"] = "" @@ -399,7 +401,7 @@ class RegisterEventWizardView(SessionWizardView): context["browser_title"] = "" context["info_title"] = _("Contact information") context["info_text"] = _("Tell us how we can contact you. You will receive information about " - "the event by e-mail. Please use your personal e-mail address ", + "the event by e-mail. Please use your personal e-mail address " "where you will read mails yourself, not an address of your parents. " "We will always send all important information to your parents as well, " "and you will enter their e-mail address on the next page.") @@ -438,8 +440,8 @@ class RegisterEventWizardView(SessionWizardView): kwargs = super().get_form_kwargs() if step == "email": kwargs["request"] = self.request - if step == "additional": - event = Event.objects.get(id=self.kwargs["pk"]) + if step == "additional" or step == "consent": + event = Event.objects.get(linked_group__short_name=self.kwargs["slug"]) kwargs["event"] = event return kwargs @@ -509,7 +511,7 @@ class RegisterEventWizardView(SessionWizardView): def done(self, form_list, **kwargs): - event = Event.objects.get(id=self.kwargs["pk"]) + event = Event.objects.get(linked_group__short_name=self.kwargs["slug"]) cleaned_data_email = self.get_cleaned_data_for_step("email") cleaned_data_contact_details = self.get_cleaned_data_for_step("contact_details") cleaned_data_guardians = self.get_cleaned_data_for_step("guardians") @@ -536,7 +538,7 @@ class RegisterEventWizardView(SessionWizardView): else: user = self.request.user - person = Person.objects.get_or_create( + person, created = Person.objects.get_or_create( user=user, defaults={ "email": cleaned_data_contact_details["email"], @@ -546,17 +548,10 @@ class RegisterEventWizardView(SessionWizardView): ) if ( - "school" in cleaned_data_contact_details - or "school_class" in cleaned_data_contact_details - or "school_place" in cleaned_data_contact_details - or "mobile_number" in cleaned_data_contact_details + "mobile_number" in cleaned_data_contact_details or "sex" in cleaned_data_contact_details or "date_of_birth" in cleaned_data_contact_details ): - person = Person.objects.get(email=cleaned_data_contact_details["email"]) - person.school = cleaned_data_contact_details["school"] - person.school_class = cleaned_data_contact_details["school_class"] - person.school_place = cleaned_data_contact_details["school_place"] person.mobile_number = cleaned_data_contact_details["mobile_number"] person.sex = cleaned_data_contact_details["sex"] person.date_of_birth = cleaned_data_contact_details["date_of_birth"] @@ -610,14 +605,18 @@ class RegisterEventWizardView(SessionWizardView): donation=cleaned_data_financial["donation"], accept_sepa=cleaned_data_financial["accept_sepa"], iban=cleaned_data_financial["iban"], - accept_terms=cleaned_data_consent["accept_terms"], - accept_data=cleaned_data_consent["accept_data"], - accept_general_terms=cleaned_data_consent["accept_general_terms"], + school = cleaned_data_contact_details["school"], + school_class = cleaned_data_contact_details["school_class"], + school_place = cleaned_data_contact_details["school_place"], ) for field in event.linked_group.additional_fields.all(): registration.extended_data[ 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] + registration.save() if cleaned_data_financial["voucher_code"] != "": @@ -671,7 +670,7 @@ class RegisterEventWizardView(SessionWizardView): class EventFullView(DetailView): model = Event - slug_field = "linked_group__name" + slug_field = "linked_group__short_name" template_name = "paweljong/event/full.html" object_context_name = "event" @@ -684,7 +683,7 @@ class EventFullView(DetailView): class RegisterEventStart(DetailView): model = Event - slug_field = "linked_group__name" + slug_field = "linked_group__short_name" template_name = "paweljong/event/register_start.html" object_context_name = "event" @@ -693,3 +692,35 @@ class RegisterEventStart(DetailView): context["can_register"] = context["event"].can_register(request=self.request) return context + +class TermListView(PermissionRequiredMixin, SingleTableView): + """Table of all terms.""" + + model = Terms + table_class = TermsTable + permission_required = "paweljong.view_terms" + template_name = "paweljong/term/list.html" + + +@method_decorator(never_cache, name="dispatch") +class TermCreateView(PermissionRequiredMixin, AdvancedCreateView): + """Create view for terms.""" + + model = Terms + form_class = EditTermForm + permission_required = "paweljong.add_terms" + template_name = "paweljong/term/create.html" + success_url = reverse_lazy("terms") + success_message = _("The term has been created.") + + +@method_decorator(never_cache, name="dispatch") +class TermEditView(PermissionRequiredMixin, AdvancedEditView): + """Edit view for terms.""" + + model = Terms + form_class = EditTermForm + permission_required = "paweljong.edit_terms" + template_name = "paweljong/term/edit.html" + success_url = reverse_lazy("terms") + success_message = _("The term has been saved.") -- GitLab