def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     global fin
     Ventana.__init__(self, 'consulta_lotes_por_producto.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin, 
                    "b_exportar/clicked": self.exportar}
     self.add_connections(connections)
     cols = (('Num. Lote','gobject.TYPE_INT64',False,True,False,None),
             ('Código','gobject.TYPE_STRING',False,True,False,None),
             ('Tenacidad','gobject.TYPE_STRING',False,True,False,None),
             ('Elongación','gobject.TYPE_STRING',False,True,False,None),
             ('Rizo','gobject.TYPE_STRING',False,True,False,None),
             ('Encogimiento','gobject.TYPE_STRING',False,True,False,None),
             ('Grasa','gobject.TYPE_STRING',False,True,False,None),
             ('Idlote','gobject.TYPE_INT64',False,False,False,None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     self.wids['tv_datos'].connect("row-activated", self.abrir_parte_tv)
     utils.rellenar_lista(self.wids['cmbe_producto'], [(p.id, p.nombre) for p in pclases.ProductoVenta.select(pclases.ProductoVenta.q.camposEspecificosBalaID != None, orderBy = 'nombre')])
     temp = time.localtime()
     self.fin = mx.DateTime.localtime()
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     gtk.main()
예제 #2
0
 def crear_listview(self, tv):
     # Primero hay que crear el TreeView que mostrará 
     # el contenido de cada solapa.
     cols = (('Resultado', 'gobject.TYPE_FLOAT', False, True,  False, None), 
             ('ID',        'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(tv, cols)
     return tv
예제 #3
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     global fin
     Ventana.__init__(self, 'consulta_albaranesFacturados.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin, 
                    "b_exportar/clicked": self.exportar}
     self.add_connections(connections)
     cols = (('Fecha','gobject.TYPE_STRING', False, True, False, None),
             ('Nº Albarán','gobject.TYPE_STRING', False, True, True, None),
             ('Cliente','gobject.TYPE_STRING', False, True, False, None),
             ('Num. Factura','gobject.TYPE_STRING', False, True, False,None),
             ('Idalbaran','gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     self.wids['tv_datos'].connect("row-activated", self.abrir_albaran)
     temp = time.localtime()
     self.fin = str(temp[0])+'/'+str(temp[1])+'/'+str(temp[2])
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     self.wids['rb_salida'].set_active(True)
     gtk.main()
예제 #4
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     global fin
     Ventana.__init__(self, 'consulta_pedidos_clientes.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin,
                    'b_exportar/clicked': self.exportar}
     self.add_connections(connections)
     utils.rellenar_lista(self.wids['cmbe_cliente'], [(c.id, c.nombre) for c in pclases.Cliente.select(orderBy='nombre')])
     cols = (('Código', 'gobject.TYPE_STRING', False, True, False, None),
             ('Descripción', 'gobject.TYPE_STRING', False,True,False,None),
             ('Precio s/IVA', 'gobject.TYPE_STRING', False,True,False,None),
             ('ID', 'gobject.TYPE_STRING', False, False, False, None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     col = self.wids['tv_datos'].get_column(2)
     for cell in col.get_cell_renderers():
         cell.set_property("xalign", 1)
     self.wids['tv_datos'].connect("row-activated", self.abrir_producto)
     temp = time.localtime()
     self.fin = str(temp[0])+'/'+str(temp[1])+'/'+str(temp[2])
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     if objeto != None:
         utils.combo_set_from_db(self.wids["cmbe_cliente"], objeto.id)
         self.wids["b_buscar"].clicked()
     self.wids['hbox4'].set_property("visible", False)
     self.wids['ventana'].set_title("Productos facturados al cliente")
     gtk.main()
예제 #5
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     Ventana.__init__(self, 'lineas_sin_pedido.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_agregar/clicked': self.crear_nuevo_pedido,
                    'b_borrar/clicked': self.eliminar_linea_sin_pedido,
                    'b_modificar/clicked': self.agregar_a_pedido}
     self.add_connections(connections)
     cols = [('Nombre','gobject.TYPE_STRING',False,True,False,None),
             ('Descripción','gobject.TYPE_STRING',False,True,False,None),
             ('Cantidad','gobject.TYPE_DOUBLE',False,True,False,None),
             ('Fecha Hora','gobject.TYPE_STRING',False,True,False,None),
             ('Albarán', 'gobject.TYPE_STRING', False, True, False, None),
             ('Factura', 'gobject.TYPE_STRING', False, True, False, None),
             ('Idlinea_sin_pedido','gobject.TYPE_INT64',False,False,False,None)]
     if pclases.Ticket.select().count():
         cols.insert(-2, ('Ticket', 'gobject.TYPE_STRING', False, True, False, None))
     utils.preparar_listview(self.wids['tv_tipos'], cols)
     self.rellenar_tabla()
     gtk.main()
예제 #6
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     cols = (('Concepto', 'gobject.TYPE_STRING', False, False, False, None),
             ("Valor en euros", "gobject.TYPE_STRING", False, False, False, None), 
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
             # La última columna (oculta en la Vista) siempre es el id.
     utils.preparar_listview(self.wids['tv_datos'], cols)
     cols = [("Código", "gobject.TYPE_STRING", False, True, True, None), 
             ("Descripción", "gobject.TYPE_STRING", 
                 False, True, False, None), 
             ("Existencias", "gobject.TYPE_STRING", 
                 False, True, False, None), 
             ("Precio valoración", "gobject.TYPE_STRING", 
                 False, True, False, None), 
             ("Total", "gobject.TYPE_STRING", False, True, True, None), 
             ("ID", "gobject.TYPE_INT", False, False, False, None)]
     utils.preparar_listview(self.wids['tv_detalle'], cols)
     tv = self.wids['tv_detalle']
     for col in tv.get_columns()[2:5]:
         for cell in col.get_cell_renderers():
             cell.set_property("xalign", 1.0)
         col.set_alignment(0.5)
예제 #7
0
 def inicializar_tv_geotextil(self):
     cols = (('Fecha', 'gobject.TYPE_STRING', False, True, False, None),
             ('Código', 'gobject.TYPE_STRING', False, True, True, None),
             ('Observaciones', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Partida', 'gobject.TYPE_STRING', False, True, False, None),
             ('Pendiente', 'gobject.TYPE_BOOLEAN', 
                 True, True, False, self.cambiar_pendiente_g),
             ('Longitudinal', 'gobject.TYPE_FLOAT', 
                 False, True, False, None),
             ('Transversal', 'gobject.TYPE_FLOAT', 
                 False, True, False, None),
             ('CBR', 'gobject.TYPE_FLOAT', False, True, False, None),
             ('Perforación', 'gobject.TYPE_FLOAT', 
                 False, True, False, None),
             ('Permeabilidad', 'gobject.TYPE_FLOAT', 
                 False, True, False, None),
             ('Punzonado piramidal', 'gobject.TYPE_FLOAT', 
                 False, True, False, None),
             ('ID', 'gobject.TYPE_INT64', False, True, False, None)
             )
     utils.preparar_listview(self.wids['tv_geotextil'], cols)
     self.wids['tv_geotextil'].connect("row-activated", 
         self.abrir_resultados_geo)
     self.colorear_geotextil(self.wids['tv_geotextil'])
예제 #8
0
    def __init__(self, objeto = None, usuario = None):
        """
        Constructor. objeto puede ser un objeto de pclases con el que
        comenzar la ventana (en lugar del primero de la tabla, que es
        el que se muestra por defecto).
        """
        global fin
        Ventana.__init__(self, 'consulta_entradas_almacen.glade', objeto)
        connections = {'b_salir/clicked': self.salir,
                       'b_buscar/clicked': self.buscar,
                       'b_imprimir/clicked': self.imprimir,
                       'b_fecha_inicio/clicked': self.set_inicio,
                       'b_producto/clicked': self.buscar_producto,
                       'b_fecha_fin/clicked': self.set_fin}
        self.add_connections(connections)
        utils.rellenar_lista(self.wids['cmbe_proveedor'], [(c.id, c.nombre) for c in pclases.Proveedor.select(orderBy='nombre')])

        cols = (('Proveedor', 'gobject.TYPE_STRING', False, True, False, None),
                ('Albarán', 'gobject.TYPE_STRING', False, True, True, None),
                ('Fecha', 'gobject.TYPE_STRING', False, True, False, None),
                ('Producto', 'gobject.TYPE_STRING', False, True, True, None),
                ('Cantidad', 'gobject.TYPE_FLOAT', False, True, False, None),
                ('Precio', 'gobject.TYPE_FLOAT', False, True, False, None),
                ('Subtotal', 'gobject.TYPE_FLOAT', False, True, False, None),
                ('idldc','gobject.TYPE_STRING',False,False,False,None))
        utils.preparar_listview(self.wids['tv_datos'], cols)
        for ncol in (4, 5, 6):
            col = self.wids['tv_datos'].get_column(ncol)
            for cell in col.get_cell_renderers():
                cell.set_property("xalign", 1)
        temp = time.localtime()
        self.fin = datetime.date(day = temp[2], month = temp[1], year = temp[0])
        self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
        self.producto = None
        gtk.main()
예제 #9
0
 def crear_listviewes(self):
     tv = self.wids['tv_pruebas']
     #cols = (('Fecha análisis', 'gobject.TYPE_STRING', True, True, True, self.cambiar_fecha),
     #        ('MFI proveedor', 'gobject.TYPE_STRING', True, True, False, self.cambiar_mfi), 
     #        ('Lote', 'gobject.TYPE_STRING', True, True, False, self.cambiar_lote), 
     #        ('Silo', 'gobject.TYPE_STRING', True, True, False, self.cambiar_silo), 
     #        ('MFI laboratorio 1', 'gobject.TYPE_STRING', True, True, False, self.cambiar_resultado),
     #        ('MFI laboratorio 2', 'gobject.TYPE_STRING', True, True, False, self.cambiar_resultado),
     #        ('Media MFI laboratorio', 'gobject.TYPE_STRING', True, True, False, self.cambiar_resultado),
     #        ('ID1:ID2', 'gobject.TYPE_STRING', False, False, False, None))
     cols = (('Fecha análisis', 'gobject.TYPE_STRING', False, True, True, None),
             ('MFI proveedor', 'gobject.TYPE_STRING', False, True, False, None), 
             ('Lote', 'gobject.TYPE_STRING', False, True, False, None), 
             ('Silo', 'gobject.TYPE_STRING', False, True, False, None), 
             ('MFI laboratorio 1', 'gobject.TYPE_STRING', False, True, False, None),
             ('MFI laboratorio 2', 'gobject.TYPE_STRING', False, True, False, None),
             ('Media MFI lab.', 'gobject.TYPE_STRING', False, True, False, None),
             ('ID1:ID2', 'gobject.TYPE_STRING', False, False, False, None))
     utils.preparar_listview(tv, cols)
     tv.get_column(1).get_cell_renderers()[0].set_property('xalign', 1) 
     tv.get_column(2).get_cell_renderers()[0].set_property('xalign', 0.5) 
     tv.get_column(3).get_cell_renderers()[0].set_property('xalign', 0.5) 
     tv.get_column(4).get_cell_renderers()[0].set_property('xalign', 0.9) 
     tv.get_column(5).get_cell_renderers()[0].set_property('xalign', 0.9) 
     tv.get_column(6).get_cell_renderers()[0].set_property('xalign', 0.9) 
     self.colorear(tv)
     tv = self.wids['tv_media']
     cols = (('Lote', 'gobject.TYPE_STRING', False, True, True, None),
             ('Fluidez media', 'gobject.TYPE_FLOAT', False, True, False, None),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(tv, cols)
     tv.get_column(1).get_cell_renderers()[0].set_property('xalign', 0.1) 
예제 #10
0
파일: usuarios.py 프로젝트: pacoqueen/bbinn
 def preparar_tab_modulos(self):
     cols = (('Módulo/Ventanas', 'gobject.TYPE_STRING', True, True, True, self.cambiar_nombre_modulo),
             ('Descripción', 'gobject.TYPE_STRING', True, True, False, self.cambiar_descripcion_modulo),
             ('Icono', 'gobject.TYPE_STRING', True, True, False, self.cambiar_icono_modulo),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_treeview(self.wids['tv_modulos'], cols)
     model = gtk.TreeStore(gobject.TYPE_STRING,
                           gobject.TYPE_STRING,
                           gobject.TYPE_STRING,
                           gtk.gdk.Pixbuf,
                           gobject.TYPE_INT64)
     self.wids['tv_modulos'].set_model(model)
     cell = gtk.CellRendererPixbuf()
     column = gtk.TreeViewColumn('', cell, pixbuf = 3)
     self.wids['tv_modulos'].insert_column(column, 3)
     cols = (('Descripción', 'gobject.TYPE_STRING', True, True, True, self.cambiar_descripcion_ventana),
             ('Fichero', 'gobject.TYPE_STRING', True, True, False, self.cambiar_fichero_ventana),
             ('Clase', 'gobject.TYPE_STRING', True, True, False, self.cambiar_clase_ventana),
             ('Icono', 'gobject.TYPE_STRING', True, True, False, self.cambiar_icono_ventana),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_ventanas'], cols)
     model = gtk.ListStore(gobject.TYPE_STRING,
                           gobject.TYPE_STRING,
                           gobject.TYPE_STRING,
                           gobject.TYPE_STRING,
                           gtk.gdk.Pixbuf,
                           gobject.TYPE_INT64)
     self.wids['tv_ventanas'].set_model(model)
     cell = gtk.CellRendererPixbuf()
     column = gtk.TreeViewColumn('', cell, pixbuf = 4)
     self.wids['tv_ventanas'].insert_column(column, 4)
예제 #11
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     global fin
     Ventana.__init__(self, 'consulta_incidencias.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin, 
                    "b_exportar/clicked": self.exportar}
     self.add_connections(connections)
     cols = (('Tipo','gobject.TYPE_STRING',False,True,False,None),
             ('Inicio','gobject.TYPE_STRING',False,True,False,None),
             ('Fin','gobject.TYPE_STRING',False,True,False,None),
             ('Fecha parte','gobject.TYPE_STRING',False,True,False,None),
             ('Turno parte','gobject.TYPE_STRING',False,True,False,None),
             ('Observaciones','gobject.TYPE_STRING',False,True,False,None),
             ('Idincidencia','gobject.TYPE_INT64',False,False,False,None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     cols = (('Tipo', 'gobject.TYPE_STRING', False, True, True, None),
             ('Tiempo', 'gobject.TYPE_STRING', False, True, False, None),
             ('NADA', 'gobject.TYPE_STRING', False, False, False, None))
     utils.preparar_listview(self.wids['tv_resumen'], cols)
     temp = time.localtime()
     self.fin = str(temp[0])+'/'+str(temp[1])+'/'+str(temp[2])
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     import custom_widgets
     self.wids['velocimetro'] = custom_widgets.Velocimetro(0.0, 100.0, 0.0)
     self.wids['hbox8'].pack_end(self.wids['velocimetro'], False, False, 5)
     self.wids['velocimetro'].show_all()
     gtk.main()
예제 #12
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     Ventana.__init__(self, 'contadores.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_agregar/clicked': self.crear_nuevo_contador,
                    'b_borrar/clicked': self.eliminar_contador,
                    'b_modificar/clicked': self.modificar_contador, 
                    'b_actualizar_contador/clicked': self.cambiar_contador}
     self.add_connections(connections)
     cols = (('Prefijo', 'gobject.TYPE_STRING', False, True, False, None),
             ('Valor actual', 'gobject.TYPE_STRING', 
                 True, True, False, self.cambiar_valor_contador),
             ('Sufijo', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Siguiente factura', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Última creada', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Fecha última factura', 'gobject.TYPE_STRING', 
                 False, True, False, None), 
             ('Facturas de la serie', 'gobject.TYPE_INT64', 
                 False, True, False, None),
             ('Clientes asignados', 'gobject.TYPE_INT64', 
                 False, True, False, None), 
             ('Idcontador', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_tipos'], cols)
     self.rellenar_widgets()
     gtk.main()
예제 #13
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     Ventana.__init__(self, 'busca_lote.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_ayuda/clicked': self.ayuda}
     self.add_connections(connections)
     cols = (('Num. Lote','gobject.TYPE_INT64',False,True,False,None),
             ('Código','gobject.TYPE_STRING',False,True,False,None),
             ('Tenacidad','gobject.TYPE_STRING',False,True,False,None),
             ('Elongación','gobject.TYPE_STRING',False,True,False,None),
             ('Rizo','gobject.TYPE_STRING',False,True,False,None),
             ('Encogimiento','gobject.TYPE_STRING',False,True,False,None),
             ('Idlote','gobject.TYPE_INT64',False,False,False,None))
     utils.preparar_listview(self.wids['tv_resultado'], cols)
     utils.rellenar_lista(self.wids['cmbe_producto'], [(p.id, p.nombre) for p in pclases.ProductoVenta.select(pclases.ProductoVenta.q.camposEspecificosBalaID != None, orderBy = 'nombre')])
     self.rellenar_tabla()
     # Valores por defecto:
     self.wids['e_tenacidad'].set_text('A')
     self.wids['e_elongacion'].set_text('A')
     self.wids['e_rizo'].set_text('6-7')
     self.wids['e_encogimiento'].set_text('A')
     self.wids['chk_tenacidad'].set_active(True)
     self.wids['chk_elongacion'].set_active(True)
     self.wids['chk_rizo'].set_active(True)
     self.wids['chk_encogimiento'].set_active(True)
     self.wids['chk_producto'].set_active(True)
     
     gtk.main()
예제 #14
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     global fin
     Ventana.__init__(self, 'listado_productos.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_limpiar/clicked': self.limpiar_tv, 
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_exportar/clicked': self.exportar}
     self.add_connections(connections)
     cols = (('Código', 'gobject.TYPE_STRING', False, True, False, None),
             ('Descripción', 'gobject.TYPE_STRING', False,True,False,None),
             ('PVP', 'gobject.TYPE_STRING', False,True,False,None),
             ('ID', 'gobject.TYPE_STRING', False, False, False, None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     col = self.wids['tv_datos'].get_column(2)
     for cell in col.get_cell_renderers():
         cell.set_property("xalign", 1)
     self.wids['tv_datos'].connect("row-activated", self.abrir_producto)
     self.wids['e_buscar'].grab_focus()
     gtk.main()
예제 #15
0
 def __init__(self, pclase, tv, objeto_clave_ajena = None, 
              cols_a_ignorar = [], nombres_col = [], 
              seleccion_multiple = False, 
              orden = None):
     """
     Si se recibe un "objeto_clave_ajena" filtrará los datos mostrados en 
     el treeview a los relacionados con él. Sin embargo si se recibiera 
     un filtro en rellenar_tabla, éste prevalecerá sobre el del constructor.
     Las columnas cuyos nombres estén en cols_a_ignorar no se mostrarán.
     Si se recibe algo en «orden», las columnas se montarán en ese orden.
     Debe ser una lista o una tupla de los nombres de las columnas en 
     estilo CamelCase. Si alguna está en la lista de ignorar, se ingorará 
     aunque esté incluida en el orden. Si alguna columna 
     no está en la lista de orden, se añadirá al final.
     """
     self.clase = pclase
     self.tv = tv
     self.funciones = {}
     self.cols_a_ignorar = cols_a_ignorar
     self.__columnas = self.clase._SO_columns
     cols = self.crear_cols(nombres_col, orden)
     utils.preparar_listview(self.tv, cols, multi = seleccion_multiple)
     if objeto_clave_ajena:
         nombrefk = (objeto_clave_ajena.__class__.__name__[0].lower() + 
                     objeto_clave_ajena.__class__.__name__[1:] + "ID")
         ajeno_id = objeto_clave_ajena.id
         self.filtro = lambda o: getattr(o, nombrefk) == ajeno_id
     else:
         self.filtro = lambda o: True
예제 #16
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     global fin
     Ventana.__init__(self, 'consulta_albaranes_clientes.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin, 
                    'b_exportar/clicked': self.exportar}
     self.add_connections(connections)
     utils.rellenar_lista(self.wids['cmbe_cliente'], [(c.id, c.nombre) for c in pclases.Cliente.select(orderBy='nombre')])
     cols = (('Cliente','gobject.TYPE_STRING',False,True,False,None),
             ('Fecha','gobject.TYPE_STRING',False,True,False,None),
             ('Albarán','gobject.TYPE_STRING',False,True,False,None),
             ('Destinatario','gobject.TYPE_STRING',False,True,False,None),
             ('Facturado', 'gobject.TYPE_BOOLEAN', False, True, False, None),
             ('Facturas', 'gobject.TYPE_STRING', False, True, False, None),
             ('Idalbaran','gobject.TYPE_INT64',False,False,False,None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     self.wids['tv_datos'].connect("row-activated", self.abrir_albaran)
     temp = time.localtime()
     self.fin = str(temp[0])+'/'+str(temp[1])+'/'+str(temp[2])
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     gtk.main()
예제 #17
0
 def __init__(self, objeto = None, usuario = None):
     self.usuario = usuario
     Ventana.__init__(self, 'partes_no_bloqueados.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_editar/clicked': self.abrir_parte,
                    'b_actualizar/clicked': self.actualizar}
     self.add_connections(connections)
     cols = (('Producto', 'gobject.TYPE_STRING', False, True, True, None),
             ('Fecha','gobject.TYPE_STRING', False, True, False, None),
             ('Inicio turno','gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Fin turno','gobject.TYPE_STRING', False, True, False, None),
             ('Visto','gobject.TYPE_BOOLEAN', 
                 True, True, False, self.bloquear),
             ('Lote/Partida', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_partes'], cols)
     self.wids['tv_partes'].connect("row-activated", self.abrir_parte_tv)
     self.wids['tv_partes'].connect("cursor-changed", 
         self.mostrar_info_parte)
     self.colorear(self.wids['tv_partes'])
     try:
         ventanas_con_permiso = [p.ventana.fichero 
             for p in usuario.permisos if p.permiso] 
                 # and p.escritura]  # STILL UNIMPLEMENTED
     except AttributeError:
         print "De momento esta ventana sólo se puede abrir desde el menú."
         sys.exit(1)
     for w in ("rb_bolsas", "rb_balas", "rb_rollos", "rb_todos"):
         self.wids[w].set_sensitive(False)
     tiene_al_menos_un_permiso = False
     if ('partes_de_fabricacion_balas.py' in ventanas_con_permiso 
         and 'partes_de_fabricacion_rollos.py' in ventanas_con_permiso
         and 'partes_de_fabricacion_bolsas.py' in ventanas_con_permiso):
         self.wids['rb_todos'].set_active(True)
         for w in ("rb_bolsas", "rb_balas", "rb_rollos", "rb_todos"):
             self.wids[w].set_sensitive(True)
         tiene_al_menos_un_permiso = True
     else:
         if 'partes_de_fabricacion_balas.py' in ventanas_con_permiso:
             self.wids['rb_balas'].set_sensitive(True)
             self.wids['rb_balas'].set_active(True)
             tiene_al_menos_un_permiso = True
         if 'partes_de_fabricacion_rollos.py' in ventanas_con_permiso:
             self.wids['rb_rollos'].set_sensitive(True)
             self.wids['rb_rollos'].set_active(True)
             tiene_al_menos_un_permiso = True
         if 'partes_de_fabricacion_bolsas.py' in ventanas_con_permiso:
             self.wids['rb_bolsas'].set_sensitive(True)
             self.wids['rb_bolsas'].set_active(True)
             tiene_al_menos_un_permiso = True
     if tiene_al_menos_un_permiso:
         self.rellenar_partes()
         gtk.main()
     else:
         utils.dialogo_info(titulo = "USUARIO SIN PERMISOS", 
             texto = "No tiene permisos suficientes para bloquear partes.", 
             padre = self.wids['ventana'])
예제 #18
0
 def crear_listview(self, tv):
     cols = (
         ("Fecha", "gobject.TYPE_STRING", True, True, True, self.cambiar_fecha),
         ("Resultado", "gobject.TYPE_FLOAT", True, True, False, self.cambiar_resultado),
         ("ID", "gobject.TYPE_INT64", False, False, False, None),
     )
     utils.preparar_listview(tv, cols)
     tv.get_column(1).get_cell_renderers()[0].set_property("xalign", 0.1)
예제 #19
0
 def crear_listview_calendario(self, tv):
     cols = (('Nombre', 'gobject.TYPE_STRING', False, True, False, None),
             ('Apellidos', 'gobject.TYPE_STRING', False, True, True, None), 
             ('Grupo', 'gobject.TYPE_STRING', False, True, False, None), 
             ('Cat. laboral', 'gobject.TYPE_STRING', False, True, False, None), 
             ('Centro de trabajo', 'gobject.TYPE_STRING', False, True, False, None), 
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(tv, cols)
     tv.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
     tv.connect('row-activated', self.abrir_calendario)
예제 #20
0
 def crear_treeview_muestras(self, tv):
     cols = (('Código', 'gobject.TYPE_STRING', False, True, True, None),
             ('Observaciones', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Pendiente', 'gobject.TYPE_BOOLEAN', 
                 False, True, False, None),
             ('Envío', 'gobject.TYPE_STRING', False, True, False, None),
             ('Recepción', 'gobject.TYPE_STRING', False, True, False, None),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(tv, cols)
예제 #21
0
 def crear_listview(self, tv):
     cols = (('Nombre', 'gobject.TYPE_STRING', False, True, False, None),
             ('Apellidos', 'gobject.TYPE_STRING', False, True, True, None), 
             ('H. entrada', 'gobject.TYPE_STRING', True, True, False, self.cambiar_horainicio), 
             ('H. salida', 'gobject.TYPE_STRING', True, True, False, self.cambiar_horafin), 
             ('Duración', 'gobject.TYPE_STRING', True, True, False, self.cambiar_horas), 
             ('Trabajo realizado', 'gobject.TYPE_STRING', True, True, False, self.cambiar_trabajo), 
             ('Centro de trabajo', 'gobject.TYPE_STRING', False, True, False, None), 
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(tv, cols)
     self.cambiar_por_combo(tv, 6)
예제 #22
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     global fin
     Ventana.__init__(self, 'consulta_pendientes_vto_bueno.glade', objeto, 
                      usuario = self.usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_pendientes/clicked': self.buscar,
                    'b_todas/clicked': self.buscar,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin}
     self.add_connections(connections)
     utils.rellenar_lista(self.wids['cmbe_proveedor'], [(c.id, c.nombre) 
                          for c 
                          in pclases.Proveedor.select(orderBy='nombre')])
     cols = (('Factura', 'gobject.TYPE_STRING', False, True, True, None),
             ('Código vto. bueno', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Proveedor', 'gobject.TYPE_STRING', False, True, False, None),
             ('Importe', 'gobject.TYPE_STRING', False, False, False, None),
             ('Fecha fra.', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Fecha recepción', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Automático', 'gobject.TYPE_BOOLEAN', 
                 False, True, False, None),
             ('Usuario', 'gobject.TYPE_BOOLEAN', False, True, False, None),
             ('Técnico', 'gobject.TYPE_BOOLEAN', False, True, False, None),
             ('Comercial', 'gobject.TYPE_BOOLEAN', 
                 False, True, False, None),
             ('D. General', 'gobject.TYPE_BOOLEAN', 
                 False, True, False, None),
             ('id', 'gobject.TYPE_STRING', False, False, False, None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     self.wids['tv_datos'].connect("row-activated", self.abrir_factura)
     self.colorear(self.wids['tv_datos'])
     temp = time.localtime()
     self.fin = datetime.date(day = temp[2], month = temp[1], year = temp[0])
     self.inicio = self.fin - datetime.timedelta(days = 4 * 7)
     self.wids['e_fechafin'].set_text(utils.str_fecha(self.fin))
     self.wids['e_fechainicio'].set_text(utils.str_fecha(self.inicio))
     sens = (self.usuario == None 
             or self.usuario.firmaUsuario 
             or self.usuario.firmaComercial 
             # or self.usuario.firmaTecnico 
             or self.usuario.firmaDirector 
             or self.usuario.firmaTotal)
     self.wids['b_pendientes'].set_sensitive(sens)
     self.wids['b_pendientes'].child.child.get_children()[1].set_text("Ver pendientes de mi firma (%s)" % (self.usuario and self.usuario.usuario or "cualquiera"))
     gtk.main()
예제 #23
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     self.inicio = None
     self.fin = None
     Ventana.__init__(self, 'consulta_existenciasBolsas.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_fecha/clicked': self.set_fecha, 
                    'b_actualizar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_exportar/clicked': self.exportar, 
                    'e_fecha/focus-out-event': act_fecha}
     self.add_connections(connections)
     cols = (('Código', 'gobject.TYPE_STRING', False, True, False, None),
             ('Descripción', 'gobject.TYPE_STRING', False,True,False,None),
             ('Existencias\ntotales', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Bultos\ntotales', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Existencias (A)', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Bultos (A)', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Existencias (B)', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Bultos (B)', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Existencias (C)', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('Bultos (C)', 'gobject.TYPE_STRING', 
                 False, True, False, None),
             ('PUID', 'gobject.TYPE_STRING', False, False, False, None))
     self.tvs = [(self.wids["tv_datos"], self.wids['e_total_kilos'], 
                  self.wids['e_total_bultos'], None)]
     nb = self.wids['nb_almacenes']
     for a in pclases.Almacen.select(orderBy = "id"):
         tv, e_kg, e_bultos, box = build_tv(a)
         self.tvs.append((tv, e_kg, e_bultos, a))
         nb.append_page(box, gtk.Label(a.nombre))
     nb.show_all()
     for tv, e_kg, e_bultos, box in self.tvs:
         utils.preparar_listview(tv, cols)
         for ncol in range(2, 10):
             col = self.wids['tv_datos'].get_column(ncol)
             for cell in col.get_cell_renderers():
                 cell.set_property("xalign", 1)
         tv.connect("row-activated", self.abrir_producto)
     self.wids['b_actualizar'].grab_focus()
     gtk.main()
예제 #24
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     cols = [('ID', 'gobject.TYPE_STRING', False, True, False, None), 
             ('Código', 'gobject.TYPE_STRING', False, True, True, None), 
             ('Descripción', 'gobject.TYPE_STRING', True, True, False, 
                 self.cambiar_descripcion), 
             ('Existencias', 'gobject.TYPE_STRING', 
                 True, True, False, 
                 self.cambiar_existencias), 
             ('Precio defecto (s/IVA)', 'gobject.TYPE_STRING', 
                 True, True, False, self.cambiar_precio_defecto)]
     self.__tarifas = [t for t in pclases.Tarifa.select(orderBy = "nombre") 
                       if t.vigente]
     for tarifa in self.__tarifas:
         cols.append(("%s (c/IVA)" % tarifa.nombre, 
                      "gobject.TYPE_STRING", 
                      None, 
                      True, 
                      False, 
                      None))
     cols.append(('id', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     for numcol in [3, 4] + [5 + i for i in range(len(self.__tarifas))]:
         col = self.wids['tv_datos'].get_column(numcol)
         if col != None:
             for cell in col.get_cell_renderers():
                 cell.set_property("xalign", 1)
                 if numcol in [5 + i for i in range(len(self.__tarifas))]:
                     cell.set_property("editable", True)
                     cell.connect("edited", 
                                  self.cambiar_precio_tarifa, numcol)
         else:
             txt = "productos.py::inicializar_ventana -> La columna %d "\
                   "es None. No formateo ni hago editable en TreeView." % (
                     numcol)
             if pclases.DEBUG:
                 print txt
             self.logger.warning(txt)
     col = self.wids['tv_datos'].get_column(1)
     for cell in col.get_cell_renderers():
         cell.set_property("xalign", 0.5)
     self.wids['tv_datos'].connect("row-activated", self.abrir_producto)
     self.wids['e_a_buscar'].connect("key_press_event", pasar_foco_enter, 
                                     self.wids['b_buscar'])
     self.wids['e_a_buscar'].grab_focus()
     self.wids['ventana'].resize(640, 480)
예제 #25
0
def crear_fake_listview(tvorig, filtrar_nulos = False, cols_a_ignorar = []):
    """
    Crea un TreeView idéntico al recibido (model clonado, mismas columnas y 
    cabeceras, etc.).
    Si «filtrar_nulos» es True, ignora todas las columnas cuyo valor en todas 
    las filas sea "nulo" (cero, lista vacía, False, "", etc.).
    Las columnas cuyo índice esté en cols_a_ignorar, no se copian.
    """
    tv = gtk.TreeView()
    tv.set_name(tvorig.get_name())
    modelorig = tvorig.get_model()
    cols = []
    origcols = tvorig.get_columns()
    colsnulas = []
    anchos = []
    aligns = []
    for col, i in zip(origcols, range(len(origcols))):
        valores_no_nulos = [fila[i] for fila in modelorig if fila[i] and 
                                        fila[i] not in ("0", "0,0", "0,00")]
        if ((filtrar_nulos and not valores_no_nulos) 
                # Hay que filtrar nulos y no tiene no-nulos. Ingnoro.
            or (i in cols_a_ignorar)):
            colsnulas.append(i)
            continue
        cols.append((col.get_title(), 
                     #modelorig.get_column_type(i), 
                     "gobject.TYPE_STRING",     # Por aquí traga todo.
                     False, 
                     False, 
                     False, 
                     None))
        anchos.append(col.get_width())
        aligns.append(col.get_cell_renderers()[0].get_property("xalign"))
    cols.append(("ID", "gobject.TYPE_STRING", False, False, False, None))
    utils.preparar_listview(tv, cols)
    #for col, ancho in zip(tv.get_columns(), anchos):
    #    col.set_fixed_width(ancho) # Estos anchos son los del tv original. 
                                    # No valen si está filtrado
    for col, align in zip(tv.get_columns(), aligns):
        col.get_cell_renderers()[0].set_property("xalign", align) 
    model = tv.get_model()
    for fila in modelorig:
        if filtrar_nulos:
            _fila = []
            for indice in range(len(fila)):
                if indice not in colsnulas:
                    _fila.append(fila[indice])
            fila = _fila
        model.append(fila)
    return tv
예제 #26
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     Ventana.__init__(self, 'consulta_totales_geotextiles.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_exportar/clicked': self.exportar
                   }
     self.add_connections(connections)
     cols = (('Mes', 'gobject.TYPE_STRING', False, False, False, None), 
             ('Producción: rollos', 'gobject.TYPE_STRING', False, False, False, None),
             ('Producción: m²', 'gobject.TYPE_STRING', False, False, False, None),
             ('Producción: kg', 'gobject.TYPE_STRING', False, False, False, None),
             ('Existencias: rollos', 'gobject.TYPE_STRING', False, False, False, None),
             ('Existencias: m²', 'gobject.TYPE_STRING', False, False, False, None), 
             ('Existencias: kg', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: total: rollos', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: total: m²', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: total: kg', 'gobject.TYPE_STRING', False, False, False, None), 
             ('Salidas: C. nac.: rollos', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: C. nac.: m²', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: C. nac.: kg', 'gobject.TYPE_STRING', False, False, False, None), 
             ('Salidas: C. int.: rollos', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: C. int.: m²', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: C. int.: kg', 'gobject.TYPE_STRING', False, False, False, None), 
             ('Salidas: G.: rollos', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: G.: m²', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: G.: kg', 'gobject.TYPE_STRING', False, False, False, None), 
             ('Salidas: Otros: rollos', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: Otros: m²', 'gobject.TYPE_STRING', False, False, False, None),
             ('Salidas: Otros: kg', 'gobject.TYPE_STRING', False, False, False, None), 
             ('Peds. pendientes: rollos', 'gobject.TYPE_STRING', False, False, False, None),
             ('Peds. pendientes: m²', 'gobject.TYPE_STRING', False, False, False, None),
             ('Peds. pendientes: kg', 'gobject.TYPE_STRING', False, False, False, None), 
             ('mes', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     for numcol in xrange(1, 25):
         col = self.wids['tv_datos'].get_column(numcol)
         for cell in col.get_cell_renderers():
             cell.set_property('xalign', 1.0)
     anno_ini, anno_fin = buscar_annos_ini_fin()
     opciones = [(anno, anno) for anno in xrange(anno_ini, anno_fin + 1)]
     utils.rellenar_lista(self.wids['cbe_year'], opciones)
     utils.combo_set_from_db(self.wids['cbe_year'], -1)
     gtk.main()
예제 #27
0
    def __init__(self, objeto = None, usuario = None, ventana_padre = None, locals_adicionales = {}, fichero_log = "ginn.log"):
        self.fichero_log = fichero_log
        self.filtro = [""]
        try:
            Ventana.__init__(self, 'trazabilidad.glade', objeto)    
            # Me vale el mismo glade. Modificaré dinámicamente lo que me 
            # estorbe.
        except:     # Tal vez me estén llamando desde otro directorio
            Ventana.__init__(self, os.path.join('..', 'formularios', 'trazabilidad.glade'), objeto)
        connections = {'b_salir/clicked': self._salir}
        self.add_connections(connections)
        self.wids['hbox1'].set_property("visible", False)
        cols = (('Fecha', 'gobject.TYPE_STRING', False, True, True, None),
                ('Hora', 'gobject.TYPE_STRING', False, True, False, None),
                ('Tipo', 'gobject.TYPE_STRING', False, True, False, None),
                ('Usuario', 'gobject.TYPE_STRING', False, True, False, None), 
                ('Texto', 'gobject.TYPE_STRING', False, True, False, None), 
                ('Línea', 'gobject.TYPE_INT64', False, False, False, None))
        utils.preparar_listview(self.wids['tv_datos'], cols)
        self.colorear(self.wids['tv_datos'])
        import pyconsole
        vars_locales = locals()
        for k in locals_adicionales:
            vars_locales[k] = locals_adicionales[k] 
        consola = pyconsole.attach_console(self.wids['contenedor_consola'], 
                                banner = "Consola python de depuración GINN", 
                                script_inicio = """import sys, os, pygtk, gtk, gtk.glade, utils
sys.path.append(os.path.join("..", "framework"))
import pclases, mx, mx.DateTime
dir()
""", 
                                locals = vars_locales)
        self.wids['frame2'].set_property("visible", False)
        self.wids['ventana'].set_title("LogViewer")
        self.wids['ventana'].resize(800, 600)
        self.wids['ventana'].set_position(gtk.WIN_POS_CENTER)
        self.wids['vpaned1'].set_position(500)
        self.tamanno_log = self.rellenar_widgets()
        gobject.timeout_add(1000, self.check_log)
        try:
            self.wids['e_search'].set_property("primary-icon-stock", 
                gtk.STOCK_FIND)
            self.wids['e_search'].set_property("secondary-icon-stock", 
                gtk.STOCK_CLEAR)
            self.wids['e_search'].connect("icon-press", self.both_buttons)
        except TypeError:
            self.wids['e_search'].connect("changed", 
                                          self.mancatrlt2)
        gtk.main()
예제 #28
0
 def preparar_tv(self, tv):
     """
     Prepara las columnas del TreeView.
     """
     cols = (('Fecha y hora', 'gobject.TYPE_STRING', False, True, False, None),
             ('Código', 'gobject.TYPE_STRING', False, True, True, None),
             ('Peso', 'gobject.TYPE_STRING', True, True, False, self.cambiar_peso), 
             ('Color', 'gobject.TYPE_STRING', False, False, False, None), 
             ('Observaciones', 'gobject.TYPE_STRING', True, False, False, self.cambiar_observaciones),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(tv, cols)
     for col in tv.get_columns()[2:3]:
         for cell in col.get_cell_renderers():
             cell.set_property("xalign", 1.0)
         col.set_alignment(0.5)
     self.wids['tv_balas'].get_selection().set_mode(gtk.SELECTION_MULTIPLE)
예제 #29
0
 def crear_listview(self, tv):
     cols = (('Fecha', 'gobject.TYPE_STRING', True, True, True, self.cambiar_fecha),
             ('Título (DTEX)', 'gobject.TYPE_STRING', True, True, False, self.cambiar_titulo), 
             ('Alargamiento (%)', 'gobject.TYPE_STRING', True, True, False, self.cambiar_alargamiento), 
             ('Tenacidad (cN/tex)', 'gobject.TYPE_STRING', True, True, False, self.cambiar_tenacidad), 
             ('Grasa (%)', 'gobject.TYPE_STRING', True, True, False, self.cambiar_grasa), 
             ('Encogimiento (%)', 'gobject.TYPE_STRING', True, True, False, self.cambiar_encogimiento), 
             ('Humedad (%)', 'gobject.TYPE_STRING', True, True, False, self.cambiar_humedad), 
             ('ID', 'gobject.TYPE_STRING', False, False, False, None)) # Contiene los ID de los resultados separados por ','
     utils.preparar_listview(tv, cols)
     tv.get_column(1).get_cell_renderers()[0].set_property('xalign', 0.1) 
     tv.get_column(2).get_cell_renderers()[0].set_property('xalign', 0.1) 
     tv.get_column(3).get_cell_renderers()[0].set_property('xalign', 0.1) 
     tv.get_column(4).get_cell_renderers()[0].set_property('xalign', 0.1) 
     tv.get_column(5).get_cell_renderers()[0].set_property('xalign', 0.1) 
     tv.get_column(6).get_cell_renderers()[0].set_property('xalign', 0.1) 
예제 #30
0
 def __init__(self, objeto = None, usuario = None):
     self.usuario = usuario
     Ventana.__init__(self, 'up_estadisticas_clientes.glade', objeto)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_exportar/clicked': self.exportar}
     self.add_connections(connections)
     cols = (('Variable', 'gobject.TYPE_STRING', False, True, True, None),
             ('Frecuencia', 'gobject.TYPE_INT', False, True, False, None),
             ('Porcentaje', 
                 'gobject.TYPE_STRING', False, True, False, None),
             ('PUID', 'gobject.TYPE_STRING', 
                 False, False, False, None))
     self.nombres_tv = ("tv_edad", "tv_profesion", "tv_sexo", "tv_clases", 
                        "tv_padecimientos")
     for nombre_tv in self.nombres_tv:
         utils.preparar_listview(self.wids[nombre_tv], cols)
     self.g_edad = charting.add_grafica_simple(self.wids['h_graficas1'], 
                                               STR_RANGOS_EDAD, 
                                               [0] * len(RANGOS_EDAD))
     #profesiones = [c.profesion.upper().strip() 
     #               for c in pclases.Cliente.select()]
     profesiones = []
     self.g_profesion = charting.add_grafica_barras_verticales(
         self.wids['h_grafica_p'], 
         profesiones, [0] * len(profesiones), 
         ver_botones_colores = False)
     self.g_sexo = charting.add_grafica_barras_horizontales(
         self.wids['h_graficas1'], 
         ("Masculino", "Femenino"), 
         [0, 0])
     #productos = [p.descripcion for p in pclases.ProductoCompra.select()]
     productos = []
     self.g_clases = charting.add_grafica_barras_verticales(
         self.wids['h_grafica_c'], 
         productos, [0] * len(productos), 
         ver_botones_colores = False)
     #padecimientos = [p.texto.upper().strip() 
     #                 for p in pclases.Padecimiento.select()] 
     padecimientos = []
     self.g_padecimientos = charting.add_grafica_barras_verticales(
         self.wids['h_grafica_d'], 
         padecimientos, [0] * len(padecimientos), 
         ver_botones_colores = False)
     self.wids['ventana'].maximize()
     gtk.main()