def __init__(self, padre): self.padre = padre arch = leerglade.leer('nav_establecimientos.glade') self.nav = arch.get_object self.nav('window1').set_title('Registro de establecimientos') self.nav('window1').set_default_size(800, 600) self.nav('window1').set_position(1) self.nav('bt_nuevo').set_label('Nuevo') self.nav('bt_editar').set_label('Editar') self.nav('bt_eliminar').set_label('Eliminar') self.nav('bt_cerrar').set_label('Cerrar') self.entity = Establecimientos() self.empresas = Empresas() self.nav('window1').set_transient_for(self.padre.main('window1')) self.nav('window1').set_modal(True) self.nav('window1').set_border_width(5) self.nav('window1').show_all() arch.connect_signals(self) self.consultar()
class RegEstablecimientos: def __init__(self, padre): self.padre = padre arch = leerglade.leer('nav_establecimientos.glade') self.nav = arch.get_object self.nav('window1').set_title('Registro de establecimientos') self.nav('window1').set_default_size(800, 600) self.nav('window1').set_position(1) self.nav('bt_nuevo').set_label('Nuevo') self.nav('bt_editar').set_label('Editar') self.nav('bt_eliminar').set_label('Eliminar') self.nav('bt_cerrar').set_label('Cerrar') self.entity = Establecimientos() self.empresas = Empresas() self.nav('window1').set_transient_for(self.padre.main('window1')) self.nav('window1').set_modal(True) self.nav('window1').set_border_width(5) self.nav('window1').show_all() arch.connect_signals(self) self.consultar() def consultar(self, widget=None): self.nav('liststore1').clear() color = False for row in self.entity.est_all(): if not color: t_color = "#FFFFDA" color = True else: t_color = "#A9FFA9" color = False self.nav('liststore1').append([str(row[0]), row[1], row[2], row[3], t_color]) if len(self.nav('liststore1')) == 0: self.nav('bt_editar').set_sensitive(False) self.nav('bt_eliminar').set_sensitive(False) self.nav('label1').set_text(' 0 Registros Encontrados') else: self.nav('bt_editar').set_sensitive(True) self.nav('bt_eliminar').set_sensitive(True) self.nav('label1').set_text(' %s Registros Encontrados' % len(self.nav('liststore1'))) self.nav('entry1').set_text(self.nav('entry1').get_text().upper()) def bt_nuevo_cb(self, widget): self.formulario() self.frm('entry1').set_text(str(self.entity.get_max())) self.frm('entry1').grab_focus() def bt_editar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo para la edición") return datos = self.entity.find(idestablecimiento=pk) self.formulario() self.frm('entry1').set_text(str(self.entity.idestablecimiento)) self.frm('entry2').set_text(self.entity.direccion) self.frm('entry3').set_text(self.entity.telefono) self.set_active_combo(self.entity.idempresa) def bt_eliminar_cb(self, widget): sl, it = self.nav('treeview1').get_selection().get_selected() try: pk = sl.get_value(it, 0) except: msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo") return res = msg.preguntaMsgBox(self.nav('window1'), "Eliminar Registro", "Estas Seguro?") if res == -8: kwargs = { self.entity.__pks__[0]: pk } datos = self.entity.find(**kwargs) if self.entity.delete(): self.consultar() def bt_cerrar_cb(self, widget): self.nav('window1').destroy() def formulario(self): arch = leerglade.leer('frm_establecimientos.glade') self.frm = arch.get_object self.frm('window1').set_default_size(500, -1) self.frm('window1').set_transient_for(self.nav('window1')) self.frm('window1').set_position(1) self.frm('window1').set_modal(True) self.frm('window1').set_border_width(5) self.frm('window1').set_title('Formulario de Establecimientos') self.frm('window1').show_all() arch.connect_signals(self) self.validar_entrys(None) self.cargar_combos() def validar_entrys(self, widget=None): if len(self.frm('entry1').get_text()) == 0 \ or len(self.frm('entry2').get_text()) == 0\ or len(self.frm('entry3').get_text()) == 0: self.frm('button2').set_sensitive(False) else: self.frm('button2').set_sensitive(True) if widget is not None: #convierte todos los valores de los campos en mayusculas widget.set_text(widget.get_text().upper()) def guardar_cb(self, widget): it = self.frm('combobox1').get_active() self.entity.idestablecimiento = self.frm('entry1').get_text() self.entity.direccion = self.frm('entry2').get_text() self.entity.telefono = self.frm('entry3').get_text() self.entity.idempresa = self.frm('liststore1')[it][0].split('-')[0] if self.entity.save(): self.frm('window1').destroy() self.consultar() def cancelar_cb(self, widget): self.frm('window1').destroy() def cargar_combos(self): for row in self.empresas.all(order_by=1, razon_social__ilike="%%"): self.frm('liststore1').append([str(row[0])+'-'+row[1]]) self.frm('combobox1').set_active(0) def set_active_combo(self, pk): it = 0 for row in self.frm('liststore1'): if row[0].split('-')[0] == str(pk): self.frm('combobox1').set_active(it) break it += 1 def set_focus(self, widget): widget.get_toplevel().child_focus(Gtk.DirectionType.TAB_FORWARD)