Skip to content

Commit 73bee2f

Browse files
committed
Merge pull request #47 from nutso/develop
Develop
2 parents ec3d8ad + 98eaf5b commit 73bee2f

13 files changed

+338
-88
lines changed

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# redmine-plugin-recurring-tasks
22

3-
Plugin for Redmine project management software to configure recurring tasks. Any task can be set to recur on a fixed (e.g. every Monday) or flexible (e.g. 2 days after task was last completed) schedule.
3+
Plugin for Redmine project management software to configure recurring tasks. Any task can be set to recur on a fixed (e.g. every Monday) or flexible (e.g. 2 days after task was last completed) schedule.
4+
The plugin creates a new issue in Redmine for each recurrence, linking the duplicated issue as a related issue.
45

56
Released under GPLv2 in accordance with Redmine licensing.
67

@@ -26,7 +27,7 @@ You should now be able to see the plugin list in Administration -> Plugins.
2627

2728
Crontab example (running the check for recurrence every 6 hours):
2829
```bash
29-
* */4 * * * /bin/sh "cd {path_to_redmine} && rake RAILS_ENV=production redmine:recur_tasks" >> log/cron_rake.log 2>&1
30+
* */4 * * * /bin/sh "cd {path_to_redmine} && bundle exec rake RAILS_ENV=production redmine:recur_tasks" >> log/cron_rake.log 2>&1
3031
```
3132

3233
## Upgrade or Migrate Plugin
@@ -39,7 +40,7 @@ Please check the Release Notes (ReleaseNotes.md) for substantive or breaking cha
3940

4041
2. Run database migrations (make a db backup before)
4142

42-
rake redmine:plugins:migrate RAILS_ENV=production
43+
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
4344

4445
3. Restart Redmine (or web server)
4546

ReleaseNotes.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
## Features Requested
44

5-
* Recur on day x of every n months ([#26](https://github.com/nutso/redmine-plugin-recurring-tasks/issues/26))
65
* Recur on last day of every n months ([#26](https://github.com/nutso/redmine-plugin-recurring-tasks/issues/26))
6+
* Option to 'predict' recurrences on calendar -- perhaps ghost the projected recurrences in ([#38](https://github.com/nutso/redmine-plugin-recurring-tasks/issues/38))
7+
* Option to re-open recurring issue instead of creating a new issue, so all comments/information are stored in a single place ([#45](https://github.com/nutso/redmine-plugin-recurring-tasks/issues/45))
78

89
## Known Issues
910

@@ -14,6 +15,11 @@
1415

1516

1617

18+
## Version 1.4.0 (07 Sep 2014)
19+
20+
* French translation updated by @fidergo-stephane-gourichon ([#46](https://github.com/nutso/redmine-plugin-recurring-tasks/pull/46))
21+
* Recur on day x of every n months ([#26](https://github.com/nutso/redmine-plugin-recurring-tasks/issues/26)) -- contributed by @cryptogopher ([#41](https://github.com/nutso/redmine-plugin-recurring-tasks/pull/41))
22+
1723
## Version 1.3.0 (01 Mar 2014)
1824

1925
* Russian translation contributed by @box789 ([#30](https://github.com/nutso/redmine-plugin-recurring-tasks/pull/30))

app/controllers/recurring_tasks_controller.rb

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ class RecurringTasksController < ApplicationController
77
before_filter :find_recurring_task, :except => [:index, :new, :create]
88
before_filter :set_interval_units, :except => [:index, :show]
99
before_filter :set_recurrable_issues, :except => [:index, :show]
10+
before_filter :cancel_edit, :only => [:new, :create, :edit, :update] # #41 TODO is this necessary?
11+
1012

1113
def index
1214
@recurring_tasks = RecurringTask.all_for_project(@project)
@@ -25,12 +27,13 @@ def new
2527
end
2628

2729
# creates a new recurring task
28-
def create
29-
params[:recurring_task][:interval_unit] = RecurringTask.get_interval_from_localized_name(params[:recurring_task][:interval_localized_name])
30+
def create
31+
# params[:recurring_task][:interval_unit] = RecurringTask.get_interval_from_localized_name(params[:recurring_task][:interval_localized_name]) #41
3032
@recurring_task = RecurringTask.new(params[:recurring_task])
3133
if @recurring_task.save
3234
flash[:notice] = l(:recurring_task_created)
33-
redirect_to :action => :show, :id => @recurring_task.id
35+
# redirect_to :action => :show, :id => @recurring_task.id #41
36+
redirect_to :controller => :issues, :action => :show, :id => @recurring_task.issue.id #41
3437
else
3538
logger.debug "Could not create recurring task from #{params[:post]}"
3639
render :new # errors are displayed to user on form
@@ -40,15 +43,25 @@ def create
4043
def edit
4144
# default behavior is fine
4245
end
46+
47+
def cancel_edit # #41 TODO is this necessary?
48+
if params[:commit] == l(:button_cancel)
49+
redirect_to :back
50+
end
51+
rescue ActionController::RedirectBackError
52+
redirect_to default
53+
end
54+
4355

4456
# saves the task and redirects to show
4557
def update
4658
logger.info "Updating recurring task #{params[:id]}"
4759

48-
params[:recurring_task][:interval_unit] = RecurringTask.get_interval_from_localized_name(params[:recurring_task][:interval_localized_name])
60+
# params[:recurring_task][:interval_unit] = RecurringTask.get_interval_from_localized_name(params[:recurring_task][:interval_localized_name]) #41
4961
if @recurring_task.update_attributes(params[:recurring_task])
5062
flash[:notice] = l(:recurring_task_saved)
51-
redirect_to :action => :show
63+
# redirect_to :action => :show #41
64+
redirect_to :controller => :issues, :action => :show, :id => @recurring_task.issue.id # #41
5265
else
5366
logger.debug "Could not save recurring task #{@recurring_task}"
5467
render :edit # errors are displayed to user on form
@@ -60,10 +73,12 @@ def destroy
6073

6174
if @recurring_task.destroy
6275
flash[:notice] = l(:recurring_task_removed)
63-
redirect_to :action => :index
76+
# redirect_to :action => :index #41
77+
redirect_to :back #41
6478
else
6579
flash[:notice] = l(:error_recurring_task_could_not_remove)
66-
redirect_to :action => :show, :id => @recurring_task
80+
# redirect_to :action => :show, :id => @recurring_task #41
81+
render :back #41
6782
end
6883
end
6984

@@ -85,6 +100,7 @@ def find_recurring_task
85100
end
86101

87102
def set_interval_units
88-
@interval_units = RecurringTask::INTERVAL_UNITS_LOCALIZED
103+
# @interval_units = RecurringTask::INTERVAL_UNITS_LOCALIZED #41
104+
@interval_units = RecurringTask::INTERVAL_UNITS_LOCALIZED.collect{|k,v| [v, k]} #41
89105
end
90106
end

0 commit comments

Comments
 (0)