Example #1
0
def enunciado(request, **kwargs):
    materia_carrera = kwargs['materia_carrera']
    enunciado_encontrado = enunciados_url_parser.kwargs_a_enunciado(kwargs)
    conjunto = enunciado_encontrado.conjunto
    if request.method == 'POST':
        response = handle_post(request, materia_carrera, conjunto,
                               enunciado_encontrado)
    else:
        response = handle_get(request, materia_carrera, conjunto,
                              enunciado_encontrado)

    return response
Example #2
0
def enunciado(request, **kwargs):
    materia_carrera = kwargs['materia_carrera']
    enunciado_encontrado = enunciados_url_parser.kwargs_a_enunciado(kwargs)
    conjunto = enunciado_encontrado.conjunto
    if request.method == 'POST':
        numero_anterior = enunciado_encontrado.numero
        enunciado_form = EnunciadoConConjuntoForm(
            conjunto, request.POST, instance=enunciado_encontrado)
        version_texto_form = VersionTextoForm(request.POST)
        if enunciado_form.is_valid() and version_texto_form.is_valid():
            hubo_error = False

            nuevo_numero = enunciado_form.cleaned_data['numero']
            texto_nuevo = version_texto_form.cleaned_data['texto']
            cambio_texto = se_cambio_texto(enunciado_encontrado, texto_nuevo)
            if numero_anterior == nuevo_numero and not cambio_texto:
                version_texto_form.add_error(
                    'texto', ValidationError(_('No se cambiĆ³ el texto.')))
                hubo_error = True

            if not hubo_error:
                enunciado = enunciado_form.save()
                if cambio_texto:
                    version_texto = version_texto_form.save(commit=False)
                    version_texto.enunciado = enunciado
                    version_texto.save()
                success_url = enunciados_url_parser.url_enunciado(
                    materia_carrera, enunciado)
                return redirect(success_url)
    else:
        enunciado_form = EnunciadoConConjuntoForm(
            conjunto, initial={'numero': enunciado_encontrado.numero})
        version_texto_form = VersionTextoForm(
            initial={'texto': enunciado_encontrado.versiones.ultima().texto})

    context = {
        'materia_carrera':
        materia_carrera,
        'carrera':
        materia_carrera.carrera,
        'enunciado_form':
        enunciado_form,
        'version_texto_form':
        version_texto_form,
        'breadcrumb':
        breadcrumb_editar_enunciado(materia_carrera, enunciado_encontrado)
    }
    return render(request, 'enunciados/editar_enunciado.html', context)
Example #3
0
def enunciado(request, **kwargs):
    enunciado_encontrado = enunciados_url_parser.kwargs_a_enunciado(kwargs)
    tipo_conjunto = conjuntos_utils.tipo_conjunto(
        enunciado_encontrado.conjunto)
    conjunto = enunciado_encontrado.conjunto
    if tipo_conjunto == 'practica':
        conjunto = conjunto.practica
    elif tipo_conjunto == 'parcial':
        conjunto = conjunto.parcial
    elif tipo_conjunto == 'final':
        conjunto = conjunto.final

    materia_carrera = kwargs.get('materia_carrera')
    url_agregar_solucion = soluciones_url_parser.url_nueva_solucion(
        materia_carrera, enunciado_encontrado)
    return render_enunciado(request, materia_carrera, enunciado_encontrado,
                            url_agregar_solucion, conjunto)
Example #4
0
def enunciado(request, **kwargs):
    enunciado_encontrado = enunciados_url_parser.kwargs_a_enunciado(kwargs)
    tipo_conjunto = conjuntos_utils.tipo_conjunto(
        enunciado_encontrado.conjunto)
    conjunto = enunciado_encontrado.conjunto
    if tipo_conjunto == 'practica':
        conjunto = conjunto.practica
    elif tipo_conjunto == 'parcial':
        conjunto = conjunto.parcial
    elif tipo_conjunto == 'final':
        conjunto = conjunto.final

    materia_carrera = kwargs.get('materia_carrera')
    url_agregar_solucion = soluciones_url_parser.url_nueva_solucion(
        materia_carrera, enunciado_encontrado)

    soluciones = enunciado_encontrado.soluciones.order_by('-puntos')

    soluciones_con_votos = [(solucion,
                             voto_de_solucion(request.user, solucion))
                            for solucion in soluciones]

    contexto = {
        'carrera':
        materia_carrera.carrera,
        'materia_carrera':
        materia_carrera,
        'enunciado':
        enunciado_encontrado,
        'url_agregar_solucion':
        url_agregar_solucion,
        'conjunto':
        conjunto,
        'breadcrumb':
        breadcrumb_ver_enunciado(materia_carrera, enunciado_encontrado),
        'soluciones_con_votos':
        soluciones_con_votos,
        'usuario_logueado':
        request.user.is_authenticated,
    }
    return render(request, 'enunciados/enunciado.html', contexto)
Example #5
0
 def dispatch(self, request, *args, **kwargs):
     self.enunciado = enunciados_url_parser.kwargs_a_enunciado(self.kwargs)
     self.materia_carrera = kwargs['materia_carrera']
     return super(CrearSolucion, self).dispatch(request, *args, **kwargs)
Example #6
0
 def get_object(self):
     return enunciados_url_parser.kwargs_a_enunciado(self.kwargs)