Patch workload plugin to work properly with zeitwerk.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2023-03-24 22:00:27 +01:00
parent 7b8ed82d37
commit 4e6db7a7fd
2 changed files with 248 additions and 5 deletions

View File

@@ -17,6 +17,11 @@ RUN set -eux; \
# Remove default cron mess
rm -f /etc/cron.daily/*; \
rm -f /etc/cron.d/*; \
# Apply patches
git apply project_identifier.patch; \
git apply workload_module.patch; \
mv plugins/redmine_workload/lib/redmine_workload/hooks/plugin.rb plugins/redmine_workload/lib/redmine_workload/hooks/after_plugins_loaded_hook.rb; \
rm *.patch; \
# Install plugin dependencies
bundle check || bundle install; \
# For hourglass plugin
@@ -24,21 +29,16 @@ RUN set -eux; \
echo "production:" >> ./config/database.yml; \
echo " adapter: mysql2" >> ./config/database.yml; \
mv plugins/000_redmine_x_ux_upgrade/init.rb plugins/000_redmine_x_ux_upgrade/init.rb.orig; \
mv plugins/redmine_workload /tmp/; \
# WARNING: the next command makes the image larger by almost 100 MB
echo Hourglass::Assets.compile|rails console; \
rm ./config/database.yml; \
mv plugins/000_redmine_x_ux_upgrade/init.rb.orig plugins/000_redmine_x_ux_upgrade/init.rb; \
mv /tmp/redmine_workload plugins/; \
# end hourglass plugin
chmod +x /pre-entrypoint.sh; \
# setting ENTRYPOINT destroys CMD so replace the entrypoint script and call it later
# (see bottom note in https://docs.docker.com/engine/reference/builder/#entrypoint)
mv /docker-entrypoint.sh /orig-entrypoint.sh; \
mv /pre-entrypoint.sh /docker-entrypoint.sh; \
# Apply patches
git apply project_identifier.patch; \
rm *.patch; \
# Clean-up
apt-mark auto '.*' > /dev/null; \
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \

View File

@@ -0,0 +1,243 @@
--- a/plugins/redmine_workload/lib/redmine_workload.rb
+++ b/plugins/redmine_workload/lib/redmine_workload.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require_relative 'redmine_workload/extensions/user_patch'
-require_relative 'redmine_workload/hooks/plugin'
+require_relative 'redmine_workload/hooks/after_plugins_loaded_hook'
require_relative 'redmine_workload/group_workload_preparer'
require_relative 'redmine_workload/user_workload_preparer'
require_relative 'redmine_workload/wl_calculation_restrictions'
--- a/plugins/redmine_workload/lib/redmine_workload/group_workload_preparer.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/group_workload_preparer.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
require 'forwardable'
class GroupWorkloadPreparer
@@ -44,3 +46,5 @@ class GroupWorkloadPreparer
attr_writer :data, :params
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/user_workload_preparer.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/user_workload_preparer.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
require 'forwardable'
class UserWorkloadPreparer
@@ -36,3 +38,5 @@ class UserWorkloadPreparer
attr_writer :data, :params
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/wl_calculation_restrictions.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/wl_calculation_restrictions.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
module WlCalculationRestrictions
def consider_parent_issues?
settings['workload_of_parent_issues'].present?
@@ -9,3 +11,5 @@ module WlCalculationRestrictions
Setting.plugin_redmine_workload
end
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/wl_csv_exporter.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/wl_csv_exporter.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
require 'forwardable'
class WlCsvExporter
@@ -106,3 +108,5 @@ class WlCsvExporter
data.time_span.map { |date| format_date(date) }
end
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/wl_date_tools.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/wl_date_tools.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
require_relative 'wl_user_data_defaults'
class WlDateTools
@@ -85,3 +87,5 @@ class WlDateTools
!WlUserVacation.where('user_id = ? AND date_from <= ? AND date_to >= ?', assignee.id, day, day).empty?
end
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/wl_issue_query.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/wl_issue_query.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
module WlIssueQuery
include WlCalculationRestrictions
##
@@ -38,3 +40,5 @@ module WlIssueQuery
issues.split.flatten
end
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/wl_issue_state.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/wl_issue_state.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
module WlIssueState
##
# Redefines the overdue state of an issue. Instead of comparing issue.due_date
@@ -10,3 +12,5 @@ module WlIssueState
issue.due_date.present? && (issue.due_date < date) && !issue.closed?
end
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/wl_user_data_defaults.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/wl_user_data_defaults.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
##
# Provides the default values for WlUserData object
#
@@ -14,3 +16,5 @@ module WlUserDataDefaults
Setting['plugin_redmine_workload']
end
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/wl_user_data_finder.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/wl_user_data_finder.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+module RedmineWorkload
+
##
# Finder method for WLUserData
#
@@ -14,3 +16,5 @@ module WlUserDataFinder
@user_workload_data
end
end
+
+end
\ No newline at end of file
--- a/plugins/redmine_workload/lib/redmine_workload/app/controllers/wl_national_holiday_controller.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/app/controllers/wl_national_holiday_controller.rb
@@ -3,7 +3,7 @@
require 'json'
class WlNationalHolidayController < ApplicationController
- include WlUserDataFinder
+ include RedmineWorkload::WlUserDataFinder
before_action :authorize_global, only: %i[create update destroy]
before_action :find_user_workload_data
--- a/plugins/redmine_workload/lib/redmine_workload/app/controllers/wl_user_datas_controller.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/app/controllers/wl_user_datas_controller.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class WlUserDatasController < ApplicationController
- include WlUserDataFinder
+ include RedmineWorkload::WlUserDataFinder
helper :workloads
helper :wl_user_datas
--- a/plugins/redmine_workload/lib/redmine_workload/app/controllers/wl_user_vacations_controller.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/app/controllers/wl_user_vacations_controller.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class WlUserVacationsController < ApplicationController
- include WlUserDataFinder
+ include RedmineWorkload::WlUserDataFinder
helper :workloads
--- a/plugins/redmine_workload/lib/redmine_workload/app/controllers/workloads_controller.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/app/controllers/workloads_controller.rb
@@ -11,7 +11,7 @@ class WorkloadsController < ApplicationController
helper :workloads
include QueriesHelper
- include WlUserDataFinder
+ include RedmineWorkload::WlUserDataFinder
include WorkloadsHelper
before_action :authorize_global, only: %i[index]
--- a/plugins/redmine_workload/lib/redmine_workload/app/models/user_workload.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/app/models/user_workload.rb
@@ -6,8 +6,8 @@
#
class UserWorkload
include Redmine::I18n
- include WlIssueQuery
- include WlIssueState
+ include RedmineWorkload::WlIssueQuery
+ include RedmineWorkload::WlIssueState
attr_reader :assignees, :issues, :time_span, :today
--- a/plugins/redmine_workload/lib/redmine_workload/app/models/wl_default_user_data.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/app/models/wl_default_user_data.rb
@@ -4,7 +4,7 @@
# Holds default user related data for workload calculation.
#
class WlDefaultUserData
- include WlUserDataDefaults
+ include RedmineWorkload::WlUserDataDefaults
def threshold_lowload_min
default_attributes[:threshold_lowload_min].to_f
--- a/plugins/redmine_workload/lib/redmine_workload/app/models/wl_user_data.rb
+++ b/plugins/redmine_workload/lib/redmine_workload/app/models/wl_user_data.rb
@@ -4,7 +4,7 @@
# Holds user related data for workload calculation.
#
class WlUserData < ActiveRecord::Base
- include WlUserDataDefaults
+ include RedmineWorkload::WlUserDataDefaults
belongs_to :user, inverse_of: :wl_user_data, optional: true
self.table_name = 'wl_user_datas'