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, })
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, })