Esempio n. 1
0
def create(request):
	import datetime
	if request.method == 'POST':
		form = NormativaPostituloForm(request.POST)
		if form.is_valid():
			normativa = form.save(commit=False)
			normativa.estado = EstadoNormativaPostitulo.objects.get(nombre=EstadoNormativaPostitulo.VIGENTE)
			normativa.save()
			form.save_m2m()  # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method
			normativa.registrar_estado()

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

			# redirigir a edit
			return HttpResponseRedirect(reverse('normativaPostituloEdit', args=[normativa.id]))
		else:
			request.set_flash('warning', 'Ocurrió un error guardando los datos.')
	else:
		form = NormativaPostituloForm()
	
	form.fields['estado'].queryset = EstadoNormativaPostitulo.objects.filter(nombre=EstadoNormativaPostitulo.VIGENTE)
	return my_render(request, 'postitulos/normativa/new.html', {
		'form': form,
		'is_new': True,
	})
Esempio n. 2
0
def edit(request, normativa_id):
	"""
	Edición de los datos de una normativa nacional.
	"""
	normativa = NormativaPostitulo.objects.get(pk=normativa_id)

	estado_actual_id = normativa.estado.id

	if request.method == 'POST':
		form = NormativaPostituloForm(request.POST, instance=normativa, initial={'estado': estado_actual_id})
		if form.is_valid():
			normativa = form.save(commit=False)

			"Cambiar el estado?"
			if int(request.POST['estado']) is not estado_actual_id:
				normativa.estado = EstadoNormativaPostitulo.objects.get(pk=request.POST['estado'])
				normativa.save()
				normativa.registrar_estado()
			else:
				# Guardar directamente
				normativa.save()

			form.save_m2m()  # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method

			request.set_flash('success', 'Datos actualizados correctamente.')
		else:
			request.set_flash('warning', 'Ocurrió un error actualizando los datos.')
	else:
		form = NormativaPostituloForm(instance=normativa, initial={'estado': estado_actual_id})

	return my_render(request, 'postitulos/normativa/edit.html', {
		'form': form,
		'normativa': normativa,
	})