def addHerramientaParaPublicacion(request, id): try: herramienta = models.Herramienta.objects.get(id=id) except ObjectDoesNotExist: messages.error(request, 'Herramienta no encontrada') return redirect('home') if not filters.is_herramienta_owner(request.user, herramienta) and not filters.has_group( request.user, "Administrador"): list_revisiones = HerramientaPorAprobar.objects.filter( herramienta_id=herramienta.id) for revision in list_revisiones: if revision.owner.username == request.user.username: messages.error(request, 'Herramienta ya ha sido postulada por ti') return redirect('tool_detail', id) HerramientaPorAprobar.objects.create(herramienta=herramienta, owner=request.user) # Send Confirmation Email admins = User.objects.filter(groups__name="Administrador") EmailHandler.send_email_to_publish_tool(admins, herramienta.owner, herramienta) messages.success(request, 'Herramienta Postulada Correctamente') return redirect('tool_detail', id) messages.error(request, 'Error de Permisos') return redirect('tool_detail', id)
def editHerramienta(request, id): try: herramienta = models.Herramienta.objects.get(id=id) except ObjectDoesNotExist: mensaje = "Esta herramienta no existe" return HttpResponse(json.dumps({"error": mensaje}), status=404, content_type='application/json') if filters.is_herramienta_owner( request.user, herramienta) or in_admin_group(request.user): if request.method == "POST": form = HerramientaForm(request.POST, instance=herramienta) if form.is_valid(): form.save() messages.success(request, 'Herramienta editada con Éxito!') #return redirect('home') mensaje = {"mensaje": "edicion de herramienta exitoso"} return HttpResponse(json.dumps(mensaje), status=200, content_type='application/json') erros = form.errors.items() return HttpResponse(json.dumps(erros), status=400, content_type='application/json') mensaje = "Metodo no permitido" return HttpResponse(json.dumps({"mensaje": mensaje}), status=404, content_type='application/json') else: return redirect('home')
def editHerramientaField(request, id): try: herramienta = models.Herramienta.objects.get(id=id) except ObjectDoesNotExist: messages.error(request, 'Herramienta no encontrada') return redirect('home') if not filters.has_group(request.user, "Administrador"): if herramienta.estado == 0 and filters.is_herramienta_owner(request.user, herramienta): herramienta.estado = 1 herramienta.save() miembros = User.objects.filter(groups__name="MiembroGTI").exclude(username=request.user.username) EmailHandler.send_email_miembro(miembros, request.user, herramienta) elif herramienta.estado == 1: herramienta.estado = 0 herramienta.owner = request.user herramienta.save() herramientas_por_borrar = models.HerramientaPorAprobar.objects.filter(herramienta_id=herramienta.id) for current_postulacion in herramientas_por_borrar: current_postulacion.delete() if herramienta.estado == 0: text = "Borrador" else: text = "En Revisión" messages.success(request, '¡La Herramienta ahora está en estado ' + text + '!') return redirect('tool_detail', index=herramienta.id) else: return redirect('home')
def editHerramientaView(request, id): try: edicion = models.Herramienta.objects.get(id=id) except ObjectDoesNotExist: mensaje = "<h1>Esta herramienta no existe</h1>" return HttpResponseNotFound(mensaje) if filters.is_herramienta_owner(request.user, edicion) or in_admin_group(request.user): url = "/herramienta/api/herramientas/form/%d/" % (int(id)) return render(request,'herramienta/add_herramienta.html',{"form": HerramientaForm(instance=edicion), "url":url}) else: mensaje = "<h1>No tiene acceso a esta herramienta</h1>" return HttpResponseNotFound(mensaje)