예제 #1
0
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)
예제 #2
0
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')
예제 #3
0
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')
예제 #4
0
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)