diff --git a/src/ephios/core/forms/events.py b/src/ephios/core/forms/events.py index 385e6b2f5..6ae6f20f4 100644 --- a/src/ephios/core/forms/events.py +++ b/src/ephios/core/forms/events.py @@ -59,8 +59,11 @@ class EventForm(forms.ModelForm): class Meta: model = Event - fields = ["title", "type", "description", "location"] - widgets = {"description": MarkdownTextarea} + fields = ["title", "type", "description", "location", "planner_note"] + widgets = { + "description": MarkdownTextarea, + "planner_note": forms.Textarea(attrs={"rows": 2}), + } def __init__(self, **kwargs): user = kwargs.pop("user") diff --git a/src/ephios/core/migrations/0040_event_planner_note.py b/src/ephios/core/migrations/0040_event_planner_note.py new file mode 100644 index 000000000..726dd83c2 --- /dev/null +++ b/src/ephios/core/migrations/0040_event_planner_note.py @@ -0,0 +1,22 @@ +# Generated by Django 5.2.12 on 2026-04-25 17:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("core", "0039_alter_userprofile_disabled_notifications"), + ] + + operations = [ + migrations.AddField( + model_name="event", + name="planner_note", + field=models.TextField( + blank=True, + help_text="Note only visible to responsibles of this event.", + null=True, + verbose_name="planner note", + ), + ), + ] diff --git a/src/ephios/core/models/events.py b/src/ephios/core/models/events.py index 4d612d8c4..ec732164e 100644 --- a/src/ephios/core/models/events.py +++ b/src/ephios/core/models/events.py @@ -91,6 +91,12 @@ class Event(Model): description = TextField(_("description"), blank=True, null=True) location = CharField(_("location"), max_length=254) type = ForeignKey(EventType, on_delete=models.CASCADE, verbose_name=_("event type")) + planner_note = models.TextField( + _("Planner note"), + blank=True, + null=True, + help_text=_("Note only visible to responsibles of this event."), + ) active = BooleanField(default=False, verbose_name=_("active")) group_object_permission_set = GenericRelation( GroupObjectPermission, object_id_field="object_pk" diff --git a/src/ephios/core/signup/views.py b/src/ephios/core/signup/views.py index d1151ab7c..ba37867bb 100644 --- a/src/ephios/core/signup/views.py +++ b/src/ephios/core/signup/views.py @@ -182,7 +182,9 @@ def _process_signup_action(self, participation, signup_data, validator): messages.error(self.request, error_message.format(error=error)) raise # must reraise for transaction rollback messages.success(self.request, success_message.format(shift=self.shift)) - return redirect(self.participant.reverse_event_detail(self.shift.event)) + return redirect( + self.participant.reverse_event_detail(self.shift.event) + f"#shift-{self.shift.pk}" + ) def _send_signup_save_signal(self, participation, signup_data): signup_save.send( diff --git a/src/ephios/core/templates/core/event_detail.html b/src/ephios/core/templates/core/event_detail.html index d6215adec..02befcccd 100644 --- a/src/ephios/core/templates/core/event_detail.html +++ b/src/ephios/core/templates/core/event_detail.html @@ -94,7 +94,7 @@

{% endif %} {{ event.title }}

-
+
{{ event.type }} diff --git a/src/ephios/core/templates/core/event_form.html b/src/ephios/core/templates/core/event_form.html index 03f92585d..26f3793f1 100644 --- a/src/ephios/core/templates/core/event_form.html +++ b/src/ephios/core/templates/core/event_form.html @@ -1,4 +1,6 @@ {% extends "base.html" %} +{% load rich_text %} +{% load utils %} {% load logentries %} {% load bootstrap %} {% load crispy_forms_filters %} @@ -21,53 +23,106 @@ {% render_alert unsaved_message|add:" ("|add:event.title|add:"). "|add:view_message|add:""|safe %} {% endfor %} {% endif %} - -
- {% csrf_token %} - {{ form.title|as_crispy_field }} - {% if form.type %} - {{ form.type|as_crispy_field }} - {% endif %} - {{ form.description|as_crispy_field }} - {{ form.location|as_crispy_field }} - -
-