port to new django, AI automated
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user