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)
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
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)
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
def mostrarEstadoArticulos(request): listAceptados = getArticulosAceptados() listAceptadosEspeciales = getArticulosAceptadosEspecial() listRechazadoCupo = getArticulosRechazadosCupo() return render( request, 'Conferencia/estadoArticulos.html', { 'listAceptados': listAceptados, 'listAceptadosEspeciales': listAceptadosEspeciales, 'listRechazadosCupo': listRechazadoCupo, 'listRechazadosPromedio': getArticulosRechazadosPorPromedio() })
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." })
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."})
def mostrarEstadoArticulos(request): listAceptados = getArticulosAceptados() listAceptadosEspeciales = getArticulosAceptadosEspecial() listRechazadoCupo = getArticulosRechazadosCupo() return render(request, 'Conferencia/estadoArticulos.html', {'listAceptados': listAceptados, 'listAceptadosEspeciales': listAceptadosEspeciales, 'listRechazadosCupo': listRechazadoCupo, 'listRechazadosPromedio':getArticulosRechazadosPorPromedio()})
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."})
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." })