From 2dbef5aab5b89253b4f8766cd8913bcdc93d424b Mon Sep 17 00:00:00 2001 From: Hagen Schink Date: Wed, 30 Jul 2014 13:24:21 +0200 Subject: [PATCH] Activate backlogs attributes in WP overview --- config/locales/js-de.yml | 43 +++++++++++++++++ config/locales/js-en.yml | 43 +++++++++++++++++ lib/open_project/costs/engine.rb | 1 + .../work_packages_overview_attributes.rb | 47 +++++++++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 config/locales/js-de.yml create mode 100644 config/locales/js-en.yml create mode 100644 lib/open_project/costs/hooks/work_packages_overview_attributes.rb diff --git a/config/locales/js-de.yml b/config/locales/js-de.yml new file mode 100644 index 0000000000..1e35610608 --- /dev/null +++ b/config/locales/js-de.yml @@ -0,0 +1,43 @@ +#-- copyright +# OpenProject Backlogs Plugin +# +# Copyright (C)2013-2014 the OpenProject Foundation (OPF) +# Copyright (C)2011 Stephan Eckardt, Tim Felgentreff, Marnen Laibow-Koser, Sandro Munda +# Copyright (C)2010-2011 friflaj +# Copyright (C)2010 Maxime Guilbot, Andrew Vit, Joakim Kolsjö, ibussieres, Daniel Passos, Jason Vasquez, jpic, Emiliano Heyns +# Copyright (C)2009-2010 Mark Maglana +# Copyright (C)2009 Joe Heck, Nate Lowrie +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License version 3. +# +# OpenProject Backlogs is a derivative work based on ChiliProject Backlogs. +# The copyright follows: +# Copyright (C) 2010-2011 - Emiliano Heyns, Mark Maglana, friflaj +# Copyright (C) 2011 - Jens Ulferts, Gregor Schmidt - Finn GmbH - Berlin, Germany +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# 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. +# +# See doc/COPYRIGHT.rdoc for more details. +#++ + +de: + js: + work_packages: + properties: + costObject: "Budget" + spentHours: "Aufgewendete Zeit" + overallCosts: "Gesamtkosten" + spentUnits: "Gebuchte Einheiten" diff --git a/config/locales/js-en.yml b/config/locales/js-en.yml new file mode 100644 index 0000000000..fa7fb92269 --- /dev/null +++ b/config/locales/js-en.yml @@ -0,0 +1,43 @@ +#-- copyright +# OpenProject Backlogs Plugin +# +# Copyright (C)2013-2014 the OpenProject Foundation (OPF) +# Copyright (C)2011 Stephan Eckardt, Tim Felgentreff, Marnen Laibow-Koser, Sandro Munda +# Copyright (C)2010-2011 friflaj +# Copyright (C)2010 Maxime Guilbot, Andrew Vit, Joakim Kolsjö, ibussieres, Daniel Passos, Jason Vasquez, jpic, Emiliano Heyns +# Copyright (C)2009-2010 Mark Maglana +# Copyright (C)2009 Joe Heck, Nate Lowrie +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License version 3. +# +# OpenProject Backlogs is a derivative work based on ChiliProject Backlogs. +# The copyright follows: +# Copyright (C) 2010-2011 - Emiliano Heyns, Mark Maglana, friflaj +# Copyright (C) 2011 - Jens Ulferts, Gregor Schmidt - Finn GmbH - Berlin, Germany +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# 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. +# +# See doc/COPYRIGHT.rdoc for more details. +#++ + +en: + js: + work_packages: + properties: + costObject: "Budget" + spentHours: "Spent time" + overallCosts: "Overall costs" + spentUnits: "Spent units" diff --git a/lib/open_project/costs/engine.rb b/lib/open_project/costs/engine.rb index a02c3d9526..eef92451cb 100644 --- a/lib/open_project/costs/engine.rb +++ b/lib/open_project/costs/engine.rb @@ -112,6 +112,7 @@ module OpenProject::Costs require 'open_project/costs/hooks/project_hook' require 'open_project/costs/hooks/work_package_action_menu' require 'open_project/costs/hooks/work_packages_show_attributes' + require 'open_project/costs/hooks/work_packages_overview_attributes' end initializer 'costs.register_observers' do |app| diff --git a/lib/open_project/costs/hooks/work_packages_overview_attributes.rb b/lib/open_project/costs/hooks/work_packages_overview_attributes.rb new file mode 100644 index 0000000000..a6af63a9e6 --- /dev/null +++ b/lib/open_project/costs/hooks/work_packages_overview_attributes.rb @@ -0,0 +1,47 @@ +#-- copyright +# OpenProject Costs Plugin +# +# Copyright (C) 2009 - 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. +#++ + +module OpenProject::Costs::Hooks + class WorkPackagesOverviewHook < Redmine::Hook::ViewListener + + def work_packages_overview_attributes(context = {}) + project = context[:project] + attributes = context[:attributes] + + return unless project && project.module_enabled?(:costs_module) + + attributes.reject!{ |a| a.attribute == :spentTime } + + attributes << :costObject + attributes << :spentHours if user_allowed_to?(project, :view_time_entries, :view_own_time_entries) + attributes << :overallCosts + attributes << :spentUnits if user_allowed_to?(project, :view_cost_entries, :view_own_cost_entries) + + attributes + end + + private + + def user_allowed_to?(project, *privileges) + privileges.inject(false) do |result, privilege| + result || User.current.allowed_to?(privilege, project) + end + end + end +end