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