introducing a setting to disable cf class caching

The setting is not yet used.
pull/6827/head
Jens Ulferts 9 years ago
parent c638dfda0d
commit 11b906dfd7
  1. 5
      lib/open_project/reporting/engine.rb
  2. 31
      lib/open_project/reporting/patches/open_project/configuration_patch.rb
  3. 47
      spec/lib/open_project/configuration_spec.rb

@ -90,6 +90,9 @@ module OpenProject::Reporting
require_dependency 'cost_query/group_by'
end
patches [:CostlogController, :TimelogController, :CustomFieldsController]
patches [:CostlogController,
:TimelogController,
:CustomFieldsController,
:'OpenProject::Configuration']
end
end

@ -0,0 +1,31 @@
#-- copyright
# OpenProject Reporting Plugin
#
# Copyright (C) 2010 - 2014 the OpenProject Foundation (OPF)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#++
require_dependency 'open_project/configuration'
module OpenProject::Reporting::Patches
module OpenProject::ConfigurationPatch
def self.included(base)
base.class_eval do
@defaults['cost_reporting_cache_filter_classes'] = true
end
end
end
end

@ -0,0 +1,47 @@
#-- copyright
# OpenProject Reporting Plugin
#
# Copyright (C) 2010 - 2014 the OpenProject Foundation (OPF)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#++
require 'spec_helper'
describe 'OpenProject::Configuration' do
context '.cost_reporting_cache_filter_classes' do
before do
# This prevents the values from the actual configuration file to influence
# the test outcome.
#
# TODO: I propose to port this over to the core to always prevent this for specs.
OpenProject::Configuration.load(file: 'bogus')
end
after do
# resetting for now to avoid braking specs, who by now rely on having the file read.
OpenProject::Configuration.load
end
it 'is a true by default via the method' do
expect(OpenProject::Configuration.cost_reporting_cache_filter_classes).to be_truthy
end
it 'is true by default via the hash' do
expect(OpenProject::Configuration['cost_reporting_cache_filter_classes']).to be_truthy
end
end
end
Loading…
Cancel
Save