Guest User

Untitled

a guest
Jul 9th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 14.35 KB | None | 0 0
  1. # Create your views here.
  2. from django.shortcuts import render_to_response, get_object_or_404
  3. from django.template import RequestContext
  4. from django.http import HttpResponseRedirect,HttpResponse
  5. from django.contrib.auth import login, authenticate, logout
  6. from django.contrib.auth.decorators import login_required
  7. from django.contrib.auth.forms import UserCreationForm
  8. from django.utils import simplejson
  9. from django.views.decorators.csrf import csrf_exempt
  10. from django.forms.models import inlineformset_factory
  11.  
  12. from ficha.models import formingreso
  13. from ficha.models import Idioma, IdiomaForm
  14. from ficha.models import Estcivil, EstcivilForm
  15. from ficha.models import Documento, DocumentoForm
  16. from ficha.models import Modoingreso, ModoingresoForm
  17. from ficha.models import Ocurrencias, OcurrenciasForm
  18. from ficha.models import Acteconomica,ActeconomicaForm
  19. from ficha.models import Ingresoeconomico,IngresoeconomicoForm
  20. from ficha.models import Vivienda, ViviendaForm
  21. from ficha.models import Tipvivienda, TipviviendaForm
  22. from ficha.models import Materialv, MaterialvForm
  23. from ficha.models import Serviciosv, ServiciosvForm
  24. from ficha.models import Bienesv, BienesvForm
  25. from ficha.models import Enfermedad, EnfermedadForm
  26. from ficha.models import Integrante, IntegranteForm
  27. from ficha.models import Familiarvive, FamiliarviveForm
  28. from ficha.models import Datofamilia, DatofamiliaForm
  29. from ficha.models import Hogar, HogarForm
  30. from ficha.models import Cuarto, CuartoForm
  31. from ficha.models import Alimentacion, AlimentacionForm
  32. from ficha.models import Salud, SaludForm
  33. from ficha.models import Categoria, CategoriaForm
  34. from ficha.models import Evaluador, EvaluadorForm
  35. from ficha.models import Colegio, ColegioForm
  36. from ficha.models import Avenida, AvenidaForm
  37. from ficha.models import Estudiante, EstudianteForm
  38. from ficha.models import Academia, AcademiaForm
  39. from ficha.models import Carrera, CarreraForm
  40. from ficha.models import Postulante, PostulanteForm
  41. from ficha.models import Facultad, FacultadForm
  42. from ficha.models import Semestre, SemestreForm
  43. from ficha.models import Condicionacad, CondicionacadForm
  44. from ficha.models import Ayudanos, AyudanosForm
  45. from ficha.models import ActivarFacultades
  46.  
  47. import datetime
  48. import json
  49.  
  50. @login_required(login_url='/ingreso/')
  51. def salida(request):
  52.     logout(request)
  53.     return render_to_response('salir.html')
  54.    
  55. def index(request):
  56.     diccio={}
  57.     return render_to_response('index.html',{'datos':diccio})
  58.  
  59. def ingreso(request):
  60.     if request.method == 'POST':
  61.         formu = formingreso(request.POST)
  62.         usuariologin = request.POST['usuarioform']
  63.         passlogin = request.POST['passform']
  64.         acceso = authenticate(username=usuariologin,password=passlogin)
  65.         if acceso is not None:
  66.             if acceso.is_active:
  67.                 login(request,acceso)
  68.                 return HttpResponseRedirect('/facultades/')
  69.             else:
  70.                 return render_to_response('noactivo.html')
  71.         else:
  72.             return render_to_response('nousuario.html')
  73.     else:
  74.         formu = formingreso()
  75.     return render_to_response('ingreso.html',{'formu':formu},context_instance=RequestContext(request))
  76.    
  77.  
  78.    
  79. def ficha(request,num_tab):
  80.     #todos los formularios
  81.     formularios=[EstudianteForm,PostulanteForm,DatofamiliaForm,HogarForm,SaludForm,AyudanosForm]
  82.     #formularios_datos=[EstudianteForm(),PostulanteForm(),DatofamiliaForm(),HogarForm(),LugarForm(),SaludForm(),EvaluadorForm()]
  83.     num_tab=int(num_tab)
  84.     afirmacion_bool=''
  85.     grabar2=False
  86.     #comprobar si ya rrelleno la ficha 1, caso contrario redirigirahi
  87.     if num_tab!=1:
  88.         try:
  89.             cod_matri=request.session['codmatricula']
  90.         except:
  91.             return HttpResponseRedirect('/ficha/1')
  92.     #comprobar si la ficha solicitada ya fue rellenada
  93.     try:
  94.         if num_tab>=1 and num_tab<=6:
  95.             if request.session[str(num_tab)]=='1':
  96.                 rellenados=[]
  97.                 for x in range(1,7):
  98.                     try:
  99.                         if request.session[str(x)]=='1':
  100.                             rellenados.append('1')
  101.                     except:
  102.                         rellenados.append('0')
  103.                 for x in range(0,6):
  104.                     if rellenados[x]=='0':
  105.                         nuevo_tab=x
  106.                         break
  107.                 return HttpResponseRedirect('/ficha/'+str(nuevo_tab))
  108.     except:
  109.         pass
  110.     if request.method == 'POST':
  111.         if num_tab in [2,3,4,5,6]:
  112.             estudiante=Estudiante.objects.get(pk=request.session['codmatricula'])
  113.            
  114.             formulario = formularios[num_tab-1](request.POST,request.FILES)
  115.             if num_tab==4: formulario=HogarForm(request.POST,request.FILES)
  116.             print formulario.data
  117.             new_form = formulario.save(commit=False)
  118.             new_form.estudiante=estudiante
  119.             new_form.save()
  120.             grabar2=True
  121.         else:
  122.             formulario= formularios[num_tab-1](request.POST,request.FILES)
  123.         if num_tab==3:
  124.             afirmacion_bool=request.POST['vive'];
  125.             if afirmacion_bool=='S':
  126.                 formulario2=FamiliarviveForm(request.POST)        
  127.         elif num_tab==4:
  128.             afirmacion_bool=request.POST['cuarto'];
  129.             if afirmacion_bool=='S':
  130.                 formulario2=CuartoForm(request.POST,request.FILES)        
  131.         if formulario.is_valid():
  132.             sw=True
  133.             if afirmacion_bool=='S':
  134.                 if formulario2.is_valid(): sw=True
  135.                 else: sw=False
  136.             if sw:
  137.                 #if grabar2: grabado=formulario.save_m2m()
  138.                
  139.                 grabado=formulario.save()
  140.                 if num_tab==1:
  141.                     request.session['codmatricula']=request.POST['codmatricula']
  142.                 if afirmacion_bool=='S':
  143.                     familiar=grabado
  144.                     new_form2 = formulario2.save(commit=False)
  145.                     if num_tab==3:
  146.                         new_form2.familiar=familiar
  147.                     elif num_tab==4:
  148.                         new_form2.estudiante=estudiante
  149.                     new_form2.save()
  150.                     formulario2.save()
  151.                 if num_tab==3:
  152.                     request.session[str(num_tab)]='0'
  153.                 else:
  154.                     request.session[str(num_tab)]='1'
  155.                 if num_tab==6:
  156.                     return HttpResponseRedirect('/finalizado/')
  157.                 if num_tab==3:
  158.                     return HttpResponseRedirect('/ficha/3')
  159.                 return HttpResponseRedirect('/ficha/'+str(num_tab+1))
  160.             else:
  161.                 #Si hay algun error en el formulario2
  162.                 return HttpResponseRedirect('/ficha/'+str(num_tab))
  163.         else:
  164.             #Si hay algun error en el formulario
  165.             print "ERROR!!!! WTF"
  166.             #return HttpResponseRedirect('/ficha/'+str(num_tab))
  167.             titulos=['Datos personales del Estudiante','Datos del Postulante','Datos de familia','Datos del hogar',
  168.                     'Datos de su Salud','Ayudanos']
  169.             titulo=titulos[num_tab]
  170.             if afirmacion_bool=='S':
  171.                 formulario_fam=formulario2
  172.             else:
  173.                 formulario_fam=''
  174.             rellenados=[]
  175.             for x in range(1,7):
  176.                 try:
  177.                     rellenados.append({'num_tab':x,'rellenado':request.session[str(x)]})
  178.                 except:
  179.                     rellenados.append({'num_tab':x,'rellenado':'0'})
  180.             hoy=datetime.date.today()
  181.             facultades = ActivarFacultades.objects.filter(fecha=hoy)[0]
  182.             return render_to_response('ficha.html',{'formulario':formulario,'num_tab':num_tab,'titulo':titulo,'formulario_fam':formulario_fam,'rellenados':rellenados,'facultades':facultades},context_instance=RequestContext(request))
  183.     else:
  184.         #formulario = formulario_datos[num_tab-1]
  185.         hoy=datetime.date.today()
  186.         facultades = ActivarFacultades.objects.filter(fecha=hoy)[0]
  187.         formulario_fam = ''
  188.         if num_tab  == 1:
  189.             formulario = EstudianteForm()
  190.             titulo='Datos personales del Estudiante'
  191.         elif num_tab == 2:
  192.             formulario = PostulanteForm()
  193.             titulo='Datos del Postulante'
  194.         elif num_tab == 3:
  195.             formulario = DatofamiliaForm()
  196.             titulo='Datos de familia'
  197.             formulario_fam = FamiliarviveForm()
  198.         elif num_tab == 4:
  199.             formulario = HogarForm()
  200.             titulo='Datos del hogar'
  201.             formulario_fam = CuartoForm()
  202.         elif num_tab == 5:
  203.             formulario = SaludForm()
  204.             titulo='Datos de su Salud'
  205.         elif num_tab == 6:
  206.             formulario = AyudanosForm()
  207.             titulo='Ayudanos'
  208.     if num_tab<6 :
  209.         siguiente=num_tab+1
  210.     else:
  211.         siguiente=1
  212.     try:
  213.         cod_matricula=request.session['codmatricula']
  214.     except:
  215.         cod_matricula=''
  216.     rellenados=[]
  217.     for x in range(1,7):
  218.         try:
  219.             rellenados.append({'num_tab':x,'rellenado':request.session[str(x)]})
  220.         except:
  221.             rellenados.append({'num_tab':x,'rellenado':'0'})
  222.     return render_to_response('ficha.html',{'formulario':formulario,'num_tab':num_tab,'siguiente':siguiente,'titulo':titulo,'formulario_fam':formulario_fam,'cod_matricula':cod_matricula,'rellenados':rellenados,'facultades':facultades},context_instance=RequestContext(request))
  223.  
  224.  
  225. ########
  226. @login_required(login_url='/login/')
  227. def evaluacion(request,id_estudiante):
  228.     if request.method == 'POST':
  229.         formo= EvaluadorForm(request.POST)
  230.         categoria=Categoria.objects.get(pk=request.POST['categoria'])
  231.         evaluador=request.user
  232.         apreciacion=request.POST['apreciacion']
  233.         visita=request.POST['visita']
  234.         estudiante=Estudiante.objects.get(pk=request.POST['estudiante_id'])
  235.         formu=Evaluador(visita=visita,apreciacion=apreciacion,categoria=categoria,evaluador=evaluador,estudiante=estudiante)
  236.         formu.save()
  237.         return HttpResponseRedirect('/facultades/')
  238.         #if formo.is_valid():
  239.         #    formo.save()
  240.         #    return HttpResponseRedirect('/ocurrencias/')
  241.     else:
  242.         formo = EvaluadorForm()
  243.     return render_to_response('evaluacion.html',{'formo':formo,'id_estudiante':id_estudiante},context_instance=RequestContext(request))
  244.  
  245. @login_required(login_url='/login/')
  246. def reporte(request,id_estudiante):
  247.     print "a"
  248.     datos_familiares=[]
  249.     estu=Estudiante.objects.get(pk=id_estudiante)
  250.     datos_dato_familia=Datofamilia.objects.filter(estudiante=estu)
  251.     datos_postulante=Postulante.objects.filter(estudiante=estu)[0]
  252.     datos_hogar=Hogar.objects.filter(estudiante=estu)[0]
  253.     datos_cuarto=Cuarto.objects.filter(estudiante=estu)
  254.     if len(datos_cuarto)>0: datos_cuarto=datos_cuarto[0]
  255.     datos_salud=Salud.objects.filter(estudiante=estu)[0]
  256.     evaluacion=Evaluador.objects.filter(estudiante=estu)[0]
  257.     print datos_dato_familia
  258.     for familiar_a in datos_dato_familia:
  259.         if familiar_a.vive=='S':
  260.             print "vive"
  261.             print familiar_a
  262.             print Familiarvive.objects.all()
  263.             print len(Familiarvive.objects.filter(familiar=familiar_a))
  264.             familiar_datos=Familiarvive.objects.filter(familiar=familiar_a)[0]
  265.            
  266.             datos_familiares.append(familiar_datos)
  267.     return render_to_response('reporte.html',{'estudiante':estu,'datos_dato_familia':datos_familiares,'datos_postulante':datos_postulante,'datos_hogar':datos_hogar,'datos_cuarto':datos_cuarto,'datos_salud':datos_salud,'datos_familiares':datos_familiares,'evaluacion':evaluacion})
  268.     #return render_to_response('reporte.html',{'estudiante':'juan'})
  269.  
  270. ###############################################
  271. @login_required(login_url='/login/')
  272. def facultades(request):
  273.     contenido = Facultad.objects.all().order_by("nombre")
  274.     return render_to_response('facultades.html',{'contenido':contenido})
  275.  
  276. @login_required(login_url='/login/')
  277. def estuxfacu(request,id_facultad):
  278.     #try:
  279.     datos = Estudiante.objects.filter(facultad=Facultad.objects.get(pk=id_facultad))
  280.     evaluados=[]
  281.     sin_evaluar=[]
  282.    
  283.     for estu in datos:
  284.         evaluado=Evaluador.objects.filter(estudiante=estu)
  285.         if len(evaluado)==0:
  286.             sin_evaluar.append(estu)
  287.         else:
  288.             evaluados.append(estu)
  289.     cont_evaluado=len(evaluados)
  290.     cont_sin_evaluar=len(sin_evaluar)
  291.     return render_to_response('estuxfacu.html',{'estudiantes':datos,'evaluados':evaluados,'sin_evaluar':sin_evaluar,'cont_evaluado':cont_evaluado,'cont_sin_evaluar':cont_sin_evaluar})
  292.     #except:
  293.     #    return render_to_response('noexiste.html')
  294. #--------------------------    
  295. def estudiantes(request):
  296.     contenido = Estudiante.objects.all().order_by("facultad")
  297.     return render_to_response('estudiantes.html',{'contenido':contenido})
  298.  
  299. def detalleestudiante(request,id_estudiante):
  300.     #dato = Libro.objects.get(pk=id_libro)
  301.     dato = get_object_or_404(Estudiante, pk=id_estudiante)
  302.     #comentarios = Comentario.objects.filter(libro=dato)
  303.     return render_to_response('detalle.html',{'dato':dato})
  304. #--------------------------
  305.    
  306. def solicitud(request,id_estudiante):
  307.     #dato = Libro.objects.get(pk=id_libro)
  308.     dato = get_object_or_404(Estudiante, pk=id_estudiante)
  309.    
  310.     return render_to_response('solicitud.html',{'dato':dato})  
  311.  
  312. def finalizado(request):
  313.     estudiante=Estudiante.objects.get(pk=request.session['codmatricula'])
  314.     #estudiante={}
  315.     try: del request.session['codmatricula']
  316.     except: pass
  317.     try: del request.session['1']
  318.     except: pass
  319.     try: del request.session['2']
  320.     except: pass
  321.     try: del request.session['3']
  322.     except: pass
  323.     try: del request.session['4']
  324.     except: pass
  325.     try: del request.session['5']
  326.     except: pass
  327.     try: del request.session['6']
  328.     except: pass
  329.     return render_to_response('finalizado.html',{'estudiante':estudiante})
  330.    
  331. def facultades_habilitadas(request,inicio,fin):
  332.     """solo facultades requeridas"""
  333.     facultades=Facultad.objects.filter(pk__lte=int(fin)).filter(pk__gte=int(inicio))
  334.  
  335.     resultado = []
  336.     for facultad in facultades:
  337.         datos = {}
  338.         datos['id'] = facultad.id
  339.         datos['nombre'] = facultad.nombre
  340.         resultado.append(datos)
  341.  
  342.     return HttpResponse( json.dumps(resultado) )
Add Comment
Please, Sign In to add comment