]> git.llucax.com Git - z.facultad/75.43/tp1.git/log
z.facultad/75.43/tp1.git
19 years agoBugfix.
Leandro Lucarella [Thu, 5 May 2005 06:05:21 +0000 (06:05 +0000)]
Bugfix.

19 years agoSe crea un método getPassword() porque al usar Usuario::validar() creaba una entrada...
Leandro Lucarella [Thu, 5 May 2005 06:01:33 +0000 (06:01 +0000)]
Se crea un método getPassword() porque al usar Usuario::validar() creaba una entrada en el log como intento de login.

19 years agoSe agrega al log cuando se ponen créditos a un usuario.
Leandro Lucarella [Thu, 5 May 2005 05:54:19 +0000 (05:54 +0000)]
Se agrega al log cuando se ponen créditos a un usuario.

19 years agoSe agrega pantalla para agregar créditos a usuarios.
Leandro Lucarella [Thu, 5 May 2005 05:52:25 +0000 (05:52 +0000)]
Se agrega pantalla para agregar créditos a usuarios.

19 years agoSe agrega función para agregar créditos.
Leandro Lucarella [Thu, 5 May 2005 05:51:55 +0000 (05:51 +0000)]
Se agrega función para agregar créditos.

19 years agoSe usa el nuevo método login().
Leandro Lucarella [Thu, 5 May 2005 05:51:34 +0000 (05:51 +0000)]
Se usa el nuevo método login().

19 years agoSe agregan nuevas validaciones.
Leandro Lucarella [Thu, 5 May 2005 05:51:13 +0000 (05:51 +0000)]
Se agregan nuevas validaciones.

19 years agoSe agrega formulario para agregar créditos.
Leandro Lucarella [Thu, 5 May 2005 05:50:42 +0000 (05:50 +0000)]
Se agrega formulario para agregar créditos.

19 years agoBugfix
Leandro Lucarella [Thu, 5 May 2005 05:50:10 +0000 (05:50 +0000)]
Bugfix

19 years agoSe agregan métodos: addCreditos(), login(), asociado() y getAll() (los últimos 2
Leandro Lucarella [Thu, 5 May 2005 05:49:55 +0000 (05:49 +0000)]
Se agregan métodos: addCreditos(), login(), asociado() y getAll() (los últimos 2
estáticos).

19 years agoAgrega un aviso si la pregunta esta rankeada. Cambia los Mostrar por toHTML(). Muestr...
Jonathan Schein [Thu, 5 May 2005 04:58:30 +0000 (04:58 +0000)]
Agrega un aviso si la pregunta esta rankeada. Cambia los Mostrar por toHTML(). Muestra la foto del usuario que hizo la pregunta en el listado. Corrige la version anterior, cuando un asesor da de alta una pregunta, no se intenta descontarle creditos. Agrega en el menu acceso a Listar preguntas y a Ingresar nueva pregunta.

19 years agomodificacion chica en el alta de preguntas
Jonathan Schein [Thu, 5 May 2005 04:04:58 +0000 (04:04 +0000)]
modificacion chica en el alta de preguntas

19 years agomodificacion chica en el alta de preguntas
Jonathan Schein [Thu, 5 May 2005 04:04:17 +0000 (04:04 +0000)]
modificacion chica en el alta de preguntas

19 years agoAgrega el manejo de creditos para el alta de preguntas
Jonathan Schein [Thu, 5 May 2005 03:44:06 +0000 (03:44 +0000)]
Agrega el manejo de creditos para el alta de preguntas

19 years agoSe agrega opción para elegir fecha desde la cual ver los logs.
Leandro Lucarella [Thu, 5 May 2005 02:15:22 +0000 (02:15 +0000)]
Se agrega opción para elegir fecha desde la cual ver los logs.

19 years agoSe hace que si no hay ítems muestre un mensaje.
Leandro Lucarella [Thu, 5 May 2005 02:14:58 +0000 (02:14 +0000)]
Se hace que si no hay ítems muestre un mensaje.

19 years agoIdentación.
Leandro Lucarella [Thu, 5 May 2005 02:14:32 +0000 (02:14 +0000)]
Identación.

19 years agoSe implementan los métodos nuevos de Item.
Leandro Lucarella [Thu, 5 May 2005 02:13:30 +0000 (02:13 +0000)]
Se implementan los métodos nuevos de Item.

19 years agoNueva función para validar (muy livianamente) una fecha.
Leandro Lucarella [Thu, 5 May 2005 02:12:23 +0000 (02:12 +0000)]
Nueva función para validar (muy livianamente) una fecha.

19 years agobugfix.
Leandro Lucarella [Thu, 5 May 2005 02:11:53 +0000 (02:11 +0000)]
bugfix.

19 years agoSe agregan 2 nuevos métodos para la interfaz del listador.
Leandro Lucarella [Thu, 5 May 2005 02:09:10 +0000 (02:09 +0000)]
Se agregan 2 nuevos métodos para la interfaz del listador.

19 years agoDeja solo los /n para el fin de linea. Corrige la observacion de luca. Utiliza la...
Jonathan Schein [Thu, 5 May 2005 01:31:17 +0000 (01:31 +0000)]
Deja solo los /n para el fin de linea. Corrige la observacion de luca. Utiliza la nueva version de la funcion de verificacion de login.

19 years agoBugfix
Leandro Lucarella [Thu, 5 May 2005 00:55:14 +0000 (00:55 +0000)]
Bugfix

19 years agoSe renombra para ser la página definitiva que muestra el log y se corrije el
Leandro Lucarella [Thu, 5 May 2005 00:54:16 +0000 (00:54 +0000)]
Se renombra para ser la página definitiva que muestra el log y se corrije el
link en el menú.

19 years agoSe muestra el apellido (como pide el enunciado) en vez de nombre.
Leandro Lucarella [Thu, 5 May 2005 00:51:01 +0000 (00:51 +0000)]
Se muestra el apellido (como pide el enunciado) en vez de nombre.

19 years agoBugfix.
Leandro Lucarella [Thu, 5 May 2005 00:50:33 +0000 (00:50 +0000)]
Bugfix.

19 years agoSe agrega una función p() para poner un párrafo común y se cambia la cabecera
Leandro Lucarella [Thu, 5 May 2005 00:50:21 +0000 (00:50 +0000)]
Se agrega una función p() para poner un párrafo común y se cambia la cabecera
HTTP para indicar el encoding de carecteres por un tag meta.

19 years agoAgrego menú con algunos links dummy. Ahora hay que usar marco_cabecera() y marco_pie...
Leandro Lucarella [Thu, 5 May 2005 00:17:46 +0000 (00:17 +0000)]
Agrego menú con algunos links dummy. Ahora hay que usar marco_cabecera() y marco_pie() que además chequean que esté logueado.

19 years agoSaco un mensaje de debug que había quedado colgado.
Leandro Lucarella [Thu, 5 May 2005 00:15:16 +0000 (00:15 +0000)]
Saco un mensaje de debug que había quedado colgado.

19 years agoSe pone antes el parámetro caption porque es más probable que se use que summary.
Leandro Lucarella [Wed, 4 May 2005 23:48:51 +0000 (23:48 +0000)]
Se pone antes el parámetro caption porque es más probable que se use que summary.

19 years agoSe optimiza file_creditos_evaluar() para que también grabe el archivo sólo de ser...
Leandro Lucarella [Wed, 4 May 2005 21:55:47 +0000 (21:55 +0000)]
Se optimiza file_creditos_evaluar() para que también grabe el archivo sólo de ser necesario.

19 years agoBugfix y se hace que se actualicen los créditos en el login sólo si es
Leandro Lucarella [Wed, 4 May 2005 21:48:55 +0000 (21:48 +0000)]
Bugfix y se hace que se actualicen los créditos en el login sólo si es
necesario.

19 years agoSe mustra el log del usuario con el listador.
Leandro Lucarella [Wed, 4 May 2005 21:02:01 +0000 (21:02 +0000)]
Se mustra el log del usuario con el listador.

19 years agoSe agrega una subclase de Item para mostrar archivo de log con el listador.
Leandro Lucarella [Wed, 4 May 2005 21:01:42 +0000 (21:01 +0000)]
Se agrega una subclase de Item para mostrar archivo de log con el listador.

19 years agoSe llama a logout() para que logguee.
Leandro Lucarella [Wed, 4 May 2005 21:01:00 +0000 (21:01 +0000)]
Se llama a logout() para que logguee.

19 years agoSe loguean las actividades del usuario (intentos de login, login existoso, logout...
Leandro Lucarella [Wed, 4 May 2005 21:00:08 +0000 (21:00 +0000)]
Se loguean las actividades del usuario (intentos de login, login existoso, logout y registración).

19 years agoBugfix (se imprimían los \n textuales) y se pone $link al principio porque es casi...
Leandro Lucarella [Wed, 4 May 2005 20:59:08 +0000 (20:59 +0000)]
Bugfix (se imprimían los \n textuales) y se pone $link al principio porque es casi mandatorio.

19 years agoSe agrega setlocale() para que las fechas aparezcan en castellano.
Leandro Lucarella [Wed, 4 May 2005 20:58:13 +0000 (20:58 +0000)]
Se agrega setlocale() para que las fechas aparezcan en castellano.

19 years agoBugfix.
Leandro Lucarella [Wed, 4 May 2005 20:57:44 +0000 (20:57 +0000)]
Bugfix.

19 years agoBugfix y se agrega método seek() que se necesita para el listador.
Leandro Lucarella [Wed, 4 May 2005 20:57:20 +0000 (20:57 +0000)]
Bugfix y se agrega método seek() que se necesita para el listador.

19 years agoSe corrige documentación.
Leandro Lucarella [Wed, 4 May 2005 20:17:43 +0000 (20:17 +0000)]
Se corrige documentación.

19 years agoSe agrega el upload de foto en la registración y se implementa una versión
Leandro Lucarella [Wed, 4 May 2005 15:46:29 +0000 (15:46 +0000)]
Se agrega el upload de foto en la registración y se implementa una versión
preliminar de Usuario::toHtml() que muestra la foto. Se usa en la página de
entrada de ejemplo.

19 years agoPongo comentarios y agrego función check_file_upload() para validar upload de archivos.
Leandro Lucarella [Wed, 4 May 2005 15:44:48 +0000 (15:44 +0000)]
Pongo comentarios y agrego función check_file_upload() para validar upload de archivos.

19 years agoPongo comentarios y cosas para debug.
Leandro Lucarella [Wed, 4 May 2005 15:44:01 +0000 (15:44 +0000)]
Pongo comentarios y cosas para debug.

19 years agobugfix
Leandro Lucarella [Wed, 4 May 2005 14:19:02 +0000 (14:19 +0000)]
bugfix

19 years ago- Se arregla el redirect (al final queda usando variable de sesión porque si no
Leandro Lucarella [Wed, 4 May 2005 05:22:58 +0000 (05:22 +0000)]
- Se arregla el redirect (al final queda usando variable de sesión porque si no
  había que arrastrarlo por todos lados, pero se borra cuando no se necesita
  más). Ahora no hace falta pasarle el origen a pagina_check_login(), lo
  averigua solo.
- Algunos bugfixes menores (páginas a las que le faltaba el include de
  lib/pagina.php y hacía que falle el logout).
- Se pone bien el $Id$ de los archivos.

19 years agoSe ponen fin de línea nativos.
Leandro Lucarella [Wed, 4 May 2005 04:44:30 +0000 (04:44 +0000)]
Se ponen fin de línea nativos.

19 years agoIntegre la parte de login con mi listado de preguntas. Hice un pequeño cambio en...
Jonathan Schein [Wed, 4 May 2005 03:50:40 +0000 (03:50 +0000)]
Integre la parte de login con mi listado de preguntas. Hice un pequeño cambio en la funcion de pagina.php que chequea login. Al llamarla, se le puede poner la pagina de origen, y entonces llega al login. De esta manera, luego de un login OK, se puede redireccionar al punto donde se intento ingresar y no pudo por no estar logueado. Los cambios que hice los comente. Luca, si esta mal lo que hice, mil disculpas, tira mi version para atras. En realidad, lo hice para probar, andó (?), y entonces lo deje.

19 years agoSe agrega logout.
Leandro Lucarella [Wed, 4 May 2005 03:44:56 +0000 (03:44 +0000)]
Se agrega logout.

19 years agoSe sacan porque quedaron obsoletos.
Leandro Lucarella [Wed, 4 May 2005 03:40:54 +0000 (03:40 +0000)]
Se sacan porque quedaron obsoletos.

19 years agoSe cambia el formato del nombre del archivo de créditos.
Leandro Lucarella [Wed, 4 May 2005 03:34:59 +0000 (03:34 +0000)]
Se cambia el formato del nombre del archivo de créditos.

19 years agoSe agrega lib para manejar el archivo de log. Se usa un archivo de log por
Leandro Lucarella [Wed, 4 May 2005 03:33:40 +0000 (03:33 +0000)]
Se agrega lib para manejar el archivo de log. Se usa un archivo de log por
usuario, ya que siempre se muestra por usuario. Hay primitivas para agregar
datos al log y para recorrerlo.

19 years agoCambio estético
Leandro Lucarella [Wed, 4 May 2005 03:03:39 +0000 (03:03 +0000)]
Cambio estético

19 years ago- Se usan nuevas funciones de csv.
Leandro Lucarella [Wed, 4 May 2005 03:02:56 +0000 (03:02 +0000)]
- Se usan nuevas funciones de csv.
- Se cambia el nombre de archivo a users.csv.

19 years agoSe agrega función fappendcsv() para agregar un registro al final de un archivo csv.
Leandro Lucarella [Wed, 4 May 2005 03:02:25 +0000 (03:02 +0000)]
Se agrega función fappendcsv() para agregar un registro al final de un archivo csv.

19 years agoAgrego metodo getEmail() que faltaba.
Leandro Lucarella [Tue, 3 May 2005 22:22:09 +0000 (22:22 +0000)]
Agrego metodo getEmail() que faltaba.

19 years agoMuestro datos de usuario.
Leandro Lucarella [Tue, 3 May 2005 22:21:54 +0000 (22:21 +0000)]
Muestro datos de usuario.

19 years agoBugfix
Leandro Lucarella [Tue, 3 May 2005 22:21:37 +0000 (22:21 +0000)]
Bugfix

19 years agobugfix
Leandro Lucarella [Tue, 3 May 2005 22:05:07 +0000 (22:05 +0000)]
bugfix

19 years agoCompleto un poco más el objeto Usuario para que quede más funcional. Asesor y Socio...
Leandro Lucarella [Tue, 3 May 2005 22:02:10 +0000 (22:02 +0000)]
Completo un poco más el objeto Usuario para que quede más funcional. Asesor y Socio quedan obsoletos, me parece que es mucho más simple manejar todo desde Usuario.

19 years agoCambio el formato para que sea igual a int_2005.txt
Leandro Lucarella [Tue, 3 May 2005 22:01:03 +0000 (22:01 +0000)]
Cambio el formato para que sea igual a int_2005.txt

19 years agoNueva lib para manejo de archivo de asesores.
Leandro Lucarella [Tue, 3 May 2005 22:00:37 +0000 (22:00 +0000)]
Nueva lib para manejo de archivo de asesores.

19 years agobugfix (typo).
Leandro Lucarella [Tue, 3 May 2005 22:00:10 +0000 (22:00 +0000)]
bugfix (typo).

19 years agoSe agrega una pantalla dummy para saber si está logueado (puede usarse como base...
Leandro Lucarella [Tue, 3 May 2005 21:38:11 +0000 (21:38 +0000)]
Se agrega una pantalla dummy para saber si está logueado (puede usarse como base para otras páginas que necesiten login).

19 years agoSe agregan 2 funciones muy útiles para manejar archivos CSV: fgetallcsv() obtiene...
Leandro Lucarella [Tue, 3 May 2005 21:27:19 +0000 (21:27 +0000)]
Se agregan 2 funciones muy útiles para manejar archivos CSV: fgetallcsv() obtiene todo un archivo csv en memoria como unn array de arrays y fsearchcsv() busca una fila del archivo csv que coincida con algo.

19 years agoSe completa la pantalla de login.
Leandro Lucarella [Tue, 3 May 2005 20:57:56 +0000 (20:57 +0000)]
Se completa la pantalla de login.

19 years agoSe hace que solo se pueda asociar si faltan admins.
Leandro Lucarella [Tue, 3 May 2005 20:25:54 +0000 (20:25 +0000)]
Se hace que solo se pueda asociar si faltan admins.

19 years agoFixes menores.
Leandro Lucarella [Tue, 3 May 2005 20:24:50 +0000 (20:24 +0000)]
Fixes menores.

19 years agoSaco link de Ingresar si faltan admins.
Leandro Lucarella [Tue, 3 May 2005 20:23:34 +0000 (20:23 +0000)]
Saco link de Ingresar si faltan admins.

19 years agoSe termina de implementar el alta de usuarios.
Leandro Lucarella [Tue, 3 May 2005 04:23:05 +0000 (04:23 +0000)]
Se termina de implementar el alta de usuarios.

19 years agoBugfixes.
Leandro Lucarella [Tue, 3 May 2005 04:22:47 +0000 (04:22 +0000)]
Bugfixes.

19 years agoSe agrega una lib para el manejo de archivo de usuarios registrados.
Leandro Lucarella [Tue, 3 May 2005 04:08:35 +0000 (04:08 +0000)]
Se agrega una lib para el manejo de archivo de usuarios registrados.

19 years agoSe agrega una lib para el manejo de archivo de administradores.
Leandro Lucarella [Tue, 3 May 2005 04:08:22 +0000 (04:08 +0000)]
Se agrega una lib para el manejo de archivo de administradores.

19 years agoAgrego un par de flcose() piantados y file_creditos_crear().
Leandro Lucarella [Tue, 3 May 2005 03:08:49 +0000 (03:08 +0000)]
Agrego un par de flcose() piantados y file_creditos_crear().

19 years agoAgrega la parte de pasaje de preguntas a log historico. (es una pantalla de bajas...
Jonathan Schein [Tue, 3 May 2005 01:57:00 +0000 (01:57 +0000)]
Agrega la parte de pasaje de preguntas a log historico. (es una pantalla de bajas, que muestra una listita). Corrige alguna de las observaciones de luca. Queda pendiente la de manejo de csv para la proxima version

19 years agoManejo del archivo de créditos. Las funciones principales son:
Leandro Lucarella [Tue, 3 May 2005 00:39:28 +0000 (00:39 +0000)]
Manejo del archivo de créditos. Las funciones principales son:
file_creditos_login() -> Actualiza el archivo al hacer el login
file_creditos_preguntar() -> Actualiza el archivo al hacer una pregunta
file_creditos_evaluar() -> Actualiza el archivo al evaluar una respuesta
file_creditos_get() -> Obtiene la información de créditos para un usuario

19 years agoSe agrega una archivo para proveer la función fputcsv() que está sólo en
Leandro Lucarella [Tue, 3 May 2005 00:37:47 +0000 (00:37 +0000)]
Se agrega una archivo para proveer la función fputcsv() que está sólo en
versiones muy nuevas de php.

19 years agoSe agrega el charser en las cabeceras HTTP para que no chille el validador.
Leandro Lucarella [Mon, 2 May 2005 20:40:42 +0000 (20:40 +0000)]
Se agrega el charser en las cabeceras HTTP para que no chille el validador.

19 years agoSe arreglan bugs para que valide el HTML.
Leandro Lucarella [Mon, 2 May 2005 20:37:26 +0000 (20:37 +0000)]
Se arreglan bugs para que valide el HTML.

19 years agoSe agrega una función para listar items de forma genérica con paginador.
Leandro Lucarella [Mon, 2 May 2005 20:16:56 +0000 (20:16 +0000)]
Se agrega una función para listar items de forma genérica con paginador.
Para esto hay que implementar una interfaz común de los Item. Las subclases
de Item deben tener implementado los métodos: getHeaderArray(), next(),
getTotal() y asArray().

19 years agoEmpate lo hecho con lo de Luca. Ademas, hice el alta y el display de respuestas para...
Jonathan Schein [Mon, 2 May 2005 03:47:05 +0000 (03:47 +0000)]
Empate lo hecho con lo de Luca. Ademas, hice el alta y el display de respuestas para preguntas.

19 years agoSe hace que el gráfico entre en una página (para imprimir más fácil) y que se guarde...
Leandro Lucarella [Sun, 1 May 2005 23:12:07 +0000 (23:12 +0000)]
Se hace que el gráfico entre en una página (para imprimir más fácil) y que se guarde en XML plano sin comprimir para que sea más eficiente el diff/merge.

19 years agodiagrama de navegacion tentativo
Jonathan Schein [Sun, 1 May 2005 18:07:35 +0000 (18:07 +0000)]
diagrama de navegacion tentativo

19 years agoVarias cosas:
Leandro Lucarella [Sun, 1 May 2005 04:52:41 +0000 (04:52 +0000)]
Varias cosas:
- Se ponen prefijos admin_ en los campos de formulario.
- Se agregan más reglas de validación en javascript (check_email,
  check_min_max_cant, check_iguales).
- Se traduce las reglas de validación a PHP en lib/validacion.php para poder
  validar lo mismo en el cliente y en el servidor.
- Se pasa el index.php a admin.login.php y en index.php se hace un include de
  éste. Así queda bien claro que el index.php es parte del módulo de
  administración.
- Se agrega admin.asociarse.php que implementa parcialmente la registración de
  nuevos usuarios (falta el alta real en los archivos, las pantallas y
  formularios están casi listos).
- Se agrega función ok($msg) a lib/pagina.php para mostrar mensajes de
  confirmación (estilo "Registración exitosa").
- Se agregan algunos métodos a Usuario necesarios para el módulo de
  administración (checkAdmins() y asociar(), ambos de clase).

19 years agoSe pone fin de línea nativo.
Leandro Lucarella [Sun, 1 May 2005 00:48:30 +0000 (00:48 +0000)]
Se pone fin de línea nativo.

19 years agoSe agregan datos de prueba.
Leandro Lucarella [Sun, 1 May 2005 00:48:12 +0000 (00:48 +0000)]
Se agregan datos de prueba.

19 years ago- Se agrega algo de lógica al login, aunque no hace nada realmente todavía.
Leandro Lucarella [Sun, 1 May 2005 00:08:57 +0000 (00:08 +0000)]
- Se agrega algo de lógica al login, aunque no hace nada realmente todavía.
- Se agrega una función para mostrar errores.
- Se hace que el formulario 'recuerde' al usuario si estaba mal la contraseña.

19 years agoSe agrega el session_start() para que funcionen las sesiones.
Leandro Lucarella [Sat, 30 Apr 2005 23:52:59 +0000 (23:52 +0000)]
Se agrega el session_start() para que funcionen las sesiones.

19 years ago- Se agrega una pantalla de login dummy (solo chequea que los campos no sean
Leandro Lucarella [Sat, 30 Apr 2005 23:51:21 +0000 (23:51 +0000)]
- Se agrega una pantalla de login dummy (solo chequea que los campos no sean
  vacíos por javascript).
- Se agrega una lib común de javascript.
- Se agrega una lib común para dibujar la cabecera y pié de página.
- Se agregan cabeceras a los archivos con número de grupo, integrantes y autor.
- Se agrega una lib propia de módulo de admin con los formularios de este
  módulo.

19 years agoSe ponen los fin de linea a formato nativo para no tener dramas con win/lin.
Leandro Lucarella [Fri, 29 Apr 2005 04:01:52 +0000 (04:01 +0000)]
Se ponen los fin de linea a formato nativo para no tener dramas con win/lin.

19 years agoSaco unos archivos que no iban
Jonathan Schein [Thu, 28 Apr 2005 05:54:26 +0000 (05:54 +0000)]
Saco unos archivos que no iban

19 years agoDraft de logica para el modulo de FAQ
Jonathan Schein [Thu, 28 Apr 2005 05:44:49 +0000 (05:44 +0000)]
Draft de logica para el modulo de FAQ

19 years agoEsqueleto de clases.
Leandro Lucarella [Thu, 28 Apr 2005 04:38:00 +0000 (04:38 +0000)]
Esqueleto de clases.

19 years agoSubo script para sacar comentarios del diagrama.
Leandro Lucarella [Thu, 28 Apr 2005 04:26:47 +0000 (04:26 +0000)]
Subo script para sacar comentarios del diagrama.

19 years agoActualizo diagrama con lo hablado en la reunión.
Leandro Lucarella [Thu, 28 Apr 2005 04:26:33 +0000 (04:26 +0000)]
Actualizo diagrama con lo hablado en la reunión.

19 years agoAgrego un diagrama de clases tentativo.
Leandro Lucarella [Sun, 24 Apr 2005 00:50:37 +0000 (00:50 +0000)]
Agrego un diagrama de clases tentativo.

19 years agoAgrego enunciado.
Leandro Lucarella [Sat, 23 Apr 2005 20:32:56 +0000 (20:32 +0000)]
Agrego enunciado.