예제 #1
0
 def nuevo(self, boton):
     VentanaGenerica.nuevo(self, boton)
     try:
         utils.ui.combo_set_from_db(self.wids['usuarioID'], self.usuario.id)
         self.objeto.usuario = self.usuario
     except AttributeError:
         utils.ui.combo_set_from_db(self.wids['usuarioID'], -1)
         self.objeto.usuario = None
     self.objeto.sync()
예제 #2
0
 def __init__(self, objeto = None, usuario = None, run = True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]        
     self.__clase = __clase = pclases.FacturaVenta
     self.usuario = usuario
     VentanaGenerica.__init__(self, objeto = objeto, 
                              usuario = self.usuario, 
                              clase = __clase, run = False, 
                              ventana_marco = 'facturas_venta.glade')
     connections = {}
     self.add_connections(connections)
     # Elementos que me interesa deshabilitar:
     for nombrecampo in ("tipoFacturaID", "serieNumericaID"):
         w = self.widgets_campos[nombrecampo]
         for c in w.parent.parent.parent.get_children():
             #c.set_sensitive(False)
             c.set_property("visible", False)
     # TreeViews adicionales:
     self.crear_treeviews()
     # Otros pequeños cambios:
     self.wids['label_relaciones'].set_text("Contenido de la factura")
     self.wids['obraID'].connect_after("changed", self.actualizar_retencion)
     self.wids['vencimientosCobro'].parent.parent.parent.reparent(
         self.wids['vbox_vtos_y_pagos'])
     self.wids['cobros'].parent.parent.parent.reparent(
         self.wids['vbox_vtos_y_pagos'])
     b_imprimir = gtk.Button(stock = gtk.STOCK_PRINT)
     self.wids['b_imprimir'] = b_imprimir
     b_imprimir.show()
     b_imprimir.connect("clicked", self.imprimir)
     self.wids['botonera'].pack_start(b_imprimir)
     self.wids['botonera'].reorder_child(b_imprimir, 0)
     self.wids['b_imprimir'].set_sensitive(self.objeto != None)
     # Siguiendo la estrategia de modificar la ventana DESPUÉS de haber 
     # montado todo lo genérico (en lugar de al revés, que sería lo suyo), 
     # quito el totalizador de líneas de venta, que no tiene sentido:
     self.wids['totalizador_lineasDeVenta'].set_property("visible", False)
     boton_recalcular = gtk.Button(label = "Recalcular")
     boton_recalcular.connect("clicked", self.calcular_totales)
     boton_recalcular.show()
     self.wids['botonera_vencimientosCobro'].pack_start(boton_recalcular, 
                                                        expand = True, 
                                                        fill = False)
     # Columna de subtotales:
     # TODO: Hay que hacer en utils.ui un método para añadir columnas 
     # a un TreeStore después de haberse creado. Mucho me temo que habrá 
     # crear un nuevo modelo y reasignarlo al TreeView. No hay métodos 
     # directos de gtk.* para añadir columnas "al vuelo".
     if run:
         gtk.main()
예제 #3
0
 def rellenar_widgets(self):
     # Experimentos con gaseosa:
     #for wname in ("e_fecha", "b_buscar_fecha"):
     #    self.wids[wname].set_property("visible", False)
     pixbuf_logo = gtk.gdk.pixbuf_new_from_file(
         os.path.join('imagenes', ConfigConexion().get_logo()))
     pixbuf_logo = escalar_a(100, 75, pixbuf_logo)
     self.wids['logo'].set_from_pixbuf(pixbuf_logo)
     VentanaGenerica.rellenar_widgets(self)
     self.rellenar_muestras_ensayos_informes()
     self.calcular_totales()
예제 #4
0
 def rellenar_widgets(self):
     # Experimentos con gaseosa:
     for wname in ("b_undo_fechaSolicitud", "b_save_fechaSolicitud"):
         # El de save ni siquiera tiene padre, y el de undo sale donde 
         # no debe.
         self.wids[wname].set_property("visible", False)
     pixbuf_logo = gtk.gdk.pixbuf_new_from_file(
         os.path.join('imagenes', ConfigConexion().get_logo()))
     pixbuf_logo = escalar_a(100, 75, pixbuf_logo)
     self.wids['logo'].set_from_pixbuf(pixbuf_logo)
     self.wids['e_id'].set_text(self.objeto and str(self.objeto.id) or "")
     VentanaGenerica.rellenar_widgets(self)
예제 #5
0
 def __init__(self, objeto = None, usuario = None, run = True):
     """
     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.__clase = pclases.NombreClase # self.__clase = pclases.<++>   
     self.usuario = usuario
     VentanaGenerica.__init__(self, objeto = objeto, 
                              usuario = self.usuario, 
                              clase = self.__clase, run = False, 
                              ventana_marco = '<++>.glade')
     connections = {}
     self.add_connections(connections)
     if run:
         gtk.main()
예제 #6
0
파일: usuarios.py 프로젝트: pacoqueen/cican
 def __init__(self, objeto=None, usuario=None, run=True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]
     __clase = pclases.Usuario
     self.usuario = usuario
     VentanaGenerica.__init__(
         self, objeto=objeto, usuario=self.usuario, clase=__clase, run=False, ventana_marco="usuarios.glade"
     )
     connections = {  #'b_salir/clicked': self.salir,
         #'b_actualizar/clicked': self.actualizar_ventana,
         #'b_guardar/clicked': self.guardar,
         "b_nuevo/clicked": self.crear_nuevo_usuario,
         #'b_borrar/clicked': self.borrar_usuario,
         #'b_buscar/clicked': self.buscar_usuario,
         "b_enviar/clicked": self.enviar_mensaje,
         "b_passw/clicked": self.nueva_contrasenna,
         "b_drop/clicked": self.borrar_mensaje,
         "b_modulo_clean/clicked": self.limpiar_modulo,
         "b_ventana_clean/clicked": self.limpiar_ventana,
         "b_add_vm/clicked": self.add_ventana_a_modulo,
         "b_add_modulo/clicked": self.add_modulo,
         "b_drop_modulo/clicked": self.drop_modulo,
         "b_add_ventana/clicked": self.add_ventana,
         "b_drop_ventana/clicked": self.drop_ventana,
     }
     self.add_connections(connections)
     # Todo esto se delega ahora en el constructor de VentanaGenerica
     # self.inicializar_ventana()
     # if self.objeto == None:
     #    self.ir_a_primero()
     # else:
     #    self.ir_a(objeto)
     # self.wids['ventana'].maximize()
     self.wids["ventana"].resize(800, 600)
     self.rellenar_tab_modulos()  # Esto siempre debe hacerse al menos
     # 1 vez aunque no haya usuarios.
     if run:
         gtk.main()
예제 #7
0
파일: clientes.py 프로젝트: pacoqueen/cican
 def __init__(self, objeto = None, usuario = None, run = True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]        
     self.__clase = pclases.Cliente
     self._objetoreciencreado = None
     if objeto and isinstance(objeto, self.__clase):
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  run = False, 
                                  ventana_marco = "clientes.glade")
     elif objeto:
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  clase = self.__clase, run = False,
                                  ventana_marco = "clientes.glade")
     else:
         VentanaGenerica.__init__(self, clase = self.__clase, 
                                  usuario = usuario, run = False,
                                  ventana_marco = "clientes.glade")
     b_facturar = gtk.Button(label = "Facturar\npendiente")
     self.wids['b_facturar'] = b_facturar
     b_facturar.connect("clicked", self.facturar_pendiente)
     self.wids['botonera'].pack_start(b_facturar)
     b_facturar.show()
     if run:
         gtk.main()
예제 #8
0
 def __init__(self, objeto = None, usuario = None, run = True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]
     if pclases.DEBUG: 
         print "objeto", objeto
         print "usuario", usuario
         print "run", run
     self._objetoreciencreado = None
     if objeto and isinstance(objeto, pclases.Resultado):
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  run = False)
     elif objeto:
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  clase = pclases.Resultado, run = False)
     else:
         VentanaGenerica.__init__(self, clase = pclases.Resultado, 
                                  usuario = usuario, run = False)
     self._add_widget_grafico()
     add_boton_adjuntos(self.wids['botonera'], lambda: self.objeto)
     # Elementos que me interesa deshabilitar:
     self.wids['botonera_adjuntos'].set_property("visible", False)
     # Otros pequeños cambios:
     self.wids['label_relaciones'].set_text("Informes")
     if run:
         gtk.main()
예제 #9
0
 def __init__(self, objeto = None, usuario = None, run = True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]        
     self.__clase = pclases.Direccion
     self._objetoreciencreado = None
     self.mapa = Mapa()
     if objeto and isinstance(objeto, self.__clase):
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  run = False, 
                                  ventana_marco = "direccion.glade")
     elif objeto:
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  clase = self.__clase, run = False,
                                  ventana_marco = "direccion.glade")
     else:
         VentanaGenerica.__init__(self, clase = self.__clase, 
                                  usuario = usuario, run = False,
                                  ventana_marco = "direccion.glade")
     self.put_mapa()
     # Si elijo un código postal, quiero que la ciudad se rellene sola:
     self.wids['codigoPostalID'].connect("changed", self.rellenar_ciudad)
     self.wids['codigoPostalID'].connect("focus-out-event", 
                                         self.rellenar_ciudad)
     self.wids['b_nuevo_cp'].connect("clicked", self.nuevo_cp)
     if run:
         gtk.main()
예제 #10
0
 def __init__(self, objeto = None, usuario = None, run = True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]
     __clase = pclases.Peticion
     VentanaGenerica.__init__(self, objeto = objeto, 
                              usuario = usuario, 
                              clase = __clase, run = False, 
                              ventana_marco = 'peticiones.glade')
     connections = {}
     self.add_connections(connections)
     # Quito totales de ensayos:
     self.usuario = self.get_usuario()
     self.wids['totalizador_ensayos'].set_property("visible", False)
     # Y añado el botón de traer oferta
     barra = self.wids['totalizador_ensayos'].parent
     self.wids['b_traer_oferta'] = gtk.Button("Rescatar oferta")
     b_traer_oferta = self.wids['b_traer_oferta']
     barra.pack_start(b_traer_oferta)
     b_traer_oferta.connect("clicked", self.traer_oferta)
     b_traer_oferta.show()
     if not self.usuario or self.usuario.nivel == 0:
         self.wids['usuarioID'].set_property("sensitive", True)
     else:
         self.wids['usuarioID'].set_property("sensitive", False)
     self.wids['e_fechaSolicitud'].connect("focus-out-event", 
         actualizar_fecha, None, self, 
         "fechaSolicitud")
     self.wids['b_buscar_fechaSolicitud'].connect("clicked", 
         lambda boton: self.wids['e_fechaSolicitud'].set_text(
             utils.fecha.str_fecha(
                 utils.ui.mostrar_calendario(
                     self.wids['e_fechaSolicitud'].get_text())
         )))
     if run:
         gtk.main()
예제 #11
0
파일: skel.py 프로젝트: pacoqueen/cican
 def __init__(self, objeto = None, usuario = None, run = True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]
     self.__clase = pclases.NombreClase # self.__clase = pclases.<++>
     self._objetoreciencreado = None
     if objeto and isinstance(objeto, self.__clase):
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  run = False)
     elif objeto:
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  clase = self.__clase, run = False)
     else:
         VentanaGenerica.__init__(self, clase = self.__clase, 
                                  usuario = usuario, run = False)
     if run:
         gtk.main()
예제 #12
0
파일: informes.py 프로젝트: pacoqueen/cican
 def __init__(self, objeto=None, usuario=None, run=True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]
     if pclases.DEBUG:
         print "objeto", objeto
         print "usuario", usuario
         print "run", run
     self._objetoreciencreado = None
     if objeto and isinstance(objeto, pclases.Informe):
         VentanaGenerica.__init__(self, objeto=objeto, usuario=usuario, run=False)
     elif objeto:
         VentanaGenerica.__init__(self, objeto=objeto, usuario=usuario, clase=pclases.Informe, run=False)
     else:
         VentanaGenerica.__init__(self, clase=pclases.Informe, usuario=usuario, run=False)
     add_boton_adjuntos(self.wids["botonera"], lambda: self.objeto)
     # Elementos que me interesa deshabilitar:
     for nombrecampo in ("lineaDeVentaID",):
         w = self.widgets_campos[nombrecampo]
         for c in w.parent.parent.parent.get_children():
             c.set_property("visible", False)
     self.wids["totalizador_resultados"].set_property("visible", False)
     self.wids["container_adjuntos"].set_property("visible", False)
     # Widgets no editables de campos calculados:
     try:
         self.add_campo_calculado(
             "get_str_muestras", etiqueta="Códigos de muestra", nombre="muestras", campo="codigo"
         )
     except AttributeError:  # No hay objeto todavía. Tabla vacía. Es None.
         print "WARNING: informes.py: El objeto es None. No se mostrarán" " campos calculados."
         pass
     if run:
         gtk.main()
예제 #13
0
 def __init__(self, objeto = None, usuario = None, run = True):
     """
     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.nombre_fichero_ventana = os.path.split(__file__)[-1]
     self._objetoreciencreado = None
     self.__clase = pclases.Empleado
     meta = self.__clase.sqlmeta
     campos = meta.columns.keys() + [j.joinMethodName for j in meta.joins]
     campos_menos_foto = campos
     campos.remove("fotos")
     campos.remove("adjuntos")   # Adjuntos lleva su propio botón.
     if objeto and isinstance(objeto, self.__clase):
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  run = False, campos = campos_menos_foto,
                                  ventana_marco = "laborantes.glade")
     elif objeto:
         VentanaGenerica.__init__(self, objeto = objeto, usuario = usuario, 
                                  clase = self.__clase, run = False, 
                                  campos = campos_menos_foto,
                                  ventana_marco = "laborantes.glade")
     else:
         VentanaGenerica.__init__(self, clase = self.__clase, 
                                  usuario = usuario, run = False, 
                                  campos = campos_menos_foto,
                                  ventana_marco = "laborantes.glade")
     add_boton_adjuntos(self.wids['botonera'], lambda: self.objeto, 
                        posicion = 5)
     bfoto, ifoto = add_boton_fotos(self.wids['hbox_foto'], 
                                    lambda *a, **kw: self.objeto, 
                                    posicion = 0)
     self.wids['b_fotos'], self.wids['i_foto'] = bfoto, ifoto
     if run:
         gtk.main()
예제 #14
0
 def rellenar_widgets(self):
     invtble = self.wids['inventariable'].get_active()
     self.wids['container_existencias'].set_property("visible", invtble) 
     VentanaGenerica.rellenar_widgets(self)
예제 #15
0
 def actualizar_ventana(self, *args, **kw):
     VentanaGenerica.actualizar_ventana(self, *args, **kw)
     self.actualizar_mapa()