def get(self, request, vacancy_update: int): specialties = Specialty.objects.all() all_applications = Application.objects.all() current_vacancy = vacancy_update vacancy_form = VacancyForm() if vacancy_form.is_valid(): vacancy_form.save() application_form = ApplicationForm() if application_form.is_valid(): application_form.save() applications = Application.objects.all() paginator = Paginator(applications, 5) page = self.request.GET.get('page') try: applications = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. applications = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. applications = paginator.page(paginator.num_pages) context = { 'vacancy_form': vacancy_form, 'all_applications': all_applications, 'specialties': specialties, 'current_vacancy': current_vacancy, 'application_form': application_form, 'vacancies': Vacancy.objects.all(), 'applications': applications, } return render(request, 'recruitment/vacancy_update.html', context=context)
def process_application(request): if request.method == 'POST': print request.META['REMOTE_ADDR'] af = ApplicationForm(request.POST) if af.is_valid(): a = af.save(commit=False) a.header = a.character_name + " " + str(a.level) + " " + a.race + " " + a.xclass a.save() af.save_m2m() return HttpResponseRedirect(reverse('recruitment:applications')) return render(request, 'recruitment/apply.html', { 'application_form': af })
def get(self, request, vacancy_id: int): vacancy = Vacancy.objects.filter(id=vacancy_id).first() if not vacancy: raise Http404 application_form = ApplicationForm() if application_form.is_valid(): application_form.save() context = { 'vacancy': vacancy, 'application_form': application_form, } return render(request, 'recruitment/vacancy.html', context=context)
def apply_for_position(request): def join_preferred_positions(pfs): pfs = [p for p in pfs if p] pfslen = len(pfs) if pfslen == 1: return pfs[0] elif pfslen == 2: return _(u"and").join(unicode(pfs)) else: return u"%s, %s %s %s" % (pfs[0], _(u"and"), pfs[1], pfs[2]) # TODO: Make the process more user friendly. aform = ApplicationForm(request.POST or None) if request.method == "POST": if aform.is_valid(): application = aform.save(commit=False) application.person = Person.objects.get(user=request.user) application.save() messages.success( request, _( u"Thank you for applying to %s. You will within 24 hours receieve a confirmation mail with further instructions." ) % join_preferred_positions( (application.preferred_position1, application.preferred_position2, application.preferred_position3) ), ) return HttpResponseRedirect(reverse("mypage") + u"#applications") return render( request, "recruitment/register.html", {"page_title": _(u"Apply for position"), "button_text": _(u"Save!"), "form": aform}, )
def post(self, request, vacancy_id: int, *args, **kwargs): application_form = ApplicationForm(request.POST) if application_form.is_valid(): application = application_form.save(commit=False) application.user = request.user application.vacancy = Vacancy.objects.filter(id=vacancy_id).first() application_form.save() context = { 'application_form': application_form, } return render(request, 'recruitment/sent.html', context=context) if not application_form.is_valid(): application_form.save() context = { 'application_form': application_form, 'application_form.errors': application_form.errors, } return render(request, 'recruitment/vacancy.html', context=context)