Skip to content

Commit

Permalink
Merge branch 'develop' into feature/modelo-de-oportunidade
Browse files Browse the repository at this point in the history
  • Loading branch information
vicmagpac committed Jul 30, 2024
2 parents 0d7f209 + 93255bb commit 31e515e
Show file tree
Hide file tree
Showing 446 changed files with 21,321 additions and 3,222 deletions.
7 changes: 7 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
| Q | A |
|---------------|---------------------------------------------------------------------------------------------------------------------------|
| Branch? | 7.2 for features / 5.4, 6.4, 7.0, and 7.1 for bug fixes <!-- see below --> |
| Bug fix? | yes/no |
| New feature? | yes/no <!-- please update src/**/CHANGELOG.md files --> |
| Deprecations? | yes/no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> |
| Issues | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead --> |
21 changes: 1 addition & 20 deletions .github/workflows/cicd-dev.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,8 @@
name: ci/cd-dev

on:
pull_request:
branches:
- develop
types:
- closed
- ready_for_review
- review_requested

workflow_dispatch:
on: [pull_request]

jobs:
CODE_STYLE:
name: PHP-CS-Fixer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run PHP-CS-Fixer
uses: erkenes/php-cs-fixer-action@main
with:
args: '--dry-run --diff -vvv'

BUILD:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: tests

on:
pull_request:
branches:
- develop

jobs:
CODE_STYLE:
name: CODE STYLE
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run PHP-CS-Fixer
uses: erkenes/php-cs-fixer-action@main
with:
args: '--dry-run --diff -vvv'

PHP_UNIT:
name: PHP UNIT
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1

- name: Checkout submodules
run: git submodule update --init --recursive

- name: Ajustar branch do MultipleLocalAuth
run: cd src/plugins/MultipleLocalAuth && git checkout v3.0.0

- name: Inicializar o mapa em modo develop
run: cd dev && docker-compose run -d --service-ports mapas

- name: Esperar o serviço inicializar
run: sleep 60

- name: Instalar os pacotes
run: docker exec -t $(docker-compose -f dev/docker-compose.yml ps -q mapas) composer.phar install

- name: Criar o arquivo .env na pasta app
run: docker exec -t $(docker-compose -f dev/docker-compose.yml ps -q mapas) cp app/.env.example app/.env

- name: Configurar o arquivo .env na pasta app
run: docker exec -t $(docker-compose -f dev/docker-compose.yml ps -q mapas) sed -i 's/APP_ENV=/APP_ENV=local/g' app/.env

- name: Executando as migrations do banco de dados
run: docker exec -t $(docker-compose -f dev/docker-compose.yml ps -q mapas) php app/bin/doctrine migrations:migrate -n

- name: Executar as fixtures
run: docker exec -t $(docker-compose -f dev/docker-compose.yml ps -q mapas) php app/bin/console app:fixtures

- name: Executar os testes
uses: php-actions/phpunit@master
with:
version: 10.5
php_version: 8.2
bootstrap: vendor/autoload.php
args: app/tests
120 changes: 120 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,125 @@ Todas as mudanças notáveis no projeto serão documentadas neste arquivo.

O formato é baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/)
e este projeto adere ao [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [7.5.0-RC]
### Melhorias
- Implemente configuração que possibilita tornar obrigatória a inserção de uma imagem de avatar pelo agente ao enviar a inscrição.

## [unreleased]
### Novas funcionalidades
- **Bloqueio de edição de entidades**, evitando que duas pessoas diferentes editem a mesma entidade simultaneamente
- **Customizador do tema BaseV2** para subsites, possibilitando a configuração de cores, imagens, textos, posição do mapa etc
- **Novo exportação de planilhas**
- Possibilidade do usuário escolher o tipo de arquivo exportado entre `.csv`, `.xlsx` e `.ods`
- Processamento em background enviando o link para donwload do arquivo por email quando a planilha estiver pronta.
- **Edição de campos de inscrições enviadas** - permite que o gestor abra alguns campos de uma determinada inscrição, por um tempo definido, para que o proponente possa modificar somente esses campos, fazendo com que não seja necessário colocar a inscriçào inteira como rascunho.
- **Visualização das entidades em tabelas** na página de busca, para admins do sistema, com botão para exportar planilha com as entidades filtradas.
- Nova opção para o gestor solicitar o avatar do agente responsável no formulário de inscrição.
- Cria novas colunas na tabela registration para funcionalidade de edição de inscrições
- Implementa modo de visualização das entidades em tabelas para admins do sistema
- Implementa bloqueio de edição de entidades, evitando que duas pessoas diferentes editem a mesma entidade simultaneamente
- Corrige erro que ao publicar a entidade a mesma permanece em rascunho
- Implementa possibilidade de exigir que o proponente defina uma imagem de avatar no momento da inscrição
- Implementa nova tela para configuração dos agentes de suporte

### Melhorias
- Salva revisão dos campos dos formulários das oportunidades, tornando possível auditoria das modificações nos formulários
- Refatoração dos campos datepicker e detetimepicker para melhorar a usabilidade
- Faz dos campos CPF e CNPJ somente leitura
- Redesign da tabela de avaliações
- Refatoraçào na configuração de cotas, para que seja possível escolher os campos que representam as cotas por tipo de proponente, evitando conflitos
- Refatoração na configuração de distribuição de vagas por território, para que seja possível definir quais campos representam a região para cada tipo de proponente.
- Refatoração no cálculo das cotas, para que sejam respeitadas dentro de cada faixa/linha e região.
- Implementa slot no entity-table para permitir substituição do filtro por palavra-chave
- Implementa método detectDateFormat() no Utils para detectar o formato de uma data
- Implementa nova tabela de listagem de avaliações

### Correções

### Melhorias não funcionais
- Possibilidade de configurar metadados `readonly` que após serem definido o valor uma vez, um usuário que comum não pode alterar.

## [7.4.12]
### Correções
- Corrige erro que deixava a condicionalidade dos campos/anexos ativada ao editar, mesmo ele não estando condicionado a outro
- Corrige erro na tabela de listagem de inscrições que impedia a listagem de todas as inscrições de oportunidades multifases
- Corrige erro do entity-field que impedia as opções serem exibidas e salvas quando se usava campo do tipo radio
- Corrige erro ao definir a latitude e longitude em campos do agente responsável que fazem sincronia com a inscrição (Campos @)
- Corrige erro que não deixava a autorização de publicar a localização atravez do formulario de inscrição em campos @
- Corrige o processo de limpeza do cache dos resumos de inscrições para que seja atualizado corretamente nas mudanças de status das inscrições
- Corrige sincronização de inscrição no botão do resumo de inscrições
- Faz o enfileiramento do job UpdateSummaryCaches no endpoint syncRegistrations para que atualize tambem o resumo de inscrições
- Corrige carregamento do menu 'Meu Perfil' no menu principal quando a pessoa esta deslogada

### Melhorias
- Ajusta filtros de avaliações na tela do avaliador possibilitando filtrar pelos status de avanço da avaliação

## [7.4.11] - 2024-07-10
### Melhorias
- Permite que seja feita a distribuição de avaliações por faixas
- Permite que seja feita a distribuição de avaliações por tipo de proponente

### Correções
- Permite que administradores de oportunidades que não sejam admin convidem avaliadores
- Corrige permissões para gestores de oportunidades que não sejam administradores do sistema remover, habilitar e desabilitar avaliadores
- Exibe o status de pendente para avaliadores que ainda não aceitaram ser avaliadores de uma oportunidade

## [7.4.10] - 2024-07-08
## Correções
- Corrige reatividade do componente mc-select
- Corrige exibição da categoria, tipo de proponente e faixa/linha para os avaliadores, deixando sempre visível
- Corrige ordem dos campos na lista de seleção dos campos visíveis para os avaliadores
- Corrige exibição de campo selecionado do componente de seleção quando há grupos de valores
- Evita que a página de avaliação quebre no caso de haver uma inscrição sem data de envio
- Permite que avaliadores avaliem inscrições mesmo com a fase publicada. O que importa é são as datas de avaliação.
- Corrige obtenção de metadados para inscrições da última fase que não foram selecionadas em todas as fases anteriores

## Melhorias
- Melhora o texto da modal de confirmação de avaliador explicando que todas as avaliações serão excluídas permanentemente.

## [7.4.9] - 2024-07-03
### Correções
- Corrige salvamento e tratamento dos links das redes sociais
- Correções e padronização nos estilos das modais
- Corrige exibição de campo numérico com valor zero em fases
- Corrige edição, por usuários de suporte, de campos opcionais não preenchidos em inscrições

### Melhorias
- Adiciona a rede social tiktok

## [7.4.8] - 2024-06-26
### Correções
- Corrige exibição da categoria na planilha de lista de inscrições
- Corrige exibição do botão de preencher formulário na aba de ficha de inscrição
- Corrige quebra em consultas da API quando passado o nome da classe com uma barra inicial
- Corrige formulário de configuração de campo do formulário que quebrava em algumas situações

### Melhorias
- Adiciona novas colunas na planilha de lista inscrições: Tipo de proponente e Faixa/Linha
- Adiciona nome da fase de coleta de dados na página de preenchimento do formulário de inscrição

## [7.4.7] - 2024-06-24
### Correções
- correção no db-update que corrige os valores das colunas registration_proponent_types, registration_ranges e registration_categories das oportuniodades
- Corrige erro que impede os botões de ações das avaliações serem exibidos para o avaliador
- Corrige exibição condicional de campos de faixas e tipos de proponente

### Melhorias não funcionais
- Implementa método para recriar o ponteiro das inscrições entre fases
- Implementa endpoint para recriar o ponteiro das inscrições entre fases

## [7.4.6] - 2024-06-21
### Melhorias
- Possibilita que o proponente selecione faixa, tipo de proponente e categoria após criar a inscrição quando esses forem configurados na oportunidade posteriormente a criação da inscrição
- Impede a remoção de faixas, categorias e tipos de proponentes que estejam sendo utilzadas em condicionais de campos ou inscrições
- Implementa db-update para padronizar as de tipo de proponente, faixas e categorias das oportunidades quando estão vazias
- Ajusta para evitar que dados vazios sejam inseridos nas configurações de cotas e pol´titicas afirmatívas

### Correções
- Melhora processamento do resumo de avaliações
- Só exibe categoria, tipo de proponente e faixa na singe da inscrição quando há essa informação
- Garante que o resumo das avaliações seja montado somente se existir avaliações mapeadas
- Corrige modal de aplicar avaliações técnicas

## [7.4.5] - 2024-06-17
### Melhorias
Expand Down Expand Up @@ -369,6 +488,7 @@ e este projeto adere ao [Semantic Versioning](https://semver.org/spec/v2.0.0.htm

### Correções- Corrige erro na listagem de inscrições de um edital quando não exitia nehuma inscrição
- Corrige erro que ocorria no momento da publicação de resultado final ocasionado pela tentativa de enviar os e-mails
- Corrige filtros da api de oportunidades e projetos de subsites, fazendo só serem exibidos aqueles criados no subsite atual
- Corrige validação de metadados preenchidos com valores que o php, com cast para boolean, resolve como false (Ex: 0, [], '')
- Corrige criação de fase de coleta de dados que ficou quebrada após a implementação das áreas de interesse

Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,12 @@ Agradecemos profundamente a todos que contribuíram até a última versão do pr
- [Nova Arquitetura](./app/README.md) de arquivos e diretórios
- [Conexão](./app/README.md) com o Banco de Dados
- [Como colaborar](./help/CREATE-ISSUES.md) criando issues
- [Como implementar](./app/CREATE-PULL-REQUESTS.md) novos códigos através de pull requests
- [Como implementar](./help/CREATE-PULL-REQUESTS.md) novos códigos através de pull requests
- [Fluxo](./help/DEV-FLOW.md) de Desenvolvimento

## Tecnologias

- PHP7^
- PHP8.1^
- Symfony packages
- Slim packages
- Doctrine
Expand Down
1 change: 1 addition & 0 deletions app/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
APP_ENV=
3 changes: 2 additions & 1 deletion app/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
vendor/
vendor/
.env
94 changes: 93 additions & 1 deletion app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,43 @@ public function __construct()

---

## Migrations
Migrations são a forma (correta) de fazer um versionamento do banco de dados, nesta parte da aplicação isso é fornecido pela biblioteca `doctrine/migrations` mas no core do MapaCultural isso ainda é feito por uma decisão técnica interna chamada `db-updates.php`

<details>
<summary>Como criar uma nova migration</summary>

#### Passo 1 - Criar uma nova classe no diretório `/app/migrations`

```php
<?php

declare(strict_types=1);

namespace App\Migrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

final class Version20241231235959 extends AbstractMigration
{
public function up(Schema $schema): void
{
//$this->addSql('CREATE TABLE ...');
}

public function down(Schema $schema): void
{
//$this->addSql('DROP TABLE ...');
}
}
```

Note que o nome da classe deve informar o momento de sua criação, para que seja mantida uma sequencia temporal da evolução do esquema do banco de dados.

> Documentação oficial das migrations do Doctrine: <https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/generating-migrations.html>
</details>
## Command
Comandos são entradas via CLI (linha de comando) que permitem automatizar alguns processos, como rodar testes, veririfcar estilo de código, e debugar rotas

Expand Down Expand Up @@ -388,7 +425,7 @@ Para criar um no cenário de teste funcional, basta adicionar sua nova classe no
```php
<?php

namespace App\Tests;
namespace App\Tests\Functional;

class MeuTest extends AbstractTestCase
{
Expand Down Expand Up @@ -417,8 +454,38 @@ Para executar os testes veja a seção <a href="#console-commands">Console Comma

---

## DI (Injeção de dependência)
Com a injeção de dependência diminuímos o acoplamento das nossas classes. E a razão para isso ser tão importante está no princípio da inversão de dependência em que o código deve depender de abstrações e não de implementações concretas.

Documentação PHP-DI: https://php-di.org

Todo o código se encontra no diretório `/app/config`, no arquivo `di.php`.

## Console Commands

<details>
<summary>CACHE CLEAR</summary>

### Limpar cache
Para executar o comando de limpar cache basta entrar no container da aplicação e executar o seguinte comando:

```shell
php app/bin/console cache:clear
```

</details>

<details>
<summary>COMMAND SQL</summary>

### Executar código SQL
Para executar um comando SQL basta entrar no container da aplicação e executar o seguinte comando:

```shell
php app/bin/console database:sql {sql}
```
O argumento chamado de `sql` é requerido e é o comando a ser executar no banco de dados.
</details>

<details>
<summary>TESTS</summary>
Expand Down Expand Up @@ -451,11 +518,36 @@ php app/bin/console app:code-style

:memo: Fixtures são dados falsos com a finalidade de testes.

#### Configuração do ambiente

Antes de executar os fixtures, é necessário criar um arquivo `.env` dentro da pasta app (/app/.env). Este arquivo deve conter a configuração de ambiente necessária. Um arquivo de exemplo chamado `.env.example` foi fornecido para facilitar esse processo.

1. Copie o arquivo `.env.example` para `.env`:

```sh
cp .env.example .env
```

2. Abra o arquivo `.env` e configure as variáveis de ambiente. Para fins de desenvolvimento, você pode definir a variável `APP_ENV` como `local`:

```sh
APP_ENV=local
```


#### Executando os Fixtures


Para executar o conjunto de fixtures basta entrar no container da aplicação e executar
```
php app/bin/console app:fixtures
```
> **Observação:**
> Se o arquivo `.env` não for encontrado, você verá a seguinte mensagem de erro:
>
> ```sh
> Please create a .env file in the root directory (/app/.env)
> ```
</details>

<details>
Expand Down
Loading

0 comments on commit 31e515e

Please sign in to comment.