#encoding:utf-8 # Create your views here. from django.db.models import Q from django.http import HttpResponseRedirect,HttpResponse from django.template import RequestContext, loader, Context from django.shortcuts import get_object_or_404,render,render_to_response, redirect from rest_framework.generics import ListAPIView from encuesta.models import * from django.core.urlresolvers import reverse from django.contrib import auth from django.contrib.auth.decorators import login_required from encuesta.forms import * from django.contrib import messages from django.forms import ModelForm from django.utils.encoding import smart_str from django.template.response import TemplateResponse from django.utils.dateformat import DateFormat from django.utils.dateparse import * from django.utils.formats import get_format from django.utils import simplejson import json from django.utils.html import * from django.utils.datastructures import * from django.core import * from reportlab.lib.styles import * from reportlab.platypus import * from reportlab.lib.pagesizes import * from reportlab.lib.units import * from reportlab.lib.enums import * from reportlab.lib import * from reportlab.rl_config import defaultPageSize from reportlab.pdfgen import * from decimal import * import os import locale from encuesta.serializers import CursoSerializer, InstructorSerializer, DependenciaSerializer, CuestionarioSerializer, \ CursofechaSerializer from django.core import serializers from rest_framework import generics, mixins from rest_framework.generics import GenericAPIView PAGE_HEIGHT=defaultPageSize[1]; PAGE_WIDTH=defaultPageSize[0] def cursopdf(request, curso_id): estilo=getSampleStyleSheet() elements = [] curso_info = Curso.objects.get(pk=curso_id) dato_comentario = Comentario.objects.filter(curso=curso_info) dato_curso = Curso.objects.filter(pk=curso_id).order_by('id') dato_cuestionario = Cuestionario.objects.filter(curso__id=curso_id).order_by('id') dato_categoria = Categoria.objects.filter(cuestionario__curso__id=curso_id).order_by('id') dato_pregunta = Pregunta.objects.filter(categoria__cuestionario__curso__id=curso_id).order_by('id') dato_respuesta = Respuesta.objects.filter(pregunta__categoria__cuestionario__curso__id=curso_id).order_by('id') diccionario_totales = {} for curso in dato_curso: if curso == curso_info: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: for categoria in dato_categoria: if cuestionario == categoria.cuestionario: for pregunta in dato_pregunta: if categoria == pregunta.categoria: total = 0 for respuesta in dato_respuesta: if pregunta == respuesta.pregunta: total+=respuesta.contador diccionario_totales[int(pregunta.id)]=int(total) response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response,pagesize=letter, rightMargin=5*mm,leftMargin=5*mm, topMargin=5*cm,bottomMargin=3*cm) data = [] data2 = [] data3 = [] data4 = [] fila = [] data5 = [] h1=estilo['h1'] estilo.add( ParagraphStyle( name = 'Centrado' ) ) Centrado = estilo["Centrado"] Centrado.alignment = TA_CENTER Centrado.fontName = "Helvetica" Centrado.fontSize = 10 estilo.add( ParagraphStyle (name = 'Justificado') ) Justificado = estilo['Justificado'] Justificado.alignment = TA_JUSTIFY Justificado.fontName = "Helvetica" Justificado.fontSize = 10 data.append(['Nombre del Curso:', Paragraph(curso_info.nombre_curso,Justificado)]) data.append(['Nombre del Instructor:', Paragraph(curso_info.nombre_instructor+' '+curso_info.apellido_p_instructor+' '+curso_info.apellido_m_instructor,Justificado)]) data.append(['Dependencia y/o Entidad:',Paragraph(curso_info.dependencia_entidad,Justificado)]) data.append(['Lugar:',Paragraph(curso_info.lugar,Justificado)]) #esto funciona local #data.append(['Observaciones:',Paragraph(curso_info.observaciones,Justificado)]) #esto funciona en produccion if curso_info.observaciones: data.append(['Observaciones:',Paragraph(curso_info.observaciones,Justificado)]) else: data.append(['Observaciones:',Paragraph('Sin observaciones',Justificado)]) data.append(['Fecha:',curso_info.fecha]) data.append(['Numero de Encuestas:',Paragraph(str(diccionario_totales.itervalues().next()),Justificado)]) t_datos = Table(data, [ 5.5 * cm, #etiqueta 12.5 * cm, #datos ], repeatRows=1, style=[('GRID',(0,0),(-1,-1),0.5,colors.grey), ('FONTSIZE',(0,0),(-1,-1),10), ]) elements.append(t_datos) try: for curso in dato_curso: if curso == curso_info: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: for categoria in dato_categoria: if cuestionario == categoria.cuestionario: for pregunta in dato_pregunta: if categoria == pregunta.categoria: fila = [] data4 = [] for respuesta in dato_respuesta: if pregunta == respuesta.pregunta: #fila.append([Paragraph(respuesta.texto_respuesta+':
'+str(respuesta.contador)+' de: '+str(diccionario_totales[pregunta.id]),Centrado )]) getcontext().prec = 2 porcentaje = float(respuesta.contador*100.00/diccionario_totales[pregunta.id]) fila.append([Paragraph(respuesta.texto_respuesta+':
'+str('%.2f'%porcentaje)+'%',Centrado )]) data4.append([Paragraph(categoria.texto_categoria+'\n'+pregunta.texto_pregunta, Centrado ),'','','','']) data4.append(fila) t_datos4 = Table(data4, [ 3.6 * cm, #etiqueta #datos ], repeatRows=0, style=[ ('GRID',(0,0),(-1,-1),0.5,colors.grey), ('FONTSIZE',(0,0),(-1,-1),10), ('SPAN',(0,0),(-1,0)), ('BACKGROUND',(0,2),(-1,2), colors.grey), ]) elements.append(t_datos4) #elements.append(t_datos4) data3.append([Paragraph('Comentario', Centrado )]) for comentario in dato_comentario: data3.append([Paragraph(comentario.texto_comentario,Justificado )]) t_datos3 = Table(data3, [ 18 * cm, #etiqueta #datos ], repeatRows=1, style=[('GRID',(0,0),(-1,-1),0.5,colors.grey), ('FONTSIZE',(0,0),(-1,-1),10), ]) elements.append(t_datos3) #imagen = os.path.join(os.path.dirname(os.path.abspath('settings.py')), 'static/imagenes/pleca-cmaig-01.png') imagen = '/opt/public_html/cuestionario/static/imagenes/pleca-cmaig-01.png' def myFirstPage(canvas, doc): canvas.saveState() canvas.drawImage(imagen, 1*cm, 23.2*cm, 272,77) canvas.setFont('Helvetica',10) canvas.drawString(11.2*cm, 24 * cm, "Sistema de Evaluacion de Resultados de Satisfaccion") canvas.drawString(15*cm, 23.5 * cm, "Reporte" ) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() canvas.drawImage(imagen, 1*cm, 23.2*cm, 272,77) canvas.setFont('Helvetica',10) canvas.drawString(11.2*cm, 24* cm, "Sistema de Evaluacion de Resultados de Satisfaccion") canvas.drawString(15*cm, 23.5 * cm, "Reporte" ) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response except Exception, e: messages.error(request, 'no hay respuestas para ese curso'+str(e)) return HttpResponseRedirect(reverse('encuesta:mostrarcurso')) @login_required def perfil(request, user_id): return TemplateResponse(request, 'perfil.html' ) @login_required(login_url='encuesta:acceder') def crearestadistica(request): if request.method=='POST': form = EstadisticaForm(request.POST) if form.is_valid(): lista_respuesta =[] diccionario_totales = {} d = Dependencia.objects.get(pk=request.POST['dependencia_entidad']) try: curso_info= Curso.objects.get(pk=request.POST['curso'],dependencia_entidad=d.texto_dependencia) except Exception, e: messages.error(request, 'no existen cursos con esa dependencia') return HttpResponseRedirect(reverse('encuesta:crearestadistica')) else: dato_curso = Curso.objects.all().order_by('id') dato_cuestionario = Cuestionario.objects.all().order_by('id') dato_categoria = Categoria.objects.all().order_by('id') dato_pregunta = Pregunta.objects.all().order_by('id') dato_respuesta = Respuesta.objects.all().order_by('id') lista_preguntas = [] for pregunta in dato_pregunta: if pregunta.respuesta_set.count()>=2: lista_preguntas.append(int(pregunta.id)) for curso in dato_curso: if curso == curso_info: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: for categoria in dato_categoria: if cuestionario == categoria.cuestionario: for pregunta in dato_pregunta: if categoria == pregunta.categoria: total = 0 for respuesta in dato_respuesta: if pregunta == respuesta.pregunta: total+=respuesta.contador diccionario_totales[int(pregunta.id)]=int(total) diccionario = {'curso_info':curso_info, 'lista_preguntas':lista_preguntas, 'dato_pregunta':dato_pregunta, 'dato_curso':dato_curso, 'dato_cuestionario':dato_cuestionario, 'dato_categoria':dato_categoria, 'curso_menu':'active', 'dato_respuesta':dato_respuesta, 'diccionario_totales':diccionario_totales} return render_to_response('graficaestadistica.html',diccionario,context_instance=RequestContext(request)) else: form = EstadisticaForm() informacion = { 'curso_menu':'active', 'form':form } return render_to_response('estadisticaform.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def asignarcurso(request): if request.method=='POST': form = AsignarForm(request.POST) if form.is_valid(): d = Dependencia.objects.get(pk=request.POST['dependencia_entidad']) try: curso_info= Curso.objects.get(pk=request.POST['nombre_curso']) cues = Cuestionario.objects.get(pk=request.POST['cuestionario']) curs = cues.curso except Exception, e: messages.error(request, 'no existen cursos con esa dependencia') return HttpResponseRedirect(reverse('encuesta:asignarcurso')) else: curso_info= Curso.objects.get(pk=request.POST['nombre_curso'],dependencia_entidad=d.texto_dependencia) cues = Cuestionario.objects.get(pk=request.POST['cuestionario']) curs = cues.curso dato_curso = Curso.objects.filter(pk=curs.id).order_by('id') dato_cuestionario = Cuestionario.objects.filter(curso__id=curs.id).order_by('id') dato_categoria = Categoria.objects.filter(cuestionario__curso__id=curs.id).order_by('id') dato_pregunta = Pregunta.objects.filter(categoria__cuestionario__curso__id=curs.id).order_by('id') dato_respuesta = Respuesta.objects.filter(pregunta__categoria__cuestionario__curso__id=curs.id).order_by('id') for curso in dato_curso: if curso == curs: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: d = str(curso_info.fecha) date = datetime.datetime.strptime(d, '%Y-%m-%d').strftime('%d/%m/%Y') ccuestionario = Cuestionario(curso=curso_info,nombre_cuestionario=''+curso_info.nombre_curso+' '+curso_info.dependencia_entidad+' '+ str(date)) ccuestionario.save() for categoria in dato_categoria: if cuestionario == categoria.cuestionario: ccategoria = Categoria(cuestionario=ccuestionario,texto_categoria=categoria.texto_categoria) ccategoria.save() for pregunta in dato_pregunta: if categoria == pregunta.categoria: cpregunta = Pregunta(categoria=ccategoria,texto_pregunta=pregunta.texto_pregunta) cpregunta.save() for respuesta in dato_respuesta: if pregunta == respuesta.pregunta: crespuesta = Respuesta(pregunta=cpregunta,texto_respuesta=respuesta.texto_respuesta) crespuesta.save() return HttpResponseRedirect(reverse('encuesta:mostrarcurso')) else: form = AsignarForm() informacion = { 'curso_menu':'active', 'form':form } return render_to_response('asignarform.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearwizard(request): if request.method=='POST': curso_form = CursoForm2(request.POST) cuestionario_form = CuestionarioFormParcial(request.POST) if curso_form.is_valid() and cuestionario_form.is_valid(): d = Dependencia.objects.get(pk=request.POST['dependencia_entidad']) catc = CatalogoCurso.objects.get(pk=request.POST['nombre_curso']) i = Instructor.objects.get(pk=request.POST['instructor']) f = request.POST['fecha'] dates = f.encode('utf8') dat = datetime.datetime.strptime(dates, '%d/%m/%Y').strftime('%Y-%m-%d') c = Curso(nombre_curso=catc.nombre_curso , nombre_instructor=i.nombre_instructor, apellido_p_instructor=i.apellido_p_instructor, apellido_m_instructor=i.apellido_m_instructor, dependencia_entidad=d.texto_dependencia, observaciones=request.POST['observaciones'],lugar = request.POST['lugar'], fecha =dat) c.save() curso = Curso.objects.get(pk=c.id) cue = Cuestionario(curso=curso , nombre_cuestionario=request.POST['nombre_cuestionario']) cue.save() return HttpResponseRedirect(reverse('encuesta:crearwizard2')) else: messages.error(request, 'corrija los siguientes errores') else: curso_form = CursoForm2() cuestionario_form = CuestionarioFormParcial() diccionario={ 'curso_form':curso_form, 'cuestionario_form':cuestionario_form, 'contenido_menu':'active' } return render_to_response('wizard.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearwizard2(request): if request.method=='POST': categoria_form = CategoriaForm(request.POST) pregunta_form = PreguntaFormParcial(request.POST) respuesta_form = RespuestaFormParcial(request.POST) if categoria_form.is_valid() and pregunta_form.is_valid() and respuesta_form.is_valid(): cue=Cuestionario.objects.get(pk=request.POST['cuestionario']) ca = Categoria.objects.filter(cuestionario=cue,texto_categoria=request.POST['texto_categoria']) if ca.count()==0: cate=categoria_form.save() categoria = Categoria.objects.get(pk=cate.id) pre = Pregunta(categoria=categoria , texto_pregunta=request.POST['texto_pregunta']) pre.save() lista_opciones = request.POST.getlist('opcion') for opcion in lista_opciones: pregunta = Pregunta.objects.get(pk=pre.id) opcion = Opcion.objects.get(pk=opcion) r = Respuesta(pregunta=pregunta , texto_respuesta=opcion.texto_opcion) r.save() else: catego=Categoria.objects.get(cuestionario=cue,texto_categoria=request.POST['texto_categoria']) categoria = Categoria.objects.get(pk=catego.id) pre = Pregunta(categoria=categoria , texto_pregunta=request.POST['texto_pregunta']) pre.save() lista_opciones = request.POST.getlist('opcion') for opcion in lista_opciones: pregunta = Pregunta.objects.get(pk=pre.id) opcion = Opcion.objects.get(pk=opcion) r = Respuesta(pregunta=pregunta , texto_respuesta=opcion.texto_opcion) r.save() categoria_form = CategoriaForm(request.POST,instance=categoria) pregunta_form = PreguntaFormParcial() respuesta_form = RespuestaFormParcial() diccionario={ 'categoria_form':categoria_form, 'pregunta_form':pregunta_form, 'respuesta_form':respuesta_form, 'contenido_menu':'active' } return render_to_response('wizard2.html',diccionario,context_instance=RequestContext(request)) else: messages.error(request, 'corrija los siguientes errores') else: categoria_form = CategoriaForm() pregunta_form = PreguntaFormParcial() respuesta_form = RespuestaFormParcial() diccionario={ 'categoria_form':categoria_form, 'pregunta_form':pregunta_form, 'respuesta_form':respuesta_form, 'contenido_menu':'active' } return render_to_response('wizard2.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearopcion(request): if request.method=='POST': form = OpcionForm(request.POST) if form.is_valid(): form.save() datos = Opcion.objects.all() messages.success(request, 'Se guardo exitosamente la opcion') informacion={'datos':datos, 'opcion_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostraropcion')) else: messages.error(request, 'corrija los siguientes errores') else: form = OpcionForm() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'opcion_menu':'active' } return render_to_response('opcionform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearcatalogocurso(request): if request.method=='POST': form = CatalogoCursoForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Se guardo exitosamente la opcion') return HttpResponseRedirect(reverse('encuesta:mostrarcatalogocurso')) else: messages.error(request, 'corrija los siguientes errores') else: form = CatalogoCursoForm() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'catalogocurso_menu':'active' } return render_to_response('catalogocursoform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearinstructor(request): if request.method=='POST': form = InstructorForm(request.POST) if form.is_valid(): form.save() datos = Opcion.objects.all() messages.success(request, 'Se guardo exitosamente la opcion') informacion={'datos':datos, 'instructor_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarinstructor')) else: messages.error(request, 'corrija los siguientes errores') else: form = InstructorForm() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'instructor_menu':'active' } return render_to_response('instructorform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def creardependencia(request): if request.method=='POST': form = DependenciaForm(request.POST) if form.is_valid(): form.save() datos = Opcion.objects.all() messages.success(request, 'Se guardo exitosamente la dependencia') informacion={'datos':datos, 'opcion_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrardependencia')) else: messages.error(request, 'corrija los siguientes errores') else: form = DependenciaForm() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'dependencia_menu':'active' } return render_to_response('dependenciaform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearcurso(request): if request.method=='POST': form = CursoForm2(request.POST) if form.is_valid(): #form.save() d = Dependencia.objects.get(pk=request.POST['dependencia_entidad']) catc = CatalogoCurso.objects.get(pk=request.POST['nombre_curso']) i = Instructor.objects.get(pk=request.POST['instructor']) f = request.POST['fecha'] dates = f.encode('utf8') dat = datetime.datetime.strptime(dates, '%d/%m/%Y').strftime('%Y-%m-%d') c = Curso(nombre_curso=catc.nombre_curso , nombre_instructor=i.nombre_instructor, apellido_p_instructor=i.apellido_p_instructor, apellido_m_instructor=i.apellido_m_instructor, dependencia_entidad=d.texto_dependencia,observaciones=request.POST['observaciones'], lugar = request.POST['lugar'], fecha =dat) c.save() datos = Curso.objects.all() messages.success(request, 'Se guardo exitosamente el curso') informacion={'datos':datos, 'curso_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcurso')) else: messages.error(request, 'corrija los siguientes errores') else: form = CursoForm2() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'curso_menu':'active' } return render_to_response('cursoform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearcuestionario(request): if request.method=='POST': form = CuestionarioForm(request.POST) if form.is_valid(): form.save() datos = Cuestionario.objects.all() messages.success(request, 'Se guardo exitosamente el cuestionario') informacion={'datos':datos, 'cuestionario_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcuestionario')) else: messages.error(request, 'corrija los siguientes errores') else: form = CuestionarioForm() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'cuestionario_menu':'active' } return render_to_response('cuestionarioform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearcategoria(request): if request.method=='POST': form = CategoriaForm(request.POST) if form.is_valid(): form.save() datos = Categoria.objects.all() messages.success(request, 'Se guardo exitosamente la categoria') informacion={'datos':datos, 'categoria_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcategoria')) else: messages.error(request, 'corrija los siguientes errores') else: form = CategoriaForm() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'categoria_menu':'active' } return render_to_response('categoriaform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearpregunta(request): if request.method=='POST': form = PreguntaForm(request.POST) if form.is_valid(): form.save() datos = Pregunta.objects.all() messages.success(request, 'Se guardo exitosamente la pregunta') informacion={'datos':datos, 'pregunta_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarpregunta')) else: messages.error(request, 'corrija los siguientes errores') else: form = PreguntaForm() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'pregunta_menu':'active' } return render_to_response('preguntaform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def crearrespuesta(request): if request.method=='POST': form = RespuestaForm(request.POST) if form.is_valid(): lista_opciones = request.POST.getlist('opcion') for opcion in lista_opciones: p = Pregunta.objects.get(pk=request.POST['pregunta']) o = Opcion.objects.get(pk=opcion) r = Respuesta(pregunta=p , texto_respuesta=o.texto_opcion) r.save() datos = Respuesta.objects.all() messages.success(request, 'Se guardo exitosamente la respuesta') informacion={'datos':datos, 'respuesta_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarrespuesta')) else: messages.error(request, 'corrija los siguientes errores') else: form = RespuestaForm() diccionario={'form':form, 'operacion':'Crear', 'operacion_icon':'icon-pencil', 'respuesta_menu':'active' } return render_to_response('respuestaform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostraropcion(request): datos = Opcion.objects.all() informacion={'datos':datos, 'opcion_menu':'active' } return render_to_response('mostraropcion.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostrarcatalogocurso(request): datos = CatalogoCurso.objects.all() informacion={'datos':datos, 'catalogocurso_menu':'active' } return render_to_response('mostrarcatalogocurso.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostrarinstructor(request): datos = Instructor.objects.all() informacion={'datos':datos, 'instructor_menu':'active' } return render_to_response('mostrarinstructor.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostrarcomentario(request): if request.method=='POST': form = EstadisticaForm(request.POST) if form.is_valid(): curso_info= Curso.objects.get(pk=request.POST['curso']) dato_comentario = Comentario.objects.filter(curso=curso_info) diccionario = {'datos':dato_comentario,'curso_info':curso_info, 'comentario_menu':'active' } return render_to_response('mostrarcomentario.html',diccionario,context_instance=RequestContext(request)) else: messages.error(request, 'corrija los siguientes errores') else: form = EstadisticaForm() informacion = { 'form':form, 'comentario_menu':'active' } return render_to_response('comentarioform.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editarcomentario(request,comentario_id): comentario = Comentario.objects.get(pk=comentario_id) print comentario if request.method=='POST': form = ComentarioForm(request.POST,instance=comentario) if form.is_valid(): form.save() comentario_curso= Comentario.objects.get(pk=comentario_id) curso_info= Curso.objects.get(pk=comentario_curso.curso_id) datos = Comentario.objects.filter(curso=curso_info.id) messages.success(request, 'Se actualizó exitosamente el cuestionario') informacion={'datos':datos,'curso_info':curso_info, 'comentario_menu':'active'} return render_to_response('mostrarcomentario.html',informacion,context_instance=RequestContext(request)) else: form = ComentarioForm(instance=comentario) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'comentario_menu':'active' } return render_to_response('comentarioform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostrardependencia(request): datos = Dependencia.objects.all() informacion={'datos':datos, 'dependencia_menu':'active' } return render_to_response('mostrardependencia.html',informacion,context_instance=RequestContext(request)) def mostrarcurso(request): datos = Curso.objects.all().order_by('-fecha') informacion={'datos':datos, 'curso_menu':'active' } return render_to_response('mostrarcurso.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostrarcuestionario(request): datos = Cuestionario.objects.all() informacion={'datos':datos, 'cuestionario_menu':'active' } return render_to_response('mostrarcuestionario.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostrarcategoria(request): datos = Categoria.objects.all() informacion={'datos':datos, 'categoria_menu':'active' } return render_to_response('mostrarcategoria.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostrarpregunta(request): datos = Pregunta.objects.all() informacion={'datos':datos, 'pregunta_menu':'active' } return render_to_response('mostrarpregunta.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def mostrarrespuesta(request): datos = Respuesta.objects.all() informacion={'datos':datos, 'respuesta_menu':'active' } return render_to_response('mostrarrespuesta.html',informacion,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editaropcion(request,opcion_id): opcion = Opcion.objects.get(pk=opcion_id) if request.method=='POST': form = OpcionForm(request.POST,instance=opcion) if form.is_valid(): form.save() datos = Opcion.objects.all() messages.success(request, 'Se actualizo exitosamente la opcion') informacion={'datos':datos, 'opcion_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostraropcion')) else: form = OpcionForm(instance=opcion) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'opcion_menu':'active' } return render_to_response('opcionform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editarcatalogocurso(request,catalogocurso_id): catalogocurso = CatalogoCurso.objects.get(pk=catalogocurso_id) if request.method=='POST': form = CatalogoCursoForm(request.POST,instance=catalogocurso) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('encuesta:mostrarcatalogocurso')) else: form = CatalogoCursoForm(instance=catalogocurso) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'opcion_menu':'active' } return render_to_response('catalogocursoform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editarinstructor(request,instructor_id): instructor = Instructor.objects.get(pk=instructor_id) if request.method=='POST': form = InstructorForm(request.POST,instance=instructor) if form.is_valid(): form.save() datos = Instructor.objects.all() messages.success(request, 'Se actualizo exitosamente la opcion') informacion={'datos':datos, 'opcion_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarinstructor')) else: form = InstructorForm(instance=instructor) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'opcion_menu':'active' } return render_to_response('instructorform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editardependencia(request,dependencia_id): dependencia = Dependencia.objects.get(pk=dependencia_id) if request.method=='POST': form = DependenciaForm(request.POST,instance=dependencia) if form.is_valid(): form.save() datos = Opcion.objects.all() messages.success(request, 'Se actualizo exitosamente la dependencia') informacion={'datos':datos, 'opcion_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrardependencia')) else: form = DependenciaForm(instance=dependencia) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'dependencia_menu':'active' } return render_to_response('dependenciaform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editarcurso(request,curso_id): curso = Curso.objects.get(pk=curso_id) dep = Dependencia.objects.get(texto_dependencia=curso.dependencia_entidad) ins = Instructor.objects.get(nombre_instructor=curso.nombre_instructor, apellido_p_instructor=curso.apellido_p_instructor, apellido_m_instructor=curso.apellido_m_instructor) cur = CatalogoCurso.objects.get(nombre_curso=curso.nombre_curso) if request.method=='POST': form = CursoForm2(request.POST) if form.is_valid(): d = Dependencia.objects.get(pk=request.POST['dependencia_entidad']) i = Instructor.objects.get(pk=request.POST['instructor']) catc = CatalogoCurso.objects.get(pk=request.POST['nombre_curso']) f = request.POST['fecha'] dates = f.encode('utf8') dat = datetime.datetime.strptime(dates, '%d/%m/%Y').strftime('%Y-%m-%d') curso.dependencia_entidad=d.texto_dependencia curso.nombre_curso=catc.nombre_curso curso.nombre_instructor=i.nombre_instructor curso.apellido_p_instructor = i.apellido_p_instructor curso.apellido_m_instructor = i.apellido_m_instructor curso.observaciones=request.POST['observaciones'] curso.lugar = request.POST['lugar'] curso.fecha = dat curso.save() datos = Curso.objects.all() messages.success(request, 'Se actualizo exitosamente el curso') informacion={'datos':datos, 'curso_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcurso')) else: data = {'nombre_curso': cur.id, 'instructor':ins.id, 'dependencia_entidad':dep.id, 'observaciones':curso.observaciones, 'lugar':curso.lugar, 'fecha':curso.fecha } form = CursoForm2(data) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'curso_menu':'active', 'curso_id':cur.id, 'instructor_id':ins.id, 'dependencia_entidad':dep.id, 'editar':'editar' } return render_to_response('cursoform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editarcuestionario(request,cuestionario_id): cuestionario = Cuestionario.objects.get(pk=cuestionario_id) if request.method=='POST': form = CuestionarioForm(request.POST,instance=cuestionario) if form.is_valid(): form.save() datos = Cuestionario.objects.all() messages.success(request, 'Se actualizo exitosamente el cuestionario') informacion={'datos':datos, 'cuestionario_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcuestionario')) else: form = CuestionarioForm(instance=cuestionario) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'cuestionario_menu':'active' } return render_to_response('cuestionarioform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editarcategoria(request,categoria_id): categoria = Categoria.objects.get(pk=categoria_id) if request.method=='POST': form = CategoriaForm(request.POST,instance=categoria) if form.is_valid(): form.save() datos = Categoria.objects.all() messages.success(request, 'Se actualizo exitosamente la categoria') informacion={'datos':datos, 'categoria_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcategoria')) else: form = CategoriaForm(instance=categoria) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'categoria_menu':'active' } return render_to_response('categoriaform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def editarpregunta(request,pregunta_id): pregunta = Pregunta.objects.get(pk=pregunta_id) if request.method=='POST': form = PreguntaForm(request.POST,instance=pregunta) if form.is_valid(): form.save() datos = Pregunta.objects.all() messages.success(request, 'Se actualizo exitosamente la Pregunta') informacion={'datos':datos, 'pregunta_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarpregunta')) else: form = PreguntaForm(instance=pregunta) diccionario={'form':form, 'operacion':'Editar', 'operacion_icon':'icon-edit', 'pregunta_menu':'active' } return render_to_response('preguntaform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def borraropcion(request,opcion_id): opcion = Opcion.objects.get(pk=opcion_id) opcion.delete() datos = Opcion.objects.all() messages.warning(request, 'Se elimino la opcion') informacion={'datos':datos, 'opcion_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostraropcion')) @login_required(login_url='encuesta:acceder') def borrarcatalogocurso(request,catalogocurso_id): catalogocurso = CatalogoCurso.objects.get(pk=catalogocurso_id) catalogocurso.delete() messages.warning(request, 'Se elimino el nombre del curso') return HttpResponseRedirect(reverse('encuesta:mostrarcatalogocurso')) @login_required(login_url='encuesta:acceder') def borrarinstructor(request,instructor_id): instructor = Instructor.objects.get(pk=instructor_id) instructor.delete() datos = Instructor.objects.all() messages.warning(request, 'Se elimino el instructor') informacion={'datos':datos, 'opcion_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarinstructor')) @login_required(login_url='encuesta:acceder') def borrardependencia(request,dependencia_id): dependencia = Dependencia.objects.get(pk=dependencia_id) dependencia.delete() datos = Opcion.objects.all() messages.warning(request, 'Se elimino la dependencia') informacion={'datos':datos, 'opcion_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrardependencia')) @login_required(login_url='encuesta:acceder') def borrarcurso(request,curso_id): curso = Curso.objects.get(pk=curso_id) curso.delete() datos = Curso.objects.all() messages.warning(request, 'Se elimino el curso') informacion={'datos':datos, 'curso_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcurso')) @login_required(login_url='encuesta:acceder') def borrarcuestionario(request,cuestionario_id): cuestionario = Cuestionario.objects.get(pk=cuestionario_id) cuestionario.delete() datos = Cuestionario.objects.all() messages.warning(request, 'Se elimino el cuestionario') informacion={'datos':datos, 'cuestionario_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcuestionario')) @login_required(login_url='encuesta:acceder') def borrarcategoria(request,categoria_id): categoria = Categoria.objects.get(pk=categoria_id) categoria.delete() datos = Categoria.objects.all() messages.warning(request, 'Se elimino la categoria') informacion={'datos':datos, 'categoria_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarcategoria')) @login_required(login_url='encuesta:acceder') def borrarpregunta(request,pregunta_id): pregunta = Pregunta.objects.get(pk=pregunta_id) pregunta.delete() datos = Pregunta.objects.all() messages.warning(request, 'Se elimino la pregunta') informacion={'datos':datos, 'pregunta_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarpregunta')) @login_required(login_url='encuesta:acceder') def borrarrespuesta(request,respuesta_id): respuesta = Respuesta.objects.get(pk=respuesta_id) respuesta.delete() datos = Respuesta.objects.all() messages.warning(request, 'Se elimino la respuesta') informacion={'datos':datos, 'respuesta_menu':'active' } return HttpResponseRedirect(reverse('encuesta:mostrarrespuesta')) def detallecomentario(curso_id, request): Comentario.objects.filter(Curso) def login(request): username = request.POST.get('username', '') password = request.POST.get('password', '') user = auth.authenticate(username=username, password=password) if user is not None and user.is_active: # Correct password, and the user is marked "active" auth.login(request, user) # Redirect to a success page. diccionario = {'inicio_menu':'active' } return HttpResponseRedirect(reverse('encuesta:menuinicio')) else: messages.error(request, 'error de acceso verifique su usuario y contraseña') return render_to_response ('index.html',context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def logout(request): auth.logout(request) lista_cursos = Curso.objects.order_by('fecha') template = loader.get_template('bloquear.html') context = RequestContext(request,{'lista_cursos':lista_cursos}) return HttpResponse(template.render(context)) @login_required(login_url='encuesta:acceder') def menuinicio(request): datos = Curso.objects.all().order_by('id') curso_form = CursoForm2() diccionario = { 'inicio_menu':'active', 'datos':datos, 'curso_form':curso_form, } return render_to_response('menuinicio.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menuopcion(request): diccionario = { 'opcion_menu':'active' } return render_to_response('menuopcion.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menucatalogocurso(request): diccionario = { 'catalogocurso_menu':'active' } return render_to_response('menucatalogocurso.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menuinstructor(request): diccionario = { 'instructor_menu':'active' } return render_to_response('menuinstructor.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menudependencia(request): diccionario = { 'dependencia_menu':'active' } return render_to_response('menudependencia.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menucurso(request): diccionario = { 'curso_menu':'active' } return render_to_response('menucurso.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menucuestionario(request): diccionario = { 'cuestionario_menu':'active' } return render_to_response('menucuestionario.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menucategoria(request): diccionario = { 'categoria_menu':'active' } return render_to_response('menucategoria.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menupregunta(request): diccionario = { 'pregunta_menu':'active' } return render_to_response('menupregunta.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menurespuesta(request): diccionario = { 'respuesta_menu':'active' } return render_to_response('menurespuesta.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menucomentario(request): diccionario = { 'comentario_menu':'active' } return render_to_response('menucomentario.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='encuesta:acceder') def menucontenido(request): diccionario = { 'contenido_menu':'active' } return render_to_response('menucontenido.html',diccionario,context_instance=RequestContext(request)) def acceder(request): return render_to_response('index.html',context_instance=RequestContext(request)) def principal(request): lista_cursos = Curso.objects.order_by('fecha') template = loader.get_template('principal.html') context = RequestContext(request,{ 'lista_cursos':lista_cursos }) return HttpResponse(template.render(context)) def encuesta(request, curso_id): curso_info = Curso.objects.get(pk=curso_id) dato_curso = Curso.objects.filter(pk=curso_id).order_by('id') dato_cuestionario = Cuestionario.objects.filter(curso__id=curso_id).order_by('id') dato_categoria = Categoria.objects.filter(cuestionario__curso__id=curso_id).order_by('id') dato_pregunta = Pregunta.objects.filter(categoria__cuestionario__curso__id=curso_id).order_by('id') dato_respuesta = Respuesta.objects.filter(pregunta__categoria__cuestionario__curso__id=curso_id).order_by('id') lista_preguntas = [] bloquear = False for curso in dato_curso: if curso == curso_info: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: for categoria in dato_categoria: if cuestionario == categoria.cuestionario: for pregunta in dato_pregunta: if categoria == pregunta.categoria: if pregunta.respuesta_set.count()>=2: lista_preguntas.append(int(pregunta.id)) paquete = RequestContext(request,{ 'dato_curso':dato_curso, 'curso_info':curso_info, 'dato_cuestionario':dato_cuestionario, 'dato_pregunta':dato_pregunta, 'lista_preguntas':lista_preguntas, 'dato_categoria':dato_categoria, 'dato_respuesta':dato_respuesta, 'bloquear':bloquear, }) return render_to_response('encuesta.html',paquete,context_instance=RequestContext(request)) def termino(request, curso_id): dato_curso_2 = Curso.objects.get(pk=curso_id) paquete = {'dato_curso_2':dato_curso_2} return render_to_response('termino.html',paquete,context_instance=RequestContext(request)) def errorguardar(request, curso_id): dato_curso_2 = Curso.objects.get(pk=curso_id) paquete = {'dato_curso_2':dato_curso_2} return render_to_response('errorguardar.html',paquete,context_instance=RequestContext(request)) def respuesta(request,curso_id): #generar variables: conjunto de preguntas, lista de errores curso_info = Curso.objects.get(pk=curso_id) dato_curso = Curso.objects.filter(pk=curso_id).order_by('id') dato_cuestionario = Cuestionario.objects.filter(curso__id=curso_id).order_by('id') dato_categoria = Categoria.objects.filter(cuestionario__curso__id=curso_id).order_by('id') dato_pregunta = Pregunta.objects.filter(categoria__cuestionario__curso__id=curso_id).order_by('id') dato_respuesta = Respuesta.objects.filter(pregunta__categoria__cuestionario__curso__id=curso_id).order_by('id') error_respuesta = [] error_comentario = [] error_n_respuesta = [] seleccionados = {} comentario = '' lista_preguntas = [] bloquear = False for curso in dato_curso: if curso == curso_info: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: for categoria in dato_categoria: if cuestionario == categoria.cuestionario: for pregunta in dato_pregunta: if categoria == pregunta.categoria: if pregunta.respuesta_set.count()>=2: lista_preguntas.append(int(pregunta.id)) if request.method == 'POST': #funcion de error de comentario bloqueada descomenta las linea siguiente para desbloquear # si no hay texto en el comentario #if not request.POST.get('comentario',''): #aniada a la lista de errores #error_comentario.append('Por favor ingrese un comentario.') #si hay comentarios if request.POST.get('comentario',''): #agregalos a la variable comentario comentario = request.POST['comentario'] #para pregunta en conjunto de preguntas for curso in dato_curso: if curso == curso_info: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: for categoria in dato_categoria: if cuestionario == categoria.cuestionario: for pregunta in dato_pregunta: #leer respuesta if categoria == pregunta.categoria: for preg in lista_preguntas: if preg == pregunta.id: #si no hay respuesta if not request.POST.get(u'%s'%pregunta.id, ''): #aniadir a lista de errores error_respuesta.append(u'%s'%pregunta.texto_pregunta) error_n_respuesta.append(pregunta.id) #si hay una respuesta if request.POST.get(u'%s'%pregunta.id, ''): seleccionados[pregunta.id]=int(request.POST['%s'%pregunta.id]) #si hay errores diccionario = {'error_respuesta': error_respuesta, 'error_n_respuesta': error_n_respuesta, 'error_comentario':error_comentario, 'curso_info':curso_info, 'dato_curso':dato_curso, 'lista_preguntas':lista_preguntas, 'dato_cuestionario':dato_cuestionario, 'dato_categoria': dato_categoria, 'dato_pregunta':dato_pregunta, 'dato_respuesta':dato_respuesta, 'seleccionados':seleccionados, 'comentario':comentario, 'bloquear':bloquear} if error_comentario or error_respuesta: #enviar variables y lista de errores #redirigir al formulario return render_to_response('encuesta.html', diccionario,context_instance=RequestContext(request)) #si no hay errores if not error_comentario or error_respuesta: bloquear=True try: #creamos una nueva instancia de comentario if request.POST.get('comentario',''): c = Comentario(curso=curso_info,texto_comentario=request.POST['comentario']) c.save() #buscar respuesta en BD for curso in dato_curso: if curso == curso_info: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: for categoria in dato_categoria: if cuestionario == categoria.cuestionario: for pregunta in dato_pregunta: if categoria == pregunta.categoria: for preg in lista_preguntas: if preg == pregunta.id: re = Respuesta.objects.get(pk=request.POST[u'%s'%pregunta.id]) #aumentar el contador re.contador+=1 #guardar en bd re.save() #redirigir a termino except: return HttpResponseRedirect(reverse('encuesta:errorguardar', kwargs={'curso_id': curso_id})) else: messages.success(request, 'Se guardo exitosamente la encuesta') return HttpResponseRedirect(reverse('encuesta:respuesta', kwargs={'curso_id': curso_id})) else: curso_info = Curso.objects.get(pk=curso_id) dato_curso = Curso.objects.filter(pk=curso_id).order_by('id') dato_cuestionario = Cuestionario.objects.filter(curso__id=curso_id).order_by('id') dato_categoria = Categoria.objects.filter(cuestionario__curso__id=curso_id).order_by('id') dato_pregunta = Pregunta.objects.filter(categoria__cuestionario__curso__id=curso_id).order_by('id') dato_respuesta = Respuesta.objects.filter(pregunta__categoria__cuestionario__curso__id=curso_id).order_by('id') lista_preguntas = [] bloquear = False for curso in dato_curso: if curso == curso_info: for cuestionario in dato_cuestionario: if curso == cuestionario.curso: for categoria in dato_categoria: if cuestionario == categoria.cuestionario: for pregunta in dato_pregunta: if categoria == pregunta.categoria: if pregunta.respuesta_set.count()>=2: lista_preguntas.append(int(pregunta.id)) paquete = RequestContext(request,{ 'dato_curso':dato_curso, 'curso_info':curso_info, 'dato_cuestionario':dato_cuestionario, 'dato_pregunta':dato_pregunta, 'lista_preguntas':lista_preguntas, 'dato_categoria':dato_categoria, 'dato_respuesta':dato_respuesta, 'bloquear':bloquear, }) return render_to_response('encuesta.html',paquete,context_instance=RequestContext(request)) def cursosajax(request): curso = Curso.objects.all() iTotalRecords = curso.count() sSearch = request.GET.get('sSearch') if sSearch: curso = curso.filter( Q(nombre_curso__icontains=sSearch) | Q(nombre_instructor__icontains=sSearch) | Q(apellido_p_instructor__icontains=sSearch) | Q(apellido_m_instructor__icontains=sSearch) | Q(dependencia_entidad__icontains=sSearch) | Q(lugar__icontains=sSearch) | Q(fecha__icontains=sSearch) ) # implementar la busqueda. pass iTotalDisplayRecords = curso.count() sEcho = request.GET.get('sEcho') iDisplayStart = request.GET.get('iDisplayStart') if iDisplayStart: curso = curso[iDisplayStart:] iDisplayLength = request.GET.get('iDisplayLength') if iDisplayLength: curso = curso[:iDisplayLength] data =[ dict( id = c.pk,nombre_curso=smart_str(c.nombre_curso), nombre_instructor=smart_str(c.nombre_instructor)+' '+smart_str(c.apellido_p_instructor)+' '+smart_str(c.apellido_m_instructor), dependencia_entidad=smart_str(c.dependencia_entidad), lugar=smart_str(c.lugar), fecha=smart_str(c.fecha) ) for c in curso ] respuesta = { "sEcho": sEcho, "iTotalRecords": iTotalRecords, "iTotalDisplayRecords": iTotalDisplayRecords, "aaData": data } recipe_list_json = json.dumps(respuesta) #VOLCAMOS LA LISTA COMO JSON return HttpResponse(recipe_list_json,mimetype="application/javascript") class api_curso(ListAPIView): serializer_class = CursoSerializer queryset = CatalogoCurso.objects.all() def filter_queryset(self, queryset): q = self.request.QUERY_PARAMS.get('q') id = self.request.QUERY_PARAMS.get('id') if q: queryset = queryset.filter( Q(nombre_curso__icontains = q) ) if id: queryset = queryset.filter(id = id) return queryset class api_instructor(ListAPIView): serializer_class = InstructorSerializer queryset = Instructor.objects.all() def filter_queryset(self, queryset): q = self.request.QUERY_PARAMS.get('q') id = self.request.QUERY_PARAMS.get('id') if q: queryset = queryset.filter( Q(nombre_instructor__icontains = q)| Q(apellido_p_instructor__icontains = q)| Q(apellido_m_instructor__icontains = q) ) if id: queryset = queryset.filter(id = id) return queryset class api_dependencia(ListAPIView): serializer_class = DependenciaSerializer queryset = Dependencia.objects.all() def filter_queryset(self, queryset): q = self.request.QUERY_PARAMS.get('q') id = self.request.QUERY_PARAMS.get('id') if q: queryset = queryset.filter( Q(texto_dependencia__icontains = q) ) if id: queryset = queryset.filter(id = id) return queryset class api_cuestionario(ListAPIView): serializer_class = CuestionarioSerializer queryset = Cuestionario.objects.all() def filter_queryset(self, queryset): q = self.request.QUERY_PARAMS.get('q') id = self.request.QUERY_PARAMS.get('id') if q: queryset = queryset.filter( Q(nombre_cuestionario__icontains = q) ) if id: queryset = queryset.filter(id = id) return queryset class api_curso_fecha(ListAPIView): serializer_class = CursofechaSerializer queryset = Curso.objects.all() def filter_queryset(self, queryset): q = self.request.QUERY_PARAMS.get('q') id = self.request.QUERY_PARAMS.get('id') if q: queryset = queryset.filter( Q(nombre_curso__icontains = q) ) if id: queryset = queryset.filter(id = id) return queryset