Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/05/2010, 02:47
jmmanson
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: ayuda con consulta en python

pues creo que son tipo DATE. lo que veo que esta ejecutandose en el servidor es cherrypy y turbogears. aqui dejo todo lo que esta importado y lafuncion con la consulta completa.

la linea 43 de la consulta es una modificacion de la 42, que es la original y donde quiero meter la comparacion entre los años.

perdonad si no nos soy muy claro pero es k no se nada de python y estoy mirandolo ahora. pero creo que este programa es mucho para empezar, al menos para mi...

Código Python:
Ver original
  1. # -*- coding: utf-8 -*-
  2.  
  3. from turbogears import controllers, expose, redirect
  4. from turbogears import validate, validators, flash, error_handler
  5. from festibase.model import Entidad
  6. #from turbogears import identity
  7. from turbogears.widgets import *
  8. from turbogears import widgets
  9. from turbogears import paginate
  10. from festibase.utils import *
  11. from festibase.ordenar import *
  12. import kid
  13. import cherrypy
  14. import turbogears
  15. import time
  16.  
  17. import os
  18.  
  19. from cherrypy.lib.cptools import serveFile
Código Python:
Ver original
  1. def invitadosPorTipoForo(self,edicion_id):
  2.        
  3.         pagina = 'Departamento de invitados: Consultas'
  4.        
  5.         cabecera = 'Invitados al Foro'
  6.        
  7.         contenido = '<p>Elige que tipo deseas consultar</p>'
  8.        
  9.         widget_opciones = RemoteForm(name="consulta",
  10.                             fields= [SingleSelectField(name = 'tipoforo',
  11.                                     options=listaCombo('TipoForo',valorNulo=False,extra=edicion_id)),
  12.                                     HiddenField('edicion',default=4),
  13.                                     CheckBox('cnf','',u'Sólo confirmados',default=True),
  14.                                     CheckBox('pax','',u'No mostrar PAX = 0',default=True),
  15.                                     CheckBox('pre','',u'Mostrar datos del Dept. de prensa',default=False)],
  16.                                    
  17.                                 submit_text='Consultar',
  18.                                 action='doInvitadosPorTipoForo')
  19.        
  20.        
  21.         return dict(pagina=pagina,contenido=contenido,cabecera=cabecera,
  22.                 widget_opciones=widget_opciones)
  23.                
  24.                
  25.     @expose(template="festibase.templates.widget")
  26.     @paginate('datos_lista',limit=20,default_order='apellidos')
  27.     def doInvitadosPorTipoForo(self,rs=None,**kw):
  28.  
  29.         def borra(item):
  30.             texto = '<a href="doInvitadosPorTipoForo?rs=\'s\';q=%d">' % (item.id)
  31.             texto += ICONO_SEL + '</a>'
  32.             return kid.XML(texto)
  33.  
  34.         # Consulta
  35.         if rs == None or cherrypy.session.get('resultado',[]) == []:
  36.            
  37.             if rs != None:
  38.                 self.redireccionaPorCaducidad()
  39.             #edicion_id = int(kw['edicion'])
  40.             edicion = Edicion.get(int(kw['edicion']))  
  41.             tipoforo = TipoForo.get(int(kw['tipoforo']))
  42.             #resultado = list(InvitadoEdicion.select(InvitadoEdicion.q.tipoForoID == tipoforo.id))
  43.             resultado = list(InvitadoEdicion.select(AND(InvitadoEdicion.q.tipoForoID == tipoforo.id,self.get_fechaLlegada.strftime("%Y") == self.get_anioEd.strftime("%Y"))))
  44.             #¿Mostrar prensa?
  45.             if 'pre' not in kw.keys():
  46.                 resultado = [i for i in resultado if i.invitado.esInvitado]
  47.             #¿lo confirmados?
  48.             if 'cnf' in kw.keys():
  49.                 resultado = [i for i in resultado if i.confirmado]
  50.                
  51.             #¿No Pax=0?
  52.             if 'pax' in kw.keys():
  53.                 resultado = self.quitaPax0(resultado)
  54.            
  55.             resultado = ordenarResultados(resultado,'apellidos')
  56.            
  57.            
  58.         else:
  59.             resultado = cherrypy.session.get('resultado',[])
  60.             tipoforo = cherrypy.session.get('tipoforo')
  61.            
  62.        
  63.         if 'ordenacion' in kw.keys():
  64.             resultado = ordenarResultados(resultado,kw['ordenacion'])
  65.        
  66.         if 'q' in kw.keys():
  67.             resultado = [r for r in resultado if r.id != int(kw['q'])]
  68.        
  69.         cherrypy.session['resultado'] = resultado
  70.         cherrypy.session['tipoforo'] = tipoforo
  71.            
  72.         # Presentacion
  73.            
  74.         pagina = 'Departamento de invitados: Consultas'
  75.        
  76.         cabecera = u'Listados de invitados %s al Foro' % (tipoforo.nombre)
  77.        
  78.         Col = widgets.datagrid.PaginateDataGrid.Column
  79.         fields = [Col('Sel.',borra),Col('apellidos',self.get_apellidosEd),
  80.             Col('nombre',self.get_nombreEd),       
  81.             Col('cargo',self.get_cargoEd),
  82.             Col('entidad',self.get_entidadEd),
  83.             Col('fecha llegada',self.get_fechaLlegada),
  84.             Col('fecha salida',self.get_fechaSalida),
  85.             Col('hotel',self.get_hotel),
  86.             Col('pax',self.get_pax),
  87.             Col(u'Acompañante',self.get_acompanante),
  88.             Col('Tipo Inv.',self.get_tipoInvitado)]
  89.        
  90.        
  91.         consulta_widget = widgets.datagrid.PaginateDataGrid(fields = fields)
  92.        
  93.         contenido = '<table><tr>'
  94.         contenido += self.opcionesGeneralesConsultas('doInvitadosPorTipoForo')
  95.         columnas = [('apellidos',),
  96.                     ('nombre',),
  97.                     ('cargo',),
  98.                     ('entidad',),
  99.                     ('fechaLlegada','llegada'),
  100.                     ('fechaSalida','salida'),
  101.                     ('hotel',),
  102.                     ('pax',),
  103.                     ('acomp','Acomp.'),
  104.                     ('tipoinvitado','Tipo Inv.')]
  105.         for c in columnas:
  106.             contenido += '<td><a href="doInvitadosPorTipoForo?rs=%s;ordenacion=%s;%s">%s %s</a></td>' % ('s',c[0],self.extra_kw(kw),ICONO_ORDENAR,self.nombreColumna(c))
  107.         contenido += '</tr></table>'