def edit(request, competition_id): competition = get_object_or_404(Competition, id=competition_id) party = competition.party if request.method == 'POST': competition_form = CompetitionForm(request.POST, instance=competition) if competition_form.is_valid(): competition.shown_date = competition_form.cleaned_data[ 'shown_date'] competition_form.save() competition_form.log_edit(request.user) return redirect('competition_edit', competition.id) else: competition_form = CompetitionForm(instance=competition, initial={ 'shown_date': competition.shown_date, }) competition_placings = [ placing.json_data for placing in competition.results() ] competition_placings_json = json.dumps(competition_placings) platforms = Platform.objects.all() platforms_json = json.dumps([[p.id, p.name] for p in platforms]) production_types = ProductionType.objects.all() production_types_json = json.dumps([[p.id, p.name] for p in production_types]) competition_json = json.dumps({ 'id': competition.id, 'platformId': competition.platform_id, 'productionTypeId': competition.production_type_id, }) return render( request, 'competitions/edit.html', { 'form': competition_form, 'party': party, 'competition': competition, 'competition_json': competition_json, 'competition_placings_json': competition_placings_json, 'platforms_json': platforms_json, 'production_types_json': production_types_json, 'is_admin': request.user.is_staff, })