From faf60c777fc5e9d4a7b4b46c07bbe3820aad3ccf Mon Sep 17 00:00:00 2001 From: Moran <105233020+feliperm17@users.noreply.github.com> Date: Wed, 27 May 2026 09:19:47 -0300 Subject: [PATCH 1/2] Bug join local de coleta e cidade (#450) --- src/database/migration/20260408200000_cria_view_splinker.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/database/migration/20260408200000_cria_view_splinker.ts b/src/database/migration/20260408200000_cria_view_splinker.ts index 52b6626..9cc7164 100644 --- a/src/database/migration/20260408200000_cria_view_splinker.ts +++ b/src/database/migration/20260408200000_cria_view_splinker.ts @@ -44,7 +44,7 @@ export async function run(knex: Knex): Promise { COALESCE(t.data_coleta_dia::text, '') AS "DayCollected", COALESCE(t.data_coleta_mes::text, '') AS "MonthCollected", COALESCE(t.data_coleta_ano::text, '') AS "YearCollected", - (COALESCE(col.nome, '') || COALESCE(cc.complementares, '')) AS "Collector" + (COALESCE(col.nome, '') ||' ' || COALESCE(cc.complementares, '')) AS "Collector", COALESCE(t.numero_coleta::text, '') AS "CollectorNumber", '' AS "Continent", COALESCE(p.nome, '') AS "Country", @@ -76,7 +76,7 @@ export async function run(knex: Knex): Promise { ) AS "Notes" FROM tombos t LEFT JOIN locais_coleta lc ON t.local_coleta_id = lc.id - LEFT JOIN cidades c ON lc.cidade_id = c.id + LEFT JOIN cidades c ON t.cidade_id = c.id LEFT JOIN estados est ON c.estado_id = est.id LEFT JOIN paises p ON est.pais_id = p.id LEFT JOIN familias f ON t.familia_id = f.id From 58c7613b654de80ff3a30de544776ca6d87098f3 Mon Sep 17 00:00:00 2001 From: Lucas Dos Santos Vaz <52181258+luscas18@users.noreply.github.com> Date: Wed, 27 May 2026 09:20:14 -0300 Subject: [PATCH 2/2] =?UTF-8?q?Adicionando=20fase=20sucessional=20e=20cida?= =?UTF-8?q?de,=20estado=20e=20cidade=20vinculados=20ao=20tombo=20se=20o=20?= =?UTF-8?q?n=C3=A3o=20tiver=20um=20local=20de=20coleta.=20(#449)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/fichas-tombos-controller.js | 18 +++++++++++++++++- src/views/ficha-tombo.ejs | 10 ++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/controllers/fichas-tombos-controller.js b/src/controllers/fichas-tombos-controller.js index 1e91d98..3a41097 100644 --- a/src/controllers/fichas-tombos-controller.js +++ b/src/controllers/fichas-tombos-controller.js @@ -133,6 +133,9 @@ export default function fichaTomboController(request, response, next) { { model: Vegetacao, }, + { + model: FaseSucessional, + }, { as: 'local_coleta', model: LocalColeta, @@ -158,6 +161,18 @@ export default function fichaTomboController(request, response, next) { model: ColetorComplementar, as: 'coletor_complementar', }, + { + required: false, + model: Cidade, + include: { + model: Estado, + attributes: ['id', 'nome', 'sigla', 'pais_id'], + include: { + as: 'pais', + model: Pais, + }, + }, + }, ]; const where = { @@ -239,7 +254,7 @@ export default function fichaTomboController(request, response, next) { const coletores = `${!!tombo?.coletore?.nome !== false ? tombo?.coletore?.nome?.concat(' ') : ''}${tombo?.coletor_complementar ? tombo.coletor_complementar?.complementares : ''}`; const localColeta = tombo?.local_coleta; - const cidade = localColeta?.cidade || ''; + const cidade = localColeta?.cidade || tombo?.cidade || ''; const estado = cidade?.estado || ''; const pais = estado?.pais || ''; @@ -295,6 +310,7 @@ export default function fichaTomboController(request, response, next) { relevo: tombo?.relevo?.nome || '', vegetacao: tombo?.vegetaco?.nome || '', + fase_sucessional: tombo?.fase_sucessional?.nome || '', familia: tombo.familia, imprimir: request.params.imprimir_cod, diff --git a/src/views/ficha-tombo.ejs b/src/views/ficha-tombo.ejs index 81e61bb..9a330c0 100644 --- a/src/views/ficha-tombo.ejs +++ b/src/views/ficha-tombo.ejs @@ -316,11 +316,12 @@
Local de Coleta: - <% if (localColeta && localColeta.descricao) { %> + <% const temDescricaoLocal = localColeta && localColeta.descricao; %> + <% if (temDescricaoLocal) { %> <%- localColeta.descricao %> <% } %> <% if (cidade && cidade.nome) { %> - - <%- cidade.nome %> + <%- temDescricaoLocal ? ' - ' : '' %><%- cidade.nome %> <% } %> <% if (cidade && cidade.estado) { %> - <%- cidade.estado.nome %> @@ -355,8 +356,9 @@ <% if (tombo && tombo.altitude) { %> - Altitude: <%- tombo.altitude %>m <% } %> - <% if (localColeta && localColeta.fase_sucessional) { %> - - Fase sucessional: <%- localColeta.fase_sucessional.nome %> + <% const faseSucessionalNome = (localColeta && localColeta.fase_sucessional && localColeta.fase_sucessional.nome) || fase_sucessional; %> + <% if (faseSucessionalNome) { %> + - Fase sucessional: <%- faseSucessionalNome %> <% } %>