Exemple #1
0
def decline_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 = EmailForm(request.POST)
        if form.is_valid():
            to_email = application.applicant.email
            subject, body = form.get_data()
            log(request.user, application.application_ptr, 3, 'Application declined')
            application.decline()
            send_mail(subject, body, settings.ACCOUNTS_EMAIL, [to_email], fail_silently=False)
            return HttpResponseRedirect(reverse('kg_application_pendinglist'))

    else:
        subject, body = render_email('project_declined', {'receiver': application.applicant})
        initial_data = {'body': body, 'subject': subject}
        form = EmailForm(initial=initial_data)

    return render_to_response('applications/project_confirm_decline.html', {'application': application, 'form': form}, context_instance=RequestContext(request))
Exemple #2
0
 def view(self, request, application, label, auth, actions):
     """ Django view method. """
     if self.check_authorised(request, application, auth):
         auth['can_approve'] = True
     if label == "approve" and auth['can_approve']:
         tmp_actions = []
         if 'approve' in actions:
             tmp_actions.append("approve")
         if 'duplicate' in actions:
             tmp_actions.append("duplicate")
         actions = tmp_actions
         application_form = self.get_approve_form(
             request, application, auth)
         form = application_form(request.POST or None, instance=application)
         if request.method == 'POST':
             if 'duplicate' in request.POST:
                 return 'duplicate'
             if form.is_valid():
                 form.save()
                 return "approve"
         return render_to_response(
             self.template_approve,
             {'application': application, 'form': form,
                 'authorised_text': self.authorised_text,
                 'actions': actions, 'auth': auth},
             context_instance=RequestContext(request))
     elif label == "decline" and auth['can_approve']:
         actions = ['cancel']
         if request.method == 'POST':
             form = EmailForm(request.POST)
             if form.is_valid():
                 to_email = application.applicant.email
                 subject, body = form.get_data()
                 emails.send_mail(
                     subject, body,
                     settings.ACCOUNTS_EMAIL, [to_email])
                 return "cancel"
         else:
             link, is_secret = base.get_email_link(application)
             subject, body = emails.render_email(
                 'common_declined',
                 {'receiver': application.applicant,
                     'authorised_text': self.authorised_text,
                     'application': application,
                     'link': link, 'is_secret': is_secret})
             initial_data = {'body': body, 'subject': subject}
             form = EmailForm(initial=initial_data)
         return render_to_response(
             self.template_decline,
             {'application': application, 'form': form,
                 'authorised_text': self.authorised_text,
                 'actions': actions, 'auth': auth},
             context_instance=RequestContext(request))
     self.context = {
         'authorised_text': self.authorised_text,
     }
     return super(StateWaitingForApproval, self).view(
         request, application, label, auth, actions)
Exemple #3
0
def decline_userapplication(request, application_id):
    application = get_object_or_404(UserApplication, pk=application_id)

    if application.state != Application.WAITING_FOR_ADMIN:
        raise Http404
    if request.method == 'POST':
        form = EmailForm(request.POST)
        if form.is_valid():
            to_email = application.applicant.email
            subject, body = form.get_data()
            log(request.user, application.application_ptr, 3, 'Application declined')
            messages.success(request, "%s declined successfully." % application)
            application.decline()
            send_mail(subject, body, settings.ACCOUNTS_EMAIL, [to_email], fail_silently=False)
            return HttpResponseRedirect(reverse('kg_application_list'))
    else:
        subject, body = render_email('account_declined', {'receiver': application.applicant, 'project': application.project})
        initial_data = {'body': body, 'subject': subject}
        form = EmailForm(initial=initial_data)

    return render_to_response('applications/confirm_decline.html', {'application': application, 'form': form}, context_instance=RequestContext(request))
Exemple #4
0
 def view(self, request, application, label, auth, actions):
     """ Django view method. """
     if self.check_authorised(request, application, auth):
         auth["can_approve"] = True
     if label == "approve" and auth["can_approve"]:
         tmp_actions = []
         if "approve" in actions:
             tmp_actions.append("approve")
         if "duplicate" in actions:
             tmp_actions.append("duplicate")
         actions = tmp_actions
         application_form = self.get_approve_form(request, application, auth)
         form = application_form(request.POST or None, instance=application)
         if request.method == "POST":
             if form.is_valid():
                 form.save()
                 return "approve"
         return render_to_response(
             self.template_approve,
             {
                 "application": application,
                 "form": form,
                 "authorised_text": self.authorised_text,
                 "actions": actions,
                 "auth": auth,
             },
             context_instance=RequestContext(request),
         )
     elif label == "decline" and auth["can_approve"]:
         actions = ["cancel"]
         if request.method == "POST":
             form = EmailForm(request.POST)
             if form.is_valid():
                 to_email = application.applicant.email
                 subject, body = form.get_data()
                 emails.send_mail(subject, body, settings.ACCOUNTS_EMAIL, [to_email])
                 return "cancel"
         else:
             link, is_secret = base.get_email_link(application)
             subject, body = emails.render_email(
                 "common_declined",
                 {
                     "receiver": application.applicant,
                     "authorised_text": self.authorised_text,
                     "application": application,
                     "link": link,
                     "is_secret": is_secret,
                 },
             )
             initial_data = {"body": body, "subject": subject}
             form = EmailForm(initial=initial_data)
         return render_to_response(
             self.template_decline,
             {
                 "application": application,
                 "form": form,
                 "authorised_text": self.authorised_text,
                 "actions": actions,
                 "auth": auth,
             },
             context_instance=RequestContext(request),
         )
     self.context = {"authorised_text": self.authorised_text}
     return super(StateWaitingForApproval, self).view(request, application, label, auth, actions)