Пример #1
0
def approve_projectapplication(request, application_id):
    application = get_object_or_404(ProjectApplication, pk=application_id)
    if not request.user.get_profile() in application.institute.delegates.all():
        return HttpResponseForbidden('<h1>Access Denied</h1>')
    if application.state != Application.WAITING_FOR_DELEGATE:
        return render_to_response('applications/unable_to_approve.html', {'application': application}, context_instance=RequestContext(request))

    if request.method == 'POST':
        form = ApproveProjectApplicationForm(request.POST, instance=application)
        if form.is_valid():
            application = form.save()

            if settings.ADMIN_APPROVE_ACCOUNTS:
                application.state = Application.WAITING_FOR_ADMIN
                application.save()
                send_notify_admin(application, request.user.get_full_name())
                log(request.user, application.application_ptr, 2, 'Delegate approved application')
                return HttpResponseRedirect(reverse('kg_projectapplication_pending', args=[application.id]))

            application.approve()
            send_project_approved_email(application)
            log(request.user, application.application_ptr, 2, 'Delegate fully approved')
            return HttpResponseRedirect(reverse('kg_projectapplication_complete', args=[application.id]))
    else:
        form = ApproveProjectApplicationForm(instance=application)

    return render_to_response('applications/projectapplication_approve.html', {'form': form, 'application': application}, context_instance=RequestContext(request))
Пример #2
0
def approve_projectapplication(request, application_id):
    application = get_object_or_404(ProjectApplication, pk=application_id)

    if application.state != Application.WAITING_FOR_ADMIN:
        raise Http404

    if request.method == 'POST':
        form = AdminApproveProjectApplicationForm(request.POST, instance=application)
        if form.is_valid():
            application = form.save()
            project = application.approve(pid=form.cleaned_data['pid'])
            send_project_approved_email(application)
            messages.success(request, "Application approved successfully.")
            log(request.user, application.application_ptr, 2, 'Application fully approved')
            return HttpResponseRedirect(project.get_absolute_url())
    else:
        form = AdminApproveProjectApplicationForm(instance=application)

    return render_to_response('applications/approve_projectapplication.html', {'form': form, 'application': application}, context_instance=RequestContext(request))