from WebKit.Page import Page from Cheetah.Template import Template from kancerbero import DBAUsuario, DBAUbicacionGeo, DBAColonia, Colonia, DBACuadrante import re ValidarError = 'ValidarError' class Colonias(Page): def title(self): return 'Kancerbero Vinttro - Control Web Panel - by Edwin Plauchu' def htBodyArgs(self): return 'onload="javascript:Siguiente()"' def actions(self): return Page.actions(self) + [ "agregar" , "editar" , "eliminar" ] def validar(self): req = self.request() if not req.field('colonia') or not req.field('codigo_postal'): raise ValidarError, "Todos los campos a llenar son obligatorios." #Valida el campo colonia if not re.match ('[A-Za-z0-9]',req.field('colonia')): raise ValidarError, "La colonia no puede contener simbolos de puntuacion" if not req.field('codigo_postal').isdigit(): raise ValidarError, "Caracter invalido en el campo Codigo Postal." acceso_a_datos = DBAColonia() lista_colonias = acceso_a_datos.GetListWithColoniasData(req.field('id_municipio')) for tmp in lista_colonias: if req.field('colonia') is tmp: raise ValidarError, "La colonia que ingreso, ya existe!" def agregar(self): data_fields = self.request().field try: self.validar() colonia = Colonia(data_fields('colonia'),data_fields('codigo_postal'),data_fields('id_cuadrante'),data_fields('id_municipio')) acceso_a_datos = DBAColonia() if not acceso_a_datos.SalvarColoniaEnDBMS(colonia): raise SalvarColoniaError, "Error al salvar colonia en DBMS" string_msg = "La nueva colonia fue ingresada con exito" self.writeContent() except ValidarError, e: self.writeContent(e) def editar(self): data_fields = self.request().field try: self.validar() colonia = Colonia(data_fields('colonia'),data_fields('codigo_postal'),data_fields('id_cuadrante'),data_fields('id_municipio')) colonia.SetID(data_fields('id_colonia')) acceso_a_datos = DBAColonia() if not acceso_a_datos.EditarColoniaEnDBMS(colonia): raise SalvarColoniaError, "Error al editar colonia en DBMS" string_msg = "La colonia fue editada con exito" self.writeContent() except ValidarError, e: self.writeContent() def writeContent(self,error=""): trans = self.transaction() sesion = self.session() if sesion.hasValue('loginid'): acceso_a_datos = DBAUsuario() acceso_a_datos_dos = DBAUbicacionGeo() row = acceso_a_datos_dos.GetUbicacionGeografica() usuario_logeado = acceso_a_datos.GetUserByLoginFromDBMS( sesion.value('loginid') ) id_municipio = acceso_a_datos_dos.GetIdMunicipioFromUbicacionGeografica(acceso_a_datos_dos.GetUbicacionGeografica()) nameSpace = {'error':error,'usuario_logeado' : usuario_logeado, 'id_municipio' : id_municipio, 'estado' : row['ESTADO'], 'municipio' : row['MUNICIPIO']} t = Template( file = "MyContext/view/Colonias.txt", searchList = [nameSpace]) self.writeln(t.respond()) else: trans.application().fordward(trans, '/Main')