Commit 4d09ea73 authored by Rafa Chaves's avatar Rafa Chaves
Browse files

Merge branch 'master' into develop

parents 1215b491 925c3539
......@@ -13,6 +13,8 @@ variables:
KUBECONFIG: /etc/k8s-config
build to homolog:
variables:
GIT_SUBMODULE_STRATEGY: normal
stage: build
script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
......@@ -57,8 +59,8 @@ deploy to production:
stage: deploy
image: hacklab/kubectl:latest
script:
- echo ${kube_config} | base64 -d > ${KUBECONFIG}
- kubectl -n mapas-iberculturaviva-prod --record deployment.apps/web set image deployment.apps/web mapas=$RELEASE_IMAGE
- echo ${kube_hackcloud} | base64 -d > ${KUBECONFIG}
- kubectl -n ibercultura-mapas-prod --record deployment.apps/mapas set image deployment.apps/mapas mapas=$RELEASE_IMAGE
only:
- tags
environment: production
......
......@@ -5,6 +5,7 @@ return [
'EvaluationMethodTechnical' => ['namespace' => 'EvaluationMethodTechnical'],
'EvaluationMethodSimple' => ['namespace' => 'EvaluationMethodSimple'],
'EvaluationMethodDocumentary' => ['namespace' => 'EvaluationMethodDocumentary'],
'MultipleLocalAuth' => [ 'namespace' => 'MultipleLocalAuth' ],
......
......@@ -5,7 +5,7 @@ return [
'app.siteName' => env('SITE_NAME', 'Mapa IberCultura Viva'),
'app.siteDescription' => \MapasCulturais\i::__("O Mapa IberCultura Viva é a plataforma livre, gratuita e colaborativa de mapeamento do programa de cooperação IberCultura Viva. Neste espaço, representantes de organizações culturais comunitárias e povos originários podem se registrar como agentes culturais, difundir eventos, cadastrar projetos e inscrever-se nos editais e concursos publicados.<br/><br/>
A informação coletada pelo Mapa IberCultura Viva será utilizada para a construção/consolidação de indicadores culturais que fortalecerão os sistemas de informação cultural dos países membros do programa (Argentina, Brasil, Chile, Costa Rica, El Salvador, Equador, Espanha, Guatemala, México, Peru e Uruguai)."),
'app.defaultActivity' => env('DEFAULT_ACTIVITY', \MapasCulturais\i::__('Cultura Comunitária')),
'themes.active' => env('ACTIVE_THEME', 'IberCulturaViva'),
'app.lcode' => env('APP_LCODE', 'es_ES,pt_BR'),
......
......@@ -3,12 +3,14 @@ define('APP_BASE_URL', (isset($_SERVER['HTTPS']) ? 'https://' : 'http://' ) . @$
$config = include 'conf-base.php';
$config_files = glob(__DIR__ . "/config.d/*.php");
sort($config_files);
foreach($config_files as $config_file) {
$config = array_merge($config, include ($config_file) );
foreach(['conf-common.d', 'config.d'] as $folder){
$config_files = glob(__DIR__ . "/{$folder}/*.php");
sort($config_files);
foreach($config_files as $config_file) {
$config = array_merge($config, include ($config_file) );
}
}
return $config;
\ No newline at end of file
INSERT INTO usr(auth_provider, auth_uid, email, last_login_timestamp, create_timestamp, status)
VALUES
(1, 1, 'Admin@local', current_date, current_date, 1);
INSERT INTO agent(user_id, type, name, create_timestamp, status)
SELECT id, 1, email, current_date, 1
FROM usr
WHERE usr.email = 'Admin@local';
UPDATE usr SET profile_id = (SELECT id FROM agent WHERE email = 'Admin@local') WHERE email = 'Admin@local';
INSERT INTO role(usr_id, name)
SELECT id, 'superAdmin'
FROM usr
WHERE usr.email = 'Admin@local';
This diff is collapsed.
FROM hacklab/mapasculturais:v5.1
RUN git clone https://github.com/hacklabr/mapasculturais-multipleLocalAuth /var/www/html/protected/application/plugins/MultipleLocalAuth
RUN curl https://raw.githubusercontent.com/opauth/facebook/master/FacebookStrategy.php > /var/www/html/protected/application/plugins/MultipleLocalAuth/Facebook/FacebookStrategy.php
COPY compose/common/config.php /var/www/html/protected/application/conf/config.php
......@@ -11,3 +10,4 @@ COPY themes /var/www/html/protected/application/themes
COPY plugins /var/www/html/protected/application/plugins
COPY translations /var/www/html/protected/application/translations
RUN sass /var/www/html/protected/application/themes/IberCulturaViva/assets/css/sass/main.scss /var/www/html/protected/application/themes/IberCulturaViva/assets/css/main.css
\ No newline at end of file
......@@ -7,13 +7,17 @@ services:
ports:
- "80:80"
volumes:
- ../../mapasculturais/src/protected/application/lib:/var/www/html/protected/application/lib
- ../docker-data/assets:/var/www/html/assets
- ../docker-data/public-files:/var/www/html/files
- ../docker-data/private-files:/var/www/private-files
# - ../docker-data/pcache-cron.log:/var/www/scripts/nohup.out
- ../../ibermapas/src/protected/application/lib:/var/www/html/protected/application/lib
- ../../ibermapas/src/protected/application/themes:/var/www/html/protected/application/themes
- ../../ibermapas/src/protected/db-updates.php:/var/www/html/protected/db-updates.php
- ../compose/common/config.d:/var/www/html/protected/application/conf/conf-common.d
- ../compose/local/config.d:/var/www/html/protected/application/conf/config.d
......@@ -25,7 +29,7 @@ services:
environment:
- PENDING_PCACHE_RECREATION_INTERVAL=10
- APP_MODE=development
- ACTIVE_THEME=IberCulturaViva
depends_on:
- db
......@@ -41,9 +45,7 @@ services:
ports:
- "5432:5432"
volumes:
# - ../compose/local/db/dump.sql:/docker-entrypoint-initdb.d/dump.sql
- ../compose/local/db/schema.sql:/docker-entrypoint-initdb.d/schema.sql
- ../compose/local/db/initial-data.sql:/docker-entrypoint-initdb.d/initial-data.sql
- ../compose/local/db/dump.sql:/docker-entrypoint-initdb.d/dump.sql
- ibercultura-db-data:/var/lib/postgresql/data
volumes:
......
......@@ -28,6 +28,8 @@ services:
environment:
- PENDING_PCACHE_RECREATION_INTERVAL=10
- APP_MODE=development
- MAPS_GOOGLE_API_KEY=AIzaSyBFYFIpzm9DEGiAsQ9zkrxJgMl-xkkXAHI
- MAPS_USE_GOOGLE_GEOCODE=true
depends_on:
- db
......
......@@ -56,6 +56,57 @@ class Theme extends BaseV1\Theme{
$headers['Content-Disposition'] = str_replace('attachment; ', '', $headers['Content-Disposition']);
}
});
// atribui área de atuação padrão para novos agentes e espaços
$app->hook("entity(<<Agent|Space>>).insert:before", function () use ($app) {
/** @var \MapasCulturais\Entity $this */
$terms = (array) $this->terms ?? [];
if (empty($this->terms["area"])) {
$terms["area"] = [$app->config["app.defaultActivity"]];
$this->terms = $terms;
}
return;
});
// insere botão de imprimir na visualização do formulário de inscrição
$app->hook("template(registration.view.form):begin", function () use ($app) {
/** @var \MapasCulturais\Theme $this */
if (!$this->controller->requestedEntity->canUser("admin")) {
return;
}
$this->part("button-print-registration", [
"registration" => $this->controller->requestedEntity
]);
return;
});
// implementa o endpoint para o botão de imprimir
$app->hook("GET(registration.print)", function () use ($app) {
/** @var \MapasCulturais\Controller $this */
$this->requireAuthentication();
if (!$this->requestedEntity->canUser("admin")) {
$this->errorJson("Unauthorised.", 401);
return;
}
$app->view->enqueueScript("app", "print-registration", "js/print-registration.js");
$app->view->enqueueStyle("app", "print-registration", "css/print-registration.css", ["main"]);
$this->render("single", [
"entity" => $this->requestedEntity
]);
return;
});
return;
}
function includeCommonAssets()
{
parent::includeCommonAssets();
$this->enqueueScript("app", "registration-phone", "js/registration-phone.js");
return;
}
function includeVendorAssets()
{
parent::includeVendorAssets();
$this->enqueueScript("vendor", "libphonenumber-min", "vendor/libphonenumber-min.js");
return;
}
protected function _publishAssets() {
......@@ -81,7 +132,7 @@ class Theme extends BaseV1\Theme{
parent::register();
$app = App::i();
// Metadata de espaço
$this->registerSpaceMetadata('En_Pais', [
'label' => i::__('País'),
......@@ -179,6 +230,17 @@ class Theme extends BaseV1\Theme{
'Não' => i::__('Não')
]
]);
// international phone type for registrations
$app->registerRegistrationFieldType(new \MapasCulturais\Definitions\RegistrationFieldType([
"slug" => "phone",
"name" => \MapasCulturais\i::__("Campo de telefone internacional"),
"viewTemplate" => "registration-field-types/phone",
"configTemplate" => "registration-field-types/phone-config",
"validations" => [
"v::phone()" => \MapasCulturais\i::__("O valor não é um telefone válido")
]
]));
return;
}
......
<?php
/**
* See https://github.com/Respect/Validation to know how to write validations
*/
return array(
'metadata' => array(
'nomeCompleto' => array(
'private' => true,
'label' => \MapasCulturais\i::__('Nome completo ou Razão Social'),
'validations' => array(
//'required' => \MapasCulturais\i::__('Seu nome completo ou jurídico deve ser informado.')
),
'available_for_opportunities' => true
),
'documento' => array(
'private' => true,
'label' => \MapasCulturais\i::__('CPF ou CNPJ'),
'validations' => array(
'v::oneOf(v::cpf(),v::cnpj())' => \MapasCulturais\i::__('O número de documento informado é inválido.')
),
'available_for_opportunities' => true
),
'raca' => array(
'private' => true,
'label' => \MapasCulturais\i::__('Raça/cor'),
'type' => 'select',
'options' => array(
'' => \MapasCulturais\i::__('Não Informar'),
'Branca' => \MapasCulturais\i::__('Branca'),
'Preta' => \MapasCulturais\i::__('Preta'),
'Amarela' => \MapasCulturais\i::__('Amarela'),
'Parda' => \MapasCulturais\i::__('Parda'),
'Indígena' => \MapasCulturais\i::__('Indígena')
),
'available_for_opportunities' => true
),
'dataDeNascimento' => array(
'private' => true,
'label' => \MapasCulturais\i::__('Data de Nascimento/Fundação'),
'type' => 'date',
'validations' => array(
'v::date("Y-m-d")' => \MapasCulturais\i::__('Data inválida').'{{format}}',
),
'available_for_opportunities' => true
),
'localizacao' => array(
'label' => \MapasCulturais\i::__('Localização'),
'type' => 'select',
'options' => array(
'' => \MapasCulturais\i::__('Não Informar'),
'Pública' => \MapasCulturais\i::__('Pública'),
'Privada' => \MapasCulturais\i::__('Privada')
)
),
'genero' => array(
'private' => true,
'label' => \MapasCulturais\i::__('Gênero'),
'type' => 'select',
'options' => array(
'' => \MapasCulturais\i::__('Não Informar'),
'Mulher Cis' => \MapasCulturais\i::__('Mulher Cis'),
'Homem Cis' => \MapasCulturais\i::__('Homem Cis'),
'Mulher Trans/travesti' => \MapasCulturais\i::__('Mulher Trans/travesti'),
'Homem Trans' => \MapasCulturais\i::__('Homem Trans'),
'Não Binárie/outra variabilidade' => \MapasCulturais\i::__('Não Binárie/outra variabilidade'),
'Não declarada' => \MapasCulturais\i::__('Não declarada'),
),
'available_for_opportunities' => true,
'field_type' => 'select'
),
'orientacaoSexual' => array(
'private' => true,
'label' => \MapasCulturais\i::__('Orientação Sexual'),
'type' => 'select',
'options' => array(
'' => \MapasCulturais\i::__('Não Informar'),
'Heterossexual' => \MapasCulturais\i::__('Heterossexual'),
'Lésbica' => \MapasCulturais\i::__('Lésbica'),
'Gay' => \MapasCulturais\i::__('Gay'),
'Bissexual' => \MapasCulturais\i::__('Bissexual'),
'Assexual' => \MapasCulturais\i::__('Assexual'),
'Outras' => \MapasCulturais\i::__('Outras')
),
'available_for_opportunities' => true
),
'emailPublico' => array(
'label' => \MapasCulturais\i::__('Email Público'),
'validations' => array(
'v::email()' => \MapasCulturais\i::__('O endereço informado não é email válido.')
),
'available_for_opportunities' => true,
'field_type' => 'email'
),
'emailPrivado' => array(
'private' => true,
'label' => \MapasCulturais\i::__('Email Privado'),
'validations' => array(
//'required' => \MapasCulturais\i::__('O email privado é obrigatório.'),
'v::email()' => \MapasCulturais\i::__('O endereço informado não é um email válido.')
),
'available_for_opportunities' => true,
'field_type' => 'email'
),
'telefonePublico' => array(
'label' => \MapasCulturais\i::__('Telefone Público'),
'type' => 'string',
'validations' => array(
'v::regex("#\+\d{1,3}( ?\(\d+\) ?|-\d+-| ?\d+ ?) ?(\d+[- ]?)+#")' => \MapasCulturais\i::__('O número de telefone informado é inválido.')
),
'available_for_opportunities' => true,
'field_type' => 'phone'
),
'telefone1' => array(
'private' => true,
'label' => \MapasCulturais\i::__('Telefone 1'),
'type' => 'string',
'validations' => array(
'v::regex("#\+\d{1,3}( ?\(\d+\) ?|-\d+-| ?\d+ ?) ?(\d+[- ]?)+#")' => \MapasCulturais\i::__('O número de telefone informado é inválido.')
),
'available_for_opportunities' => true,
'field_type' => 'phone'
),
'telefone2' => array(
'private' => true,
'label' => \MapasCulturais\i::__('Telefone 2'),
'type' => 'string',
'validations' => array(
'v::regex("#\+\d{1,3}( ?\(\d+\) ?|-\d+-| ?\d+ ?) ?(\d+[- ]?)+#")' => \MapasCulturais\i::__('O número de telefone informado é inválido.')
),
'available_for_opportunities' => true,
'field_type' => 'phone'
),
'endereco' => array(
'private' => function(){
return !$this->publicLocation;
},
'label' => \MapasCulturais\i::__('Endereço'),
'type' => 'text'
),
'En_CEP' => [
'label' => \MapasCulturais\i::__('CEP'),
'private' => function(){
return !$this->publicLocation;
},
],
'En_Nome_Logradouro' => [
'label' => \MapasCulturais\i::__('Logradouro'),
'private' => function(){
return !$this->publicLocation;
},
],
'En_Num' => [
'label' => \MapasCulturais\i::__('Número'),
'private' => function(){
return !$this->publicLocation;
},
],
'En_Complemento' => [
'label' => \MapasCulturais\i::__('Complemento'),
'private' => function(){
return !$this->publicLocation;
},
],
'En_Bairro' => [
'label' => \MapasCulturais\i::__('Bairro'),
'private' => function(){
return !$this->publicLocation;
},
],
'En_Municipio' => [
'label' => \MapasCulturais\i::__('Município'),
'private' => function(){
return !$this->publicLocation;
},
],
'En_Estado' => [
'label' => \MapasCulturais\i::__('Estado'),
'private' => function(){
return !$this->publicLocation;
},
'type' => 'select',
'options' => array(
'AC'=>'Acre',
'AL'=>'Alagoas',
'AP'=>'Amapá',
'AM'=>'Amazonas',
'BA'=>'Bahia',
'CE'=>'Ceará',
'DF'=>'Distrito Federal',
'ES'=>'Espírito Santo',
'GO'=>'Goiás',
'MA'=>'Maranhão',
'MT'=>'Mato Grosso',
'MS'=>'Mato Grosso do Sul',
'MG'=>'Minas Gerais',
'PA'=>'Pará',
'PB'=>'Paraíba',
'PR'=>'Paraná',
'PE'=>'Pernambuco',
'PI'=>'Piauí',
'RJ'=>'Rio de Janeiro',
'RN'=>'Rio Grande do Norte',
'RS'=>'Rio Grande do Sul',
'RO'=>'Rondônia',
'RR'=>'Roraima',
'SC'=>'Santa Catarina',
'SP'=>'São Paulo',
'SE'=>'Sergipe',
'TO'=>'Tocantins',
)
],
'En_Pais' => [
'label' => \MapasCulturais\i::__('País'),
'type' => 'select',
'options' => [
'AD' => 'Andorra',
'AR' => 'Argentina',
'BO' => 'Bolivia',
'BR' => 'Brasil',
'CL' => 'Chile',
'CO' => 'Colombia',
'CR' => 'Costa Rica',
'CU' => 'Cuba',
'EC' => 'Ecuador',
'SV' => 'El Salvador',
'ES' => 'España',
'GT' => 'Guatemala',
'HN' => 'Honduras',
'MX' => 'México',
'NI' => 'Nicarágua',
'PA' => 'Panamá',
'PY' => 'Paraguay',
'PE' => 'Perú',
'PT' => 'Portugal',
'DO' => 'República Dominicana',
'UY' => 'Uruguay',
'VE' => 'Venezuela',
]
],
'site' => array(
'label' => \MapasCulturais\i::__('Site'),
'validations' => array(
"v::url()" => \MapasCulturais\i::__("A url informada é inválida.")
),
'available_for_opportunities' => true
),
'facebook' => array(
'label' => \MapasCulturais\i::__('Facebook'),
'validations' => array(
"v::url('facebook.com')" => \MapasCulturais\i::__("A url informada é inválida.")
),
'available_for_opportunities' => true
),
'twitter' => array(
'label' => \MapasCulturais\i::__('Twitter'),
'validations' => array(
"v::url('twitter.com')" => \MapasCulturais\i::__("A url informada é inválida.")
),
'available_for_opportunities' => true
),
'googleplus' => array(
'label' => \MapasCulturais\i::__('Google+'),
'validations' => array(
"v::url('plus.google.com')" => \MapasCulturais\i::__("A url informada é inválida.")
),
'available_for_opportunities' => true
),
'instagram' => array(
'label' => \MapasCulturais\i::__('Instagram'),
'validations' => array(
"v::startsWith('@')" => \MapasCulturais\i::__("O usuário informado é inválido. Informe no formato @usuario e tente novamente")
),
'available_for_opportunities' => true
),
'linkedin' => array(
'label' => \MapasCulturais\i::__('Linkedin'),
'validations' => array(
"v::url('linkedin.com')" => \MapasCulturais\i::__("A url informada é inválida.")
),
'available_for_opportunities' => true
),
'spotify' => array(
'label' => \MapasCulturais\i::__('Spotify'),
'validations' => array(
"v::url('open.spotify.com')" => \MapasCulturais\i::__("A url informada é inválida.")
),
'available_for_opportunities' => true
),
'youtube' => array(
'label' => \MapasCulturais\i::__('YouTube'),
'validations' => array(
"v::url('youtube.com')" => \MapasCulturais\i::__("A url informada é inválida.")
),
'available_for_opportunities' => true
),
'pinterest' => array(
'label' => \MapasCulturais\i::__('Pinterest'),
'validations' => array(
"v::url('pinterest.com')" => \MapasCulturais\i::__("A url informada é inválida.")
),
'available_for_opportunities' => true
),
),
'items' => array(
1 => array( 'name' => \MapasCulturais\i::__('Individual' )),
2 => array( 'name' => \MapasCulturais\i::__('Coletivo') ),
)
);
#main-header, #main-content-header {
display: block;
}
#main-nav, #about-nav, #main-footer, #empty-footer {
display: none;
}
.header-image, .avatar, .icon {
display: none;
height: 0;
}
.header-content {
padding-left: 0;
}
.header-content .entity-type {
display: none;
}
.color-project {
color: black;
}
.sidebar {
display: none;
}
.registration-help {
display: none;
}
.registration-agent-avatar, .registration-space-avatar {
display: none;
}
a.btn, #registration-valuers--admin {
display: none;
}
@media print {
#main-header {