Exemple #1
0
def companies_edit(request, company_id):
    company = get_object_or_404(
                  Company, pk=company_id, site_id=get_current_site(request).id
              )
    title = 'Edit a Company'

    if (request.user.id != company.user.id) and not request.user.is_staff:
        return HttpResponseRedirect(company.get_absolute_url())

    if request.method == 'POST':
        form = CompanyForm(request.POST, instance=company)
        if form.is_valid():
            form.save()

            messages.success(
                request,
                'Your company has been successfully updated'
            )

            return HttpResponseRedirect(company.get_absolute_url())
    else:
        form = CompanyForm(instance=company)

    context = {'company': company, 'form': form, 'title': title}

    return render(request, 'job_board/companies_edit.html', context)
Exemple #2
0
def jobs_new(request):
    title = 'Add a Job'
    site = get_current_site(request)
    msg = 'Your job has been successfully added'

    if request.method == 'POST':
        if site.siteconfig.remote:
            form = JobRemoteForm(request.POST)
        else:
            form = JobForm(request.POST)

        company_form = CompanyForm(initial={'site': site})

        if form.is_valid():
            job = form.save(commit=False)
            if site.siteconfig.remote:
                job.remote = True
            job.site_id = site.id
            job.user_id = request.user.id
            job.save()
            context = {'job': job, 'protocol': site.siteconfig.protocol}
            send_mail_with_helper(
                '[%s] New job posting' % site.name.upper(),
                render_to_string('job_board/emails/new_job_notification.txt',
                                 context), site.siteconfig.admin_email,
                [site.siteconfig.admin_email])

            if site.siteconfig.price == 0:
                msg += ', however it does require verification ' \
                       'before being activated'

            messages.success(request, msg)

            return HttpResponseRedirect(job.get_absolute_url())
    else:
        if site.siteconfig.remote:
            form = JobRemoteForm()
        else:
            form = JobForm()

        company_form = CompanyForm(initial={'site': site})

    # NOTE: By default, the company and category dropdowns will contain all
    #       instances across all sites, and the following limits this to
    #       the site in question.
    form.fields['company'].queryset = Company.objects.filter(site_id=site.id)
    form.fields['category'].queryset = Category.objects.filter(site_id=site.id)

    context = {
        'form': form,
        'company_form': company_form,
        'title': title,
        'protocol': site.siteconfig.protocol
    }
    return render(request, 'job_board/jobs_new.html', context)
Exemple #3
0
def companies_edit(request, company_id):
    company = get_object_or_404(Company,
                                pk=company_id,
                                site_id=get_current_site(request).id)
    title = 'Edit a Company'

    if request.user.id != company.user.id:
        return HttpResponseRedirect(
            reverse('companies_show', args=(company.id, )))

    if request.method == 'POST':
        form = CompanyForm(request.POST, instance=company)
        if form.is_valid():
            form.save()

            messages.success(request,
                             'Your company has been successfully updated')

            return HttpResponseRedirect(
                reverse('companies_show', args=(company.id, )))
    else:
        form = CompanyForm(instance=company)

    context = {'company': company, 'form': form, 'title': title}

    return render(request, 'job_board/companies_edit.html', context)
Exemple #4
0
def companies_new(request):
    title = 'Add a Company'
    site = get_current_site(request)

    if request.method == 'POST':
        form = CompanyForm(request.POST)
        if form.is_valid():
            company = form.save(commit=False)
            company.site_id = site.id
            company.user_id = request.user.id
            company.save()

            messages.success(request,
                             'Your company has been successfully added')

            return HttpResponseRedirect(
                reverse('companies_show', args=(company.id, )))
    else:
        # NOTE: site will be displayed in the HTML form as a hidden field, we
        #       need to find a way to set this in CompanyForm so validation
        #       passes, without actually putting it in the HTML
        form = CompanyForm(initial={'site': site})

    context = {'form': form, 'title': title}
    return render(request, 'job_board/companies_new.html', context)
Exemple #5
0
def companies_new(request):
    title = 'Add a Company'
    site = get_current_site(request)

    if request.method == 'POST':
        form = CompanyForm(request.POST)
        if form.is_valid():
            company = form.save(commit=False)
            company.site_id = site.id
            company.user_id = request.user.id
            company.save()

            if request.is_ajax():
                return JsonResponse({'id': company.id, 'name': company.name})
            else:
                messages.success(
                    request,
                    'Your company has been successfully added'
                )
                return HttpResponseRedirect(company.get_absolute_url())

        else:
            if request.is_ajax():
                return render(
                    request,
                    'job_board/_errors.html',
                    {'form': form},
                    status=400
                )
    else:
        form = CompanyForm()

    context = {'form': form, 'title': title}
    return render(request, 'job_board/companies_new.html', context)
Exemple #6
0
def companies_new(request):
    title = 'Add a Company'
    site = get_current_site(request)

    if request.method == 'POST':
        form = CompanyForm(request.POST)
        if form.is_valid():
            company = form.save(commit=False)
            company.site_id = site.id
            company.user_id = request.user.id
            company.save()

            if request.is_ajax():
                return JsonResponse({'id': company.id, 'name': company.name})
            else:
                messages.success(request,
                                 'Your company has been successfully added')
                return HttpResponseRedirect(company.get_absolute_url())

        else:
            if request.is_ajax():
                return render(request,
                              'job_board/_errors.html', {'form': form},
                              status=400)
    else:
        # NOTE: site will be displayed in the HTML form as a hidden field, we
        #       need to find a way to set this in CompanyForm so validation
        #       passes, without actually putting it in the HTML
        form = CompanyForm(initial={'site': site})

    context = {'form': form, 'title': title}
    return render(request, 'job_board/companies_new.html', context)
Exemple #7
0
def companies_new(request):
    title = 'Add a Company'
    site = get_current_site(request)

    if request.method == 'POST':
        form = CompanyForm(request.POST)
        if form.is_valid():
            company = form.save(commit=False)
            company.site_id = site.id
            company.user_id = request.user.id
            company.save()

            if request.is_ajax():
                return JsonResponse({'id': company.id, 'name': company.name})
            else:
                messages.success(
                    request,
                    'Your company has been successfully added'
                )
                return HttpResponseRedirect(company.get_absolute_url())

        else:
            if request.is_ajax():
                return render(
                    request,
                    'job_board/_errors.html',
                    {'form': form},
                    status=400
                )
    else:
        # NOTE: site will be displayed in the HTML form as a hidden field, we
        #       need to find a way to set this in CompanyForm so validation
        #       passes, without actually putting it in the HTML
        form = CompanyForm(initial={'site': site})

    context = {'form': form, 'title': title}
    return render(request, 'job_board/companies_new.html', context)
Exemple #8
0
def companies_new(request):
    title = 'Add a Company'
    site = get_current_site(request)

    if request.method == 'POST':
        form = CompanyForm(request.POST)
        if form.is_valid():
            company = form.save(commit=False)
            company.site_id = site.id
            company.user_id = request.user.id
            company.save()

            if request.is_ajax():
                # NOTE: CockroachDB's id is larger than JavaScript's number
                #       precision (53 bits), which results in the id getting
                #       rounded. Instead, we just convert the id to a string.
                return JsonResponse(
                    {'id': str(company.id), 'name': company.name}
                )
            else:
                messages.success(
                    request,
                    'Your company has been successfully added'
                )
                return HttpResponseRedirect(company.get_absolute_url())

        else:
            if request.is_ajax():
                return render(
                    request,
                    'job_board/_errors.html',
                    {'form': form},
                    status=400
                )
    else:
        form = CompanyForm()

    context = {'form': form, 'title': title}
    return render(request, 'job_board/companies_new.html', context)