Arquitetura Geral

Módulo Base (/base/)

  • Modelos principais e esquema de banco de dados

  • Blocos e modelos personalizados

  • Tratamento e validação de formulários

  • Ver controladores

  • Funções utilitárias e mixins

  • Sistema de gerenciamento de tarefas usando Celery

Configuração (/config/):

  • Configurações específicas do ambiente

  • Roteamento de URL

  • Pontos de extremidade da API

  • Configuração do mecanismo de banco de dados

  • Manipulação de arquivos estáticos

  • Apoio à internacionalização

Estrutura de conteúdo

O sistema é organizado em diversas seções de conteúdo principais, cada uma implementada como um aplicativo Django/Wagtail:

  1. Página inicial (/páginas/home/)

    • Implementação de página inicial personalizada

    • Componente de mapa interativo (integração Vue.js)

    • Blocos e modelos personalizados

    • Suporte de localização

  2. Serviços de Informação

  • Publicações (/páginas/publicações/)

  • Produtos (/páginas/produtos/)

  • Serviços (/páginas/serviços/)

  • Notícias (/páginas/notícias/)

  • Eventos (/páginas/eventos/)

  1. Dados e Pesquisa

  • Clima (/páginas/clima/)

  • Imagens de satélite (/pages/satellite_imagery/)

  • Clima da cidade (/pages/cityclimate/)

  • Estações (/páginas/estações/)

  • Solicitação de dados (/pages/data_request/)

  1. Interação do usuário

  • Contato (/páginas/contato/)

  • Feedback (/páginas/feedback/)

  • Assinatura de e-mail (/pages/email_subscription/)

  • Pesquisas (/páginas/pesquisas/)

  1. Mídia e recursos

  • Centro de mídia (/pages/mediacenter/)

  • Vídeos (/páginas/vídeos/)

  • Histórias da Web (/páginas/webstories/)

  1. Recursos especializados

  • WDQMS (Sistema de gerenciamento de qualidade de dados WIGOS) (/pages/wdqms/)

  • Glossário (/páginas/glossário/)

  • Pesquisa (/páginas/pesquisa/)

Estrutura da página

Cada tipo de página, quando totalmente implementado como um aplicativo Django/Wagtail, segue uma estrutura consistente:

  1. Modelos (models.py)

  • Esquema de banco de dados

  • Estrutura de conteúdo

  • Campos e relacionamentos personalizados

  1. Visualizações (views.py)

  • Lógica de renderização de página

  • Processamento de dados

  • Manipuladores de visualização personalizados

  1. Modelos (/templates/)

  • Layouts de página

  • Modelos de componentes

  • Blocos personalizados

  1. Ativos estáticos (/static/)

  • Arquivos CSS/JS

  • Imagens estáticas e mídia

  • Componentes de front-end

  1. Configuração

  • Roteamento de URL (urls.py)

  • Ganchos de alvéola (wagtail_hooks.py)

  • Configuração do aplicativo (apps.py)