Ejemplo n.º 1
0
def reiniciarSeleccion(request):
    limpiarArticulos(getArticulosAceptados(), getArticulosEmpatados(), getArticulosAceptadosEspecial(), getArticulosRechazadosCupo(), getArticulosRechazadosPorPromedio())
    conferencia = Conferencia.objects.all()
    context = RequestContext(request, {
            'conferencia'    : conferencia,
    })
    return render(request, 'Conferencia/index.html', context)
Ejemplo n.º 2
0
def generarAceptados(aceptables):
    # Se verifica si el maximo de articulos es mayor que la longitud de la lista de aceptables
    # si esto pasa entonces la lista de aceptables pasa a ser la lista de aceptados, sino se busca
    # cual es la nueva lista de aceptados
    maxarticulos = getDatosConferencia()
    especiales = getArticulosAceptadosEspecial()
    if especiales != None:
        maxarticulos = maxarticulos - len(especiales)
    if maxarticulos >= len(aceptables):
        for art in aceptables:
            articulo = getArticuloPorId(art.pk)
            if articulo != None:
                articulo.aceptado = True
                articulo.save()
        return aceptables
    else:
        if maxarticulos > 0:
            aceptados = []
            i = 0
            while i < maxarticulos:
                aceptados.append(aceptables[i])
                aceptables[i].aceptado = True
                aceptables[i].save()
                i += 1
            # ultimo es el articulo con promedio de menor valor en la lista de aceptados
            ultimo = aceptados[maxarticulos - 1]
            evalUltimo = ultimo.evaluacion
            #Se establecen los rechazados por cupo
            porCupo = Evaluacion.objects.filter(
                promedio__gte=3, promedio__lte=evalUltimo.promedio)
            if porCupo != None:
                for ev in porCupo:
                    if ev.arbitros.all().count() >= 2:
                        articulo = ev.articulo
                        articulo.rechazadoFaltaCupo = True
                        articulo.save()
            # se cuenta cuantas veces aparece el promedio en la lista de aceptados
            numvecesaccept = calcular_ocurrencia(evalUltimo.promedio,
                                                 aceptados)
            # se cuenta cuantas veces aparece el promedio en la lista de aceptables
            numvecesaceptables = calcular_ocurrencia(evalUltimo.promedio,
                                                     aceptables)
            # si el numero de veces de aceptados es distinto del numero de veces de aceptables
            # se procede a eliminar todos los valores que fueron admitidos en la lista de aceptados

            if numvecesaccept != numvecesaceptables:
                promedioEmpatado = evalUltimo.promedio
                aceptados.remove(ultimo)
                ultimo.aceptado = False
                ultimo.save()
                for articulo in aceptados:
                    if (articulo.evaluacion.promedio == promedioEmpatado):
                        aceptados.remove(articulo)
                        articulo.aceptado = False
                        articulo.save()
        else:
            return []
    return aceptados
Ejemplo n.º 3
0
def reiniciarSeleccion(request):
    limpiarArticulos(getArticulosAceptados(), getArticulosEmpatados(),
                     getArticulosAceptadosEspecial(),
                     getArticulosRechazadosCupo(),
                     getArticulosRechazadosPorPromedio())
    conferencia = Conferencia.objects.all()
    context = RequestContext(request, {
        'conferencia': conferencia,
    })
    return render(request, 'Conferencia/index.html', context)
Ejemplo n.º 4
0
def generarAceptados(aceptables):
    # Se verifica si el maximo de articulos es mayor que la longitud de la lista de aceptables
    # si esto pasa entonces la lista de aceptables pasa a ser la lista de aceptados, sino se busca
    # cual es la nueva lista de aceptados
    maxarticulos = getDatosConferencia()
    especiales = getArticulosAceptadosEspecial()
    if especiales != None:
        maxarticulos = maxarticulos - len(especiales)
    if maxarticulos>=len(aceptables):
        for art in aceptables:
            articulo = getArticuloPorId(art.pk)
            if articulo != None:
                articulo.aceptado = True
                articulo.save()
        return aceptables
    else:
        if maxarticulos > 0:
            aceptados=[]
            i=0
            while i<maxarticulos:
                aceptados.append(aceptables[i])
                aceptables[i].aceptado = True
                aceptables[i].save()
                i+=1
            # ultimo es el articulo con promedio de menor valor en la lista de aceptados
            ultimo=aceptados[maxarticulos-1]
            evalUltimo = ultimo.evaluacion
            #Se establecen los rechazados por cupo
            porCupo = Evaluacion.objects.filter(promedio__gte = 3, promedio__lte = evalUltimo.promedio)
            if porCupo != None:
                for ev in porCupo:
                    if ev.arbitros.all().count() >= 2:
                        articulo = ev.articulo
                        articulo.rechazadoFaltaCupo = True
                        articulo.save()
            # se cuenta cuantas veces aparece el promedio en la lista de aceptados
            numvecesaccept=calcular_ocurrencia(evalUltimo.promedio, aceptados)
            # se cuenta cuantas veces aparece el promedio en la lista de aceptables
            numvecesaceptables=calcular_ocurrencia(evalUltimo.promedio, aceptables)
            # si el numero de veces de aceptados es distinto del numero de veces de aceptables
            # se procede a eliminar todos los valores que fueron admitidos en la lista de aceptados
            
            if numvecesaccept!=numvecesaceptables:
                promedioEmpatado = evalUltimo.promedio
                aceptados.remove(ultimo)
                ultimo.aceptado = False
                ultimo.save()
                for articulo in aceptados:
                    if(articulo.evaluacion.promedio == promedioEmpatado):
                        aceptados.remove(articulo)
                        articulo.aceptado = False
                        articulo.save()
        else:
            return []
    return aceptados
Ejemplo n.º 5
0
def mostrarEstadoArticulos(request):
    listAceptados = getArticulosAceptados()
    listAceptadosEspeciales = getArticulosAceptadosEspecial()
    listRechazadoCupo = getArticulosRechazadosCupo()
    return render(
        request, 'Conferencia/estadoArticulos.html', {
            'listAceptados': listAceptados,
            'listAceptadosEspeciales': listAceptadosEspeciales,
            'listRechazadosCupo': listRechazadoCupo,
            'listRechazadosPromedio': getArticulosRechazadosPorPromedio()
        })
Ejemplo n.º 6
0
def agregarEspecial(request, articulo_id):
    listaAceptados = getArticulosAceptadosYEspeciales()
    listaEmpatados = getArticulosEmpatados()
    maxarticulos = getDatosConferencia()
    if listaAceptados == None:
        listaAceptados = []

    if maxarticulos > len(listaAceptados):
        articulo = getArticuloPorId(articulo_id)
        if articulo != None:
            articulo.aceptadoEspecial = True
            articulo.rechazadoPorPromedio = False
            articulo.rechazadoFaltaCupo = False
            articulo.empatado = False
            articulo.save()
        listaAceptados = getArticulosAceptadosYEspeciales()
        maxarticulos = getDatosConferencia()
        cantidad = maxarticulos - len(listaAceptados)
        return render(
            request, 'Conferencia/especiales.html', {
                'listaArticulos': getArticulosNoEspeciales(),
                'listaEspeciales': getArticulosAceptadosEspecial(),
                'cantidad': cantidad
            })
    maxarticulos = getDatosConferencia()
    if listaAceptados != None:
        cantidad = maxarticulos - len(listaAceptados)
    else:
        cantidad = maxarticulos
    return render(
        request, 'Conferencia/especiales.html', {
            'listaArticulos': getArticulosNoEspeciales(),
            'listaEspeciales': articulosEspeciales,
            'cantidad': cantidad,
            'error_message': "Ya no se pueden aceptar mas articulos."
        })
Ejemplo n.º 7
0
def agregarEspecial(request, articulo_id):
    listaAceptados = getArticulosAceptadosYEspeciales()
    listaEmpatados = getArticulosEmpatados()
    maxarticulos = getDatosConferencia()
    if listaAceptados == None:
        listaAceptados = []
        
    if maxarticulos > len(listaAceptados):
        articulo = getArticuloPorId(articulo_id)
        if articulo != None:
            articulo.aceptadoEspecial = True
            articulo.rechazadoPorPromedio = False
            articulo.rechazadoFaltaCupo = False
            articulo.empatado = False
            articulo.save()
        listaAceptados = getArticulosAceptadosYEspeciales()
        maxarticulos = getDatosConferencia()
        cantidad = maxarticulos - len(listaAceptados)
        return render(request, 'Conferencia/especiales.html', {'listaArticulos':getArticulosNoEspeciales(), 'listaEspeciales':getArticulosAceptadosEspecial(), 'cantidad':cantidad})
    maxarticulos = getDatosConferencia()
    if listaAceptados != None:
        cantidad = maxarticulos - len(listaAceptados)
    else:
        cantidad = maxarticulos
    return render(request, 'Conferencia/especiales.html', 
                  {'listaArticulos':getArticulosNoEspeciales(), 'listaEspeciales':articulosEspeciales, 'cantidad':cantidad, 
                   'error_message' : "Ya no se pueden aceptar mas articulos."})
Ejemplo n.º 8
0
def mostrarEstadoArticulos(request):
    listAceptados = getArticulosAceptados()
    listAceptadosEspeciales = getArticulosAceptadosEspecial()
    listRechazadoCupo = getArticulosRechazadosCupo()
    return render(request, 'Conferencia/estadoArticulos.html', {'listAceptados': listAceptados, 'listAceptadosEspeciales': listAceptadosEspeciales, 
                                                                'listRechazadosCupo': listRechazadoCupo, 'listRechazadosPromedio':getArticulosRechazadosPorPromedio()})
Ejemplo n.º 9
0
def comprobarPresidente(request, vista_sigue):
    form = CorreoForm()
    if request.method == 'POST':
        form = CorreoForm(request.POST)
        if form.is_valid():
            correoForm = form.cleaned_data['correo']
            per = getPersona(correoForm)    
            if per != None:
                com = getComite(correoForm)
                if com == None:
                    form = CorreoForm()
                    return render(request, 'Conferencia/comprobarPresidente.html', 
                  {'form':form, 'vistaSiguiente':vista_sigue,
                   'error_message' : "No hay ningun miembro del comite con ese correo"})
                else:
                    if com.presidente:
                        listaAceptados = getArticulosAceptadosYEspeciales()
                        listaEmpatados = getArticulosEmpatados()
                        maxarticulos = getDatosConferencia()
                        if listaAceptados != None:
                            cantidad = maxarticulos - len(listaAceptados)
                        else:
                            cantidad = maxarticulos
                        if vista_sigue == "desempatar":
                            return render(request, 'Conferencia/desempatar.html', {'listaAceptados':listaAceptados, 'listaEmpatados':listaEmpatados, 'articulosRestantes':cantidad})
                        else:
                            return render(request, 'Conferencia/especiales.html', {'listaArticulos':getArticulosNoEspeciales(), 'listaEspeciales':getArticulosAceptadosEspecial(), 'cantidad':cantidad})              
                    else:
                        form = CorreoForm()
                        return render(request, 'Conferencia/comprobarPresidente.html', {'form':form, "vistaSiguiente":vista_sigue, 'error_message' : "El miembro del comite debe ser el presidente."})
        else:
            form = CorreoForm()
    return render(request, 'Conferencia/comprobarPresidente.html', 
                  {'form':form, 'vistaSiguiente':vista_sigue,
                   'error_message' : "Coloque un email valido."})
Ejemplo n.º 10
0
def comprobarPresidente(request, vista_sigue):
    form = CorreoForm()
    if request.method == 'POST':
        form = CorreoForm(request.POST)
        if form.is_valid():
            correoForm = form.cleaned_data['correo']
            per = getPersona(correoForm)
            if per != None:
                com = getComite(correoForm)
                if com == None:
                    form = CorreoForm()
                    return render(
                        request, 'Conferencia/comprobarPresidente.html', {
                            'form':
                            form,
                            'vistaSiguiente':
                            vista_sigue,
                            'error_message':
                            "No hay ningun miembro del comite con ese correo"
                        })
                else:
                    if com.presidente:
                        listaAceptados = getArticulosAceptadosYEspeciales()
                        listaEmpatados = getArticulosEmpatados()
                        maxarticulos = getDatosConferencia()
                        if listaAceptados != None:
                            cantidad = maxarticulos - len(listaAceptados)
                        else:
                            cantidad = maxarticulos
                        if vista_sigue == "desempatar":
                            return render(
                                request, 'Conferencia/desempatar.html', {
                                    'listaAceptados': listaAceptados,
                                    'listaEmpatados': listaEmpatados,
                                    'articulosRestantes': cantidad
                                })
                        else:
                            return render(
                                request, 'Conferencia/especiales.html', {
                                    'listaArticulos':
                                    getArticulosNoEspeciales(),
                                    'listaEspeciales':
                                    getArticulosAceptadosEspecial(),
                                    'cantidad':
                                    cantidad
                                })
                    else:
                        form = CorreoForm()
                        return render(
                            request, 'Conferencia/comprobarPresidente.html', {
                                'form':
                                form,
                                "vistaSiguiente":
                                vista_sigue,
                                'error_message':
                                "El miembro del comite debe ser el presidente."
                            })
        else:
            form = CorreoForm()
    return render(
        request, 'Conferencia/comprobarPresidente.html', {
            'form': form,
            'vistaSiguiente': vista_sigue,
            'error_message': "Coloque un email valido."
        })