diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 4769a46ad4d1aa3b3da548b329c5a60864b4cdd6..c7f0901a2dcbc533d5921ef86dd1fc72671b6457 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,7 @@ Added * Add link to public page to events list * Add RSS feed of upcoming events +* Add slug field to Event model Changed ~~~~~~~ diff --git a/aleksis/apps/paweljong/models.py b/aleksis/apps/paweljong/models.py index ddb97fb812692b850cc674d4da325b04bcc46ef0..0316ed2c607b0434889dc418fcbe88233121d315 100644 --- a/aleksis/apps/paweljong/models.py +++ b/aleksis/apps/paweljong/models.py @@ -31,6 +31,7 @@ class Event(ExtensibleModel): description = models.CharField(max_length=500, verbose_name=_("Description")) published = models.BooleanField(default=False, verbose_name=_("Publish")) place = models.CharField(max_length=50, verbose_name="Place") + slug models.SlugField(max_length=255, verbose_name=_("Slug")) # Date details date_event = models.DateField(verbose_name=_("Date of event")) @@ -70,7 +71,7 @@ class Event(ExtensibleModel): return self.date_event > now def get_absolute_url(self): - return reverse("event_by_name", kwargs={"slug": self.linked_group.short_name}) + return reverse("event_by_name", kwargs={"slug": self.slug}) @property def booked_percentage(self): diff --git a/aleksis/apps/paweljong/tables.py b/aleksis/apps/paweljong/tables.py index c404c36cf6295b14084e3a200fce7cfb0b04a574..9dd0416c66601d415869104842983d8b0c7ad03a 100644 --- a/aleksis/apps/paweljong/tables.py +++ b/aleksis/apps/paweljong/tables.py @@ -15,13 +15,13 @@ class ManageEventsTable(tables.Table): edit = tables.LinkColumn( "edit_event_by_slug", - args=[A("linked_group__short_name")], + args=[A("slug")], verbose_name=_("Edit"), text=_("Edit"), ) view = tables.LinkColumn( "event_by_name", - args=[A("linked_group__short_name")], + args=[A("slug")], verbose_name=_("View"), text=_("View"), ) diff --git a/aleksis/apps/paweljong/templates/paweljong/event/full.html b/aleksis/apps/paweljong/templates/paweljong/event/full.html index 341236db8c76a7afb2897c03ab6b7dcfadf08a04..a50e0c3e5ff4f8f67a2e6c08bf9257ed24597e07 100644 --- a/aleksis/apps/paweljong/templates/paweljong/event/full.html +++ b/aleksis/apps/paweljong/templates/paweljong/event/full.html @@ -61,9 +61,9 @@ </div> <div class="card-action"> {% if can_register and not is_authenticated %} - <a href="{% url "register_event_by_slug_start" event.linked_group.short_name %}">{% trans "Register now" %}</a> + <a href="{% url "register_event_by_slug_start" event.slug %}">{% trans "Register now" %}</a> {% elif can_register and is_authenticated %} - <a href="{% url "register_event_by_slug" event.linked_group.short_name %}">{% trans "Register now" %}</a> + <a href="{% url "register_event_by_slug" event.slug %}">{% trans "Register now" %}</a> {% else %} <a href="#">{% trans "Not available" %}</a> {% endif %} diff --git a/aleksis/apps/paweljong/templates/paweljong/event/register_start.html b/aleksis/apps/paweljong/templates/paweljong/event/register_start.html index 46d579b03eba1fbddb59714b204dc610ac92e80a..d67d8afd37b9b9d585084f6d6cc1b7971a910c33 100644 --- a/aleksis/apps/paweljong/templates/paweljong/event/register_start.html +++ b/aleksis/apps/paweljong/templates/paweljong/event/register_start.html @@ -87,7 +87,7 @@ 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> + <a href="{% url "login" %}?next=/app/paweljong/event/{{ event.slug }}/register">{% trans "Login" %}</a> </div> <div id="with_email"> <p> @@ -98,7 +98,7 @@ https://leopard.institute/pages/services.html</a> {% endblocktrans %} </p> - <a href="{% url "set_email_needed" event.linked_group.short_name %}">{% trans "Register now" %}</a> + <a href="{% url "set_email_needed" event.slug %}">{% trans "Register now" %}</a> </div> <div id="without_email"> <p> @@ -108,7 +108,7 @@ 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> + <a href="{% url "register_event_by_slug" event.slug %}">{% 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 0f2bbcd6672e75f7c08372d465c6f9a65493799f..ba22d3006f4e79607936242a62d5f5b03b8e5ac6 100644 --- a/aleksis/apps/paweljong/templates/paweljong/event_registration/full.html +++ b/aleksis/apps/paweljong/templates/paweljong/event_registration/full.html @@ -116,7 +116,7 @@ <td> <i class="material-icons small">local_activity</a> </td> - <td colspan="3"><a href="{% url 'edit_event_by_slug' registration.event.linked_group.short_name %}">{{ registration.event }}</a></td> + <td colspan="3"><a href="{% url 'edit_event_by_slug' registration.event.slug %}">{{ registration.event }}</a></td> </tr> <tr> <td> diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py index 13f0a78b9e74290308bff660b029671c445e1992..e10cd3b04e7ee4813fcf13adc68a311121b7c3e3 100644 --- a/aleksis/apps/paweljong/views.py +++ b/aleksis/apps/paweljong/views.py @@ -53,7 +53,7 @@ class CreateEventView(PermissionRequiredMixin, AdvancedCreateView): class EditEventView(PermissionRequiredMixin, RevisionMixin, AdvancedEditView): form_class = EditEventForm model = Event - slug_field = "linked_group__short_name" + slug_field = "slug" permission_required = "paweljong.change_event" context_object_name = "manage_events" template_name = "paweljong/event/edit.html" @@ -293,7 +293,7 @@ class RegisterEventWizardView(SessionWizardView): 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"]) + context["event"] = Event.objects.get(slug=self.kwargs["slug"]) if self.steps.current == "email": context["page_title"] = "" @@ -369,10 +369,10 @@ class RegisterEventWizardView(SessionWizardView): if step == "email": kwargs["request"] = self.request if step == "additional": - event = Event.objects.get(linked_group__short_name=self.kwargs["slug"]) + event = Event.objects.get(slug=self.kwargs["slug"]) kwargs["event"] = event if step == "consent": - event = Event.objects.get(linked_group__short_name=self.kwargs["slug"]) + event = Event.objects.get(slug=self.kwargs["slug"]) kwargs["event"] = event return kwargs @@ -439,7 +439,7 @@ class RegisterEventWizardView(SessionWizardView): def done(self, form_list, **kwargs): - event = Event.objects.get(linked_group__short_name=self.kwargs["slug"]) + event = Event.objects.get(slug=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") @@ -610,7 +610,7 @@ class RegisterEventWizardView(SessionWizardView): class EventFullView(DetailView): model = Event - slug_field = "linked_group__short_name" + slug_field = "slug" template_name = "paweljong/event/full.html" object_context_name = "event" @@ -625,7 +625,7 @@ class EventFullView(DetailView): class RegisterEventStart(DetailView): model = Event - slug_field = "linked_group__short_name" + slug_field = "slug" template_name = "paweljong/event/register_start.html" object_context_name = "event"