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