def cambiar_fin_actividad(self, cell, path, text): model = self.wids['tv_actividades'].get_model() puid = model[path][-1] p = pclases.getObjetoPUID(puid) try: p.fechahoraFin = utils.parse_fechahora(text) p.syncUpdate() except (TypeError, ValueError): utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "La fecha %s no es correcta." % text, padre = self.wids['ventana']) else: model[path][3] = utils.str_fechahora(p.fechahoraFin)
def edit_fechahora(cell, path, newtext, tv, numcol, clase, atributo): """ Cambia el texto del model[path][numcol] y del objeto relacionado que saca a partir del ID de la última columna del model. """ model = tv.get_model() id = model[path][-1] objeto = clase.get(id) try: fecha = utils.parse_fechahora(newtext) except (ValueError, TypeError): parent = tv.parent while parent != None: parent = parent.parent utils.dialogo_info(titulo = "ERROR EN FECHA Y HORA", texto = "El texto «%s» no es una fecha y hora válida." % (newtext), padre = parent) else: setattr(objeto, atributo, fecha) objeto.syncUpdate() model[path][numcol] = utils.str_fechahora(getattr(objeto, atributo))
def convertir_a_fechahora(valor, vdefecto = datetime.date.today()): from utils import parse_fechahora try: return parse_fechahora(valor) except: return vdefecto