diff --git a/Gemfile b/Gemfile index a366fac7e..9c0436d25 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'bootsnap', '>= 1.4.2', require: false gem 'activerecord-import' gem 'acts_as_list' -gem 'activeadmin' +gem 'activeadmin', '~> 3.2.0' gem 'activeadmin_addons' gem 'devise', '>= 4.7.1' gem 'cancancan' diff --git a/Gemfile.lock b/Gemfile.lock index 9ed7c3267..180a12173 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,40 +1,40 @@ GEM remote: https://rubygems.org/ specs: - actioncable (6.1.7.6) - actionpack (= 6.1.7.6) - activesupport (= 6.1.7.6) + actioncable (6.1.7.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.6) - actionpack (= 6.1.7.6) - activejob (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionmailbox (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) mail (>= 2.7.1) - actionmailer (6.1.7.6) - actionpack (= 6.1.7.6) - actionview (= 6.1.7.6) - activejob (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionmailer (6.1.7.8) + actionpack (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activesupport (= 6.1.7.8) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.7.6) - actionview (= 6.1.7.6) - activesupport (= 6.1.7.6) + actionpack (6.1.7.8) + actionview (= 6.1.7.8) + activesupport (= 6.1.7.8) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.6) - actionpack (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + actiontext (6.1.7.8) + actionpack (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) nokogiri (>= 1.8.5) - actionview (6.1.7.6) - activesupport (= 6.1.7.6) + actionview (6.1.7.8) + activesupport (= 6.1.7.8) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -43,8 +43,9 @@ GEM actionpack addressable active_material (1.5.2) - activeadmin (3.2.0) + activeadmin (3.2.4) arbre (~> 1.2, >= 1.2.1) + csv formtastic (>= 3.1) formtastic_i18n (>= 0.4) inherited_resources (~> 1.7) @@ -59,28 +60,28 @@ GEM sassc sassc-rails xdan-datetimepicker-rails (~> 2.5.1) - activejob (6.1.7.6) - activesupport (= 6.1.7.6) + activejob (6.1.7.8) + activesupport (= 6.1.7.8) globalid (>= 0.3.6) - activemodel (6.1.7.6) - activesupport (= 6.1.7.6) + activemodel (6.1.7.8) + activesupport (= 6.1.7.8) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (6.1.7.6) - activemodel (= 6.1.7.6) - activesupport (= 6.1.7.6) + activerecord (6.1.7.8) + activemodel (= 6.1.7.8) + activesupport (= 6.1.7.8) activerecord-import (1.4.0) activerecord (>= 4.2) - activestorage (6.1.7.6) - actionpack (= 6.1.7.6) - activejob (= 6.1.7.6) - activerecord (= 6.1.7.6) - activesupport (= 6.1.7.6) + activestorage (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activesupport (= 6.1.7.8) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.7.6) + activesupport (6.1.7.8) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -111,7 +112,7 @@ GEM bootsnap (1.12.0) msgpack (~> 1.2) brakeman (5.2.3) - builder (3.2.4) + builder (3.3.0) bullet (7.0.2) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) @@ -154,11 +155,12 @@ GEM nokogiri (~> 1.10, >= 1.10.4) rubyzip (>= 1.3.0, < 3) coderay (1.1.3) - concurrent-ruby (1.2.3) + concurrent-ruby (1.3.4) connection_pool (2.2.5) countries (5.1.1) sixarm_ruby_unaccent (~> 1.1) crass (1.0.6) + csv (3.3.0) database_cleaner-active_record (2.0.1) activerecord (>= 5.a) database_cleaner-core (~> 2.0.0) @@ -189,7 +191,7 @@ GEM request_store (>= 1.0) ruby2_keywords draper-cancancan (1.1.1) - erubi (1.12.0) + erubi (1.13.0) execjs (2.8.1) factory_bot (6.2.1) activesupport (>= 5.0.0) @@ -292,14 +294,14 @@ GEM marcel (1.0.4) matrix (0.4.2) memoist (0.16.2) - method_source (1.0.0) + method_source (1.1.0) mini_magick (4.11.0) mini_mime (1.1.5) - mini_portile2 (2.8.6) - minitest (5.23.1) + mini_portile2 (2.8.7) + minitest (5.25.1) msgpack (1.5.3) multi_json (1.15.0) - net-imap (0.4.9.1) + net-imap (0.4.14) date net-protocol net-pop (0.1.2) @@ -308,11 +310,11 @@ GEM timeout net-scp (1.2.1) net-ssh (>= 2.6.5) - net-smtp (0.4.0.1) + net-smtp (0.5.0) net-protocol net-ssh (7.0.1) - nio4r (2.7.0) - nokogiri (1.16.5) + nio4r (2.7.3) + nokogiri (1.16.7) mini_portile2 (~> 2.8.2) racc (~> 1.4) optimist (3.0.1) @@ -338,7 +340,7 @@ GEM public_suffix (4.0.7) puma (5.6.8) nio4r (~> 2.0) - racc (1.8.0) + racc (1.8.1) rack (2.2.9) rack-cors (1.1.1) rack (>= 2.0.0) @@ -346,20 +348,20 @@ GEM rack rack-test (2.1.0) rack (>= 1.3) - rails (6.1.7.6) - actioncable (= 6.1.7.6) - actionmailbox (= 6.1.7.6) - actionmailer (= 6.1.7.6) - actionpack (= 6.1.7.6) - actiontext (= 6.1.7.6) - actionview (= 6.1.7.6) - activejob (= 6.1.7.6) - activemodel (= 6.1.7.6) - activerecord (= 6.1.7.6) - activestorage (= 6.1.7.6) - activesupport (= 6.1.7.6) + rails (6.1.7.8) + actioncable (= 6.1.7.8) + actionmailbox (= 6.1.7.8) + actionmailer (= 6.1.7.8) + actionpack (= 6.1.7.8) + actiontext (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activemodel (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) bundler (>= 1.15.0) - railties (= 6.1.7.6) + railties (= 6.1.7.8) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -372,15 +374,15 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (6.1.7.6) - actionpack (= 6.1.7.6) - activesupport (= 6.1.7.6) + railties (6.1.7.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) method_source rake (>= 12.2) thor (~> 1.0) rainbow (3.1.1) - rake (13.1.0) - ransack (4.1.1) + rake (13.2.1) + ransack (4.2.1) activerecord (>= 6.1.5) activesupport (>= 6.1.5) i18n @@ -405,8 +407,8 @@ GEM actionpack (>= 5.2) railties (>= 5.2) retriable (3.1.2) - rexml (3.2.8) - strscan (>= 3.0.9) + rexml (3.3.6) + strscan roo (2.10.0) nokogiri (~> 1) rubyzip (>= 1.3.0, < 3.0.0) @@ -491,9 +493,9 @@ GEM sprockets (4.2.1) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) sprockets (>= 3.0.0) sshkit (1.21.2) net-scp (>= 1.1.2) @@ -504,7 +506,7 @@ GEM diff-lcs patience_diff test-prof (1.0.9) - thor (1.3.0) + thor (1.3.1) tilt (2.0.10) timecop (0.9.5) timeout (0.4.1) @@ -545,14 +547,14 @@ GEM rails (>= 3.2.16) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.15) + zeitwerk (2.6.17) PLATFORMS ruby DEPENDENCIES active_link_to - activeadmin + activeadmin (~> 3.2.0) activeadmin_addons activerecord-import acts_as_list diff --git a/app/admin/tpi_sector_clusters.rb b/app/admin/tpi_sector_clusters.rb index 01ff7f672..89b7471df 100644 --- a/app/admin/tpi_sector_clusters.rb +++ b/app/admin/tpi_sector_clusters.rb @@ -6,7 +6,7 @@ menu priority: 8, parent: 'TPI' - permit_params :name + permit_params :name, sector_ids: [] filter :name_contains @@ -25,4 +25,12 @@ column :name, &:name_link actions end + + form do |f| + f.inputs do + f.input :name + f.input :sectors, as: :check_boxes, collection: TPISector.all.order(:name) + end + f.actions + end end diff --git a/app/assets/images/newsletter_background/newsletter_img_new.png b/app/assets/images/newsletter_background/newsletter_img_new.png new file mode 100644 index 000000000..75196e5e9 Binary files /dev/null and b/app/assets/images/newsletter_background/newsletter_img_new.png differ diff --git a/app/assets/images/tpi/funders/climate-arc.png b/app/assets/images/tpi/funders/climate-arc.png new file mode 100644 index 000000000..5ea5c5af5 Binary files /dev/null and b/app/assets/images/tpi/funders/climate-arc.png differ diff --git a/app/assets/images/tpi/funders/climateworks.png b/app/assets/images/tpi/funders/climateworks.png new file mode 100644 index 000000000..ffd355b53 Binary files /dev/null and b/app/assets/images/tpi/funders/climateworks.png differ diff --git a/app/assets/images/tpi/funders/ftse-russell-horizontal.png b/app/assets/images/tpi/funders/ftse-russell-horizontal.png new file mode 100644 index 000000000..a73900044 Binary files /dev/null and b/app/assets/images/tpi/funders/ftse-russell-horizontal.png differ diff --git a/app/assets/images/tpi/funders/ftse-russell-new.png b/app/assets/images/tpi/funders/ftse-russell-new.png new file mode 100644 index 000000000..fabf921bc Binary files /dev/null and b/app/assets/images/tpi/funders/ftse-russell-new.png differ diff --git a/app/assets/images/tpi/funders/laudes-foundation.png b/app/assets/images/tpi/funders/laudes-foundation.png new file mode 100644 index 000000000..ad24ab926 Binary files /dev/null and b/app/assets/images/tpi/funders/laudes-foundation.png differ diff --git a/app/assets/images/tpi/funders/lseg-foundation.png b/app/assets/images/tpi/funders/lseg-foundation.png new file mode 100644 index 000000000..fd51daf72 Binary files /dev/null and b/app/assets/images/tpi/funders/lseg-foundation.png differ diff --git a/app/assets/images/tpi/home/ascor.png b/app/assets/images/tpi/home/ascor.png new file mode 100644 index 000000000..f603d1cf3 Binary files /dev/null and b/app/assets/images/tpi/home/ascor.png differ diff --git a/app/assets/images/tpi/home/aum.png b/app/assets/images/tpi/home/aum.png new file mode 100644 index 000000000..316e93a2b Binary files /dev/null and b/app/assets/images/tpi/home/aum.png differ diff --git a/app/assets/images/tpi/home/banks.png b/app/assets/images/tpi/home/banks.png new file mode 100644 index 000000000..7cf018b97 Binary files /dev/null and b/app/assets/images/tpi/home/banks.png differ diff --git a/app/assets/images/tpi/home/corporate-carbon-performance.png b/app/assets/images/tpi/home/corporate-carbon-performance.png new file mode 100644 index 000000000..bfbf3cf13 Binary files /dev/null and b/app/assets/images/tpi/home/corporate-carbon-performance.png differ diff --git a/app/assets/images/tpi/home/corporate-management-quality.png b/app/assets/images/tpi/home/corporate-management-quality.png new file mode 100644 index 000000000..9f85a88ca Binary files /dev/null and b/app/assets/images/tpi/home/corporate-management-quality.png differ diff --git a/app/assets/images/tpi/home/energy.png b/app/assets/images/tpi/home/energy.png new file mode 100644 index 000000000..6fc65b13e Binary files /dev/null and b/app/assets/images/tpi/home/energy.png differ diff --git a/app/assets/images/tpi/home/food.png b/app/assets/images/tpi/home/food.png new file mode 100644 index 000000000..8cad666b1 Binary files /dev/null and b/app/assets/images/tpi/home/food.png differ diff --git a/app/assets/images/tpi/home/industry.png b/app/assets/images/tpi/home/industry.png new file mode 100644 index 000000000..938f88fb9 Binary files /dev/null and b/app/assets/images/tpi/home/industry.png differ diff --git a/app/assets/images/tpi/home/supporters.png b/app/assets/images/tpi/home/supporters.png new file mode 100644 index 000000000..fc42abf0a Binary files /dev/null and b/app/assets/images/tpi/home/supporters.png differ diff --git a/app/assets/images/tpi/home/transport.png b/app/assets/images/tpi/home/transport.png new file mode 100644 index 000000000..65a97de5e Binary files /dev/null and b/app/assets/images/tpi/home/transport.png differ diff --git a/app/assets/images/tpi/partners/grantham-bigger.png b/app/assets/images/tpi/partners/grantham-bigger.png new file mode 100644 index 000000000..0711f83f2 Binary files /dev/null and b/app/assets/images/tpi/partners/grantham-bigger.png differ diff --git a/app/assets/images/tpi/partners/lse-bigger.png b/app/assets/images/tpi/partners/lse-bigger.png new file mode 100644 index 000000000..bb5afd922 Binary files /dev/null and b/app/assets/images/tpi/partners/lse-bigger.png differ diff --git a/app/assets/stylesheets/tpi.scss b/app/assets/stylesheets/tpi.scss index 2f893d93a..5ad486cab 100644 --- a/app/assets/stylesheets/tpi.scss +++ b/app/assets/stylesheets/tpi.scss @@ -55,7 +55,7 @@ html { body { overflow-x: hidden; - font-family: $family-sans-serif; + font-family: $font-family-regular; @include desktop { overflow-x: visible; diff --git a/app/assets/stylesheets/tpi/_banner.scss b/app/assets/stylesheets/tpi/_banner.scss index 8b3aae076..9cd010d38 100644 --- a/app/assets/stylesheets/tpi/_banner.scss +++ b/app/assets/stylesheets/tpi/_banner.scss @@ -15,10 +15,10 @@ .partners__title { display: flex; justify-content: flex-end; - font-size: $size-7; + font-size: $size-8; color: $grey-dark; line-height: 0.938rem; - margin-bottom: 20px; + margin-bottom: 5px; } .partners { @@ -26,14 +26,6 @@ align-items: center; justify-content: end; gap: 30px; - - &__grantham { - max-height: 38px; - } - - &__lse { - max-height: 42px; - } } } } diff --git a/app/assets/stylesheets/tpi/_filters.scss b/app/assets/stylesheets/tpi/_filters.scss index 020085533..fc9845e14 100644 --- a/app/assets/stylesheets/tpi/_filters.scss +++ b/app/assets/stylesheets/tpi/_filters.scss @@ -109,7 +109,7 @@ padding: 6px 12px; cursor: pointer; font-size: 14px; - font-family: $family-sans-serif; + font-family: $font-family-regular; margin-right: 16px; margin-bottom: 10px; } diff --git a/app/assets/stylesheets/tpi/_footer.scss b/app/assets/stylesheets/tpi/_footer.scss index 3cf8e05f9..22ac9a20a 100644 --- a/app/assets/stylesheets/tpi/_footer.scss +++ b/app/assets/stylesheets/tpi/_footer.scss @@ -45,6 +45,7 @@ justify-content: space-around; @include mobile { + flex-direction: column; font-size: 14px; } diff --git a/app/assets/stylesheets/tpi/_latest-information.scss b/app/assets/stylesheets/tpi/_latest-information.scss index 0b3b0b562..e461f64bc 100644 --- a/app/assets/stylesheets/tpi/_latest-information.scss +++ b/app/assets/stylesheets/tpi/_latest-information.scss @@ -29,7 +29,7 @@ $dots-space: 1.3rem; &__header { margin-bottom: 36px; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; } &__description { @@ -79,7 +79,7 @@ $dots-space: 1.3rem; &__button-text { font-size: 16px; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; color: $white; } diff --git a/app/assets/stylesheets/tpi/_pages.scss b/app/assets/stylesheets/tpi/_pages.scss index 144a4860e..7946439b9 100644 --- a/app/assets/stylesheets/tpi/_pages.scss +++ b/app/assets/stylesheets/tpi/_pages.scss @@ -130,7 +130,7 @@ $margin-between-list-items: 20px; &.text-description { display: flex; - font-family: $family-sans-serif; + font-family: $font-family-regular; .pages__content-logos { grid-template-columns: repeat(2, 1fr); @@ -167,7 +167,7 @@ $margin-between-list-items: 20px; &.logo-description { display: block; - font-family: $family-sans-serif; + font-family: $font-family-regular; .pages__content-logos { grid-template-columns: repeat(2, 1fr); diff --git a/app/assets/stylesheets/tpi/_publications.scss b/app/assets/stylesheets/tpi/_publications.scss index 4219b9b79..b4f160416 100644 --- a/app/assets/stylesheets/tpi/_publications.scss +++ b/app/assets/stylesheets/tpi/_publications.scss @@ -86,7 +86,7 @@ $max-lines: 3; &__title-text { margin-bottom: 20px; font-size: 20px !important; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; color: $dark; @include desktop { diff --git a/app/assets/stylesheets/tpi/_search.scss b/app/assets/stylesheets/tpi/_search.scss index f8a44497d..118d58f71 100644 --- a/app/assets/stylesheets/tpi/_search.scss +++ b/app/assets/stylesheets/tpi/_search.scss @@ -7,7 +7,7 @@ margin-top: 20px; > a { - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; } } diff --git a/app/assets/stylesheets/tpi/_selector.scss b/app/assets/stylesheets/tpi/_selector.scss index 7939a319a..91c6255da 100644 --- a/app/assets/stylesheets/tpi/_selector.scss +++ b/app/assets/stylesheets/tpi/_selector.scss @@ -52,7 +52,7 @@ .selector__option { padding-inline: 16px; color: $ascor-color; - font-family: $family-sans-serif; + font-family: $font-family-regular; font-size: 16px; font-style: normal; font-weight: 400; diff --git a/app/assets/stylesheets/tpi/buttons.scss b/app/assets/stylesheets/tpi/buttons.scss index 449430a0d..d8e3dbfeb 100644 --- a/app/assets/stylesheets/tpi/buttons.scss +++ b/app/assets/stylesheets/tpi/buttons.scss @@ -3,7 +3,7 @@ $button-border-width: 4px; .link { - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; cursor: pointer; &.is-hovered, @@ -32,7 +32,7 @@ $button-border-width: 4px; $button-height: 40px; min-width: 160px; height: $button-height; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; cursor: pointer; border-radius: 0 !important; diff --git a/app/assets/stylesheets/tpi/charts/companies_accordion.scss b/app/assets/stylesheets/tpi/charts/companies_accordion.scss index 67d88f518..48a2188de 100644 --- a/app/assets/stylesheets/tpi/charts/companies_accordion.scss +++ b/app/assets/stylesheets/tpi/charts/companies_accordion.scss @@ -25,7 +25,7 @@ $tpi-level-chart-colors: #86A9F9 #5587F7 #2465F5 #0A4BDC #083AAB #9747FF; .item-title { display: flex; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; font-size: $size-5; justify-content: space-between; margin-bottom: 0.75rem; diff --git a/app/assets/stylesheets/tpi/charts/cp-performance.scss b/app/assets/stylesheets/tpi/charts/cp-performance.scss index fb132574a..95208bb8a 100644 --- a/app/assets/stylesheets/tpi/charts/cp-performance.scss +++ b/app/assets/stylesheets/tpi/charts/cp-performance.scss @@ -190,7 +190,7 @@ background-color: $blue; border: none; color: $white; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; width: 160px; } } diff --git a/app/assets/stylesheets/tpi/charts/mq-sector-pie-chart.scss b/app/assets/stylesheets/tpi/charts/mq-sector-pie-chart.scss index 3a32f8be2..09525a77a 100644 --- a/app/assets/stylesheets/tpi/charts/mq-sector-pie-chart.scss +++ b/app/assets/stylesheets/tpi/charts/mq-sector-pie-chart.scss @@ -16,7 +16,7 @@ $tpi-pie-chart-colors: #86A9F9 #5587F7 #2465F5 #0A4BDC #083AAB #9747FF; tspan { &:not(.highcharts-strong) { font-size: $size-7; - font-family: $family-sans-serif; + font-family: $font-family-bold; } } } diff --git a/app/assets/stylesheets/tpi/pages/ascor.scss b/app/assets/stylesheets/tpi/pages/ascor.scss index e1b10af8a..9e65b6344 100644 --- a/app/assets/stylesheets/tpi/pages/ascor.scss +++ b/app/assets/stylesheets/tpi/pages/ascor.scss @@ -277,7 +277,7 @@ $see-more-width-tablet: 130px; &__title { color: $dark; - font-family: $family-sans-serif; + font-family: $font-family-regular; font-size: 24px !important; line-height: 1.7rem; font-weight: 400; @@ -287,7 +287,7 @@ $see-more-width-tablet: 130px; &__subtitle { color: $grey-dark; - font-family: $family-sans-serif; + font-family: $font-family-regular; font-size: 12px; } @@ -304,7 +304,7 @@ $see-more-width-tablet: 130px; display: flex; &__title { - font-family: $family-sans-serif; + font-family: $font-family-regular; font-size: 20px !important; display: flex; align-items: center; @@ -378,7 +378,7 @@ $see-more-width-tablet: 130px; display: flex; &__title { - font-family: $family-sans-serif; + font-family: $font-family-regular; font-weight: 700; font-size: 16px; display: flex; @@ -388,7 +388,7 @@ $see-more-width-tablet: 130px; } &__source { - font-family: $family-sans-serif; + font-family: $font-family-regular; font-size: 14px !important; line-height: 40px; @@ -449,7 +449,7 @@ $see-more-width-tablet: 130px; } &__source { - font-family: $family-sans-serif; + font-family: $font-family-regular; font-size: 14px !important; a { @@ -574,7 +574,7 @@ $see-more-width-tablet: 130px; width: 400px; h3 { - font-family: $family-sans-serif; + font-family: $font-family-regular; font-size: 24px !important; font-weight: 700; padding: 20px 0; @@ -655,4 +655,4 @@ $see-more-width-tablet: 130px; } } } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/tpi/pages/banks-index.scss b/app/assets/stylesheets/tpi/pages/banks-index.scss index 76d358d0f..529bab25c 100644 --- a/app/assets/stylesheets/tpi/pages/banks-index.scss +++ b/app/assets/stylesheets/tpi/pages/banks-index.scss @@ -1,6 +1,44 @@ @import "../variables"; .banks-index-page { + &__info { + background-color: $blue; + padding: 40px 0 30px 0; + border-bottom: 1px solid #FFFFFF1F; + text-align: justify; + + strong { + color: $white; + } + + .title { + color: $white; + font-size: $size-4; + font-family: $font-family-bold; + margin-bottom: 20px; + } + + .description { + color: $white; + font-size: $size-6; + font-family: $font-family-regular; + margin-bottom: 10px + } + + ol { + color: $white; + padding-left: 20px; + + li { + padding: 10px 0; + } + + li::marker { + font-weight: bold; + } + } + } + .banks-header { min-height: 100px; display: flex; diff --git a/app/assets/stylesheets/tpi/pages/company.scss b/app/assets/stylesheets/tpi/pages/company.scss index b399c7bba..b985cf308 100644 --- a/app/assets/stylesheets/tpi/pages/company.scss +++ b/app/assets/stylesheets/tpi/pages/company.scss @@ -223,12 +223,12 @@ .level-description { color: $dark; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; padding: 0 30px; } .assessment-count { - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; } } } diff --git a/app/assets/stylesheets/tpi/pages/home.scss b/app/assets/stylesheets/tpi/pages/home.scss index aa2ee8190..e1b13a629 100644 --- a/app/assets/stylesheets/tpi/pages/home.scss +++ b/app/assets/stylesheets/tpi/pages/home.scss @@ -47,47 +47,22 @@ } } - .left-size { - max-width: 80%; - margin-top: 15px; - margin-bottom: 15px; - - @include tablet { - max-width: 60%; - } - - @include tablet { - max-width: 45%; - } - } - - .title { - color: $white; - } - - .description { + &__title { display: flex; - justify-content: center; - line-height: $size-4; - position: relative; + justify-content: space-around; + flex-direction: row; - @media #{$tablet-portrait} { - justify-content: left; - width: 100%; + @include mobile { + flex-direction: column; + align-items: center; } - &:before { - content: ''; - display: block; - position: absolute; - width: 8px; - height: 100%; - background-color: $blue-ribbon; - left: -1.5rem; - - @include tablet { - left: -32px; - } + &__description { + max-width: 10rem; + text-align: center; + margin: 30px auto; + border: 1px solid #ffffffa1; + padding: 10px; } } @@ -102,7 +77,7 @@ } @include from($tablet) { - height: 5rem; + height: 5rem !important; width: 280px; max-width: 280px; margin-top: 50px; @@ -129,9 +104,10 @@ } .assessment-box { - padding: 20px 30px; - padding-bottom: 70px; position: relative; + color: $white; + background-color: $blue-darker; + text-align: center; &__header { font-size: 18px; @@ -139,81 +115,33 @@ &__title { margin-top: 30px; - font-size: 40px; + font-size: 30px; font-family: $font-family-bold; - line-height: 48px; - max-width: 270px; - } - - &.publicly-listed-equities { - color: $white; - background-color: $blue-darker; - background-image: image-url('tpi/home/office-building.svg'); - background-repeat: no-repeat; - background-position: right -70px bottom 30px; - } + height: 100px; + line-height: 70px; - &.banks { - background-color: $blue-ribbon; - color: $white; - background-image: image-url('tpi/home/bank.svg'); - background-repeat: no-repeat; - background-position: right -70px bottom 30px; - } + br { + display: none; + } - &.corporate-bonds { - background-color: $blue-dark; - color: $white; - background-image: image-url('tpi/home/bond.svg'); - background-repeat: no-repeat; - background-position: right -70px bottom 30px; - } + @include from($tablet) { + height: 200px; + line-height: 170px; - &.ascor { - background-color: $blue; - color: $white; - background-image: image-url('tpi/home/countries.svg'); - background-repeat: no-repeat; - background-position: right -70px bottom 30px; - } + br { + display: block; + } - &.disabled { - position: relative; - - &:before { - position: absolute; - content: ''; - left: 0; - top: 0; - bottom: 0; - right: 0; - background: $black; - opacity: 0.6; - z-index: 1; + span { + display: inline-block; + vertical-align: middle; + line-height: 40px; + } } } - &:after { - content: ''; - display: block; - position: absolute; - border: 2px solid $white; - background-color: $blue-dark; - background-image: image-url('tpi/icons/plus-white.svg'); - background-repeat: no-repeat; - background-position: center; - border-radius: 50%; - width: 40px; - height: 40px; - right: 20px; - bottom: 20px; - } - - &:not(.disabled):hover { - &:after { - background-color: $white; - background-image: image-url('tpi/icons/plus-darker.svg'); - } + &__sectors { + margin: 10px 0; } } } @@ -225,345 +153,93 @@ font-size: 1.125rem !important; } - .container { + .at-glance-container { display: flex; flex-direction: column; + gap: 20px; + justify-content: space-between; - @include tablet { + @include from($desktop) { flex-direction: row; } - } - &__stats { - @include mobile { - padding-bottom: 50px; - } - - @include tablet { - padding-right: 20px; - width: 50%; + &__first { + order: -1; } + } - @include desktop { - padding-right: 30px; - } + .at-glance-note { + font-size: $size-8; + margin-top: 1rem; + } - @include widescreen { - padding-right: 80px; - } + .at-glance-container:before { + content: ""; + border: 1px $blue-ribbon solid; + align-self: stretch; + } + &__stats { h3 { color: $grey-dark; } .stat-boxes { display: grid; - grid-template-columns: 1fr 1fr; gap: 30px; padding: 30px 0px; - @include desktop { - gap: 30px 50px; - } - - @include widescreen { - gap: 30px 70px; - } - - &--benchmarks { - gap: 30px 40px; - grid-template-columns: 1fr; - - @include tablet { - grid-template-columns: 1fr 1fr; - } - } - } - - .stat-box { - text-align: right; - color: $grey-dark; - padding: 10px 0px; - @include mobile { - max-width: 180px; - } - - &__number { - font-size: 2.25rem; - line-height: 1em; - font-family: $font-family-bold; - color: $blue; - - @include tablet { - font-size: 3rem; - } - } - - &__title { - font-size: 0.875rem; - - @include tablet { - font-size: 1.125rem; - } - } - - background-repeat: no-repeat; - background-position: left center; - background-size: 60px; - - @include tablet { - background-size: 80px; - } - - &--supporters { - background-image: image-url('tpi/home/support.svg'); - } - - &--combined-aum { - background-image: image-url('tpi/home/money-bag.svg'); - } - - &--companies { - background-image: image-url('tpi/home/companies.svg'); - } - - &--sectors { - background-image: image-url('tpi/home/sectors.svg'); - } - - &--countries { - background-image: image-url('tpi/home/location.svg'); - } - - &--market-cap { - background-image: image-url('tpi/home/market-cap.svg'); - } - } - - .stat-box-b { - color: $grey-dark; - display: grid; - grid-template-columns: 80px 1fr; - gap: 0px 15px; - - @include tablet { - gap: 10px 15px; - padding: 10px 0px; - } - - &__number { - text-align: right; - font-size: 2.25rem; - line-height: 1em; - font-family: $font-family-bold; - color: $blue; - - @include tablet { - font-size: 3rem; - } + grid-template-columns: 1fr; } - &__title { - line-height: 1.5rem; - max-width: 300px; - font-size: 0.875rem; - - @include tablet { - font-size: 1.125rem; - } + @include from($tablet) { + grid-template-columns: 1fr 1fr; } - &--benchmarks { - @include tablet { - grid-column: 1 / span 2; - } + @include desktop { + gap: 30px 25px; } - } - } - - &__news { - position: relative; - &:before { - content: ''; - position: absolute; - background: $blue; - left: -$gap; - width: 100vw; - top: -50px; - bottom: -50px; - z-index: -1; - } - - @include tablet { - padding-left: 20px; - width: 50%; - - &:before { - left: 0; - width: 50vw; + @include widescreen { + gap: 30px 70px; } - } - @include desktop { - padding-left: 30px; - } - - @include widescreen { - padding-left: 80px; - } - - h2 { - color: $white; - } - - h3 { - padding-left: 10px; - margin-bottom: 20px; - border-left: 4px solid $blue-ribbon; - font-size: 18px !important; - color: $white; - } - - .twitter-timeline { - height: 600px; - } - - .news-more { - display: flex; - flex-direction: column; - gap: 30px; - margin-top: 50px; - - @include tablet { - justify-content: space-between; + .stat-box { + display: flex; flex-direction: row; - } + gap: 30px; - &__learn-more { - > div { - display: flex; - flex-direction: column; - gap: 15px; - - a { - color: $white; - - &:hover { - text-decoration: underline; - } - } + &__icon { + width: 70px; + height: 70px; - .with-icon { - display: inline-flex; - gap: 10px; - align-items: center; + img { + width: 70px; + height: auto; } - - .icon { - width: 2rem; - height: 2rem; - background: $white; - background-position: center; - background-repeat: no-repeat; - border-radius: 50%; - } - - .icon__news { - background-image: image-url('tpi/home/news.svg'); - } - - .icon__events { - background-image: image-url('tpi/home/events.svg'); - } - } - } - - &__social-media { - .icon__twitter { - width: 2rem; - height: 2rem; - background-image: image-url('icon_twitter/twitter_white.svg'); - background-repeat: no-repeat; - } - - .icon__linkedin { - width: 2rem; - height: 2rem; - background-image: image-url('icon_linkedin/icon_linkedin_white.svg'); - background-repeat: no-repeat; - } - } - - > div { - > div { - padding: 10px; - } - } - } - } - } - - &__case-studies-supporters, - &__latest-research { - .slider-container { - @include mobile { - margin-left: -1.5rem; - width: 100vw; - } - - .tns-slider { - display: flex; - } - - .tns-outer { - position: relative; - } - - .tns-inner { - padding: 1px; - } - - .tns-controls { - button { - margin: auto 0; - position: absolute; - top: 0; - bottom: 0; - border: none; - border-radius: 50%; - height: 48px; - width: 48px; - background-color: $blue-ribbon; - z-index: 1; - color: $white; - - @include mobile { - height: 38px; - width: 38px; } - &:focus{ - outline: none; + &__content { + min-width: 120px; } - &[disabled] { - display: none; - } + &__number { + font-size: 1.25rem; + line-height: 1em; + font-family: $font-family-bold; - &[data-controls=next] { - right: 0; @include tablet { - right: -25px; + font-size: 1.25rem; } } - &[data-controls=prev] { - left: 0; - @include tablet { - left: -25px; - } + &__title { + font-size: 0.875rem; + + @include tablet { + font-size: 1.125rem; + } } } } @@ -571,84 +247,18 @@ } &__case-studies-supporters { - border-bottom: 1px solid rgba(89, 91, 93, 0.2); - - .section-description { - margin-top: 20px; + .subtitle { + color: $blue-ribbon; } ul { - list-style: inside; + list-style: none; - li { - font-size: 24px; - - a { - margin-left: -15px; - font-size: 16px; - color: $black; - } - } - } - - .case-studies-container { - .case-study { - display: block; - - height: 280px; - border: 1px solid $grey-medium; - padding-top: 90px; - padding-bottom: 60px; - padding-left: 40px; - padding-right: 40px;; - - position: relative; - - img { - position: absolute; - max-height: 35px; - left: 20px; - top: 20px; - } - - &__title { - color: $blue-ribbon; - font-size: 1.125rem; - line-height: 1.25rem; - } - - &__text { - color: $grey-dark; - font-size: 0.875rem; - } - - &.is-hoverable { - cursor: pointer; - - &:after { - content: ''; - display: block; - position: absolute; - background-color: $blue-dark; - background-image: image-url('tpi/icons/plus-white.svg'); - background-repeat: no-repeat; - background-position: center; - background-size: 13px; - border-radius: 50%; - width: 33px; - height: 33px; - right: 20px; - bottom: 20px; - } - - &:hover { - &:after { - background-color: $white; - background-image: image-url('tpi/icons/plus-darker.svg'); - border: 2px solid $blue-dark; - } - } - } + li:before { + content: "\f00c"; /* FontAwesome Unicode */ + font-family: FontAwesome; + display: inline-block; + margin-right: 10px; } } } @@ -657,6 +267,12 @@ border-bottom: 1px solid rgba(89, 91, 93, 0.2); .section-description { + .tns-item { + padding-right: 0 !important; + border-right: 2px solid $blue-ribbon; + height: 300px + } + .research-box { padding: 15px; @@ -667,10 +283,9 @@ height: 100%; display: block; - color: $dark; - font-size: 12px; + color: $blue-ribbon; + font-size: 15px; background: $white; - border: 1px solid $grey-medium; > img { width: 100%; @@ -692,7 +307,7 @@ &__author { color: $blue-ribbon; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; } } } @@ -700,11 +315,37 @@ &__funders { .section-description { - display: flex; - align-items: center; - justify-content: space-evenly; - flex-wrap: wrap; - gap: 30px; + .subtitle { + font-family: $font-family-bold; + } + + .images { + display: flex; + gap: 20px; + margin: 10px 0; + + @include mobile { + flex-direction: column; + } + + img { + max-height: 70px; + + @include mobile { + max-height: 100%; + max-width: 150px; + margin: auto; + } + } + } + + .info { + font-family: $font-family-bold; + + a { + text-decoration: underline; + } + } } } @@ -735,7 +376,7 @@ align-items: center; color: $dark; display: flex; - font-family: $family-sans-serif-bold; + font-family: $font-family-bold; font-size: 20px; justify-content: space-between; width: 100%; @@ -759,6 +400,11 @@ padding-bottom: $size-4; } + .content { + text-align: justify; + text-justify: inter-word; + } + a { color: $white; } diff --git a/app/assets/stylesheets/tpi/pages/sectors-index.scss b/app/assets/stylesheets/tpi/pages/sectors-index.scss index 5fbb6a9d2..1a25a0cf9 100644 --- a/app/assets/stylesheets/tpi/pages/sectors-index.scss +++ b/app/assets/stylesheets/tpi/pages/sectors-index.scss @@ -17,7 +17,7 @@ } &.weight-normal { - font-family: $family-sans-serif; + font-family: $font-family-regular; } } diff --git a/app/controllers/tpi/home_controller.rb b/app/controllers/tpi/home_controller.rb index 6f1b0ccba..67feee9a2 100644 --- a/app/controllers/tpi/home_controller.rb +++ b/app/controllers/tpi/home_controller.rb @@ -20,14 +20,18 @@ def index page&.contents&.find_by(code: 'supporters_without_logo')&.text.to_i, total_market_cap: page&.contents&.find_by(code: 'total_market_cap')&.text || '-', combined_aum: page&.contents&.find_by(code: 'combined_aum')&.text || '-', - sectors_count: TPISector.with_companies.count + corporate_management_quality: page&.contents&.find_by(code: 'corporate_management_quality')&.text || '-', + corporate_carbon_performance: page&.contents&.find_by(code: 'corporate_carbon_performance')&.text || '-', + sectors_count: TPISector.with_companies.count, + ascor_countries: ASCOR::Country.published.count, + banks: Bank.published.count } } @latest_researches = Publication .published .includes([:image_attachment, :author_image_attachment]) .order(publication_date: :desc) - .take(4) + .take(3) fixed_navbar('Dashboard', admin_root_path) end diff --git a/app/javascript/components/tpi/MqBetaModal.jsx b/app/javascript/components/tpi/MqBetaModal.jsx index d12274d85..02c493fd2 100644 --- a/app/javascript/components/tpi/MqBetaModal.jsx +++ b/app/javascript/components/tpi/MqBetaModal.jsx @@ -66,7 +66,7 @@ const MqBetaModal = ({ enabled, page }) => {
- The TPI Centre has developed an update to its Management Quality + TPI Centre has developed an update to its Management Quality (MQ) methodology, which is displayed here as a BETA methodology.
@@ -80,7 +80,8 @@ const MqBetaModal = ({ enabled, page }) => {
A report detailing what’s new in the BETA MQ methodology, - and a review of its impact on company scoring, can be found here. + and a review of its impact on company scoring, can be found + here.
Carbon Performance assessments are not affected by using this diff --git a/app/javascript/components/tpi/Navbar.js b/app/javascript/components/tpi/Navbar.js index 65d68781c..0f1894c2f 100644 --- a/app/javascript/components/tpi/Navbar.js +++ b/app/javascript/components/tpi/Navbar.js @@ -112,8 +112,8 @@ function renderMenuItem(menuItem, index) { ); } -const NavbarComponent = ({ items, openSearchMode }) => { - const [tpi, publications, about, faq, newsletter, search] = items; +const NavbarComponent = ({ items }) => { + const [tpi, publications, about, contactUs] = items; const [isOpen, setIsOpen] = useState(false); return (
Our goal is to provide high-quality data to evaluate and compare the progress banks are making in aligning their financing activities with the goals of the Paris Agreement. In 2024, the TPI Centre assessed 26 major international banks, 10 US super-regional banks, and two custodian banks on two elements:
++ Click above to learn more about our academic research and data +
- <%= @home_content[:intro][:text] %> +
+ Click above to learn more about our history and investor network
+ To become a recognised TPI supporter, please contact info@transitionpathwayinitiative.org +