backlog 0.6.5 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +4 -0
- data/app/controllers/application.rb +1 -1
- data/app/controllers/backlogs_controller.rb +1 -1
- data/app/controllers/tasks_controller.rb +25 -8
- data/app/models/task.rb +1 -2
- data/app/views/backlogs/_tasks.rhtml +1 -1
- data/app/views/backlogs/edit.rhtml +10 -0
- data/app/views/periods/show.rhtml +1 -16
- data/app/views/tasks/_completed.rhtml +13 -0
- data/app/views/tasks/_task.rhtml +4 -4
- metadata +2 -1
data/History.txt
CHANGED
@@ -96,7 +96,7 @@ class ApplicationController < ActionController::Base
|
|
96
96
|
|
97
97
|
def pop_detour
|
98
98
|
detour = session[:detours].pop
|
99
|
-
puts "popped detour: #{detour} #{session[:detours].size} more"; STDOUT.flush
|
99
|
+
puts "popped detour: #{detour.inspect} #{session[:detours].size} more"; STDOUT.flush
|
100
100
|
if session[:detours].empty?
|
101
101
|
session[:detours] = nil
|
102
102
|
end
|
@@ -65,7 +65,7 @@ class BacklogsController < ApplicationController
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
@tasks = planned_tasks + unplanned_tasks
|
68
|
-
@completed_tasks = @backlog.tasks.select {|t| t.finished_at}.sort {|t1, t2|
|
68
|
+
@completed_tasks = @backlog.tasks.select {|t| t.finished_at}.sort {|t1, t2| t2.finished_at <=> t1.finished_at}
|
69
69
|
end
|
70
70
|
|
71
71
|
def edit_no_layout
|
@@ -54,11 +54,23 @@ class TasksController < ApplicationController
|
|
54
54
|
return
|
55
55
|
end
|
56
56
|
@task = Task.find(params[:id])
|
57
|
-
unless @task.period.active?
|
57
|
+
unless (@task.period && @task.period.active?) || (params[:task] && params[:task][:period_id] && Period.find(params[:task][:period_id]).active?)
|
58
58
|
@task.errors.add(:period_id, "You may not update a task in an inactive period. Move the task to an active period first.")
|
59
|
-
|
59
|
+
back_or_redirect_to :controller => 'periods', :action => :show, :id => @task.period, :task => @task.id
|
60
60
|
return
|
61
61
|
end
|
62
|
+
if params[:task] && params[:task][:period_id]
|
63
|
+
if params[:task][:period_id] != ''
|
64
|
+
if params[:task][:period_id].to_i != @task.period_id
|
65
|
+
params[:task][:position] = Period.find(params[:task][:period_id]).tasks.size
|
66
|
+
end
|
67
|
+
else
|
68
|
+
if @task.period_id != nil
|
69
|
+
@task.period = nil
|
70
|
+
params[:task][:position] = @task.backlog.tasks.count(:conditions => 'period_id IS NULL') + 1
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
62
74
|
if params[:task] && @task.update_attributes(params[:task])
|
63
75
|
flash[:notice] = 'Task was successfully updated.'
|
64
76
|
if params[:task][:todo] && params[:task][:todo].to_i == 0
|
@@ -66,15 +78,15 @@ class TasksController < ApplicationController
|
|
66
78
|
next_task = @task.lower_item || @task.higher_item
|
67
79
|
@task.finish Task::COMPLETED, true, user
|
68
80
|
@task.save
|
69
|
-
|
81
|
+
back_or_redirect_to :controller => 'periods', :action => :show, :id => @task.period, :task => next_task ? next_task.id : nil
|
70
82
|
else
|
71
|
-
|
83
|
+
back_or_redirect_to :controller => 'periods', :action => :show, :id => @task.period, :task => @task.id
|
72
84
|
end
|
73
85
|
else
|
74
86
|
if @task.finished_at
|
75
87
|
reopen
|
76
88
|
else
|
77
|
-
|
89
|
+
back_or_redirect_to :controller => 'periods', :action => 'show', :id => @task.period, :task => @task.id
|
78
90
|
end
|
79
91
|
end
|
80
92
|
else
|
@@ -119,7 +131,12 @@ class TasksController < ApplicationController
|
|
119
131
|
|
120
132
|
def move_to
|
121
133
|
task = Task.find(params[:id][5..-1])
|
134
|
+
if params[:period_id] && params[:period_id].to_i != task.period_id
|
135
|
+
task.remove_from_list
|
136
|
+
task.period_id = params[:period_id]
|
137
|
+
end
|
122
138
|
task.insert_at params[:position]
|
139
|
+
task.save!
|
123
140
|
back_or_redirect_to :controller => 'periods', :action => :show_nolayout, :id => task.period, :task => task.id
|
124
141
|
end
|
125
142
|
|
@@ -149,14 +166,14 @@ class TasksController < ApplicationController
|
|
149
166
|
params[:period_id] = task.period.lower_item && task.period.lower_item.id
|
150
167
|
move_to_period(true)
|
151
168
|
else
|
152
|
-
|
169
|
+
redirect_to :action => :edit, :id => task
|
153
170
|
end
|
154
171
|
end
|
155
172
|
|
156
173
|
def finish
|
157
174
|
@task = Task.find(params[:id])
|
158
175
|
@task.finish(Task::COMPLETED, true)
|
159
|
-
|
176
|
+
back_or_redirect_to :controller => 'periods', :action => :show, :id => @task.period, :task_id => @task.id
|
160
177
|
end
|
161
178
|
|
162
179
|
def abort
|
@@ -174,7 +191,7 @@ class TasksController < ApplicationController
|
|
174
191
|
def start_work
|
175
192
|
task = Task.find(params[:id])
|
176
193
|
task.start_work
|
177
|
-
|
194
|
+
back_or_redirect_to :controller => 'periods', :action => :show, :id => task.period, :task => task.id
|
178
195
|
end
|
179
196
|
|
180
197
|
def end_work
|
data/app/models/task.rb
CHANGED
@@ -27,8 +27,7 @@ class Task < ActiveRecord::Base
|
|
27
27
|
#validates_uniqueness_of :description, :scope => :backlog_id, :if => Proc.new {|task| task.backlog_id && task.previous_task_id.nil?}
|
28
28
|
validates_uniqueness_of :description, :scope => :period_id, :if => :period_id
|
29
29
|
validates_uniqueness_of :position, :scope => :period_id, :if => :period_id, :allow_nil => true
|
30
|
-
validates_uniqueness_of :position, :scope => :
|
31
|
-
validates_uniqueness_of :position, :scope => :backlog_id, :if => Proc.new {|task| task.period_id.nil? && task.parent_id.nil?}, :allow_nil => true
|
30
|
+
validates_uniqueness_of :position, :scope => [:period_id, :backlog_id], :if => Proc.new {|task| task.period_id.nil?}, :allow_nil => true
|
32
31
|
|
33
32
|
def validate
|
34
33
|
if self.parent_id && (self.period_id || self.backlog_id)
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<% current_period = nil %>
|
11
11
|
<% for @task in tasks %>
|
12
12
|
<% if @task.period != current_period %>
|
13
|
-
<tr><th colspan="6"
|
13
|
+
<tr><th colspan="6"><%=link_to (@task.period ? h(@task.period.name) : l(:unplanned_tasks)), :controller => 'periods', :action => :show, :id => @task.period%></th></tr>
|
14
14
|
<%= render :partial => '/tasks/fields_header', :locals => {:backlog => @backlog, :track_times => tasks.find {|t|t.period && t.period.active?}} %>
|
15
15
|
<% current_period = @task.period %>
|
16
16
|
<% end %>
|
@@ -10,4 +10,14 @@
|
|
10
10
|
|
11
11
|
<div id="maincontent">
|
12
12
|
<%=render :partial => 'tasks', :locals => {:tasks => @tasks}%>
|
13
|
+
|
14
|
+
<div class="mainblock">
|
15
|
+
<div class="btitle">
|
16
|
+
<h4><%=l(:completed_tasks) %></h4>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<%=render :partial => '/tasks/completed', :locals => {:i => 1} %>
|
20
|
+
</div>
|
21
|
+
|
13
22
|
</div>
|
23
|
+
|
@@ -11,20 +11,5 @@
|
|
11
11
|
<h4><%=l(:completed_tasks) %></h4>
|
12
12
|
</div>
|
13
13
|
|
14
|
-
|
15
|
-
<tr>
|
16
|
-
<th/>
|
17
|
-
<th align="left"><%=l :resolution %></th>
|
18
|
-
<th><%=l :task %></th>
|
19
|
-
<% if @period.track_work? -%>
|
20
|
-
<th></th>
|
21
|
-
<th><%=l :done %></th>
|
22
|
-
<% end %>
|
23
|
-
</tr>
|
24
|
-
<% for task in @completed_tasks %>
|
25
|
-
<%=render :partial => '/tasks/task', :locals => { :task => task, :i => i, :active => false, :highlight_task => task == @selected_task } %>
|
26
|
-
<% i += 1 %>
|
27
|
-
<% end %>
|
28
|
-
</table>
|
29
|
-
|
14
|
+
<%=render :partial => '/tasks/completed', :locals => {:i => i} %>
|
30
15
|
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<table class="input">
|
2
|
+
<tr>
|
3
|
+
<th/>
|
4
|
+
<th align="left"><%=l :resolution %></th>
|
5
|
+
<th><%=l :task %></th>
|
6
|
+
<th></th>
|
7
|
+
<th><%=l(:done) if (@period && @period.track_work?) || @completed_tasks.find {|t| t.track_times?} %></th>
|
8
|
+
</tr>
|
9
|
+
<% for task in @completed_tasks %>
|
10
|
+
<%=render :partial => '/tasks/task', :locals => { :task => task, :i => i, :active => false, :highlight_task => task == @selected_task } %>
|
11
|
+
<% i += 1 %>
|
12
|
+
<% end %>
|
13
|
+
</table>
|
data/app/views/tasks/_task.rhtml
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
:class => :task_time, :maxlength => 5, :onkeypress => "handleEvent(this, event, #{@task.id})" %>
|
32
32
|
<%= image_detour_to('ernes_stop.png', l(:end_work), {:controller => 'tasks', :action => :end_work, :id => @task.id}, nil, true) %>
|
33
33
|
<% elsif @task.track_times? && @task.period && @task.period.active? %>
|
34
|
-
<%=
|
34
|
+
<%= image_detour_to 'hammer.png', l(:start_work), {:controller => 'tasks', :action => :start_work, :id => @task.id}, nil, true %>
|
35
35
|
<% end -%>
|
36
36
|
<% end %>
|
37
37
|
<% end -%>
|
@@ -64,7 +64,7 @@
|
|
64
64
|
<% end %>
|
65
65
|
<% end -%>
|
66
66
|
<% if (not @task.track_times?) && !@task.work_started? && @task.period && @task.period.active? %>
|
67
|
-
<%=
|
67
|
+
<%= image_detour_to('checkmark.png', l(:complete), {:controller => 'tasks', :action => :finish, :id => @task}, nil, true)%>
|
68
68
|
<% end -%>
|
69
69
|
<% end -%>
|
70
70
|
<% end -%>
|
@@ -78,7 +78,7 @@
|
|
78
78
|
<%= image_detour_to('ernes_stop.png', l(:abort), {:controller => 'tasks', :action => :abort, :id => @task}, nil, true)%>
|
79
79
|
<% end %>
|
80
80
|
<% end %>
|
81
|
-
<% elsif (not @task.period.passed?) && @task.leaf? %>
|
81
|
+
<% elsif @task.period && (not @task.period.passed?) && @task.leaf? %>
|
82
82
|
<%=image_detour_to('/images/eraser.png', l(:reopen), {:controller => 'tasks', :action => :reopen, :id => @task}, nil, true) %>
|
83
83
|
<% end -%>
|
84
84
|
<% end -%>
|
@@ -88,7 +88,7 @@
|
|
88
88
|
<% if active && (@task.period.nil? || @task.period.active_or_future?) && (not @task.work_started?) %>
|
89
89
|
<%= draggable_element "task_#{@task.id}", :revert => true, :constraint => "'vertical'" %>
|
90
90
|
<%= drop_receiving_element "task_#{@task.id}",
|
91
|
-
:update => update, :url => options_for_detour({:controller => 'tasks', :action => "move_to", :position => @task.position, :layout => false}),
|
91
|
+
:update => update, :url => options_for_detour({:controller => 'tasks', :action => "move_to", :period_id => @task.period_id, :position => @task.position, :layout => false}),
|
92
92
|
:accept => "tasks",
|
93
93
|
:loading => "",
|
94
94
|
:complete => "",
|
metadata
CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: backlog
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.6.
|
6
|
+
version: 0.6.6
|
7
7
|
date: 2007-08-07 00:00:00 +02:00
|
8
8
|
summary: Application to aid collecting, processing, organizing, reviewing and doing tasks.
|
9
9
|
require_paths:
|
@@ -1732,6 +1732,7 @@ files:
|
|
1732
1732
|
- app/views/tasks/_form.rhtml
|
1733
1733
|
- app/views/tasks/new.rhtml
|
1734
1734
|
- app/views/tasks/_fields_header.rhtml
|
1735
|
+
- app/views/tasks/_completed.rhtml
|
1735
1736
|
- app/views/tasks/edit.rhtml
|
1736
1737
|
- app/views/tasks/list_started.rhtml
|
1737
1738
|
- app/views/tasks/_task.rhtml
|