def __init__(self, padre): self.padre = padre arch = leerglade.leer('nav_usuarios.glade') self.nav = arch.get_object self.nav('window1').set_title('Registro de Usuarios') 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 = Usuarios() 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 RegUsuarios: def __init__(self, padre): self.padre = padre arch = leerglade.leer('nav_usuarios.glade') self.nav = arch.get_object self.nav('window1').set_title('Registro de Usuarios') 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 = Usuarios() 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.all(order_by=1, nombres_apellidos__ilike='%' + self.nav('entry1').get_text() + '%'): 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], '***************', 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(idusuario=pk) self.formulario() self.frm('entry1').set_text(str(self.entity.idusuario)) self.frm('entry2').set_text(self.entity.nombres_apellidos) self.frm('entry3').set_text(self.entity.alias) self.frm('entry4').set_text(self.entity.clave) 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_usuarios.glade') self.frm = arch.get_object self.frm('window1').set_default_size(400, -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 Usuarios') self.frm('window1').show_all() arch.connect_signals(self) self.validar_entrys(None) 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\ or len(self.frm('entry4').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): self.entity.idusuario = self.frm('entry1').get_text() self.entity.nombres_apellidos = self.frm('entry2').get_text() self.entity.alias = self.frm('entry3').get_text() self.entity.clave = self.frm('entry4').get_text() if self.entity.save(): self.frm('window1').destroy() self.consultar() def cancelar_cb(self, widget): self.frm('window1').destroy() def set_focus(self, widget): widget.get_toplevel().child_focus(Gtk.DirectionType.TAB_FORWARD)