def set_secure_cookie(self, name, val):
        cookie_val = BaseHelper.make_secure_val(val)

        if self.request.get("remember") == "yes":
            next_month = (datetime.datetime.now() + datetime.timedelta(days=30)).strftime('%a, %d %b %Y %H:%M:%S GMT')
            self.response.headers.add_header('Set-Cookie', '%s=%s; Path=/; expires= %s' % (name, cookie_val, next_month))
        else:
            tomorrow = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%a, %d %b %Y %H:%M:%S GMT')
            self.response.headers.add_header('Set-Cookie', '%s=%s; Path=/; expires= %s' % (name, cookie_val, tomorrow))
 def get_last_abono(cls, urlkey_credito):
     if urlkey_credito:
         fecha_down = BaseHelper.limite_fecha_down()
         credito = ndb.Key(urlsafe=urlkey_credito)
         abono = Abono.query(
             ndb.AND(Abono.credito == credito,
                     Abono.creado >= fecha_down)).get()
         return abono
     else:
         return False
 def get(self):
     self.is_logged()
     self.is_admin()
     rutas = RutaHelper.query_all(True)
     rutasEdit = RutaHelper.query_all(False)
     ciudades = CiudadHelper.query_all(True)
     cajas = CajaHelper.query_all(True)
     usuarios = UsuarioHelper.query_all(True)
     rutasUser = UsuarioHelper.query_all_rutas(None)
     TZO = TimezoneOffset.query().get()
     actual_time = BaseHelper.hora_actual_mexico()
     self.render("admin.html", rutas_admin=rutas, ciudades=ciudades,
                 cajas=cajas, usuarios=usuarios, usuario=None,
                 TZO=TZO, actual_time=actual_time, rutasUser=rutasUser, rutasEdit=rutasEdit)
 def post(self):
     self.is_logged()
     self.is_admin()
     key = self.request.get('key')
     if key:
         usuario = ndb.Key(urlsafe=key).get()
     rutas = RutaHelper.query_all(True)
     rutasEdit = RutaHelper.query_all(False)
     rutasUser = UsuarioHelper.query_all_rutas(None)
     ciudades = CiudadHelper.query_all(True)
     cajas = CajaHelper.query_all(True)
     usuarios = UsuarioHelper.query_all(True)
     TZO = TimezoneOffset.query().get()
     actual_time = BaseHelper.hora_actual_mexico()
     self.render("admin.html", rutas=rutas, ciudades=ciudades,
                 cajas=cajas, usuarios=usuarios, usuario=usuario,
                 TZO=TZO, actual_time=actual_time, rutasUser=rutasUser, rutasEdit=rutasEdit)
 def post(self):
     self.is_logged()
     self.is_admin()
     documento = int(self.request.get("documento")) if self.request.get("documento") else None
     nombres = self.request.get("nombres")
     apellidos = self.request.get("apellidos")
     usuario = self.request.get("usuario")
     clave = self.request.get("clave")
     role = self.request.get("role")
     rutas = self.request.get_all("chkRutas")
     seguir = True
     if rutas and len(rutas) > 0:
         if role != "supervisor" and role != "admin":
             if len(rutas) > 1:
                 seguir = False
                 alert = ["alert-success", "El rol seleccionado no puede tener mas de una ruta"]
     else:
         seguir = False
         alert = ["alert-success", "Debe seleccionar por lo menos una ruta"]
     if seguir:
         if UsuarioHelper.existe_documento(documento) and self.request.get("exist"):
             alert = UsuarioHelper.actualizar_registro(documento, nombres, apellidos, usuario,
                                                     clave, role, rutas)
         else:
             alert = UsuarioHelper.nuevo_registro(documento, nombres, apellidos, usuario,
                                                  clave, role, rutas)
     else:
         key = self.request.get('key')
         if key:
             usuario = ndb.Key(urlsafe=key).get()
         rutas = RutaHelper.query_all(True)
         rutasEdit = RutaHelper.query_all(False)
         ciudades = CiudadHelper.query_all(True)
         cajas = CajaHelper.query_all(True)
         usuarios = UsuarioHelper.query_all(True)
         rutasUser = UsuarioHelper.query_all_rutas(None)
         TZO = TimezoneOffset.query().get()
         actual_time = BaseHelper.hora_actual_mexico()
         self.render("admin.html", rutas_admin=rutas, ciudades=ciudades,
                     cajas=cajas, usuarios=usuarios, usuario=usuario, alert=alert,
                     TZO=TZO, actual_time=actual_time, rutasUser=rutasUser, rutasEdit=rutasEdit)
         return
     time.sleep(1)
     self.redirect("/admin")
 def read_secure_cookie(self, name):
     cookie_val = self.request.cookies.get(name)
     return cookie_val and BaseHelper.check_secure_val(cookie_val)