class Usuario_s(wx.PyValidator): mdlUsuarios = ModeloUsuarios() def __init__(self): wx.PyValidator.__init__(self) def Clone(self): return Usuario_s() def Validate(self, win): tctrl = self.GetWindow() texto = tctrl.GetValue() self.mdlUsuarios.usuario = texto if len(texto) == 0: tctrl.SetBackgroundColour("pink") tctrl.SetFocus() tctrl.Refresh() return False elif self.mdlUsuarios.existUser() != 1: tctrl.SetBackgroundColour("pink") tctrl.SetFocus() tctrl.Refresh() return False else: tctrl.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)) tctrl.Refresh() return True def TransferToWindow(self): return True def TransferFromWindow(self): return True
class ControladorEliminarUsuario: mdlTUsu = ModeloTiposUsuario() mdlUsuarios = ModeloUsuarios() def __init__(self, parent, seleccionado): self.parent = parent self.seleccionado = seleccionado def run(self): self.frame = FrameEliminarUsuario(self.parent) self.frame.btn_cancelar.SetFocus() self.cargarDatos() resp = self.frame.ShowModal() if resp == wx.ID_OK: self.Eliminar() def cargarDatos(self): self.mdlUsuarios.usuario = self.seleccionado usu = self.mdlUsuarios.read() self.frame.tc_usuario.SetValue(usu['usuario']) self.frame.tc_clave.SetValue(usu['clave']) self.frame.tc_tipo.SetValue(usu['tipo']) self.mdlTUsu.tipo = self.frame.tc_tipo.GetValue() datos = self.mdlTUsu.read() self.frame.tc_descripcion.SetValue(datos['descripcion']) def Eliminar(self): self.mdlUsuarios.delete()
class ControladorModificarUsuario: mdlTUsu = ModeloTiposUsuario() mdlUsuarios = ModeloUsuarios() def __init__(self, parent, seleccionado): self.parent = parent self.seleccionado = seleccionado def run(self): self.frame = FrameModificarUsuario(self.parent) self.frame.btn_cancelar.SetFocus() self.capturarEventos() self.cargarValidadores() self.cargarDatos() self.cargarDescripcion() resp = self.frame.ShowModal() if resp == wx.ID_OK: self.Modificar() def capturarEventos(self): self.frame.ch_tipo.Bind(wx.EVT_CHOICE, self.cargarDescripcion) def cargarValidadores(self): self.frame.tc_clave.SetValidator(NuevoUsuarioClave()) self.frame.ch_tipo.SetValidator(NuevoUsuarioTipo()) def cargarDatos(self): self.mdlUsuarios.usuario = self.seleccionado usu = self.mdlUsuarios.read() self.frame.tc_usuario.SetValue(usu['usuario']) self.frame.tc_clave.SetValue(usu['clave']) self.frame.ch_tipo.SetStringSelection(usu['tipo']) ''' Evento de choice. ''' def cargarDescripcion(self, event=None): if self.frame.ch_tipo.GetStringSelection() != '--Seleccionar--': self.mdlTUsu.tipo = self.frame.ch_tipo.GetStringSelection() datos = self.mdlTUsu.read() self.frame.tc_descripcion.SetValue(datos['descripcion']) else: self.frame.tc_descripcion.SetValue("") def Modificar(self): self.mdlUsuarios.usuario = self.frame.tc_usuario.GetValue() self.mdlUsuarios.clave = self.frame.tc_clave.GetValue() self.mdlUsuarios.tipo = self.frame.ch_tipo.GetStringSelection() self.mdlUsuarios.update()
class Clave_s(wx.PyValidator): mdlUsuarios = ModeloUsuarios() def __init__(self): wx.PyValidator.__init__(self) def Clone(self): return Clave_s() def Validate(self, win): tctrl = self.GetWindow() texto = tctrl.GetValue() self.mdlUsuarios.usuario = win.tc_usuario.GetValue() self.mdlUsuarios.clave = texto if len(texto) == 0: tctrl.SetBackgroundColour("pink") tctrl.SetFocus() tctrl.Refresh() return False elif self.mdlUsuarios.existUserKey() != 1: tctrl.SetBackgroundColour("pink") tctrl.SetFocus() tctrl.Refresh() return False elif self.mdlUsuarios.typeUser() != 'Administrador': wx.MessageBox( u"El usuario ingresado no posee los permisos para acceder a esta aplicaciĆ³n", "Tipo de usuario inadecuado") tctrl.Refresh() return False else: tctrl.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)) tctrl.Refresh() return True def TransferToWindow(self): return True def TransferFromWindow(self): return True
class ControladorVerUsuario: mdlTUsu = ModeloTiposUsuario() mdlUsuarios = ModeloUsuarios() def __init__(self, parent, seleccionado): self.parent = parent self.seleccionado = seleccionado def run(self): self.frame = FrameVerUsuario(self.parent) self.frame.btn_visto.SetFocus() self.cargarDatos() self.frame.ShowModal() def cargarDatos(self): self.mdlUsuarios.usuario = self.seleccionado usu = self.mdlUsuarios.read() self.frame.tc_usuario.SetValue(usu['usuario']) self.frame.tc_clave.SetValue(usu['clave']) self.frame.tc_tipo.SetValue(usu['tipo']) self.mdlTUsu.tipo = self.frame.tc_tipo.GetValue() datos = self.mdlTUsu.read() self.frame.tc_descripcion.SetValue(datos['descripcion'])
class ControladorAgregarUsuario: mdlTUsu = ModeloTiposUsuario() mdlUsuarios = ModeloUsuarios() def __init__(self, parent): self.parent = parent def run(self): self.frame = FrameAgregarUsuario(self.parent) self.capturarEventos() self.cargarValidadores() resp = self.frame.ShowModal() if resp == wx.ID_OK: self.Agregar() def capturarEventos(self): self.frame.ch_tipo.Bind(wx.EVT_CHOICE, self.cargarDescripcion) def cargarValidadores(self): self.frame.tc_usuario.SetValidator(NuevoUsuario()) self.frame.tc_clave.SetValidator(NuevoUsuarioClave()) self.frame.ch_tipo.SetValidator(NuevoUsuarioTipo()) ''' Evento de choice. ''' def cargarDescripcion(self, event): if self.frame.ch_tipo.GetStringSelection() != '--Seleccionar--': self.mdlTUsu.tipo = self.frame.ch_tipo.GetStringSelection() datos = self.mdlTUsu.read() self.frame.tc_descripcion.SetValue(datos['descripcion']) else: self.frame.tc_descripcion.SetValue("") def Agregar(self): self.mdlUsuarios.usuario = self.frame.tc_usuario.GetValue() self.mdlUsuarios.clave = self.frame.tc_clave.GetValue() self.mdlUsuarios.tipo = self.frame.ch_tipo.GetStringSelection() self.mdlUsuarios.create()
class ControladorLogin: mdlUsuarios = ModeloUsuarios() def __init__(self): pass def run(self): self.frame = FrameLogin(None) loc = wx.IconLocation(r'icono.ico') self.frame.SetIcon(wx.IconFromLocation(loc)) self.capturarEventos() self.frame.ShowModal() def capturarEventos(self): self.frame.btn_aceptar.Bind(wx.EVT_BUTTON, self.Validaciones) self.frame.tc_usuario.Bind(wx.EVT_TEXT_ENTER, self.ValidarUsuario) self.frame.tc_clave.Bind(wx.EVT_TEXT_ENTER, self.ValidarClave) def ValidarUsuario(self, event): if self.frame.tc_usuario.GetValue() != "": self.mdlUsuarios.usuario = self.frame.tc_usuario.GetValue() if self.mdlUsuarios.existUser() == 1: self.frame.tc_usuario.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)) self.frame.tc_usuario.Refresh() self.frame.tc_clave.SetFocus() else: self.frame.tc_usuario.SetBackgroundColour("pink") self.frame.tc_usuario.SetFocus() self.frame.tc_usuario.Refresh() else: self.frame.tc_usuario.SetBackgroundColour("pink") self.frame.tc_usuario.SetFocus() self.frame.tc_usuario.Refresh() event.Skip() def ValidarClave(self, event=None): if self.frame.tc_usuario.GetValue() != "": self.mdlUsuarios.usuario = self.frame.tc_usuario.GetValue() if self.mdlUsuarios.existUser() == 1: if self.frame.tc_clave.GetValue() != "": self.mdlUsuarios.clave = self.frame.tc_clave.GetValue() if self.mdlUsuarios.existUserKey() == 1: self.Continuar() else: self.frame.tc_clave.SetBackgroundColour("pink") self.frame.tc_clave.Refresh() self.frame.tc_usuario.SetBackgroundColour("pink") self.frame.tc_usuario.SetFocus() self.frame.tc_usuario.Refresh() else: self.frame.tc_clave.SetBackgroundColour("pink") self.frame.tc_usuario.SetFocus() self.frame.tc_clave.Refresh() else: self.frame.tc_usuario.SetBackgroundColour("pink") self.frame.tc_usuario.SetFocus() self.frame.tc_usuario.Refresh() else: self.frame.tc_usuario.SetBackgroundColour("pink") self.frame.tc_usuario.SetFocus() self.frame.tc_usuario.Refresh() if event != None: event.Skip() def Validaciones(self, event): self.ValidarClave() def Continuar(self): principal = ControladorPrincipal( usuario=self.frame.tc_usuario.GetValue()) principal.run() self.frame.Destroy()
class ControladorUsuarios: mdlUsu = ModeloUsuarios() def __init__(self, parent): self.parent = parent self.listadoUsuarios = self.mdlUsu.read_all() def run(self): self.frame = FrameUsuarios(self.parent) loc = wx.IconLocation(r'icono.ico') self.frame.SetIcon(wx.IconFromLocation(loc)) self.capturarEventos() self.cargarGrilla(self.listadoUsuarios) self.deshabilitarBTNS() self.frame.Show() def capturarEventos(self): self.frame.btn_buscar.Bind(wx.EVT_BUTTON, self.Buscar) self.frame.btn_agregar.Bind(wx.EVT_BUTTON, self.Agregar) self.frame.btn_modificar.Bind(wx.EVT_BUTTON, self.Modificar) self.frame.btn_ver.Bind(wx.EVT_BUTTON, self.Ver) self.frame.btn_eliminar.Bind(wx.EVT_BUTTON, self.Eliminar) self.frame.btn_volver.Bind(wx.EVT_BUTTON, self.Volver) self.frame.grilla.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.f_seleccion_fila) self.frame.grilla.Bind(wx.grid.EVT_GRID_CELL_LEFT_DCLICK, self.Ver) def configurar_grilla(self, tam): self.frame.grilla.SetSelectionMode(wx.grid.Grid.SelectRows) self.frame.grilla.AppendRows(tam) presentador = wx.grid.GridCellAutoWrapStringRenderer for i in range(tam): self.frame.grilla.SetRowSize(i, 25) self.frame.grilla.SetCellRenderer(i, 1, presentador()) def cargarGrilla(self, listado): self.configurar_grilla(len(listado)) for i in range(len(listado)): self.frame.grilla.SetCellValue(i, 0, listado[i]['usuario']) self.frame.grilla.SetCellValue(i, 1, listado[i]['tipo']) def limpiar_grilla(self): for i in range(self.frame.grilla.GetNumberRows()): self.frame.grilla.DeleteRows(0, 1) def refrescar_grilla(self): self.limpiar_grilla() self.cargarGrilla(self.listadoUsuarios) '''Eventos de botones''' def Buscar(self, event = None): if self.frame.tc_usuario.GetValue() != "": self.mdlUsu.usuario = self.frame.tc_usuario.GetValue() self.listadoUsuarios = self.mdlUsu.read_all_for_name() self.refrescar_grilla() else: self.listadoUsuarios = self.mdlUsu.read_all() self.refrescar_grilla() self.deshabilitarBTNS() def Agregar(self, event): addUser = ControladorAgregarUsuario(self.frame) addUser.run() self.listadoUsuarios = self.mdlUsu.read_all() self.refrescar_grilla() self.deshabilitarBTNS() def Modificar(self, event): updUser = ControladorModificarUsuario(self.frame, self.Seleccionado) updUser.run() self.listadoUsuarios = self.mdlUsu.read_all() self.refrescar_grilla() self.deshabilitarBTNS() def Ver(self, event): verUser = ControladorVerUsuario(self.frame, self.Seleccionado) verUser.run() def Eliminar(self, event): elimUser = ControladorEliminarUsuario(self.frame, self.Seleccionado) elimUser.run() self.listadoUsuarios = self.mdlUsu.read_all() self.refrescar_grilla() self.deshabilitarBTNS() def Volver(self, event): self.frame.Destroy() '''Eventos de grilla''' def f_seleccion_fila(self, event): fila = event.GetRow() try: self.Seleccionado = self.frame.grilla.GetCellValue(fila, 0) self.habilitarBTNS() except: pass event.Skip() def deshabilitarBTNS(self): self.frame.btn_modificar.Enable(False) self.frame.btn_ver.Enable(False) self.frame.btn_eliminar.Enable(False) def habilitarBTNS(self): self.frame.btn_modificar.Enable(True) self.frame.btn_ver.Enable(True) self.frame.btn_eliminar.Enable(True) '''Eventos de ventana'''