From 694bce534857cb4f85033a0689a9e9c0e03ec87a Mon Sep 17 00:00:00 2001 From: Damian Legawiec Date: Thu, 21 Mar 2019 12:37:20 +0100 Subject: [PATCH] Make SpreeGlobalize optional --- Appraisals | 4 ---- Gemfile | 4 ---- README.md | 6 +----- app/controllers/spree/static_content_controller.rb | 2 +- app/models/spree/page.rb | 8 +++++--- app/views/spree/admin/pages/index.html.erb | 4 +++- .../20170827000001_add_translation_to_spree_pages.rb | 8 ++++++-- ...20170827000002_add_layout_to_translatable_fields.rb | 8 ++++++-- gemfiles/spree_3_2.gemfile | 3 --- gemfiles/spree_3_3.gemfile | 3 --- gemfiles/spree_3_4.gemfile | 3 --- gemfiles/spree_master.gemfile | 3 --- lib/spree_static_content.rb | 10 +++++++++- 13 files changed, 31 insertions(+), 35 deletions(-) diff --git a/Appraisals b/Appraisals index 8e8a0cda..cabdb06d 100644 --- a/Appraisals +++ b/Appraisals @@ -1,23 +1,19 @@ appraise 'spree-3-2' do gem 'spree', '~> 3.2.0' - gem "globalize", '~> 5.1' gem 'rails-controller-testing' end appraise 'spree-3-3' do gem 'spree', '~> 3.3.0' - gem "globalize", '~> 5.1' gem 'rails-controller-testing' end appraise 'spree-3-4' do gem 'spree', '~> 3.4.0' - gem "globalize", '~> 5.1' gem 'rails-controller-testing' end appraise 'spree-master' do gem 'spree', github: 'spree/spree', branch: 'master' - gem "globalize", '~> 5.1' gem 'rails-controller-testing' end diff --git a/Gemfile b/Gemfile index d9d7feb3..df041124 100644 --- a/Gemfile +++ b/Gemfile @@ -2,9 +2,5 @@ source 'https://rubygems.org/' gem 'rails-controller-testing' gem 'spree', github: 'spree/spree', branch: 'master' -gem 'globalize', github: 'globalize/globalize', branch: 'master' -gem 'spree_i18n', github: 'spree-contrib/spree_i18n', branch: 'master' -gem 'spree_globalize', github: 'spree-contrib/spree_globalize', branch: 'master' - gemspec diff --git a/README.md b/README.md index 16825b02..4f5180af 100644 --- a/README.md +++ b/README.md @@ -46,15 +46,11 @@ Finally, toggle the visibility using the 'Visible' checkbox. If it is unchecked, ## Installation -1. Add these extensions(unfortunately we need them all because of broken dependency on globalize) to your Gemfile with this line: +1. Add this extension to your Gemfile with this line: #### Spree >= 3.1 ```ruby - - gem 'globalize', github: 'globalize/globalize' - gem 'spree_i18n', github: 'spree-contrib/spree_i18n' - gem 'spree_globalize', github: 'spree-contrib/spree_globalize', branch: 'master' gem 'spree_static_content', github: 'spree-contrib/spree_static_content' ``` diff --git a/app/controllers/spree/static_content_controller.rb b/app/controllers/spree/static_content_controller.rb index 7b3bee63..0fe634ba 100644 --- a/app/controllers/spree/static_content_controller.rb +++ b/app/controllers/spree/static_content_controller.rb @@ -6,7 +6,7 @@ class StaticContentController < StoreController layout :determine_layout def show - @page = Spree::Page.joins(:translations).by_store(current_store).visible.find_by!(slug: request.path) + @page = Spree::StaticPage.finder_scope.by_store(current_store).find_by!(slug: request.path) end private diff --git a/app/models/spree/page.rb b/app/models/spree/page.rb index 5f7b7d79..976cf0c1 100644 --- a/app/models/spree/page.rb +++ b/app/models/spree/page.rb @@ -18,10 +18,12 @@ class Spree::Page < ActiveRecord::Base before_save :update_positions_and_slug - translates :title, :body, :slug, :layout, :foreign_link, :meta_keywords, :meta_title, :meta_description, - fallbacks_for_empty_translations: true + if defined?(SpreeGlobalize) + translates :title, :body, :slug, :layout, :foreign_link, :meta_keywords, :meta_title, :meta_description, + fallbacks_for_empty_translations: true - include SpreeGlobalize::Translatable + include SpreeGlobalize::Translatable + end def initialize(*args) super(*args) diff --git a/app/views/spree/admin/pages/index.html.erb b/app/views/spree/admin/pages/index.html.erb index 35ae5082..30da5638 100644 --- a/app/views/spree/admin/pages/index.html.erb +++ b/app/views/spree/admin/pages/index.html.erb @@ -30,7 +30,9 @@ <%= content_tag(:i, '', class: 'icon icon-ok') if page.visible %> <%= link_to_edit page, no_text: true %> - <%= link_to '', spree.admin_translations_path('page', page.id), class: 'btn btn-primary btn-sm icon icon-translate with-tip', data: { 'original-title' => Spree.t(:'i18n.translations') } %> + <% if defined?(SpreeGlobalize) %> + <%= link_to '', spree.admin_translations_path('page', page.id), class: 'btn btn-primary btn-sm icon icon-translate with-tip', data: { 'original-title' => Spree.t(:'i18n.translations') } %> + <% end %> <%= link_to_delete page, no_text: true %> diff --git a/db/migrate/20170827000001_add_translation_to_spree_pages.rb b/db/migrate/20170827000001_add_translation_to_spree_pages.rb index 121136be..bdce140e 100644 --- a/db/migrate/20170827000001_add_translation_to_spree_pages.rb +++ b/db/migrate/20170827000001_add_translation_to_spree_pages.rb @@ -1,10 +1,14 @@ class AddTranslationToSpreePages < SpreeExtension::Migration[4.2] def up params = { title: :string, body: :text, slug: :string, foreign_link: :string, meta_keywords: :string, meta_title: :string, meta_description: :string } - Spree::Page.create_translation_table!(params, { migrate_data: true }) + if defined?(SpreeGlobalize) + Spree::Page.create_translation_table!(params, { migrate_data: true }) + end end def down - Spree::Page.drop_translation_table! migrate_data: true + if defined?(SpreeGlobalize) + Spree::Page.drop_translation_table! migrate_data: true + end end end diff --git a/db/migrate/20170827000002_add_layout_to_translatable_fields.rb b/db/migrate/20170827000002_add_layout_to_translatable_fields.rb index d72e1a52..958ea50f 100644 --- a/db/migrate/20170827000002_add_layout_to_translatable_fields.rb +++ b/db/migrate/20170827000002_add_layout_to_translatable_fields.rb @@ -1,9 +1,13 @@ class AddLayoutToTranslatableFields < SpreeExtension::Migration[4.2] def up - Spree::Page.add_translation_fields! layout: :string + if defined?(SpreeGlobalize) + Spree::Page.add_translation_fields! layout: :string + end end def down - remove_column :spree_page_translations, :layout + if defined?(SpreeGlobalize) + remove_column :spree_page_translations, :layout + end end end diff --git a/gemfiles/spree_3_2.gemfile b/gemfiles/spree_3_2.gemfile index ac8bea67..d9bf3b7a 100644 --- a/gemfiles/spree_3_2.gemfile +++ b/gemfiles/spree_3_2.gemfile @@ -4,8 +4,5 @@ source "https://rubygems.org/" gem "rails-controller-testing" gem "spree", "~> 3.2.0" -gem "globalize", "~> 5.1" -gem "spree_i18n", github: "spree-contrib/spree_i18n", branch: "master" -gem "spree_globalize", github: "spree-contrib/spree_globalize", branch: "master" gemspec path: "../" diff --git a/gemfiles/spree_3_3.gemfile b/gemfiles/spree_3_3.gemfile index 1065ca97..185d72b4 100644 --- a/gemfiles/spree_3_3.gemfile +++ b/gemfiles/spree_3_3.gemfile @@ -4,8 +4,5 @@ source "https://rubygems.org/" gem "rails-controller-testing" gem "spree", "~> 3.3.0" -gem "globalize", "~> 5.1" -gem "spree_i18n", github: "spree-contrib/spree_i18n", branch: "master" -gem "spree_globalize", github: "spree-contrib/spree_globalize", branch: "master" gemspec path: "../" diff --git a/gemfiles/spree_3_4.gemfile b/gemfiles/spree_3_4.gemfile index df7df6e3..294d6ee8 100644 --- a/gemfiles/spree_3_4.gemfile +++ b/gemfiles/spree_3_4.gemfile @@ -4,8 +4,5 @@ source "https://rubygems.org/" gem "rails-controller-testing" gem "spree", "~> 3.4.0" -gem "globalize", "~> 5.1" -gem "spree_i18n", github: "spree-contrib/spree_i18n", branch: "master" -gem "spree_globalize", github: "spree-contrib/spree_globalize", branch: "master" gemspec path: "../" diff --git a/gemfiles/spree_master.gemfile b/gemfiles/spree_master.gemfile index 07e1a274..09a08116 100644 --- a/gemfiles/spree_master.gemfile +++ b/gemfiles/spree_master.gemfile @@ -4,8 +4,5 @@ source "https://rubygems.org/" gem "rails-controller-testing" gem "spree", github: "spree/spree", branch: "master" -gem "globalize", "~> 5.1" -gem "spree_i18n", github: "spree-contrib/spree_i18n", branch: "master" -gem "spree_globalize", github: "spree-contrib/spree_globalize", branch: "master" gemspec path: "../" diff --git a/lib/spree_static_content.rb b/lib/spree_static_content.rb index fb89fd22..b8b28094 100644 --- a/lib/spree_static_content.rb +++ b/lib/spree_static_content.rb @@ -18,7 +18,15 @@ module Spree class StaticPage def self.matches?(request) return false if request.path =~ %r{\A\/+(admin|account|cart|checkout|content|login|pg\/|orders|products|s\/|session|signup|shipments|states|t\/|tax_categories|user)+} - !Spree::Page.joins(:translations).visible.find_by(slug: request.path).nil? + !self.finder_scope.find_by(slug: request.path).nil? + end + + protected + + def self.finder_scope + scope = Spree::Page.visible + scope = scope.joins(:translations) if defined?(SpreeGlobalize) + scope end end end