コード例 #1
0
ファイル: views.py プロジェクト: dfSabogal10/conectate
def home(request):
    lista_herramientas = Herramienta.objects.all()
    if filters.has_group(request.user, "MiembroGTI"):
        ownTools = lista_herramientas.filter(estado=0, owner=request.user)
        lista_herramientas = lista_herramientas.exclude(estado=0)
        lista_herramientas = lista_herramientas | ownTools
    elif filters.has_group(request.user, "ConectaTE"):
        lista_herramientas = lista_herramientas.exclude(estado=0)
    elif not filters.has_group(request.user, "Administrador"):
        lista_herramientas = lista_herramientas.filter(estado=2)

    #validar filtro
    categoria = request.GET.get('categoria',False)
    if categoria:
        cat =int(categoria)
        lista_herramientas = lista_herramientas.filter(tipo=cat,estado=1)
    sistema_operativo = request.GET.get('sistema_operativo', False)
    if sistema_operativo:
        lista_herramientas = lista_herramientas.filter(sistema_operativo__icontains=sistema_operativo)
    tipo_licencia = request.GET.get('tipo_licencia', False)
    if tipo_licencia:
        lista_herramientas = lista_herramientas.filter(licencia__icontains=tipo_licencia)
    uso= request.GET.get('uso',False)
    if uso:
        lista_herramientas=lista_herramientas.filter(usos__icontains=uso, estado=1)
    context = {'lista_herramientas': lista_herramientas}
    return render(request, 'home.html', context)
コード例 #2
0
ファイル: views.py プロジェクト: dfSabogal10/conectate
def details(request, index=None):
    instance = get_object_or_404(Herramienta, id=index)

    if (filters.has_group(request.user, "Administrador") or instance.estado == 2 or
    (filters.has_group(request.user, "MiembroGTI") and instance.estado == 1) or
    (filters.has_group(request.user, "ConectaTE") and instance.estado == 1) or
    (filters.has_group(request.user, "MiembroGTI") and instance.estado == 0 and instance.owner == request.user)):
        context = {'herramienta': instance}
        return render(request, 'detalleherramienta.html', context)
    else:
        return redirect('home')
コード例 #3
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)
コード例 #4
0
ファイル: views.py プロジェクト: dfSabogal10/conectate
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')
コード例 #5
0
ファイル: views.py プロジェクト: dfSabogal10/conectate
def lista_herramientas_por_publicar (request):
    if(filters.has_group(request.user, "Administrador")):
        lista_postulaciones = HerramientaPorAprobar.objects.all()

        context = {'lista_postulaciones': lista_postulaciones}
        return render(request, 'herramienta/lista_herramientas_publicacion.html', context)
    else:
        return redirect('home')
コード例 #6
0
ファイル: views.py プロジェクト: dfSabogal10/conectate
def lista_postulaciones_rechazar (request, index=None):
    try:
        postulacion = models.HerramientaPorAprobar.objects.get(id=index)
        herramienta = models.Herramienta.objects.get(id=postulacion.herramienta.id)
    except ObjectDoesNotExist:
        mensaje = "<h1>Esta herramienta no existe</h1>"
        return HttpResponseNotFound(mensaje)

    if filters.has_group(request.user, "Administrador"):
        herramientas_por_borrar = models.HerramientaPorAprobar.objects.filter(herramienta_id=herramienta.id)
        for current_postulacion in herramientas_por_borrar:
            current_postulacion.delete()

        return redirect('tool_detail', index=herramienta.id)
    else:
        return redirect('home')