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)
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)
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)
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)
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)
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)
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)
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)