From 25832564f9a296a94398903a654faefbed546c17 Mon Sep 17 00:00:00 2001 From: rafapolo Date: Thu, 18 Jun 2026 18:58:01 +0200 Subject: [PATCH] chore: reorganize para current/, rails 8.1, testes e readme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - move app para current/ (estrutura capistrano) - rails 7.2 → 8.1, ruby 3.2, sqlite3 2.x - adiciona primary_key Idinformativo no model - schema.rb completo com todas as tabelas - testes minitest: models (Tag, Informativo, Tema) e controllers - readme atualizado em pt-br com stack e instruções de desenvolvimento - gitignore exclui dump.sql, *.duckdb e sqlite3 --- .gitignore | 5 + .ruby-version | 0 Gemfile | 29 -- Gemfile.lock | 269 ------------ README.md | 16 - app/assets/images/logo.png | Bin 12155 -> 0 bytes app/assets/javascripts/masonry.pkgd.min.js | 9 - app/assets/stylesheets/application.css | 78 ---- app/controllers/page_controller.rb | 11 - app/models/informativo.rb | 15 - app/views/layouts/application.haml | 17 - app/views/page/home.haml | 11 - app/views/page/informativo.haml | 15 - bin/rake | 4 - bin/yarn | 11 - config/credentials.yml.enc | 1 - .../application_controller_renderer.rb | 8 - config/initializers/backtrace_silencers.rb | 7 - .../initializers/content_security_policy.rb | 25 -- config/puma.rb | 34 -- config/routes.rb | 10 - config/spring.rb | 6 - config/storage.yml | 34 -- current/.gitignore | 12 + current/.ruby-version | 1 + current/Gemfile | 30 ++ current/Gemfile.lock | 383 ++++++++++++++++++ current/README.md | 105 +++++ Rakefile => current/Rakefile | 0 {app => current/app}/admin/admin_users.rb | 0 {app => current/app}/admin/dashboard.rb | 3 +- current/app/admin/informativos.rb | 37 ++ current/app/admin/tags.rb | 18 + current/app/admin/temas.rb | 18 + .../app}/assets/config/manifest.js | 0 current/app/assets/fonts/WildGrowth.ttf | Bin 0 -> 136032 bytes .../app/assets/fonts/wildgrowth-webfont.woff | Bin 0 -> 73412 bytes .../app/assets/fonts/wildgrowth-webfont.woff2 | Bin 0 -> 49996 bytes {app => current/app}/assets/images/.keep | 0 current/app/assets/images/bg.png | Bin 0 -> 73 bytes current/app/assets/images/favicon.ico | Bin 0 -> 15406 bytes current/app/assets/images/logo.png | Bin 0 -> 10366 bytes .../app/assets/javascripts/active_admin.js | 3 + .../assets/javascripts/admin/active_admin.js | 0 .../app}/assets/javascripts/application.js | 8 +- .../assets/javascripts/jquery-3.4.0.min.js | 0 .../app}/assets/stylesheets/active_admin.scss | 6 + .../app/assets/stylesheets/application.css | 205 ++++++++++ .../controllers/application_controller.rb | 0 .../app}/controllers/concerns/.keep | 0 current/app/controllers/page_controller.rb | 41 ++ .../app}/helpers/application_helper.rb | 0 {app => current/app}/models/admin_user.rb | 4 + .../app}/models/application_record.rb | 0 {app => current/app}/models/concerns/.keep | 0 current/app/models/informativo.rb | 27 ++ current/app/models/tag.rb | 16 + current/app/models/tema.rb | 11 + current/app/views/layouts/application.haml | 35 ++ current/app/views/page/home.haml | 16 + current/app/views/page/informativo.haml | 25 ++ current/app/views/page/list.haml | 14 + {bin => current/bin}/bundle | 0 {bin => current/bin}/rails | 5 + current/bin/rake | 9 + {bin => current/bin}/setup | 12 +- current/bin/spring | 17 + {bin => current/bin}/update | 0 config.ru => current/config.ru | 0 {config => current/config}/application.rb | 7 +- {config => current/config}/boot.rb | 2 +- current/config/deploy.rb | 32 ++ {config => current/config}/environment.rb | 0 .../config}/environments/development.rb | 9 +- .../config}/environments/production.rb | 42 +- .../config}/environments/test.rb | 18 +- .../config}/initializers/active_admin.rb | 31 +- .../config/initializers/activeadmin_addons.rb | 12 + .../config}/initializers/assets.rb | 2 +- .../initializers/cookies_serializer.rb | 0 .../config}/initializers/devise.rb | 4 +- .../initializers/filter_parameter_logging.rb | 0 .../config}/initializers/inflections.rb | 0 current/config/initializers/kaminari.rb | 4 + .../config}/initializers/mime_types.rb | 0 .../config}/initializers/wrap_parameters.rb | 0 .../config}/locales/devise.en.yml | 2 +- {config => current/config}/locales/en.yml | 2 +- current/config/puma.rb | 16 + current/config/routes.rb | 11 + ...0190529154251_devise_create_admin_users.rb | 0 .../20191218191626_create_informativo_tags.rb | 17 + current/db/schema.rb | 73 ++++ {lib => current/lib}/assets/.keep | 0 {lib => current/lib}/tasks/.keep | 0 current/lib/tasks/import.rake | 28 ++ current/node_modules/.yarn-integrity | 12 + {public => current/public}/robots.txt | 0 .../test/controllers/page_controller_test.rb | 37 ++ current/test/models/informativo_test.rb | 28 ++ current/test/models/tag_test.rb | 27 ++ current/test/models/tema_test.rb | 22 + current/test/test_helper.rb | 7 + ...0529154253_create_active_admin_comments.rb | 16 - db/schema.rb | 364 ----------------- informativo.md | 178 ++++++++ log/.keep | 0 mysql_to_duckdb.py | 107 +++++ package.json | 5 - public/404.html | 67 --- public/422.html | 67 --- public/500.html | 66 --- public/apple-touch-icon-precomposed.png | 0 public/apple-touch-icon.png | 0 public/favicon.ico | 0 resumo/agropecuaria.md | 19 + resumo/agua.md | 19 + resumo/ciencia-e-tecnologia.md | 19 + resumo/combustiveis-fosseis.md | 19 + resumo/crimes-ambientais.md | 19 + resumo/desastres-naturais.md | 19 + resumo/desenvolvimento-sustentavel.md | 19 + resumo/energia-atomica.md | 19 + resumo/energia-renovavel.md | 19 + resumo/fauna-e-flora.md | 19 + resumo/index.md | 40 ++ resumo/legislacao-e-governo.md | 19 + resumo/mudancas-climaticas.md | 19 + resumo/poluicao.md | 19 + resumo/residuos-lixo.md | 19 + resumo/saude-e-meio-ambiente.md | 19 + yarn.lock | 4 - 132 files changed, 2067 insertions(+), 1253 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .ruby-version delete mode 100644 Gemfile delete mode 100644 Gemfile.lock delete mode 100644 README.md delete mode 100644 app/assets/images/logo.png delete mode 100644 app/assets/javascripts/masonry.pkgd.min.js delete mode 100644 app/assets/stylesheets/application.css delete mode 100644 app/controllers/page_controller.rb delete mode 100644 app/models/informativo.rb delete mode 100644 app/views/layouts/application.haml delete mode 100644 app/views/page/home.haml delete mode 100644 app/views/page/informativo.haml delete mode 100755 bin/rake delete mode 100755 bin/yarn delete mode 100644 config/credentials.yml.enc delete mode 100644 config/initializers/application_controller_renderer.rb delete mode 100644 config/initializers/backtrace_silencers.rb delete mode 100644 config/initializers/content_security_policy.rb delete mode 100644 config/puma.rb delete mode 100644 config/routes.rb delete mode 100644 config/spring.rb delete mode 100644 config/storage.yml create mode 100644 current/.gitignore create mode 100644 current/.ruby-version create mode 100644 current/Gemfile create mode 100644 current/Gemfile.lock create mode 100644 current/README.md rename Rakefile => current/Rakefile (100%) rename {app => current/app}/admin/admin_users.rb (100%) rename {app => current/app}/admin/dashboard.rb (90%) create mode 100644 current/app/admin/informativos.rb create mode 100644 current/app/admin/tags.rb create mode 100644 current/app/admin/temas.rb rename {app => current/app}/assets/config/manifest.js (100%) create mode 100644 current/app/assets/fonts/WildGrowth.ttf create mode 100644 current/app/assets/fonts/wildgrowth-webfont.woff create mode 100644 current/app/assets/fonts/wildgrowth-webfont.woff2 rename {app => current/app}/assets/images/.keep (100%) create mode 100644 current/app/assets/images/bg.png create mode 100644 current/app/assets/images/favicon.ico create mode 100644 current/app/assets/images/logo.png create mode 100644 current/app/assets/javascripts/active_admin.js rename {app => current/app}/assets/javascripts/admin/active_admin.js (100%) rename {app => current/app}/assets/javascripts/application.js (84%) rename {app => current/app}/assets/javascripts/jquery-3.4.0.min.js (100%) rename {app => current/app}/assets/stylesheets/active_admin.scss (85%) create mode 100644 current/app/assets/stylesheets/application.css rename {app => current/app}/controllers/application_controller.rb (100%) rename {app => current/app}/controllers/concerns/.keep (100%) create mode 100644 current/app/controllers/page_controller.rb rename {app => current/app}/helpers/application_helper.rb (100%) rename {app => current/app}/models/admin_user.rb (54%) rename {app => current/app}/models/application_record.rb (100%) rename {app => current/app}/models/concerns/.keep (100%) create mode 100644 current/app/models/informativo.rb create mode 100644 current/app/models/tag.rb create mode 100644 current/app/models/tema.rb create mode 100644 current/app/views/layouts/application.haml create mode 100644 current/app/views/page/home.haml create mode 100644 current/app/views/page/informativo.haml create mode 100644 current/app/views/page/list.haml rename {bin => current/bin}/bundle (100%) rename {bin => current/bin}/rails (53%) create mode 100755 current/bin/rake rename {bin => current/bin}/setup (67%) create mode 100755 current/bin/spring rename {bin => current/bin}/update (100%) rename config.ru => current/config.ru (100%) rename {config => current/config}/application.rb (84%) rename {config => current/config}/boot.rb (61%) create mode 100644 current/config/deploy.rb rename {config => current/config}/environment.rb (100%) rename {config => current/config}/environments/development.rb (92%) rename {config => current/config}/environments/production.rb (67%) rename {config => current/config}/environments/test.rb (79%) rename {config => current/config}/initializers/active_admin.rb (91%) create mode 100644 current/config/initializers/activeadmin_addons.rb rename {config => current/config}/initializers/assets.rb (88%) rename {config => current/config}/initializers/cookies_serializer.rb (100%) rename {config => current/config}/initializers/devise.rb (97%) rename {config => current/config}/initializers/filter_parameter_logging.rb (100%) rename {config => current/config}/initializers/inflections.rb (100%) create mode 100644 current/config/initializers/kaminari.rb rename {config => current/config}/initializers/mime_types.rb (100%) rename {config => current/config}/initializers/wrap_parameters.rb (100%) rename {config => current/config}/locales/devise.en.yml (98%) rename {config => current/config}/locales/en.yml (93%) create mode 100644 current/config/puma.rb create mode 100644 current/config/routes.rb rename {db => current/db}/migrate/20190529154251_devise_create_admin_users.rb (100%) create mode 100644 current/db/migrate/20191218191626_create_informativo_tags.rb create mode 100644 current/db/schema.rb rename {lib => current/lib}/assets/.keep (100%) rename {lib => current/lib}/tasks/.keep (100%) create mode 100644 current/lib/tasks/import.rake create mode 100644 current/node_modules/.yarn-integrity rename {public => current/public}/robots.txt (100%) create mode 100644 current/test/controllers/page_controller_test.rb create mode 100644 current/test/models/informativo_test.rb create mode 100644 current/test/models/tag_test.rb create mode 100644 current/test/models/tema_test.rb create mode 100644 current/test/test_helper.rb delete mode 100644 db/migrate/20190529154253_create_active_admin_comments.rb delete mode 100644 db/schema.rb create mode 100644 informativo.md delete mode 100644 log/.keep create mode 100644 mysql_to_duckdb.py delete mode 100644 package.json delete mode 100644 public/404.html delete mode 100644 public/422.html delete mode 100644 public/500.html delete mode 100644 public/apple-touch-icon-precomposed.png delete mode 100644 public/apple-touch-icon.png delete mode 100644 public/favicon.ico create mode 100644 resumo/agropecuaria.md create mode 100644 resumo/agua.md create mode 100644 resumo/ciencia-e-tecnologia.md create mode 100644 resumo/combustiveis-fosseis.md create mode 100644 resumo/crimes-ambientais.md create mode 100644 resumo/desastres-naturais.md create mode 100644 resumo/desenvolvimento-sustentavel.md create mode 100644 resumo/energia-atomica.md create mode 100644 resumo/energia-renovavel.md create mode 100644 resumo/fauna-e-flora.md create mode 100644 resumo/index.md create mode 100644 resumo/legislacao-e-governo.md create mode 100644 resumo/mudancas-climaticas.md create mode 100644 resumo/poluicao.md create mode 100644 resumo/residuos-lixo.md create mode 100644 resumo/saude-e-meio-ambiente.md delete mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index c753546..8cec163 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,8 @@ /yarn-error.log /public/assets .byebug_history +.DS_Store +dump.sql +*.duckdb +*.duckdb.wal +shared/ diff --git a/.ruby-version b/.ruby-version old mode 100644 new mode 100755 diff --git a/Gemfile b/Gemfile deleted file mode 100644 index a6709ad..0000000 --- a/Gemfile +++ /dev/null @@ -1,29 +0,0 @@ -source 'https://rubygems.org' -git_source(:github) { |repo| "https://github.com/#{repo}.git" } - -ruby '2.6.5' - -gem 'rails', '~> 5.2.3' -gem 'puma', '~> 3.11' -gem 'sass-rails', '~> 5.0' -gem 'uglifier', '>= 1.3.0' -gem 'coffee-rails', '~> 4.2' -gem 'bootsnap', '>= 1.1.0', require: false - -gem 'haml' -gem 'mysql2' -gem 'activeadmin' -gem 'devise' -gem 'will_paginate' -gem "awesome_print" - -group :development, :test do - gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] -end - -group :development do - gem 'web-console', '>= 3.3.0' - gem 'listen', '>= 3.0.5', '< 3.2' - gem 'spring' - gem 'spring-watcher-listen', '~> 2.0.0' -end diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index bd3fd75..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,269 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - actioncable (5.2.3) - actionpack (= 5.2.3) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailer (5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (5.2.3) - actionview (= 5.2.3) - activesupport (= 5.2.3) - rack (~> 2.0) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.3) - activesupport (= 5.2.3) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activeadmin (2.4.0) - arbre (~> 1.2, >= 1.2.1) - formtastic (~> 3.1) - formtastic_i18n (~> 0.4) - inherited_resources (~> 1.7) - jquery-rails (~> 4.2) - kaminari (~> 1.0, >= 1.0.1) - railties (>= 5.0, < 6.1) - ransack (~> 2.1, >= 2.1.1) - sassc-rails (~> 2.1) - sprockets (>= 3.0, < 4.1) - sprockets-es6 (~> 0.9, >= 0.9.2) - activejob (5.2.3) - activesupport (= 5.2.3) - globalid (>= 0.3.6) - activemodel (5.2.3) - activesupport (= 5.2.3) - activerecord (5.2.3) - activemodel (= 5.2.3) - activesupport (= 5.2.3) - arel (>= 9.0) - activestorage (5.2.3) - actionpack (= 5.2.3) - activerecord (= 5.2.3) - marcel (~> 0.3.1) - activesupport (5.2.3) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - arbre (1.2.1) - activesupport (>= 3.0.0) - arel (9.0.0) - awesome_print (1.8.0) - babel-source (5.8.35) - babel-transpiler (0.7.0) - babel-source (>= 4.0, < 6) - execjs (~> 2.0) - bcrypt (3.1.13) - bindex (0.8.1) - bootsnap (1.4.5) - msgpack (~> 1.0) - builder (3.2.3) - byebug (11.0.1) - coffee-rails (4.2.2) - coffee-script (>= 2.2.0) - railties (>= 4.0.0) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) - concurrent-ruby (1.1.5) - crass (1.0.5) - devise (4.7.1) - bcrypt (~> 3.0) - orm_adapter (~> 0.1) - railties (>= 4.1.0) - responders - warden (~> 1.2.3) - erubi (1.9.0) - execjs (2.7.0) - ffi (1.11.3) - formtastic (3.1.5) - actionpack (>= 3.2.13) - formtastic_i18n (0.6.0) - globalid (0.4.2) - activesupport (>= 4.2.0) - haml (5.1.2) - temple (>= 0.8.0) - tilt - has_scope (0.7.2) - actionpack (>= 4.1) - activesupport (>= 4.1) - i18n (1.7.0) - concurrent-ruby (~> 1.0) - inherited_resources (1.11.0) - actionpack (>= 5.0, < 6.1) - has_scope (~> 0.6) - railties (>= 5.0, < 6.1) - responders (>= 2, < 4) - jquery-rails (4.3.5) - rails-dom-testing (>= 1, < 3) - railties (>= 4.2.0) - thor (>= 0.14, < 2.0) - kaminari (1.1.1) - activesupport (>= 4.1.0) - kaminari-actionview (= 1.1.1) - kaminari-activerecord (= 1.1.1) - kaminari-core (= 1.1.1) - kaminari-actionview (1.1.1) - actionview - kaminari-core (= 1.1.1) - kaminari-activerecord (1.1.1) - activerecord - kaminari-core (= 1.1.1) - kaminari-core (1.1.1) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) - loofah (2.3.1) - crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.1) - mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) - method_source (0.9.2) - mimemagic (0.3.3) - mini_mime (1.0.2) - mini_portile2 (2.4.0) - minitest (5.13.0) - msgpack (1.3.1) - mysql2 (0.5.2) - nio4r (2.5.2) - nokogiri (1.10.5) - mini_portile2 (~> 2.4.0) - orm_adapter (0.5.0) - polyamorous (2.3.0) - activerecord (>= 5.0) - puma (3.12.1) - rack (2.0.7) - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (5.2.3) - actioncable (= 5.2.3) - actionmailer (= 5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) - activemodel (= 5.2.3) - activerecord (= 5.2.3) - activestorage (= 5.2.3) - activesupport (= 5.2.3) - bundler (>= 1.3.0) - railties (= 5.2.3) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) - loofah (~> 2.3) - railties (5.2.3) - actionpack (= 5.2.3) - activesupport (= 5.2.3) - method_source - rake (>= 0.8.7) - thor (>= 0.19.0, < 2.0) - rake (13.0.1) - ransack (2.3.0) - actionpack (>= 5.0) - activerecord (>= 5.0) - activesupport (>= 5.0) - i18n - polyamorous (= 2.3.0) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) - ffi (~> 1.0) - responders (3.0.0) - actionpack (>= 5.0) - railties (>= 5.0) - ruby_dep (1.5.0) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sass-rails (5.1.0) - railties (>= 5.2.0) - sass (~> 3.1) - sprockets (>= 2.8, < 4.0) - sprockets-rails (>= 2.0, < 4.0) - tilt (>= 1.1, < 3) - sassc (2.2.1) - ffi (~> 1.9) - sassc-rails (2.1.2) - railties (>= 4.0.0) - sassc (>= 2.0) - sprockets (> 3.0) - sprockets-rails - tilt - spring (2.1.0) - spring-watcher-listen (2.0.1) - listen (>= 2.7, < 4.0) - spring (>= 1.2, < 3.0) - sprockets (3.7.2) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-es6 (0.9.2) - babel-source (>= 5.8.11) - babel-transpiler - sprockets (>= 3.0.0) - sprockets-rails (3.2.1) - actionpack (>= 4.0) - activesupport (>= 4.0) - sprockets (>= 3.0.0) - temple (0.8.2) - thor (0.20.3) - thread_safe (0.3.6) - tilt (2.0.10) - tzinfo (1.2.5) - thread_safe (~> 0.1) - uglifier (4.2.0) - execjs (>= 0.3.0, < 3) - warden (1.2.8) - rack (>= 2.0.6) - web-console (3.7.0) - actionview (>= 5.0) - activemodel (>= 5.0) - bindex (>= 0.4.0) - railties (>= 5.0) - websocket-driver (0.7.1) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.4) - will_paginate (3.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - activeadmin - awesome_print - bootsnap (>= 1.1.0) - byebug - coffee-rails (~> 4.2) - devise - haml - listen (>= 3.0.5, < 3.2) - mysql2 - puma (~> 3.11) - rails (~> 5.2.3) - sass-rails (~> 5.0) - spring - spring-watcher-listen (~> 2.0.0) - uglifier (>= 1.3.0) - web-console (>= 3.3.0) - will_paginate - -RUBY VERSION - ruby 2.6.5p114 - -BUNDLED WITH - 1.17.2 diff --git a/README.md b/README.md deleted file mode 100644 index 8aa0637..0000000 --- a/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Ambiente Já! - -### = fase#01 - -[ x ] Re-estructure old database - -[ x ] Setup web application - -[ x ] List articles @ sketch design - - -### = fase#02 - -[...] New design - -[ ] Fix informativo links diff --git a/app/assets/images/logo.png b/app/assets/images/logo.png deleted file mode 100644 index 8487538a0e19575580a966cd63e3096946cfb00e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12155 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 JRU%;+@IS>E*dG7@ diff --git a/app/assets/javascripts/masonry.pkgd.min.js b/app/assets/javascripts/masonry.pkgd.min.js deleted file mode 100644 index 53386ae..0000000 --- a/app/assets/javascripts/masonry.pkgd.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Masonry PACKAGED v4.2.2 - * Cascading grid layout library - * https://masonry.desandro.com - * MIT License - * by David DeSandro - */ - -!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;oe;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}); \ No newline at end of file diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css deleted file mode 100644 index e926403..0000000 --- a/app/assets/stylesheets/application.css +++ /dev/null @@ -1,78 +0,0 @@ -body { - padding: 20px; - font-family: 'Inconsolata', monospace; - background-color: #fff; - color: #4c4e4d; -} - -a{ - text-decoration: none; - color: #4c4e4d; - font-size: 17px; - font-weight: bold; -} -a:hover { - color:black; -} - -#all{ - width: 900px; - margin: 0px auto; - margin-top: 35px; -} - -.tags{ - font-size: 13px; - margin: 5px 0px 5px 0px; -} -h2{ - margin: 0px -} -h3{ - text-align: right; - font-size:15px; -} - -#topo{ - background-color: #8bf712; - width: 100%; - text-align: center; - display: inline-block; - top: 0px; - left: 0px; - position: absolute; - font-size: 10px; - height: 35px; - border-bottom: 1px solid lightgray -} - -.card{ - /* color: black; */ - border-top: 1px solid lightgray; - padding-top: 10px; - padding-bottom: 10px; - /* width: 200px; */ - /* float: left; - border: 2px solid green; - margin: 10px; - padding: 25px; - font-size: 22px; - text-align: center; - box-shadow: 8px 8px 3px #1a54027a; */ -} -.date{ - font-size: 13px; - color: gray; - padding-top: 10px -} - - -#nav{ - display: inline-block; - width: 100%; - text-align: center; - padding: 10px; - font-size: 19px; - background-color: #8bf712; - border: 1px solid gray; -} diff --git a/app/controllers/page_controller.rb b/app/controllers/page_controller.rb deleted file mode 100644 index 8e0556c..0000000 --- a/app/controllers/page_controller.rb +++ /dev/null @@ -1,11 +0,0 @@ -class PageController < ApplicationController - - def home - @informativos = Informativo.order("data_inc desc").page(params[:page] || 1) - end - - def informativo - @informativo = Informativo.find(params[:id]) - end - -end diff --git a/app/models/informativo.rb b/app/models/informativo.rb deleted file mode 100644 index 73dfc53..0000000 --- a/app/models/informativo.rb +++ /dev/null @@ -1,15 +0,0 @@ -class Informativo < ApplicationRecord - self.table_name = "informativo" - paginates_per 10 - - def tags - tags = [] - tags << self.tag1 - tags << self.tag2 - tags << self.tag3 - tags = tags.uniq.join(", ").downcase - tags.chop! if tags[tags.size-1]=="," - tags - end - -end diff --git a/app/views/layouts/application.haml b/app/views/layouts/application.haml deleted file mode 100644 index ff0f4f9..0000000 --- a/app/views/layouts/application.haml +++ /dev/null @@ -1,17 +0,0 @@ -!!! -%html - %head - %meta{content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ - %title Ambiente Já! - = csrf_meta_tags - = csp_meta_tag - = stylesheet_link_tag "https://fonts.googleapis.com/css?family=Inconsolata&display=swap" - = stylesheet_link_tag 'application', media: 'all' - = javascript_include_tag 'application' - - %body - - #all - #topo - = link_to (image_tag "logo.png"), "/" - = yield diff --git a/app/views/page/home.haml b/app/views/page/home.haml deleted file mode 100644 index 1fb288c..0000000 --- a/app/views/page/home.haml +++ /dev/null @@ -1,11 +0,0 @@ -%h3= "#{@informativos.count} informativos" - -#infos - - @informativos.each do |i| - .card - %span.link= link_to i.titulo.html_safe, CGI.unescapeHTML("/informativo/#{i.id}") - %p.tags= i.tags - .date= "#{i.data_inc} | #{i.operador_inc.downcase.capitalize}" - -#nav - = will_paginate @informativos diff --git a/app/views/page/informativo.haml b/app/views/page/informativo.haml deleted file mode 100644 index 59f4af0..0000000 --- a/app/views/page/informativo.haml +++ /dev/null @@ -1,15 +0,0 @@ -// :javascript -// $(document).ready(function(){ -// $("a").each(function(a){ -// a.href = a.href.replace("http://localhost:3000/informativo/%22", "").replace("\"", ""); -// }) -// }); - -#todo - %h2= @informativo.titulo.html_safe - .tags= @informativo.tags - .date= @informativo.data_inc - -# %p= "Por #{@informativo.operador_inc}" - != @informativo.Descricao.gsub(""", "\"") - -# %hr - -# != ap @informativo diff --git a/bin/rake b/bin/rake deleted file mode 100755 index 1724048..0000000 --- a/bin/rake +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env ruby -require_relative '../config/boot' -require 'rake' -Rake.application.run diff --git a/bin/yarn b/bin/yarn deleted file mode 100755 index 460dd56..0000000 --- a/bin/yarn +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env ruby -APP_ROOT = File.expand_path('..', __dir__) -Dir.chdir(APP_ROOT) do - begin - exec "yarnpkg", *ARGV - rescue Errno::ENOENT - $stderr.puts "Yarn executable was not detected in the system." - $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" - exit 1 - end -end diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc deleted file mode 100644 index 7eee4ae..0000000 --- a/config/credentials.yml.enc +++ /dev/null @@ -1 +0,0 @@ -ZaWn2LkcPpkh1b4NwpoKP10kmIxshga41mh90XZx9Rm8DjmvKwRzMl3yNTyetWrIRmqNxzf0rqtvXoWli1GnEupvCCs9cuX4awxP8TS7AXQsXORhoadZGIfEe8YbsqfswFatIcLCzKCep7mEVn2FoElfXpwYNbxjkTEJGNLouaHJnFsfYt5WtldaDDNMV58oBEUupOc0MMRGQv29bhtATQkwSIdfvA0l6wlKsygNZNcC1ehF6vnFYTfKsQIJEFQzMkdlwfC/NW/ulb7XAHGaBHWMgvct7ApceOH/DYZQkmnzDgxlOpyH+/IArdE8yGuwnrRrIItnnrJBMSJPNxr1KPzlOvizQ3XXq1NM1lvwNv9XN4gSyhlh/bjWm0QrS1DEI+/HzcEeFIG+bpPkQ+7hoiyyLWi/wTL/Gyki--CIu5O4MaiFuFVxEi--dQNVGD340dDibi8ojYyHGQ== \ No newline at end of file diff --git a/config/initializers/application_controller_renderer.rb b/config/initializers/application_controller_renderer.rb deleted file mode 100644 index 89d2efa..0000000 --- a/config/initializers/application_controller_renderer.rb +++ /dev/null @@ -1,8 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# ActiveSupport::Reloader.to_prepare do -# ApplicationController.renderer.defaults.merge!( -# http_host: 'example.org', -# https: false -# ) -# end diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb deleted file mode 100644 index 59385cd..0000000 --- a/config/initializers/backtrace_silencers.rb +++ /dev/null @@ -1,7 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. -# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } - -# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. -# Rails.backtrace_cleaner.remove_silencers! diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb deleted file mode 100644 index d3bcaa5..0000000 --- a/config/initializers/content_security_policy.rb +++ /dev/null @@ -1,25 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Define an application-wide content security policy -# For further information see the following documentation -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy - -# Rails.application.config.content_security_policy do |policy| -# policy.default_src :self, :https -# policy.font_src :self, :https, :data -# policy.img_src :self, :https, :data -# policy.object_src :none -# policy.script_src :self, :https -# policy.style_src :self, :https - -# # Specify URI for violation reports -# # policy.report_uri "/csp-violation-report-endpoint" -# end - -# If you are using UJS then enable automatic nonce generation -# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } - -# Report CSP violations to a specified URI -# For further information see the following documentation: -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only -# Rails.application.config.content_security_policy_report_only = true diff --git a/config/puma.rb b/config/puma.rb deleted file mode 100644 index ada8926..0000000 --- a/config/puma.rb +++ /dev/null @@ -1,34 +0,0 @@ -# Puma can serve each request in a thread from an internal thread pool. -# The `threads` method setting takes two numbers: a minimum and maximum. -# Any libraries that use thread pools should be configured to match -# the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum; this matches the default thread size of Active Record. -# -threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } -threads threads_count, threads_count - -# Specifies the `port` that Puma will listen on to receive requests; default is 3000. -# -port ENV.fetch("PORT") { 3333 } - -# Specifies the `environment` that Puma will run in. -# -environment ENV.fetch("RAILS_ENV") { "production" } - -# Specifies the number of `workers` to boot in clustered mode. -# Workers are forked webserver processes. If using threads and workers together -# the concurrency of the application would be max `threads` * `workers`. -# Workers do not work on JRuby or Windows (both of which do not support -# processes). -# -# workers ENV.fetch("WEB_CONCURRENCY") { 2 } - -# Use the `preload_app!` method when specifying a `workers` number. -# This directive tells Puma to first boot the application and load code -# before forking the application. This takes advantage of Copy On Write -# process behavior so workers use less memory. -# -# preload_app! - -# Allow puma to be restarted by `rails restart` command. -plugin :tmp_restart diff --git a/config/routes.rb b/config/routes.rb deleted file mode 100644 index 8c6d477..0000000 --- a/config/routes.rb +++ /dev/null @@ -1,10 +0,0 @@ -Rails.application.routes.draw do - devise_for :admin_users, ActiveAdmin::Devise.config - ActiveAdmin.routes(self) - # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html - - root to: "page#home" - - -get '/informativo/:id', to: 'page#informativo' -end diff --git a/config/spring.rb b/config/spring.rb deleted file mode 100644 index 9fa7863..0000000 --- a/config/spring.rb +++ /dev/null @@ -1,6 +0,0 @@ -%w[ - .ruby-version - .rbenv-vars - tmp/restart.txt - tmp/caching-dev.txt -].each { |path| Spring.watch(path) } diff --git a/config/storage.yml b/config/storage.yml deleted file mode 100644 index d32f76e..0000000 --- a/config/storage.yml +++ /dev/null @@ -1,34 +0,0 @@ -test: - service: Disk - root: <%= Rails.root.join("tmp/storage") %> - -local: - service: Disk - root: <%= Rails.root.join("storage") %> - -# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) -# amazon: -# service: S3 -# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> -# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> -# region: us-east-1 -# bucket: your_own_bucket - -# Remember not to checkin your GCS keyfile to a repository -# google: -# service: GCS -# project: your_project -# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> -# bucket: your_own_bucket - -# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) -# microsoft: -# service: AzureStorage -# storage_account_name: your_account_name -# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> -# container: your_container_name - -# mirror: -# service: Mirror -# primary: local -# mirrors: [ amazon, google, microsoft ] diff --git a/current/.gitignore b/current/.gitignore new file mode 100644 index 0000000..52d69b5 --- /dev/null +++ b/current/.gitignore @@ -0,0 +1,12 @@ +/.bundle +/vendor +/log/* +/tmp/* +/config/database.yml +/config/master.key +/public/assets +.byebug_history +.DS_Store +/db/*.sqlite3 +/db/*.sqlite3-shm +/db/*.sqlite3-wal diff --git a/current/.ruby-version b/current/.ruby-version new file mode 100644 index 0000000..5ae69bd --- /dev/null +++ b/current/.ruby-version @@ -0,0 +1 @@ +3.2.5 diff --git a/current/Gemfile b/current/Gemfile new file mode 100644 index 0000000..c75f480 --- /dev/null +++ b/current/Gemfile @@ -0,0 +1,30 @@ +source 'https://rubygems.org' +git_source(:github) { |repo| "https://github.com/#{repo}.git" } + +# core +gem 'rails', '~> 8.0' +gem 'puma', '~> 6.0' +gem 'sqlite3', '>= 2.0' + +#assets +gem 'sprockets-rails' +gem 'sassc-rails' +gem 'bootsnap', '>= 1.1.0', require: false +gem 'redcarpet' +gem 'trix-rails', require: 'trix' +gem 'haml-rails' +gem 'will_paginate' + +#admin +gem 'devise' +gem 'activeadmin' +gem 'activeadmin_addons' + +group :development do + gem 'listen', '>= 3.0.5' + gem 'byebug' + gem 'awesome_print' + gem 'web-console', '>= 3.3.0' + gem 'spring' + gem 'spring-watcher-listen' +end diff --git a/current/Gemfile.lock b/current/Gemfile.lock new file mode 100644 index 0000000..f5d4d63 --- /dev/null +++ b/current/Gemfile.lock @@ -0,0 +1,383 @@ +GEM + remote: https://rubygems.org/ + specs: + action_text-trix (2.1.19) + railties + actioncable (8.1.3) + actionpack (= 8.1.3) + activesupport (= 8.1.3) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + zeitwerk (~> 2.6) + actionmailbox (8.1.3) + actionpack (= 8.1.3) + activejob (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) + mail (>= 2.8.0) + actionmailer (8.1.3) + actionpack (= 8.1.3) + actionview (= 8.1.3) + activejob (= 8.1.3) + activesupport (= 8.1.3) + mail (>= 2.8.0) + rails-dom-testing (~> 2.2) + actionpack (8.1.3) + actionview (= 8.1.3) + activesupport (= 8.1.3) + nokogiri (>= 1.8.5) + rack (>= 2.2.4) + rack-session (>= 1.0.1) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + useragent (~> 0.16) + actiontext (8.1.3) + action_text-trix (~> 2.1.15) + actionpack (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (8.1.3) + activesupport (= 8.1.3) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + active_material (1.5.2) + activeadmin (3.5.1) + arbre (~> 1.2, >= 1.2.1) + csv + formtastic (>= 3.1) + formtastic_i18n (>= 0.4) + inherited_resources (~> 1.7) + jquery-rails (>= 4.2) + kaminari (>= 1.2.1) + railties (>= 6.1) + ransack (>= 4.0) + activeadmin_addons (1.10.2) + active_material (~> 1.5) + railties + redcarpet + require_all + sassc + sassc-rails + xdan-datetimepicker-rails (~> 2.5.1) + activejob (8.1.3) + activesupport (= 8.1.3) + globalid (>= 0.3.6) + activemodel (8.1.3) + activesupport (= 8.1.3) + activerecord (8.1.3) + activemodel (= 8.1.3) + activesupport (= 8.1.3) + timeout (>= 0.4.0) + activestorage (8.1.3) + actionpack (= 8.1.3) + activejob (= 8.1.3) + activerecord (= 8.1.3) + activesupport (= 8.1.3) + marcel (~> 1.0) + activesupport (8.1.3) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + json + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + arbre (1.7.0) + activesupport (>= 3.0.0) + ruby2_keywords (>= 0.0.2) + awesome_print (1.9.2) + base64 (0.3.0) + bcrypt (3.1.22) + bigdecimal (4.1.2) + bindex (0.8.1) + bootsnap (1.24.6) + msgpack (~> 1.2) + builder (3.3.0) + byebug (13.0.0) + reline (>= 0.6.0) + concurrent-ruby (1.3.7) + connection_pool (3.0.2) + crass (1.0.6) + csv (3.3.5) + date (3.5.1) + devise (5.0.4) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 7.0) + responders + warden (~> 1.2.3) + drb (2.2.3) + erb (6.0.4) + erubi (1.13.1) + ffi (1.17.4-aarch64-linux-gnu) + ffi (1.17.4-aarch64-linux-musl) + ffi (1.17.4-arm-linux-gnu) + ffi (1.17.4-arm-linux-musl) + ffi (1.17.4-arm64-darwin) + ffi (1.17.4-x86_64-darwin) + ffi (1.17.4-x86_64-linux-gnu) + ffi (1.17.4-x86_64-linux-musl) + formtastic (6.0.0) + actionpack (>= 7.2.0) + formtastic_i18n (0.7.0) + globalid (1.3.0) + activesupport (>= 6.1) + haml (7.2.0) + temple (>= 0.8.2) + thor + tilt + haml-rails (3.0.0) + actionpack (>= 5.1) + activesupport (>= 5.1) + haml (>= 4.0.6) + railties (>= 5.1) + has_scope (0.9.0) + actionpack (>= 7.0) + activesupport (>= 7.0) + i18n (1.15.1) + concurrent-ruby (~> 1.0) + inherited_resources (1.14.0) + actionpack (>= 6.0) + has_scope (>= 0.6) + railties (>= 6.0) + responders (>= 2) + io-console (0.8.2) + irb (1.18.0) + pp (>= 0.6.0) + prism (>= 1.3.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + jquery-rails (4.6.1) + rails-dom-testing (>= 1, < 3) + railties (>= 4.2.0) + thor (>= 0.14, < 2.0) + json (2.19.9) + kaminari (1.2.2) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) + actionview + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) + activerecord + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) + listen (3.10.0) + logger + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) + loofah (2.25.1) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.9.0) + logger + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.2.1) + mini_mime (1.1.5) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + msgpack (1.8.3) + net-imap (0.6.4.1) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.1) + net-protocol + nio4r (2.7.5) + nokogiri (1.19.4-aarch64-linux-gnu) + racc (~> 1.4) + nokogiri (1.19.4-aarch64-linux-musl) + racc (~> 1.4) + nokogiri (1.19.4-arm-linux-gnu) + racc (~> 1.4) + nokogiri (1.19.4-arm-linux-musl) + racc (~> 1.4) + nokogiri (1.19.4-arm64-darwin) + racc (~> 1.4) + nokogiri (1.19.4-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.19.4-x86_64-linux-gnu) + racc (~> 1.4) + nokogiri (1.19.4-x86_64-linux-musl) + racc (~> 1.4) + orm_adapter (0.5.0) + pp (0.6.3) + prettyprint + prettyprint (0.2.0) + prism (1.9.0) + psych (5.4.0) + date + stringio + puma (6.6.1) + nio4r (~> 2.0) + racc (1.8.1) + rack (3.2.6) + rack-session (2.1.2) + base64 (>= 0.1.0) + rack (>= 3.0.0) + rack-test (2.2.0) + rack (>= 1.3) + rackup (2.3.1) + rack (>= 3) + rails (8.1.3) + actioncable (= 8.1.3) + actionmailbox (= 8.1.3) + actionmailer (= 8.1.3) + actionpack (= 8.1.3) + actiontext (= 8.1.3) + actionview (= 8.1.3) + activejob (= 8.1.3) + activemodel (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) + bundler (>= 1.15.0) + railties (= 8.1.3) + rails-dom-testing (2.3.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.7.0) + loofah (~> 2.25) + nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) + railties (8.1.3) + actionpack (= 8.1.3) + activesupport (= 8.1.3) + irb (~> 1.13) + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + tsort (>= 0.2) + zeitwerk (~> 2.6) + rake (13.4.2) + ransack (4.4.1) + activerecord (>= 7.2) + activesupport (>= 7.2) + i18n + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rdoc (7.2.0) + erb + psych (>= 4.0.0) + tsort + redcarpet (3.6.1) + reline (0.6.3) + io-console (~> 0.5) + require_all (3.0.0) + responders (3.2.0) + actionpack (>= 7.0) + railties (>= 7.0) + ruby2_keywords (0.0.5) + sassc (2.4.0) + ffi (~> 1.9) + sassc-rails (2.1.2) + railties (>= 4.0.0) + sassc (>= 2.0) + sprockets (> 3.0) + sprockets-rails + tilt + securerandom (0.4.1) + spring (4.6.0) + spring-watcher-listen (2.1.0) + listen (>= 2.7, < 4.0) + spring (>= 4) + sprockets (4.2.2) + concurrent-ruby (~> 1.0) + logger + rack (>= 2.2.4, < 4) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) + sprockets (>= 3.0.0) + sqlite3 (2.9.5-aarch64-linux-gnu) + sqlite3 (2.9.5-aarch64-linux-musl) + sqlite3 (2.9.5-arm-linux-gnu) + sqlite3 (2.9.5-arm-linux-musl) + sqlite3 (2.9.5-arm64-darwin) + sqlite3 (2.9.5-x86_64-darwin) + sqlite3 (2.9.5-x86_64-linux-gnu) + sqlite3 (2.9.5-x86_64-linux-musl) + stringio (3.2.0) + temple (0.10.4) + thor (1.5.0) + tilt (2.7.0) + timeout (0.6.1) + trix-rails (2.4.0) + rails (> 4.1) + tsort (0.2.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uri (1.1.1) + useragent (0.16.11) + warden (1.2.9) + rack (>= 2.0.9) + web-console (4.3.0) + actionview (>= 8.0.0) + bindex (>= 0.4.0) + railties (>= 8.0.0) + websocket-driver (0.8.1) + base64 + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + will_paginate (4.0.1) + xdan-datetimepicker-rails (2.5.4) + jquery-rails + rails (>= 3.2.16) + zeitwerk (2.8.2) + +PLATFORMS + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl + +DEPENDENCIES + activeadmin + activeadmin_addons + awesome_print + bootsnap (>= 1.1.0) + byebug + devise + haml-rails + listen (>= 3.0.5) + puma (~> 6.0) + rails (~> 8.0) + redcarpet + sassc-rails + spring + spring-watcher-listen + sprockets-rails + sqlite3 (>= 2.0) + trix-rails + web-console (>= 3.3.0) + will_paginate + +BUNDLED WITH + 2.5.23 diff --git a/current/README.md b/current/README.md new file mode 100644 index 0000000..5fe32c5 --- /dev/null +++ b/current/README.md @@ -0,0 +1,105 @@ +# Ambiente JA + +Portal de notícias ambientais que operou de 2001 a 2015, reunindo **170.273 artigos** em português brasileiro sobre meio ambiente, sustentabilidade e políticas públicas. + +--- + +## O que é + +O Ambiente JA foi um agregador de notícias ambientais com curadoria editorial. O acervo cobre 14,8 anos de cobertura jornalística nacional, estadual e internacional — da Rio+10 às vésperas do Acordo de Paris, passando por toda a era de ouro da blogosfera ambiental brasileira dos anos 2000. + +Cada artigo possui: +- **Título e corpo completo** (HTML e Markdown) +- **Classificação por tema** (30 temas como Legislação, Mudanças Climáticas, Fauna e Flora, Energia, Poluição, etc.) +- **Abrangência** — Nacional (46%), Estadual (30%), Internacional (24%) +- **Data de publicação** +- **Tags semânticas** para navegação e busca + +Os artigos foram coletados de fontes como agências de notícias, jornais, sites especializados, ONGs, universidades e órgãos públicos. + +--- + +## O acervo em números + +| Métrica | Valor | +|---|---| +| Total de artigos | 170.273 | +| Período | jan/2001 — out/2015 | +| Pico de cobertura | 2007–2008 (~25 mil artigos/ano) | +| Temas principais | 30 | +| Artigos com tema atribuído | 143.411 (84,2%) | + +### Temas com mais artigos + +| # | Tema | Artigos | +|---|---|---| +| 1 | Legislação e Governo | 27.835 | +| 2 | Fauna e Flora | 14.086 | +| 3 | Mudanças Climáticas | 8.645 | +| 4 | Energia Renovável | 8.544 | +| 5 | Água | 6.435 | +| 6 | Ciência e Tecnologia | 6.277 | +| 7 | Resíduos/Lixo | 6.141 | +| 8 | Saúde e Meio Ambiente | 6.088 | +| 9 | Agropecuária | 4.973 | +| 10 | Crimes Ambientais | 4.823 | + +Resumos detalhados de cada tema estão disponíveis em [`resumo/`](../resumo/). + +--- + +## Stack + +- **Ruby 3.2 / Rails 8.1** — aplicação web com ActiveAdmin +- **SQLite3** — banco de dados principal (migrado do MySQL original) +- **MySQL** (original) — dump disponível como `dump.sql` (775 MB) +- **DuckDB** — conversão parcial para análise local ([`ambienteja.duckdb`](../ambienteja.duckdb)) +- **HAML + SASS + jQuery** — frontend minimalista +- **Puma** — servidor web + +## Desenvolvimento + +```bash +bundle install +rails db:schema:load +rails server +``` + +### Testes + +```bash +rails test +``` + +Cobertura: models (`Informativo`, `Tema`, `Tag`) e rotas públicas (`home`, `busca`, `tag`, `tema`, `informativo`). + +--- + +## Estrutura do projeto + +``` +ambienteja/ +├── current/ # Aplicação Rails +│ ├── app/ # Models, controllers, views, assets +│ ├── db/ # Schema e migrations +│ └── config/ # Rotas, deploy, Puma +├── dump.sql # Dump MySQL completo (774,5 MB) +├── ambienteja.duckdb # Banco DuckDB com tabelas auxiliares +├── mysql_to_duckdb.py # Script de conversão MySQL → DuckDB +└── resumo/ # Resumos textuais por tema (Markdown) +``` + +--- + +## Contexto histórico + +O site foi ao ar em 2001, no início da internet comercial brasileira, quando a cobertura ambiental ainda era fragmentada. Durante seus 15 anos de operação, testemunhou e registrou: + +- A ascensão do tema mudanças climáticas (Protocolo de Kyoto, COPs, IPCC) +- O debate sobre transgênicos e a expansão do agronegócio +- A criação e implementação da Política Nacional de Resíduos Sólidos +- O boom dos biocombustíveis e a controvérsia food vs fuel +- Grandes desastres (tsunami de 2004, Katrina, Fukushima, Mariana) +- A política ambiental durante os governos FHC, Lula e Dilma + +O acervo é um registro histórico da consciência ambiental brasileira nas primeiras décadas do século XXI. diff --git a/Rakefile b/current/Rakefile similarity index 100% rename from Rakefile rename to current/Rakefile diff --git a/app/admin/admin_users.rb b/current/app/admin/admin_users.rb similarity index 100% rename from app/admin/admin_users.rb rename to current/app/admin/admin_users.rb diff --git a/app/admin/dashboard.rb b/current/app/admin/dashboard.rb similarity index 90% rename from app/admin/dashboard.rb rename to current/app/admin/dashboard.rb index c61d14d..058b0c5 100644 --- a/app/admin/dashboard.rb +++ b/current/app/admin/dashboard.rb @@ -1,5 +1,6 @@ ActiveAdmin.register_page "Dashboard" do - menu priority: 1, label: proc { I18n.t("active_admin.dashboard") } + menu false + # menu priority: 1, label: proc { I18n.t("active_admin.dashboard") } content title: proc { I18n.t("active_admin.dashboard") } do div class: "blank_slate_container", id: "dashboard_default_message" do diff --git a/current/app/admin/informativos.rb b/current/app/admin/informativos.rb new file mode 100644 index 0000000..b5e4a62 --- /dev/null +++ b/current/app/admin/informativos.rb @@ -0,0 +1,37 @@ +ActiveAdmin.register Informativo do + permit_params :Idinformativo, :titulo, :Descricao, :Idtipo, :Abrangencia, :Datainc, :tema1, :subtema1, :tema2, :subtema2, :tema3, :subtema3, :tema4, :subtema4, :operador_inc, :operador_alt, :markdown, tag_ids: [] + + index do + selectable_column + column :Idinformativo + column :titulo + column :Abrangencia + column :Datainc + column :operador_inc + actions + end + + filter :titulo + filter :operador_inc + + form do |f| + f.inputs 'Informativo' do + f.input :Datainc, as: :date_time_picker + f.input :titulo + f.input :operador_inc + f.input :tag_ids, as: :tags, collection: Tag.all, display_name: :nome + f.trix_editor :Descricao + end + actions + end + + show do + attributes_table do + row :titulo + # row :image do |ad| + # image_tag ad.image.url + # end + end + end + +end diff --git a/current/app/admin/tags.rb b/current/app/admin/tags.rb new file mode 100644 index 0000000..9dd1369 --- /dev/null +++ b/current/app/admin/tags.rb @@ -0,0 +1,18 @@ +ActiveAdmin.register Tag do + + # See permitted parameters documentation: + # https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters + # + # Uncomment all parameters which should be permitted for assignment + # + # permit_params :nome, :param, :count + # + # or + # + # permit_params do + # permitted = [:nome, :param, :count] + # permitted << :other if params[:action] == 'create' && current_user.admin? + # permitted + # end + +end diff --git a/current/app/admin/temas.rb b/current/app/admin/temas.rb new file mode 100644 index 0000000..72fb26e --- /dev/null +++ b/current/app/admin/temas.rb @@ -0,0 +1,18 @@ +ActiveAdmin.register Tema do + + # See permitted parameters documentation: + # https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters + # + # Uncomment all parameters which should be permitted for assignment + # + # permit_params :reg, :cod_tema, :cod_tema_sub, :tema, :ativo, :padrao, :count, :param + # + # or + # + # permit_params do + # permitted = [:reg, :cod_tema, :cod_tema_sub, :tema, :ativo, :padrao, :count, :param] + # permitted << :other if params[:action] == 'create' && current_user.admin? + # permitted + # end + +end diff --git a/app/assets/config/manifest.js b/current/app/assets/config/manifest.js similarity index 100% rename from app/assets/config/manifest.js rename to current/app/assets/config/manifest.js diff --git a/current/app/assets/fonts/WildGrowth.ttf b/current/app/assets/fonts/WildGrowth.ttf new file mode 100644 index 0000000000000000000000000000000000000000..65867b8a4d9ebbb763fdfbf5d5d20e7ee69606d1 GIT binary patch literal 136032 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

D){T3R@j2#`%6b>;pMZsMQ`kn|WAZaPFA^>> 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%0DndB10iKzxDBxc>%_~%yTq@G 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 literal 0 HcmV?d00001 diff --git a/current/app/assets/fonts/wildgrowth-webfont.woff b/current/app/assets/fonts/wildgrowth-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..45883d201b05fb015542079021a817a64b4fb702 GIT binary patch literal 73412 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¡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 G001kFoa4m+ literal 0 HcmV?d00001 diff --git a/current/app/assets/fonts/wildgrowth-webfont.woff2 b/current/app/assets/fonts/wildgrowth-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..af2d239d8ea3dcec577620109a3084d1d0248315 GIT binary patch literal 49996 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 literal 0 HcmV?d00001 diff --git a/current/app/assets/images/favicon.ico b/current/app/assets/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..50c4b3242d47020f2e44996de64d0cf52807c606 GIT binary patch literal 15406 zcmeI2>9<^EmBw$c?mxi((BE0gkU96>sybEY)I3i&4j?EXgF=`|AcP1AAs~tbP(Xx+ zRv?in5+TfjNK675$UH!V0FfaKVG`}(KMnlzz!$zS!2O_s)Ba^(z#AACIOw3x_i_I^FmM~s1_#5xA389w^4|sq#_@mn z3BTw(=hpXM>c3;=uK(oz;gET6PciS!$(DG7>yMKx{?Y`CZ8^;1FHSJ;-9bzKIcCYf z?78$?|4%W?E%z<+lxNzV!6dJ%g+xi_QV7mdghBZ{M;e#UEbSME%~S6(RZX+ zw|q<9(wmc3ygjh;{IpeOm#y{fiq%f8ntxZqVjB;$;dO^tY!h<)VZ0@F?RiJ=Ud*bO zl`XS1X_?_zey9|^2E zy>9JqHLY=G-7*V&i?deg`oMAzW~}&7V6~YwOKh8Lv8~9m;ZTdeI?0kB4Rv()U+Ccd zm{oq3v*OJK)|%>cmUv~N<$sg1?C<#fk8+m1HEZ$hK1Ir z4%jgM!g$Nx8MoAP!&bO2X(L~0Tkh_h1uIzhwir4+baZ|99`;dMl(ELyykmuD32d2M zi#<0^u_WuZPpUcn`=B@IRq9xI3@;!VGzm(7ARwb=Z{JbW7a;UX7%%{);PXtvGo)B{yut-?n%9)>nc1R*fjLm z{8kJ7g!YeQ2-hF$_sNfAR=c*qJ4P&cF8I{zYd@)v@RubSOYTnmRlgtA3GeEg6h6g6 z<(Y%H3S7!h`}+3@JB9l4Ws^S-ySyVid+(5Y@cq$Cxk#6uk&hH}%16opx+h+n+{sBF z@s6In)V)Wiv&cr#+OpMO!nJo#HE$R1Vh!(gF5au$mw0ueC0=Ho7g_IxaTeQ5?5{t> zhS!FB&dQX=BOIyMN!=kvvFFb?dU8_nNM7?UyH-zkIR%7^H|{a(5GL;ml_$ichE+JE|wadJ)8sy{4Q<*K~pevz@n3&i-gN#;K@ z?DBVh$)L-@jc+xqdUnzL8+;pDafn-cXvG(8=-Ds1oGzWjqzB2b-2OhXDqZx*5bZy= z*|YkbvK4PCS$b2_((8wh5f__~$Ot61|?V)V-+*8E1xDliS87twZwRr{0Je;@U6Dez-SR?!``6hM$*tQk#%vkljvc=bd71&E0eWrgq#md*^EVn3Usdve@ z*tD?Jvyo%!RzHCnwlv}P>-5js4yWLgaqOY|?{9}@0?F#1HIS7pGu38_yRJ{u37F^Im>LI zmYz(U9Ni`^QYNeu18=zexawdVT0@RRe~CZh2VFR4R1S1dxh-wEhrnz2R^_6GrQVFW zeD7?kSOROw2Fa}xt$t3yvP-g7csOOvnH4L~t6Kf?yp4PrOmkfsT~F=EfbF&aA#$Z; zkxX%98(lZtyYg@CGJI+!c<0)jwT{A{R#8(wAdgaW9QIY6!3L@I_`$1jaOo763uCN1w37A7(ZY(#4ZZ6Nn^b?E2D?_#f7Qiz`O>W7_B6SKSQvAC zY>{6>??6sy5r=wL8JrqC3yyvfzap1-Q4$* z13RZ5Pa;>r8ebo=#QpL8uJ4lzsyAmWy*g{^XKFWPsYNZTomaKW6-6su18$y|xBRu( zegi$)o7f@DttI6m@<0pQrSaeLJ-#)lF(cHnCOI{^h&^C~G51d_RDPMZ?4qKp+v#_y zlf*`L0d@Zm!{)E0j-l(sE3!M6dMEWhhtd+Zi9P<9K6(2^XBO2EF>Ii*C z%KXRnqknurb)hkRnY&SUc(qN{^&$8vRV`s1Zv)leOYg2^;x3_M<+;ADe3Nr3deSeaV3g!CUP8{~qeh{r+KZ&{kFCo6-b6+2O2_H1BR4jn0z>6cqUuJQUT+!2~_VfQ9eRtdb zK=kkIfeh)Lafh*|f$tkDh9sU?jIi&mReH=h`a zc%Hs8d=Bfo_1-0K(QkC)|G(M#p&p{OyYcs4GJGEU@3a2Cc!B>f&&88K(GHx*^=WyM z$Y!o*R6RhysgH?i)g<-0!fMn<_21E@TIrtYd3Yst7p|m+3&ROVIX*?43cZ5s8-*>X z@1FWs`V-eX^|5CZ?;d~C75Q2uYwz7B<|V(YWnG+4@?CJ0IG%`q5x(fXUKcMyPaASF z5hitgxO#70^a&0d3Y&q$y$~n3J}au%U2;b9_TGEt*7v<+m)?cH#8*XftKW?-$*LZl z-c;C8_%)$EUHDafy5t2D53dtG4=?c;>i5KJIWC2FYYnX>tP}3R;f^u((NBK22lOK12PktZS)4Sr9-I%oO3a+Q&jh53VZKL0jj&;fI>NTZ1J||xQuRkzk zmG9GIolAeomA@iqiN!-UEFKG)9gih0E8?@nD~a1z-zq!EhKdKpjdTXj81a1jvO}-@ zfw0CBEF&eeK?g%kmq{vJp7mR?5~_+nI&*izmLPeO|~4oLt{qX+DA3$v71(& zO+7n1XZhJBi#-S*sNPO{fD7z!f_zrb3pc5L&v8NWxmVbO;z{{H{`A3~Jw!V1zIV&7 z{;>3rPp?~cwY2cdqGeXV>90yyc_Di`6E5n0`Ykw0$K9P?u?pN?u-J#|haWh)Mo$S} z1Xo|4RbsA?v+8u_D0h1uK65R55Ra!zvcnrV?m~UL_%+1?G2{9@#g@1|7uTIVsLpoF zuFsMD0iR27MU7cyD_vQ&%-Xd1^wyej1+NTR`3}!2v*246)2q%6m0Q21 z@hH(A)Q7#V+=Ly%n2zk=s=pIkY-TTy()(PVv5{}oJDB@$ z&4%!$)2j5HdAL)0`Qy|d!{@@SYQ`vjVdMxd_EtZ+VYwR$mRuF1R&-_@u4W*otIh1i zaf`Br^QDmgATK2}JBWDZa1W9HWRS52uirj~{6Qb8xm$_ZVv+e=aZ%RID#gRM;b|m` z^xJ}SC|yMS65ENV$oI>}!|9B(`UO6G4xI7Lc`GesmU%vL0&m);&r_c%F1Dy%c_lN$ zoyZl|Y3)OHaq=r(7Tx%0wh9gE_-IsV{$vyHl zd>oxt&!qoH1^-3Z!P?w z0_U9Q(mA}cTtTFd-E>&1MpM%0pD6@Vt+VhaRScn zy5lF#$KmcO=M$UkvvD^0=oi$eE$CjhCI-Dt z-foA3x|TY6H8FiXvw(|AHVvJ(j~KD?_u;8-$yojDvZWU?wQhwg=~Y+6-Q2vB`#St{{H4xp zDGBeIR4+~L7I*J1a-a|ITDgb$`f>1Xd{_Eq^8YW=-~2;aOK-rBcEKURYd7ZR+)SZ?PMjY;&p8D32J#`^<7%96p6c}4(2sg}R*2WDTwQQnY5N4^KfeLTNG*6CiBUr!zKA!ixx0PE8UZ#j$i}wLGc3kXLw6DOTbUuY(lkKvw@Xd+K2o| zu`G-vKf(@U$)DXBw;DCMcq1{unUOYUOX}0{*Ol_VO*v&E6lfQYA zHRgehX2Wy-I%lPO!5!Z%k)JuQ!aSpRSH@cKmC9*~1OJgMxfK2xT&q}?9|>bi|C%oh z(K|St6xKEQ(mv(Kck=6)v3`$P<^u&QfTi1~p+|B?ZULPCThze!u%UV}&483YWCwKb z_CXv6&rP((OwOZRQ?lgCoV|Es$g=Cu$qmeqz!&vdHRg!oJZ=cLK=$iF3S!D?c63ui^PgI{k{JW&hDY2we?aA)PSn&6WZc7^+<-U>UoS|F?! z+F-Qrk*{K(vE5 z1S|g3W2Q^)xic_tE42z+C10Ovg(v74&gl5R+XK0@ehTlspFZg|cn1ETzhSZ!nS~YR zWz4&C*oKyomn6S%_gHhDFb64rW;b}2f1I4TI@DBwpqcmqOeJFHW)Qjm!d=eMB}82V0%VTc8d()$ei!k6B{s57=CJS$v9SezJq=4L+=MX-RtK z#Pi|)*r%{edIvMPYneqH&e@3&(<(2uzD=#UgqhycoX1MT}gVl zPOTZs|4088>fZ++<)2Sj?FZB|@NfMxF!3qm5aOZnou(D8r$1r6C!LTHkWaoxRoCqhx2Fs-M)6@~^=XCvziQf8_HI_l^Hc>*GjCBew5sIUZ>}) zF>^}Yk|ut!<)_rY&TUp6OIqowviaKscRoh-xpfX_B7})KBUdBNOY_OMx2G+?AcZUe zaY7%#d@S`F`h-`of%rDf1Rc)<&Rb87ruP#*mroYwS1nB*t?1k!oI!;%1nrYc#2hnQ z;v@KJ#$xNnW79F_l-;;A(!bGVTlQrUw(7XJGIEl_Jsh`cjHPxx}n&k-3X|5Qo&sacDUb-J&1?TGQ#R&e@;P1f= z$iJHU4zD!oBi-`$evagaqbRNc%h9iA9^rg}&Lr`-G;^F9*q}C}#<{3G=OVzHuTm4} zmybE^) zq$Y@0R$UX`mE7_f;a=4X^-t;ni7E9Vh1H(5Pwj95Eqti((+acQB=v=U;aTbgJ+-UT z^dB|)(CSQjlXK8jue|-fckMx#w6K!7?%PfZQgI!U zQ@n>{)?NPIExY(9nu zGPe#|-~Od{4_)$WzsjLGa7>MJN-gqF<1G3a&MP-hXcD)?#)n=6(fKThizhOd-FBRUGh60+JK*PhTNSmlMUuHT;Jcgn)x{S zO=pJ+_-*Xz&RJ;jsh`$=qBw}|vV~878PMY@7E&K0d$do(Y|xT*q~BB6JfgO-jTlwU(XppFqHQ2 z_a?tMiUKo}md6723o`e7X-t_NyWnwR0YR;2q!KoYsE$lhM6>2L1Qb z?}0p1EQ>#A&gG0UxwG32r61P8>R>9k{ZSda{iXNw-%@^RhTETN2e>HD?4daizBJr} zVxV|U4SeNy=H0!r_WS-BT3LTI5E=^z4vv;+t>gwR2xD@YNg2_hgUNJl`5D7{Dr z5m0&)=}iG?FW^4=c;4IZ+}a5RORrM9+DV0jyd$>nmivxX_TT6w9!WS=hGQ>(MXq2Mi}$OYps zsX^Z}4+{zfC8m0gcVEl*C$4@y{Mzw;bD_V(h^GqtJce_J>-zR%lZkzVQ{+mZh%UgRo3w=LWcz8%l3 zRJ5X{WBlFmkU9OM<2POfuQ_%-b+g4}&E7cZ(_WhsmYBejdihbAOJCkL7w`#i2QCH& z=ANy$1b=-vCG!w;AAW})W^px0htZ(ccS(R0w0Y~z56!L8jyK1LRI#dshD|>-ci~~l z`~8>dyA=Ej16M2{rQ1KnloH!d1YyxN-W-g)#y}rlow|i=s7mL2E=+B~{FNIYu=pF7 zMsXfSNBL!Y)nQ*kf9>Z=XJ*3mYxsD^gjHs3*G!6IPp^0lDSy%`EUubTOD`z4Z`k{M zYcpsMAkBpMIH<;E*Ha$ZE4u3Px?kk0#c*;7E@Ab^sHtZ$;zd_YLV2>sI}iA(VEsn* z5o^Fk)%t+^%S`W|R~$0E)>gomQ)^D*WH#%T5}9+iR(k8Hp1qr3ZTRt_u(aW{J>6aI z$g;})#@UYpsaM?7ufDxB^q4xZl!$vFatF+g!vl6wYpW!sXEVULYX02bPpkN9Qp}UZ zJaSc|P#1%A3>TjoNnuPi&wJW- zp8hDUxf3a<&Gr?5Mpp7ER<{3K9oVz`?s0W|$TEVgXei|;!FYSQNiFP6)ynPSr&guR z+MH6Qq9KLltgG?kV~6~^z2)f}93`$_zuA?Rd?G67-PE35f2j8Kd-3%K!|mI7k_8`M zxd9b`y~U5kx<-&{O{2yfD>FBm1xG4^NjuzJsmfIo6Gv9@M>lMiMoS_VLY8lD_$Ga} z@cFvG6tpjm!CM?=;Qt_dh!#B4=) z3*MpC1ouC_@Jhb(U@1lMITaw5u4`MX2y}y8?&xc zmwmN?wd&?gIBTVA$iJCb6?cevFlgIo+r=ceB30$At|5;X z4cpUgqM@iv45jZ8L0$>sh!0(fQsW*AylmgL;TLf&LML-!?@3v?0ciZN%0#!2V9odF z!A-~XA#NH`Gv~VwQ9qvMlMCIA=5yqXJ=GZ$*puNqTstPcwsyz<&G08^&&r6lT3;*! zAcoS9ja<*~W^YCi1nx00l%;=2`MBppF~QEw7w_)&)X9+SiQ?G)ETK{1;;8+^)c9)c8Mb*@)Ea|y5LjJ*nzpv08+fk)R3GbZj;G* zi8s0`DSlEwLwwF^gK1O5FokEV5R7%2^MuzpIua4lyj(gB>NV^(0+G3*nU9b-1%?Z2F0@%L~NTukIOg8+dhWIO~$G z3=^IDU_$krOh{swJsG)uO@g~Vt^P>Zdg#w+h+kTo4X57a2i<@y*d|dhRBM^#Zk! zhHA2-oTqUnsI&|V{8yjIkYzN2pPNprSWIz8JL&^nE#799d$r;8;sX>u(r zEo5~U-1&AC+Fd{E`bh>up&_?VXA^*yj7g zfOh7iAK{WKzV!wYjl+`Ekd8;SML4 zt>Mpc`6hQlir*?Y>WK3XA6h;HICQ?%dtBWkUP976PS`;4GWgKMzV8tleBsT#&V;6xc2LUa&s0&>m zuTA*%Mmu7%J7~A?isq}j!&&k2iI{Qd5@h@tH^4nr-42Y;gk#*R65VCzqn^Q5vhy!x z5nEJTO<8@3JInD+BgSn|iEkY~>v{r1C<`_xZ_An@p!vv>c>&_(Vh#W$JDy^slSvW!L6- z(i6hW-%*V54#HK%Kk{?llv*x1v75O&<%(K<* ze}`5!T>cU&EZF_#egdf`g*y=VrP_}%E6R56Qt2eXh-l5$o|=bn?$%2Ad?r7hj#Fs2 z7@*UPjJ*GCa}jzoj9uaq-dM$WzYY`iH&?$;YL<7;qC_*rByg|HB90SQ=}AK?=BOGd z#T~o(mqg%<&o8;f^Xg>h?!mpfH5TnLK@DydlDb9xT z7j!hY!@|}nI-X35z6n-qx6fPETxNIU*EFc0qNep;&)*|E5PDxUq6qVSIS=8uV`q<_ z*OV2WtSa%<`f5=V1wdParw+6sPufF+yTF_nkFUasduu&p{-b}J1=)%uD}%1CyXi!A z!obM(2~QlJu(k1)_^XZtBjOkLb=w(cjKdF>-S_B-DR}4FUYSEiG^X=fsc4!U742qX z8dJfK7JDS*@J%Upvj-!@75K6NF6b$&S~|89w83EYdq#5~0tOyc`w>z-;t-nkfWi zGnNAkdraK-ZEGrYz}$JJs_gOK{|$g|OM z;7ICmLOD~(w%#bns+LYHTBNBVTrgWt$>&jHnHgvNZ1C_N!S-cBS8C%z8F8~`9F_77 zAMP3Ay`TX%NNPC<8smoJTKMS_5gg$Pi$aK=va8MBeDaeV6`8qbJs{WAfJWmJmP8=# z00~FFjm{qBk?`$b+R&A6j-t54J{8BY? zIOE88E0s{5uqFvg-NNE|l0(D`_`on18$bu7^MA0%WswUE;nN|v7EPX|9q_%zB&kuM4Fbm)i?V|Q&byVoVDs?ZdtqE4)e77ok=H>lop*+$s zqP?Ek*svICwQEZYbTYEETTzeIre$tlgR?aHxRxj2_XDeTxd%}Lxi16Kc1+G-Okv|Z$*z5I`A#!2PTTa&;m-ZrocyrUl zOjS)TFY-JjMJ1l^F=`j+SiLMn1u@A)%mL6!esd$YCYFuipb|Ax;x6uG=lC!3l`Bu# z3lD6?%JP*9I^|ssB}jsZd?M_L@xtgWTOC^W$-JStRApD(`tf?AeH^L!sJg3^1It}A zpnYCLnMvTtxUk6|fg+uXLpJ0-g@pT~%P%LBcckT%JHV|(T3LqkI5pJ|n@m%`TH3#i zIP?{1e|!xUp(T{-K^m8t53x^Kcg$r?j7h(fzNZWtqz51SP27Nqb8ObNKOyHNqwsds zzJ*Jt+~}RfetN4cTZg`0qpTT4_u2j7OobYedsVT1yhs1?aoLal^(&k{(6R41p;FP2 zA^qh{w8hc)CmmCp)Un4-Oy|8QT=E$x$2>p(qzv7F6C@JfH4!fRU@D2Llbj~`8xGxr zxdMLwtU$M6tx1uw{I$SBok@y$qQH5*9H+|7S3L~W{7(ZpUyp?lzCt2yl{+8T9W>uLP7R;ZvI;u$ObhU*5`*D2(0ttz1q^k@BuEdEGv} zd^SI1-Lt1UOp5AMVa_%;o4T=Y)va2)?5a26qsf9J8iOZ9lH+(d!B;G`f)-!9IuVf) zyOQ&o8Au#}a^-$BUG`v8pNq%77YIixE9+}2EC1s)0M<=L&_g+m78rAz)v%T-Kcxw^ zSEv3{fqT&qC;Di8_K&2+&{T_`1Ugp}=`O1`Rn5$F*p4){ncXD1sYrbc@IYe>F%K`D zjnbL7`l2S{efC*>HUZftwom98iNq%*A8n_m_7z1p-NY9TciZCtigl+x%Eg!M7?leQ zY>3$r*z^pJW0i0gY2>-oFWORhU+UgVDc7)Fd5=_jc+x?JZ%;1SB?Yvl$6>7JyC&Rz z^7MiQS&vlHo;T$~?M2p3twyahH->qwH0q1cQ*%X0d_{hGr_K5%R%T1kUYpkPdt4gS z*;%0=tumUt8$4}Fi9hUEPn#mGKq*QkAVz5h{Yb*vS)#MB=}Gh2E)pqTIy~rY=C5}6 z#2dKZU(E-y$>^ToZz@8H=G2#7@wx1*+Acg0dwzS zU(2WVK2qbVjgfMzb1tI;(iL@KagP2S3Ag(bhw?(Z zTwvgKLI@XxD>e{MEVIbJ;Ia098vNySF32y0f~vUNd7ZOps>p%P1AxNa?T~Qj#UlhF zYHK55X9JcLu@?r5BP0-Dh^?In7y%KHlt4&H+lYus|3;>54GI*qnUW zB}Ku~qM{IKd$_orG~`!C{mJg>ZjbS?K_e6$utkJjXKV>wtTXW1MV9gYYb-vF2yBr2 z!eUTiVbHJT1#nhy#%Uxo?%8_D3l8lf&N!v{*fsEAKY*D zendT|BIhL((QlI1D5)4C;ySYf6Mi^T>p^*{}K4_?D|`-|44!V2>f?; z{g25-`p>H|!VUXH&j)+)b#hmf#a@~d^tFvu+1SpopWTCnuiGEizmFasZ6BQ+tnH2- z9BqF;T%F%&UfSx~*EU-Ur= z2USOwb7nW*z8STeS$jJ;pZ;+n`}1y)?*s33A0rwCi8hkM zjrAP5HSUVk@1yBTgI+gpsB!d~x0H;RJ5SR+C^6zeeZ-GTWBszdkI&JR-Hig2!_0@? z@iTr!IjTL45DYGTezwH@lyPmH-g-~w>WQq)Fk_H(-^g8Nx;Sr!VTJf4Br=4B%?`R| zr58J#?Yyn6|t z!&`Zu&uK45j$lFGu!2|OearSTIgTT{pXjZFs3)YEMdgz z`*`I!SWo+hku{!lH$#}hd2Nft7gX5ICp8D!sVksk5Z^A#)~27s$QQe|ob5OhC?*0N zNL>h}!1HaZA3&|h7HYMOW)T-BM-gVXO}|u5S;}>e@`QPKY)fY6^9XjE_;2pY{p4!s7Z*8i2banFDqc>UWeu)s$m?!i=f$Jn-s94=TXcKnI?&k0^Ua zC~=g!x&;koczaS)cKK!34}14IfHcgjkO4>PB%-;S!n%T1w4Ht_{YT%(<2naACn7{Y z(}@3!Yt z^6Z-|54j>Ws-Ce(LIz@`s5;(7^Jk-j$`BCneMF3%qJ9>!$DvQI%bTst88((08P2>i zOSKq+NykwKaezP-aa1TQ zMr#f?{1?WU3^bWqx>+AEGr-mN_B6-Z9rjmHFe7i@x)&Xb9&@W3utjXrc5nX59BxpJ@n$uOaRE)_FZ;$7shV@!0yyK3-wb0;4wS-p_h>pMxZkJv0gJG=>NHO0pyyeeq`*2a^Alf6o3{|-haHs>J>~k!93CQtboLT2PO%Pyh92I}+^^jU z*Vljr2J6~#Eq(aBe+f8gxsV!^LSvBvqY`Qo*%sLJAO3K|;l#P_V!WETUk1eaC=A&QUC+J!i{TXumQfp{RBW1VhEAkGfJ`(11 z)lxDo^ZTfe=y53_pYToX<8VNsUkZw6nSRJNe< z;}YimF_@<8-IKt)bnl=WtBh9~-i}@-f0Z&^iBQ}O=SLNgC*NYx+Bcy)v>;lOnHxDI zV=%t#f|+f*b%TxSwIRDN^~}NSX4*1}=nlzu!;pq|^l!Ix#iI8Wdg8z)KM~i-{0yI) zj{C0#{YcB?bFm5)b)ZxZF)ZvK0~ZS zdh_9REz-g|q#u#3*WuAL<{@H=HB7zQ=|fm>b+X3N_RmxE&ke36Eyt&^{Sbjzx{)__ z9I`&jmlMxOn|>~ogX+n4u4t+bt7gg)?5SajSkd-}K}?q>tdU6tf9-c@3Lk$xp{ + margin-bottom: 10px; + line-height: 18px +} +#busca{ + display: inline-block; + float: right; + padding-right: 25px; + padding-top: 12px; +} +.busca-btn{ + padding: 3px; + border: 1px; + font-weight: 900; + width: 25px; + color: white; + background-color: #006122; +} +.busca-input{ + font-family: 'Fira Sans'; + padding: 3px; + border: 1px; + background-color: #33f739b0; + width: 190px; +} +#all{ + width: 900px; + margin: 0px auto; + margin-top: 50px; +} +.link{ + background-color: #ffdb00; + padding: 4px; + line-height: 33px; + display: inline; + font-weight: bold; +} +.tag{ + display: inline-block; + padding: 4px; + margin: 3px; + background-color: #d8d4d4; + font-size: 12px; +} +#tags{ + text-align: center; + padding: 10px 0px 25px 0px; +} +#informativos{ + display: flow-root; +} +.tags{ + margin: 2px; + display: inline-flex; + background-color: #d8d4d4b8; + font-size: 12px; + padding: 2px; + font-weight: normal; +} +h2{ + margin: 0px +} +h3{ + text-align: right; + font-size:15px; +} + +#topo{ + background-image: linear-gradient(to right, #47a91c, #066f09); + width: 100%; + display: inline-block; + top: 0px; + left: 0px; + position: absolute; + height: 45px; + border-bottom: 1px solid lightgray +} + +.card{ + /* color: black; */ + width: 100%; + border-top: 1px solid lightgray; + padding-top: 10px; + display: inline-block; + background-color: white; + margin-bottom: 8px +} +.date{ + font-size: 12px; + color: gray; + padding-top: 10px; + background-color: white; + display: table; +} + +#nav{ + display: inline-block; + width: 100%; + text-align: center; + padding: 10px; + font-size: 19px; + background-image: linear-gradient(to right, #33f739 , #329c04); +} + +#baixo{ + background-color: #d3d3d3bf; + font-size: 11px; + width: 100%; + /* bottom: 0px; */ + position: fixed; + bottom: 0px; + left: 0px; + padding: 4px; + text-align: center; +} diff --git a/app/controllers/application_controller.rb b/current/app/controllers/application_controller.rb similarity index 100% rename from app/controllers/application_controller.rb rename to current/app/controllers/application_controller.rb diff --git a/app/controllers/concerns/.keep b/current/app/controllers/concerns/.keep similarity index 100% rename from app/controllers/concerns/.keep rename to current/app/controllers/concerns/.keep diff --git a/current/app/controllers/page_controller.rb b/current/app/controllers/page_controller.rb new file mode 100644 index 0000000..438c7f3 --- /dev/null +++ b/current/app/controllers/page_controller.rb @@ -0,0 +1,41 @@ +class PageController < ApplicationController +# caches_page :home, :informativo + + def home + @informativos = Informativo.order("Datainc desc").page(params[:page] || 1) + end + + def informativo + @informativo = Informativo.find(params[:id]) + @title = @informativo.titulo + end + + def tag + @tag = Tag.find_by(param: params[:param]) + @informativos = @tag.informativos.page(params[:page] || 1) + @title = @tag.nome + render "list" + end + + def tema + @tema = Tema.find_by(param: params[:param]) + @informativos = @tema.informativos.page(params[:page] || 1) + @title = @tema.padrao + render "list" + end + + def busca + @search = params[:q] + terms = @search.to_s.split(/\s+/) + scope = Informativo.all + terms.each do |term| + clean = term.gsub(/[+\-*"()~<>]/, "") + next if clean.blank? + scope = scope.where("titulo LIKE ?", "%#{clean}%") + end + @informativos = scope.order("Datainc desc").page(params[:page] || 1) + @title = "Busca: #{@search}" + render "list" + end + +end diff --git a/app/helpers/application_helper.rb b/current/app/helpers/application_helper.rb similarity index 100% rename from app/helpers/application_helper.rb rename to current/app/helpers/application_helper.rb diff --git a/app/models/admin_user.rb b/current/app/models/admin_user.rb similarity index 54% rename from app/models/admin_user.rb rename to current/app/models/admin_user.rb index 3c851a1..de29488 100644 --- a/app/models/admin_user.rb +++ b/current/app/models/admin_user.rb @@ -3,4 +3,8 @@ class AdminUser < ApplicationRecord # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :recoverable, :rememberable, :validatable + # Include default devise modules. Others available are: + # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable + devise :database_authenticatable, + :recoverable, :rememberable, :validatable end diff --git a/app/models/application_record.rb b/current/app/models/application_record.rb similarity index 100% rename from app/models/application_record.rb rename to current/app/models/application_record.rb diff --git a/app/models/concerns/.keep b/current/app/models/concerns/.keep similarity index 100% rename from app/models/concerns/.keep rename to current/app/models/concerns/.keep diff --git a/current/app/models/informativo.rb b/current/app/models/informativo.rb new file mode 100644 index 0000000..3f1276a --- /dev/null +++ b/current/app/models/informativo.rb @@ -0,0 +1,27 @@ +class Informativo < ApplicationRecord + self.table_name = "informativo" + self.primary_key = "Idinformativo" + has_and_belongs_to_many :tags + + before_save :meta + + def temas + Tema.where("cod_tema = #{self.tema1} or cod_tema = #{self.tema2} or cod_tema = #{self.tema3}").map(&:tema) + end + + def as_markdown + html = HTMLPage.new :contents => self.Descricao + html.markdown + end + + def to_html + Redcarpet::Markdown.new(Redcarpet::Render::HTML.new).render(self.markdown) + end + + private + def meta + #expire_page action: "show", id: params[:list][:id] + self.Datainc = DateTime.now unless self.Datainc + end + +end diff --git a/current/app/models/tag.rb b/current/app/models/tag.rb new file mode 100644 index 0000000..a3cac59 --- /dev/null +++ b/current/app/models/tag.rb @@ -0,0 +1,16 @@ +class Tag < ApplicationRecord + has_and_belongs_to_many :informativos + before_save :parameterize + validates :nome, uniqueness: true + + def self.top + Tag.limit(80).order("count DESC") + end + + private + def parameterize + self.nome.strip! + self.param = self.nome.parameterize + puts "Tag: #{self.nome}" + end +end diff --git a/current/app/models/tema.rb b/current/app/models/tema.rb new file mode 100644 index 0000000..3572ed8 --- /dev/null +++ b/current/app/models/tema.rb @@ -0,0 +1,11 @@ +class Tema < ApplicationRecord + self.table_name = "temas" + + def self.infos + Tema.where(cod_tema_sub: 0).where.not(padrao: "").map { |t| [t.padrao, t.count] }.sort_by { |_, c| -c } + end + + def informativos + Informativo.where("tema1 = ? OR tema2 = ? OR tema3 = ?", cod_tema, cod_tema, cod_tema) + end +end diff --git a/current/app/views/layouts/application.haml b/current/app/views/layouts/application.haml new file mode 100644 index 0000000..6f2807b --- /dev/null +++ b/current/app/views/layouts/application.haml @@ -0,0 +1,35 @@ +!!! +%html + %head + %meta{content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ + - title = "Ambiente Já!" + - title = "#{@title} - #{title}" if @title + %title= title + = csrf_meta_tags + = csp_meta_tag + = favicon_link_tag asset_path('favicon.ico') + = stylesheet_link_tag "https://fonts.googleapis.com/css?family=Fira+Sans&display=swap" + = stylesheet_link_tag 'application', media: 'all' + = javascript_include_tag 'application' + + %body + + #all + #topo + = link_to image_tag("logo.png", class: "logo_img"), "/" + #busca + = form_tag("/search", method: :get) do + = text_field_tag :q, "", class: 'busca-input', placeholder: "+agrofloresta +vida -lixo" + = submit_tag '⌕', class: 'busca-btn' + + #temas + - Tema.infos.each do |t| + = link_to "/tema/#{t[0].parameterize}", class: "tema" do + %span.content= t[0] + %span.right= "(#{t[1]})" + = yield :tags + #informativos + = yield + + #baixo + %span - AmbienteJá desde 2001 - diff --git a/current/app/views/page/home.haml b/current/app/views/page/home.haml new file mode 100644 index 0000000..b8b74b6 --- /dev/null +++ b/current/app/views/page/home.haml @@ -0,0 +1,16 @@ +- content_for :tags do + #tags + - Tag.top.each do |t| + %span= link_to "#{t.nome} (#{t.count})", "/tag/#{t.param}", class: "tags", target: "blank" + +#informativos + - @informativos.each do |i| + .card + %p= link_to i.titulo.html_safe, CGI.unescapeHTML("/informativo/#{i.id}"), class: "link" + - i.tags.each do |t| + %span= link_to t.nome, "/tag/#{t.param}", class: "tags", target: "blank" + - from = i.operador_inc ? " | #{i.operador_inc.downcase.capitalize}" : "" + .date= "#{i.Datainc} #{from}" + +#nav + = will_paginate @informativos \ No newline at end of file diff --git a/current/app/views/page/informativo.haml b/current/app/views/page/informativo.haml new file mode 100644 index 0000000..4101ecf --- /dev/null +++ b/current/app/views/page/informativo.haml @@ -0,0 +1,25 @@ +:javascript + $(document).ready(function(){ + $(".texto a").each(function(a){ + $(this).attr("target", "_blank"); + }) + }); + +#todo + %h2.link= @informativo.titulo.html_safe + #br{style: "padding-top: 4px"} + + - @informativo.tags.each do |t| + %span= link_to t.nome, "/tag/#{t.param}", class: "tags", target: "blank" + + - from = @informativo.operador_inc ? " | #{@informativo.operador_inc.downcase.capitalize}" : "" + .date= "#{@informativo.Datainc} #{from}" + + .texto!= @informativo.Descricao #to_html + -# %hr + -# != ap @informativo + + %hr + #tags + - Tag.top.each do |t| + %span= link_to "#{t.nome} (#{t.count})", "/tag/#{t.param}", class: "tags", target: "blank" diff --git a/current/app/views/page/list.haml b/current/app/views/page/list.haml new file mode 100644 index 0000000..2bdbcba --- /dev/null +++ b/current/app/views/page/list.haml @@ -0,0 +1,14 @@ +%h2.link= "[ #{@title} ]" +-# .date= "#{@informativos.count} informativos" +#br{style: "padding: 5px 0px 5px"} + +- @informativos.each do |i| + .card + %p= link_to i.titulo.html_safe, CGI.unescapeHTML("/informativo/#{i.id}"), class: "link" + - i.tags.each do |t| + %span= link_to t.nome, "/tag/#{t.param}", class: "tags", target: "blank" + - from = i.operador_inc ? " | #{i.operador_inc.downcase.capitalize}" : "" + .date= "#{i.Datainc} #{from}" + +#nav + = will_paginate @informativos diff --git a/bin/bundle b/current/bin/bundle similarity index 100% rename from bin/bundle rename to current/bin/bundle diff --git a/bin/rails b/current/bin/rails similarity index 53% rename from bin/rails rename to current/bin/rails index 0739660..5badb2f 100755 --- a/bin/rails +++ b/current/bin/rails @@ -1,4 +1,9 @@ #!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end APP_PATH = File.expand_path('../config/application', __dir__) require_relative '../config/boot' require 'rails/commands' diff --git a/current/bin/rake b/current/bin/rake new file mode 100755 index 0000000..d87d5f5 --- /dev/null +++ b/current/bin/rake @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +require_relative '../config/boot' +require 'rake' +Rake.application.run diff --git a/bin/setup b/current/bin/setup similarity index 67% rename from bin/setup rename to current/bin/setup index 94fd4d7..5853b5e 100755 --- a/bin/setup +++ b/current/bin/setup @@ -1,6 +1,5 @@ #!/usr/bin/env ruby require 'fileutils' -include FileUtils # path to your application root. APP_ROOT = File.expand_path('..', __dir__) @@ -9,24 +8,25 @@ def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") end -chdir APP_ROOT do - # This script is a starting point to setup your application. +FileUtils.chdir APP_ROOT do + # This script is a way to setup or update your development environment automatically. + # This script is idempotent, so that you can run it at anytime and get an expectable outcome. # Add necessary setup steps to this file. puts '== Installing dependencies ==' system! 'gem install bundler --conservative' system('bundle check') || system!('bundle install') - # Install JavaScript dependencies if using Yarn + # Install JavaScript dependencies # system('bin/yarn') # puts "\n== Copying sample files ==" # unless File.exist?('config/database.yml') - # cp 'config/database.yml.sample', 'config/database.yml' + # FileUtils.cp 'config/database.yml.sample', 'config/database.yml' # end puts "\n== Preparing database ==" - system! 'bin/rails db:setup' + system! 'bin/rails db:prepare' puts "\n== Removing old logs and tempfiles ==" system! 'bin/rails log:clear tmp:clear' diff --git a/current/bin/spring b/current/bin/spring new file mode 100755 index 0000000..d89ee49 --- /dev/null +++ b/current/bin/spring @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby + +# This file loads Spring without using Bundler, in order to be fast. +# It gets overwritten when you run the `spring binstub` command. + +unless defined?(Spring) + require 'rubygems' + require 'bundler' + + lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) + spring = lockfile.specs.detect { |spec| spec.name == 'spring' } + if spring + Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path + gem 'spring', spring.version + require 'spring/binstub' + end +end diff --git a/bin/update b/current/bin/update similarity index 100% rename from bin/update rename to current/bin/update diff --git a/config.ru b/current/config.ru similarity index 100% rename from config.ru rename to current/config.ru diff --git a/config/application.rb b/current/config/application.rb similarity index 84% rename from config/application.rb rename to current/config/application.rb index 8aa0487..19a3440 100644 --- a/config/application.rb +++ b/current/config/application.rb @@ -1,7 +1,6 @@ require_relative 'boot' require 'rails/all' -require "awesome_print" # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. @@ -10,11 +9,7 @@ Bundler.require(*Rails.groups) module Ambienteja class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 5.2 - - config.generators do |g| - g.template_engine :haml - end + config.load_defaults 8.0 # Settings in config/environments/* take precedence over those specified here. # Application configuration can go into files in config/initializers diff --git a/config/boot.rb b/current/config/boot.rb similarity index 61% rename from config/boot.rb rename to current/config/boot.rb index b9e460c..ec779bb 100644 --- a/config/boot.rb +++ b/current/config/boot.rb @@ -1,4 +1,4 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) require 'bundler/setup' # Set up gems listed in the Gemfile. -require 'bootsnap/setup' # Speed up boot time by caching expensive operations. +#require 'bootsnap/setup' # Speed up boot time by caching expensive operations. diff --git a/current/config/deploy.rb b/current/config/deploy.rb new file mode 100644 index 0000000..06a7d04 --- /dev/null +++ b/current/config/deploy.rb @@ -0,0 +1,32 @@ +require 'mina/rails' +require 'mina/git' +require 'mina/bundler' +require 'mina/rbenv' + +set :user, 'polo' +set :domain, '51.15.63.128' +set :deploy_to, '/home/polo/apps/abrigo/ambienteja' +set :repository, 'http://git.mostre.me:3500/rafapolo/ambienteja.git' +set :shared_dirs, fetch(:shared_dirs, ['log', 'public/upload', 'tmp', 'tmp/pids']) +set :shared_files, fetch(:shared_files, ['config/database.yml']) +set :rbenv_map_bins, %w{rake gem bundle ruby rails puma pumactl} + +desc "Deploys the current version to the server." +task :deploy do + deploy do + invoke :'git:clone' + invoke :'deploy:link_shared_paths' + invoke :'rbenv:load' + invoke :'bundle:install' + invoke :'rails:assets_precompile' + # invoke :'restart' + end +end + +task :start do + command "cd #{fetch(:deploy_to)}/current; bundle exec puma -C config/puma.rb &" +end + +task :restart do + command "kill -SIGUSR2 `ps aux | grep tcp://0.0.0.0:3333 | grep puma | awk '{ print $2 }'`", quiet: true +end diff --git a/config/environment.rb b/current/config/environment.rb similarity index 100% rename from config/environment.rb rename to current/config/environment.rb diff --git a/config/environments/development.rb b/current/config/environments/development.rb similarity index 92% rename from config/environments/development.rb rename to current/config/environments/development.rb index 371d87c..62c10ba 100644 --- a/config/environments/development.rb +++ b/current/config/environments/development.rb @@ -16,6 +16,7 @@ Rails.application.configure do # Run rails dev:cache to toggle caching. if Rails.root.join('tmp', 'caching-dev.txt').exist? config.action_controller.perform_caching = true + config.action_controller.enable_fragment_cache_logging = true config.cache_store = :memory_store config.public_file_server.headers = { @@ -26,10 +27,8 @@ Rails.application.configure do config.cache_store = :null_store end - - config.serve_static_assets = true - # Store uploaded files on the local file system (see config/storage.yml for options) + # Store uploaded files on the local file system (see config/storage.yml for options). config.active_storage.service = :local # Don't care if the mailer can't send. @@ -49,12 +48,12 @@ Rails.application.configure do # Debug mode disables concatenation and preprocessing of assets. # This option may cause significant delays in view rendering with a large # number of complex assets. - config.assets.debug = true + config.assets.debug = false # Suppress logger output for asset requests. config.assets.quiet = true - # Raises error for missing translations + # Raises error for missing translations. # config.action_view.raise_on_missing_translations = true # Use an evented file watcher to asynchronously detect changes in source code, diff --git a/config/environments/production.rb b/current/config/environments/production.rb similarity index 67% rename from config/environments/production.rb rename to current/config/environments/production.rb index 8326a60..c9ce561 100644 --- a/config/environments/production.rb +++ b/current/config/environments/production.rb @@ -2,13 +2,18 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. + config.cache_classes = true config.public_file_server.enabled = true + # config.action_controller.perform_caching = true # Eager load code on boot. This eager loads most of Rails and # your application in memory, allowing both threaded web servers # and those relying on copy on write to perform better. # Rake tasks automatically ignore this option for performance. config.eager_load = true - + config.hosts << "ambienteja.org" + config.action_controller.perform_caching = true + config.cache_store = :file_store, "#{root}/tmp/cache/" + config.action_controller.page_cache_directory = Rails.root.join("tmp", "cached_pages") # Full error reports are disabled and caching is turned on. config.consider_all_requests_local = false config.action_controller.perform_caching = true @@ -19,17 +24,13 @@ Rails.application.configure do # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. - config.public_file_server.enabled = true #ENV['RAILS_SERVE_STATIC_FILES'].present? - # Compress JavaScripts and CSS. - config.assets.js_compressor = :uglifier + # Compress CSS using a preprocessor. # config.assets.css_compressor = :sass # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile =true - # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb - # Enable serving of images, stylesheets, and JavaScripts from an asset server. # config.action_controller.asset_host = 'http://assets.example.com' @@ -37,10 +38,10 @@ Rails.application.configure do # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX - # Store uploaded files on the local file system (see config/storage.yml for options) + # Store uploaded files on the local file system (see config/storage.yml for options). config.active_storage.service = :local - # Mount Action Cable outside main process or domain + # Mount Action Cable outside main process or domain. # config.action_cable.mount_path = nil # config.action_cable.url = 'wss://example.com/cable' # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] @@ -58,9 +59,9 @@ Rails.application.configure do # Use a different cache store in production. # config.cache_store = :mem_cache_store - # Use a real queuing backend for Active Job (and separate queues per environment) + # Use a real queuing backend for Active Job (and separate queues per environment). # config.active_job.queue_adapter = :resque - # config.active_job.queue_name_prefix = "ambienteja_#{Rails.env}" + # config.active_job.queue_name_prefix = "ambienteja_production" config.action_mailer.perform_caching = false @@ -90,4 +91,25 @@ Rails.application.configure do # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false + + # Inserts middleware to perform automatic connection switching. + # The `database_selector` hash is used to pass options to the DatabaseSelector + # middleware. The `delay` is used to determine how long to wait after a write + # to send a subsequent read to the primary. + # + # The `database_resolver` class is used by the middleware to determine which + # database is appropriate to use based on the time delay. + # + # The `database_resolver_context` class is used by the middleware to set + # timestamps for the last write to the primary. The resolver uses the context + # class timestamps to determine how long to wait before reading from the + # replica. + # + # By default Rails will store a last write timestamp in the session. The + # DatabaseSelector middleware is designed as such you can define your own + # strategy for connection switching and pass that into the middleware through + # these configuration options. + # config.active_record.database_selector = { delay: 2.seconds } + # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver + # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session end diff --git a/config/environments/test.rb b/current/config/environments/test.rb similarity index 79% rename from config/environments/test.rb rename to current/config/environments/test.rb index 0a38fd3..de83a77 100644 --- a/config/environments/test.rb +++ b/current/config/environments/test.rb @@ -1,11 +1,12 @@ +# The test environment is used exclusively to run your application's +# test suite. You never need to work with it otherwise. Remember that +# your test database is "scratch space" for the test suite and is wiped +# and recreated between test runs. Don't rely on the data there! + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - - # The test environment is used exclusively to run your application's - # test suite. You never need to work with it otherwise. Remember that - # your test database is "scratch space" for the test suite and is wiped - # and recreated between test runs. Don't rely on the data there! - config.cache_classes = true + + config.cache_classes = false # Do not eager load code on boot. This avoids loading your whole application # just for the purpose of running a single test. If you are using a tool that @@ -21,6 +22,7 @@ Rails.application.configure do # Show full error reports and disable caching. config.consider_all_requests_local = true config.action_controller.perform_caching = false + config.cache_store = :null_store # Raise exceptions instead of rendering exception templates. config.action_dispatch.show_exceptions = false @@ -28,7 +30,7 @@ Rails.application.configure do # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false - # Store uploaded files on the local file system in a temporary directory + # Store uploaded files on the local file system in a temporary directory. config.active_storage.service = :test config.action_mailer.perform_caching = false @@ -41,6 +43,6 @@ Rails.application.configure do # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr - # Raises error for missing translations + # Raises error for missing translations. # config.action_view.raise_on_missing_translations = true end diff --git a/config/initializers/active_admin.rb b/current/config/initializers/active_admin.rb similarity index 91% rename from config/initializers/active_admin.rb rename to current/config/initializers/active_admin.rb index fa99a5c..fb2ce41 100644 --- a/config/initializers/active_admin.rb +++ b/current/config/initializers/active_admin.rb @@ -1,10 +1,12 @@ ActiveAdmin.setup do |config| + + # == Site Title # # Set the title that is displayed on the main layout # for each of the active admin pages. # - config.site_title = "Ambienteja" + config.site_title = "Ambiente Já" # Set the link url for the title. For example, to take # users to your main site. Defaults to no link. @@ -110,7 +112,8 @@ ActiveAdmin.setup do |config| # # Default: # config.logout_link_method = :get - + config.register_stylesheet 'https://cdn.bootcss.com/trix/1.0.0/trix.css' + config.register_javascript 'https://cdn.bootcss.com/trix/1.0.0/trix.js' # == Root # # Set the action to call for the root path. You can set different @@ -118,13 +121,13 @@ ActiveAdmin.setup do |config| # # Default: # config.root_to = 'dashboard#index' - + config.root_to = 'informativos#index' # == Admin Comments # # This allows your users to comment on any resource registered with Active Admin. # # You can completely disable comments: - # config.comments = false + config.comments = false # # You can change the name under which comments are registered: # config.comments_registration_name = 'AdminComment' @@ -163,7 +166,10 @@ ActiveAdmin.setup do |config| # # Set the localize format to display dates and times. # To understand how to localize your app with I18n, read more at - # https://github.com/svenfuchs/i18n/blob/master/lib%2Fi18n%2Fbackend%2Fbase.rb#L52 + # https://guides.rubyonrails.org/i18n.html + # + # You can run `bin/rails runner 'puts I18n.t("date.formats")'` to see the + # available formats in your application. # config.localize_format = :long @@ -283,12 +289,25 @@ ActiveAdmin.setup do |config| # config.filters = true # # By default the filters include associations in a select, which means - # that every record will be loaded for each association. + # that every record will be loaded for each association (up + # to the value of config.maximum_association_filter_arity). # You can enabled or disable the inclusion # of those filters by default here. # # config.include_default_association_filters = true + # config.maximum_association_filter_arity = 256 # default value of :unlimited will change to 256 in a future version + # config.filter_columns_for_large_association, [ + # :display_name, + # :full_name, + # :name, + # :username, + # :login, + # :title, + # :email, + # ] + # config.filter_method_for_large_association, '_starts_with' + # == Head # # You can add your own content to the site head like analytics. Make sure diff --git a/current/config/initializers/activeadmin_addons.rb b/current/config/initializers/activeadmin_addons.rb new file mode 100644 index 0000000..ac9ea44 --- /dev/null +++ b/current/config/initializers/activeadmin_addons.rb @@ -0,0 +1,12 @@ +ActiveadminAddons.setup do |config| + # Change to "default" if you want to use ActiveAdmin's default select control. + # config.default_select = "select2" + + # Set default options for DateTimePickerInput. The options you can provide are the same as in + # xdan's datetimepicker library (https://github.com/xdan/datetimepicker/tree/2.5.4). Yo need to + # pass a ruby hash, avoid camelCase keys. For example: use min_date instead of minDate key. + # config.datetime_picker_default_options = {} + + # Set DateTimePickerInput input format. This if for backend (Ruby) + # config.datetime_picker_input_format = "%Y-%m-%d %H:%M" +end diff --git a/config/initializers/assets.rb b/current/config/initializers/assets.rb similarity index 88% rename from config/initializers/assets.rb rename to current/config/initializers/assets.rb index 377fdb3..6f24c49 100644 --- a/config/initializers/assets.rb +++ b/current/config/initializers/assets.rb @@ -13,4 +13,4 @@ Rails.application.config.public_file_server.enabled = true # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in the app/assets # folder are already added. -# Rails.application.config.assets.precompile += %w( admin.js admin.css ) +Rails.application.config.assets.precompile += %w( application.js application.css admin.js admin.css ) diff --git a/config/initializers/cookies_serializer.rb b/current/config/initializers/cookies_serializer.rb similarity index 100% rename from config/initializers/cookies_serializer.rb rename to current/config/initializers/cookies_serializer.rb diff --git a/config/initializers/devise.rb b/current/config/initializers/devise.rb similarity index 97% rename from config/initializers/devise.rb rename to current/config/initializers/devise.rb index 51e0442..79a4407 100644 --- a/config/initializers/devise.rb +++ b/current/config/initializers/devise.rb @@ -8,7 +8,7 @@ Devise.setup do |config| # confirmation, reset password and unlock tokens in the database. # Devise will use the `secret_key_base` as its `secret_key` # by default. You can change it below and use your own secret key. - # config.secret_key = '8827c6d808b872254a07d83e789fb5d042e98ac355847e64d682affb32e9c8ebd5d3edbbfd48f88894e8efaba71021e9a5cd32ac9acdcd06a62bb1bed110abcc' + # config.secret_key = '864f9f1c691528e65ef9e70895d1f68638f5f70479a5a9e0b5da0af35fca408cba42e50bf111536afde21416c09e201cc1268d2bdfb877a5b32657740a02264c' # ==> Controller configuration # Configure the parent class to the devise controllers. @@ -114,7 +114,7 @@ Devise.setup do |config| config.stretches = Rails.env.test? ? 1 : 11 # Set up a pepper to generate the hashed password. - # config.pepper = '1c20c1ec9311917f0bac92310a31e36499ab83ef7a2d148dba06e7b6f607c4bfdbeebdb6ecd4c60d878338fda1227af8b47db0a51d79f9aec23b162897f59dfe' + # config.pepper = '1991c71bc9a57b1ab03a829a16557f3f90e9491604f5b4daee96027234916b099e48dbddb922e0dff830b4e9ef319d17379459030ca795ab3f05712f59628171' # Send a notification to the original email when the user's email is changed. # config.send_email_changed_notification = false diff --git a/config/initializers/filter_parameter_logging.rb b/current/config/initializers/filter_parameter_logging.rb similarity index 100% rename from config/initializers/filter_parameter_logging.rb rename to current/config/initializers/filter_parameter_logging.rb diff --git a/config/initializers/inflections.rb b/current/config/initializers/inflections.rb similarity index 100% rename from config/initializers/inflections.rb rename to current/config/initializers/inflections.rb diff --git a/current/config/initializers/kaminari.rb b/current/config/initializers/kaminari.rb new file mode 100644 index 0000000..3e2a64a --- /dev/null +++ b/current/config/initializers/kaminari.rb @@ -0,0 +1,4 @@ +# config/initializers/kaminari.rb +Kaminari.configure do |config| + config.page_method_name = :per_page_kaminari +end diff --git a/config/initializers/mime_types.rb b/current/config/initializers/mime_types.rb similarity index 100% rename from config/initializers/mime_types.rb rename to current/config/initializers/mime_types.rb diff --git a/config/initializers/wrap_parameters.rb b/current/config/initializers/wrap_parameters.rb similarity index 100% rename from config/initializers/wrap_parameters.rb rename to current/config/initializers/wrap_parameters.rb diff --git a/config/locales/devise.en.yml b/current/config/locales/devise.en.yml similarity index 98% rename from config/locales/devise.en.yml rename to current/config/locales/devise.en.yml index 55617bd..ca3d619 100644 --- a/config/locales/devise.en.yml +++ b/current/config/locales/devise.en.yml @@ -42,7 +42,7 @@ en: signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated." signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked." signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account." - update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address." + update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirmation link to confirm your new email address." updated: "Your account has been updated successfully." updated_but_not_signed_in: "Your account has been updated successfully, but since your password was changed, you need to sign in again" sessions: diff --git a/config/locales/en.yml b/current/config/locales/en.yml similarity index 93% rename from config/locales/en.yml rename to current/config/locales/en.yml index decc5a8..cf9b342 100644 --- a/config/locales/en.yml +++ b/current/config/locales/en.yml @@ -27,7 +27,7 @@ # 'true': 'foo' # # To learn more, please read the Rails Internationalization guide -# available at http://guides.rubyonrails.org/i18n.html. +# available at https://guides.rubyonrails.org/i18n.html. en: hello: "Hello world" diff --git a/current/config/puma.rb b/current/config/puma.rb new file mode 100644 index 0000000..b0e69ab --- /dev/null +++ b/current/config/puma.rb @@ -0,0 +1,16 @@ +# Puma can serve each request in a thread from an internal thread pool. +# The `threads` method setting takes two numbers: a minimum and maximum. +# Any libraries that use thread pools should be configured to match +# the maximum value specified for Puma. Default is set to 5 threads for minimum +# and maximum; this matches the default thread size of Active Record. +# +max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } +min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } +threads min_threads_count, max_threads_count + +#daemonize true if ENV.fetch("RAILS_ENV") == "production" + +port ENV.fetch("PORT") { 3333 } +environment ENV.fetch("RAILS_ENV") { "production" } +pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } + diff --git a/current/config/routes.rb b/current/config/routes.rb new file mode 100644 index 0000000..b422bcd --- /dev/null +++ b/current/config/routes.rb @@ -0,0 +1,11 @@ +Rails.application.routes.draw do + devise_for :admin_users, ActiveAdmin::Devise.config + ActiveAdmin.routes(self) + + root to: "page#home" + + get '/search', to: 'page#busca' + get '/tema/:param', to: 'page#tema' + get '/tag/:param', to: 'page#tag' + get '/informativo/:id', to: 'page#informativo' +end diff --git a/db/migrate/20190529154251_devise_create_admin_users.rb b/current/db/migrate/20190529154251_devise_create_admin_users.rb similarity index 100% rename from db/migrate/20190529154251_devise_create_admin_users.rb rename to current/db/migrate/20190529154251_devise_create_admin_users.rb diff --git a/current/db/migrate/20191218191626_create_informativo_tags.rb b/current/db/migrate/20191218191626_create_informativo_tags.rb new file mode 100644 index 0000000..43d2893 --- /dev/null +++ b/current/db/migrate/20191218191626_create_informativo_tags.rb @@ -0,0 +1,17 @@ +class CreateInformativoTags < ActiveRecord::Migration[6.0] + def change + + # create_table :tags do |t| + # t.string :nome + # t.string :param + # t.integer :count + # end + # add_index(:tags, :param) + + create_join_table :informativo, :tags do |t| + t.index :informativo_idinformativo + t.index :tag_id + end + + end +end diff --git a/current/db/schema.rb b/current/db/schema.rb new file mode 100644 index 0000000..7ad5515 --- /dev/null +++ b/current/db/schema.rb @@ -0,0 +1,73 @@ +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema[8.0].define(version: 2019_12_18_191626) do + create_table "admin_users", force: :cascade do |t| + t.string "email", default: "", null: false + t.string "encrypted_password", default: "", null: false + t.string "reset_password_token" + t.datetime "reset_password_sent_at", precision: nil + t.datetime "remember_created_at", precision: nil + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["email"], name: "index_admin_users_on_email", unique: true + t.index ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true + end + + create_table "informativo", primary_key: "Idinformativo", force: :cascade do |t| + t.string "titulo" + t.text "Descricao" + t.integer "Idtipo" + t.string "Abrangencia" + t.date "Datainc" + t.integer "tema1", default: 0 + t.integer "subtema1", default: 0 + t.integer "tema2", default: 0 + t.integer "subtema2", default: 0 + t.integer "tema3", default: 0 + t.integer "subtema3", default: 0 + t.integer "tema4", default: 0 + t.integer "subtema4", default: 0 + t.string "operador_inc" + t.string "operador_alt" + t.text "markdown" + t.index ["Datainc"], name: "idx_info_datainc" + t.index ["Idtipo"], name: "idx_info_idtipo" + t.index ["tema1"], name: "idx_info_tema1" + end + + create_table "informativo_tags", id: false, force: :cascade do |t| + t.integer "informativo_id", null: false + t.integer "tag_id", null: false + t.index ["informativo_id"], name: "index_informativo_tags_on_informativo_id" + t.index ["tag_id"], name: "index_informativo_tags_on_tag_id" + end + + create_table "tags", force: :cascade do |t| + t.string "nome" + t.string "param" + t.integer "count" + t.index ["param"], name: "index_tags_on_param" + end + + create_table "temas", force: :cascade do |t| + t.integer "cod_tema", default: 0 + t.integer "cod_tema_sub", default: 0 + t.string "tema", limit: 50 + t.integer "ativo", default: 0 + t.string "padrao", limit: 50 + t.integer "count" + t.string "param", limit: 100 + t.index ["cod_tema", "cod_tema_sub"], name: "index_temas_cod" + t.index ["param"], name: "index_temas_param" + end +end diff --git a/lib/assets/.keep b/current/lib/assets/.keep similarity index 100% rename from lib/assets/.keep rename to current/lib/assets/.keep diff --git a/lib/tasks/.keep b/current/lib/tasks/.keep similarity index 100% rename from lib/tasks/.keep rename to current/lib/tasks/.keep diff --git a/current/lib/tasks/import.rake b/current/lib/tasks/import.rake new file mode 100644 index 0000000..79cd9ea --- /dev/null +++ b/current/lib/tasks/import.rake @@ -0,0 +1,28 @@ +namespace :import do + + desc "generate markdown from html" + task :as_markdown => :environment do + Informativo.all.each do |i| + i.update(markdown: i.as_markdown) + end + end + + desc "fix tags" + task :tags => :environment do + Informativo.all.each do |i| + tags = [] + tags << i.tag1.split(", ") if i.tag1 + tags << i.tag2.split(", ") if i.tag2 + tags << i.tag3.split(", ") if i.tag3 + tags.flatten.compact.each do |t| + i.tags << Tag.find_or_create_by(nome: t.gsub(",", "")) unless t.empty? + end + i.tags = i.tags.uniq + i.save + end + Tag.all.each do |t| + t.update(count: t.informativos.count) + end + end + +end diff --git a/current/node_modules/.yarn-integrity b/current/node_modules/.yarn-integrity new file mode 100644 index 0000000..3d097ea --- /dev/null +++ b/current/node_modules/.yarn-integrity @@ -0,0 +1,12 @@ +{ + "systemParams": "linux-x64-64", + "modulesFolders": [], + "flags": [ + "production" + ], + "linkedModules": [], + "topLevelPatterns": [], + "lockfileEntries": {}, + "files": [], + "artifacts": {} +} \ No newline at end of file diff --git a/public/robots.txt b/current/public/robots.txt similarity index 100% rename from public/robots.txt rename to current/public/robots.txt diff --git a/current/test/controllers/page_controller_test.rb b/current/test/controllers/page_controller_test.rb new file mode 100644 index 0000000..8bbb139 --- /dev/null +++ b/current/test/controllers/page_controller_test.rb @@ -0,0 +1,37 @@ +require "test_helper" + +class PageControllerTest < ActionDispatch::IntegrationTest + test "home returns 200" do + get root_path + assert_response :success + end + + test "busca returns 200 with empty query" do + get "/search", params: { q: "" } + assert_response :success + end + + test "busca returns 200 with search term" do + Informativo.create!(titulo: "Desmatamento na Amazônia") + get "/search", params: { q: "Amazônia" } + assert_response :success + end + + test "informativo page returns 200 for valid id" do + info = Informativo.create!(titulo: "Artigo de teste", markdown: "Conteúdo") + get "/informativo/#{info.Idinformativo}" + assert_response :success + end + + test "tag page returns 200 for existing tag" do + Tag.create!(nome: "biodiversidade") + get "/tag/biodiversidade" + assert_response :success + end + + test "tema page returns 200 for existing tema" do + Tema.create!(cod_tema: 5, tema: "Água", padrao: "Água", param: "agua", count: 0) + get "/tema/agua" + assert_response :success + end +end diff --git a/current/test/models/informativo_test.rb b/current/test/models/informativo_test.rb new file mode 100644 index 0000000..998a0aa --- /dev/null +++ b/current/test/models/informativo_test.rb @@ -0,0 +1,28 @@ +require "test_helper" + +class InformativoTest < ActiveSupport::TestCase + test "creates with titulo and sets Datainc automatically" do + info = Informativo.create!(titulo: "Novo artigo ambiental") + assert_not_nil info.Datainc + assert_not_nil info.Idinformativo + end + + test "does not overwrite an existing Datainc" do + date = Date.new(2010, 6, 1) + info = Informativo.create!(titulo: "Artigo antigo", Datainc: date) + assert_equal date, info.Datainc + end + + test "to_html renders markdown column as HTML" do + info = Informativo.create!(titulo: "Test", markdown: "## Título\nConteúdo") + html = info.to_html + assert_includes html, "

" + assert_includes html, "Título" + end + + test "temas returns matching tema names" do + tema = Tema.create!(cod_tema: 7, tema: "Energia", padrao: "Energia Renovável", count: 0) + info = Informativo.create!(titulo: "Solar", tema1: 7) + assert_includes info.temas, tema.tema + end +end diff --git a/current/test/models/tag_test.rb b/current/test/models/tag_test.rb new file mode 100644 index 0000000..60c455e --- /dev/null +++ b/current/test/models/tag_test.rb @@ -0,0 +1,27 @@ +require "test_helper" + +class TagTest < ActiveSupport::TestCase + test "parameterize sets param on save" do + tag = Tag.create!(nome: "Energia Solar") + assert_equal "energia-solar", tag.param + end + + test "strips whitespace from nome before save" do + tag = Tag.create!(nome: " mata ciliar ") + assert_equal "mata ciliar", tag.nome + end + + test "nome uniqueness is enforced" do + Tag.create!(nome: "floresta") + dup = Tag.new(nome: "floresta") + assert_not dup.valid? + end + + test "top returns at most 80 tags ordered by count desc" do + Tag.create!(nome: "tag-a", param: "tag-a", count: 100) + Tag.create!(nome: "tag-b", param: "tag-b", count: 5) + result = Tag.top + assert result.first.count >= result.last.count + assert result.size <= 80 + end +end diff --git a/current/test/models/tema_test.rb b/current/test/models/tema_test.rb new file mode 100644 index 0000000..cdad8fb --- /dev/null +++ b/current/test/models/tema_test.rb @@ -0,0 +1,22 @@ +require "test_helper" + +class TemaTest < ActiveSupport::TestCase + test "informativos returns articles linked to this tema" do + tema = Tema.create!(cod_tema: 3, tema: "Clima", padrao: "Mudanças Climáticas", count: 0) + info = Informativo.create!(titulo: "IPCC 2010", tema1: 3) + assert_includes tema.informativos, info + end + + test "infos returns only root temas with padrao, sorted by count desc" do + Tema.create!(cod_tema: 1, cod_tema_sub: 0, padrao: "Legislação", count: 500) + Tema.create!(cod_tema: 2, cod_tema_sub: 0, padrao: "Fauna e Flora", count: 200) + Tema.create!(cod_tema: 3, cod_tema_sub: 1, padrao: "Subtema", count: 999) + + result = Tema.infos + names = result.map(&:first) + assert_includes names, "Legislação" + assert_includes names, "Fauna e Flora" + assert_not_includes names, "Subtema" + assert result.first[1] >= result.last[1] + end +end diff --git a/current/test/test_helper.rb b/current/test/test_helper.rb new file mode 100644 index 0000000..950d9d2 --- /dev/null +++ b/current/test/test_helper.rb @@ -0,0 +1,7 @@ +ENV["RAILS_ENV"] ||= "test" +require_relative "../config/environment" +require "rails/test_help" + +class ActiveSupport::TestCase + self.use_transactional_tests = true +end diff --git a/db/migrate/20190529154253_create_active_admin_comments.rb b/db/migrate/20190529154253_create_active_admin_comments.rb deleted file mode 100644 index 5c0a954..0000000 --- a/db/migrate/20190529154253_create_active_admin_comments.rb +++ /dev/null @@ -1,16 +0,0 @@ -class CreateActiveAdminComments < ActiveRecord::Migration[5.2] - def self.up - create_table :active_admin_comments do |t| - t.string :namespace - t.text :body - t.references :resource, polymorphic: true - t.references :author, polymorphic: true - t.timestamps - end - add_index :active_admin_comments, [:namespace] - end - - def self.down - drop_table :active_admin_comments - end -end diff --git a/db/schema.rb b/db/schema.rb deleted file mode 100644 index 7710a98..0000000 --- a/db/schema.rb +++ /dev/null @@ -1,364 +0,0 @@ -# This file is auto-generated from the current state of the database. Instead -# of editing this file, please use the migrations feature of Active Record to -# incrementally modify your database, and then regenerate this schema definition. -# -# Note that this schema.rb definition is the authoritative source for your -# database schema. If you need to create the application database on another -# system, you should be using db:schema:load, not running all the migrations -# from scratch. The latter is a flawed and unsustainable approach (the more migrations -# you'll amass, the slower it'll run and the greater likelihood for issues). -# -# It's strongly recommended that you check this file into your version control system. - -ActiveRecord::Schema.define(version: 2019_05_29_154253) do - - create_table "active_admin_comments", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| - t.string "namespace" - t.text "body" - t.string "resource_type" - t.bigint "resource_id" - t.string "author_type" - t.bigint "author_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["author_type", "author_id"], name: "index_active_admin_comments_on_author_type_and_author_id" - t.index ["namespace"], name: "index_active_admin_comments_on_namespace" - t.index ["resource_type", "resource_id"], name: "index_active_admin_comments_on_resource_type_and_resource_id" - end - - create_table "admin_users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| - t.string "email", default: "", null: false - t.string "encrypted_password", default: "", null: false - t.string "reset_password_token" - t.datetime "reset_password_sent_at" - t.datetime "remember_created_at" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["email"], name: "index_admin_users_on_email", unique: true - t.index ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true - end - - create_table "agenda", primary_key: "Reg", options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "Titulo", limit: 100, null: false - t.text "Descricao", limit: 16777215, null: false - t.date "Data_evento", null: false - t.date "Data_inclusao", null: false - t.string "operador", limit: 20 - t.index ["Data_evento"], name: "Data_evento" - t.index ["Data_inclusao"], name: "Data_inclusao" - end - - create_table "atividade", primary_key: "reg", options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "cod_atividade", null: false - t.integer "cod_subatividade", null: false - t.string "atividade", limit: 50, null: false - t.integer "ativo", default: 0, null: false - t.string "padrao", limit: 50, null: false - end - - create_table "bancoimagens", primary_key: "reg", options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "imagem_pq", limit: 40, default: "", null: false - t.string "imagem_gd", limit: 40, default: "", null: false - t.integer "tipo", default: 0, null: false - t.string "link", limit: 100, default: "", null: false - t.text "label", limit: 4294967295, null: false - t.string "pr", limit: 1, default: "", null: false - t.integer "altura_pq", default: 0, null: false - t.integer "largura_pq", default: 0, null: false - t.integer "altura_gd", default: 0, null: false - t.integer "largura_gd", default: 0, null: false - t.string "Titulo", limit: 100 - t.integer "Disp_cliente", default: 0 - t.integer "Tema", default: 0 - t.integer "Subtema", default: 0, null: false - t.string "tag1", limit: 50 - t.date "Data", null: false - end - - create_table "cliente", primary_key: "Codcli", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "Nome", limit: 40, default: "", null: false - t.string "empresa", limit: 40 - t.string "endereco", limit: 40, default: "", null: false - t.string "cidade", limit: 20, default: "", null: false - t.integer "cep", default: 0, null: false - t.string "estado", limit: 2, default: "", null: false - t.string "telefone", limit: 15, default: "", null: false - t.string "email", limit: 50, default: "", null: false - t.string "cgccpf", limit: 20 - t.string "profissao", limit: 40 - t.string "escolaridade", limit: 20 - t.integer "interesse1", default: 0 - t.integer "interesse2", default: 0 - t.integer "interesse3", default: 0 - t.integer "interesse4", default: 0 - t.datetime "data" - t.string "livre", limit: 10 - t.string "login", limit: 10 - t.string "senha", limit: 10 - t.integer "exibirperfil", default: 0, null: false - t.integer "acesso" - t.integer "assinatura" - t.integer "tipoemail" - t.index ["Codcli"], name: "Codcli" - t.index ["Nome"], name: "Nome" - t.index ["login"], name: "login" - end - - create_table "comentarios", primary_key: "cod_coment", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "id_original", null: false - t.integer "tipo_original", null: false - t.text "comentario", limit: 4294967295, null: false - t.string "login", limit: 10, null: false - t.date "data", null: false - t.string "nome_criador", limit: 50, null: false - t.integer "id_criador", null: false - t.time "hora", null: false - t.index ["id_original", "tipo_original"], name: "id_original" - end - - create_table "controles", id: false, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "reg", null: false, auto_increment: true - t.date "data", null: false - t.integer "num_inf", default: 0, null: false - t.integer "ano", default: 0, null: false - t.integer "ano1", default: 0, null: false - t.integer "visitas", default: 0, null: false - t.index ["reg"], name: "reg" - end - - create_table "experiencia", primary_key: "Reg", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "Nome", limit: 40, default: "", null: false - t.string "Endereco", limit: 40 - t.string "Email", limit: 50, default: "", null: false - t.string "Cidade", limit: 20, default: "", null: false - t.string "Estado", limit: 2, default: "", null: false - t.string "Pais", limit: 20, default: "", null: false - t.string "Telefone", limit: 15, default: "0", null: false - t.string "senha", limit: 15, default: "", null: false - t.date "data_cadastro", null: false - t.date "data_validade", null: false - t.integer "interesse1", default: 0 - t.integer "interesse2", default: 0 - t.integer "interesse3", default: 0 - t.integer "interesse4", default: 0 - t.date "ultimo_acesso" - t.integer "prefixo", default: 0 - t.string "Empresa", limit: 40 - t.string "funcao", limit: 40 - t.integer "conheceu", default: 0 - t.string "outros", limit: 30 - t.index ["Email"], name: "Email" - t.index ["Nome", "Email"], name: "Nome" - end - - create_table "extensoes", id: false, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.bigint "reg", null: false, auto_increment: true - t.string "extensao", limit: 5, default: "", null: false - t.index ["extensao"], name: "extensao" - t.index ["reg"], name: "reg" - end - - create_table "home", primary_key: "Reg", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.date "Data" - t.integer "Noticia1", default: 0, null: false - t.integer "Noticia2", default: 0, null: false - t.integer "Noticia3", default: 0, null: false - t.integer "Noticia4", default: 0, null: false - t.integer "reg_livro", default: 0, null: false - t.integer "reg_Imagem", default: 0, null: false - t.integer "Tipo_imagem", default: 0, null: false - t.integer "libera1", default: 2, null: false - t.integer "libera2", default: 2, null: false - t.integer "libera3", default: 2, null: false - t.integer "libera4", default: 2, null: false - t.string "metatag", limit: 250 - end - - create_table "informativo", primary_key: "Idinformativo", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "titulo", limit: 250 - t.text "Descricao", limit: 4294967295 - t.integer "Idtipo" - t.string "Abrangencia", limit: 100 - t.date "Datainc" - t.integer "tema1", default: 0 - t.integer "subtema1", default: 0, null: false - t.integer "tema2", default: 0 - t.integer "subtema2", default: 0, null: false - t.integer "tema3", default: 0 - t.integer "subtema3", default: 0, null: false - t.integer "tema4", default: 0 - t.integer "subtema4", default: 0, null: false - t.string "tag1", limit: 50 - t.string "tag2", limit: 50 - t.string "tag3", limit: 50 - t.string "operador_inc", limit: 20 - t.string "operador_alt", limit: 20 - t.date "data_inc" - t.date "data_alt" - t.index ["Datainc"], name: "Datainc" - t.index ["Idinformativo"], name: "Idinformativo" - t.index ["Idtipo"], name: "Idtipo" - t.index ["tag1", "tag2", "tag3"], name: "fulltag", type: :fulltext - t.index ["tag1"], name: "tag1" - t.index ["tag2"], name: "tag2" - t.index ["tag3"], name: "tag3" - t.index ["tema1"], name: "tema1" - t.index ["tema2"], name: "tema2" - t.index ["tema3"], name: "tema3" - t.index ["tema4"], name: "tema4" - end - - create_table "links", primary_key: "idlink", options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "endereco", limit: 80, default: "", null: false - t.text "descricao", limit: 16777215, null: false - t.string "link", limit: 100, null: false - t.integer "tipo", default: 0, null: false - t.integer "subtipo", default: 0, null: false - t.string "contato", limit: 50 - t.string "escolaridade", limit: 20 - t.string "cargo", limit: 40 - t.string "funcao", limit: 40 - t.string "telefone", limit: 30 - t.string "email", limit: 50 - t.string "abrangencia", limit: 15 - t.integer "atividade", default: 0, null: false - t.integer "subatividade", default: 0, null: false - t.string "end_rua", limit: 70 - t.string "end_bairro", limit: 20 - t.string "end_cep", limit: 10 - t.string "end_cidade", limit: 30 - t.string "estado_sede", limit: 2 - t.string "tag1", limit: 50 - t.string "tag2", limit: 50 - t.string "tag3", limit: 50 - t.string "Outros_contatos", limit: 50 - end - - create_table "livros", primary_key: "reg", options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "titulo", limit: 80, null: false - t.string "autor", limit: 40, null: false - t.text "descricao", limit: 4294967295 - t.string "url", limit: 250, null: false - t.string "imagem", limit: 40, null: false - t.integer "Tema", default: 0 - t.integer "Subtema", default: 0, null: false - t.string "tag1", limit: 50 - t.string "nome_site", limit: 50 - end - - create_table "logomarcas", primary_key: "Reg", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "Nome", limit: 50, default: "", null: false - t.string "Site", limit: 50, default: "", null: false - t.text "Descricao", limit: 16777215 - t.date "Data_cadastro", null: false - t.integer "Capa", default: 0, null: false - t.string "Arquivo", limit: 50, default: "", null: false - end - - create_table "multimidia", primary_key: "reg", options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.string "titulo", limit: 100, default: "", null: false - t.text "descricao", limit: 4294967295, null: false - t.integer "tema", default: 0, null: false - t.integer "subtema", default: 0, null: false - t.integer "audio_video", default: 0, null: false - t.string "extensao", limit: 5, default: "", null: false - t.integer "disp_cliente", default: 0, null: false - t.string "arq_modem", limit: 50 - t.string "arq_banda", limit: 50 - t.integer "wmp", default: 0, null: false - t.date "data_cadastro", null: false - t.string "link", limit: 800 - t.string "tag1", limit: 50 - t.index ["arq_banda"], name: "arq_banda" - t.index ["arq_modem"], name: "arq_modem" - end - - create_table "news_customa", primary_key: "reg", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.date "datarel", null: false - t.date "dataatu", null: false - t.string "titulo", limit: 200, null: false - t.integer "tema_num", default: 0, null: false - t.integer "subtema_num", default: 0, null: false - t.integer "indic", default: 0, null: false - t.index ["datarel", "tema_num", "subtema_num"], name: "datarel" - end - - create_table "news_customb", primary_key: "reg", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "rega", null: false - t.integer "idinformativo", null: false - t.integer "tema1", default: 0, null: false - t.integer "subtema1", default: 0, null: false - t.integer "idtipo", default: 0, null: false - t.string "abrangencia", limit: 20 - t.string "titulo", limit: 250, null: false - t.index ["rega", "idinformativo"], name: "reg1" - end - - create_table "news_temp", primary_key: "reg", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "idinformativo", null: false - t.date "datainc", null: false - t.string "titulo", limit: 250, null: false - t.integer "tema1", default: 0, null: false - t.integer "subtema1", default: 0, null: false - t.integer "idtipo", default: 0, null: false - t.string "abrangencia", limit: 20 - t.index ["idinformativo"], name: "regid" - end - - create_table "perfil", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "Codcli", null: false - t.text "descricao", limit: 4294967295 - t.string "lib_descricao", limit: 1, default: "0", null: false - t.string "funcao", limit: 80 - t.string "lib_funcao", limit: 1, default: "0", null: false - t.string "site", limit: 250 - t.string "lib_site", limit: 1, default: "0", null: false - t.string "foto", limit: 40 - t.string "lib_foto", limit: 1, default: "0", null: false - t.string "email_p", limit: 50 - t.string "lib_email", limit: 1, default: "0", null: false - t.string "fone", limit: 30 - t.string "lib_fone", limit: 1, default: "0", null: false - t.text "textos_publi", limit: 4294967295 - t.string "lib_textos", limit: 1, default: "0", null: false - t.text "textos_indic", limit: 4294967295 - t.string "lib_indic", limit: 1, default: "0", null: false - end - - create_table "relata", primary_key: "Reg", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.date "Datarel", null: false - t.date "Dataatu", null: false - t.string "Titulo", limit: 200, default: "", null: false - t.string "Tema", limit: 200, default: "", null: false - t.string "Nomearq", limit: 50 - t.integer "indic", default: 0, null: false - t.integer "tema_num", default: 0, null: false - t.integer "subtema_num", default: 0, null: false - t.string "tag1", limit: 50 - end - - create_table "relatb", primary_key: "Reg", id: :integer, options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "Rega", default: 0, null: false - t.integer "Seq", default: 0, null: false - t.string "Subtitulo", limit: 200, default: "", null: false - t.text "Texto", limit: 4294967295, null: false - end - - create_table "temas", primary_key: "reg", options: "ENGINE=MyISAM DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "cod_tema", null: false - t.integer "cod_tema_sub", null: false - t.string "tema", limit: 50, null: false - t.integer "ativo", default: 0, null: false - t.string "padrao", limit: 50, null: false - t.index ["cod_tema", "cod_tema_sub"], name: "cod_tema" - end - - create_table "tipos", primary_key: "reg", options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t| - t.integer "cod_tipo", null: false - t.integer "cod_tipo_sub", null: false - t.string "tipo", limit: 50, null: false - t.integer "ativo", default: 0, null: false - t.string "padrao", limit: 50, null: false - end - -end diff --git a/informativo.md b/informativo.md new file mode 100644 index 0000000..8d09c37 --- /dev/null +++ b/informativo.md @@ -0,0 +1,178 @@ +# Informativo — Acervo de Notícias Ambientais (2001–2015) + +Base de dados com **170.273 notícias** sobre meio ambiente coletadas entre janeiro de 2001 e outubro de 2015 (~14,8 anos). O conteúdo é integralmente em português brasileiro, com cobertura **nacional** (46,7%), **estadual** (29,7%) e **internacional** (23,6%). + +--- + +## Visão Geral + +| Métrica | Valor | +|---|---| +| Total de artigos | 170.273 | +| Período | 01/01/2001 — 14/10/2015 | +| Pico de cobertura | 2007–2008 (~25 mil/ano) | +| Formatos | HTML (`Descricao`) + Markdown (`markdown`) | +| Encoding | Latin1 / UTF-8 | + +### Distribuição por ano + +| Ano | Artigos | +|---|---| +| 2001 | 9.173 | +| 2002 | 16.511 | +| 2003 | 16.745 | +| 2004 | 12.769 | +| 2005 | 12.349 | +| 2006 | 16.616 | +| 2007 | 24.136 | +| 2008 | 26.234 | +| 2009 | 18.052 | +| 2010 | 10.705 | +| 2011 | 5.108 | +| 2012 | 1.754 | +| 2013–2015 | ~120 | + +--- + +## Temas + +Os artigos estão classificados em **30 temas principais**. Abaixo, um resumo de cada um. + +### 1. Legislação e Governo — 27.835 artigos (16,3%) + +Cobre políticas públicas ambientais, decisões judiciais, licitações, audiências públicas, ações do Ibama, Ministério Público, Congresso Nacional e assembleias estaduais. Inclui debates sobre o Código Florestal, Zoneamento Ecológico-Econômico, criação de unidades de conservação, greves de servidores do Ibama, e decisões sobre transgênicos. Também registra embates entre ambientalistas e governos nas três esferas. + +*Exemplos:* "Conselho de Política Energética discute conclusão de Angra III", "Ibama concede licença de operação a rodovias federais no Sudeste e no Sul", "Dom Cappio cobra encontro e ameaça nova greve". + +### 2. Fauna e Flora — 14.086 artigos (8,3%) + +Notícias sobre biodiversidade, espécies ameaçadas, fauna silvestre, flora nativa, unidades de conservação, desmatamento, biopirataria e tráfico de animais. Grande foco em Amazônia, Mata Atlântica e Pantanal. Também cobre projetos de reintrodução de espécies, incêndios florestais, e conflitos entre expansão agropecuária e preservação. + +*Exemplos:* "Abelhas nativas da Bahia estão ameaçadas de extinção", "Ambientalistas no norte da Alemanha comemoram baby-boom de focas", "Sai edital para leilão da Floresta do Jamari". + +### 3. Mudanças Climáticas — 8.645 artigos (5,1%) + +Cobertura de conferências da ONU (COPs), Protocolo de Kyoto, mercado de créditos de carbono, relatórios do IPCC, metas de redução de emissões e negociações internacionais. Inclui posicionamentos de países (EUA, China, Brasil, União Europeia), críticas à falta de ação política e dados sobre aquecimento global, degelo e elevação do nível do mar. + +*Exemplos:* "Cientistas esperam que Bush mude sua posição sobre a mudança climática", "Brasil deve anunciar metas internas de redução das emissões", "ONU pede para governos 'salvarem o planeta' em conferência climática". + +### 4. Energia Renovável — 8.544 artigos (5,0%) + +Energia eólica, solar, biomassa, biocombustíveis (etanol, biodiesel), PCHs, biogás e hidrogênio. Debate sobre o Proálcool, o Programa Nacional do Biodiesel, a viabilidade dos biocombustíveis e seus impactos sociais (competição com alimentos, monoculturas). Cobre também hidrelétricas controversas como Belo Monte, Jirau e Santo Antônio. + +*Exemplos:* "Biocombustível foi principal causa da crise alimentar, diz ONU", "Mamona é o carro-chefe do Programa Nacional do Biodiesel", "Ecologistas da Bolívia questionam represas brasileiras no Rio Madeira". + +### 5. Água — 6.435 artigos (3,8%) + +Gestão de recursos hídricos, transposição do São Francisco, escassez, desertificação, qualidade da água, saneamento, gestão de bacias hidrográficas e conflitos pelo uso da água. Também aborda aquíferos (Guarani), poluição de rios e oceanos, e impactos de hidrelétricas nos regimes hídricos. + +*Exemplos:* "Na Paraíba, Ciro Gomes recebe apoio para transposição do São Francisco", "Água de canal pode ser solução para Pelotas", "Polícia bloqueia acesso a acampamento em Pernambuco". + +### 6. Ciência e Tecnologia — 6.277 artigos (3,7%) + +Pesquisas científicas, inovações tecnológicas ambientais, novos materiais, biotecnologia, transgênicos, biocombustíveis avançados, monitoramento por satélite (SIVAM), e estudos acadêmicos sobre ecologia. Inclui cobertura de congressos científicos, publicações de artigos e desenvolvimento de tecnologias limpas. + +*Exemplos:* "Brasil pode ser um dos grandes produtores de bioplástico, acredita IPT", "Livro infantil aborda Antártica", "Turismo sem planejamento traz impactos ambientais no sul da Bahia, aponta pesquisa". + +### 7. Resíduos / Lixo — 6.141 artigos (3,6%) + +Lixões a céu aberto, aterros sanitários, coleta seletiva, reciclagem, logística reversa e destinação de resíduos sólidos urbanos e industriais. Inclui denúncias de irregularidades, interdições de aterros, e iniciativas de reaproveitamento (tijolos ecológicos, biogás de suinocultura). + +*Exemplos:* "Caxias inicia remoção do lixo gerado por indústrias", "Tecnologia brasileira reduz e desidrata lixo em Niterói", "Pesquisador constrói tijolo ecológico com lodo de ETA". + +### 8. Saúde e Meio Ambiente — 6.088 artigos (3,6%) + +Impactos ambientais na saúde humana: poluição do ar e doenças respiratórias, agrotóxicos e câncer, amianto, gripe aviária, dengue, contaminação por metais pesados. Inclui também educação ambiental e programas de saúde pública vinculados ao saneamento. + +*Exemplos:* "ABREA promove Tribunal do Amianto em São Paulo", "Confirmada mais uma morte por gripe aviária no Iraque", "Dengue mais letal sobe 500% no Rio". + +### 9. Agropecuária — 4.973 artigos (2,9%) + +Agronegócio, agricultura familiar, agroecologia, transgênicos na agricultura, agrotóxicos, febre aftosa, certificação orgânica e impactos da soja e da pecuária sobre biomas. Debate o modelo de produção, destacando tanto a expansão do agronegócio quanto as alternativas sustentáveis. + +*Exemplos:* "Santa Catarina sediará Congresso de Agroecologia em 2005", "Paraná registrou 29.250 intoxicações de agricultores em 1996/7", "MPF acusa funcionários do Ibama de serem pagos por madeireiros no Pará". + +### 10. Crimes Ambientais — 4.823 artigos (2,8%) + +Desmatamento ilegal, tráfico de animais silvestres, pesca predatória, biopirataria, grilagem de terras, incêndios criminosos, corrupção em órgãos ambientais e conflitos fundiários. Inclui operações do Ibama e da Polícia Federal, multas, apreensões e processos contra madeireiras. + +*Exemplos:* "Madeira roubada em Rondônia e Amazonas é exportada com nota do Acre", "Desfolhante químico usado em desmate no Nortão (MT)", "Decretada prisão de seis pelo confronto na fazenda da Syngenta". + +### 11. Combustíveis Fósseis — 4.761 artigos (2,8%) + +Petróleo, gás natural, carvão mineral, termelétricas, exploração do pré-sal, gasodutos (Brasil-Bolívia) e novas fronteiras de prospecção. Inclui debates sobre preço dos combustíveis, produção da Petrobras, impactos da exploração em áreas sensíveis (Amazônia, costa brasileira) e transição energética. + +*Exemplos:* "Petrobrás negocia compra de postos da Esso no Brasil e no Chile", "Marrocos sinaliza com outro acordo de prospecção de petróleo", "Petrobras anuncia aumento da oferta de diesel menos poluente no país". + +### 12. Poluição — 4.142 artigos (2,4%) + +Poluição hídrica, atmosférica, do solo, sonora e visual. Casos emblemáticos como o Rio dos Sinos (RS), a Baía de Guanabara, Cubatão, acidentes com produtos químicos, vazamentos de óleo e emissões veiculares. Inclui programas de despoluição como o Projeto Tietê. + +*Exemplos:* "Camada branca cobre o arroio Pampa em Novo Hamburgo", "Detran controlará emissão de gases poluentes nos veículos do Rio", "Barulho excessivo pode causar 'ressaca', ansiedade e estresse". + +### 13. Desastres Naturais — 4.167 artigos (2,4%) + +Terremotos, tsunamis, furacões, enchentes, secas, deslizamentos, erupções vulcânicas e incêndios florestais. Cobertura global com ênfase em eventos na Ásia (tsunami de 2004, terremotos no Paquistão, China e Indonésia) e nos desastres brasileiros (enchentes em Santa Catarina, seca no Nordeste). + +*Exemplos:* "Mortos em terremoto na Caxemira podem chegar a 86 mil, diz Banco Mundial", "Número de mortos na China ultrapassa 28,8 mil, diz agência estatal", "Temporal deixa desabrigados no Interior". + +### 14. Desenvolvimento Sustentável — 3.628 artigos (2,1%) + +Conceitos e práticas de sustentabilidade, economia verde, responsabilidade socioambiental empresarial, certificações (ISO 14001, FSC), consumo consciente e agendas como a Rio+20 e os Objetivos do Milênio. Inclui cases de empresas, projetos de ONGs e políticas de desenvolvimento sustentável. + +*Exemplos:* títulos representativos incluem "Empresa faz contato entre empreendedores e negócios ecologicamente sustentáveis", "Projeto cria prêmio para quem cuida do meio ambiente". + +### 15. Energia Atômica — 3.816 artigos (2,2%) + +Energia nuclear civil e militar, usinas de Angra 1/2/3, acidentes nucleares (Chernobyl, Fukushima), resíduos radioativos, enriquecimento de urânio, programa nuclear brasileiro e debates sobre a viabilidade e segurança da energia atômica frente às renováveis. + +*Exemplos:* "Dilma Rousseff defende energia nuclear para garantir crescimento", "Surgem os primeiros casos de câncer no Brasil decorrentes de Chernobyl", "Resíduos nucleares são incômodo à Suécia". + +### Temas menores (complementam o acervo) + +| Tema | Artigos | +|---|---| +| Processos Industriais | 3.298 | +| Comunidades Tradicionais (indígenas, quilombolas, ribeirinhos) | 3.011 | +| Licenciamento Ambiental | 2.953 | +| Biotecnologia | 2.683 | +| Passivos Socioambientais | 2.660 | +| Urbanização | 2.621 | +| Terceiro Setor | 2.366 | +| Educação Ambiental | 2.089 | +| Saneamento | 1.801 | +| Mineração | 1.477 | +| Acidentes | 1.249 | +| Bons Exemplos | 1.242 | +| Reciclagem | 1.242 | +| Certificação | 357 | +| Transporte | 1 | + +> **Nota:** 26.862 artigos (15,8%) não possuem tema principal atribuído (`tema1 = 0`), mas muitos deles estão classificados nos temas secundários (`tema2`, `tema3`, `tema4`). + +--- + +## Estrutura da Tabela `informativo` + +| Coluna | Tipo | Descrição | +|---|---|---| +| `Idinformativo` | int | Chave primária | +| `titulo` | varchar(250) | Título da notícia | +| `Descricao` | longtext | Corpo completo em HTML | +| `markdown` | longtext | Versão em Markdown | +| `Idtipo` | int | Tipo (1–5) | +| `Abrangencia` | varchar(100) | Nacional / Estadual / Internacional | +| `Datainc` | date | Data de inclusão | +| `tema1..4` | int | IDs dos temas (até 4 por notícia) | +| `subtema1..4` | int | IDs dos subtemas | +| `operador_inc` | varchar(20) | Operador que incluiu | +| `operador_alt` | varchar(20) | Operador que alterou | + +--- + +## Dados Técnicos + +- **Fonte:** Banco MySQL original convertido para DuckDB (`ambienteja.duckdb`, 2,8 MB apenas com tabelas auxiliares — `informativo` não foi incluído na conversão automática por limitações de parsing) +- **Dump original:** `dump.sql` (774,5 MB) +- **Bloco `informativo`:** 770,2 MB (~99,5% do dump) +- **Tabelas auxiliares no DuckDB:** `temas`, `tipos`, `atividade`, `extensoes`, `informativo_tags` (ainda não importadas) diff --git a/log/.keep b/log/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/mysql_to_duckdb.py b/mysql_to_duckdb.py new file mode 100644 index 0000000..73bfc08 --- /dev/null +++ b/mysql_to_duckdb.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +import re +import duckdb + +def convert_mysql_to_duckdb(sql): + # Remove MySQL-specific conditional comments /*!...*/ + sql = re.sub(r'/\*!.*?\*/', '', sql, flags=re.DOTALL) + + # Remove SET statements + sql = re.sub(r'^SET\s+.*?;', '', sql, flags=re.MULTILINE | re.IGNORECASE) + + # Remove LOCK/UNLOCK TABLES + sql = re.sub(r'^LOCK TABLES.*?;', '', sql, flags=re.MULTILINE | re.IGNORECASE) + sql = re.sub(r'^UNLOCK TABLES.*?;', '', sql, flags=re.MULTILINE | re.IGNORECASE) + + # Remove DROP TABLE IF EXISTS (DuckDB will handle via CREATE OR REPLACE) + sql = re.sub(r'^DROP TABLE IF EXISTS\s+`(\w+)`;', r'DROP TABLE IF EXISTS "\1";', sql, flags=re.MULTILINE | re.IGNORECASE) + + # Replace backtick identifiers with double-quoted + sql = re.sub(r'`(\w+)`', r'"\1"', sql) + + # Remove trailing table options (ENGINE=..., AUTO_INCREMENT=..., DEFAULT CHARSET=...) + sql = re.sub( + r'\)\s*ENGINE\s*=\s*\w+[^;]*;', + r');', + sql, + flags=re.IGNORECASE + ) + + # Remove index/key definitions from CREATE TABLE (KEY, UNIQUE KEY, but keep PRIMARY KEY) + # We'll process CREATE TABLE blocks to remove non-primary key definitions + def clean_create_table(match): + block = match.group(0) + lines = block.split('\n') + result = [] + for line in lines: + stripped = line.strip().rstrip(',') + # Skip KEY and UNIQUE KEY lines (not PRIMARY KEY) + if re.match(r'(UNIQUE\s+)?KEY\s+"', stripped, re.IGNORECASE): + continue + result.append(line) + # Fix trailing comma before closing paren + cleaned = '\n'.join(result) + cleaned = re.sub(r',\s*\n(\s*\))', r'\n\1', cleaned) + return cleaned + + sql = re.sub(r'CREATE TABLE.*?;', clean_create_table, sql, flags=re.DOTALL | re.IGNORECASE) + + # Fix column type widths: int(N) -> int, bigint(N) -> bigint, tinyint(N) -> tinyint + sql = re.sub(r'\b(int|bigint|tinyint|smallint|mediumint)\(\d+\)', r'\1', sql, flags=re.IGNORECASE) + + # Convert MySQL types to DuckDB types + sql = re.sub(r'\blongtext\b', 'text', sql, flags=re.IGNORECASE) + sql = re.sub(r'\bmediumtext\b', 'text', sql, flags=re.IGNORECASE) + sql = re.sub(r'\bmediumblob\b', 'blob', sql, flags=re.IGNORECASE) + sql = re.sub(r'\bdatetime\b', 'timestamp', sql, flags=re.IGNORECASE) + sql = re.sub(r'\bdouble\b', 'double', sql, flags=re.IGNORECASE) + + # Remove AUTO_INCREMENT from column definitions + sql = re.sub(r'\s+AUTO_INCREMENT\b', '', sql, flags=re.IGNORECASE) + + # Remove DEFAULT CHARSET and COLLATE from column definitions + sql = re.sub(r'\s+CHARACTER SET\s+\w+', '', sql, flags=re.IGNORECASE) + sql = re.sub(r'\s+COLLATE\s+\w+', '', sql, flags=re.IGNORECASE) + + # Remove 'unsigned' modifier (DuckDB doesn't have unsigned types) + sql = re.sub(r'\s+unsigned\b', '', sql, flags=re.IGNORECASE) + + return sql + + +def main(): + print("Reading dump.sql...") + with open('dump.sql', 'r', encoding='utf-8') as f: + sql = f.read() + + print("Converting MySQL SQL to DuckDB-compatible SQL...") + converted = convert_mysql_to_duckdb(sql) + + # Split into individual statements + statements = [s.strip() for s in converted.split(';') if s.strip() and not s.strip().startswith('--')] + + print(f"Connecting to ambienteja.duckdb...") + con = duckdb.connect('ambienteja.duckdb') + + errors = [] + ok = 0 + for i, stmt in enumerate(statements): + if not stmt: + continue + try: + con.execute(stmt) + ok += 1 + except Exception as e: + errors.append((stmt[:80].replace('\n', ' '), str(e))) + + con.close() + print(f"\nDone: {ok} statements executed successfully.") + if errors: + print(f"{len(errors)} errors:") + for stmt_preview, err in errors[:20]: + print(f" STMT: {stmt_preview}") + print(f" ERR: {err}\n") + + +if __name__ == '__main__': + main() diff --git a/package.json b/package.json deleted file mode 100644 index 9e0dd19..0000000 --- a/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "ambienteja", - "private": true, - "dependencies": {} -} diff --git a/public/404.html b/public/404.html deleted file mode 100644 index 2be3af2..0000000 --- a/public/404.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - The page you were looking for doesn't exist (404) - - - - - - -
-
-

The page you were looking for doesn't exist.

-

You may have mistyped the address or the page may have moved.

-
-

If you are the application owner check the logs for more information.

-
- - diff --git a/public/422.html b/public/422.html deleted file mode 100644 index c08eac0..0000000 --- a/public/422.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - The change you wanted was rejected (422) - - - - - - -
-
-

The change you wanted was rejected.

-

Maybe you tried to change something you didn't have access to.

-
-

If you are the application owner check the logs for more information.

-
- - diff --git a/public/500.html b/public/500.html deleted file mode 100644 index 78a030a..0000000 --- a/public/500.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - We're sorry, but something went wrong (500) - - - - - - -
-
-

We're sorry, but something went wrong.

-
-

If you are the application owner check the logs for more information.

-
- - diff --git a/public/apple-touch-icon-precomposed.png b/public/apple-touch-icon-precomposed.png deleted file mode 100644 index e69de29..0000000 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png deleted file mode 100644 index e69de29..0000000 diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index e69de29..0000000 diff --git a/resumo/agropecuaria.md b/resumo/agropecuaria.md new file mode 100644 index 0000000..49f5073 --- /dev/null +++ b/resumo/agropecuaria.md @@ -0,0 +1,19 @@ +# Agropecuária + +**4.973 artigos** | período 2001–2014 | abrangência: principalmente Nacional (53,1%), seguida por Estadual (33,8%) e Internacional (13,1%) + +A cobertura agropecuária do Ambiente JA transita entre dois polos: o agronegócio de larga escala e a agricultura familiar agroecológica. O avanço da soja e da pecuária sobre a Amazônia constitui a tensão mais documentada, com o Ministério Público Federal denunciando funcionários do Ibama que teriam sido pagos por madeireiros no Pará — episódio que expôs as conexões entre grilagem, desmatamento e corrupção na fronteira agrícola. O governo federal, por sua vez, buscou conciliar desenvolvimento e conservação com planos específicos para a agricultura na Amazônia. + +Os agrotóxicos ocupam posição central na cobertura. O Paraná registrou 29.250 intoxicações de agricultores em apenas dois anos, número que dimensiona a gravidade do problema. A regulação de ingredientes ativos como o brometo de metila e o debate sobre o banimento de substâncias perigosas correm em paralelo à promoção da agricultura orgânica e da agroecologia. Santa Catarina sediou o Congresso de Agroecologia em 2005, e a Embrapa Clima Temperado implantou 300 quintais orgânicos, sinalizando o interesse institucional por alternativas ao modelo convencional. + +Os transgênicos dividem opiniões. A soja Roundup Ready, o milho BT e o algodão geneticamente modificado avançaram no campo brasileiro, amparados por decisões da CTNBio e pressões do setor produtivo, enquanto organizações ambientalistas e de defesa do consumidor questionavam a liberação comercial sem estudos de impacto de longo prazo. A febre aftosa mobilizou campanhas massivas de vacinação de rebanhos, conectando a sanidade animal às exigências sanitárias dos mercados importadores. + +A silvicultura de eucalipto e pinus para a indústria de celulose gerou a controvérsia do "deserto verde", com críticos apontando a monocultura florestal como vetor de concentração fundiária e degradação ambiental. Um professor propôs a associação dos eucaliptos com a agricultura familiar como alternativa conciliatória. Eventos e debates sobre projetos florestais no Rio Grande do Sul ilustram a busca por modelos produtivos que equilibrem viabilidade econômica e sustentabilidade, em um setor cuja relevância para a balança comercial brasileira torna cada decisão ambiental objeto de intensa disputa política. + +### Títulos representativos + +- "Paraná registrou 29.250 intoxicações de agricultores em 1996/7" +- "Santa Catarina sediará Congresso de Agroecologia em 2005" +- "Embrapa Clima Temperado implanta 300 quintais orgânicos" +- "Professor sugere associação dos eucaliptos com agricultura familiar" +- "Ministério quer plano para a agricultura da Amazônia" diff --git a/resumo/agua.md b/resumo/agua.md new file mode 100644 index 0000000..9690773 --- /dev/null +++ b/resumo/agua.md @@ -0,0 +1,19 @@ +# Água + +**6.435 artigos** | período 2001–2015 | abrangência: principalmente Estadual (44,4%), seguida por Nacional (38,5%) e Internacional (17,1%) + +A gestão dos recursos hídricos constitui o eixo central da cobertura sobre água, com forte presença dos comitês de bacia e dos instrumentos da Política Nacional de Recursos Hídricos. A cobrança pelo uso da água, comemorada pela ministra Marina Silva como avanço institucional, representa um marco na governança hídrica brasileira. A predominância da abrangência estadual reflete a capilaridade dos conflitos locais envolvendo rios, nascentes e bacias hidrográficas compartilhadas. + +O projeto de transposição do Rio São Francisco foi, de longe, o tema mais controverso do período. De um lado, o ministro Ciro Gomes defendia a obra como solução para a escassez no semiárido nordestino; de outro, Dom Cappio e movimentos sociais organizavam protestos, greves de fome e bloqueios que mobilizaram a opinião pública nacional. A pergunta "Por que rio diante de um lago?" captura o estranhamento de ambientalistas diante da lógica desenvolvimentista que orientava grandes intervenções em corpos hídricos. A polícia chegou a bloquear acessos a acampamentos em Pernambuco, evidenciando a escalada do conflito. + +A escassez hídrica e a desertificação receberam atenção contínua, com foco no Nordeste brasileiro e na África. A redução da vazão de vertentes na área rural de Santa Cruz do Sul ilustra como o estresse hídrico também afetava o Sul do país. A poluição de rios e nascentes, associada à ausência de saneamento básico, e a gestão costeira diante do avanço do mar completam o quadro de ameaças aos recursos hídricos. O Aquífero Guarani aparece como patrimônio estratégico transfronteiriço que demanda proteção. + +No plano internacional, a cobertura incluiu a iniciativa da Swiss Re de doar US$ 15 mil para recuperação de recursos hídricos, o fórum internacional sobre gestão da água em regiões em crise, e o polêmico plano chinês de desvio de rios no Tibete. O desenvolvimento de sistemas de suporte de decisão para gerenciamento hídrico indica a incorporação de tecnologia à governança da água. A Bacia do Prata e o Rio Uruguai, compartilhados com países vizinhos, reforçam a dimensão diplomática da gestão hídrica na América do Sul. + +### Títulos representativos + +- "Marina comemora cobrança de taxa" +- "Ciro Gomes defende transposição na reunião da SBPC" +- "Por que rio diante de um lago?" +- "Diminui a vazão das vertentes na área rural de Santa Cruz do Sul" +- "Tibet: o próximo alvo dos planos da China para desvio de rios" diff --git a/resumo/ciencia-e-tecnologia.md b/resumo/ciencia-e-tecnologia.md new file mode 100644 index 0000000..bafb480 --- /dev/null +++ b/resumo/ciencia-e-tecnologia.md @@ -0,0 +1,19 @@ +# Ciência e Tecnologia + +**6.277 artigos** | período 2001–2013 | abrangência: principalmente Nacional (54,8%), seguida por Internacional (31%) e Estadual (14,3%) + +A cobertura de ciência e tecnologia ambiental documenta a produção de conhecimento e inovação voltados à sustentabilidade. As pesquisas científicas brasileiras ocupam posição de destaque, abarcando desde inventários de biodiversidade — como o proposto inventário genético e o estudo do gênero *Lindsaea Smith* no Rio Grande do Sul — até análises de impacto do turismo desordenado no sul da Bahia. O acervo revela uma comunidade científica ativa, produzindo conhecimento aplicado à gestão ambiental. + +Os transgênicos constituem um dos debates científicos mais polarizados do período. A Argentina reclamou da exigência de rótulos para OGMs, enquanto o Brasil construía seu arcabouço regulatório. A biotecnologia aplicada à agricultura e à saúde gerou tanto entusiasmo quanto preocupações sobre biossegurança, com a cobertura refletindo o embate entre evidências científicas e o princípio da precaução. O Instituto de Pesquisas Tecnológicas (IPT) apostou no potencial brasileiro para produção de bioplásticos, sinalizando a convergência entre inovação e economia verde. + +Novos materiais sustentáveis ganharam visibilidade, como o tijolo ecológico feito a partir de lodo de estação de tratamento de água e bioplásticos derivados de fontes renováveis. A eficiência energética em dispositivos — a exemplo de um mecanismo que aumenta a eficiência de combustível em aeroplanos — ilustra a dimensão incremental da inovação tecnológica. Os sistemas de monitoramento, como o SIVAM e os satélites de observação terrestre, fortaleceram a capacidade brasileira de vigilância ambiental. + +O tratamento de efluentes e resíduos com novas tecnologias conecta a pesquisa acadêmica à solução de problemas concretos. A participação de estudantes de engenharia da Ulbra em uma "maratona ecológica" evidencia o engajamento da formação superior com a agenda ambiental. Patentes e inovação verde completam o quadro de uma cobertura que trata a ciência não como abstração, mas como ferramenta prática de transformação — ainda que as barreiras entre a bancada do laboratório e a escala comercial permaneçam como desafio subjacente. + +### Títulos representativos + +- "Dispositivo aumenta eficiência de combustível em aeroplano" +- "Argentina reclama de rótulo para transgênicos" +- "Brasil pode ser um dos grandes produtores de bioplástico, acredita IPT" +- "Turismo sem planejamento traz impactos ambientais no sul da Bahia, aponta pesquisa" +- "Cientistas propõem inventário genético da biodiversidade" diff --git a/resumo/combustiveis-fosseis.md b/resumo/combustiveis-fosseis.md new file mode 100644 index 0000000..fad0c46 --- /dev/null +++ b/resumo/combustiveis-fosseis.md @@ -0,0 +1,19 @@ +# Combustíveis Fósseis + +**4.761 artigos** | período 2001–2013 | abrangência: principalmente Nacional (42%), seguida por Internacional (39,2%) e Estadual (18,8%) + +A cobertura sobre combustíveis fósseis retrata o domínio do petróleo e seus derivados na matriz energética mundial. O petróleo ocupa o centro do noticiário, com amplo acompanhamento da exploração no pré-sal, das novas fronteiras na Amazônia e na costa brasileira, e da política de preços da OPEP. A Petrobras emerge como ator onipresente, seja anunciando o aumento da oferta de diesel menos poluente, seja negociando a compra de postos da Esso no Brasil e no Chile, ou advertindo que o preço do gás natural deve subir — declaração do próprio presidente da estatal. + +O gás natural ocupou posição estratégica, com destaque para o gasoduto Brasil-Bolívia e o gasoduto Coari-Manaus, este último regido pelo Princípio da Precaução em virtude dos impactos sobre ecossistemas amazônicos. O GNV veicular ganhou impulso em capitais brasileiras como alternativa mais limpa e econômica aos combustíveis líquidos. As termelétricas — a óleo, gás e carvão mineral — geraram intenso debate, especialmente no Sul do país, onde o carvão mineral tem peso histórico na economia regional, mas responde por emissões elevadas e críticas de ambientalistas. + +O debate internacional sobre o "peak oil" — a escassez inevitável de petróleo — permeou a cobertura do período, com analistas alertando para a finitude das reservas e a necessidade de transição energética. As decisões do governo George W. Bush, que suspendeu regras ambientais para gasolina em nome da segurança energética, ilustram como a política do petróleo se sobrepunha frequentemente às preocupações ambientais. Na África, a metáfora de que "gângsteres venceram a corrida do petróleo" denunciava a governança predatória dos recursos em países produtores. + +Acidentes com petróleo e derivados — vazamentos, explosões e contaminações — pontuam a cobertura como lembrete dos riscos inerentes à cadeia fóssil. A transição energética aparece como horizonte desejável, mas distante: o fim da era do petróleo é considerado inevitável por especialistas, porém os investimentos e a infraestrutura continuam ancorados nos combustíveis fósseis. A prospecção em áreas sensíveis, como o Acre e a costa brasileira, expõe a tensão permanente entre a demanda energética e a proteção de ecossistemas vulneráveis. + +### Títulos representativos + +- "Sai licença para gás natural veicular na Capital" +- "Bush suspende regras ambientais para gasolina" +- "Petrobras anuncia aumento da oferta de diesel menos poluente no país" +- "Escassez de petróleo já é considerada inevitável" +- "Princípio da Precaução rege a obra do gasoduto Coari-Manaus" diff --git a/resumo/crimes-ambientais.md b/resumo/crimes-ambientais.md new file mode 100644 index 0000000..b42cbbc --- /dev/null +++ b/resumo/crimes-ambientais.md @@ -0,0 +1,19 @@ +# Crimes Ambientais + +**4.823 artigos** | período 2003–2015 | abrangência: principalmente Nacional (65%), seguida por Estadual (24,7%) e Internacional (10,3%) + +A cobertura de crimes ambientais documenta a face mais sombria da relação entre sociedade e natureza no Brasil. O desmatamento ilegal na Amazônia é o crime mais reportado, com operações de grande escala como Curupira e Arco de Fogo mobilizando a Polícia Federal e o Ibama. O SIVAM detectava 85 aviões com voo irregular a cada mês, muitos deles envolvidos em garimpo e extração madeireira clandestina. A sofisticação das quadrilhas impressiona: madeira roubada em Rondônia e Amazonas era exportada com "notas frias" emitidas no Acre, e desfolhantes químicos foram empregados para acelerar o desmate no norte do Mato Grosso. + +A corrupção de servidores ambientais constitui um achado significativo da cobertura. Funcionários do Ibama foram acusados de conivência com madeireiras, e a Polícia investigou servidores de Ilhabela por crimes contra a administração ambiental. Esses casos revelam a vulnerabilidade institucional dos órgãos de fiscalização diante de esquemas que envolvem desde propinas até a falsificação de documentos fundiários para grilagem de terras públicas. A operação Curupira, no Mato Grosso, tornou-se um marco, e a cobertura acompanhou a política ambiental no estado um ano depois, avaliando seus legados e limitações. + +O tráfico de animais silvestres e a pesca predatória completam o tripé dos crimes contra a fauna. A pesca no rio Uruguai, que utilizava tecnologia de ponta — como sonares e redes de alta precisão —, ilustra como a atividade predatória se modernizou. A biopirataria de recursos genéticos, embora menos documentada, aparece como crime de difícil fiscalização e alto valor estratégico. Incêndios florestais criminosos, frequentemente associados à limpeza de pastagens e à especulação fundiária, agravam o quadro de degradação. + +Crimes contra comunidades tradicionais e indígenas, conflitos fundiários violentos e o confronto na fazenda da Syngenta — que resultou na decretação de prisão de seis pessoas — demonstram que os crimes ambientais frequentemente se entrelaçam com violações de direitos humanos. A cobertura revela um padrão: onde há crime ambiental, há também grilagem, corrupção e violência contra populações vulneráveis, em um ciclo que os aparatos de fiscalização e justiça enfrentam com resultados desiguais. A tartaruga rara que resistiu a uma "sessão de tortura" na Califórnia serve como lembrete de que a crueldade contra a fauna não conhece fronteiras. + +### Títulos representativos + +- "SIVAM detecta 85 aviões com voo irregular a cada mês" +- "Madeira roubada em Rondônia e Amazonas é exportada com nota do Acre" +- "Desfolhante químico usado em desmate no Nortão (MT)" +- "Polícia investiga servidores de Ilhabela por crime ambiental" +- "A política ambiental no Mato Grosso um ano depois da operação Curupira" diff --git a/resumo/desastres-naturais.md b/resumo/desastres-naturais.md new file mode 100644 index 0000000..34f7ce7 --- /dev/null +++ b/resumo/desastres-naturais.md @@ -0,0 +1,19 @@ +# Desastres Naturais + +**4.167 artigos** | período 2002–2013 | abrangência: principalmente Internacional (55,3%), seguida por Estadual (26,6%) e Nacional (18,1%) + +A cobertura de desastres naturais é dominada pelos grandes eventos sísmicos que marcaram o período. O terremoto seguido de tsunami no Oceano Índico, em 2004, com epicentro em Sumatra, desencadeou uma cobertura massiva sobre a dimensão da tragédia humana e ambiental. Outros terremotos devastadores — Caxemira em 2005, com até 86 mil mortos; China em 2008, ultrapassando 28,8 mil vítimas; Haiti em 2010; e Japão em 2011, com o acidente nuclear de Fukushima como desdobramento — consolidaram o tema na agenda do veículo. + +As erupções vulcânicas geraram reportagens de grande impacto visual e narrativo. O Etna, na Sicília, com sua erupção mais forte do período, e o vulcão Santa Helena, nos Estados Unidos, figuram entre os mais noticiados, ao lado de erupções na Indonésia e na Islândia — esta última paralisando o tráfego aéreo europeu. Furacões, especialmente o Katrina, que devastou Nova Orleans em 2005, revelaram a vulnerabilidade de países ricos a eventos extremos e expuseram desigualdades sociais na resposta a desastres. + +O Brasil comparece principalmente por meio de enchentes e deslizamentos. As tragédias de Santa Catarina em 2008 e do Rio de Janeiro em 2010 e 2011, com centenas de mortos em deslizamentos de encostas, expuseram a precariedade da ocupação urbana e a fragilidade dos sistemas de defesa civil. Temporais com granizo e tempestades severas no Sul do país, bem como secas prolongadas no Nordeste, completam o quadro dos desastres que mais afetam o território nacional. + +A Ásia foi declarada campeã de mortes por desastres naturais em 2006, e a ONU instou a América Latina a aumentar seus esforços de prevenção. Incêndios florestais catastróficos na Grécia, Califórnia e Austrália, assim como ondas de frio extremo — que fizeram 11 vítimas fatais na Bulgária — demonstram que os desastres naturais não obedecem a fronteiras climáticas ou econômicas. A cobertura documenta a transição gradual de uma abordagem reativa para uma ênfase crescente em prevenção e resiliência, ainda que os resultados concretos permaneçam aquém das necessidades. + +### Títulos representativos + +- "Terremoto na Sicília provoca erupção mais forte do Etna" +- "Mortos em terremoto na Caxemira podem chegar a 86 mil" +- "Número de mortos na China ultrapassa 28,8 mil" +- "ONU pede à América Latina que aumente esforços contra desastres" +- "Turcos rezam por chuva em meio a grande seca em Ancara" diff --git a/resumo/desenvolvimento-sustentavel.md b/resumo/desenvolvimento-sustentavel.md new file mode 100644 index 0000000..816f75d --- /dev/null +++ b/resumo/desenvolvimento-sustentavel.md @@ -0,0 +1,19 @@ +# Desenvolvimento Sustentável + +**3.628 artigos** | período 2002–2015 | abrangência: principalmente Nacional (49,2%), seguida por Internacional (25,5%) e Estadual (25,3%) + +A cobertura sobre desenvolvimento sustentável constitui o menor tema entre os 15 principais, mas sua relevância qualitativa transcende o volume. O acervo documenta a emergência de conceitos e práticas de sustentabilidade empresarial no Brasil, com empresas adotando relatórios GRI, índices Dow Jones de sustentabilidade e o tripple bottom line como métrica de desempenho. A Riocell obteve 98% de índice de reciclagem de resíduos sólidos, e a Philips foi apontada como líder em desenvolvimento autossustentável, casos que ilustram a entrada do setor privado na agenda ambiental. + +A responsabilidade socioambiental corporativa ganhou espaço em seminários como o de Joinville e em fóruns promovidos por órgãos como a Fepam. Certificações ambientais — ISO 14001, FSC e selos verdes — tornaram-se instrumentos de diferenciação competitiva e acesso a mercados exigentes. O terceiro setor e as ONGs ambientais emergem como atores que pressionam, mas também colaboram com empresas e governos na construção de modelos produtivos mais limpos. + +A Rio+20 e os Objetivos de Desenvolvimento do Milênio contextualizam o Brasil como anfitrião e protagonista de conferências multilaterais sobre sustentabilidade. O Plano Amazônia Sustentável (PAS), que incluiu o Maranhão, representou a tentativa de traduzir o conceito em política pública regional. Projetos de desenvolvimento local sustentável ganharam visibilidade por meio de iniciativas como a produção artesanal com palha de carnaúba, que mudou a realidade de mulheres no Rio Grande do Norte, e os quintais orgânicos apoiados pela Embrapa, conectando sustentabilidade a inclusão social e geração de renda. + +O consumo consciente e as mudanças de comportamento são abordados como dimensão individual da sustentabilidade, enquanto o ecoturismo e o turismo sustentável surgem como setores econômicos capazes de conciliar conservação e desenvolvimento. O Relatório Anual do Worldwatch, que alertava para padrões de consumo insustentáveis, forneceu o contraponto crítico ao otimismo empresarial. A cobertura revela, em seu conjunto, a transição do conceito de desenvolvimento sustentável de uma ideia abstrata para um campo de práticas, métricas e disputas — entre o greenwashing corporativo e as transformações efetivas nos modos de produzir e consumir. + +### Títulos representativos + +- "Seminário de Responsabilidade Social começa amanhã em Joinville" +- "Riocell obtém 98% de índice de reciclagem de resíduos sólidos" +- "Philips lidera desenvolvimento auto-sustentável" +- "Relatório Anual do Worldwatch alerta para consumo insustentável" +- "Produção artesanal com palha de carnaúba muda realidade de mulheres no RN" diff --git a/resumo/energia-atomica.md b/resumo/energia-atomica.md new file mode 100644 index 0000000..5923737 --- /dev/null +++ b/resumo/energia-atomica.md @@ -0,0 +1,19 @@ +# Energia Atômica + +**3.816 artigos** | período 2001–2013 | abrangência: principalmente Internacional (58,6%), seguida por Nacional (33,8%) e Estadual (7,6%) + +A cobertura sobre energia atômica é majoritariamente internacional, refletindo a concentração das usinas nucleares no exterior e a natureza geopolítica do tema. O programa nuclear brasileiro ocupa, ainda assim, um terço do noticiário, com as usinas de Angra 1, 2 e 3 no centro do debate. A conclusão de Angra III — que ainda precisaria de R$ 7,2 bilhões — dividiu opiniões entre os que viam a energia nuclear como necessária à segurança energética e os que apontavam seus custos, riscos e a existência de alternativas renováveis mais baratas e seguras. A ministra Dilma Rousseff defendeu publicamente a energia nuclear para garantir o crescimento econômico, posicionamento que ganhou peso quando ela ascendeu à Presidência. + +Os acidentes nucleares constituem o fio mais dramático da cobertura. Chernobyl, ocorrido em 1986, continuou gerando notícias décadas depois, com o surgimento dos primeiros casos de câncer no Brasil decorrentes da contaminação transcontinental — um achado que sublinha a escala planetária dos riscos nucleares. O acidente de Fukushima, em 2011, provocado pelo terremoto e tsunami no Japão, reacendeu o debate global sobre segurança nuclear, com falhas que comprometeram a credibilidade da política nuclear japonesa e levaram países como a Alemanha a acelerar o abandono da fonte atômica. + +A proliferação nuclear e as tensões geopolíticas associadas receberam cobertura intensa. Os programas nucleares do Irã e da Coreia do Norte, assim como a rivalidade Índia-Paquistão, foram tratados como ameaças à estabilidade global. O fato de o Brasil ter capacidade técnica para produzir ogivas nucleares — embora constitucionalmente vedado — foi noticiado como elemento de análise do programa nuclear nacional. Os Estados Unidos, que consomem 32% da energia mundial, figuravam como potência nuclear estabelecida, enquanto a Austrália estudava a construção de sua primeira usina. + +Os resíduos radioativos e seu armazenamento de longo prazo emergem como problema sem solução definitiva em nenhum país, sendo descritos como "incômodo à Suécia" e a outras nações que operam usinas. O debate entre energia nuclear e renováveis perpassa a cobertura, com a eficiência energética sendo apresentada como alternativa frequentemente negligenciada. A França, o Japão e os EUA são os países cujas políticas nucleares receberam maior escrutínio, em um noticiário que oscila entre a confiança tecnológica e a consciência dos riscos catastróficos inerentes à fissão nuclear. + +### Títulos representativos + +- "Surgem os primeiros casos de câncer no Brasil decorrentes de Chernobyl" +- "Dilma Rousseff defende energia nuclear para garantir crescimento" +- "Angra 3 ainda precisará de R$ 7,2 bilhões" +- "Resíduos nucleares são incômodo à Suécia" +- "Falhas podem comprometer credibilidade da política nuclear no Japão" diff --git a/resumo/energia-renovavel.md b/resumo/energia-renovavel.md new file mode 100644 index 0000000..87d1c2c --- /dev/null +++ b/resumo/energia-renovavel.md @@ -0,0 +1,19 @@ +# Energia Renovável + +**8.544 artigos** | período 2001–2013 | abrangência: principalmente Nacional (55,2%), seguida por Internacional (25,9%) e Estadual (18,8%) + +A cobertura sobre energia renovável documenta a ascensão das fontes limpas na matriz energética brasileira e global. O parque eólico de Osório, no Rio Grande do Sul, tornou-se o caso emblemático de geração eólica no país, com sua inauguração sendo amplamente noticiada. A energia solar também ganhou espaço, desde aquecedores residenciais até grandes plantas, com destaque para inovações como o sistema criado por um cientista israelense que tornou a fonte mais competitiva. A biomassa e o biogás, especialmente oriundos da suinocultura e de aterros sanitários, despertaram o interesse de produtores rurais e atraíram investimentos de grupos alemães no Rio Grande do Sul. + +Os biocombustíveis ocupam posição central na narrativa. O presidente Lula apostou no biodiesel como sucessor do Proálcool, afirmando que superaria o programa alcooleiro. A mamona foi alçada a carro-chefe do Programa Nacional de Biodiesel (PNPB), enquanto o etanol de cana-de-açúcar consolidou-se como referência mundial. Contudo, o tema não escapou de controvérsias: a ONU apontou os biocombustíveis como principal causa da crise alimentar global, e o presidente da Petrobras classificou a produção norte-americana de biocombustível como insustentável, alimentando o debate "food vs fuel". + +As grandes hidrelétricas na Amazônia — Belo Monte, Jirau e Santo Antônio — geraram intensa controvérsia, com ecologistas da Bolívia questionando os impactos das represas brasileiras no Rio Madeira e suspeitas de corrupção cercando o processo de ampliação de Yacyretá. As pequenas centrais hidrelétricas (PCHs) aparecem como alternativa de menor impacto, embora com menor destaque na cobertura. O hidrogênio como vetor energético e a energia dos oceanos e geotérmica figuram como promessas tecnológicas ainda incipientes no período. + +O investimento estrangeiro em renováveis no Brasil, vindo especialmente da Alemanha e de outros países europeus, sinaliza a atratividade do mercado brasileiro. A cobertura revela, em suma, um país que se percebe como potência das energias limpas, mas que enfrenta desafios de burocracia, conflitos socioambientais e tensões entre a escala industrial das renováveis e seus impactos locais. + +### Títulos representativos + +- "Parque eólico de Osório opera até o fim do mês" +- "Lula reclama da burocracia e diz que biodiesel irá superar Proálcool" +- "Biocombustível foi principal causa da crise alimentar, diz ONU" +- "Cientista israelense cria sistema que torna energia solar mais competitiva" +- "Ecologistas da Bolívia questionam represas brasileiras no Rio Madeira" diff --git a/resumo/fauna-e-flora.md b/resumo/fauna-e-flora.md new file mode 100644 index 0000000..4f870e8 --- /dev/null +++ b/resumo/fauna-e-flora.md @@ -0,0 +1,19 @@ +# Fauna e Flora + +**14.086 artigos** | período 2001–2015 | abrangência: principalmente Nacional (50,7%), seguida por Estadual (26%) e Internacional (23,3%) + +A cobertura sobre fauna e flora constitui o segundo maior tema do acervo e oferece um panorama amplo da biodiversidade brasileira e mundial. As matérias documentam espécies ameaçadas de extinção em diversos biomas, como as abelhas nativas da Bahia, e acompanham projetos de reintrodução e conservação conduzidos por instituições de pesquisa e ONGs. O Ibama incentivou ativamente a criação comercial de animais silvestres como estratégia para reduzir a pressão sobre populações selvagens, uma política que gerou debates entre conservacionistas e setores produtivos. + +O desmatamento na Amazônia e na Mata Atlântica é uma constante na cobertura, retratado tanto por seus impactos sobre ecossistemas quanto pelas políticas públicas de enfrentamento. As queimadas e os incêndios florestais, muitos deles associados à expansão agropecuária, figuram como ameaças recorrentes à flora nativa. Em contraponto, iniciativas de reflorestamento ganham visibilidade, como o plantio de árvores por estudantes no antigo lixão de Passo Fundo, evidenciando a dimensão pedagógica e comunitária da recuperação ambiental. + +As unidades de conservação — florestas nacionais, Áreas de Proteção Ambiental (APAs) e Reservas Particulares do Patrimônio Natural (RPPNs) — são tema frequente, com destaque para o leilão da Floresta do Jamari e a gestão de áreas protegidas nos três níveis de governo. Os recifes de corais receberam atenção tanto por sua riqueza biológica, como o recife de 100 km² descoberto na Austrália, quanto pelos riscos de extinção decorrentes de poluentes e mudanças climáticas. + +A biopirataria e o tráfico de animais silvestres emergem como problemas de escala global, enquanto espécies exóticas invasoras preocupam gestores ambientais. A pesquisa científica com fauna ganha espaço com estudos como o de um gaúcho que traçou a evolução dos felinos. No plano internacional, a cobertura celebra eventos como o baby-boom de focas no norte da Alemanha e a descoberta de comunidades raras de ursos panda na China, reforçando o caráter universal do interesse pela conservação da vida selvagem. + +### Títulos representativos + +- "Abelhas nativas da Bahia estão ameaçadas de extinção" +- "Descoberto recife de coral com 100 km² na Austrália" +- "Ibama incentiva a criação comercial de animais silvestres" +- "Gaúcho traça evolução de felinos" +- "Estudantes plantam árvores no antigo lixão de Passo Fundo" diff --git a/resumo/index.md b/resumo/index.md new file mode 100644 index 0000000..a185246 --- /dev/null +++ b/resumo/index.md @@ -0,0 +1,40 @@ +# Acervo Ambiente JA — Resumo por Tema + +Base de **170.273 notícias ambientais** em português brasileiro, cobrindo o período de **janeiro de 2001 a outubro de 2015**. Abaixo, um resumo detalhado de cada um dos 15 principais temas. + +| # | Tema | Artigos | Link | +|---|------|---------|------| +| 1 | Legislação e Governo | 27.835 | [legislacao-e-governo.md](legislacao-e-governo.md) | +| 2 | Fauna e Flora | 14.086 | [fauna-e-flora.md](fauna-e-flora.md) | +| 3 | Mudanças Climáticas | 8.645 | [mudancas-climaticas.md](mudancas-climaticas.md) | +| 4 | Energia Renovável | 8.544 | [energia-renovavel.md](energia-renovavel.md) | +| 5 | Água | 6.435 | [agua.md](agua.md) | +| 6 | Ciência e Tecnologia | 6.277 | [ciencia-e-tecnologia.md](ciencia-e-tecnologia.md) | +| 7 | Resíduos/Lixo | 6.141 | [residuos-lixo.md](residuos-lixo.md) | +| 8 | Saúde e Meio Ambiente | 6.088 | [saude-e-meio-ambiente.md](saude-e-meio-ambiente.md) | +| 9 | Agropecuária | 4.973 | [agropecuaria.md](agropecuaria.md) | +| 10 | Crimes Ambientais | 4.823 | [crimes-ambientais.md](crimes-ambientais.md) | +| 11 | Combustíveis Fósseis | 4.761 | [combustiveis-fosseis.md](combustiveis-fosseis.md) | +| 12 | Desastres Naturais | 4.167 | [desastres-naturais.md](desastres-naturais.md) | +| 13 | Poluição | 4.142 | [poluicao.md](poluicao.md) | +| 14 | Energia Atômica | 3.816 | [energia-atomica.md](energia-atomica.md) | +| 15 | Desenvolvimento Sustentável | 3.628 | [desenvolvimento-sustentavel.md](desenvolvimento-sustentavel.md) | + +> **Nota:** 26.862 artigos (15,8%) não possuem tema principal atribuído. A tabela completa está disponível em `ambienteja.duckdb`. + +## Distribuição temporal + +| Período | Artigos/ano | +|----------|-------------| +| 2001–2006 | ~14.000 | +| 2007–2008 | ~25.000 (pico) | +| 2009–2010 | ~14.000 | +| 2011–2015 | declínio até ~120/ano | + +## Abrangência + +| Escopo | Artigos | % | +|--------|---------|---| +| Nacional | 79.438 | 46,7% | +| Estadual | 50.640 | 29,7% | +| Internacional | 40.165 | 23,6% | diff --git a/resumo/legislacao-e-governo.md b/resumo/legislacao-e-governo.md new file mode 100644 index 0000000..5aded9c --- /dev/null +++ b/resumo/legislacao-e-governo.md @@ -0,0 +1,19 @@ +# Legislação e Governo + +**27.835 artigos** | período 2001–2014 | abrangência: principalmente Nacional (64,5%), seguida por Estadual (30%) e Internacional (5,4%) + +Este é o maior tema do acervo, refletindo a centralidade das instituições públicas na agenda ambiental brasileira. A cobertura concentra-se fortemente na atuação do Ibama, cujas operações de fiscalização e licenciamento ambiental geraram volumes expressivos de notícias. As frequentes greves de servidores do órgão — rotuladas de "molecagem" em editorial do jornal *O Estado de São Paulo* — evidenciam as tensões internas de uma autarquia-chave para a execução da política ambiental. O Ibama aparece tanto como protagonista de grandes operações quanto como alvo de críticas por morosidade e conflitos com setores produtivos. + +O Ministério do Meio Ambiente (MMA), sob diferentes gestões ao longo do período, ocupa posição de destaque com a formulação de políticas como a Política Nacional de Biodiversidade e a instalação de comitês estratégicos, a exemplo do comitê no Pará. As Conferências Nacionais do Meio Ambiente emergem como espaços de participação social, enquanto audiências públicas e consultas populares pautam decisões sobre empreendimentos controversos. No Congresso Nacional, os debates mais acalorados giraram em torno da reforma do Código Florestal, da Lei de Crimes Ambientais e da regulação dos transgênicos, com embates entre bancadas ruralista e ambientalista. + +O Ministério Público Federal e os MPs estaduais consolidaram-se como atores centrais da governança ambiental, movendo ações civis públicas e firmando termos de ajustamento de conduta com empresas e governos. O Zoneamento Ecológico-Econômico (ZEE), especialmente na Amazônia, foi instrumento recorrente de ordenamento territorial, assim como a criação e gestão de Unidades de Conservação federais e estaduais. Nos estados, as legislações de São Paulo, Rio Grande do Sul, Santa Catarina, Paraná, Minas Gerais e Pará receberam atenção específica, assim como a atuação de câmaras municipais na aprovação de leis ambientais locais. + +O Conselho Nacional de Política Energética (CNPE) integrou a pauta ao deliberar sobre Angra III e o incentivo a termelétricas, evidenciando a intersecção entre política energética e meio ambiente. A repartição de benefícios do patrimônio genético, debatida pelo CGEN, e incentivos fiscais para áreas rurais preservadas completam o quadro de uma cobertura que documenta os embates entre governadores, ministros e ambientalistas na construção da arquitetura legal-ambiental do país. + +### Títulos representativos + +- "Conselho de Política Energética discute conclusão de Angra III" +- "Aprovado incentivo a termelétricas" +- "Dom Cappio cobra encontro e ameaça nova greve" +- "Ibama concede licença de operação a rodovias federais no Sudeste e no Sul" +- "Senadora quer ampliar incentivo fiscal para áreas rurais preservadas" diff --git a/resumo/mudancas-climaticas.md b/resumo/mudancas-climaticas.md new file mode 100644 index 0000000..744e75b --- /dev/null +++ b/resumo/mudancas-climaticas.md @@ -0,0 +1,19 @@ +# Mudanças Climáticas + +**8.645 artigos** | período 2003–2013 | abrangência: principalmente Internacional (74%), seguida por Nacional (21,4%) e Estadual (4,5%) + +A cobertura sobre mudanças climáticas é marcadamente internacional, refletindo a natureza global do problema. As Conferências do Clima da ONU (COPs) constituem o fio condutor da narrativa, com ampla cobertura das negociações multilaterais. O Protocolo de Kyoto e as discussões sobre o regime climático pós-2012 dominam o noticiário, com embates entre países desenvolvidos e em desenvolvimento sobre responsabilidades comuns mas diferenciadas. Os relatórios do IPCC, especialmente o quarto e o quinto, são tratados como marcos científicos que fundamentam a urgência da ação climática. + +As posições dos grandes emissores recebem escrutínio constante. A expectativa de que o presidente George W. Bush mudasse sua posição sobre a mudança climática ilustra a politização do tema nos Estados Unidos, enquanto a transição para a administração Obama trouxe novas perspectivas. China, Índia e União Europeia completam o tabuleiro geopolítico, com cientistas chineses atribuindo ao efeito estufa a redução de rios no país e a Agência Internacional de Energia cobrando revisão de ações para suavizar o aquecimento global. + +No Brasil, a cobertura enfoca o desmatamento como principal fonte de emissões e as metas internas de redução que o país se comprometeu a anunciar. O mercado de créditos de carbono e o Mecanismo de Desenvolvimento Limpo (MDL) geraram intenso debate entre advogados, empresas e ambientalistas sobre a viabilidade de instrumentos econômicos para mitigação. As energias renováveis são apresentadas como resposta estrutural, conectando este tema à pauta de transição energética. + +Os eventos extremos — degelo no Ártico, elevação do nível do mar, ondas de calor — dão concretude às projeções climáticas. O apelo da ONU para que governos "salvem o planeta" sintetiza o tom de urgência predominante. A cobertura também refuta o negacionismo, sustentando-se nos consensos científicos e nos alertas de organismos multilaterais sobre um planeta "cada vez mais habitado e quente". + +### Títulos representativos + +- "Cientistas esperam que Bush mude sua posição sobre a mudança climática" +- "Um planeta cada vez mais habitado e quente" +- "Advogados discutem mercado de créditos de carbono" +- "Brasil deve anunciar metas internas de redução das emissões" +- "ONU pede para governos 'salvarem o planeta' em conferência climática" diff --git a/resumo/poluicao.md b/resumo/poluicao.md new file mode 100644 index 0000000..c77d877 --- /dev/null +++ b/resumo/poluicao.md @@ -0,0 +1,19 @@ +# Poluição + +**4.142 artigos** | período 2002–2013 | abrangência: distribuída entre Nacional (35,3%), Internacional (35,1%) e Estadual (29,6%) + +A cobertura sobre poluição se caracteriza por uma distribuição equilibrada entre as três esferas de abrangência, refletindo um problema que é simultaneamente local, nacional e global. A poluição hídrica domina o noticiário brasileiro, e o Rio dos Sinos, no Rio Grande do Sul, tornou-se o caso-símbolo de degradação e mobilização social. Os protestos que "transformaram a Klabin Riocell" e a missão oficial que visitou a Holanda e a Inglaterra para buscar soluções ilustram como crises ambientais locais catalisaram respostas institucionais e comunitárias. + +Outros corpos hídricos gravemente afetados receberam atenção contínua. O Arroio Pampa, em Novo Hamburgo, apareceu coberto por uma camada branca de poluentes; a Baía de Guanabara e o Rio Tietê, com o Projeto Tietê, simbolizaram a luta contra a poluição em centros metropolitanos. A poluição por metais pesados e organoclorados, frequentemente associada a passivos industriais históricos, e os derramamentos de óleo e produtos químicos em rios e mares completam o quadro de agressões aos ecossistemas aquáticos. + +A poluição atmosférica mereceu cobertura expressiva, especialmente no que diz respeito à qualidade do ar em São Paulo e às emissões veiculares. O Detran do Rio de Janeiro passou a controlar a emissão de gases poluentes nos veículos, sinalizando a entrada do tema na esfera regulatória. Um estudo surpreendente revelou que o cigarro polui mais do que alguns motores a diesel, reposicionando o debate sobre poluentes em ambientes fechados. A poluição sonora e visual nos centros urbanos também foi abordada, com alertas de que o barulho excessivo pode causar desde estresse até quadros de ansiedade. + +Eventos insólitos pontuaram a cobertura internacional: a neve amarela que assustou populações em partes da Sibéria e a barragem nos Estados Unidos rompida lentamente para recuperar uma área extremamente poluída. A poluição industrial, com casos envolvendo empresas como Klabin Riocell, Aracruz e termelétricas, revela a tensão permanente entre atividade produtiva e saúde ambiental. O monitoramento e os padrões de qualidade emergem como instrumentos técnicos indispensáveis, ainda que sua efetividade dependa da vontade política de fiscalizar e punir. + +### Títulos representativos + +- "Protestos transformaram Klabin Riocell" +- "Camada branca cobre o arroio Pampa em Novo Hamburgo" +- "Detran controlará emissão de gases poluentes nos veículos do Rio" +- "Neve amarela assusta população em partes da Sibéria" +- "Cigarro polui mais do que alguns motores" diff --git a/resumo/residuos-lixo.md b/resumo/residuos-lixo.md new file mode 100644 index 0000000..dc6c77e --- /dev/null +++ b/resumo/residuos-lixo.md @@ -0,0 +1,19 @@ +# Resíduos/Lixo + +**6.141 artigos** | período 2001–2014 | abrangência: principalmente Estadual (54,8%), seguida por Nacional (34,8%) e Internacional (10,3%) + +A cobertura sobre resíduos tem forte ancoragem local, com a predominância estadual revelando que o lixo é, antes de tudo, um problema de gestão municipal e regional. A desativação de lixões e sua substituição por aterros sanitários constitui a narrativa mais recorrente, com casos emblemáticos como o início do processo de desativação do lixão de Taquara e a interdição judicial do Aterro Santa Tecla. Esses episódios ilustram a transição — lenta e conflituosa — de um modelo de disposição inadequada para soluções tecnicamente corretas. + +A coleta seletiva e a reciclagem são abordadas em suas múltiplas dimensões: ambiental, social e econômica. Os catadores e suas cooperativas ganham visibilidade como atores centrais da cadeia de reciclagem, enquanto a logística reversa emerge como conceito-chave com a Política Nacional de Resíduos Sólidos. A destinação de resíduos específicos — pneus, pilhas, baterias e lixo eletrônico — revela a complexidade crescente da gestão de materiais pós-consumo. A Univias inovou ao utilizar asfalto produzido a partir de pneus usados, e uma tecnologia brasileira de redução e desidratação de lixo foi implantada em Niterói. + +Os resíduos perigosos ocupam um capítulo à parte. A incineração de PCBs e o caso da Bayer em Belford Roxo trouxeram à tona os riscos do passivo químico-industrial. O biogás gerado pela suinocultura e por aterros sanitários despertou o interesse de produtores, conciliando o tratamento de resíduos com a geração de energia. Resíduos industriais e hospitalares completam o leque de preocupações sanitárias e ambientais associadas ao descarte. + +A compostagem e o aproveitamento de lodo de estações de tratamento de água para a produção de tijolos ecológicos demonstram a busca por soluções integradas que transformam passivos em ativos. Painelistas defenderam prioridade política para o tratamento de resíduos, e a remoção de lixo industrial iniciada em Caxias do Sul simboliza a gradativa responsabilização do setor produtivo. A cobertura evidencia, em suma, um país que começou a enfrentar seu lixo como problema de política pública, mas ainda distante de uma solução abrangente. + +### Títulos representativos + +- "Univias utiliza asfalto produzido a partir de pneus usados" +- "Taquara começa processo de desativação de lixão" +- "Painelistas defendem prioridade política para tratamento de resíduos" +- "Pesquisador constrói tijolo ecológico com lodo de ETA" +- "Aterro Santa Tecla é interditado pela Justiça" diff --git a/resumo/saude-e-meio-ambiente.md b/resumo/saude-e-meio-ambiente.md new file mode 100644 index 0000000..12a0f04 --- /dev/null +++ b/resumo/saude-e-meio-ambiente.md @@ -0,0 +1,19 @@ +# Saúde e Meio Ambiente + +**6.088 artigos** | período 2001–2015 | abrangência: distribuída entre Nacional (33,8%), Internacional (33,6%) e Estadual (32,6%) + +A interseção entre saúde e meio ambiente recebe uma cobertura equilibrada entre as três esferas de abrangência, refletindo tanto a dimensão local dos problemas sanitários quanto seu alcance global. A poluição do ar e seus efeitos na saúde respiratória das populações urbanas constituem uma linha de força do noticiário, com estudos que surpreenderam ao revelar que o cigarro polui mais do que alguns motores a diesel, reposicionando o debate sobre qualidade do ar em ambientes fechados. + +Os agrotóxicos são tratados como grave problema de saúde pública. Intoxicações agudas e crônicas de trabalhadores rurais, especialmente no Paraná e em outros estados agrícolas, são documentadas ao lado de estudos que associam a exposição prolongada a casos de câncer. O amianto mereceu campanhas dedicadas, com a Associação Brasileira dos Expostos ao Amianto (ABREA) promovendo o "Tribunal do Amianto" em São Paulo, em uma estratégia de mobilização social que mesclava denúncia e advocacy pelo banimento do mineral. + +A gripe aviária (H5N1) dominou as manchetes de saúde ambiental global no período, com a confirmação de mortes em países como o Iraque e estudos sobre a concentração do vírus na garganta humana. O tom de alerta sanitário se estendeu à dengue, cuja forma mais letal subiu 500% no Rio de Janeiro, e a outras doenças tropicais associadas a condições precárias de saneamento. A contaminação por metais pesados — chumbo, mercúrio e manganês, este último no controverso caso do MMT — expôs a vulnerabilidade de comunidades próximas a atividades extrativas e industriais. + +A qualidade da água para consumo humano emergiu em escândalos como o dos voos nos Estados Unidos que serviam água contaminada por coliformes, e a Europa lançou alerta para dioxina em goma guar importada da Índia, evidenciando a dimensão transfronteiriça da segurança alimentar. As estações de rádio-base de telefonia celular geraram impasse legislativo e mobilização comunitária sobre os efeitos da radiação não ionizante na saúde, em um debate que opôs a expansão da infraestrutura de telecomunicações ao princípio da precaução. + +### Títulos representativos + +- "Impasse na votação sobre estações de rádio-base" +- "ABREA promove Tribunal do Amianto em São Paulo" +- "Confirmada mais uma morte por gripe aviária no Iraque" +- "Dengue mais letal sobe 500% no Rio" +- "Vôos nos EUA servem água contaminada por coliformes" diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index fb57ccd..0000000 --- a/yarn.lock +++ /dev/null @@ -1,4 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - -