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 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)
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))
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))
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))
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))
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))
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))
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))
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))
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])
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))
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))
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))
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))