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))
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)
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))
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)