port to new django, AI automated

This commit is contained in:
2026-03-30 22:35:36 +02:00
parent e2d166e437
commit 372da3caa9
215 changed files with 9283 additions and 2981 deletions

View File

@@ -1,29 +1,30 @@
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.forms.models import ModelForm
from django.forms import TextInput, TimeInput
from .models import Event, EventParticipation
from .serializers import ParticipationSerializer
import datetime
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit
from django.forms import TextInput
from django.forms.models import ModelForm
from django.http import HttpResponse
from django.shortcuts import redirect, render
from django.views.generic.edit import CreateView, UpdateView
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from location_field.widgets import LocationWidget
from .models import Event, EventParticipation
from .serializers import ParticipationSerializer
# ---------------------------------------- API ---------------------------------------------------------
@api_view(['GET', 'PUT'])
@api_view(["GET", "PUT"])
def event_api(request, username=None, eventId=None):
try:
participationQs = EventParticipation.objects.filter(event__date__gte=datetime.date.today())
participationQs = EventParticipation.objects.filter(
event__date__gte=datetime.date.today()
)
if username:
participationQs = EventParticipation.objects.filter(user__username=username)
if eventId:
@@ -31,58 +32,70 @@ def event_api(request, username=None, eventId=None):
except EventParticipation.DoesNotExist:
return HttpResponse(status=404)
if request.method == 'GET':
serializer = ParticipationSerializer(participationQs)
if request.method == "GET":
serializer = ParticipationSerializer(participationQs, many=True)
return Response(serializer.data)
elif request.method == 'PUT':
serializer = ParticipationSerializer(participationQs, data=request.DATA, many=True)
elif request.method == "PUT":
serializer = ParticipationSerializer(data=request.data, many=True)
if serializer.is_valid():
for serializedObject in serializer.object:
if not (EventParticipation.isMember(request.user) or EventParticipation.isAdmin(request.user)):
for item in serializer.validated_data:
event = item.get("event")
user_obj = item.get("user")
if not (
EventParticipation.isMember(request.user)
or EventParticipation.isAdmin(request.user)
):
return Response(status=status.HTTP_403_FORBIDDEN)
if serializedObject.user != request.user:
if user_obj != request.user:
if not EventParticipation.isAdmin(request.user):
return Response(status=status.HTTP_403_FORBIDDEN)
serializer.save()
return Response(serializer.data)
else:
return Response(status=status.HTTP_400_BAD_REQUEST)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
# ------------------------------------ Normal Views ----------------------------------------------------
def eventplanning(request):
"""
View for a specific user, to edit his events
View for a specific user, to edit his events
"""
# non-members see the grid - but cannot edit anything
if not EventParticipation.isMember(request.user):
return events_grid(request)
# All events in the future sorted by date
all_future_events = list(Event.objects.filter(date__gte=datetime.date.today()).order_by('date'))
all_future_events = list(
Event.objects.filter(date__gte=datetime.date.today()).order_by("date")
)
for e in all_future_events:
e.participation = EventParticipation.get_or_create(event=e, user=request.user)
context = {'events': all_future_events}
return render(request, 'eventplanner/eventplanning_view.html', context)
context = {"events": all_future_events}
return render(request, "eventplanner/eventplanning_view.html", context)
def events_grid(request):
usernames = [u.username for u in EventParticipation.members()]
all_future_events = list(Event.objects.filter(date__gte=datetime.date.today()).order_by('date'))
all_future_events = list(
Event.objects.filter(date__gte=datetime.date.today()).order_by("date")
)
for e in all_future_events:
e.participation = [EventParticipation.get_or_create(event=e, user=u) for u in EventParticipation.members()]
e.participation = [
EventParticipation.get_or_create(event=e, user=u)
for u in EventParticipation.members()
]
context = {'events': all_future_events,
'usernames': usernames}
context = {"events": all_future_events, "usernames": usernames}
return render(request, 'eventplanner/events_grid.html', context)
return render(request, "eventplanner/events_grid.html", context)
def deleteEvent(request, pk):
@@ -93,27 +106,30 @@ def deleteEvent(request, pk):
# ------------------------------------ Detail Views ----------------------------------------------------
from django.views.generic.edit import UpdateView, CreateView
from location_field.widgets import LocationWidget
class EventForm(ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_class = 'form-horizontal'
self.helper.add_input(Submit('submit', 'Speichern'))
super(EventForm, self).__init__(*args, **kwargs)
self.helper.form_class = "form-horizontal"
self.helper.add_input(Submit("submit", "Speichern"))
class Meta:
model = Event
fields = ['type', 'short_desc', 'date', 'end_date', 'time', 'meeting_time', 'location', 'map_location',
'desc', ]
fields = [
"type",
"short_desc",
"date",
"end_date",
"time",
"meeting_time",
"location",
"map_location",
"desc",
]
widgets = {
'time': TimeInput(format='%H:%M'),
'location': TextInput(),
'map_location': LocationWidget(),
"location": TextInput(),
"map_location": LocationWidget(),
}
@@ -121,11 +137,11 @@ class EventUpdate(UpdateView):
form_class = EventForm
model = Event
template_name_suffix = "_update_form"
success_url = '.'
success_url = "."
def get_context_data(self, **kwargs):
context = super(UpdateView, self).get_context_data(**kwargs)
context['viewtype'] = "update"
context = super().get_context_data(**kwargs)
context["viewtype"] = "update"
return context
@@ -133,9 +149,9 @@ class EventCreate(CreateView):
form_class = EventForm
model = Event
template_name_suffix = "_update_form"
success_url = '.'
success_url = "."
def get_context_data(self, **kwargs):
context = super(CreateView, self).get_context_data(**kwargs)
context['viewtype'] = "create"
context = super().get_context_data(**kwargs)
context["viewtype"] = "create"
return context