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

Rename TeckidsEvent

parent fe8cf0a9
No related branches found
No related tags found
1 merge request!55WIP: Resolve "Migrate to AlekSIS app"
Pipeline #3874 failed
......@@ -197,12 +197,13 @@ class EditEventForm(forms.ModelForm):
layout = Layout(
Fieldset(_("Base data"), Row("group", "description", Row("place"), "published"),
Fieldset(_("Date data"), Row("date_event", "date_registration", "date_retraction"),
Fieldset(_("Feedback aspects"), "feedback_aspects"),
Fieldset(_("Date data"), Row("date_event", "date_registration", "date_retraction")),
Fieldset(_("Feedback aspects"), "feedback_aspects")),
)
class Meta:
model = TeckidsEvent
exclude = []
class EditVoucherForm(forms.ModelForm):
......
......@@ -3,24 +3,6 @@ from django.utils.translation import gettext_lazy as _
MENUS = {
"NAV_MENU_CORE": [
{"name": _("Events"), "url": "events", "icon": "event",},
{
"name": _("Keys and mail"),
"url": "#",
"icon": "vpn_key",
"root": True,
"validators": [
("aleksis.core.util.predicates.permission_validator", "core.has_person")
],
"submenu": [
{"name": _("Mail addresses"), "url": "manage_mail", "icon": "email",},
{"name": _("SSH keys"), "url": "manage_ssh_keys", "icon": "vpn_key",},
{
"name": _("PGP keys"),
"url": "manage_pgp_keys",
"icon": "enhanced_encryption",
},
],
},
{
"name": _("Vouchers"),
"url": "#",
......
# Generated by Django 3.1.1 on 2020-09-26 20:18
import django.contrib.postgres.fields.jsonb
import django.contrib.sites.managers
from django.db import migrations, models
import django.db.models.deletion
import django_iban.fields
class Migration(migrations.Migration):
dependencies = [
('core', '0004_auto_20200728_1145'),
('sites', '0002_alter_domain_unique'),
('ticdesk', '0018_auto_20200802_1646'),
]
operations = [
migrations.CreateModel(
name='TeckidsEvent',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
('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')),
('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')),
('cost', models.IntegerField(verbose_name='Cost in €')),
('max_participants', models.IntegerField(verbose_name='Max participants')),
('feedback_aspects', models.ManyToManyField(related_name='event', to='ticdesk.FeedbackAspect', verbose_name='Feedback aspects')),
('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='event', to='core.group', verbose_name='Group')),
('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
],
options={
'verbose_name': 'Teckids event',
'verbose_name_plural': 'Teckids events',
'ordering': ('date_event',),
},
managers=[
('objects', django.contrib.sites.managers.CurrentSiteManager()),
],
),
migrations.RemoveField(
model_name='pgpkey',
name='person',
),
migrations.RemoveField(
model_name='pgpkey',
name='site',
),
migrations.AlterUniqueTogether(
name='registrationfield',
unique_together=None,
),
migrations.RemoveField(
model_name='registrationfield',
name='person',
),
migrations.RemoveField(
model_name='registrationfield',
name='project',
),
migrations.RemoveField(
model_name='registrationfield',
name='site',
),
migrations.RemoveField(
model_name='sshkey',
name='person',
),
migrations.RemoveField(
model_name='sshkey',
name='site',
),
migrations.RemoveField(
model_name='teckidsproject',
name='feedback_aspects',
),
migrations.RemoveField(
model_name='teckidsproject',
name='members',
),
migrations.RemoveField(
model_name='teckidsproject',
name='owners',
),
migrations.RemoveField(
model_name='teckidsproject',
name='site',
),
migrations.RemoveField(
model_name='voucher',
name='project',
),
migrations.AlterField(
model_name='eventregistration',
name='channel',
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Channel'),
),
migrations.AlterField(
model_name='eventregistration',
name='iban',
field=django_iban.fields.IBANField(enforce_database_constraint=True, max_length=34, null=True, verbose_name='IBAN (for SEPA direct debit)'),
),
migrations.AlterField(
model_name='voucher',
name='used_person_uid',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='used_vouchers', to='core.person', verbose_name='Used by'),
),
migrations.DeleteModel(
name='MailAddress',
),
migrations.DeleteModel(
name='PGPKey',
),
migrations.DeleteModel(
name='RegistrationField',
),
migrations.DeleteModel(
name='SSHKey',
),
migrations.AddField(
model_name='voucher',
name='event',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='vouchers', to='ticdesk.teckidsevent', verbose_name='Event'),
),
migrations.AlterField(
model_name='eventregistration',
name='event',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ticdesk.teckidsevent', verbose_name='Event'),
),
migrations.DeleteModel(
name='TeckidsProject',
),
]
......@@ -5,7 +5,7 @@ from django.utils.translation import gettext_lazy as _
from django_iban.fields import IBANField
from aleksis.core.mixins import ExtensibleModel, PureDjangoModel
from aleksis.core.models import Person
from aleksis.core.models import Person, Group
class TeckidsMember(ExtensibleModel):
......@@ -122,8 +122,9 @@ class Voucher(ExtensibleModel):
event = models.ForeignKey(
TeckidsEvent,
related_name="vouchers",
verbose_name=_("Project"),
verbose_name=_("Event"),
on_delete=models.CASCADE,
null=True,
)
person = models.ForeignKey(
Person,
......@@ -134,7 +135,7 @@ class Voucher(ExtensibleModel):
discount = models.IntegerField(default=100)
used = models.BooleanField(default=False)
used_person_uid = models.ForeignKey(core.Person, on_delete=models.CASCADE, verbose_name=_("Used by"), related_name="used_vouchers")
used_person_uid = models.ForeignKey(Person, on_delete=models.CASCADE, verbose_name=_("Used by"), related_name="used_vouchers", null=True)
deleted = models.BooleanField(default=False)
def __str__(self) -> str:
......@@ -194,9 +195,10 @@ class EventRegistration(ExtensibleModel):
)
accept_sepa = models.BooleanField(verbose_name=_("SEPA direct debit"))
iban = models.IBANField(
iban = IBANField(
verbose_name=_("IBAN (for SEPA direct debit)"),
enforce_database_constraint=True,
null=True,
)
accept_terms = models.BooleanField(
......
......@@ -5,7 +5,7 @@ from rules import predicate
from aleksis.core.models import Group, Person
from aleksis.core.util.predicates import check_object_permission
from .models import Voucher
from .models import Voucher, EventRegistration
User = get_user_model()
......@@ -34,7 +34,7 @@ def is_own_voucher(user: User, voucher: Voucher) -> bool:
@predicate
def is_own_registration(user: User, registration: Registration) -> bool:
"""Predicate which checks if the registration belongs to the user.""""
def is_own_registration(user: User, registration: EventRegistration) -> bool:
"""Predicate which checks if the registration belongs to the user."""
return registration.person == user.person
......@@ -118,18 +118,11 @@ manage_teckids_members_predicate = has_person & (
)
add_perm("ticdesk.manage_teckids_members", manage_teckids_members_predicate)
# Is own voucher?
is_own_voucher_predicate = has_person & (is_own_voucher)
add_perm("ticdesk.is_own_voucher", is_own_voucher_predicate)
# Is own ssh key?
is_own_ssh_key_predicate = has_person & (is_own_ssh_key)
add_perm("ticdesk.is_own_ssh_key", is_own_ssh_key_predicate)
# Is own pgp key?
is_own_pgp_key_predicate = has_person & (is_own_pgp_key)
add_perm("ticdesk.is_own_pgp_key", is_own_pgp_key_predicate)
# View feedback aspects
view_feedback_aspects_predicate = has_person & (
......
......@@ -3,11 +3,6 @@ from django.urls import path
from . import views
urlpatterns = [
path(
"event/<int:id_>/additional",
views.register_event_additional,
name="register_event_additional_by_id",
),
path("event/<int:id_>/edit", views.edit_event, name="edit_event_by_id"),
path("event/<int:id_>/feedback", views.feedback_event, name="feedback_event_by_id"),
path("event/<int:id_>/register", views.register_event, name="register_event_by_id"),
......@@ -21,19 +16,6 @@ urlpatterns = [
path("vouchers/<int:id_>/edit", views.edit_voucher, name="edit_voucher_by_id"),
path("vouchers/<int:id_>/print", views.print_voucher, name="print_voucher_by_id"),
path("vouchers/", views.vouchers, name="vouchers"),
path("manage/mails", views.manage_mail, name="manage_mail"),
path("manage/ssh_keys", views.manage_ssh_keys, name="manage_ssh_keys"),
path("manage/pgp_keys", views.manage_pgp_keys, name="manage_pgp_keys"),
path(
"manage/ssh_keys/<int:id_>/delete",
views.delete_sshkey,
name="delete_sshkey_by_id",
),
path(
"manage/pgp_keys/<int:id_>/delete",
views.delete_pgpkey,
name="delete_pgpkey_by_id",
),
path("event/lists/generate", views.generate_lists, name="generate_lists"),
path("event/registrations/list", views.registrations, name="registrations"),
path(
......
......@@ -11,9 +11,10 @@ from django.utils.translation import ugettext as _
import pytz
import reversion
from reversion.views import create_revision
from django_tables2 import RequestConfig
from rules.contrib.views import permission_required
from templated_email import send_templated_email
from templated_email import send_templated_mail
from aleksis.core.models import Activity, Person
from aleksis.core.util import messages
......@@ -39,9 +40,8 @@ from .forms import (
from .models import (
EventRegistration,
FeedbackAspect,
RegistrationField,
TeckidsMember,
event,
TeckidsEvent,
Voucher,
)
from .tables import (
......@@ -61,7 +61,7 @@ def events(request):
# Get all upcoming events
now = timezone.datetime.today()
events = event.objects.filter(date_event__gte=now, published=True)
events = TeckidsEvent.objects.filter(date_event__gte=now, published=True)
# Build table
events_table = EventsTable(events)
......@@ -71,7 +71,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 = event.objects.filter(members=current_person)
participated_events = TeckidsEvent.objects.filter(members=current_person)
# Build table
participated_events_table = ParticipatedEventsTable(participated_events)
......@@ -80,13 +80,13 @@ def events(request):
return render(request, "ticdesk/teckids_event/list.html", context)
@reversion.register()
@person_required
@create_revision
@login_required
def register_event(request, id_):
context = {}
# Get current person and event
event = event.objects.get(id=id_)
event = TeckidsEvent.objects.get(id=id_)
context["event"] = event
initial = {
......@@ -173,10 +173,10 @@ def register_event(request, id_):
):
guardian = Person.objects.get_or_create(
defaults={
first_name=register_form.cleaned_data["guardian_first_name"],
last_name=register_form.cleaned_data["guardian_last_name"],
mobile_number=register_form.cleaned_data["guardian_mobile_number"],
}
"first_name": register_form.cleaned_data["guardian_first_name"],
"last_name": register_form.cleaned_data["guardian_last_name"],
"mobile_number": register_form.cleaned_data["guardian_mobile_number"],
},
email=register_form.cleaned_data["guardian_email"],
)
......@@ -242,7 +242,7 @@ def feedback_event(request, id_):
# Get current person and event
current_person = Person.objects.get(user__username=request.user.username)
event = event.objects.get(id=id_)
event = TeckidsEvent.objects.get(id=id_)
context["event"] = event
# Prepare the form
......@@ -311,13 +311,13 @@ def feedback_event(request, id_):
@permission_required(
"ticdesk.edit_event", fn=objectgetter_optional(event, None, False)
"ticdesk.edit_event", fn=objectgetter_optional(TeckidsEvent, None, False)
)
def edit_event(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse:
"""View to edit or create an event."""
context = {}
event = objectgetter_optional(event, None, False)(request, id_)
event = objectgetter_optional(TeckidsEvent, None, False)(request, id_)
context["event"] = event
if id_:
......@@ -358,7 +358,7 @@ def manage_events(request):
# Get all upcoming events
now = timezone.datetime.today()
events = event.objects.filter(date_event__gte=now)
events = TeckidsEvent.objects.filter(date_event__gte=now)
# Build table
manage_events_table = ManageEventsTable(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