def __init__(self, objeto = None, usuario = None): self.usuario = usuario Ventana.__init__(self, 'consulta_ventas_ticket.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, 'b_fecha_inicio/clicked': self.set_inicio, 'b_fecha_fin/clicked': self.set_fin} self.add_connections(connections) cols = (('Fecha', 'gobject.TYPE_STRING', False, True, False, None), ('Ticket', 'gobject.TYPE_STRING',False,True,True,None), ('Imp. total', 'gobject.TYPE_STRING',False,True,False,None), ('Imp. (s/IVA)','gobject.TYPE_STRING',False,True,False,None), ('Ben. sobre tarifa', 'gobject.TYPE_STRING', False, True, False, None), ('ID','gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_datos'], cols) for col in self.wids['tv_datos'].get_columns()[2:]: for cell in col.get_cell_renderers(): cell.set_property("xalign", 1.0) col.set_alignment(0.5) self.wids['tv_datos'].connect("row-activated", self.abrir_producto) self.fin = mx.DateTime.today() #self.inicio = mx.DateTime.DateTimeFrom(day = 1, month = self.fin.month, year = self.fin.year) self.inicio = self.fin self.wids['e_fechafin'].set_text(utils.str_fecha(self.fin)) self.wids['e_fechainicio'].set_text(utils.str_fecha(self.inicio)) self.wids['hbox1'].set_property("visible", False) self.wids['hbox6'].set_property("visible", False) gtk.main()
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_facturas_sin_doc_pago.glade', objeto) connections = {'b_salir/clicked': self.salir, 'b_buscar/clicked': self.buscar, 'b_imprimir/clicked': self.imprimir, 'b_exportar/clicked': self.exportar, 'b_fechaini/clicked': self.set_fecha_ini, 'b_fechafin/clicked': self.set_fecha_fin} self.add_connections(connections) cols = [('Cliente', 'gobject.TYPE_STRING', False, True, False, None), ('Nº. Factura', 'gobject.TYPE_STRING', False, True, True, None), ('Fecha', 'gobject.TYPE_STRING', False, True, False, None), ('Vencimiento', 'gobject.TYPE_STRING',False,True,False,None), ("Importe pendiente", "gobject.TYPE_STRING", False, True, False, None), #("Contacto", "gobject.TYPE_STRING", False, True, False, None), ('idvto', 'gobject.TYPE_INT64', False, False, False, None)] utils.preparar_treeview(self.wids['tv_datos'], cols) self.wids['tv_datos'].connect("row-activated", self.abrir_factura) self.wids['tv_datos'].get_column(4).get_cell_renderers()[0].set_property('xalign', 1) self.wids['tv_datos'].get_column(3).get_cell_renderers()[0].set_property('xalign', 0.5) #self.wids['ventana'].maximize() self.wids['e_fechaini'].set_text("") self.wids['e_fechafin'].set_text( utils.str_fecha(mx.DateTime.localtime())) gtk.main()
def __init__(self, objeto = None, usuario = None): Ventana.__init__(self, 'consulta_beneficio.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, 'b_fecha_inicio/clicked': self.set_inicio, 'b_fecha_fin/clicked': self.set_fin} self.add_connections(connections) cols = (('Fecha','gobject.TYPE_STRING', False, True, False, None), ('Nº Factura','gobject.TYPE_STRING', False, True, True, None), ('Cliente','gobject.TYPE_STRING', False, True, False, None), ('Importe','gobject.TYPE_STRING', False, True, False, None), ('Base imponible','gobject.TYPE_STRING', False, True, False, None), ('Beneficio sobre tarifa','gobject.TYPE_STRING', False, True, False, None), ('Idfactura','gobject.TYPE_INT64', False, False, False, None)) utils.preparar_treeview(self.wids['tv_datos'], cols) for col in self.wids['tv_datos'].get_columns()[0:2] + self.wids['tv_datos'].get_columns()[3:]: for cell in col.get_cell_renderers(): cell.set_property("xalign", 1.0) col.set_alignment(0.5) self.fin = mx.DateTime.localtime() self.inicio = mx.DateTime.DateTimeFrom(day = 1, month = self.fin.month, year = self.fin.year) self.wids['e_fechafin'].set_text(utils.str_fecha(self.fin)) self.wids['e_fechainicio'].set_text(utils.str_fecha(self.inicio)) gtk.main()
def __init__(self, objeto = None, usuario = None): self.usuario = usuario Ventana.__init__(self, 'horas_trabajadas_dia.glade', objeto, usuario = usuario) connections = {'b_salir/clicked': self.salir, 'b_fecha/clicked': self.set_fecha, 'b_consultar/clicked': self.rellenar_horas, 'b_actualizar/clicked': self.actualizar, 'b_imprimir/clicked': self.imprimir, 'b_exportar/clicked': self.exportar} self.add_connections(connections) cols = (('Empleado', 'gobject.TYPE_STRING', False, True, True, None), ('Centro trabajo', 'gobject.TYPE_STRING', False, True, False, None), ('H. inicio','gobject.TYPE_STRING', False, True, False, None), ('H. fin','gobject.TYPE_STRING', False, True, False, None), ('Total hrs.','gobject.TYPE_STRING', False, True, False, None), ('Nocturnidad','gobject.TYPE_BOOLEAN', False, True, False, None), ('H. extra','gobject.TYPE_STRING', False, True, False, None), ('Prod. gtx.','gobject.TYPE_STRING', False, True, False, None), ('Prod. fibra','gobject.TYPE_STRING', False, True, False, None), ('Prod. geocomp.','gobject.TYPE_STRING', False, True, False, None), ('Mant. gtx.','gobject.TYPE_STRING', False, True, False, None), ('Mant. fibra','gobject.TYPE_STRING', False, True, False, None), ('Mant. geocomp.','gobject.TYPE_STRING', False, True, False, None), ('Almacén','gobject.TYPE_STRING', False, True, False, None), ('Varios','gobject.TYPE_STRING', False, True, False, None), ('Observaciones','gobject.TYPE_STRING', False, True, False, None), ('ID', 'gobject.TYPE_INT64', False, False, False, None)) utils.preparar_treeview(self.wids['tv_horas'], cols) self.wids['e_fecha'].set_text(mx.DateTime.localtime().strftime('%d/%m/%Y')) self.wids['tv_horas'].connect('row-activated', self.abrir_item) self.rellenar_horas() self.colorear() gtk.main()
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. self.wids['b_actualizar'].set_sensitive(False) self.wids['b_guardar'].set_sensitive(False) self.wids['b_nuevo'].set_sensitive(True) self.wids['b_buscar'].set_sensitive(True) self.activar_widgets(False) # Inicialización del resto de widgets: cols = (('Código', 'gobject.TYPE_STRING', False, True, False, None), ('Descripción', 'gobject.TYPE_STRING', False, True, True, None), ('Cantidad', 'gobject.TYPE_STRING', True, True, False, self.cambiar_cantidad_ldv), ('IDLDV', 'gobject.TYPE_INT64', False, False, False, None) ) utils.preparar_treeview(self.wids['tv_ldvs'], cols) self.wids['tv_ldvs'].get_selection().set_mode(gtk.SELECTION_MULTIPLE) almacenes = [(a.id, a.nombre) for a in pclases.Almacen.select( pclases.Almacen.q.activo == True, orderBy = "id")] utils.rellenar_lista(self.wids['cbe_almacen'], almacenes)
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, os.path.join("ui", 'consulta_gastos.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 = (('Código','gobject.TYPE_STRING',False,True, True, None), ('Concepto','gobject.TYPE_STRING',False,False,False,None), ('Fecha', 'gobject.TYPE_STRING',False,True, False,None), ('Factura','gobject.TYPE_STRING',False,True,False,None), ('Parcela','gobject.TYPE_STRING',False,True,False,None), ('Importe','gobject.TYPE_STRING',False,True,False,None), ('id','gobject.TYPE_STRING',False,False,False,None)) utils.preparar_treeview(self.wids['tv_datos'], cols) col = self.wids['tv_datos'].get_column(5) for cell in col.get_cell_renderers(): cell.set_property("xalign", 1) 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()
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, 'listado_balas.glade', objeto, usuario = usuario) connections = {'b_salir/clicked': self.salir, 'b_fecha_inicio/clicked': self.set_inicio, 'b_fecha_fin/clicked': self.set_fin, 'b_buscar/clicked': self.buscar_balas, 'b_imprimir/clicked': self.imprimir, 'b_etiquetas/clicked': self.etiquetar, 'b_exportar/clicked': self.exportar} self.add_connections(connections) cols = (('Código', 'gobject.TYPE_STRING', False, True, False, None), ('Fecha Fab.','gobject.TYPE_STRING',False,True,False,None), ('Peso', 'gobject.TYPE_STRING', False, True, False, None), ('Lote','gobject.TYPE_STRING',False,True,False,None), ('Albarán','gobject.TYPE_STRING',False,True,False,None), ('Partida','gobject.TYPE_STRING',False,True,False,None), ('Analizada', 'gobject.TYPE_BOOLEAN',False,True,False,None), ('Clase B', 'gobject.TYPE_BOOLEAN', False, True, False, None), ('Almacén', 'gobject.TYPE_STRING', False, True, False, None), ('PUID', 'gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_balas'], cols) self.wids['tv_balas'].get_selection().set_mode(gtk.SELECTION_MULTIPLE) self.wids['tv_balas'].connect("row-activated", abrir_trazabilidad, self.usuario) temp = time.localtime() self.fin = mx.DateTime.localtime() self.inicio = None self.wids['e_fechafin'].set_text(utils.str_fecha(temp)) gtk.main()
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)
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. self.activar_widgets(False) self.wids['b_actualizar'].set_sensitive(False) self.wids['b_guardar'].set_sensitive(False) self.wids['b_nuevo'].set_sensitive(True) self.wids['b_buscar'].set_sensitive(True) self.wids['ventana'].set_title(self.clase.sqlmeta.table.upper()) # Inicialización del resto de widgets: cols = (('Cliente', 'gobject.TYPE_STRING', False, True, True, None), ('CIF', 'gobject.TYPE_STRING', False, True, False, None), ('Código Postal','gobject.TYPE_STRING',False,True,False,None), ('Ciudad', 'gobject.TYPE_STRING', False, True, False, None), ('Provincia', 'gobject.TYPE_STRING', False, True, False, None), ('País', 'gobject.TYPE_STRING', False, True, 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_clientes'], cols) cols = (('Producto', 'gobject.TYPE_STRING', True, True, True, self.editar_descripcion), ('Precio','gobject.TYPE_STRING', True, True, False, self.editar_precio), ('ID', 'gobject.TYPE_STRING', False, False, False, None)) # La última columna (oculta en la Vista) siempre es el id. utils.preparar_treeview(self.wids['tv_productos'], cols, multi = True)
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_ventas.glade', objeto, usuario = usuario) 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} self.add_connections(connections) cols = (('Cliente','gobject.TYPE_STRING',False,True,False,None), ('Factura','gobject.TYPE_STRING',False,True,True,None), ('Fecha','gobject.TYPE_STRING',False,True,False,None), ('Total','gobject.TYPE_STRING',False,True,False,None), ('Beneficio','gobject.TYPE_STRING',False,True,False,None), ('Pendiente','gobject.TYPE_STRING',False,True,False,None), ('Id','gobject.TYPE_INT64',False,False,False,None)) utils.preparar_treeview(self.wids['tv_datos'], cols) self.wids['tv_datos'].connect("row-activated", self.abrir_prefactura) self.wids['tv_datos'].get_column(3).get_cell_renderers()[0].set_property('xalign', 1) self.wids['tv_datos'].get_column(4).get_cell_renderers()[0].set_property('xalign', 1) self.wids['tv_datos'].get_column(5).get_cell_renderers()[0].set_property('xalign', 1) 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.metros_totales = 0.0 self.kilos_totales = 0.0 opciones = [(c.id, c.nombre) for c in pclases.Cliente.select(orderBy = "nombre")] opciones.insert(0, (-1, "Todos")) utils.rellenar_lista(self.wids['cbe_cliente'], opciones) utils.combo_set_from_db(self.wids['cbe_cliente'], -1) self.wids['label7'].set_text("Total beneficio estimado: ") #self.wids['label7'].set_property("visible", False) #self.wids['e_total_kilos'].set_property("visible", False) self.wids['label8'].set_property("visible", False) self.wids['e_total_metros'].set_property("visible", False) self.wids['label9'].set_property("visible", False) self.wids['cbe_cliente'].set_property("visible", False) self.wids['ventana'].set_title("Listado de prefacturas") self.wids['notebook1'].remove_page(1) self.wids['label1'].set_text("Por cliente") labpdte = gtk.Label("Total pendiente:") labpdte.show() self.wids['hbox4'] = gtk.HBox() self.wids['hbox4'].add(labpdte) self.wids['e_totpdte'] = gtk.Entry() self.wids['e_totpdte'].set_property("editable", False) self.wids['e_totpdte'].set_property("has-frame", False) self.wids['hbox4'].add(self.wids['e_totpdte']) self.wids['hbox4'].show_all() self.wids['vbox2'].add(self.wids['hbox4']) self.wids['vbox2'].reorder_child(self.wids['hbox4'], 2) self.wids['e_totpdte'].show() gtk.main()
def __init__(self, objeto = None, consulta = "", padre = None, usuario = None): """ consulta es la parte *interna* de la consulta cuyos resultados se mostrarán en la búsqueda. Es decir, pclases.LogicMovimientos.select(->consulta<-). self.objeto guarda el objeto seleccionado en la ventana y que se puede recuperar mediante .get_objeto. Se asigna objeto a self.objeto inicialmente, por lo que puede valer de valor por defecto en caso de que se salga de la ventana sin seleccionar ningún resultado. """ if str(consulta) == "": Logic = pclases.LogicMovimientos self.consulta = pclases.AND(Logic.q.importe >= 0, Logic.q.contrapartidaInfo == '', pclases.OR(Logic.q.codigoCuenta.startswith('400'), Logic.q.codigoCuenta.startswith('403'), Logic.q.codigoCuenta.startswith('410')), pclases.NOT(Logic.q.comentario.startswith("Apertura Ejercicio")) ) else: self.consulta = consulta Ventana.__init__(self, 'mostrar_datos_logic.glade', objeto, usuario = usuario) connections = {'b_salir/clicked': self.salir, 'b_limpiar/clicked': self.limpiar, 'b_aplicar/clicked': self.aplicar, 'b_select/clicked': self.aceptar, 'tb_expand/toggled': self.expandircontraer, 'tb_ver/toggled': self.cambiar_vista} self.add_connections(connections) if padre != None: self.wids['ventana'].set_transient_for(padre) self.wids['ventana'].set_modal(padre != None) self.wids['txt_sqlobject'].get_buffer().connect("changed", self.limpiar_criterios_manuales) cols = (('ID', 'gobject.TYPE_STRING', False, True, False, None), ('asiento', 'gobject.TYPE_STRING', False, True, True, None), ('orden', 'gobject.TYPE_STRING', False, True, False, None), ('fecha', 'gobject.TYPE_STRING', False, True, False, None), ('cargoAbono', 'gobject.TYPE_STRING', False, True, False, None), ('codigoCuenta', 'gobject.TYPE_STRING', False, True, False, None), ('cuenta', 'gobject.TYPE_STRING', False, True, False, None), ('contrapartidaInfo', 'gobject.TYPE_STRING', False, True, False, None), ('comentario', 'gobject.TYPE_STRING', False, True, False, None), ('importe', 'gobject.TYPE_STRING', False, True, False, None), ('ID', 'gobject.TYPE_INT64', False, False, False, None)) utils.preparar_treeview(self.wids['tv_logic'], cols) self.wids['tv_logic'].set_expander_column(self.wids['tv_logic'].get_column(5)) self.wids['tv_logic'].connect("row-activated", self.seleccionar_fila) font = pango.FontDescription("Monospace 9") self.wids['txt_sqlobject'].modify_font(font) self.vpro = VentanaProgreso(padre = self.wids['ventana']) self.rellenar_logic() col = self.wids['tv_logic'].get_column(9) for cell in col.get_cell_renderers(): cell.set_property('xalign', 1.0) gtk.main()
def __init__(self, objeto = None, usuario = None, ventana_padre = None, locals_adicionales = {}): try: Ventana.__init__(self, 'trazabilidad.glade', objeto) 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, 'b_buscar/clicked': self.buscar} self.add_connections(connections) cols = (('ID', 'gobject.TYPE_STRING', False, False, False, None), ('campo', 'gobject.TYPE_STRING', False, False, False, None), ('valor', 'gobject.TYPE_STRING', True, False, True, self.cambiar_valor), ('clase', 'gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_datos'], cols) self.wids['e_num'].connect("key_press_event", self.pasar_foco) self.wids['tv_datos'].connect("row-expanded", self.expandir) self.wids['tv_datos'].connect("row-collapsed", self.cerrar) 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 os, pygtk, gtk, gtk.glade, utils sys.path.append(os.path.join("framework")) import pclases, mx, mx.DateTime from seeker import VentanaGenerica as Ver dir() #Ver(self.objeto) """, locals = vars_locales) if objeto != None: self.rellenar_datos(objeto) cmd_gtk = cmdgtk.CmdGTK() cmd_gtk.attach_to(self.wids['boxcmd']) #-----------------------------------------------------------------------------------------------# def comprobar_que_no_me_hace_el_gato(paned, scrolltype_or_allocation_or_requisition = None): # width = self.wids['ventana'].get_size()[0] # MIN = width / 2 # MAX = width - 100 # posactual = paned.get_position() # if posactual < MIN: # paned.set_position(MIN) # elif posactual > MAX: # paned.set_position(MAX) # #-----------------------------------------------------------------------------------------------# self.wids['hpaned1'].connect("size_request", comprobar_que_no_me_hace_el_gato) self.wids['ventana'].resize(800, 600) self.wids['hpaned1'].set_position(self.wids['ventana'].get_size()[0] / 2) self.wids['ventana'].set_position(gtk.WIN_POS_CENTER) gtk.main()
def crear_listview(self, mes, year): # Primero hay que crear el TreeView que mostrará # el contenido de cada solapa. tv = gtk.TreeView() cols = (('Fecha y hora', 'gobject.TYPE_STRING', False, True, False, None), ('Nº Rollo', 'gobject.TYPE_STRING', False, True, True, None), ('Partida', 'gobject.TYPE_STRING', False, True, False, None), ('Nº Albarán', 'gobject.TYPE_STRING', False, True, False, None), ('Nombre', 'gobject.TYPE_STRING', False, True, False, None), ('ID', 'gobject.TYPE_INT64', False, False, False, None)) utils.preparar_treeview(tv, cols) tv.show() tv.set_search_column(1) # Pasa de mí. return tv
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_albaranesPorFacturar.glade', objeto, usuario = usuario) 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_ae/clicked': self.exportar, 'b_exportar_as/clicked': self.exportar, 'b_exportar_totales/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), ('Descripción del material', 'gobject.TYPE_STRING', False, True, True, None), ('Cantidad', 'gobject.TYPE_STRING', False, True, False, None), ('Cliente','gobject.TYPE_STRING', False, True, False, None), ('Idalbaran','gobject.TYPE_STRING', False, False, False, None)) for tv in ('tv_entrada', 'tv_salida'): utils.preparar_treeview(self.wids[tv], cols) self.wids[tv].connect("row-activated", self.abrir_albaran) self.wids[tv].get_column(3).get_cell_renderers()[0].set_property( 'xalign', 1.0) self.cambiar_cabecera_columna(self.wids['tv_entrada'], "Proveedor") cols = (("Descripción", "gobject.TYPE_STRING", False, True, True,None), ("Entradas", "gobject.TYPE_STRING", False, True, False, None), ("Salidas", "gobject.TYPE_STRING", False, True, False, None), ("Entradas - Salidas", "gobject.TYPE_STRING", False, True, False, None), ("IDProducto", "gobject.TYPE_INT64", False, True, False, None)) utils.preparar_listview(self.wids['tv_producto'], cols) for numcol in (1, 2, 3): self.wids['tv_producto'].get_column(numcol)\ .get_cell_renderers()[0].set_property('xalign', 1.0) 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['e_total_entrada'].set_property("xalign", 1.0) self.wids['e_total_salida'].set_property("xalign", 1.0) self.wids['e_euros_entrada'].set_property("xalign", 1.0) self.wids['e_euros_salida'].set_property("xalign", 1.0) gtk.main()
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, 'formulacion_fibra.glade', objeto, usuario = usuario) connections = {'b_salir/clicked': self.salir, '_b_guardar/clicked': self.guardar, 'b_ensimaje/clicked': self.buscar_mp, 'b_antiuvi/clicked': self.buscar_mp, 'b_negro/clicked': self.buscar_mp, 'b_titanio/clicked': self.buscar_mp, 'b_plasticog/clicked': self.buscar_mp, 'b_plasticoe/clicked': self.buscar_mp, 'b_flejes/clicked': self.buscar_mp, 'b_add_consumo/clicked': self.add_consumo_por_producto, 'b_drop_consumo/clicked': self.drop_consumo_por_producto, 'b_cambiar_producto_compra/clicked': self.cambiar_producto_compra, 'b_add_producto_a_consumo/clicked': self.add_producto_a_consumo } self.add_connections(connections) cols = (("Descripción (opcional)", "gobject.TYPE_STRING", True, True, True, None), ("Material", "gobject.TYPE_STRING", False, True, False, None), ("Cantidad", "gobject.TYPE_STRING", True, True, True, self.cambiar_cantidad), ("Unidad", "gobject.TYPE_STRING", True, True, True, self.cambiar_unidad), ("ID", "gobject.TYPE_STRING", False, False, False, None)) # Unidad: Deberá ser algo así como: # % para porcentaje del peso. # algo/u para descontar m, k o en lo que quiera que se mida el # producto de compra por cada unidad fabricada. # algo/kg para descontar m, k o en lo que quiera que se mida el # producto de compra por cada kg (m² en rollos) fabricado. # algo/x m para descontar m, k o en lo que quiera que se mida el # producto de compra por cada x metros de ancho de cada # rollo fabricado (sólo para geotextiles y geocompuestos) utils.preparar_treeview(self.wids['tv_consumos'], cols, multi = True) # En el treeview cada nodo padre será una materia prima con su # descuento y tal. Los nodos hijos contendrán el producto # de venta al que se aplica ese descuento automático. self.wids['tv_consumos'].connect("row-activated", self.abrir_producto) self.comprobar_registro() self.rellenar_widgets() gtk.main()
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_saldo_proveedores.glade', objeto, usuario=usuario) connections = {'b_salir/clicked': self.salir, 'b_buscar/clicked': self.buscar, 'b_imprimir/clicked': self.imprimir, 'b_fecha_inicio/clicked': self.set_fecha, 'b_fecha_fin/clicked': self.set_fecha, 'b_exportar/clicked': self.exportar, 'e_fecha_inicio/focus-out-event': act_fecha, 'e_fecha_fin/focus-out-event': act_fecha, } self.add_connections(connections) utils.rellenar_lista(self.wids['cmbe_proveedor'], [(0, "Todos")] + [(c.id, c.nombre) for c in pclases.Proveedor.select(orderBy='nombre')]) cols = (('Proveedor', 'gobject.TYPE_STRING', False, True, False, None), ('Factura', 'gobject.TYPE_STRING', False, True, False, None), ('Fecha', 'gobject.TYPE_STRING', False, True, False, None), ('Importe', 'gobject.TYPE_STRING', False, True, False, None), ('Vencimientos', 'gobject.TYPE_STRING', False, True, False, None), ('Pagado', 'gobject.TYPE_STRING', False, True, False, None), ('Pendiente', 'gobject.TYPE_STRING', False, True, False, None), ('DBPUID', 'gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_datos'], cols) for ncol in (3, 4, 5, 6): col = self.wids['tv_datos'].get_column(ncol) for cell in col.get_cell_renderers(): cell.set_property("xalign", 1) self.wids['tv_datos'].connect("row-activated", self.abrir_objeto) self.resultado = [] self.fin = utils.str_fecha(datetime.date.today()) self.inicio = None self.wids['e_fecha_fin'].set_text(self.fin) self.wids['e_fecha_inicio'].set_text("") if objeto != None: utils.combo_set_from_db(self.wids["cmbe_proveedor"], objeto.id) self.wids["b_buscar"].clicked() self.wids['cmbe_proveedor'].grab_focus() gtk.main()
def __init__(self, objeto = None, usuario = None): self.usuario = usuario Ventana.__init__(self, 'facturas_no_bloqueadas.glade', objeto, usuario = usuario) connections = {'b_salir/clicked': self.salir, 'b_editar/clicked': self.abrir_factura, 'b_actualizar/clicked': self.actualizar} self.add_connections(connections) cols = (('Nº Factura', 'gobject.TYPE_STRING', False, True, True, None), ('Fecha','gobject.TYPE_STRING', False, True, False, None), ('Cliente','gobject.TYPE_STRING', False, True, False, None), ('Importe','gobject.TYPE_STRING', False, True, False, None), ('Albarán','gobject.TYPE_STRING', False, True, False, None), ('Visto','gobject.TYPE_BOOLEAN', True, True, False, None), ('Motivo', 'gobject.TYPE_STRING', False, True, False, None), ('ID', 'gobject.TYPE_INT64', False, False, False, None)) utils.preparar_listview(self.wids['tv_facturas'], cols) if self.usuario != None: ventanas_con_permiso = [p.ventana.fichero for p in self.usuario.permisos if p.permiso] # and p.escritura] # STILL UNIMPLEMENTED else: ventanas_con_permiso = ["facturas_venta.py", ] # Si lo arranco # desde consola, que me deje editarlo todo. if 'facturas_venta.py' in ventanas_con_permiso: self.wids['b_editar'].set_sensitive(True) self.wids['tv_facturas'].connect("row-activated", self.abrir_factura_tv) else: self.wids['b_editar'].set_sensitive(False) self.wids['b_editar'].hide() cols = (('Nº Albarán', 'gobject.TYPE_STRING', False, True, True, None), ('Fecha', 'gobject.TYPE_STRING', False, True, False, None), ('Cliente', 'gobject.TYPE_STRING', False, True, False, None), ('¿Parcialmente facturado?', 'gobject.TYPE_BOOLEAN', False, True, False, None), ('Producto', 'gobject.TYPE_STRING', False, True, False, None), ('Cantidad', 'gobject.TYPE_STRING', False, True, False, None), ('Bultos', 'gobject.TYPE_STRING', False, True, False, None), ('ID', 'gobject.TYPE_INT64', False, False, False, None)) utils.preparar_treeview(self.wids['tv_albaranes'], cols) self.wids['tv_albaranes'].connect("row-activated", self.abrir_albaran_tv) self.rellenar_facturas() self.rellenar_albaranes_no_facturados() gtk.main()
def crear_fake_treeview(tvorig, filtro = lambda fila: fila[4] == "-" and fila or None): """ Crea un TreeView idéntico al recibido (model clonado, mismas columnas y cabeceras, etc.). «filtro» debe ser una función que devuelve la fila filtrada o None si no debe incluirse en el nuevo TreeView. """ 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))): cols.append((col.get_title(), "gobject.TYPE_STRING", # STRING se lo traga todo. Premio # especial del jurado de los AVN Awards 2015. 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_treeview(tv, cols) for col, align in zip(tv.get_columns(), aligns): col.get_cell_renderers()[0].set_property("xalign", align) model = tv.get_model() for padre in modelorig: producto = pclases.ProductoVenta.get(padre[-1]) try: ancho_estandar = producto.camposEspecificosRollo.ancho except AttributeError: ancho_estandar = 1 iterpadre = model.append(None, padre) total_metros = 0.0 for fila in modelorig[padre.iter].iterchildren(): _fila = filtro(fila) if _fila: model.append(iterpadre, fila) total_metros += utils.parse_float(fila[5]) model[iterpadre][5] = total_metros * ancho_estandar return tv
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-... """ self.activar_widgets(False) self.wids['b_actualizar'].set_sensitive(True) self.wids['b_guardar'].set_sensitive(False) self.wids['b_nuevo'].set_sensitive(True) self.wids['b_buscar'].set_sensitive(True) # Inicialización del resto de widgets: cols = [('Concepto', 'gobject.TYPE_STRING', True, True, True, self.cambiar_concepto)] if not self.mes_actual: mes = mx.DateTime.localtime().month else: mes = self.mes_actual self.fecha_mes_actual = mx.DateTime.DateFrom(mx.DateTime.today().year, mes, 1) self.fecha_mes_final = mx.DateTime.DateFrom( self.fecha_mes_actual.year + 1, self.fecha_mes_actual.month, 1) if pclases.DEBUG: print __file__, self.fecha_mes_actual, self.fecha_mes_final for m in range(12): mescol = ((mes - 1 + m) % 12) + 1 fechacol = mx.DateTime.DateTimeFrom(month = mescol, year = mx.DateTime.localtime().year + (m > 0 and 1 or 0)) if mescol == 1: strmes = fechacol.strftime("%B'%y") else: strmes = fechacol.strftime("%B") cols += [(strmes, 'gobject.TYPE_STRING', True, True, True, self.cambiar_importe, m)] cols += [('PUID', 'gobject.TYPE_STRING', False, False, False, None)] utils.preparar_treeview(self.wids['tv_datos'], cols) for n in range(1, 13): col = self.wids['tv_datos'].get_column(n) col.get_cell_renderers()[0].set_property("xalign", 1) col = self.wids['tv_datos'].get_column(0) col.set_expand(True) self.colorear(self.wids['tv_datos'])
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_vencimientos_cobro.glade', objeto, usuario = usuario) 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 = (('Factura','gobject.TYPE_STRING',False,True, False,None), ('Fecha vto.','gobject.TYPE_STRING',False,True,False,None), ('Importe','gobject.TYPE_STRING',False,False,False,None), ('Observaciones/Forma de cobro','gobject.TYPE_STRING',False,True, False,None), ('Cliente', 'gobject.TYPE_STRING', False, True, True, 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']) 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('button_press_event', self.button_clicked) self.wids['tv_datos'].set_hover_selection(True) cols = (('Año y mes','gobject.TYPE_STRING', False,True, True, None), ('Total','gobject.TYPE_STRING', False, True, False, None), ('nada','gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_totales'], cols) col = self.wids['tv_totales'].get_column(1) for cell in col.get_cell_renderers(): cell.set_property("xalign", 1) temp = time.localtime() self.fin = mx.DateTime.DateTimeFrom(day = temp[2], month = temp[1], year = temp[0]) self.wids['e_fechafin'].set_text(utils.str_fecha(temp)) self.inicio = mx.DateTime.DateTimeFrom(day = 1, month = mx.DateTime.localtime().month, year = mx.DateTime.localtime().year) self.wids['e_fechainicio'].set_text(utils.str_fecha(self.inicio)) gtk.main()
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.partidas_carga = {} Ventana.__init__(self, 'consumo_fibra_por_partida_gtx.glade', objeto, usuario = usuario) 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, 'e_fechainicio/focus-out-event': act_fecha, 'e_fechafin/focus-out-event': act_fecha, 'b_exportar/clicked': self.exportar} self.add_connections(connections) cols = (('Partida', 'gobject.TYPE_STRING', False, True, False, None), ('kg consumidos', 'gobject.TYPE_STRING', False, False, False, None), ('kg prod. (real)', 'gobject.TYPE_STRING', False, False, False, None), ('kg prod. (teórico)', 'gobject.TYPE_STRING', False,False,False,None), ('balas cons.', 'gobject.TYPE_STRING', False, False, False, None), ('rollos prod.', 'gobject.TYPE_STRING', False, False, False, None), ('m² producidos', 'gobject.TYPE_STRING', False, False, False, None), ('ID', 'gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_datos'], cols) for col in self.wids['tv_datos'].get_columns()[1:]: for cell in col.get_cell_renderers(): cell.set_property("xalign", 1.0) col.set_alignment(1.0) self.colorear(self.wids['tv_datos']) temp = time.localtime() self.wids['e_fechafin'].set_text(utils.str_fecha(temp)) self.wids['e_fechainicio'].set_text(utils.str_fecha( mx.DateTime.localtime() - (7 * mx.DateTime.oneDay))) self.inicio = utils.parse_fecha(self.wids['e_fechainicio'].get_text()) self.fin = utils.parse_fecha(self.wids['e_fechafin'].get_text()) self.wids['rb_pesoreal'].child.set_property("use-markup", True) self.wids['rb_teorico'].child.set_property("use-markup", True) self.wids['rb_pesosin'].child.set_property("use-markup", True) self.wids['rb_pesosin'].set_active(True) gtk.main()
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, os.path.join("ui", 'consulta_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) cols = (('Cliente', 'gobject.TYPE_STRING', False, True, True, None), ('Producto', 'gobject.TYPE_STRING', False, True, False, None), ('Media precio', 'gobject.TYPE_STRING', False, True, False, None), ('Facturación', 'gobject.TYPE_STRING', False, True, False, None), ('% facturación', 'gobject.TYPE_STRING', False, True, False, None), ('kg facturados', 'gobject.TYPE_STRING', False, True, False, None), ('id', 'gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_datos'], cols) for i in range(2, 6): col = self.wids['tv_datos'].get_column(i) for cell in col.get_cell_renderers(): cell.set_property("xalign", 1) col = self.wids['tv_datos'].get_column(1) self.wids['tv_datos'].set_expander_column(col) temp = mx.DateTime.localtime() self.fin = utils.abs_mxfecha(temp) self.wids['e_fechafin'].set_text(utils.str_fecha(temp)) ops = [] for s in pclases.SerieFacturasVenta.select(): ops.append((s.id, s.get_info())) utils.rellenar_lista(self.wids['cb_serie'], ops) gtk.main()
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_consumo.glade', objeto, usuario=usuario) 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, 'e_fechainicio/focus-out-event': act_fecha, 'e_fechafin/focus-out-event': act_fecha, "b_exportar/clicked": self.exportar} self.add_connections(connections) cols = (('Producto', 'gobject.TYPE_STRING', False, True, False, None), ('Cantidad consumida', 'gobject.TYPE_STRING', False, True, False, None), ('A', 'gobject.TYPE_STRING', False, True, False, None), ('B', 'gobject.TYPE_STRING', False, True, False, None), ('C', 'gobject.TYPE_STRING', False, True, False, None), ('Media diaria', 'gobject.TYPE_STRING', False, True, False, None), ('ID', 'gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_datos'], cols) for ncol in range(1, 4): self.wids['tv_datos'].get_column(ncol).get_cell_renderers()[0].set_property("xalign", 1) self.fin = mx.DateTime.today() self.wids['e_fechafin'].set_text(utils.str_fecha(self.fin)) self.wids['e_fechainicio'].set_text( utils.str_fecha(mx.DateTime.localtime() - (7 * mx.DateTime.oneDay))) self.inicio = utils.parse_fecha(self.wids['e_fechainicio'].get_text()) # self.wids['ch_fibra'].set_active(True) self.wids['ch_geotextiles'].set_active(True) gtk.main()
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-... """ self.wids['b_buscar'].set_sensitive(True) cols = (('Característica', 'gobject.TYPE_STRING', False, True, True, lambda *a, **kw: None), ('Valor medio', 'gobject.TYPE_STRING', False, True, False, lambda *a, **kw: None), ('Valor referencia', 'gobject.TYPE_STRING', False, True, False, lambda *a, **kw: None), ('Valor impresión', 'gobject.TYPE_STRING', False, True, False, lambda *a, **kw: None), ('ID', 'gobject.TYPE_STRING', False, False, False, None)) utils.preparar_treeview(self.wids['tv_datos'], cols) tv = self.wids['tv_datos'] tv.get_column(1).get_cell_renderers()[0].set_property('xalign', 1.0) tv.get_column(2).get_cell_renderers()[0].set_property('xalign', 1.0) tv.get_column(3).get_cell_renderers()[0].set_property('xalign', 1.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 = (('Factura', 'gobject.TYPE_STRING', False, True, True, None), ('Fecha', 'gobject.TYPE_STRING', False, True, False, None), ('Fecha vencimiento', 'gobject.TYPE_STRING', False, True, False, None), ('Importe', 'gobject.TYPE_FLOAT', False, True, False, None), ('Pagaré (fecha)', 'gobject.TYPE_STRING', False, True, False, None), ('Fecha vto. pagaré', 'gobject.TYPE_STRING', False, True, False, None), ('ID', 'gobject.TYPE_INT64', False, False, False, None)) utils.preparar_treeview(self.wids['tv_cobros'], cols) self.wids['tv_cobros'].connect("row-activated", self.abrir_cobro) self.colorear(self.wids['tv_cobros']) clientes = [(0, "Todos los clientes")] + [(c.id, c.nombre) for c in pclases.Cliente.select(orderBy="nombre")] utils.rellenar_lista(self.wids['cbe_cliente'], clientes) def iter_cliente_seleccionado(completion, model, itr): idcliente = model[itr][0] utils.combo_set_from_db(self.wids['cbe_cliente'], idcliente) self.wids['cbe_cliente'].child.get_completion().connect('match-selected', iter_cliente_seleccionado)
def __init__(self, objeto=None, usuario=None): self.usuario = usuario Ventana.__init__(self, "consulta_ventas_por_producto.glade", objeto, usuario=usuario) 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, "e_fechainicio/focus-out-event": act_fecha, "e_fechafin/focus-out-event": act_fecha, "b_map/clicked": self.exportar_a_html, } self.add_connections(connections) # TreeViews de fibra y cemento cols = [ ("Producto", "gobject.TYPE_STRING", False, True, True, None), ("kg A", "gobject.TYPE_STRING", False, True, False, None), ("# A", "gobject.TYPE_STRING", False, True, False, None), ("kg B", "gobject.TYPE_STRING", False, True, False, None), ("# B", "gobject.TYPE_STRING", False, True, False, None), ("kg C", "gobject.TYPE_STRING", False, True, False, None), ("# C", "gobject.TYPE_STRING", False, True, False, None), ("Total kg", "gobject.TYPE_STRING", False, True, False, None), ("Total #", "gobject.TYPE_STRING", False, True, False, None), ("PUID", "gobject.TYPE_STRING", False, False, False, None), ] for tv in (self.wids["tv_fibra"], self.wids["tv_cem"]): utils.preparar_treeview(tv, cols) tv.connect("row-activated", self.abrir_producto_albaran_o_abono) for n in range(1, 9): tv.get_column(n).get_cell_renderers()[0].set_property("xalign", 1) # TreeView de geotextiles cols.insert(1, ("m² A", "gobject.TYPE_STRING", False, True, False, None)) cols.insert(4, ("m² B", "gobject.TYPE_STRING", False, True, False, None)) cols.insert(7, ("m² C", "gobject.TYPE_STRING", False, True, False, None)) cols.insert(10, ("Total m²", "gobject.TYPE_STRING", False, True, False, None)) utils.preparar_treeview(self.wids["tv_gtx"], cols) self.wids["tv_gtx"].connect("row-activated", self.abrir_producto_albaran_o_abono) tv = self.wids["tv_gtx"] for n in range(1, 13): tv.get_column(n).get_cell_renderers()[0].set_property("xalign", 1) # TreeView de otros cols = [ ("Producto", "gobject.TYPE_STRING", False, True, True, None), ("Cantidad", "gobject.TYPE_STRING", False, True, False, None), ("PUID", "gobject.TYPE_STRING", False, False, False, None), ] utils.preparar_treeview(self.wids["tv_otros"], cols) self.wids["tv_otros"].connect("row-activated", self.abrir_producto_albaran_o_abono) tv = self.wids["tv_otros"] tv.get_column(1).get_cell_renderers()[0].set_property("xalign", 1) fin = mx.DateTime.localtime() inicio = mx.DateTime.localtime() - mx.DateTime.oneWeek self.wids["e_fechainicio"].set_text(utils.str_fecha(inicio)) self.wids["e_fechafin"].set_text(utils.str_fecha(fin)) gtk.main()
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. self.activar_widgets(False) self.wids['b_actualizar'].set_sensitive(False) self.wids['b_guardar'].set_sensitive(False) self.wids['b_nuevo'].set_sensitive(True) self.wids['b_buscar'].set_sensitive(True) # Inicialización del resto de widgets: cols = (('Módulo/Ventana', 'gobject.TYPE_STRING',False,True,True,None), ('Permiso', 'gobject.TYPE_BOOLEAN', True, True, False, self.cambiar_permiso), ('Lectura', 'gobject.TYPE_BOOLEAN', True, True, False, self.cambiar_lectura), ('Modificación', 'gobject.TYPE_BOOLEAN', True, True, False, self.cambiar_escritura), ('Nuevo', 'gobject.TYPE_BOOLEAN', True, True, False, self.cambiar_ejecucion), ('ID', 'gobject.TYPE_INT64', False, False, False, None) ) utils.preparar_treeview(self.wids['tv_permisos'], cols) cols = (('Fecha', 'gobject.TYPE_STRING', True, True, False, self.cambiar_fechahora), ('Mensaje', 'gobject.TYPE_STRING', True, True, True, self.cambiar_mensaje), ('Leído', 'gobject.TYPE_BOOLEAN', True, True, False, self.cambiar_leido), ('ID', 'gobject.TYPE_INT64', False, False, False, None) ) utils.preparar_listview(self.wids['tv_mensajes'], cols) self.wids['tv_mensajes'].get_selection().set_mode( gtk.SELECTION_MULTIPLE) self.preparar_tab_modulos()
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, 'listado_rollos_defectuosos.glade', objeto, usuario = usuario) connections = {'b_salir/clicked': self.salir, 'b_fecha_inicio/clicked': self.set_inicio, 'b_fecha_fin/clicked': self.set_fin, 'b_buscar/clicked': self.buscar_rollos, 'b_imprimir/clicked': self.imprimir, 'b_etiquetas/clicked': self.etiquetar, 'b_exportar/clicked': self.exportar } self.add_connections(connections) cols = (('Código rollo','gobject.TYPE_STRING',False,True,False,None), ('Fecha Fab.','gobject.TYPE_STRING',False,True,False,None), ('Fecha parte.','gobject.TYPE_STRING',False,True,False,None), ('Partida','gobject.TYPE_STRING',False,True,False,None), ('Albarán','gobject.TYPE_STRING',False,True,False,None), ('Metros l.', 'gobject.TYPE_STRING', False, True, False, None), ('Id','gobject.TYPE_INT64',False,False,False,None)) utils.preparar_treeview(self.wids['tv_rollos'], cols) self.wids['tv_rollos'].get_selection().set_mode(gtk.SELECTION_MULTIPLE) self.wids['tv_rollos'].connect("row-activated", self.mostrar_rollo) self.colorear(self.wids['tv_rollos']) self.wids['tv_rollos'].connect("cursor-changed", self.mostrar_hora_parte) # self.rellenar_tabla() temp = time.localtime() self.fin = mx.DateTime.localtime() self.inicio = None self.wids['e_fechafin'].set_text(utils.str_fecha(temp)) gtk.main()
def crear_treeview(self, tv): cols = (('Lote y materia prima consumida', 'gobject.TYPE_STRING', False, True, True, None), ('ID', 'gobject.TYPE_INT64', False, False, False, None)) utils.preparar_treeview(tv, cols)
def crear_treeview(self, tv): cols = ( ("Lote y materia prima consumida", "gobject.TYPE_STRING", False, True, True, None), ("ID", "gobject.TYPE_INT64", False, False, False, None), ) utils.preparar_treeview(tv, cols)