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 send_email(request): if request.method == "POST": form = EmailForm(request.POST) if form.is_valid(): if "preview" in request.POST: emails = form.get_emails() try: preview = emails[0] except: pass else: send_mass_mail(form.get_emails()) messages.success(request, "Emails sent successfully") return HttpResponseRedirect(reverse("kg_admin_index")) else: form = EmailForm() return render_to_response("emails/send_email_form.html", locals(), context_instance=RequestContext(request))
def view(self, request, application, label, roles, actions): """ Django view method. """ if self.check_can_approve(request, application, roles): roles.add('can_approve') if label == "approve" and 'can_approve' in roles: 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, roles) 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, 'roles': roles }, context_instance=RequestContext(request)) elif label == "decline" and 'can_approve' in roles: 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, 'roles': roles }, context_instance=RequestContext(request)) self.context = { 'authorised_text': self.authorised_text, } return super(StateWaitingForApproval, self).view(request, application, label, roles, actions)
def get_next_action(self, request, application, label, roles): """ Django view method. """ actions = self.get_actions(request, application, roles) if label == "approve" and 'approve' in actions: application_form = self.get_approve_form( request, application, roles) form = application_form(request.POST or None, instance=application) if request.method == 'POST': if 'back' in request.POST: url = base.get_url(request, application, roles) return HttpResponseRedirect(url) if 'approve' in request.POST and form.is_valid(): form.save() return "approve" return render( template_name=self.template_approve, context={ 'application': application, 'form': form, 'authorised_text': self.authorised_text, 'actions': self.get_actions(request, application, roles), 'roles': roles }, request=request) elif label == "cancel" and 'cancel' in actions: if request.method == 'POST': form = EmailForm(request.POST) if 'back' in request.POST: url = base.get_url(request, application, roles) return HttpResponseRedirect(url) if 'cancel' in request.POST and 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( template_name=self.template_decline, context={ 'application': application, 'form': form, 'authorised_text': self.authorised_text, 'actions': self.get_actions(request, application, roles), 'roles': roles }, request=request) elif request.method == "POST": for action in ['approve', 'cancel']: if action in request.POST: url = base.get_url(request, application, roles, action) return HttpResponseRedirect(url) # Not parent class method will do the same thing, however this makes it # explicit. if label is not None: return HttpResponseBadRequest("<h1>Bad Request</h1>") self.context = { 'authorised_text': self.authorised_text, } return super(StateWaitingForApproval, self).get_next_action( request, application, label, roles)
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)