Comunidade

Visando a continuidade e expansão do projeto está sendo formalizado um grupo de desenvolvimento colaborativo da plataforma envolvendo as Unidades Descentralizadas que adotarem o PANDORA.

O objetivo da comunidade é manter, de forma colaborativa, um único código em todas as instâncias da aplicação nas diferentes Unidades Descentralizadas da Embrapa.  Com isso, elimina-se a redundância de trabalho e promove-se a contínua melhoria do software ao mesmo tempo em que se mantém as informações sensíveis de cada Unidade resguardadas dentro de sua própria infraestrutura.

O princípio da comunidade é que cada Unidade se esforce na implementação de funcionalidades demandadas por sua própria realidade. Tais funcionalidade são, no entanto, nativamente compartilhadas por todas as instâncias independentes da aplicação. Os gestores das demais instâncias podem ou não ativar estas funcionalidades para fazer uso em suas Unidades. Com base na isonomia da Empresa, pode-se afirmar que a grande maioria destas funcionalidades serão de interesse comum.

Para possibilitar que o software seja alterado por uma equipe sem prejudicar as instâncias em produção em outras Unidades, todas as funcionalidades serão discutidas e aprovadas nas ferramentas de comunicação (lista de discussão e fórum) da comunidade. Sendo aprovada, dá-se início a sua implementação seguindo criteriosamente a convenção de codificação e o padrão de documentação. Alterações que possam provocar mudanças no comportamento de funcionalidades existentes ou implementações de novas funcionalidades que possuam regras de negócio distintas dentre as diferentes Unidades que utilizam o sistema deverão ser implementadas com possibilidade de serem configuradas de forma independente para cada instância do software.

Por exemplo, na instância do Pandora da Embrapa Gado de Corte, caso um usuário esteja há mais de 90 dias sem atualizar seus dados pessoais, é emitido um alerta de que ele deve atualizá-los. Esta regra de negócios pode não existir em outras Unidades ou ainda existir, mas o período de dias ser diferente. Assim, esta configuração fica disponível no arquivo XML “app/section/system.home/config.inc.xml“:

<?xml version="1.0" encoding="ISO-8859-1"?>
<action-mapping>
	<directive name="_NEED_UPDATE_AFTER_DAYS_" value="90" />
	
	<action
		name="home"
		label="System Monitor | pt_BR: Monitor do Sistema | es_ES: Monitor de sistema"
		default="true"
		description="">
		<menu function="search" image="create.png" label="Add RSS Feed | pt_BR: Adicionar Feed RSS | es_ES: Agregar Feed RSS" />
		<menu action="profile" image="personal.png" />
	</action>
	
	<action
		name="profile"
		label="Personal Data Show | pt_BR: Visualizar Dados Pessoais | es_ES: Mostrar datos de carácter personal"
		description="">
		<menu function="search" image="permission.png" label="Change Password | pt_BR: Mudar Senha | es_ES: Cambiar contraseña" />
		<menu action="personal" image="edit.png" />
		<menu action="home" image="list.png" />
	</action>
	
	<action
		name="personal"
		label="Edit Personal Data | pt_BR: Editar Dados Pessoais | es_ES: Edición de Datos de Carácter Personal"
		description="">
		<menu function="search" image="permission.png" label="Change Password | pt_BR: Mudar Senha | es_ES: Cambiar contraseña" />
	</action>
</action-mapping>

A linha destacada configura a quantidade de dias passados desde que os dados pessoais do usuários foram atualizados. Caso seja colocado o valor “0” (zero), esta regra de negócio é desprezada pelo sistema.