Esempio n. 1
0
def director_departamental_modificar(request,mod_id):
	cargos = Group.objects.filter(pk__in = [13,14])
	if request.method == 'GET':
		ret_data = {}
		dept = Departamento.objects.all()
		ddf = DirectorDepartametalForm(instance = get_object_or_404(DirectorDepartamental, pk=mod_id))
		ddf.fields['cargo'].queryset = cargos
		pf = PersonaForm(instance = get_object_or_404(Persona, pk=ddf.instance.persona.pk))
		pf.fields["domicilio"].queryset = Municipio.objects.filter(departamento = ddf.instance.persona.domicilio.departamento.pk)
		ret_data['departamento'] = ddf.instance.persona.domicilio.departamento.pk
		return render_to_response('admin_director_departamental.html',{'dir_dep_form':ddf,'per_form':pf,'dept':dept,'ret_data':ret_data,'t_mod':True,'admin_dir_departamental':'Modificar Usuario Departamental'},context_instance=RequestContext(request))
	elif request.method == 'POST':
		ret_data = {}
		query_persona = {}
		query = {}
		dept = Departamento.objects.all()
		ddf = DirectorDepartametalForm(request.POST, instance = get_object_or_404(DirectorDepartamental, pk=mod_id))
		pf = PersonaForm(request.POST, instance = get_object_or_404(Persona, pk=ddf.instance.persona.pk))
		#Almacenamos la instancia de Persona actual		
		tmp = Persona.objects.filter(pk = ddf.instance.persona.pk)
		query['persona'] = tmp[0]
		query.update(tmp.values()[0])
		query.pop('usuario_creador_id')
		query.pop('usuario_modifico_id')
		query.pop('fecha_creacion')
		query.pop('fecha_modificacion')
		query.pop('id')
		query.update({'usuario_modifico':request.user,'fecha_modificacion':datetime.datetime.now()})
		
		if ddf.is_valid() and pf.is_valid():
			try:
				#Debo Guardar como esta actualmente
				PersonaLog.objects.create(**query).save()
				ant_username = ddf.instance.persona.identidad
				pf_tmp = pf.save()

				ddf_tmp = ddf.save(commit=False)
				
				ddf_tmp.persona = pf_tmp
				ddf_tmp.save()
				try:
					user = User.objects.get(username__contains = ant_username, groups__name = cargos.get(pk = ddf.cleaned_data['cargo'].pk).name)
				except Exception,e:
					pass
				query_persona['primer_nombre'] = pf_tmp.primer_nombre
				query_persona['primer_apellido'] = pf_tmp.primer_apellido
				query_persona['segundo_nombre'] = pf_tmp.segundo_nombre
				query_persona['segundo_apellido'] = pf_tmp.segundo_apellido
				query_persona['identidad'] = pf_tmp.identidad
				query_persona['correo'] = pf_tmp.correo
				modificar_usuario(True,user,query_persona,'')
				
			except Exception, e:
				transaction.rollback()
				ddf.fields['cargo'].queryset = cargos
				return render_to_response('admin_director_departamental.html',{'dir_dep_form':ddf,'per_form':pf,'dept':dept,'ret_data':ret_data,'t_mod':True,'admin_dir_departamental':'Modificar Usuario Departamental'},context_instance=RequestContext(request))
			else:
				transaction.commit()
				list_departamentales = DirectorDepartamental.objects.all()
				return render_to_response('listar_departamentales.html',{'lst_dep':list_departamentales},context_instance=RequestContext(request))
Esempio n. 2
0
def director_distrital_modificar(request, mod_id):
	cargos = Group.objects.all()
	
	if request.method == 'GET':
		ret_data = {}
		dept = Departamento.objects.all()
		ddf = DirectorDistritalForm(instance = get_object_or_404(DirectorDistrital, pk = mod_id))
		ddf.fields['cargo'].queryset = cargos.filter(pk__in = [8,19]) 
		if cargos.get(pk=14) in request.user.groups.all() or cargos.get(pk=13) in request.user.groups.all():
			per = DirectorDepartamental.objects.get(persona__identidad = request.user.username[:13])
			ddf.fields['direccion_distrital'].queryset = DireccionDistrital.objects.filter(municipio__departamento = per.direccion_departamental.departamento)
		per_form = PersonaForm(instance = get_object_or_404(Persona, pk=ddf.instance.persona.pk))
		per_form.fields["domicilio"].queryset = Municipio.objects.filter(departamento = ddf.instance.persona.domicilio.departamento.pk)
		ret_data['departamento'] = ddf.instance.persona.domicilio.departamento.pk

		return render_to_response('admin_director_distrital.html',{'ddf':ddf,'per_form':per_form,'ret_data':ret_data,'dept':dept,'admin_dir_distrital':'Modificar Director Distrital','mod':True},context_instance = RequestContext(request))
	elif request.method == 'POST':
		ret_data = {}
		query_persona = {}
		query = {}
		dept = Departamento.objects.all()
		ddf = DirectorDistritalForm(request.POST, instance = get_object_or_404(DirectorDistrital, pk = mod_id))
		if cargos.get(pk=14) in request.user.groups.all() or cargos.get(pk=13) in request.user.groups.all():
			per = DirectorDepartamental.objects.get(persona__identidad = request.user.username[:13])
			ddf.fields['direccion_distrital'].queryset = DireccionDistrital.objects.filter(municipio__departamento = per.direccion_departamental.departamento)
			departamento = DirectorDepartamental.objects.get(persona__identidad = request.user.username[:13]).direccion_departamental.departamento
		per_form = PersonaForm(request.POST, instance = get_object_or_404(Persona, pk = ddf.instance.persona.pk))
		
		tmp = Persona.objects.filter(pk = ddf.instance.persona.pk)
		query['persona'] = tmp[0]
		query.update(tmp.values()[0])
		del(query['id'])
		del(query['fecha_creacion'])
		del(query['usuario_creador_id'])
		
		if ddf.is_valid() and per_form.is_valid():
			try:

				#Debo Guardar como esta actualmente
				PersonaLog.objects.create(**query).save()

				ant_username = ddf.instance.persona.identidad
				per_form_tmp = per_form.save()
				
				ddf_tmp = ddf.save(commit=False)
				
				ddf_tmp.persona = per_form_tmp
				ddf_tmp.save()

				try:
					user = User.objects.filter(username__contains = ant_username)
				except Exception,e:
					pass

				query_persona['primer_nombre'] = per_form_tmp.primer_nombre
				query_persona['primer_apellido'] = per_form_tmp.primer_apellido
				query_persona['segundo_nombre'] = per_form_tmp.segundo_nombre
				query_persona['segundo_apellido'] = per_form_tmp.segundo_apellido
				query_persona['identidad'] = per_form_tmp.identidad
				query_persona['correo'] = per_form_tmp.correo

				modificar_usuario(True,user[0],query_persona,user[0].username)
			except Exception, e:
				transaction.rollback()
				return render_to_response('admin_director_distrital.html',{'ddf':ddf,'per_form':per_form,'ret_data':ret_data,'dept':dept,'admin_dir_distrital':'Modificar Director Distrital','mod':True},context_instance = RequestContext(request))
			else:
				transaction.commit()
				if departamento:
					list_distritales = DirectorDistrital.objects.filter(direccion_distrital__municipio__departamento = departamento)
				else:
					list_distritales = DirectorDistrital.objects.all()
				return render_to_response('listar_directores_distritales.html',{'exito':True,'lst_dist':list_distritales},context_instance=RequestContext(request))