def addjob(request): board = request.board job_static_form = JobStaticForm(board = board, prefix="job_static_form") job_contact_form = JobContactForm(prefix="job_contact_form") JobForm = get_job_form(board = request.board) form = JobForm(prefix="form") if request.method == "POST": form = JobForm(data = request.POST, files = request.FILES, prefix = "form") job_static_form = JobStaticForm(board = request.board, data = request.POST, prefix = "job_static_form") job_contact_form = JobContactForm(data = request.POST, prefix = "job_contact_form") if form.is_valid() and job_static_form.is_valid() and job_contact_form.is_valid(): job = job_static_form.save() Form = get_job_form(request.board, job = job, captcha_required=False) form = Form(data = request.POST, files = request.FILES, prefix = "form") assert form.is_valid() form.save() contact = job_contact_form.save(commit = False) contact.job = job contact.board = request.board contact.save() #request.user.message_set.create(message="The job has been added.") #The job has been added. It is inactive yet. Ask user to pay via Paypal if needed. if not board.cost_per_job_listing: #There is no charge for adding Jobs to this board. job.is_active = True job.save() return HttpResponseRedirect(reverse("frontend_job", args=[job.job_slug])) else: return HttpResponseRedirect(reverse("frontend_job_paypal", args=[job.pk])) pages = board.page_set.all() payload = {"job_static_form": job_static_form, "job_contact_form": job_contact_form, "job_form": form, "pages": pages} return render_to_response("frontend/addjob.html", payload, RequestContext(request))
def add_job(request): "Add a job, via the backend." job_static_form = JobStaticForm(board = request.board, prefix = "job_static_form") job_contact_form = JobContactForm(prefix = "job_contact_form") Form = get_job_form(request.board, captcha_required=False) form = Form( prefix = "form") if request.method == 'POST': form = Form(data = request.POST, files = request.FILES, prefix = "form") job_static_form = JobStaticForm(board = request.board, data = request.POST, prefix = "job_static_form") job_contact_form = JobContactForm(data = request.POST, prefix = "job_contact_form") if form.is_valid() and job_static_form.is_valid() and job_contact_form.is_valid(): job = job_static_form.save() Form = get_job_form(request.board, job=job, captcha_required=False) form = Form(data = request.POST, files = request.FILES, prefix = "form") assert form.is_valid() form.save() contact = job_contact_form.save(commit = False) contact.job = job contact.board = request.board contact.save() # since the job is added from admin, marking it as # active by default job.is_active = True job.save() request.user.message_set.create(message="The job has been added.") return HttpResponseRedirect(reverse('zobpress_index')) payload = {'form':form, 'job_static_form': job_static_form, "job_contact_form": job_contact_form} return render_to_response('zobpress/addjob.html', payload, RequestContext(request))
def edit_job(request, id): "Edit job with given id." job = get_object_or_404(Job, board=request.board, id = id) job_static_form = JobStaticForm(board = request.board, instance = job) JobForm = get_job_form(request.board, job = job, captcha_required=False) if request.method == 'POST': form = JobForm(request.POST, files = request.FILES) job_static_form = JobStaticForm(board=request.board, instance=job, data=request.POST) if form.is_valid() and job_static_form.is_valid(): job_static_form.save() job = form.save() return HttpResponseRedirect(job.get_absolute_url()) elif request.method == 'GET': job = models.Job.objects.get(board = request.board, id = id) form = JobForm() payload = {'form': form, "job_static_form": job_static_form} return render_to_response('zobpress/editjob.html', payload, RequestContext(request))
def create_job_form(request): "Create a job form for a board." from zobpress.utils import get_editable_form editable_form_data = get_editable_form(request.board) job_form, created = JobFormModel.objects.get_or_create(board = request.board) if request.method == 'POST' and request.is_ajax(): if "create-form" in request.POST: data = simplejson.load(StringIO(request.POST['data'])) if not sanitize_data(data): raise Exception("Names are not unique") job_form.jobfieldmodel_set.all().delete() order = 1 for field in data: if field: field_obj = JobFieldModel(job_form = job_form, name = field[0], type=field[1], order = order) order += 1 field_obj.save() success_url = reverse('zobpress_add_job') return HttpResponse(success_url) if "reset-form" in request.POST: job_form.jobfieldmodel_set.all().delete() success_url = reverse('zobpress_add_job') return HttpResponseRedirect(success_url) board_job_form, form_fields = get_job_form(request.board, return_job_fields_also = True) payload = {'board_job_form': board_job_form(), 'form_fields': form_fields, "editable_form_data": editable_form_data} return render_to_response('zobpress/create_job_form.html', payload, RequestContext(request))