Пример #1
0
def offer_details(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    enterprise = Enterprise.objects.get(pk=request.user.id)
    if offer.enterprise != enterprise:
        request.flash[
            'error_message'] = 'No tiene permisos para ver esta oferta'
        return redirect('bolsa_trabajo.views_enterprise.offer')

    form = None
    if offer.is_closed() and not offer.is_closed_by_admin():
        if request.method == 'POST':
            form = OfferStatusForm(request.POST)
            if form.is_valid():
                offer.change_status_from_form(form)
                offer.save()

                request.flash['message'] = 'Feedback editado exitosamente'
                url = reverse('bolsa_trabajo.views_enterprise.offer')
                return HttpResponseRedirect(url)
        else:
            form = OfferStatusForm.create_from_offer(offer)

    return append_user_to_response(request, 'enterprise/offer_details.html', {
        'offer_form': form,
        'offer': offer,
    })
Пример #2
0
def offer_details(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    enterprise = Enterprise.objects.get(pk=request.user.id)
    if offer.enterprise != enterprise:
        request.flash['error_message'] = 'No tiene permisos para ver esta oferta'
        return redirect('bolsa_trabajo.views_enterprise.offer')

    form = None
    if offer.is_closed() and not offer.is_closed_by_admin():
        if request.method == 'POST':
            form = OfferStatusForm(request.POST)
            if form.is_valid():
                offer.change_status_from_form(form)
                offer.save()

                request.flash['message'] = 'Feedback editado exitosamente'
                url = reverse('bolsa_trabajo.views_enterprise.offer')
                return HttpResponseRedirect(url)
        else:
            form = OfferStatusForm.create_from_offer(offer)

    return append_user_to_response(request, 'enterprise/offer_details.html', {
        'offer_form': form,
        'offer': offer,
    })
Пример #3
0
def close_offer(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    if request.user.is_staff:
        enterprise = offer.enterprise
        success_url = reverse('bolsa_trabajo.views.offer_details', args=[offer.id])
    else:
        enterprise = Enterprise.objects.get(pk=request.user.id)
        success_url = reverse('bolsa_trabajo.views_enterprise.offer')

    if offer.enterprise != enterprise:   # unauthorized user
        url = reverse('bolsa_trabajo.views_account.index')
        return HttpResponseRedirect(url)

    if offer.is_closed():  # do nothing in this case
        url = reverse('bolsa_trabajo.views_account.index')
        return HttpResponseRedirect(url)

    if request.user.is_staff:
        offer.close_by_admin()

    elif request.method == 'POST':
        form = OfferStatusForm(request.POST)
        if form.is_valid():
            offer.close(motive=form.cleaned_data['closure_reason'])
        else:
            request.flash['error_message'] = 'Opción de Cierre de Oferta Inválida'
            return HttpResponseRedirect(success_url)

    else:  # GET method, do nothing
        return HttpResponseRedirect(success_url)

    offer.save()
    request.flash['message'] = 'Oferta cerrada exitosamente'

    return HttpResponseRedirect(success_url)
Пример #4
0
def edit_offer(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    enterprise = Enterprise.objects.get(pk=request.user.id)

    # check if user has permission to edit this offer
    if offer.enterprise != enterprise:
        request.flash[
            'error_message'] = 'No tiene permisos para editar esta oferta'
        return redirect('bolsa_trabajo.views_enterprise.offer')

    # check first if offer is closed
    if offer.is_closed():
        request.flash['error_message'] = "No puede editar una oferta cerrada"
        return redirect('bolsa_trabajo.views_enterprise.offer')

    if request.method == 'POST':
        form = OfferForm(request.POST)
        if form.is_valid():
            offer.load_from_form(form)
            offer.save()

            request.flash['message'] = 'Oferta editada exitosamente'
            url = reverse('bolsa_trabajo.views_enterprise.offer_details',
                          args=[offer.id])
            return HttpResponseRedirect(url)
    else:
        form = OfferForm.create_from_offer(offer)

    close_form = OfferStatusForm()

    return append_user_to_response(request, 'enterprise/edit_offer.html', {
        'offer': offer,
        'offer_form': form,
        'close_form': close_form,
    })
Пример #5
0
def close_offer(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    if request.user.is_staff:
        enterprise = offer.enterprise
        success_url = reverse('bolsa_trabajo.views.offer_details',
                              args=[offer.id])
    else:
        enterprise = Enterprise.objects.get(pk=request.user.id)
        success_url = reverse('bolsa_trabajo.views_enterprise.offer')

    if offer.enterprise != enterprise:  # unauthorized user
        url = reverse('bolsa_trabajo.views_account.index')
        return HttpResponseRedirect(url)

    if offer.is_closed():  # do nothing in this case
        url = reverse('bolsa_trabajo.views_account.index')
        return HttpResponseRedirect(url)

    if request.user.is_staff:
        offer.close_by_admin()

    elif request.method == 'POST':
        form = OfferStatusForm(request.POST)
        if form.is_valid():
            offer.close(motive=form.cleaned_data['closure_reason'])
        else:
            request.flash[
                'error_message'] = 'Opción de Cierre de Oferta Inválida'
            return HttpResponseRedirect(success_url)

    else:  # GET method, do nothing
        return HttpResponseRedirect(success_url)

    offer.save()
    request.flash['message'] = 'Oferta cerrada exitosamente'

    return HttpResponseRedirect(success_url)