def form_valid(self, form): application = self.get_application() transition = form.save(commit=False) transition.application = application transition.user = self.request.user transition.save() application.current_stage = transition.stage application.save() applicant = application.applicant opening = application.opening if transition.stage.tag == "REJECTED": send_customised_email("application_rejected", company=opening.company, to=applicant.email, context=dict(applicant_first_name=applicant.first_name, applicant_last_name=applicant.last_name, company=mark_safe(opening.company.name), opening=mark_safe(opening.title)) ) elif transition.stage.tag == "HIRED": send_customised_email("candidate_hired", company=opening.company, to=applicant.email, context=dict(applicant_first_name=applicant.first_name, applicant_last_name=applicant.last_name, company=mark_safe(opening.company.name), opening=mark_safe(opening.title)) ) messages.success(self.request, _('Applicant marked as hired.')) return redirect( 'applications:application_detail', pk=self.kwargs['pk'] )
def post(self, request, *args, **kwargs): try: opening = Opening.objects.get(id=self.kwargs['opening_id']) except Opening.DoesNotExist: raise Http404 if not opening.published_date: raise Http404 form = ApplicationForm(request.POST, request.FILES, opening=opening) if form.is_valid(): applicant = form.save() send_customised_email( "application_received", company=opening.company, to=applicant.email, context=dict(applicant_first_name=applicant.first_name, applicant_last_name=applicant.last_name, company=mark_safe(opening.company.name), opening=mark_safe(opening.title))) return redirect('public:confirmation', opening_id=opening.id) else: context = { 'opening': opening, 'company': opening.company, 'form': form } return self.render_to_response(context)
def form_valid(self, form): application = self.get_application() transition = form.save(commit=False) transition.application = application transition.user = self.request.user transition.save() application.current_stage = transition.stage application.save() applicant = application.applicant opening = application.opening if transition.stage.tag == "REJECTED": send_customised_email( "application_rejected", company=opening.company, to=applicant.email, context=dict(applicant_first_name=applicant.first_name, applicant_last_name=applicant.last_name, company=mark_safe(opening.company.name), opening=mark_safe(opening.title))) elif transition.stage.tag == "HIRED": send_customised_email( "candidate_hired", company=opening.company, to=applicant.email, context=dict(applicant_first_name=applicant.first_name, applicant_last_name=applicant.last_name, company=mark_safe(opening.company.name), opening=mark_safe(opening.title))) messages.success(self.request, _('Applicant marked as hired.')) return redirect('applications:application_detail', pk=self.kwargs['pk'])
def post(self, request, *args, **kwargs): try: opening = Opening.objects.get(id=self.kwargs['opening_id']) except Opening.DoesNotExist: raise Http404 if not opening.published_date: raise Http404 form = ApplicationForm(request.POST, request.FILES, opening=opening) if form.is_valid(): applicant = form.save() send_customised_email("application_received", company=opening.company, to=applicant.email, context=dict(applicant_first_name=applicant.first_name, applicant_last_name=applicant.last_name, company=mark_safe(opening.company.name), opening=mark_safe(opening.title)) ) return redirect('public:confirmation', opening_id=opening.id) else: context = { 'opening': opening, 'company': opening.company, 'form': form } return self.render_to_response(context)