Consolidated Edit View

This commit is contained in:
2021-11-14 17:41:30 -06:00
parent b4c2428752
commit d390c13b14
8 changed files with 42 additions and 136 deletions

View File

@@ -7,7 +7,6 @@ from . import views
urlpatterns = [
path('', views.root, name="root"),
path('list', views.EventsListView.as_view(), name="events list"),
path('edit/<int:id>', views.edit, name="edit event"),
path('edit', views.edit, name="edit event"),
path('edit', views.edit, name="edit event")
path('edit/<int:id>', views.EventEditView.as_view(), name="edit event"),
path('edit', views.EventEditView.as_view(), name="edit event"),
]

View File

@@ -1,18 +1,17 @@
from django.shortcuts import render, redirect, get_object_or_404
from django.views import View
from django.db import models
from django.http import HttpResponse
from django.urls import reverse
from .models import Event
from .forms import EventForm
from django.http import HttpResponse
from lib.views import BenchcoachListView
from lib.views import BenchcoachListView, BenchcoachEditView
def root(request):
return redirect(reverse('events list'))
class EventsListView(BenchcoachListView):
Model = Event
edit_url = 'edit player'
list_url = 'players list'
page_title = "Players"
edit_url = 'edit event'
list_url = 'events list'
page_title = "Events"
title_strf = '{item.away_team.name} vs. {item.home_team.name}'
body_strf = "{item.start:%a, %b %-d, %-I:%M %p},\n{item.venue.name}"
@@ -27,34 +26,8 @@ class EventsListView(BenchcoachListView):
)
return context
def root(request):
return redirect('/events/schedule')
def edit(request, id=0):
Form = EventForm
class EventEditView(BenchcoachEditView):
Model = Event
call_back = reverse('events list')
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
if id:
instance = get_object_or_404(Model, id=id)
form = Form(request.POST or None, instance=instance)
else:
form = Form(request.POST or None)
if form.is_valid():
if id == 0: id = None
new_item, did_create = Model.objects.update_or_create(pk=id, defaults=form.cleaned_data)
return render(request, 'success.html', {'call_back':call_back,'id':new_item.id}, status=201 if did_create else 200)
else:
return HttpResponse(status=400)
# if a GET (or any other method) we'll create a blank form
else:
if id:
instance = get_object_or_404(Event, id=id)
form = Form(request.POST or None, instance=instance)
else:
form = Form
return render(request, 'edit.html', {'form': form, 'id': id, 'call_back': 'edit event'})
edit_url = 'edit event'
list_url = 'events list'
Form = EventForm