Example #1
0
def convertir_a_hora(valor, vdefecto=mx.DateTime.localtime()):
    from formularios.utils import parse_hora

    try:
        return parse_hora(valor)
    except:
        return vdefecto
Example #2
0
 def cambiar_hora(self, cell, path, newtext):
     """
     Cambia la hora de visita y acutaliza el cell. Solo se permite
     cambiarla si el usuario tiene nivel suficiente.
     """
     model = self.wids['tv_visitas'].get_model()
     ide = model[path][-1]
     visita = pclases.getObjetoPUID(ide)
     if not visita.enviada or (self.usuario
                               and self.usuario.nivel <= NIVEL_SUPERVISOR):
         try:
             dtdelta = utils.parse_hora(newtext)
             visita.fechahora = mx.DateTime.DateTimeFrom(
                     year = visita.fechahora.year,
                     month = visita.fechahora.month,
                     day = visita.fechahora.day,
                     hour = dtdelta.hour,
                     minute = dtdelta.minute,
                     second = dtdelta.second)
             visita.sync()
             model[path][0] = visita.fechahora.strftime('%H:%M')
         except IndexError:
             utils.dialogo_info(titulo = "ERROR", 
                                texto = 'El texto "%s" no respeta el formato '
                                        'horario (H:MM).' % newtext,
                                padre = self.wids['ventana'])
         except ValueError:
             utils.dialogo_info(titulo = "ERROR", 
                                texto = 'El texto "%s" no respeta el formato '
                                        'horario (H:M).' % newtext,
                                padre = self.wids['ventana'])    
     else:
         utils.dialogo_info(titulo = "NO SE PUEDE MODIFICAR",
                 texto = "Visita confirmada. No puede modificarla.",
                 padre = self.wids['ventana'])
Example #3
0
def edit_hora(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()
    ide = model[path][-1]
    objeto = clase.get(ide)
    try:
        hora = utils.parse_hora(newtext)
    except (ValueError, TypeError):
        parent = tv.parent
        while parent != None:
            parent = parent.parent
        utils.dialogo_info(titulo = "ERROR EN HORA", 
            texto = "El texto «%s» no es una hora válida." % (newtext), 
            padre = parent)
    else:
        setattr(objeto, atributo, hora)  
        objeto.syncUpdate()
    model[path][numcol] = utils.str_hora(getattr(objeto, atributo))