Пример #1
0
def edit(request, carrera_id):
	"""
	Edición de los datos de una carrera.
	"""
	carrera = CarreraPostitulo.objects.get(pk=carrera_id)

	estado_actual_id = carrera.estado.id

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

			"Cambiar el estado?"
			if int(request.POST['estado']) is not estado_actual_id:
				carrera.estado = EstadoCarreraPostitulo.objects.get(pk=request.POST['estado'])
				carrera.save()
				carrera.registrar_estado()
			else:
				# Guardar directamente
				carrera.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 = CarreraPostituloForm(instance=carrera, initial={'estado': estado_actual_id})

	return my_render(request, 'postitulos/carrera/edit.html', {
		'form': form,
		'carrera': carrera,
	})
Пример #2
0
def create(request):
	import datetime
	if request.method == 'POST':
		form = CarreraPostituloForm(request.POST)
		if form.is_valid():
			carrera = form.save(commit=False)
			carrera.estado = EstadoCarreraPostitulo.objects.get(nombre=EstadoCarreraPostitulo.VIGENTE)
			carrera.save()
			form.save_m2m()  # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method
			carrera.registrar_estado()

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

			# redirigir a edit
			return HttpResponseRedirect(reverse('carreraPostituloEdit', args=[carrera.id]))
		else:
			request.set_flash('warning', 'Ocurrió un error guardando los datos.')
	else:
		form = CarreraPostituloForm()
	
	form.fields['estado'].queryset = EstadoCarreraPostitulo.objects.filter(nombre=EstadoCarreraPostitulo.VIGENTE)
	return my_render(request, 'postitulos/carrera/new.html', {
		'form': form,
		'is_new': True,
	})