Example #1
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)
Example #2
0
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))
Example #3
0
 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)
Example #4
0
    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)
Example #5
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)
Example #6
0
    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)