From e5140beb12591eeab47d998b6ce3142db7b78b9d Mon Sep 17 00:00:00 2001 From: Roberto Piccini Date: Thu, 22 Nov 2018 13:04:52 +0100 Subject: [PATCH 1/4] refactoring: make available to public interface the number of days after --- .gitignore | 2 ++ init.rb | 2 +- lib/redmine_default_due_date.rb | 5 ++++- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..430c775 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# ide files +.idea diff --git a/init.rb b/init.rb index 6e47003..bc59f56 100644 --- a/init.rb +++ b/init.rb @@ -4,7 +4,7 @@ name 'Redmine Default Due Date Plugin' author 'basyura' description 'This is a plugin for Redmine' - version '0.0.1' + version '0.0.2' url 'https://github.com/basyura/redmine_default_due_date' author_url 'http://blog.basyura.org/' end diff --git a/lib/redmine_default_due_date.rb b/lib/redmine_default_due_date.rb index 811fee5..8a4965a 100644 --- a/lib/redmine_default_due_date.rb +++ b/lib/redmine_default_due_date.rb @@ -2,8 +2,11 @@ module Redmine module Plugins class DefaultDueDateListener < Redmine::Hook::ViewListener + + NUMBER_DAYS_AFTER = 7 + def view_issues_new_top(context) - context[:issue].due_date ||= Date.today + 7 + context[:issue].due_date ||= Date.today + NUMBER_DAYS_AFTER.days end end end From 834b3256e86c97944462ef07d151eced882774d3 Mon Sep 17 00:00:00 2001 From: Roberto Piccini Date: Mon, 26 Nov 2018 14:37:22 +0100 Subject: [PATCH 2/4] make the number of days configurable --- app/views/settings/_default_due_date.html.erb | 5 +++++ config/locales/en.yml | 5 +++++ init.rb | 5 ++++- lib/redmine_default_due_date.rb | 9 +++++++-- 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 app/views/settings/_default_due_date.html.erb create mode 100644 config/locales/en.yml diff --git a/app/views/settings/_default_due_date.html.erb b/app/views/settings/_default_due_date.html.erb new file mode 100644 index 0000000..a8a7fb6 --- /dev/null +++ b/app/views/settings/_default_due_date.html.erb @@ -0,0 +1,5 @@ +

+ <%= label('settings[default_due_date]', l(:default_due_date, scope: :default_due_date)) %> + <%= text_field_tag('settings[default_due_date]', @settings['default_due_date']) %> + <%= content_tag(:em, l(:default_due_date_info, scope: :default_due_date), class: 'info') %> +

diff --git a/config/locales/en.yml b/config/locales/en.yml new file mode 100644 index 0000000..e901a2f --- /dev/null +++ b/config/locales/en.yml @@ -0,0 +1,5 @@ +# English strings go here for Rails i18n +en: + default_due_date: + default_due_date: 'number of days' + default_due_date_info: "if it's left blank set the due date to such number of days after today" diff --git a/init.rb b/init.rb index bc59f56..ef2dc15 100644 --- a/init.rb +++ b/init.rb @@ -4,7 +4,10 @@ name 'Redmine Default Due Date Plugin' author 'basyura' description 'This is a plugin for Redmine' - version '0.0.2' + version '0.0.3' url 'https://github.com/basyura/redmine_default_due_date' author_url 'http://blog.basyura.org/' + + settings default: { 'default_due_date' => Redmine::Plugins::DefaultDueDateListener::DEFAULT_DUE_DATE }, + partial: 'settings/default_due_date' end diff --git a/lib/redmine_default_due_date.rb b/lib/redmine_default_due_date.rb index 8a4965a..5e9db8d 100644 --- a/lib/redmine_default_due_date.rb +++ b/lib/redmine_default_due_date.rb @@ -3,11 +3,16 @@ module Redmine module Plugins class DefaultDueDateListener < Redmine::Hook::ViewListener - NUMBER_DAYS_AFTER = 7 + DEFAULT_DUE_DATE = 7 def view_issues_new_top(context) - context[:issue].due_date ||= Date.today + NUMBER_DAYS_AFTER.days + context[:issue].due_date ||= default_due_date end + + def self.default_due_date + Date.today + Setting.plugin_redmine_default_due_date['default_due_date'].to_i.days + end + end end end From ef8a12b440f382608be2cfb3297a33df988ab0e8 Mon Sep 17 00:00:00 2001 From: Roberto Piccini Date: Mon, 26 Nov 2018 15:48:34 +0100 Subject: [PATCH 3/4] update README --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 52799ce..6ba9ca6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # redmine default due date -this is redmine plugin set 7 days after to due date. +this redmine plugin sets the due date of the 'new issue' form to N days after today. + +the number of days N is configurable in the plugin's settings page. From 61d3dbf8ef877e02ca64567a2da890264be50f38 Mon Sep 17 00:00:00 2001 From: Roberto Piccini Date: Mon, 26 Nov 2018 16:27:56 +0100 Subject: [PATCH 4/4] bugfix: method's scope --- lib/redmine_default_due_date.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/redmine_default_due_date.rb b/lib/redmine_default_due_date.rb index 5e9db8d..2e93d4d 100644 --- a/lib/redmine_default_due_date.rb +++ b/lib/redmine_default_due_date.rb @@ -6,7 +6,7 @@ class DefaultDueDateListener < Redmine::Hook::ViewListener DEFAULT_DUE_DATE = 7 def view_issues_new_top(context) - context[:issue].due_date ||= default_due_date + context[:issue].due_date ||= self.class.default_due_date end def self.default_due_date