[Git][noosfero/noosfero][master] 2 commits: Use session theme in current_theme

Leandro Nunes gitlab at mg.gitlab.com
Thu Nov 3 11:43:37 BRST 2016


Leandro Nunes pushed to branch master at Noosfero / noosfero


Commits:
00c502c3 by Victor Costa at 2016-10-26T15:43:30-03:00
Use session theme in current_theme

Signed-off-by: Evandro Jr <evandrojr at gmail.com>

- - - - -
6e225ea0 by Leandro Nunes at 2016-11-03T13:43:26+00:00
Merge branch 'current-theme' into 'master'

Use session theme in current_theme

Signed-off-by: Evandro Jr <evandrojr at gmail.com>

See merge request !1035
- - - - -


2 changed files:

- app/helpers/theme_loader_helper.rb
- test/unit/theme_loader_helper_test.rb


Changes:

=====================================
app/helpers/theme_loader_helper.rb
=====================================
--- a/app/helpers/theme_loader_helper.rb
+++ b/app/helpers/theme_loader_helper.rb
@@ -2,32 +2,31 @@ module ThemeLoaderHelper
   def current_theme
     @current_theme ||=
       begin
-        if session[:user_theme]
-          session[:user_theme]
+        return session[:theme] if session[:theme]
+        return session[:user_theme] if session[:user_theme]
+
+        # utility for developers: set the theme to 'random' in development mode and
+        # you will get a different theme every request. This is interesting for
+        # testing
+        if Rails.env.development? && environment.theme == 'random'
+          @random_theme ||= Dir.glob('public/designs/themes/*').map { |f| File.basename(f) }.rand
+          @random_theme
+        elsif Rails.env.development? && respond_to?(:params) && params[:user_theme] && File.exists?(Rails.root.join('public/designs/themes', params[:user_theme]))
+          params[:user_theme]
         else
-          # utility for developers: set the theme to 'random' in development mode and
-          # you will get a different theme every request. This is interesting for
-          # testing
-          if Rails.env.development? && environment.theme == 'random'
-            @random_theme ||= Dir.glob('public/designs/themes/*').map { |f| File.basename(f) }.rand
-            @random_theme
-          elsif Rails.env.development? && respond_to?(:params) && params[:user_theme] && File.exists?(Rails.root.join('public/designs/themes', params[:user_theme]))
-            params[:user_theme]
+          if profile && !profile.theme.nil?
+            profile.theme
+          elsif environment
+            environment.theme
           else
-            if profile && !profile.theme.nil?
-              profile.theme
-            elsif environment
-              environment.theme
-            else
-              if logger
-                logger.warn("No environment found. This is weird.")
-                logger.warn("Request environment: %s" % request.env.inspect)
-                logger.warn("Request parameters: %s" % params.inspect)
-              end
-
-              # could not determine the theme, so return the default one
-              'default'
+            if logger
+              logger.warn("No environment found. This is weird.")
+              logger.warn("Request environment: %s" % request.env.inspect)
+              logger.warn("Request parameters: %s" % params.inspect)
             end
+
+            # could not determine the theme, so return the default one
+            'default'
           end
         end
       end


=====================================
test/unit/theme_loader_helper_test.rb
=====================================
--- a/test/unit/theme_loader_helper_test.rb
+++ b/test/unit/theme_loader_helper_test.rb
@@ -34,6 +34,11 @@ class ThemeLoaderHelperTest < ActionView::TestCase
     assert_equal '/user_themes/theme-under-test', theme_path
   end
 
+  should 'point to session theme path when testing theme' do
+    stubs(:session).returns({:theme => 'theme-under-test'})
+    assert_equal '/designs/themes/theme-under-test', theme_path
+  end
+
   should 'point to session theme is defined' do
     session = mock
     stubs(:session).returns(session)



View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/e7204f479362c2ebebedc493787bda8826ff5b9a...6e225ea059b2c993164c5969ae3e177b9ec1464a
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20161103/872df6fc/attachment-0001.html>


More information about the Noosfero-dev mailing list