def create(request): """ Alta de título nacional. """ if request.method == 'POST': form = PostituloNacionalForm(request.POST) if form.is_valid(): postitulo_nacional = form.save(commit=False) postitulo_nacional.estado = EstadoPostituloNacional.objects.get(nombre=EstadoPostituloNacional.VIGENTE) postitulo_nacional.save() form.save_m2m() # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method postitulo_nacional.registrar_estado() #MailHelper.notify_by_email(MailHelper.TITULO_CREATE, titulo) request.set_flash('success', 'Datos guardados correctamente.') # redirigir a edit return HttpResponseRedirect(reverse('postituloNacionalEdit', args=[postitulo_nacional.id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = PostituloNacionalForm() form.fields['estado'].queryset = EstadoPostituloNacional.objects.filter(nombre=EstadoPostituloNacional.VIGENTE) return my_render(request, 'postitulos/postitulo_nacional/new.html', { 'form': form, 'is_new': True, })
def edit(request, postitulo_nacional_id): """ Edición de los datos de un título nacional. """ postitulo_nacional = PostituloNacional.objects.get(pk=postitulo_nacional_id) estado_actual_id = postitulo_nacional.estado.id if request.method == 'POST': form = PostituloNacionalForm(request.POST, instance=postitulo_nacional, initial={'estado': estado_actual_id}) if form.is_valid(): postitulo_nacional = form.save(commit=False) "Cambiar el estado?" if int(request.POST['estado']) is not estado_actual_id: postitulo_nacional.estado = EstadoPostituloNacional.objects.get(pk=request.POST['estado']) postitulo_nacional.save() postitulo_nacional.registrar_estado() else: # Guardar directamente postitulo_nacional.save() form.save_m2m() # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method #MailHelper.notify_by_email(MailHelper.TITULO_UPDATE, titulo) request.set_flash('success', 'Datos actualizados correctamente.') else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = PostituloNacionalForm(instance=postitulo_nacional, initial={'estado': estado_actual_id}) return my_render(request, 'postitulos/postitulo_nacional/edit.html', { 'form': form, 'is_new': False, })