From: Leandro Lucarella Date: Fri, 19 Sep 2003 17:17:19 +0000 (+0000) Subject: Grupo de noticias: X-Git-Tag: svn_import~18 X-Git-Url: https://git.llucax.com/mecon/ai.git/commitdiff_plain/6dae897ef96ea30feeb2fa6d5de82c9c7775b479 Grupo de noticias: - Ahora una sección puede pertenecer sólo a un grupo. - Al agregar un grupo se muestran sólo las secciones que todavía no están en ningún grupo. Al modificar se muestran las que no están en ningún grupo más las que están en el grupo a modificar. Arbol: - Se arreglan los árboles para que funcione con la última versión. - Los árboles aparecen sin expandir en el menú y expandido en los select para elegir el padre. --- diff --git a/TODO b/TODO index 93b6bbc..c08185b 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,5 @@ $Id$ -- Ver que se hace con sistemas borrados de SAMURAI con baja lógica. -- Resolver tema de JOIN con SAMURAI. +- Ver que se hace con sistemas borrados de SAMURAI con baja lógica. No se + muestran en AI y quedan como 'basura'. diff --git a/doc/local_lib/uml.xmi b/doc/local_lib/uml.xmi index 9b4ab19..48a4874 100644 --- a/doc/local_lib/uml.xmi +++ b/doc/local_lib/uml.xmi @@ -6,7 +6,7 @@ 1.1.5 UnicodeUTF8 - + @@ -22,8 +22,7 @@ - - + @@ -44,6 +43,7 @@ x2c:noclass" name="general" static="0" scope="200" > + @@ -51,51 +51,51 @@ x2c:noclass" name="general" static="0" scope="200" > - + - - - - - - - + + + + + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + @@ -118,7 +118,7 @@ x2c:noclass" name="general" static="0" scope="200" > - + diff --git a/doc/uml.xmi b/doc/uml.xmi index effbf5e..d6351ef 100644 --- a/doc/uml.xmi +++ b/doc/uml.xmi @@ -4,12 +4,13 @@ umbrello uml modeller http://uml.sf.net 1.1.5 + UnicodeUTF8 - + @@ -22,8 +23,8 @@ - - + + @@ -42,24 +43,24 @@ - - + + - + - - - + + + - + @@ -82,21 +83,27 @@ x2c:include: PEAR.php" name="PEAR_Error" static="0" scope="200" /> - + + + + + + - + - + @@ -115,7 +122,7 @@ x2c:include: PEAR.php" name="PEAR_Error" static="0" scope="200" /> - + @@ -134,25 +141,25 @@ x2c:get" name="hijos" static="0" scope="202" /> - + - - - - - - - + + + + + + + - - - + + + - - + + @@ -160,26 +167,26 @@ x2c:get" name="hijos" static="0" scope="202" /> - + - + - - + + - + - - + + @@ -187,8 +194,8 @@ x2c:get" name="hijos" static="0" scope="202" /> - - + + @@ -196,7 +203,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + @@ -216,7 +223,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + @@ -227,6 +234,7 @@ x2c:get" name="hijos" static="0" scope="202" /> + diff --git a/lib/AI/GrupoSecciones.php b/lib/AI/GrupoSecciones.php index f5527b7..df21dc6 100644 --- a/lib/AI/GrupoSecciones.php +++ b/lib/AI/GrupoSecciones.php @@ -221,25 +221,32 @@ class AI_GrupoSecciones extends AI_DBTreeObject { // +X2C Operation 512 /** * Obtiene un array con una lista de secciones. +Sólo se obtienen las secciones que todavía no pertenecen a ningún grupo. Si se especifica un grupo, se agregan las secciones de ese grupo al array resultante. * * @param DB $db Base de datos a usar para obtener los datos. + * @param int $grupo Grupo del cual obtener las secciones. * * @return array * @access public * @static */ - function getSeccionesArray($db = null) // ~X2C + function getSeccionesArray($db = null, $grupo = 0) // ~X2C { - static $conf; - if (!$conf) { + static $conf_dav, $conf_sec; + if (!$conf_dav or !$conf_sec) { $conf = parse_ini_file(AI_GRUPOSECCIONES_CONFFILE, true); - $conf = $conf['mecondav']; + $conf_dav = $conf['mecondav']; + $conf_sec = $conf['secciones']; } - extract($conf); + extract($conf_dav, EXTR_PREFIX_ALL, 'dav'); + extract($conf_sec, EXTR_PREFIX_ALL, 'sec'); return $db->getAssoc(" - SELECT $id, $campo - FROM $base.$tabla - ORDER BY $campo ASC"); + SELECT d.$dav_id, d.$dav_campo + FROM $dav_base.$dav_tabla as d + LEFT JOIN $sec_base.$sec_tabla AS s + ON s.$sec_campo = d.$dav_id + WHERE s.$sec_campo IS NULL OR s.$sec_id = $grupo + ORDER BY d.$dav_campo ASC"); } // -X2C @@ -252,6 +259,7 @@ class AI_GrupoSecciones extends AI_DBTreeObject { * * @return AI_GrupoSecciones * @access public + * @static */ function getGrupo($seccion, $db = null) // ~X2C { diff --git a/sistema/local_lib/AI/Arbol.php b/sistema/local_lib/AI/Arbol.php index 499ef99..02f55f3 100644 --- a/sistema/local_lib/AI/Arbol.php +++ b/sistema/local_lib/AI/Arbol.php @@ -33,7 +33,7 @@ require_once 'MECON/HTML/ArbolDB.php'; // +X2C Class 535 :AI_Arbol /** - * Arbol para generar los menes. + * Arbol para generar los menúes. * * @package AI_Local * @access public @@ -45,13 +45,14 @@ class AI_Arbol extends MECON_HTML_ArbolDB { /** * Constructor. * - * @param mixed $objeto Objeto del cual generar el ?bol. Puede ser AI_GrupoSecciones, AI_Servicio o AI_Sistema. - * @param DB &$db Base de datos de donde sacar los datos para el ?bol. + * @param mixed $objeto Objeto del cual generar el árbol. Puede ser AI_GrupoSecciones, AI_Servicio o AI_Sistema. + * @param DB &$db Base de datos de donde sacar los datos para el árbol. + * @param bool $expandir Indica si debe expandirse el árbol. * * @return void * @access public */ - function AI_Arbol($objeto, &$db) // ~X2C + function AI_Arbol($objeto, &$db, $expandir = true) // ~X2C { switch (get_class($objeto)) { case 'ai_gruposecciones': @@ -68,6 +69,7 @@ class AI_Arbol extends MECON_HTML_ArbolDB { $tipo = 'sistema'; $titulo = 'SISTEMAS'; $tabla = $tipo; + $expandir = true; break; } $dbdata = array( @@ -90,7 +92,7 @@ class AI_Arbol extends MECON_HTML_ArbolDB { ) + $dbdata; } - parent::MECON_HTML_ArbolDB($dbdata, $titulo, $tipo.'?accion='.AI_MODIF.'&id='); + parent::MECON_HTML_ArbolDB($dbdata, $titulo, $tipo.'?accion='.AI_MODIF.'&id=', $expandir); } // -X2C diff --git a/sistema/local_lib/AI/DB.php b/sistema/local_lib/AI/DB.php index 32a0dfd..3cf2e84 100644 --- a/sistema/local_lib/AI/DB.php +++ b/sistema/local_lib/AI/DB.php @@ -43,7 +43,7 @@ class AI_DB extends DB { // +X2C Operation 506 /** - * @param string $confFile Archivo de configuracin de la base de datos. Si no se especifica se toma uno por defecto del directorio de configuracin. + * @param string $confFile Archivo de configuración de la base de datos. Si no se especifica se toma uno por defecto del directorio de configuración. * * @return &mixed * @access public diff --git a/sistema/local_lib/AI/Form.php b/sistema/local_lib/AI/Form.php index c39610f..27e9bb2 100644 --- a/sistema/local_lib/AI/Form.php +++ b/sistema/local_lib/AI/Form.php @@ -53,14 +53,13 @@ class AI_Form extends MECON_HTML_QuickForm { * Construye un formulario para el objecto especificado. * * @param object &$obj Objeto con el cual rellenar el formulario. Puede ser GrupoSecciones, Servicio o Sistema. - * @param int $accion Accion que realizar?el formulario a crear. Puede ser AI_ALTA, AI_BAJA o AI_MODIFICACION. - * @param HTML_Arbol $arbol ?bol de donde sacar los padres. - * @param DB $db Base de datos. + * @param int $accion Accion que realizará el formulario a crear. Puede ser AI_ALTA, AI_BAJA o AI_MODIFICACION. + * @param DB $db Base de datos a usar. * * @return void * @access public */ - function iniciar(&$obj, $accion, $arbol, $db) // ~X2C + function iniciar(&$obj, $accion, $db) // ~X2C { $tipo = substr(get_class($obj), 3); $s_tipo = ucfirst($tipo); @@ -107,6 +106,8 @@ class AI_Form extends MECON_HTML_QuickForm { $fId->freeze(); } if ($tipo == 'grupo' or $tipo == 'servicio') { + require_once 'AI/Arbol.php'; + $arbol = new AI_Arbol($obj, $db, true); $tipos = array('' => '--', '0' => 'Página Principal') + $arbol->toArray(); // Saco el elemento actual si hay uno cargado (no puede ser padre de si mismo). @@ -130,7 +131,7 @@ class AI_Form extends MECON_HTML_QuickForm { $fAntiguedad =& $this->addElement('select', 'antiguedad', 'Antigüedad', array(3 => '3 días', 1 => '1 día', 7 => '1 semana')); $fSecciones =& $this->addElement('select', 'secciones', 'Secciones', - AI_GrupoSecciones::getSeccionesArray($db), + AI_GrupoSecciones::getSeccionesArray($db, (int)$obj->$tipo), array('multiple' => 'multiple', 'size' => 8)); $fMostrarHijos =& $this->addElement('checkbox', 'mostrar_hijos', 'Mostrar hijos'); // Validación. diff --git a/sistema/www/index.php b/sistema/www/index.php index 8e5fae8..11dede8 100644 --- a/sistema/www/index.php +++ b/sistema/www/index.php @@ -145,21 +145,16 @@ if ($tipo) { } // }}} - // Creo el árbol con el tipo de objeto que manejo y lo agrego a la página. {{{ - require_once 'AI/Arbol.php'; - $arbol = new AI_Arbol($obj, $db); - // }}} - // Inicio el formulario, cargando datos de ser necesario. {{{ if ($accion & (AI_BAJA | AI_MODIF)) { $err =& $obj->cargar($db); if (PEAR::isError($err)) { die($err->getMessage()); } - $form->iniciar($obj, $accion, $arbol, $db); + $form->iniciar($obj, $accion, $db); } else { $accion = AI_ALTA; - $form->iniciar($obj, $accion, $arbol, $db); + $form->iniciar($obj, $accion, $db); } // }}} @@ -233,6 +228,11 @@ if ($tipo) { } // }}} + // Creo el árbol con el tipo de objeto que manejo y lo agrego a la página. {{{ + require_once 'AI/Arbol.php'; + $arbol = new AI_Arbol($obj, $db, false); + // }}} + // Agrego el menu, link para nuevo y formulario a la página. {{{ $marco->addMenuVertical($arbol); if ($accion & ~AI_ALTA) { diff --git a/sql/grupo_secciones_seccion.sql b/sql/grupo_secciones_seccion.sql index d00eb68..e6eaaa5 100644 --- a/sql/grupo_secciones_seccion.sql +++ b/sql/grupo_secciones_seccion.sql @@ -29,5 +29,5 @@ CREATE TABLE grupo_secciones_seccion ( grupo INTEGER(11) UNSIGNED NOT NULL default 0, seccion INTEGER(11) NOT NULL default 0, - PRIMARY KEY (grupo, seccion) + PRIMARY KEY (seccion) );