def approve_request(self, request, object_id):
obj = get_object_or_404(ModRequest, pk=object_id)
if not request.user.has_perm('tournament.change_modrequest', obj.season.league):
raise PermissionDenied
if obj.status != 'pending':
return redirect('admin:tournament_modrequest_review', object_id)
if request.method == 'POST':
changelist_filters = request.POST.get('_changelist_filters', '')
form = forms.ApproveModRequestForm(request.POST)
if form.is_valid():
if 'confirm' in form.data:
obj.approve(request.user.username, form.cleaned_data['response'])
self.message_user(request, 'Request approved.', messages.INFO)
return redirect_with_params('admin:tournament_modrequest_changelist', params='?' + changelist_filters)
else:
return redirect_with_params('admin:tournament_modrequest_review', object_id, params='?_changelist_filters=' + urlquote(changelist_filters))
else:
changelist_filters = request.GET.get('_changelist_filters', '')
form = forms.ApproveModRequestForm()
context = {
'has_permission': True,
'opts': self.model._meta,
'site_url': '/',
'original': obj,
'title': 'Confirm approval',
'form': form,
'changelist_filters': changelist_filters
}
return render(request, 'tournament/admin/approve_modrequest.html', context)
评论列表
文章目录