예제 #1
0
파일: views.py 프로젝트: rolexardon/ecas
def docentes_transparencia(request,tipo):
	centro = validar_usuario(request.user)
	codigo = centro.codigo
	docentes = Docente.objects.filter(centro__codigo = codigo).select_related('persona','centro').distinct().order_by('persona__primer_nombre','persona__segundo_nombre','persona__primer_apellido','persona__segundo_apellido')
	#docentes = Docente.objects.filter(persona__user_centro_jornada_persona__centro = centro).select_related('persona').order_by('persona__primer_nombre','persona__segundo_nombre','persona__primer_apellido','persona__segundo_apellido')
	
	return render_to_response('docentes_transparencia.html',{'tipo':tipo,"centro":centro,'docentes':docentes,'accesos':validar_usuario(request.user).codigos.values_list('codigoapp',flat=True)},context_instance=RequestContext(request))
예제 #2
0
파일: views.py 프로젝트: rolexardon/ecas
def GetPacks(lista,usuario,jerarquia):
	componente,packs = [],[]
	max = jerarquia - 1
	gp = ''
	try:
		if jerarquia == 1 or jerarquia == 2: 
			componente = DireccionDepartamental.objects.all()
			
		if jerarquia ==3: 
			dep = DirectorDepartamental.objects.get(persona__identidad = usuario.username[:13]).direccion_departamental.departamento
			componente.append(dep)
			
		if jerarquia == 4: 
			dd = DirectorDistrital.objects.get(persona__identidad =  usuario.username[:13]).direccion_distrital
			componente.append(dd)
			
		if jerarquia == 5: 
			componente.append(validar_usuario(usuario))

		if jerarquia == 6: 
			plazas = Plaza.objects.filter(docente__persona__identidad = usuario.username[:13]).distinct('centro')
			for p in plazas:
				componente.append(p.centro)
				
		if jerarquia == 7:
			gp = usuario.groups.all()[0].name
			componente = GetDesiredList(usuario.username,'Secciones',gp)
			
		for l in lista:
			if l >= max:
				packs.append(GetElements(l,jerarquia,componente,gp))

	except Exception,e:
		#print  e
		return HttpResponse(e)
예제 #3
0
파일: views.py 프로젝트: rolexardon/ecas
def cuadro_1(request):
	grupos = Group.objects.all().values_list('pk', flat=True)
	grp_user = request.user.groups.all().values_list('pk', flat=True)
	mostrar_centros = False
	periodos,centro = '',''
	if len(set([13,14]).intersection(set(grp_user))) > 0:
		per = DirectorDepartamental.objects.get(persona__identidad = request.user.username[:13])
		dep = Departamento.objects.filter(pk = per.direccion_departamental.departamento.pk)
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	elif len(set([8,19]).intersection(set(grp_user))) > 0:
		per = DirectorDistrital.objects.get(persona__identidad = request.user.username[:13])
		dep = Departamento.objects.filter(pk = per.direccion_distrital.municipio.departamento.pk)
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	elif len(set([1,2,3,4,6,7]).intersection(set(grp_user))) > 0:
		mostrar_centros = False
		centro = validar_usuario(request.user)
		centros = centro
		periodos = obtener_periodosEscolares(centro,tmp='2')
	elif len(set([27]).intersection(set(grp_user))) > 0 and  request.method == 'GET':
		plazas = ''
		try:
			plazas = Plaza.objects.filter(docente__persona__identidad = request.user.username[:13]).order_by('centro')
			if not plazas:
				plazas = Plaza.objects.filter(docente__persona__identidad = request.user.username[:15]).order_by('centro')
		except Exception,e:
			raise Http404
		else:
			return render_to_response('pre_cuadro1.html',{'plazas':plazas,'tipo':2},context_instance=RequestContext(request))
예제 #4
0
파일: views.py 프로젝트: rolexardon/ecas
def nota_recuperacion(request):
	centro = validar_usuario(request.user)
	recuperaciones = Recuperacion.objects.filter(periodo=centro.periodos.latest('inicio_periodo'))
	if request.method == 'GET':
		return render_to_response('nota_recuperacion.html',{'accesos':centro.codigos.values_list('codigoapp',flat=True),'recuperaciones':recuperaciones},context_instance=RequestContext(request))
	elif request.method == 'POST':
		query,errores,ret_data = {},{},{}
		
		if request.POST.get('recuperacion','') != '0':
			query['recuperacion'] = Recuperacion.objects.get(pk=request.POST.get('recuperacion',''))
			ret_data['recuperacion'] = int(request.POST.get('recuperacion',''))
		else:
			errores['recuperacion'] = u'Seleccione una fecha de recuperación'
		
		if request.POST.get('clase','') != '0':
			query['clase_seccion'] = ClaseSeccion.objects.get(pk=request.POST.get('clase',''))
			ret_data['clase'] = int(request.POST.get('clase',''))
		else:
			errores['clase'] = u'Seleccione una clase'
		
		if request.POST.get('matricula','') != '':
			ret_data['matricula'] = request.POST.get('matricula','')
			if request.POST.get('tipoid','') == '0':
				errores['tipoid'] = u'Seleccione el tipo de identidad'
			else:
				ret_data['tipoid'] = int(request.POST.get('tipoid',''))
				try:
					query['matricula'] = Matricula.objects.filter(alumno__persona__tipoID = request.POST.get('tipoid',''), alumno__persona__identidad = request.POST.get('matricula',''), estado__in = [1,3,5]).latest('fecha')
				except:
					errores['matricula'] = u'No se encontro matricula con esta identidad'
		else:
			errores['matricula'] = u'Ingrese la identidad del alumno'
		
		if request.POST.get('nota','') != '':
			ret_data['nota'] = request.POST.get('nota','')
			if int(request.POST.get('nota','')) >= 0 and int(request.POST.get('nota','')) <= 100:
				query['examen'] = request.POST.get('nota','')
			else:
				errores['nota'] = u'Ingrese una nota entre 0 y 100'
		else:
			errores['nota'] = u'Ingrese una nota entre 0 y 100'
		
		if NotaRecuperacion.objects.filter(**query).exists():
			errores['matricula'] = u'El alumno(a) solo puede tener una (1) nota de recuperación po clase'
		
		if errores:
			return render_to_response('nota_recuperacion.html',{'accesos':centro.codigos.values_list('codigoapp',flat=True),'errores':errores,'ret_data':ret_data,'recuperaciones':recuperaciones},context_instance=RequestContext(request))
		else:
			try:
				r = NotaRecuperacion(**query)
				r.save()
			except Exception, e:
				print e
				transaction.rollback()
			else:
				transaction.commit()
			return render_to_response('nota_recuperacion.html',{'accesos':centro.codigos.values_list('codigoapp',flat=True),'recuperaciones':recuperaciones,'exito':True},context_instance=RequestContext(request))
예제 #5
0
파일: views.py 프로젝트: rolexardon/ecas
def certificado_estudios(request):
	if request.method == 'GET':
		centro = validar_usuario(request.user)
		return render_to_response('seleccionar_seccion.html',{'periodos':obtener_periodosEscolares(centro,tmp='1'),'modalidades':centro.centro_modalidad.all(),'jornadas':centro.jornadas.all(),'accesos':centro.codigos.values_list('codigoapp',flat=True)},context_instance = RequestContext(request))
	else:
		array = request.POST.getlist('array','')[0].split(',')
		for item in array:
			try:
				m = get_object_or_404(Matricula.objects.select_related('alumno__persona','seccion__periodo_clases__centro','seccion__malla_curricular__malla_oficial__curso__ordenamiento'), pk=item)
			except Exception, e:
				pass
		return render_to_response('certificado_estudios.html',{"centro":centro,'tipoID':tipoID,'accesos':validar_usuario(request.user).codigos.values_list('codigoapp',flat=True)},context_instance=RequestContext(request))
예제 #6
0
파일: views.py 프로젝트: rolexardon/ecas
def modificar_producto(request, mod_id):
	if request.method == 'GET':
		pf = ProductoForm(instance = get_object_or_404(Producto, pk=mod_id))
		return render_to_response('admin_producto.html',{'p_pk':mod_id,'pf':pf,'admin_producto':'Modificar Producto','t_mod':True}, context_instance=RequestContext(request))
	else:
		centro = validar_usuario(request.user)
		instance = get_object_or_404(Producto, pk=mod_id)
		cod_act = instance.codigo
		pf = ProductoForm(request.POST, instance = instance)
		if pf.is_valid(): 
			if Producto.objects.filter(centro=centro, codigo = pf.cleaned_data['codigo']).exists() and pf.cleaned_data['codigo'] != cod_act:
				return render_to_response('admin_producto.html',{'p_pk':mod_id,'pf':pf,'admin_producto':'Modificar Producto','errores_extra':u'Ya existe un producto con este código','t_mod':True}, context_instance=RequestContext(request))
			pf.save()
			return redirect(reverse('listar_producto'))
		else:
			return render_to_response('admin_producto.html',{'p_pk':mod_id,'pf':pf,'admin_producto':'Modificar Producto','t_mod':True}, context_instance=RequestContext(request))
예제 #7
0
파일: views.py 프로젝트: rolexardon/ecas
def registrar_producto(request):
	if request.method == 'GET':
		pf = ProductoForm()
		return render_to_response('admin_producto.html',{'pf':pf,'admin_producto':'Registrar Producto','t_mod':False}, context_instance=RequestContext(request))
	else:
		centro = validar_usuario(request.user)
		pf = ProductoForm(request.POST)
		if pf.is_valid():
			if Producto.objects.filter(centro=centro, codigo = pf.cleaned_data['codigo']).exists():
				return render_to_response('admin_producto.html',{'pf':pf,'admin_producto':'Registrar Producto','errores_extra':u'Ya existe un producto con este código','t_mod':False}, context_instance=RequestContext(request))
			
			tmp_pf = pf.save(commit=False)
			tmp_pf.centro = centro
			tmp_pf.save()
			pf = ProductoForm()
			#print request.POST
			if request.POST.get('_ingresarotro','') == 'otro':
				return render_to_response('admin_producto.html',{'exito':True,'pf':pf,'admin_producto':'Registrar Producto','t_mod':False}, context_instance=RequestContext(request))
			else:
				return redirect(reverse('listar_producto'))
		else:
			return render_to_response('admin_producto.html',{'pf':pf,'admin_producto':'Registrar Producto','t_mod':False}, context_instance=RequestContext(request))
예제 #8
0
파일: views.py 프로젝트: rolexardon/ecas
def b_calificacion_final(request):
	grupos = Group.objects.all().values_list('pk', flat=True)
	grp_user = request.user.groups.all().values_list('pk', flat=True)
	mostrar_centros = False
	if len(set([13,14]).intersection(set(grp_user))) > 0:
		per = DirectorDepartamental.objects.get(persona__identidad = request.user.username[:13])
		dep = Departamento.objects.filter(pk = per.direccion_departamental.departamento.pk)
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	elif len(set([8,19]).intersection(set(grp_user))) > 0:
		per = DirectorDistrital.objects.get(persona__identidad = request.user.username[:13])
		dep = Departamento.objects.filter(pk = per.direccion_distrital.municipio.departamento.pk)
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	elif len(set([1,2,3,4,6,7]).intersection(set(grp_user))) > 0:
		mostrar_centros = False
		centro = validar_usuario(request.user)
		centros = centro
		periodos = obtener_periodosEscolares(centro,tmp='2')
	else:
		dep = Departamento.objects.all()
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	if request.method == 'GET':
		if mostrar_centros:
			return render_to_response('b_calificacion_final_query.html',{'mc':mostrar_centros,'centros':centros},context_instance=RequestContext(request))
		else:
			return render_to_response('b_calificacion_final_query.html',{'codigo_centro':centro.codigo, 'mc':mostrar_centros,'centros':centros,'periodos':periodos,'modalidades':centro.centro_modalidad.all(),'jornadas':centro.jornadas.all()},context_instance=RequestContext(request))
	elif request.method == 'POST':
		query = {}
		query_o = []
		query_v = []
		query_sr = []
		
		query_o.append('matricula__alumno__persona__sexo')
		query_o.append('matricula__alumno__persona__primer_nombre')
		
		query_v.append('matricula__seccion__periodo_clases__descripcion')
		query_v.append('matricula__alumno__persona__identidad')
		query_v.append('matricula__alumno__persona__primer_nombre')
		query_v.append('matricula__alumno__persona__segundo_nombre')
		query_v.append('matricula__alumno__persona__primer_apellido')
		query_v.append('matricula__alumno__persona__segundo_apellido')
		query_v.append('matricula__seccion__periodo_clases__centro__nombre')
		query_v.append('matricula__seccion__periodo_clases__centro__codigo')
		query_v.append('matricula__seccion__periodo_clases__centro__departamento__nombre')
		query_v.append('matricula__seccion__malla_curricular__malla_oficial__curso__modalidad__descripcion')
		query_v.append('matricula__seccion__malla_curricular__malla_oficial__curso__nombre')
		query_v.append('matricula__seccion__descripcion')
		query_v.append('matricula__seccion__jornada__descripcion')
		query_v.append('clase_seccion')
		
		query_sr.append('matricula__alumno__persona')
		query_sr.append('matricula__seccion__periodo_clases__centro')
		query['clase_seccion__plaza__isnull'] = False
		query['clase_seccion__content_type__id'] = 30
		query['matricula__estado__in'] = [1,3,5]
		

		if request.POST.get('periodo','') != '0':
			query['matricula__seccion__periodo_clases'] = request.POST.get('periodo','')
			query_sr.append('matricula__seccion__periodo_clases')
		if request.POST.get('modalidad','') != '0':
			query['matricula__seccion__malla_curricular__malla_oficial__curso__modalidad'] = request.POST.get('modalidad','')
			query_sr.append('matricula__seccion__malla_curricular__malla_oficial__curso__modalidad')
		if request.POST.get('jornada','') != '0':
			query['matricula__seccion__jornada'] = request.POST.get('jornada','')
			query_sr.append('matricula__seccion__jornada')
		if request.POST.get('curso','') != '0':
			query['matricula__seccion__malla_curricular__malla_oficial__curso'] = request.POST.get('curso','')
			query_sr.append('matricula__seccion__malla_curricular__malla_oficial__curso')
		if request.POST.get('seccion','') != '0':
			query['matricula__seccion'] = request.POST.get('seccion','')
			query_sr.append('matricula__seccion')

		#if request.POST.get('clase','') != '0':
			#query['clase_seccion'] = request.POST.get('clase','')
		np = NotaParcial.objects.filter(**query).values(*query_v).annotate(s1=Sum('acumulativo'), s2=Sum('examen')).order_by(*query_o)

		if np:
			data_arr = []
			data_clases = []
			data_notas = []
			
			data_dic = {}
			ant = ''
			cont = 0
			for n in np:
				if ant == n['matricula__alumno__persona__identidad']:
					data_clases.append(ClaseSeccion.objects.get(pk=n['clase_seccion']).info_clase('2'))
					data_notas.append(int(round((float(n['s1'])+float(n['s2']))/4)))

				else:
					cont+=1
					ant = n['matricula__alumno__persona__identidad']
					data_dic['clases'] = data_clases
					data_dic['notas'] = data_notas
					data_arr.append(data_dic)
					data_dic = {}
					data_clases = []
					data_notas = []
					data_dic['matricula__seccion__periodo_clases__descripcion'] = n['matricula__seccion__periodo_clases__descripcion']
					data_dic['matricula__alumno__persona__identidad'] = n['matricula__alumno__persona__identidad']
					data_dic['matricula__alumno__persona__primer_nombre'] = n['matricula__alumno__persona__primer_nombre']
					data_dic['matricula__alumno__persona__segundo_nombre'] = n['matricula__alumno__persona__segundo_nombre']
					data_dic['matricula__alumno__persona__primer_apellido'] = n['matricula__alumno__persona__primer_apellido']
					data_dic['matricula__alumno__persona__segundo_apellido'] = n['matricula__alumno__persona__segundo_apellido']
					data_dic['matricula__seccion__periodo_clases__centro__nombre'] = n['matricula__seccion__periodo_clases__centro__nombre']
					data_dic['matricula__seccion__periodo_clases__centro__codigo'] = n['matricula__seccion__periodo_clases__centro__codigo']
					data_dic['matricula__seccion__periodo_clases__centro__departamento__nombre'] = n['matricula__seccion__periodo_clases__centro__departamento__nombre']
					data_dic['matricula__seccion__malla_curricular__malla_oficial__curso__nombre'] = n['matricula__seccion__malla_curricular__malla_oficial__curso__nombre']
					data_dic['matricula__seccion__descripcion'] = n['matricula__seccion__descripcion']
					data_dic['matricula__seccion__jornada__descripcion'] = n['matricula__seccion__jornada__descripcion']
					data_dic['matricula__seccion__malla_curricular__malla_oficial__curso__modalidad__descripcion'] = n['matricula__seccion__malla_curricular__malla_oficial__curso__modalidad__descripcion']
					data_clases.append(ClaseSeccion.objects.get(pk=n['clase_seccion']).info_clase('2'))
					data_notas.append(int(round((float(n['s1'])+float(n['s2']))/4)))
			del(data_arr[0])
			return render_to_response('b_calificacion_final.html',{'np':data_arr},context_instance=RequestContext(request))
		else:
			if mostrar_centros:
				return render_to_response('b_calificacion_final_query.html',{'error':'El Centro Educativo No Ha Ingresado Notas Para este Periodo Escolar','mc':mostrar_centros,'centros':centros},context_instance=RequestContext(request))
			else:
				return render_to_response('b_calificacion_final_query.html',{'error':'El Centro Educativo No Ha Ingresado Notas Para este Periodo Escolar','codigo_centro':centro.codigo,'mc':mostrar_centros,'centros':centros,'periodos':periodos,'modalidades':centro.centro_modalidad.all(),'jornadas':centro.jornadas.all()},context_instance=RequestContext(request))
예제 #9
0
파일: views.py 프로젝트: rolexardon/ecas
def constancia_himno(request):
	centro = validar_usuario(request.user)
	tipoID = TipoDocumentoID.objects.all()
	return render_to_response('constancia_himno.html',{"centro":centro,'tipoID':tipoID,'accesos':validar_usuario(request.user).codigos.values_list('codigoapp',flat=True)},context_instance=RequestContext(request))
예제 #10
0
파일: views.py 프로젝트: rolexardon/ecas
def certificado_basica_final(request, tipo=None):
	grupos = Group.objects.all().values_list('pk', flat=True)
	grp_user = request.user.groups.all().values_list('pk', flat=True)
	mostrar_centros = False
	tipo_id = TipoDocumentoID.objects.filter(pk__in = [1,3])
	if len(set([13,14]).intersection(set(grp_user))) > 0:
		per = DirectorDepartamental.objects.get(persona__identidad = request.user.username[:13])
		dep = Departamento.objects.filter(pk = per.direccion_departamental.departamento.pk)
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	elif len(set([8,19]).intersection(set(grp_user))) > 0:
		per = DirectorDistrital.objects.get(persona__identidad = request.user.username[:13])
		dep = Departamento.objects.filter(pk = per.direccion_distrital.municipio.departamento.pk)
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	elif len(set([1,2,3,4,6,7]).intersection(set(grp_user))) > 0:
		mostrar_centros = False
		centro = validar_usuario(request.user)
		centros = centro
		periodos = obtener_periodosEscolares(centro,tmp='2')
	else:
		dep = Departamento.objects.all()
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	if request.method == 'GET':
		if mostrar_centros:
			return render_to_response('certificado_basica_query.html',{'tipoID':tipo_id,'tipo':tipo,'mc':mostrar_centros,'centros':centros},context_instance=RequestContext(request))
		else:
			return render_to_response('certificado_basica_query.html',{'tipoID':tipo_id,'tipo':tipo,'codigo_centro':centro.codigo, 'mc':mostrar_centros,'centros':centros,'periodos':periodos,'modalidades':centro.centro_modalidad.all(),'jornadas':centro.jornadas.all()},context_instance=RequestContext(request))
	elif request.method == 'POST':
		query = {}
		query_o = []
		query_v = []
		query_sr = []
		
		query_o.append('matricula')
		
		query_v.append('matricula__seccion__periodo_clases__descripcion')
		query_v.append('matricula')
		query_v.append('matricula__alumno__persona__identidad')
		query_v.append('matricula__alumno__persona__primer_nombre')
		query_v.append('matricula__alumno__persona__segundo_nombre')
		query_v.append('matricula__alumno__persona__primer_apellido')
		query_v.append('matricula__alumno__persona__segundo_apellido')
		query_v.append('matricula__alumno__persona__sexo')
		query_v.append('matricula__seccion__periodo_clases__centro__nombre')
		query_v.append('matricula__seccion__periodo_clases__centro__codigo')
		query_v.append('matricula__seccion__periodo_clases__centro__departamento__nombre')
		query_v.append('matricula__seccion__periodo_clases__centro__municipio__nombre')
		query_v.append('matricula__seccion__periodo_clases__centro__aldea__nombre')
		query_v.append('matricula__seccion__malla_curricular__malla_oficial__curso__modalidad__descripcion')
		query_v.append('matricula__seccion__malla_curricular__malla_oficial__curso__nombre')
		query_v.append('matricula__seccion__descripcion')
		query_v.append('matricula__seccion__jornada__descripcion')
		query_v.append('clase_seccion')
		query_v.append('clase_seccion__content_type')
		query_sr.append('matricula__alumno__persona')
		query_sr.append('matricula__seccion__periodo_clases__centro')

		query['clase_seccion__plaza__isnull'] = False
		query['clase_seccion__content_type__id'] = 30
		query['matricula__estado__in'] = [1,3,5]
		if request.POST.get('tipo_id','') != '0' and request.POST.get('identidad_alumno','') != '':
			query['matricula__alumno__persona__identidad'] = request.POST.get('identidad_alumno','')
			query['matricula__alumno__persona__tipoID'] = request.POST.get('tipo_id','')
		else:
			if request.POST.get('periodo','') != '0':
				query['matricula__seccion__periodo_clases'] = request.POST.get('periodo','')
				query_sr.append('matricula__seccion__periodo_clases')
			if request.POST.get('modalidad','') != '0':
				query['matricula__seccion__malla_curricular__malla_oficial__curso__modalidad'] = request.POST.get('modalidad','')
				query_sr.append('matricula__seccion__malla_curricular__malla_oficial__curso__modalidad')
			if request.POST.get('jornada','') != '0':
				query['matricula__seccion__jornada'] = request.POST.get('jornada','')
				query_sr.append('matricula__seccion__jornada')
			if request.POST.get('curso','') != '0':
				query['matricula__seccion__malla_curricular__malla_oficial__curso'] = request.POST.get('curso','')
				query_sr.append('matricula__seccion__malla_curricular__malla_oficial__curso')
			if request.POST.get('seccion','') != '0':
				query['matricula__seccion'] = request.POST.get('seccion','')
				query_sr.append('matricula__seccion')

		#if request.POST.get('clase','') != '0':
			#query['clase_seccion'] = request.POST.get('clase','')

		np = NotaParcial.objects.filter(**query).values(*query_v).annotate(s1=Sum('acumulativo'), s2=Sum('examen')).order_by(*query_o)
		if np:
			data_arr = []
			data_clases = []
			data_notas = []
			
			data_dic = {}
			ant = ''
			cont = 1
			indice_promocion = 0.0
			for n in np:
				if ant == n['matricula__alumno__persona__identidad']:
					cont+=1
					nota = int(round((float(n['s1'])+float(n['s2']))/4))
					#Aca revisar si ese alumno tiene recuperacion y si se quedo
					if nota < 60:
						#Ir a revisar si tiene nota recuperacion
						np = NotaRecuperacion.objects.filter(matricula=n['matricula'],clase_seccion=n['clase_seccion'])
						if np.exists():
							nota = int(np[0].examen)
					indice_promocion += nota
					data_clases.append([ClaseSeccion.objects.get(pk=n['clase_seccion']).info_clase('2'),nota])
				else:
					ant = n['matricula__alumno__persona__identidad']
					data_dic['clases'] = data_clases
					data_dic['promocion'] = int(round(indice_promocion/cont))
					data_dic['sexo'] = 'o' if n['matricula__alumno__persona__sexo'] == 'M' else 'a'
					if data_dic['promocion'] < 60:
						data_dic['promovido'] = 'NO SERA PROMOVID%s' % ( 'O' if n['matricula__alumno__persona__sexo'] == 'M' else 'A')
					else:
						data_dic['promovido'] = 'SERA PROMOVID%s' % ( 'O' if n['matricula__alumno__persona__sexo'] == 'M' else 'A')
					
					data_arr.append(data_dic)
					cont=1
					data_dic = {}
					data_clases = []
					data_notas = []
					indice_promocion = 0.00
					data_dic['matricula__seccion__periodo_clases__descripcion'] = n['matricula__seccion__periodo_clases__descripcion']
					data_dic['matricula__alumno__persona__identidad'] = n['matricula__alumno__persona__identidad']
					data_dic['matricula__alumno__persona__primer_nombre'] = n['matricula__alumno__persona__primer_nombre']
					data_dic['matricula__alumno__persona__segundo_nombre'] = n['matricula__alumno__persona__segundo_nombre']
					data_dic['matricula__alumno__persona__primer_apellido'] = n['matricula__alumno__persona__primer_apellido']
					data_dic['matricula__alumno__persona__segundo_apellido'] = n['matricula__alumno__persona__segundo_apellido']
					data_dic['matricula__seccion__periodo_clases__centro__nombre'] = n['matricula__seccion__periodo_clases__centro__nombre']
					data_dic['matricula__seccion__periodo_clases__centro__codigo'] = n['matricula__seccion__periodo_clases__centro__codigo']
					data_dic['matricula__seccion__periodo_clases__centro__departamento__nombre'] = n['matricula__seccion__periodo_clases__centro__departamento__nombre']
					data_dic['matricula__seccion__periodo_clases__centro__municipio__nombre'] = n['matricula__seccion__periodo_clases__centro__municipio__nombre']
					data_dic['matricula__seccion__periodo_clases__centro__aldea__nombre'] = n['matricula__seccion__periodo_clases__centro__aldea__nombre']
					data_dic['matricula__seccion__malla_curricular__malla_oficial__curso__nombre'] = n['matricula__seccion__malla_curricular__malla_oficial__curso__nombre']
					data_dic['matricula__seccion__descripcion'] = n['matricula__seccion__descripcion']
					data_dic['matricula__seccion__jornada__descripcion'] = n['matricula__seccion__jornada__descripcion']
					data_dic['matricula__seccion__malla_curricular__malla_oficial__curso__modalidad__descripcion'] = n['matricula__seccion__malla_curricular__malla_oficial__curso__modalidad__descripcion']
					#personality = Student_Personality.objects.filter(registration=n['matricula'])
					if personality:
						data_dic['personality'] = personality
					inas = Inasistencia.objects.filter(matricula=n['matricula']).values('matricula').annotate(s1=Sum('total_dias'))
					if inas:
						data_dic['inasistencia'] = inas[0]['s1']
					else:
						data_dic['inasistencia'] = 'No Se Reporto'
					nota = int(round((float(n['s1'])+float(n['s2']))/4))
					#Aca revisar si ese alumno tiene recuperacion y si se quedo
					if nota < 60:
						#Ir a revisar si tiene nota recuperacion
						np = NotaRecuperacion.objects.filter(matricula=n['matricula'],clase_seccion=n['clase_seccion'])
						if np.exists():
							nota = int(np[0].examen)
					indice_promocion += nota
					data_clases.append([ClaseSeccion.objects.get(pk=n['clase_seccion']).info_clase('2'),nota])
			ant = n['matricula__alumno__persona__identidad']
			data_dic['clases'] = data_clases
			data_dic['promocion'] = int(round(indice_promocion/cont))
			data_dic['sexo'] = 'o' if n['matricula__alumno__persona__sexo'] == 'M' else 'a'
			if data_dic['promocion'] < 60:
				data_dic['promovido'] = 'NO SERA PROMOVID%s' % ( 'O' if n['matricula__alumno__persona__sexo'] == 'M' else 'A')
			else:
				data_dic['promovido'] = 'SERA PROMOVID%s' % ( 'O' if n['matricula__alumno__persona__sexo'] == 'M' else 'A')
			
			data_arr.append(data_dic)
			del(data_arr[0])
			return render_to_response('certificado_basica.html',{'tipo':tipo,'np':data_arr},context_instance=RequestContext(request))
		else:
			if mostrar_centros:
				return render_to_response('certificado_basica.html',{'tipo':tipo,'error':'El Centro Educativo No Ha Ingresado Notas Para este Periodo Escolar','mc':mostrar_centros,'centros':centros},context_instance=RequestContext(request))
			else:
				return render_to_response('certificado_basica.html',{'tipo':tipo,'error':'El Centro Educativo No Ha Ingresado Notas Para este Periodo Escolar','codigo_centro':centro.codigo,'mc':mostrar_centros,'centros':centros,'periodos':periodos,'modalidades':centro.centro_modalidad.all(),'jornadas':centro.jornadas.all()},context_instance=RequestContext(request))
예제 #11
0
파일: views.py 프로젝트: rolexardon/ecas
	tipoID = TipoDocumentoID.objects.all()
	return render_to_response('constancia_himno.html',{"centro":centro,'tipoID':tipoID,'accesos':validar_usuario(request.user).codigos.values_list('codigoapp',flat=True)},context_instance=RequestContext(request))

def certificado_estudios(request):
	if request.method == 'GET':
		centro = validar_usuario(request.user)
		return render_to_response('seleccionar_seccion.html',{'periodos':obtener_periodosEscolares(centro,tmp='1'),'modalidades':centro.centro_modalidad.all(),'jornadas':centro.jornadas.all(),'accesos':centro.codigos.values_list('codigoapp',flat=True)},context_instance = RequestContext(request))
	else:
		array = request.POST.getlist('array','')[0].split(',')
		for item in array:
			try:
				m = get_object_or_404(Matricula.objects.select_related('alumno__persona','seccion__periodo_clases__centro','seccion__malla_curricular__malla_oficial__curso__ordenamiento'), pk=item)
			except Exception, e:
				pass
		return render_to_response('certificado_estudios.html',{"centro":centro,'tipoID':tipoID,'accesos':validar_usuario(request.user).codigos.values_list('codigoapp',flat=True)},context_instance=RequestContext(request))
	return render_to_response('certificado_estudios.html',{"centro":centro,'tipoID':tipoID,'accesos':validar_usuario(request.user).codigos.values_list('codigoapp',flat=True)},context_instance=RequestContext(request))
 
def docentes_transparencia(request,tipo):
	centro = validar_usuario(request.user)
	codigo = centro.codigo
	docentes = Docente.objects.filter(centro__codigo = codigo).select_related('persona','centro').distinct().order_by('persona__primer_nombre','persona__segundo_nombre','persona__primer_apellido','persona__segundo_apellido')
	#docentes = Docente.objects.filter(persona__user_centro_jornada_persona__centro = centro).select_related('persona').order_by('persona__primer_nombre','persona__segundo_nombre','persona__primer_apellido','persona__segundo_apellido')
	
	return render_to_response('docentes_transparencia.html',{'tipo':tipo,"centro":centro,'docentes':docentes,'accesos':validar_usuario(request.user).codigos.values_list('codigoapp',flat=True)},context_instance=RequestContext(request))
	
def b_calificacion_final(request):
	grupos = Group.objects.all().values_list('pk', flat=True)
	grp_user = request.user.groups.all().values_list('pk', flat=True)
	mostrar_centros = False
	if len(set([13,14]).intersection(set(grp_user))) > 0:
		per = DirectorDepartamental.objects.get(persona__identidad = request.user.username[:13])
예제 #12
0
파일: views.py 프로젝트: rolexardon/ecas
def inventario_productos(request):
	centro = validar_usuario(request.user)
	inv_p = Producto.objects.filter(centro=centro)
	return render_to_response('inventario_productos.html',{'inv_p':inv_p},context_instance=RequestContext(request))
예제 #13
0
파일: views.py 프로젝트: rolexardon/ecas
def listar_producto(request):
	centro = validar_usuario(request.user)
	l_productos = Producto.objects.filter(centro=centro).order_by('codigo')
	return render_to_response('listar_productos.html',{'l_productos':l_productos}, context_instance=RequestContext(request))
예제 #14
0
파일: views.py 프로젝트: rolexardon/ecas
def menu_principal_mensajeria(request):
	try:
		return render_to_response('mensajeria_index.html',{'accesos':validar_usuario(request.user).codigos.values_list('codigoapp',flat=True)},context_instance=RequestContext(request))	
	except Exception, e:
		#print e
		return render_to_response('mensajeria_index.html',context_instance=RequestContext(request))
예제 #15
0
파일: views.py 프로젝트: rolexardon/ecas
def resultado_final(request, tipo=None):
	grupos = Group.objects.all().values_list('pk', flat=True)
	grp_user = request.user.groups.all().values_list('pk', flat=True)
	mostrar_centros = False
	if len(set([13,14]).intersection(set(grp_user))) > 0:
		per = DirectorDepartamental.objects.get(persona__identidad = request.user.username[:13])
		dep = Departamento.objects.filter(pk = per.direccion_departamental.departamento.pk)
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	elif len(set([8,19]).intersection(set(grp_user))) > 0:
		per = DirectorDistrital.objects.get(persona__identidad = request.user.username[:13])
		dep = Departamento.objects.filter(pk = per.direccion_distrital.municipio.departamento.pk)
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	elif len(set([1,2,3,4,6,7]).intersection(set(grp_user))) > 0:
		mostrar_centros = False
		centro = validar_usuario(request.user)
		centros = centro
		periodos = obtener_periodosEscolares(centro,tmp='2')
	else:
		dep = Departamento.objects.all()
		centros = CentroEducativo.objects.filter(departamento__in = dep).values_list('codigo', flat=True).order_by('codigo')
		mostrar_centros = True
	
	if request.method == 'POST':
		seccion = Seccion.objects.get(pk=request.POST.get('seccion',''))
		matriculas_1 = Matricula.objects.filter(seccion = seccion, estado__in = [1,5])
		matriculas_2 = Matricula.objects.filter(seccion = seccion, estado__in = [2,3,4])
		clases = ClaseSeccion.objects.filter(seccion = seccion, plaza__isnull = False, content_type__id = 30)
		notas = NotaParcial.objects.filter(clase_seccion__seccion = seccion)
		parciales = Parcial.objects.filter(periodo = request.POST.get('periodo',''))
		
		header = {}
		header['code'] = seccion.periodo_clases.centro.codigo
		header['name'] = seccion.periodo_clases.centro.nombre
		header['grade'] = seccion.malla_curricular.malla_oficial.curso.nombre
		header['section'] = seccion.descripcion
		header['period'] = seccion.periodo_clases.descripcion
		header['modalidad'] = seccion.malla_curricular.malla_oficial.curso.modalidad.descripcion
		header['jornada'] = seccion.jornada.descripcion
		header['place'] = seccion.periodo_clases.centro.departamento
		header['es_media'] = False if seccion.malla_curricular.malla_oficial.curso.modalidad.codigo == 0 else True
		
		
		lista = []
		
		for m in matriculas_1:
			data = {}
			data['nombre'] = m.alumno.persona
			data['identidad'] = m.alumno.persona.identidad
			lista_notas = []
			cont = 0
			acum = 0.0
			count_aplazadas = 0
			for c in clases:
				total = 0
				cont+=1
				n = notas.filter(matricula = m,clase_seccion = c).order_by('clase_seccion')
				for info in n:
					total += float(info.acumulativo) + float(info.examen)
				if total/4 < 60:
					np = NotaRecuperacion.objects.filter(matricula=m,clase_seccion=c)
					if np.exists():
						nota_r = int(np[0].examen)
						if nota_r < 60:
							count_aplazadas+=1
					else:
						count_aplazadas+=1
				nota = int(round(total/4))
				acum+=nota
				lista_notas.append(nota)
				data['promocion'] = lista_notas
			prmedio = round(acum/cont)
			data['promedio'] = int(prmedio)
			if m.estado in [2,4]:
				data['promedio_valor'] = m.get_estado_display()
			else:
				if count_aplazadas > 1:
					data['promedio_valor'] = 'No Satisfactorio'
				else:
					data['promedio_valor'] = 'No Satisfactorio' if data['promedio'] < 59.0 else 'Bueno' if data['promedio'] > 59 and data['promedio'] < 80 else 'Muy Bueno' if data['promedio'] > 79 and data['promedio'] < 91 else 'Sobresaliente'
			lista.append(data)
		for m in matriculas_2:
			data = {}
			data['nombre'] = m.alumno.persona
			data['identidad'] = m.alumno.persona.identidad
			lista_notas = []
			cont = 0
			acum = 0.0
			count_aplazadas = 0
			for c in clases:
				total = 0
				cont+=1
				n = notas.filter(matricula = m,clase_seccion = c).order_by('clase_seccion')
				for info in n:
					total += float(info.acumulativo) + float(info.examen)
				if total/4 < 60:
					np = NotaRecuperacion.objects.filter(matricula=m,clase_seccion=c)
					if np.exists():
						nota_r = int(np[0].examen)
						if nota_r < 60:
							count_aplazadas+=1
					else:
						count_aplazadas+=1
				nota = int(round(total/4))
				acum+=nota
				lista_notas.append(nota)
				data['promocion'] = lista_notas
			prmedio = round(acum/cont)
			data['promedio'] = int(prmedio)
			if m.estado in [2,3,4]:
				data['promedio_valor'] = m.get_estado_display()
			else:	
				if count_aplazadas > 1:
					data['promedio_valor'] = 'No Satisfactorio'
				else:
					data['promedio_valor'] = 'No Satisfactorio' if data['promedio'] < 59.0 else 'Bueno' if data['promedio'] > 59 and data['promedio'] < 80 else 'Muy Bueno' if data['promedio'] > 79 and data['promedio'] < 91 else 'Sobresaliente'
			lista.append(data)	
		return render_to_response('resultado_final.html',{'tipo':tipo,'clases':clases,'data':lista,'header':header},context_instance=RequestContext(request))
	elif request.method == 'GET':
		if mostrar_centros:
			return render_to_response('pre_resultado_final.html',{'tipo':tipo,'mc':mostrar_centros,'centros':centros},context_instance=RequestContext(request))
		else:
			return render_to_response('pre_resultado_final.html',{'tipo':tipo,'codigo_centro':centro.codigo, 'mc':mostrar_centros,'centros':centros,'periodos':periodos,'modalidades':centro.centro_modalidad.all(),'jornadas':centro.jornadas.all()},context_instance=RequestContext(request))