Пример #1
0
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))
Пример #2
0
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))
Пример #3
0
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))
Пример #4
0
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))