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

Make event creation work again

parent ce58c4ef
No related branches found
No related tags found
1 merge request!55WIP: Resolve "Migrate to AlekSIS app"
Pipeline #5637 failed
{
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"python.linting.enabled": true
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ from collections import OrderedDict
from django import forms
from django.utils.translation import ugettext_lazy as _
from django_select2.forms import ModelSelect2MultipleWidget, ModelSelect2Widget
import phonenumbers
from django_starfield import Stars
from material import Fieldset, Layout, Row
......@@ -179,8 +180,9 @@ class EditEventForm(forms.ModelForm):
layout = Layout(
Fieldset(
_("Base data"),
Row("group", "description", Row("place"), "published"),
"group", Row("display_name", "description"), Row("place", "published"),
Fieldset(_("Date data"), Row("date_event", "date_registration", "date_retraction")),
Fieldset(_("Event details"), Row("cost", "max_participants")),
Fieldset(_("Feedback aspects"), "feedback_aspects"),
),
)
......@@ -188,7 +190,16 @@ class EditEventForm(forms.ModelForm):
class Meta:
model = TeckidsEvent
exclude = []
widgets = {
"group": ModelSelect2Widget(
search_fields=["name__icontains", "short_name__icontains"],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
"feedback_aspects": ModelSelect2MultipleWidget(
search_fields=["aspect__icontains"],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
}
class EditVoucherForm(forms.ModelForm):
"""Form to edit and create vouchers."""
......
# Generated by Django 3.1.5 on 2021-02-03 20:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('ticdesk', '0019_auto_20200926_2018'),
]
operations = [
migrations.AlterField(
model_name='eventregistration',
name='extended_data',
field=models.JSONField(default=dict, editable=False),
),
migrations.AlterField(
model_name='feedbackaspect',
name='extended_data',
field=models.JSONField(default=dict, editable=False),
),
migrations.AlterField(
model_name='teckidsevent',
name='date_event',
field=models.DateField(verbose_name='Date of event'),
),
migrations.AlterField(
model_name='teckidsevent',
name='date_registration',
field=models.DateField(verbose_name='Registration deadline'),
),
migrations.AlterField(
model_name='teckidsevent',
name='date_retraction',
field=models.DateField(verbose_name='Retraction deadline'),
),
migrations.AlterField(
model_name='teckidsevent',
name='extended_data',
field=models.JSONField(default=dict, editable=False),
),
migrations.AlterField(
model_name='teckidsmember',
name='extended_data',
field=models.JSONField(default=dict, editable=False),
),
migrations.AlterField(
model_name='voucher',
name='extended_data',
field=models.JSONField(default=dict, editable=False),
),
]
# Generated by Django 3.1.5 on 2021-02-03 21:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('ticdesk', '0020_auto_20210203_2033'),
]
operations = [
migrations.AddField(
model_name='teckidsevent',
name='display_name',
field=models.CharField(default='', max_length=255, verbose_name='Display name'),
),
]
......@@ -52,6 +52,7 @@ class TeckidsEvent(ExtensibleModel):
verbose_name_plural = _("Teckids events")
# Event details
display_name = models.CharField(verbose_name=_("Display name"), max_length=255, default="")
group = models.ForeignKey(
Group, on_delete=models.CASCADE, verbose_name=_("Group"), related_name="event"
)
......@@ -60,9 +61,9 @@ class TeckidsEvent(ExtensibleModel):
place = models.CharField(max_length=50, verbose_name="Place")
# Date details
date_event = models.DateTimeField(verbose_name=_("Date of event"))
date_registration = models.DateTimeField(verbose_name=_("Registration deadline"))
date_retraction = models.DateTimeField(verbose_name=_("Retraction deadline"))
date_event = models.DateField(verbose_name=_("Date of event"))
date_registration = models.DateField(verbose_name=_("Registration deadline"))
date_retraction = models.DateField(verbose_name=_("Retraction deadline"))
# Other details
cost = models.IntegerField(verbose_name=_("Cost in €"))
......@@ -110,7 +111,7 @@ class Voucher(ExtensibleModel):
verbose_name = _("Vouchers")
verbose_name_plural = _("Vouchers")
code = models.CharField(max_length=8, blank=True)
code = models.CharField(max_length=8, blank=True, null=True)
event = models.ForeignKey(
TeckidsEvent,
related_name="vouchers",
......@@ -166,8 +167,8 @@ class EventRegistration(ExtensibleModel):
person = models.ForeignKey(Person, on_delete=models.CASCADE, verbose_name=_("Person"))
date_registred = models.DateTimeField(auto_now_add=True, verbose_name=_("Registration date"))
comment = models.TextField(verbose_name=_("Comment / remarks"), blank=True)
channel = models.CharField(verbose_name=_("Channel"), max_length=255, blank=True)
comment = models.TextField(verbose_name=_("Comment / remarks"), blank=True, null=True)
channel = models.CharField(verbose_name=_("Channel"), max_length=255, blank=True, null=True)
voucher = models.ForeignKey(
Voucher, on_delete=models.CASCADE, verbose_name=_("Voucher"), blank=True, null=True,
)
......
......@@ -15,11 +15,11 @@
* {% trans "Cost" %}: {{ new_event.cost }}
* {% trans "Max. participants" %}: {{ new_event.max_participants }}
* {% trans "Owners" %}:
{% for owner in new_event.group.owners.all() %}
{% for owner in new_event.group.owners.all %}
* {{ owner }}
{% endfor %}
* {% trans "Feedback aspects" %}:
{% for aspect in new_event.feedback_aspects.all() %}
{% for aspect in new_event.feedback_aspects.all %}
* {{ aspect }}
{% endfor %}
......@@ -48,13 +48,13 @@
<li> {% trans "Max. participants" %}: {{ new_event.max_participants }}</li>
<li> {% trans "Owners" %}</li>
<ul>
{% for owner in new_event.group.owners.all() %}
{% for owner in new_event.group.owners.all %}
<li> {{ owner }}</li>
{% endfor %}
</ul>
<li> {% trans "Feedback aspects" %}</li>
<ul>
{% for aspect in new_event.feedback_aspects.all() %}
{% for aspect in new_event.feedback_aspects.all %}
<li> {{ aspect }}</li>
{% endfor %}
</ul>
......
{% extends "core/base.html" %}
{% load material_form i18n %}
{% load material_form i18n any_js %}
{% block page_title %}{% blocktrans %}Edit event{% endblocktrans %}{% endblock %}
{% block browser_title %}{% blocktrans %}Edit event{% endblocktrans %}{% endblock %}
{% block extra_head %}
{{ edit_event_form.media.css }}
{% include_css "select2-materialize" %}
{% endblock %}
{% block content %}
<form method="post">
{% csrf_token %}
{% form form=edit_event_form %}{% endform %}
{% form form=edit_event_form %}{% form %}
{% include "core/partials/save_button.html" %}
</form>
{% include_js "select2-materialize" %}
{{ edit_event_form.media.js }}
{% endblock %}
......@@ -17,7 +17,7 @@ from templated_email import send_templated_mail
from aleksis.core.models import Activity, Person
from aleksis.core.util import messages
from aleksis.core.util.core_helpers import objectgetter_optional
from aleksis.core.util.core_helpers import objectgetter_optional, lazy_preference
from .filters import (
EventRegistrationFilter,
......@@ -62,7 +62,7 @@ def events(request):
if request.user.is_authenticated:
# Get all events the person participated in.
current_person = Person.objects.get(user__username=request.user.username)
participated_events = TeckidsEvent.objects.filter(members=current_person)
participated_events = TeckidsEvent.objects.filter(group__members=current_person)
# Build table
participated_events_table = ParticipatedEventsTable(participated_events)
......@@ -297,7 +297,7 @@ def edit_event(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse:
event = objectgetter_optional(TeckidsEvent, None, False)(request, id_)
context["event"] = event
if id_:
if event:
# Edit form for existing event
edit_event_form = EditEventForm(request.POST or None, instance=event)
else:
......@@ -307,17 +307,15 @@ def edit_event(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse:
if request.method == "POST":
if edit_event_form.is_valid():
with reversion.create_revision():
new_event = edit_event_form.save(commit=True)
if not event:
context["new_event"] = new_event
context["person"] = request.user.person
send_templated_mail(
template_name="event_created",
from_email=lazy_preference("mail", "address"),
recipient_list=["orga@teckids.org"],
context=context,
)
new_event = edit_event_form.save()
context["new_event"] = new_event
context["person"] = request.user.person
send_templated_mail(
template_name="event_created",
from_email=lazy_preference("mail", "address"),
recipient_list=["orga@teckids.org"],
context=context,
)
messages.success(request, _("The event has been saved."))
return redirect("events")
......
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