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_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_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 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(): # 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)
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)