From cdf0c23aca138fb30224b9ea726fd7230489e418 Mon Sep 17 00:00:00 2001 From: Eriksen Costa Date: Sat, 21 Aug 2010 19:14:30 -0300 Subject: [PATCH] Adicionado módulo {{{Educacenso}}}: --- ieducar/misc/database/deltas/27_cria_tabela_modules_educacenso_cod_aluno_e_docente.sql | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/misc/database/ieducar.sql | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/Model/Aluno.php | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/Model/AlunoDataMapper.php | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/Model/CodigoReferencia.php | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/Model/CodigoReferenciaDataMapper.php | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/Model/Docente.php | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/Model/DocenteDataMapper.php | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/README.txt | 10 ++++++++++ ieducar/modules/Educacenso/TODO.txt | 21 +++++++++++++++++++++ ieducar/modules/Educacenso/_data/install.sql | 33 +++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/_tests/AllTests.php | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/_tests/AlunoTest.php | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Educacenso/_tests/DocenteTest.php | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 14 files changed, 739 insertions(+), 0 deletions(-) create mode 100644 ieducar/misc/database/deltas/27_cria_tabela_modules_educacenso_cod_aluno_e_docente.sql create mode 100644 ieducar/modules/Educacenso/Model/Aluno.php create mode 100644 ieducar/modules/Educacenso/Model/AlunoDataMapper.php create mode 100644 ieducar/modules/Educacenso/Model/CodigoReferencia.php create mode 100644 ieducar/modules/Educacenso/Model/CodigoReferenciaDataMapper.php create mode 100644 ieducar/modules/Educacenso/Model/Docente.php create mode 100644 ieducar/modules/Educacenso/Model/DocenteDataMapper.php create mode 100644 ieducar/modules/Educacenso/README.txt create mode 100644 ieducar/modules/Educacenso/TODO.txt create mode 100644 ieducar/modules/Educacenso/_data/install.sql create mode 100644 ieducar/modules/Educacenso/_tests/AllTests.php create mode 100644 ieducar/modules/Educacenso/_tests/AlunoTest.php create mode 100644 ieducar/modules/Educacenso/_tests/DocenteTest.php diff --git a/ieducar/misc/database/deltas/27_cria_tabela_modules_educacenso_cod_aluno_e_docente.sql b/ieducar/misc/database/deltas/27_cria_tabela_modules_educacenso_cod_aluno_e_docente.sql new file mode 100644 index 0000000..cf44098 --- /dev/null +++ b/ieducar/misc/database/deltas/27_cria_tabela_modules_educacenso_cod_aluno_e_docente.sql @@ -0,0 +1,55 @@ +-- // + +-- +-- Cria as tabelas modules.educacenso_cod_aluno e +-- modules.educacenso_cod_docente. +-- +-- @author Eriksen Costa Paixão +-- @license @@license@@ +-- @version $Id$ +-- + +CREATE TABLE modules.educacenso_cod_aluno +( + cod_aluno integer NOT NULL, + cod_aluno_inep bigint NOT NULL, + nome_inep character varying(255), + fonte character varying(255), + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone +) WITH (OIDS=FALSE); + +ALTER TABLE modules.educacenso_cod_aluno ADD + CONSTRAINT educacenso_cod_aluno_pk + PRIMARY KEY (cod_aluno, cod_aluno_inep); + +ALTER TABLE modules.educacenso_cod_aluno ADD + CONSTRAINT educacenso_cod_aluno_cod_aluno_fk + FOREIGN KEY (cod_aluno) REFERENCES pmieducar.aluno (cod_aluno) + ON UPDATE NO ACTION ON DELETE CASCADE; + + +CREATE TABLE modules.educacenso_cod_docente +( + cod_servidor integer NOT NULL, + cod_docente_inep bigint NOT NULL, + nome_inep character varying(255), + fonte character varying(255), + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone +) WITH (OIDS=FALSE); + +ALTER TABLE modules.educacenso_cod_docente ADD + CONSTRAINT educacenso_cod_docente_pk + PRIMARY KEY (cod_servidor, cod_docente_inep); + +-- //@UNDO + +ALTER TABLE modules.educacenso_cod_aluno DROP + CONSTRAINT educacenso_cod_aluno_cod_aluno_fk; + +DROP TABLE modules.educacenso_cod_aluno; + +DROP TABLE modules.educacenso_cod_docente; + +-- // \ No newline at end of file diff --git a/ieducar/misc/database/ieducar.sql b/ieducar/misc/database/ieducar.sql index 73ca0ad..7e6539a 100644 --- a/ieducar/misc/database/ieducar.sql +++ b/ieducar/misc/database/ieducar.sql @@ -10352,6 +10352,34 @@ CREATE TABLE componente_curricular_turma ( -- +-- Name: educacenso_cod_aluno; Type: TABLE; Schema: modules; Owner: -; Tablespace: +-- + +CREATE TABLE educacenso_cod_aluno ( + cod_aluno integer NOT NULL, + cod_aluno_inep bigint NOT NULL, + nome_inep character varying(255), + fonte character varying(255), + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone +); + + +-- +-- Name: educacenso_cod_docente; Type: TABLE; Schema: modules; Owner: -; Tablespace: +-- + +CREATE TABLE educacenso_cod_docente ( + cod_servidor integer NOT NULL, + cod_docente_inep bigint NOT NULL, + nome_inep character varying(255), + fonte character varying(255), + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone +); + + +-- -- Name: falta_aluno; Type: TABLE; Schema: modules; Owner: -; Tablespace: -- @@ -17752,6 +17780,18 @@ SET search_path = modules, pg_catalog; -- +-- Data for Name: educacenso_cod_aluno; Type: TABLE DATA; Schema: modules; Owner: - +-- + + + +-- +-- Data for Name: educacenso_cod_docente; Type: TABLE DATA; Schema: modules; Owner: - +-- + + + +-- -- Data for Name: falta_aluno; Type: TABLE DATA; Schema: modules; Owner: - -- @@ -20159,6 +20199,7 @@ INSERT INTO changelog VALUES (23, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '23_cria INSERT INTO changelog VALUES (24, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '24_altera_tipo_campo_carga_horaria_pmieducar_servidor_alocacao.sql'); INSERT INTO changelog VALUES (25, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '25_adiciona_campo_zona_localizacao_tabelas_enderecamento.sql'); INSERT INTO changelog VALUES (26, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '26_cria_tabela_modules_transporte_aluno.sql'); +INSERT INTO changelog VALUES (27, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '27_cria_tabela_modules_educacenso_cod_aluno_e_docente.sql'); -- @@ -27069,6 +27110,22 @@ ALTER TABLE ONLY componente_curricular_turma -- +-- Name: educacenso_cod_aluno_pk; Type: CONSTRAINT; Schema: modules; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY educacenso_cod_aluno + ADD CONSTRAINT educacenso_cod_aluno_pk PRIMARY KEY (cod_aluno, cod_aluno_inep); + + +-- +-- Name: educacenso_cod_docente_pk; Type: CONSTRAINT; Schema: modules; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY educacenso_cod_docente + ADD CONSTRAINT educacenso_cod_docente_pk PRIMARY KEY (cod_servidor, cod_docente_inep); + + +-- -- Name: falta_aluno_pkey; Type: CONSTRAINT; Schema: modules; Owner: -; Tablespace: -- @@ -32893,6 +32950,14 @@ ALTER TABLE ONLY componente_curricular_turma -- +-- Name: educacenso_cod_aluno_cod_aluno_fk; Type: FK CONSTRAINT; Schema: modules; Owner: - +-- + +ALTER TABLE ONLY educacenso_cod_aluno + ADD CONSTRAINT educacenso_cod_aluno_cod_aluno_fk FOREIGN KEY (cod_aluno) REFERENCES pmieducar.aluno(cod_aluno) ON DELETE CASCADE; + + +-- -- Name: falta_componente_curricular_falta_aluno_fk; Type: FK CONSTRAINT; Schema: modules; Owner: - -- diff --git a/ieducar/modules/Educacenso/Model/Aluno.php b/ieducar/modules/Educacenso/Model/Aluno.php new file mode 100644 index 0000000..d254500 --- /dev/null +++ b/ieducar/modules/Educacenso/Model/Aluno.php @@ -0,0 +1,65 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +require_once 'CoreExt/Entity.php'; +require_once 'Educacenso/Model/CodigoReferencia.php'; + +/** + * Educacenso_Model_Aluno class. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +class Educacenso_Model_Aluno extends Educacenso_Model_CodigoReferencia +{ + public function getDefaultValidatorCollection() + { + $validators = array( + 'aluno' => new CoreExt_Validate_Numeric(array('min' => 0)), + 'alunoInep' => new CoreExt_Validate_Numeric(array('min' => 0)), + ); + + return array_merge($validators, parent::getDefaultValidatorCollection()); + } + + public function __construct(array $options = array()) + { + $this->_data['aluno'] = NULL; + $this->_data['alunoInep'] = NULL; + + parent::__construct($options); + } +} \ No newline at end of file diff --git a/ieducar/modules/Educacenso/Model/AlunoDataMapper.php b/ieducar/modules/Educacenso/Model/AlunoDataMapper.php new file mode 100644 index 0000000..5f49804 --- /dev/null +++ b/ieducar/modules/Educacenso/Model/AlunoDataMapper.php @@ -0,0 +1,61 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +require_once 'Educacenso/Model/Aluno.php'; +require_once 'Educacenso/Model/CodigoReferenciaDataMapper.php'; + +/** + * Educacenso_Model_AlunoDataMapper class. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +class Educacenso_Model_AlunoDataMapper extends Educacenso_Model_CodigoReferenciaDataMapper +{ + protected $_entityClass = 'Educacenso_Model_Aluno'; + protected $_tableName = 'educacenso_cod_aluno'; + + protected $_primaryKey = array( + 'aluno', 'alunoInep' + ); + + public function __construct(clsBanco $db = NULL) + { + $this->_attributeMap['aluno'] = 'cod_aluno'; + $this->_attributeMap['alunoInep'] = 'cod_aluno_inep'; + parent::__construct($db); + } +} \ No newline at end of file diff --git a/ieducar/modules/Educacenso/Model/CodigoReferencia.php b/ieducar/modules/Educacenso/Model/CodigoReferencia.php new file mode 100644 index 0000000..2e3e982 --- /dev/null +++ b/ieducar/modules/Educacenso/Model/CodigoReferencia.php @@ -0,0 +1,67 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +require_once 'CoreExt/Entity.php'; + +/** + * Educacenso_Model_CodigoReferencia abstract class. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +abstract class Educacenso_Model_CodigoReferencia extends CoreExt_Entity +{ + protected $_data = array( + 'nomeInep' => NULL, + 'fonte' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL + ); + + public function getDefaultValidatorCollection() + { + return array( + 'nomeInep' => new CoreExt_Validate_String(), + 'fonte' => new CoreExt_Validate_String() + ); + } + + public function __construct(array $options = array()) + { + parent::__construct($options); + unset($this->_data['id']); + } +} \ No newline at end of file diff --git a/ieducar/modules/Educacenso/Model/CodigoReferenciaDataMapper.php b/ieducar/modules/Educacenso/Model/CodigoReferenciaDataMapper.php new file mode 100644 index 0000000..c5949ea --- /dev/null +++ b/ieducar/modules/Educacenso/Model/CodigoReferenciaDataMapper.php @@ -0,0 +1,55 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +require_once 'CoreExt/DataMapper.php'; + +/** + * Educacenso_Model_CodigoReferenciaDataMapper class. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +abstract class Educacenso_Model_CodigoReferenciaDataMapper extends CoreExt_DataMapper +{ + protected $_tableSchema = 'modules'; + + protected $_attributeMap = array( + 'nomeInep' => 'nome_inep', + 'fonte' => 'fonte', + 'created_at' => 'created_at', + 'updated_at' => 'updated_at' + ); +} \ No newline at end of file diff --git a/ieducar/modules/Educacenso/Model/Docente.php b/ieducar/modules/Educacenso/Model/Docente.php new file mode 100644 index 0000000..f8b27c4 --- /dev/null +++ b/ieducar/modules/Educacenso/Model/Docente.php @@ -0,0 +1,65 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +require_once 'CoreExt/Entity.php'; +require_once 'Educacenso/Model/CodigoReferencia.php'; + +/** + * Educacenso_Model_Docente class. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +class Educacenso_Model_Docente extends Educacenso_Model_CodigoReferencia +{ + public function getDefaultValidatorCollection() + { + $validators = array( + 'docente' => new CoreExt_Validate_Numeric(array('min' => 0)), + 'docenteInep' => new CoreExt_Validate_Numeric(array('min' => 0)), + ); + + return array_merge($validators, parent::getDefaultValidatorCollection()); + } + + public function __construct(array $options = array()) + { + $this->_data['docente'] = NULL; + $this->_data['docenteInep'] = NULL; + + parent::__construct($options); + } +} \ No newline at end of file diff --git a/ieducar/modules/Educacenso/Model/DocenteDataMapper.php b/ieducar/modules/Educacenso/Model/DocenteDataMapper.php new file mode 100644 index 0000000..11c0c92 --- /dev/null +++ b/ieducar/modules/Educacenso/Model/DocenteDataMapper.php @@ -0,0 +1,61 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +require_once 'Educacenso/Model/Docente.php'; +require_once 'Educacenso/Model/CodigoReferenciaDataMapper.php'; + +/** + * Educacenso_Model_DocenteDataMapper class. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Modules + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +class Educacenso_Model_DocenteDataMapper extends Educacenso_Model_CodigoReferenciaDataMapper +{ + protected $_entityClass = 'Educacenso_Model_Docente'; + protected $_tableName = 'educacenso_cod_docente'; + + protected $_primaryKey = array( + 'docente', 'docenteInep' + ); + + public function __construct(clsBanco $db = NULL) + { + $this->_attributeMap['docente'] = 'cod_servidor'; + $this->_attributeMap['docenteInep'] = 'cod_docente_inep'; + parent::__construct($db); + } +} \ No newline at end of file diff --git a/ieducar/modules/Educacenso/README.txt b/ieducar/modules/Educacenso/README.txt new file mode 100644 index 0000000..c30de20 --- /dev/null +++ b/ieducar/modules/Educacenso/README.txt @@ -0,0 +1,10 @@ +README +====== + +Este módulo constitui-se de classes modelos que servirão como base para a +definição de rotinas padronizadas para a importação e exportação dos dados +do Educacenso. + +Esses modelos serão ao longo do tempo incorporados na interface de usuário do +i-Educar, da forma menos intrusiva possível a fim de garantir a independência +do sistema das definições (e as atualizações anuais) de dados do Educacenso. \ No newline at end of file diff --git a/ieducar/modules/Educacenso/TODO.txt b/ieducar/modules/Educacenso/TODO.txt new file mode 100644 index 0000000..cf118dd --- /dev/null +++ b/ieducar/modules/Educacenso/TODO.txt @@ -0,0 +1,21 @@ +TODO +==== + +1. Resolver problemas lógicos do gerenciamento de servidores para permitir + importação do Educacenso para múltiplas instituições (ver _data/install.sql) + +Enquanto modules.educacenso_cod_aluno possui uma restrição referenciando +pmieducar.aluno, a mesma não é possível de se aplicar a +modules.educacenso_cod_docente, já que pmieducar.servidor não possui +cod_servidor com uma restrição do tipo única (primary key ou unique). Como a +tabela pmieducar.servidor foi projetada para poder cadastrar uma mesma pessoa +física em várias instituições diferentes, esta restrição foi ignorada. + +É importante notar que em um caso de vários importações de docentes do +Educacenso em instituições diferentes, a pessoa física subjacente continuaria +a mesma. Para que as diferenças cadastrais (por exemplo, um município informa +que o docente tem mestrado enquanto o outro apenas informa que este possui +nível superior) sejam resolvidas, seria necessário criar duas pessoas físicas +diferentes. Enfim, toda a questão de lotação de servidores +(ex: escolaridade) precisam ser movidas para o gerenciamento de pessoas +físicas para evitar esse problema em instalações multi-institucionais. \ No newline at end of file diff --git a/ieducar/modules/Educacenso/_data/install.sql b/ieducar/modules/Educacenso/_data/install.sql new file mode 100644 index 0000000..f644d47 --- /dev/null +++ b/ieducar/modules/Educacenso/_data/install.sql @@ -0,0 +1,33 @@ +CREATE TABLE modules.educacenso_cod_aluno +( + cod_aluno integer NOT NULL, + cod_aluno_inep bigint NOT NULL, + nome_inep character varying(255), + fonte character varying(255), + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone +) WITH (OIDS=FALSE); + +ALTER TABLE modules.educacenso_cod_aluno ADD + CONSTRAINT educacenso_cod_aluno_pk + PRIMARY KEY (cod_aluno, cod_aluno_inep); + +ALTER TABLE modules.educacenso_cod_aluno ADD + CONSTRAINT educacenso_cod_aluno_cod_aluno_fk + FOREIGN KEY (cod_aluno) REFERENCES pmieducar.aluno (cod_aluno) + ON UPDATE NO ACTION ON DELETE CASCADE; + + +CREATE TABLE modules.educacenso_cod_docente +( + cod_servidor integer NOT NULL, + cod_docente_inep bigint NOT NULL, + nome_inep character varying(255), + fonte character varying(255), + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone +) WITH (OIDS=FALSE); + +ALTER TABLE modules.educacenso_cod_docente ADD + CONSTRAINT educacenso_cod_docente_pk + PRIMARY KEY (cod_servidor, cod_docente_inep); \ No newline at end of file diff --git a/ieducar/modules/Educacenso/_tests/AllTests.php b/ieducar/modules/Educacenso/_tests/AllTests.php new file mode 100644 index 0000000..6deeb65 --- /dev/null +++ b/ieducar/modules/Educacenso/_tests/AllTests.php @@ -0,0 +1,55 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÃFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Tests + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +/** + * AreaConhecimento_AllTests class. + * + * Arquivo de definição de suíte para o módulo. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage Tests + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +class Educacenso_AllTests extends TestCollector +{ + protected $_name = 'Suíte de testes do módulo Educacenso'; + protected $_file = __FILE__; + + public static function suite() + { + $instance = new self; + return $instance->addDirectoryTests(); + } +} \ No newline at end of file diff --git a/ieducar/modules/Educacenso/_tests/AlunoTest.php b/ieducar/modules/Educacenso/_tests/AlunoTest.php new file mode 100644 index 0000000..81ab1a8 --- /dev/null +++ b/ieducar/modules/Educacenso/_tests/AlunoTest.php @@ -0,0 +1,63 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÃFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage UnitTests + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +require_once 'Educacenso/Model/Aluno.php'; + +/** + * Educacenso_Model_AlunoTest class. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage UnitTests + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +class Educacenso_Model_AlunoTest extends UnitBaseTest +{ + protected $_entity = NULL; + + protected function setUp() + { + $this->_entity = new Educacenso_Model_Aluno(); + } + + public function testEntityValidators() + { + // Recupera os objetos CoreExt_Validate + $validators = $this->_entity->getDefaultValidatorCollection(); + $this->assertType('CoreExt_Validate_Numeric', $validators['aluno']); + $this->assertType('CoreExt_Validate_Numeric', $validators['alunoInep']); + $this->assertType('CoreExt_Validate_String', $validators['nomeInep']); + $this->assertType('CoreExt_Validate_String', $validators['fonte']); + } +} \ No newline at end of file diff --git a/ieducar/modules/Educacenso/_tests/DocenteTest.php b/ieducar/modules/Educacenso/_tests/DocenteTest.php new file mode 100644 index 0000000..b296a61 --- /dev/null +++ b/ieducar/modules/Educacenso/_tests/DocenteTest.php @@ -0,0 +1,63 @@ + + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÃFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage UnitTests + * @since Arquivo disponível desde a versão 1.2.0 + * @version $Id$ + */ + +require_once 'Educacenso/Model/Docente.php'; + +/** + * Educacenso_Model_DocenteTest class. + * + * @author Eriksen Costa Paixão + * @category i-Educar + * @license @@license@@ + * @package Educacenso + * @subpackage UnitTests + * @since Classe disponível desde a versão 1.2.0 + * @version @@package_version@@ + */ +class Educacenso_Model_DocenteTest extends UnitBaseTest +{ + protected $_entity = NULL; + + protected function setUp() + { + $this->_entity = new Educacenso_Model_Docente(); + } + + public function testEntityValidators() + { + // Recupera os objetos CoreExt_Validate + $validators = $this->_entity->getDefaultValidatorCollection(); + $this->assertType('CoreExt_Validate_Numeric', $validators['docente']); + $this->assertType('CoreExt_Validate_Numeric', $validators['docenteInep']); + $this->assertType('CoreExt_Validate_String', $validators['nomeInep']); + $this->assertType('CoreExt_Validate_String', $validators['fonte']); + } +} \ No newline at end of file -- libgit2 0.21.2