backlog 0.8.0 → 0.8.1

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.
Files changed (124) hide show
  1. data/History.txt +14 -0
  2. data/app/controllers/backlogs_controller.rb +4 -10
  3. data/app/controllers/tasks_controller.rb +15 -6
  4. data/app/views/backlogs/_tasks.rhtml +3 -1
  5. data/app/views/backlogs/edit.rhtml +0 -5
  6. data/app/views/backlogs/list.rhtml +1 -1
  7. data/app/views/backlogs/show.rhtml +3 -88
  8. data/app/views/periods/_title.rhtml +1 -1
  9. data/app/views/tasks/_backlog_header.rhtml +3 -2
  10. data/app/views/tasks/_form.rhtml +5 -0
  11. data/app/views/tasks/_period_header.rhtml +1 -1
  12. data/app/views/tasks/new.rhtml +1 -1
  13. data/cruise_config.rb +1 -1
  14. data/doc/classes/BacklogsController.src/M000043.html +4 -6
  15. data/doc/classes/BacklogsController.src/M000044.html +1 -1
  16. data/doc/classes/BacklogsController.src/M000045.html +1 -1
  17. data/doc/classes/BacklogsController.src/M000046.html +1 -5
  18. data/doc/classes/BacklogsController.src/M000047.html +1 -1
  19. data/doc/classes/BacklogsController.src/M000048.html +1 -1
  20. data/doc/classes/BacklogsController.src/M000049.html +1 -1
  21. data/doc/classes/BacklogsController.src/M000050.html +1 -1
  22. data/doc/classes/BacklogsController.src/M000051.html +1 -1
  23. data/doc/classes/BacklogsController.src/M000054.html +4 -6
  24. data/doc/classes/BacklogsController.src/M000055.html +1 -1
  25. data/doc/classes/BacklogsController.src/M000056.html +1 -1
  26. data/doc/classes/BacklogsController.src/M000057.html +1 -5
  27. data/doc/classes/BacklogsController.src/M000058.html +1 -1
  28. data/doc/classes/BacklogsController.src/M000059.html +1 -1
  29. data/doc/classes/BacklogsController.src/M000060.html +1 -1
  30. data/doc/classes/BacklogsController.src/M000061.html +1 -1
  31. data/doc/classes/BacklogsController.src/M000062.html +1 -1
  32. data/doc/classes/TasksController.src/M000105.html +6 -0
  33. data/doc/classes/TasksController.src/M000106.html +1 -1
  34. data/doc/classes/TasksController.src/M000107.html +10 -7
  35. data/doc/classes/TasksController.src/M000108.html +1 -1
  36. data/doc/classes/TasksController.src/M000109.html +1 -1
  37. data/doc/classes/TasksController.src/M000110.html +1 -1
  38. data/doc/classes/TasksController.src/M000111.html +1 -1
  39. data/doc/classes/TasksController.src/M000112.html +1 -1
  40. data/doc/classes/TasksController.src/M000113.html +1 -1
  41. data/doc/classes/TasksController.src/M000114.html +1 -1
  42. data/doc/classes/TasksController.src/M000115.html +1 -1
  43. data/doc/classes/TasksController.src/M000116.html +1 -1
  44. data/doc/classes/TasksController.src/M000117.html +1 -1
  45. data/doc/classes/TasksController.src/M000118.html +1 -1
  46. data/doc/classes/TasksController.src/M000119.html +1 -1
  47. data/doc/classes/TasksController.src/M000120.html +1 -1
  48. data/doc/classes/TasksController.src/M000121.html +1 -1
  49. data/doc/classes/TasksController.src/M000122.html +1 -1
  50. data/doc/classes/TasksController.src/M000125.html +6 -0
  51. data/doc/classes/TasksController.src/M000126.html +1 -1
  52. data/doc/classes/TasksController.src/M000127.html +10 -7
  53. data/doc/classes/TasksController.src/M000128.html +1 -1
  54. data/doc/classes/TasksController.src/M000129.html +1 -1
  55. data/doc/classes/TasksController.src/M000130.html +1 -1
  56. data/doc/classes/TasksController.src/M000131.html +1 -1
  57. data/doc/classes/TasksController.src/M000132.html +1 -1
  58. data/doc/classes/TasksController.src/M000133.html +1 -1
  59. data/doc/classes/TasksController.src/M000134.html +1 -1
  60. data/doc/classes/TasksController.src/M000135.html +1 -1
  61. data/doc/classes/TasksController.src/M000136.html +1 -1
  62. data/doc/classes/TasksController.src/M000137.html +1 -1
  63. data/doc/classes/TasksController.src/M000138.html +1 -1
  64. data/doc/classes/TasksController.src/M000139.html +1 -1
  65. data/doc/classes/TasksController.src/M000140.html +1 -1
  66. data/doc/classes/TasksController.src/M000141.html +1 -1
  67. data/doc/classes/TasksController.src/M000142.html +1 -1
  68. data/doc/created.rid +1 -1
  69. data/doc/dot/f_0.png +0 -0
  70. data/doc/dot/f_1.png +0 -0
  71. data/doc/dot/f_2.png +0 -0
  72. data/doc/dot/f_24.png +0 -0
  73. data/doc/dot/f_25.png +0 -0
  74. data/doc/dot/f_26.png +0 -0
  75. data/doc/dot/f_27.png +0 -0
  76. data/doc/dot/f_28.png +0 -0
  77. data/doc/dot/f_29.png +0 -0
  78. data/doc/dot/f_3.png +0 -0
  79. data/doc/dot/f_30.png +0 -0
  80. data/doc/dot/f_31.png +0 -0
  81. data/doc/dot/f_32.png +0 -0
  82. data/doc/dot/f_33.png +0 -0
  83. data/doc/dot/f_34.png +0 -0
  84. data/doc/dot/f_4.png +0 -0
  85. data/doc/dot/f_46.png +0 -0
  86. data/doc/dot/f_47.png +0 -0
  87. data/doc/dot/f_48.png +0 -0
  88. data/doc/dot/f_49.png +0 -0
  89. data/doc/dot/f_5.png +0 -0
  90. data/doc/dot/f_50.png +0 -0
  91. data/doc/dot/f_51.png +0 -0
  92. data/doc/dot/f_52.png +0 -0
  93. data/doc/dot/f_53.png +0 -0
  94. data/doc/dot/f_54.png +0 -0
  95. data/doc/dot/f_55.png +0 -0
  96. data/doc/dot/f_56.png +0 -0
  97. data/doc/dot/f_6.png +0 -0
  98. data/doc/dot/f_68.png +0 -0
  99. data/doc/dot/f_69.png +0 -0
  100. data/doc/dot/f_7.png +0 -0
  101. data/doc/dot/f_70.png +0 -0
  102. data/doc/dot/f_71.png +0 -0
  103. data/doc/dot/f_72.png +0 -0
  104. data/doc/dot/f_73.png +0 -0
  105. data/doc/dot/f_74.png +0 -0
  106. data/doc/dot/f_75.png +0 -0
  107. data/doc/dot/f_76.png +0 -0
  108. data/doc/dot/f_77.png +0 -0
  109. data/doc/dot/f_78.png +0 -0
  110. data/doc/dot/f_79.png +0 -0
  111. data/doc/dot/m_50_0.png +0 -0
  112. data/doc/files/History_txt.html +41 -2
  113. data/doc/files/app/controllers/backlogs_controller_rb.html +1 -1
  114. data/doc/files/app/controllers/tasks_controller_rb.html +1 -1
  115. data/doc/index.html +2 -2
  116. data/lang/en.yaml +1 -0
  117. data/lang/no.yaml +1 -0
  118. data/test/fixtures/tasks.yml +13 -1
  119. data/test/functional/backlogs_controller_test.rb +5 -2
  120. data/test/functional/tasks_controller_test.rb +14 -0
  121. metadata +2 -5
  122. data/post-clean.rb +0 -12
  123. data/post-install.rb +0 -51
  124. data/post-setup.rb +0 -254
data/History.txt CHANGED
@@ -1,3 +1,17 @@
1
+ == 0.8.1 2007-09-04
2
+
3
+ * Localized "Notes" string.
4
+ * Split Backlog Edit View into Edit for options and Show for tasks for less clutter.
5
+ Tasks are probably viewed way more often than options.
6
+ * Added file upload to create task view.
7
+ * Changed to allow editing of tasks not in any sprint.
8
+ * Fixed bug where estimates were not updated in the Task update view.
9
+ * Fixed bug when finishing a task by setting estimate to 0 in the task edit view.
10
+ * Added links to edit and show a backlog in the backlog and sprint views.
11
+ * Changed link in the Backlog List view to go to the backlog Show view instead of the backlog edit view.
12
+ * Improved work flow when adding a task from the show sprint view.
13
+ * Removed faulty link from Backlog view for Unplanned tasks.
14
+
1
15
  == 0.8.0 2007-09-03
2
16
 
3
17
  * FEATURE: Added notes and files to tasks.
@@ -32,12 +32,10 @@ class BacklogsController < ApplicationController
32
32
  return
33
33
  end
34
34
  end
35
- @period = @backlog.first_active_period
36
- unless @period
37
- redirect_to :controller => 'periods', :action => :new, :backlog_id => @backlog.id
38
- return
39
- end
40
- redirect_to :controller => 'periods', :action => :show, :id => @period
35
+ unplanned_tasks = @backlog.tasks.select {|t| t.period.nil? && t.finished_at.nil?}.sort_by {|t| t.position}
36
+ planned_tasks = @backlog.tasks.select {|t| t.period && t.finished_at.nil?}.sort_by {|t| [t.period.end_on, t.position]}
37
+ @tasks = planned_tasks + unplanned_tasks
38
+ @completed_tasks = @backlog.tasks.select {|t| t.finished_at}.sort {|t1, t2| t2.finished_at <=> t1.finished_at}
41
39
  end
42
40
 
43
41
  def new
@@ -56,10 +54,6 @@ class BacklogsController < ApplicationController
56
54
 
57
55
  def edit
58
56
  @backlog = Backlog.find(params[:id])
59
- unplanned_tasks = @backlog.tasks.select {|t| t.period.nil? && t.finished_at.nil?}.sort_by {|t| t.position}
60
- planned_tasks = @backlog.tasks.select {|t| t.period && t.finished_at.nil?}.sort_by {|t| [t.period.end_on, t.position]}
61
- @tasks = planned_tasks + unplanned_tasks
62
- @completed_tasks = @backlog.tasks.select {|t| t.finished_at}.sort {|t1, t2| t2.finished_at <=> t1.finished_at}
63
57
  end
64
58
 
65
59
  def edit_no_layout
@@ -23,9 +23,15 @@ class TasksController < ApplicationController
23
23
  detour_to :controller => 'periods', :action => :new, :group_id => params[:task][:period_id][1..-1].to_i
24
24
  return
25
25
  end
26
+
27
+ file = params[:task].delete(:file)
28
+
26
29
  @task = Task.new(params[:task])
27
30
  if @task.save
28
31
  flash[:notice] = 'Task was successfully created.'
32
+ if file && file.is_a?(File)
33
+ @task.task_files.create! :name => file.original_filename, :content_data => file.read, :content_type => file.content_type
34
+ end
29
35
  @task.move_to_top
30
36
  if @task.period
31
37
  back_or_redirect_to :controller => 'periods', :action => 'show', :id => @task.period, :task => @task.id
@@ -54,7 +60,7 @@ class TasksController < ApplicationController
54
60
  return
55
61
  end
56
62
  @task = Task.find(params[:id])
57
- unless (@task.period && @task.period.active_or_future?) || (params[:task] && params[:task][:period_id] && params[:task][:period_id].to_i > 0 && (period = Period.find_by_id(params[:task][:period_id])) && period.active?)
63
+ unless @task.period.nil? || @task.period.active_or_future? || (params[:task] && params[:task][:period_id] && params[:task][:period_id].to_i > 0 && (period = Period.find_by_id(params[:task][:period_id])) && period.active?)
58
64
  @task.errors.add(:period_id, "You may not update a task in an inactive period. Move the task to an active period first.")
59
65
  back_or_redirect_to :controller => 'periods', :action => :show, :id => @task.period, :task => @task.id
60
66
  return
@@ -77,17 +83,20 @@ class TasksController < ApplicationController
77
83
  end
78
84
  end
79
85
 
80
- file_name = params[:task].delete(:file)
86
+ file = params[:task].delete(:file)
81
87
 
82
88
  if params[:task] && @task.update_attributes(params[:task])
83
89
  flash[:notice] = 'Task was successfully updated.'
84
- if file_name
85
- @task.task_files.create! :name => file_name.original_filename, :content_data => file_name.read, :content_type => file_name.content_type
90
+ if params[:estimate]
91
+ @task.estimates.create! params[:estimate]
92
+ end
93
+ if file && file.is_a?(File)
94
+ @task.task_files.create! :name => file.original_filename, :content_data => file.read, :content_type => file.content_type
86
95
  end
87
- if params[:task][:todo] && params[:task][:todo].to_i == 0
96
+ if params[:estimate] && params[:estimate][:todo] && params[:estimate][:todo].to_i == 0
88
97
  unless @task.finished_at
89
98
  next_task = @task.lower_item || @task.higher_item
90
- @task.finish Task::COMPLETED, true, user
99
+ @task.finish Task::COMPLETED, true
91
100
  @task.save!
92
101
  back_or_redirect_to :controller => 'periods', :action => :show, :id => @task.period, :task => next_task ? next_task.id : nil
93
102
  else
@@ -1,7 +1,9 @@
1
1
  <div class="mainblock">
2
2
  <div class="btitle">
3
3
  <%=image_link_to 'arrow_up.png', l(:backlogs), :action => :list %>
4
- <h4><%=l :tasks%></h4>
4
+ <%=image_detour_to('clipboard.png', l(:edit), :controller => 'backlogs', :action => :edit)%>
5
+ <%=image_detour_to('clipboard.png', l(:show), :controller => 'backlogs', :action => :show)%>
6
+ <h4><%=l :tasks%></h4>
5
7
  </div>
6
8
 
7
9
  <table>
@@ -7,8 +7,3 @@
7
7
  <%= back_or_link_to l(:back), :action => 'show', :id => @backlog %>
8
8
  <% end %>
9
9
  </div>
10
-
11
- <div id="maincontent">
12
- <%=render :partial => 'tasks', :locals => {:tasks => @tasks}%>
13
- </div>
14
-
@@ -9,7 +9,7 @@
9
9
  <% i = 0 %>
10
10
  <% for @backlog in @backlogs %>
11
11
  <tr>
12
- <td><%=link_to @backlog.name, :action => :edit, :id => @backlog.id%></td>
12
+ <td><%=link_to @backlog.name, :action => :show, :id => @backlog.id%></td>
13
13
  </tr>
14
14
  <% end %>
15
15
  </table>
@@ -1,90 +1,5 @@
1
- <div id="spotlight">
2
- <div class="btitle">
3
- <h4><%=h @backlog.name %></h4>
4
- </div>
1
+ <% @page_title = @backlog.name %>
5
2
 
6
- <!-- TODO: Insert backlog logo here
7
- <img src="/images/blank.jpg" width="100" height="100" alt="Place An Alternate Description Here!" longdesc="image-description.txt" />
8
- <a href="image-description.txt" class="dlink" title="Place An Alternate Description Here!"></a>
9
- -->
10
-
11
- <table>
12
- <tr>
13
- <th align="center">#</th>
14
- <th><%=l :task %></th>
15
- <th><%=l :done %></th>
16
- <th><%=l :todo %></th>
17
- <th></th>
18
- </tr>
19
- <% i = 1 %>
20
- <% for @task in @backlog.recent_tasks %>
21
- <% i += 3 %>
22
- <script type="text/javascript">
23
- function handle<%=@task.id%>(field, event) {
24
- if (event.keyCode == 13) {
25
- field.form.submit();
26
- } else if (event.altKey && event.keyCode == 38) {
27
- window.location = '<%=url_for(:controller => 'tasks', :action => :move_up, :id => @task)%>';
28
- } else if (event.altKey && event.keyCode == 40) {
29
- window.location = '<%=url_for(:controller => 'tasks', :action => :move_down, :id => @task)%>';
30
- } else if (event.altKey && event.shiftKey && event.keyCode == 37) {
31
- window.location = '<%=url_for(:controller => 'tasks', :action => :move_to_top, :id => @task)%>';
32
- } else if (event.altKey && event.shiftKey && event.keyCode == 39) {
33
- window.location = '<%=url_for(:controller => 'tasks', :action => :move_to_bottom, :id => @task)%>';
34
- } else if (event.altKey && event.charCode == 120) {
35
- window.location = '<%=url_for(:controller => 'tasks', :action => :finish, :id => @task)%>';
36
- } else if (event.altKey && event.charCode == 113) {
37
- window.location = '<%=url_for(:controller => 'tasks', :action => :reopen, :id => @task)%>';
38
- } else if (event.altKey && event.charCode == 49) {
39
- elements['<%=@task.id%>_todo'].hidden = !elements['<%=@task.id%>_todo'].hidden;
40
- }
41
- }
42
- </script>
43
-
44
- <% form_tag({:controller => 'tasks', :action => 'update', :id => @task}, {:onsubmit => "return (elements[0].value != '' || confirm('#{l(:confirmation)}', 'Yes', 'Noo'))"}) do %>
45
- <tr>
46
- <td align="right">
47
- <%= h(@task.position) %>
48
- <%= if @task.finished_at then l :completed end %>
49
- </td>
50
- <td><%= text_field 'task', 'description', :tabindex => i, :id => "#{@task.id}_description", :class => :task_field, :maxlength => 64, :onkeypress => "handle#{@task.id}(this, event)" %></td>
51
- <td nowrap="true"><%= text_field 'task', 'done', :tabindex => i+1, :id => "#{@task.id}_done", :class => :task_hours, :maxlength => 4, :onkeypress => "handle#{@task.id}(this, event)" %>
52
- (<%= @task.total_done %>)
53
- </td>
54
- <td><%= text_field 'task', 'todo', :tabindex => i+2, :id => "#{@task.id}_todo", :class => :task_hours, :maxlength => 4, :onkeypress => "handle#{@task.id}(this, event)" %></td>
55
- <% end %>
56
- <td>
57
- <% unless @task.finished_at %>
58
- <%= image_button_to 'arrow07_4.png', l(:up), :controller => 'tasks', :action => :move_up, :id => @task %>
59
- </td>
60
- <td>
61
- <%= image_button_to('arrow07_2.png', l(:down), :controller => 'tasks', :action => :move_down, :id => @task)%>
62
- </td>
63
- <td>
64
- <%= image_button_to('checkmark_joel_montes_de_.png', l(:complete), :controller => 'tasks', :action => :finish, :id => @task)%>
65
- <% else %>
66
- <%=image_button_to('eraser.png', l(:reopen), :controller => 'tasks', :action => :reopen, :id => @task) %>
67
- <% end %>
68
- </td>
69
- </tr>
70
- <% end %>
71
- </table>
72
-
73
-
74
- <script type="text/JavaScript">
75
- <% if @selected_task %>
76
- document.getElementById('<%=@selected_task.id%>_description').focus();
77
- document.getElementById('<%=@selected_task.id%>_description').select();
78
- <% else %>
79
- document.links['new_task'].focus();
80
- <% end %>
81
- </script>
82
-
83
- </div>
84
- <div id="lfeature">
85
- <div class="btitle">
86
- <h4><%=l :burn_down_chart %></h4>
87
- </div>
88
-
89
- <%= link_to image_tag(url_for(:action => :burn_down_chart_thumbnail, :id => @backlog), {:alt => 'Burn down chart'}), :action => :burn_down_chart, :id => @backlog %>
3
+ <div id="maincontent">
4
+ <%=render :partial => 'tasks', :locals => {:tasks => @tasks}%>
90
5
  </div>
@@ -6,6 +6,6 @@
6
6
  <%=detour_to(image_tag(url_for(@period.party.to_sym.to_s + ".png"), :alt => l(@period.party.to_sym), :title => l(@period.party.to_sym), :class => 'image-submit'), :controller => @period.party.controller, :action => :edit, :id => @period.party) %>
7
7
 
8
8
  <%=if @period.higher_item then link_to(image_tag(url_for("arrow_left.png"), :alt => "#{l :previous} #{l :period}", :title => "#{l :previous} #{l :period}", :class => 'image-submit'), :controller => 'periods', :action => :show, :id => @period.higher_item) end%>
9
- <%=unless @period.passed? then link_to(image_tag(url_for("add.png"), :alt => l(:add_task), :title => l(:add_task), :class => 'image-submit'), :controller => 'tasks', :action => 'new', :task => {:period_id => (@period ? @period.id : (@backlog && @backlog.periods.first ? @backlog.periods.first.id : nil))} ) end %>
9
+ <%=unless @period.passed? then detour_to(image_tag(url_for("add.png"), :alt => l(:add_task), :title => l(:add_task), :class => 'image-submit'), :controller => 'tasks', :action => 'new', :task => {:period_id => (@period ? @period.id : (@backlog && @backlog.periods.first ? @backlog.periods.first.id : nil))} ) end %>
10
10
  <h4><%=h @period.name %> (<%=@period.start_on%> - <%=@period.end_on%>)</h4>
11
11
  </div>
@@ -2,11 +2,12 @@
2
2
 
3
3
  <tr valign="top">
4
4
  <td>
5
- <%= image_detour_to('add.png', l(:new_task), :controller => 'tasks', :action => :new, :task => {:backlog_id => @backlog.id, :period_id => @period && @period.id})%>
5
+ <%=image_detour_to('add.png', l(:new_task), :controller => 'tasks', :action => :new, :task => {:backlog_id => @backlog.id, :period_id => @period && @period.id})%>
6
6
  </td>
7
7
  <td colspan="4" style="vertical-align: middle">
8
8
  <h5>
9
- <%=detour_to(h(backlog.name), :controller => 'backlogs', :action => :edit, :id => @backlog) %>
9
+ <%=detour_to(h(backlog.name), :controller => 'backlogs', :action => :show, :id => @backlog) %>
10
+ <%=image_detour_to('clipboard.png', l(:edit), :controller => 'backlogs', :action => :edit, :id => @backlog.id)%>
10
11
  </h5>
11
12
  </td>
12
13
  <td width="*"/>
@@ -37,8 +37,13 @@
37
37
  <% end %>
38
38
 
39
39
  <% if @task.track_todo? %>
40
+ <% if @task.new_record? %>
40
41
  <p><label for="task_initial_estimate"><%=l :estimate%></label><br/>
41
42
  <%= text_field 'task', 'initial_estimate', :size => 4 %></p>
43
+ <% else %>
44
+ <p><label for="estimate_todo"><%=l :estimate%></label><br/>
45
+ <%= text_field 'estimate', 'todo', :size => 4, :value => @task.todo %></p>
46
+ <% end %>
42
47
  <% end %>
43
48
 
44
49
  <p><label for="task_notes"><%=l :notes%></label><br/>
@@ -1 +1 @@
1
- <tr><th colspan="6"><%=link_to (period ? h(period.name) : l(:unplanned_tasks)), :controller => 'periods', :action => :show, :id => period%></th></tr>
1
+ <tr><th colspan="6"><%=period ? link_to(h(period.name), :controller => 'periods', :action => :show, :id => period) : l(:unplanned_tasks)%></th></tr>
@@ -1,7 +1,7 @@
1
1
  <div id="spotlight">
2
2
  <% @page_title = l :new_task %>
3
3
 
4
- <% form_tag :action => 'create' do %>
4
+ <% form_tag({:action => 'create'}, :multipart => true) do %>
5
5
  <%= render :partial => 'form' %>
6
6
  <%= submit_tag l(:save) %>
7
7
  <%= back_or_link_to l(:back), :action => :list %>
data/cruise_config.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  Project.configure do |project|
2
- project.email_notifier.emails = ['uwe@datek.no', 'uwe@kubosch.no', 'donv@crusaders.no']
2
+ project.email_notifier.emails = ['uwe@datek.no']
3
3
  project.email_notifier.from = 'cruisecontrol@datek.no'
4
4
 
5
5
  project.build_command = 'RAILS_ENV=test rake'
@@ -22,12 +22,10 @@
22
22
  <span class="ruby-keyword kw">return</span>
23
23
  <span class="ruby-keyword kw">end</span>
24
24
  <span class="ruby-keyword kw">end</span>
25
- <span class="ruby-ivar">@period</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">first_active_period</span>
26
- <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@period</span>
27
- <span class="ruby-identifier">redirect_to</span> <span class="ruby-identifier">:controller</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'periods'</span>, <span class="ruby-identifier">:action</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:new</span>, <span class="ruby-identifier">:backlog_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">id</span>
28
- <span class="ruby-keyword kw">return</span>
29
- <span class="ruby-keyword kw">end</span>
30
- <span class="ruby-identifier">redirect_to</span> <span class="ruby-identifier">:controller</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'periods'</span>, <span class="ruby-identifier">:action</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:show</span>, <span class="ruby-identifier">:id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@period</span>
25
+ <span class="ruby-identifier">unplanned_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">position</span>}
26
+ <span class="ruby-identifier">planned_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span>.<span class="ruby-identifier">end_on</span>, <span class="ruby-identifier">t</span>.<span class="ruby-identifier">position</span>]}
27
+ <span class="ruby-ivar">@tasks</span> = <span class="ruby-identifier">planned_tasks</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">unplanned_tasks</span>
28
+ <span class="ruby-ivar">@completed_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>}.<span class="ruby-identifier">sort</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t2</span>.<span class="ruby-identifier">finished_at</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">finished_at</span>}
31
29
  <span class="ruby-keyword kw">end</span></pre>
32
30
  </body>
33
31
  </html>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 43</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 41</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">new</span>
15
15
  <span class="ruby-ivar">@backlog</span> = <span class="ruby-constant">Backlog</span>.<span class="ruby-identifier">new</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 47</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 45</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
15
15
  <span class="ruby-ivar">@backlog</span> = <span class="ruby-constant">Backlog</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:backlog</span>])
16
16
  <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">save</span>
@@ -10,13 +10,9 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 57</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 55</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>
15
15
  <span class="ruby-ivar">@backlog</span> = <span class="ruby-constant">Backlog</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:id</span>])
16
- <span class="ruby-identifier">unplanned_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">position</span>}
17
- <span class="ruby-identifier">planned_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span>.<span class="ruby-identifier">end_on</span>, <span class="ruby-identifier">t</span>.<span class="ruby-identifier">position</span>]}
18
- <span class="ruby-ivar">@tasks</span> = <span class="ruby-identifier">planned_tasks</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">unplanned_tasks</span>
19
- <span class="ruby-ivar">@completed_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>}.<span class="ruby-identifier">sort</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t2</span>.<span class="ruby-identifier">finished_at</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">finished_at</span>}
20
16
  <span class="ruby-keyword kw">end</span></pre>
21
17
  </body>
22
18
  </html>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 65</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 59</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit_no_layout</span>
15
15
  <span class="ruby-identifier">edit</span>
16
16
  <span class="ruby-identifier">render</span> <span class="ruby-identifier">:partial</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tasks'</span>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 70</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 64</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update</span>
15
15
  <span class="ruby-ivar">@backlog</span> = <span class="ruby-constant">Backlog</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:id</span>])
16
16
  <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">update_attributes</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:backlog</span>])
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 80</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 74</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">destroy</span>
15
15
  <span class="ruby-constant">Backlog</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:id</span>]).<span class="ruby-identifier">destroy</span>
16
16
  <span class="ruby-identifier">flash</span>[<span class="ruby-identifier">:notice</span>] = <span class="ruby-value str">'Backlog was successfully deleted.'</span>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 86</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 80</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">burn_down_chart_thumbnail</span>
15
15
  <span class="ruby-identifier">send_burn_down_chart</span> <span class="ruby-value">270</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 90</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 84</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">burn_down_chart</span>
15
15
  <span class="ruby-identifier">send_burn_down_chart</span> <span class="ruby-value">640</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -22,12 +22,10 @@
22
22
  <span class="ruby-keyword kw">return</span>
23
23
  <span class="ruby-keyword kw">end</span>
24
24
  <span class="ruby-keyword kw">end</span>
25
- <span class="ruby-ivar">@period</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">first_active_period</span>
26
- <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@period</span>
27
- <span class="ruby-identifier">redirect_to</span> <span class="ruby-identifier">:controller</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'periods'</span>, <span class="ruby-identifier">:action</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:new</span>, <span class="ruby-identifier">:backlog_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">id</span>
28
- <span class="ruby-keyword kw">return</span>
29
- <span class="ruby-keyword kw">end</span>
30
- <span class="ruby-identifier">redirect_to</span> <span class="ruby-identifier">:controller</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'periods'</span>, <span class="ruby-identifier">:action</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:show</span>, <span class="ruby-identifier">:id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@period</span>
25
+ <span class="ruby-identifier">unplanned_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">position</span>}
26
+ <span class="ruby-identifier">planned_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span>.<span class="ruby-identifier">end_on</span>, <span class="ruby-identifier">t</span>.<span class="ruby-identifier">position</span>]}
27
+ <span class="ruby-ivar">@tasks</span> = <span class="ruby-identifier">planned_tasks</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">unplanned_tasks</span>
28
+ <span class="ruby-ivar">@completed_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>}.<span class="ruby-identifier">sort</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t2</span>.<span class="ruby-identifier">finished_at</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">finished_at</span>}
31
29
  <span class="ruby-keyword kw">end</span></pre>
32
30
  </body>
33
31
  </html>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 43</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 41</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">new</span>
15
15
  <span class="ruby-ivar">@backlog</span> = <span class="ruby-constant">Backlog</span>.<span class="ruby-identifier">new</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 47</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 45</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
15
15
  <span class="ruby-ivar">@backlog</span> = <span class="ruby-constant">Backlog</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:backlog</span>])
16
16
  <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">save</span>
@@ -10,13 +10,9 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 57</span>
13
+ <pre><span class="ruby-comment cmt"># File app/controllers/backlogs_controller.rb, line 55</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>
15
15
  <span class="ruby-ivar">@backlog</span> = <span class="ruby-constant">Backlog</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:id</span>])
16
- <span class="ruby-identifier">unplanned_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">position</span>}
17
- <span class="ruby-identifier">planned_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">t</span>.<span class="ruby-identifier">period</span>.<span class="ruby-identifier">end_on</span>, <span class="ruby-identifier">t</span>.<span class="ruby-identifier">position</span>]}
18
- <span class="ruby-ivar">@tasks</span> = <span class="ruby-identifier">planned_tasks</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">unplanned_tasks</span>
19
- <span class="ruby-ivar">@completed_tasks</span> = <span class="ruby-ivar">@backlog</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">finished_at</span>}.<span class="ruby-identifier">sort</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t2</span>.<span class="ruby-identifier">finished_at</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">finished_at</span>}
20
16
  <span class="ruby-keyword kw">end</span></pre>
21
17
  </body>
22
18
  </html>