Personalização do Módulo de Pesquisa

O módulo de pesquisa possui funcionalidades que comumente serão diferentes entre as instituições da rede IFES, como por exemplo, o algoritmo de distribuição de cotas de pesquisa, o cálculo do IPI (Índice de Produtividade Individual). Para permitir uma simples personalização evitando gerar qualquer conflito de código, o módulo de pesquisa foi projetado com vários pontos de extensão fazendo uso de padrões como Factory, Strategy e outros. Esses pontos de personalização referentes ao módulo de pesquisa são explicados neste documento.

Os pontos de extensão do módulo de pesquisa estão organizados em dois grupos principais, a saber: a interface CalculosPesquisa e a configuração dos itens do relatório de produtividade.

Interface CalculosPesquisa

O primeiro ponto de extensão do módulo de pesquisa é a interface CalculosPesquisa (br.ufrn.sigaa.pesquisa.negocio.CalculosPesquisa) que possui a declaração dos métodos que implementam os algoritmos do módulo, são eles:

  1. Distribuição das cotas de Pesquisa
  2. Cálculo do IPI dos docentes
  3. Cálculo do FPPI dos docentes

Esta interface por padrão é implementada pela classe CalculosPesquisaImplUFRN (br.ufrn.sigaa.pesquisa.negocio.CalculosPesquisaImplUFRN) e possui a implementação de acordo com o regulamento da UFRN. Caso estas operações precisem ser personalizadas para alguma instituição da rede é necessário criar uma nova classe que irá implementar o novo comportamento e configurar que a nova classe que está implementando a interface no paramêtro 2_10800_24 - IMPLEMENTACAO_COMPORTAMENTOS_PESQUISA. Este paramêtro configura exatamente qual a implementação da interface CalculosPesquisa que deve ser utilizada.

Configuração dos Itens do Relatório de Produtividade

O segundo ponto de extensão do módulo de pesquisa é a possibilidade de personalizar quais os itens do relatório de produtividade. Os itens do relatório de produtividade são definidos em edital por cada instituição que define quais são os itens e qual a pontuação de cada item assim como a pontuação máxima do item e do grupo ao qual o item pertence.

Para configurar os itens que serão utilizados para gerar o relatório de produtividade é necessário:

Feito isso o item já pode ser utilizado em algum relatório e terá seu processamento executado conforme o que foi programado. Observe que caso não haja diferença dos itens do relatório da instituição e da UFRN não é necessário nenhuma alteração no que diz sentido a isso. A implementação destes itens só será necessário caso sejam diferentes do da UFRN. É importante que as implementações da UFRN sejam mantidas intactas e qualquer modificação seja realizada através da implementação de novas classes para mapearem os itens, pois assim será garantido a evolução sem conflito do código.

Configuração dos filtro de docentes

Um outro ponto de extensão é a configuração do filtro de docentes que é utilizado no caso de uso de gerar relatório de produtividade, acessível a partir deste caminho: SIGAA > Pesquisa > Produção Intelectual > Geração de Índices de Produtividade > Cálculo do Índice de Produção dos Docentes (Relatório-Espelho)

Ao permitir configurar os filtros de docentes torna-se possível criar, por exemplo, um filtro de docente por área de pesquisa e fazer a distribuição das cotas de pesquisa de um edital por área.

Para criar um novo filtro do docentes é necessário realizar os seguintes passos: - Criar um novo TipoFiltroDocentes, esta entidade é persistida na tabela SIGAA.prodocente.tipo_filtro_docentes. Na coluna SIGAA.prodocente.tipo_filtro_docentes.classe é necessário informar o caminho completo da classe que irá implementar este filtro. - Criar a classe que foi informada no passo anterior que deve herdar da interface br.ufrn.sigaa.prodocente.negocio.relatorioprodutividade.FiltroDocente e implementar o método public Collection<Servidor> getDocentes(List<Integer> editaisSelecionados) definido nesta interface com o comportamento esperado para este filtro.

Seguindo estes passos o filtro aparecerá imediatamente no caso de uso de geração dos relatórios de produtividade e estarão disponíveis para uso.

Classes Persistentes e Tabelas Envolvidas

Classe Tabela
br.ufrn.sigaa.prodocente.relatorios.dominio.ItemRelatorioProdutividade SIGAA.prodocente.item_relatorio_produtividade
br.ufrn.sigaa.prodocente.relatorios.dominio.TipoFiltroDocentes SIGAA.prodocente.tipo_filtro_docentes

Classes Não Persistentes e Interfaces Envolvidas

Classe
br.ufrn.sigaa.prodocente.negocio.relatorioprodutividade.ProducaoMapper
br.ufrn.sigaa.prodocente.negocio.relatorioprodutividade.AtividadeMapper
br.ufrn.sigaa.prodocente.negocio.relatorioprodutividade.AbstractMapperProducaoIntelectual
br.ufrn.sigaa.prodocente.negocio.relatorioprodutividade.AbstractMapperAtividade
br.ufrn.sigaa.prodocente.negocio.relatorioprodutividade.FiltroDocente
br.ufrn.sigaa.prodocente.negocio.RelatorioHelper