Пример #1
0
def create(request, titulo_id = None):
    "Agregar orientación al título actual o crearla eligiendo el mismo"
    if titulo_id is not None:
        titulo = Titulo.objects.get(pk=titulo_id)
    else:
        titulo = None

    if request.method == 'POST':
        form = TituloOrientacionForm(request.POST)
        if form.is_valid():

            orientacion = form.save()
            orientacion.registrar_estado()

            request.set_flash('success', 'Datos guardados correctamente.')

            # redirigir a edit
            return HttpResponseRedirect(reverse('orientacionesPorTitulo', args=[orientacion.titulo.id]))
        else:
            request.set_flash('warning', 'Ocurrió un error guardando los datos.')
    else:
        form = TituloOrientacionForm()

    if titulo:
        form.fields["titulo"].queryset = Titulo.objects.filter(id=titulo.id)
        form.fields["titulo"].empty_label = None

    form.fields["estado"].queryset = EstadoTituloOrientacion.objects.filter(nombre=EstadoTituloOrientacion.VIGENTE)
    form.fields["estado"].empty_label = None

    return my_render(request, 'titulos/orientacion/new.html', {
        'form': form,
        'titulo': titulo,
        'is_new': True,
    })
Пример #2
0
def edit(request, orientacion_id):
    " Edición de los datos de una orientación "
    orientacion = TituloOrientacion.objects.get(pk=orientacion_id)
    fecha_alta = orientacion.fecha_alta

    estado_actual = orientacion.estado
    if estado_actual is None:
        estado_actual_id = None
    else:
        estado_actual_id = estado_actual.id

    if request.method == 'POST':
        form = TituloOrientacionForm(request.POST, instance=orientacion, initial={'estado': estado_actual_id})
        if form.is_valid():
            orientacion = form.save(commit = False)
            orientacion.fecha_alta = fecha_alta  # No sé por qué lo borraba la fecha al editarlo
            orientacion.save()

            "Cambiar el estado?"
            if int(request.POST['estado']) is not estado_actual_id:
                orientacion.registrar_estado()

            request.set_flash('success', 'Datos actualizados correctamente.')
            return HttpResponseRedirect(reverse('orientacionesPorTitulo', args=[orientacion.titulo.id]))
        else:
            request.set_flash('warning', 'Ocurrió un error actualizando los datos.')
    else:
        form = TituloOrientacionForm(instance = orientacion, initial={'estado': estado_actual_id})

    form.fields["titulo"].queryset = Titulo.objects.filter(id=orientacion.titulo.id)
    form.fields["titulo"].empty_label = None

    return my_render(request, 'titulos/orientacion/edit.html', {
        'form': form,
        'titulo': orientacion.titulo,
        'is_new': False,
    })