Navigation Menu

Skip to content

Commit

Permalink
Rename plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
lexa62 committed Sep 21, 2018
1 parent 131c1bc commit 42696dd
Show file tree
Hide file tree
Showing 26 changed files with 89 additions and 92 deletions.
2 changes: 1 addition & 1 deletion README.rdoc
@@ -1,3 +1,3 @@
= redmine_issue_progress
= done_ratio_via_time

Description goes here
@@ -1,22 +1,22 @@
class IssueProgressSettingsController < ApplicationController
class DoneRatioViaTimeSettingsController < ApplicationController
before_action :require_admin

def edit
@settings = IssueProgressSetup.settings[:global]
@settings = DoneRatioSetup.settings[:global]
end

def update
new_done_ratio_calculation_type =
settings_params[:done_ratio_calculation_type]
if new_done_ratio_calculation_type.present? &&
IssueProgressSetup.settings[:global][:done_ratio_calculation_type] !=
DoneRatioSetup.settings[:global][:done_ratio_calculation_type] !=
new_done_ratio_calculation_type
is_recalculation_required = true
end
IssueProgressSetup.setting[:global] = settings_params
DoneRatioSetup.setting[:global] = settings_params
flash[:notice] = l(:notice_successful_update)
if is_recalculation_required
IssueProgressSetup.setting[:job_id] =
DoneRatioSetup.setting[:job_id] =
IssueDoneRatioRecalculationWorker.perform_async
end
redirect_to action: :edit
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/job_statuses_controller.rb
Expand Up @@ -2,7 +2,7 @@ class JobStatusesController < ApplicationController
before_action :authorize_global

def index
last_job_id = IssueProgressSetup.settings[:job_id]
last_job_id = DoneRatioSetup.settings[:job_id]

result =
if last_job_id.present?
Expand All @@ -16,7 +16,7 @@ def index
:failed
end
end
time = IssueProgressSetup.settings[:job_successful_complete_at]
time = DoneRatioSetup.settings[:job_successful_complete_at]
render json: { status: result,
job_successful_complete_at: format_time(time) }
end
Expand Down
Expand Up @@ -11,10 +11,10 @@
<span class="check_box_group">
<%= f.collection_radio_buttons :done_ratio_calculation_type, Issue::DONE_RATIO_CALCULATION_TYPES.map { |num, label| [num, l(label)] }, :first, :second do |b| %>
<%
default_mode = IssueProgressSetup.default_calculation_type(issue.project)
default_mode = DoneRatioSetup.default_calculation_type(issue.project)

is_disabled =
if IssueProgressSetup.settings[:global][:trackers_with_disabled_manual_mode].to_a.include?(issue.tracker_id.to_s)
if DoneRatioSetup.settings[:global][:trackers_with_disabled_manual_mode].to_a.include?(issue.tracker_id.to_s)
if b.object.first == Issue::CALCULATION_TYPE_DEFAULT
true if default_mode == Issue::CALCULATION_TYPE_MANUAL
elsif b.object.first == Issue::CALCULATION_TYPE_MANUAL
Expand Down
Expand Up @@ -4,7 +4,7 @@
<span class="check_box_group">
<%= form.collection_radio_buttons :default_done_ratio_calculation_type, { '' => :label_global_value }.merge(Issue::DONE_RATIO_CALCULATION_TYPES.except(Issue::CALCULATION_TYPE_DEFAULT)).map { |num, label| [num, l(label)] }, :first, :second do |b| %>
<%
label_params = if IssueProgressSetup.default_calculation_type(nil).eql?(b.object.first)
label_params = if DoneRatioSetup.default_calculation_type(nil).eql?(b.object.first)
{ style: 'font-weight:bold;' }
else
{}
Expand Down
@@ -1,6 +1,6 @@
<h2><%=l(:label_settings)%></h2>
<div class='box tabular settings'>
<%= form_tag(controller: :issue_progress_settings, action: :update) do %>
<%= form_tag(controller: :done_ratio_via_time_settings, action: :update) do %>
<p>
<label><%=l(:default_done_ratio_calculation_type)%></label>
<span class="check_box_group">
Expand Down
3 changes: 1 addition & 2 deletions config/locales/en.yml
Expand Up @@ -11,9 +11,8 @@ en:
calculation_type_linked: linked
calculation_type_self_and_descendants: self and descendants
calculation_type_full: all
label_issue_progress_section: Done ratio calculating
label_done_ratio_via_time_section: Done ratio calculating
project_module_issue_progress: Done ratio calculating
permission_view_done_ratio_calculation_type: View done ratio calculation type
permission_edit_done_ratio_calculation_type: Edit done ratio calculation type
label_mode_auto: auto
label_mode_manual: manual
Expand Down
3 changes: 1 addition & 2 deletions config/locales/ru.yml
Expand Up @@ -11,9 +11,8 @@ ru:
calculation_type_linked: связанные
calculation_type_self_and_descendants: данная + дочерние
calculation_type_full: все
label_issue_progress_section: Расчёт готовности
label_done_ratio_via_time_section: Расчёт готовности
project_module_issue_progress: Расчёт готовности
permission_view_done_ratio_calculation_type: Отображение метода расчёта готовности
permission_edit_done_ratio_calculation_type: Редактирование метода расчёта готовности
label_mode_auto: авто
label_mode_manual: вручную
Expand Down
4 changes: 2 additions & 2 deletions config/routes.rb
@@ -1,3 +1,3 @@
get 'issue_progress_settings/edit', to: 'issue_progress_settings#edit'
post 'issue_progress_settings/update', to: 'issue_progress_settings#update'
get 'done_ratio_via_time_settings/edit', to: 'done_ratio_via_time_settings#edit'
post 'done_ratio_via_time_settings/update', to: 'done_ratio_via_time_settings#update'
get 'job_statuses', to: 'job_statuses#index'
17 changes: 8 additions & 9 deletions init.rb
@@ -1,16 +1,16 @@
require 'redmine_issue_progress'
require 'done_ratio_via_time'

Redmine::Plugin.register :redmine_issue_progress do
name 'Redmine Issue Progress plugin'
Redmine::Plugin.register :done_ratio_via_time do
name 'Done ratio via time plugin'
author '//twinslash'
description 'This is a plugin for Redmine'
version '1.0.0'
url 'http://example.com/path/to/plugin'
author_url 'http://example.com/about'
version '2.0.0'
url 'https://github.com/tfdevel/done_ratio_via_time'
author_url 'https://twinslash.com'

menu :admin_menu, :issue_progress, { controller: 'issue_progress_settings',
menu :admin_menu, :issue_progress, { controller: 'done_ratio_via_time_settings',
action: 'edit' },
caption: :label_issue_progress_section,
caption: :label_done_ratio_via_time_section,
html: { class: 'icon icon-package' }
settings default: { global: { done_ratio_calculation_type: '1' },
job_id: nil,
Expand All @@ -19,7 +19,6 @@
trackers_with_disabled_manual_mode: [] }

project_module :issue_progress do
permission :view_done_ratio_calculation_type, {}
permission :edit_done_ratio_calculation_type, job_statuses: [:index]
end
end
6 changes: 3 additions & 3 deletions lib/issue_progress_setup.rb → lib/done_ratio_setup.rb
@@ -1,6 +1,6 @@
require 'singleton'

module IssueProgressSetup
module DoneRatioSetup
class SettingsProxy
include Singleton

Expand All @@ -14,7 +14,7 @@ def []=(key, value)
end
settings = safe_load
settings[key] = value
Setting.plugin_redmine_issue_progress = settings
Setting.plugin_done_ratio_via_time = settings
if Redmine::Database.mysql?
ActiveRecord::Base.connection.execute('UNLOCK TABLES')
end
Expand All @@ -33,7 +33,7 @@ def safe_load
# At the first migration, the settings table will not exist
return {} unless Setting.table_exists?

settings = Setting.plugin_redmine_issue_progress.dup
settings = Setting.plugin_done_ratio_via_time.dup
if settings.is_a?(String)
Rails.logger.error 'Unable to load settings'
return {}
Expand Down
25 changes: 25 additions & 0 deletions lib/done_ratio_via_time.rb
@@ -0,0 +1,25 @@
require 'sidekiq_initialization'

# must be loaded before IssueQuery
require 'done_ratio_via_time/patches/issue_relation_patch'

require 'done_ratio_setup'
require 'calculate_done_ratio'
require 'update_parents_done_ratio'

require 'workers/issue_done_ratio_recalculation_worker'

Rails.configuration.to_prepare do
# patches
require 'done_ratio_via_time/patches/issue_patch'
require 'done_ratio_via_time/patches/time_entry_patch'
require 'done_ratio_via_time/patches/issues_helper_patch'
require 'done_ratio_via_time/patches/issue_relations_controller_patch'
require 'done_ratio_via_time/patches/issue_query_patch'
require 'done_ratio_via_time/patches/project_patch'

# hooks
require 'done_ratio_via_time/done_ratio_via_time_hooks/views_issues_hook'
require 'done_ratio_via_time/done_ratio_via_time_hooks/view_projects_hook'
require 'done_ratio_via_time/done_ratio_via_time_hooks/view_layouts_hook'
end
@@ -1,8 +1,8 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Hooks
class ViewsLayoutsHook < Redmine::Hook::ViewListener
def view_layouts_base_html_head(context = {})
stylesheet_link_tag(:issue_progress, plugin: 'redmine_issue_progress')
stylesheet_link_tag(:issue_progress, plugin: 'done_ratio_via_time')
end
end
end
Expand Down
@@ -1,9 +1,9 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Hooks
# default done ratio calculation type in project settings
class ViewsProjectsHook < Redmine::Hook::ViewListener
render_on :view_projects_form,
partial: 'issue_progress_hooks/view_projects_form'
partial: 'done_ratio_via_time_hooks/view_projects_form'
end
end
end
@@ -1,13 +1,13 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Hooks
# done_ratio as numeric field, done_ratio_calculation_type field
class ViewsIssuesHook < Redmine::Hook::ViewListener
render_on :view_issues_form_details_bottom,
partial: 'issue_progress_hooks/view_issues_form_details_bottom'
partial: 'done_ratio_via_time_hooks/view_issues_form_details_bottom'
render_on :view_issues_context_menu_start,
partial: 'issue_progress_hooks/view_issues_context_menu_start'
partial: 'done_ratio_via_time_hooks/view_issues_context_menu_start'
render_on :view_issues_bulk_edit_details_bottom,
partial: 'issue_progress_hooks/view_issues_bulk_edit_details_bottom'
partial: 'done_ratio_via_time_hooks/view_issues_bulk_edit_details_bottom'
end
end
end
@@ -1,4 +1,4 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Patches
# Types, patches for done ratio calculations
module IssuePatch
Expand Down Expand Up @@ -59,7 +59,7 @@ def use_field_for_done_ratio_with_hide_selector_field?
def done_ratio_calculation_type_transformed(issue)
if issue.done_ratio_calculation_type ==
Issue::CALCULATION_TYPE_DEFAULT
IssueProgressSetup.default_calculation_type(issue.project)
DoneRatioSetup.default_calculation_type(issue.project)
else
issue.done_ratio_calculation_type
end
Expand All @@ -73,7 +73,7 @@ def done_ratio_calculation_type_name(mode)
module InstanceMethods
def hours_overrun
return unless persisted? &&
IssueProgressSetup.settings[:global][:enable_time_overrun] == 'true' &&
DoneRatioSetup.settings[:global][:enable_time_overrun] == 'true' &&
time_entries.all?(&:persisted?)

if estimated_hours.present?
Expand All @@ -97,7 +97,7 @@ def safe_attributes_with_done_ratio_check=(attrs, user = User.current)
new_done_ratio_calculation_type.to_i
res =
if new_done_ratio_calculation_type == Issue::CALCULATION_TYPE_DEFAULT
IssueProgressSetup.default_calculation_type(project)
DoneRatioSetup.default_calculation_type(project)
else
new_done_ratio_calculation_type
end
Expand Down Expand Up @@ -142,7 +142,7 @@ def set_calculated_done_ratio
def manual_calculation_type_allowed?
return unless Issue.done_ratio_calculation_type_transformed(self) ==
Issue::CALCULATION_TYPE_MANUAL && tracker_id
if IssueProgressSetup.settings[:global][:trackers_with_disabled_manual_mode]
if DoneRatioSetup.settings[:global][:trackers_with_disabled_manual_mode]
.to_a
.include?(tracker_id.to_s)
errors.add :base, l(:error_manual_mode_is_restricted)
Expand All @@ -154,6 +154,6 @@ def manual_calculation_type_allowed?
end

unless Issue.included_modules
.include?(RedmineIssueProgress::Patches::IssuePatch)
Issue.send(:include, RedmineIssueProgress::Patches::IssuePatch)
.include?(DoneRatioViaTime::Patches::IssuePatch)
Issue.send(:include, DoneRatioViaTime::Patches::IssuePatch)
end
@@ -1,4 +1,4 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Patches
# calculation type filter for issues
module IssueQueryPatch
Expand Down Expand Up @@ -29,7 +29,7 @@ def initialize_available_filters_with_calculation_type
def sql_for_calculation_type_field(_field, operator, value)
manual_modes = [Issue::CALCULATION_TYPE_MANUAL]
if Issue::CALCULATION_TYPE_MANUAL ==
IssueProgressSetup.default_calculation_type(project)
DoneRatioSetup.default_calculation_type(project)
manual_modes << Issue::CALCULATION_TYPE_DEFAULT
end

Expand Down Expand Up @@ -85,6 +85,6 @@ def sql_for_time_overrun_field(_field, operator, value)
end

unless IssueQuery.included_modules
.include?(RedmineIssueProgress::Patches::IssueQueryPatch)
IssueQuery.send(:include, RedmineIssueProgress::Patches::IssueQueryPatch)
.include?(DoneRatioViaTime::Patches::IssueQueryPatch)
IssueQuery.send(:include, DoneRatioViaTime::Patches::IssueQueryPatch)
end
@@ -1,4 +1,4 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Patches
# Add new issue relation type
module IssueRelationPatch
Expand Down Expand Up @@ -55,7 +55,7 @@ def update_issue_done_ratio
end

unless IssueRelation.included_modules
.include?(RedmineIssueProgress::Patches::IssueRelationPatch)
.include?(DoneRatioViaTime::Patches::IssueRelationPatch)
IssueRelation.send(:include,
RedmineIssueProgress::Patches::IssueRelationPatch)
DoneRatioViaTime::Patches::IssueRelationPatch)
end
@@ -1,4 +1,4 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Patches
module IssueRelationsControllerPatch
def self.included(base)
Expand All @@ -25,9 +25,9 @@ def find_optional_issue

unless IssueRelationsController
.included_modules
.include?(RedmineIssueProgress::Patches::IssueRelationsControllerPatch)
.include?(DoneRatioViaTime::Patches::IssueRelationsControllerPatch)
IssueRelationsController.send(
:include,
RedmineIssueProgress::Patches::IssueRelationsControllerPatch
DoneRatioViaTime::Patches::IssueRelationsControllerPatch
)
end
@@ -1,4 +1,4 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Patches
# Show calculation mode name in issue history
module IssuesHelperPatch
Expand Down Expand Up @@ -65,6 +65,6 @@ def render_issue_relations_with_custom_delete_link(issue, relations)
end

unless IssuesHelper.included_modules
.include?(RedmineIssueProgress::Patches::IssuesHelperPatch)
IssuesHelper.send(:include, RedmineIssueProgress::Patches::IssuesHelperPatch)
.include?(DoneRatioViaTime::Patches::IssuesHelperPatch)
IssuesHelper.send(:include, DoneRatioViaTime::Patches::IssuesHelperPatch)
end
@@ -1,4 +1,4 @@
module RedmineIssueProgress
module DoneRatioViaTime
module Patches
# default_done_ratio_calculation_type attribute
module ProjectPatch
Expand All @@ -15,13 +15,13 @@ module InstanceMethods
def recalculate_issues_done_ratio
return unless previous_changes.key?(:default_done_ratio_calculation_type)
job_id = IssueDoneRatioRecalculationWorker.perform_async(project_id: id)
IssueProgressSetup.setting[:job_id] = job_id
DoneRatioSetup.setting[:job_id] = job_id
end
end
end
end

unless Project.included_modules
.include?(RedmineIssueProgress::Patches::ProjectPatch)
Project.send(:include, RedmineIssueProgress::Patches::ProjectPatch)
.include?(DoneRatioViaTime::Patches::ProjectPatch)
Project.send(:include, DoneRatioViaTime::Patches::ProjectPatch)
end

0 comments on commit 42696dd

Please sign in to comment.