예제 #1
0
 def post(self, request, id_vacancy):
     form = ApplicationForm(request.POST)
     if form.is_valid():
         data = form.cleaned_data
         user = request.user if request.user else '1'
         vacancy = Vacancy.objects.get(pk=id_vacancy)
         application = Application.objects.create(
             written_username=data['written_username'],
             written_phone=data['written_phone'],
             written_cover_letter=data['written_cover_letter'],
             user=user,
             vacancy=vacancy,
         )
         return render(request, 'sent.html', vacancy)
     return render(request, 'vacancy.html', {'form': form})
예제 #2
0
 def post(self, request, vacancy_id, *args, **kwargs):
     application_form = ApplicationForm(request.POST)
     if application_form.is_valid():
         Application.objects.create(
             written_username=application_form.
             cleaned_data['written_username'],
             written_phone=application_form.cleaned_data['written_phone'],
             written_cover_letter=application_form.
             cleaned_data['written_cover_letter'],
             vacancy=Vacancy.objects.get(id=vacancy_id),
             user=request.user,
         )
         return redirect('/vacancies/{}/send'.format(vacancy_id))
     else:
         raise Http404
예제 #3
0
파일: views.py 프로젝트: M-Kruse/Applied
def new_application(request):
    if request.method == 'POST':
        form = ApplicationForm(request.POST)
        if form.is_valid():
            a = Application(
                job=form.cleaned_data['job'],
                apply_date=form.cleaned_data['apply_date'],
                status=form.cleaned_data['status'],
                contact=form.cleaned_data['contact'],
                notes=form.cleaned_data['notes']
                )
            a.save()
            return HttpResponseRedirect('/jobs/applications/')
    else:
        form = ApplicationForm()
    return render(request, 'jobs/applications/new.html', {'form': form})
예제 #4
0
    def post(self, request, vacancy_id):
        form = ApplicationForm(request.POST)
        if form.is_valid():
            form = form.save(commit=False)
            form.vacancy = Vacancy.objects.get(id=vacancy_id)
            form.user = request.user if request.user.is_authenticated else None
            form.save()
            return redirect(f'/vacancies/{vacancy_id}/send/')

        return render(request, 'vacancy.html', context={'form': form})
예제 #5
0
    def get(self, request, vacancy_id: int):
        try:
            company = Company.objects.get(owner=request.user)
            context = {
                "vacancy": company.vacancies.get(id=vacancy_id),
                'form': ApplicationForm(),
            }

            return render(request, "vacancy.html", context)

        except ObjectDoesNotExist:
            raise Http404
예제 #6
0
def vacancy_detail(request, vacancy_id):
    if request.method == 'POST':
        application_form = ApplicationForm(request.POST)
        if application_form.is_valid():
            Application.objects.create(
                written_username=application_form.
                cleaned_data['written_username'],
                written_phone=application_form.cleaned_data['written_phone'],
                written_cover_letter=application_form.
                cleaned_data['written_cover_letter'],
                vacancy=Vacancy.objects.get(id=vacancy_id),
                user=request.user,
            )
            return redirect('/vacancies/{}/send'.format(vacancy_id))
        else:
            raise Http404
    else:
        vacancy = get_object_or_404(Vacancy, id=vacancy_id)
        application_form = ApplicationForm
        context = {'vacancy': vacancy, 'application_form': application_form}
        return render(request, 'jobs/public/vacancy.html', context)
예제 #7
0
    def get(self, request, vacancy_id: int):
        try:
            vacancy = Vacancy.objects.get(id=vacancy_id)
        except ObjectDoesNotExist:
            return redirect('/vacancies/')

        context = {
            'vacancy': vacancy,
            'form':
            ApplicationForm() if request.user.is_authenticated else None,
            'previous_url': self.request.META['HTTP_REFERER'],
        }

        return render(request, "vacancy.html", context)
예제 #8
0
    def get(self, request, vacancy_id):
        try:
            vacancy = Vacancy.objects.get(id=vacancy_id)
        except Vacancy.DoesNotExist:
            return render(request, '404.html', context={})
        company = Company.objects.get(id=vacancy.company.id)
        form = ApplicationForm()

        return render(request,
                      'vacancy.html',
                      context={
                          'vacancy': vacancy,
                          'company': company,
                          'form': form
                      })
예제 #9
0
    def post(self, request, vacancy_id: int):
        application_form = ApplicationForm(request.POST)
        try:
            vacancy = Vacancy.objects.get(id=vacancy_id)
        except ObjectDoesNotExist:
            return HttpResponseServerError

        if application_form.is_valid():
            if not Application.objects.filter(vacancy=vacancy,
                                              user=request.user).exists():
                if application_form.is_valid():
                    data = application_form.cleaned_data
                    Application.objects.create(
                        written_username=data['written_username'],
                        written_phone=data['written_phone'],
                        written_cover_letter=data['written_cover_letter'],
                        vacancy=vacancy,
                        user=request.user,
                    )
                elif "written_phone" not in application_form.cleaned_data:
                    application_form.add_error(
                        "written_phone", 'Некорректный формат номера телефона')
                else:
                    raise SuspiciousOperation("Invalid request")

                return render(request, "sent.html", {'vacancy_id': vacancy_id})
            else:
                application_form.add_error(
                    None,
                    'Отправить отклик на вакансию можно только один раз :(')

        context = {
            'vacancy': vacancy,
            'form': application_form,
        }

        return render(request, "vacancy.html", context)
예제 #10
0
def apply(request, pk):
    form = ApplicationForm()
    position = Position.objects.get(pk=pk)
    obj, created = SavedJobs.objects.update_or_create(user=request.user,
                                                      position=position,
                                                      defaults={
                                                          "active": True,
                                                          "applied": True
                                                      })
    application = Application(user=request.user, position=position)

    if request.method == "POST" and request.user.is_authenticated():
        form = ApplicationForm(request.POST, instance=application)

        if form.is_valid():
            form.save(commit=True)
            user_data = request.user.social_auth.get(
                provider='linkedin-oauth2').extra_data
            question1 = request.POST.get('question1')
            question2 = request.POST.get('question2')

            template = get_template('add_position.txt')
            context = Context({
                'user_data': user_data,
                'question1': question1,
                'question2': question2,
            })
            content = template.render(context)

            email = EmailMessage("New application", content, '*****@*****.**',
                                 ['*****@*****.**'])
            email.send()
            return redirect('jobs/saved_jobs')

        else:
            print(form.errors)

    return render(request, 'jobs/application.html', {'application_form': form})