def edit(request, cid): try: contest = Contest.objects.get(id=cid) except Contest.DoesNotExist: logger.warning('Contest: Can not edit contest %s! Contest not found!' % cid) raise Http404('Contest does not exist, can not edit.') title = "Edit Contest" if can_edit_contest(request.user, contest): contest_dic = model_to_dict(contest) contest_dic['user'] = request.user contest_dic['method'] = request.method if request.method == 'GET': form = ContestForm(initial=contest_dic) return render_index(request, 'contest/editContest.html', { 'form': form, 'title': title, 'contest': contest }) if request.method == 'POST': form = ContestForm(request.POST, instance=contest, initial={'method': request.method}) if form.is_valid(): modified_contest = form.save() logger.info('Contest: User %s edited contest %s!' % (request.user, modified_contest.id)) message = 'Contest %s- "%s" edited!' % \ (modified_contest.id, modified_contest.cname) messages.success(request, message) return redirect('contest:contest', modified_contest.id) else: message = 'Some fields are invalid!' messages.error(request, message) return render_index(request, 'contest/editContest.html', { 'form': form, 'title': title, 'contest': contest }) raise PermissionDenied
def new(request): title = "New Contest" if can_create_contest(request.user): if request.method == 'GET': form = ContestForm( initial={ 'owner': request.user, 'user': request.user, 'method': request.method }) return render_index(request, 'contest/editContest.html', { 'form': form, 'title': title }) if request.method == 'POST': form = ContestForm(request.POST, initial={'method': request.method}) if form.is_valid(): new_contest = form.save() logger.info('Contest: User %s Create a new contest %s!' % (request.user, new_contest.id)) message = 'Contest %s- "%s" created!' % (new_contest.id, new_contest.cname) messages.success(request, message) return redirect('contest:contest', new_contest.id) else: message = 'Some fields are invalid!' messages.error(request, message) return render_index(request, 'contest/editContest.html', { 'form': form, 'title': title }) raise PermissionDenied