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