backlog 0.7.2 → 0.7.3
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 +12 -0
- data/app/controllers/estimates_controller.rb +2 -1
- data/app/controllers/user_controller.rb +1 -0
- data/app/models/period.rb +3 -3
- data/app/views/layouts/_left_top.rhtml +1 -1
- data/app/views/periods/_form.rhtml +13 -5
- data/app/views/user/edit.rhtml +38 -21
- data/cruise_config.rb +6 -0
- data/lang/en.yaml +2 -0
- data/lang/no.yaml +2 -0
- data/lib/class_table_inheritance.rb +10 -1
- data/test/functional/estimates_controller_test.rb +27 -4
- data/test/functional/groups_controller_test.rb +0 -1
- data/test/unit/user_test.rb +5 -0
- metadata +3 -1
data/History.txt
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
== 0.7.3 2007-08-17
|
|
2
|
+
|
|
3
|
+
* Fixed bug in estimate creation
|
|
4
|
+
* Added cruisecontrol.rb config file
|
|
5
|
+
* Fixed mailing of password
|
|
6
|
+
* Fixed find_by for class table inheritance subclasses
|
|
7
|
+
* Fixed date limits for new periods
|
|
8
|
+
* Fixed display of position in period edit view
|
|
9
|
+
* Added link to current user in top of layout
|
|
10
|
+
* Added display of periods to user view
|
|
11
|
+
* Adjusted the legend in the burn down graphs
|
|
12
|
+
|
|
1
13
|
== 0.7.2 2007-08-17
|
|
2
14
|
|
|
3
15
|
* Fixed bugs in task reordering links
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
class EstimatesController < ApplicationController
|
|
2
|
+
verify :method => :post, :redirect_to => ''
|
|
2
3
|
|
|
3
4
|
def create
|
|
4
5
|
if params[:id] && params[:estimate]
|
|
5
6
|
@task = Task.find(params[:id])
|
|
6
|
-
@task.estimate(params[:estimate][:todo]
|
|
7
|
+
@task.estimate(params[:estimate][:todo])
|
|
7
8
|
redirect_to :controller => 'periods', :action => :show, :id => @task.period, :task_id => @task.id
|
|
8
9
|
end
|
|
9
10
|
end
|
|
@@ -167,6 +167,7 @@ class UserController < ApplicationController
|
|
|
167
167
|
def generate_filled_in
|
|
168
168
|
@user = User.find_by_id(params[:id]) || current_user || User.find_by_id(session[:user_id])
|
|
169
169
|
@groups = Group.find(:all, :order => 'name')
|
|
170
|
+
@periods = @user.periods
|
|
170
171
|
case request.method
|
|
171
172
|
when :get
|
|
172
173
|
render
|
data/app/models/period.rb
CHANGED
|
@@ -182,11 +182,11 @@ class Period < ActiveRecord::Base
|
|
|
182
182
|
observed_todo_data = get_todo_data(recorded_dates)
|
|
183
183
|
actual_todo_data = get_todo_data(recorded_dates, true)
|
|
184
184
|
g.data("#{l :todo} (#{l :obs})", observed_todo_data)
|
|
185
|
-
g.data("#{l :
|
|
185
|
+
g.data("#{l :todo}", actual_todo_data)
|
|
186
186
|
g.data(l(:done), get_work_data(recorded_dates)) if track_work?
|
|
187
187
|
if previous_period = higher_item
|
|
188
|
-
g.data("#{l :
|
|
189
|
-
g.data("#{l :
|
|
188
|
+
g.data("#{l :previous_abr} #{l :obs}", previous_period.get_todo_data(previous_period.dates))
|
|
189
|
+
g.data("#{l :previous_abr}", previous_period.get_todo_data(previous_period.dates, true))
|
|
190
190
|
end
|
|
191
191
|
|
|
192
192
|
if active?
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<% end %>
|
|
11
11
|
| <%= link_to l(:backlogs), :controller => 'backlogs', :action => :list %>
|
|
12
12
|
<!-- | <%= link_to l(:administration), :controller => 'administration', :action => :index %> -->
|
|
13
|
-
<% if user? %>| <%=user.email%><% end %>
|
|
13
|
+
<% if user? %>| <%=link_to user.email, :controller => 'user', :action => :edit%><% end %>
|
|
14
14
|
</div>
|
|
15
15
|
<div id="header">
|
|
16
16
|
<%= error_messages_for :backlog, :user, :group, :period, :task, :work, :estimate %>
|
|
@@ -14,15 +14,23 @@
|
|
|
14
14
|
<% end %>
|
|
15
15
|
</p>
|
|
16
16
|
|
|
17
|
-
<%= hidden_field 'period', 'position' %>
|
|
18
17
|
<% if @period.party %>
|
|
19
|
-
<p><label for="period_position"><%=l :position%></label>:
|
|
20
|
-
|
|
18
|
+
<p><label for="period_position"><%=l :position%></label>:
|
|
19
|
+
<% if @period.new_record? %>
|
|
20
|
+
<%= @period.party.periods.last ? @period.party.periods.last.position + 1 : 1 %></p>
|
|
21
|
+
<% else %>
|
|
22
|
+
<%= @period.position %></p>
|
|
23
|
+
<% end %>
|
|
21
24
|
<% end %>
|
|
22
25
|
|
|
23
26
|
<p><label for="period_start_on"><%=l :start_on%></label><br/>
|
|
24
|
-
<%
|
|
25
|
-
<%
|
|
27
|
+
<% if @period.party && @period.new_record? %>
|
|
28
|
+
<% minimum_date = @period.party.periods.last ? @period.party.periods.last.end_on + 1 : Date.today %>
|
|
29
|
+
<% maximum_date = Date.today + 5*365 %>
|
|
30
|
+
<% else %>
|
|
31
|
+
<% minimum_date = @period.higher_item ? @period.higher_item.end_on + 1 : Date.today %>
|
|
32
|
+
<% maximum_date = @period.lower_item ? @period.lower_item.start_on - 1 : Date.today + 5*365 %>
|
|
33
|
+
<% end %>
|
|
26
34
|
<%= text_field 'period', 'start_on', :size => 10, :value => @period.start_on ? @period.start_on.strftime('%Y-%m-%d') : nil %>
|
|
27
35
|
<button id="trigger1">...</button>
|
|
28
36
|
<script type="text/javascript">//<![CDATA[
|
data/app/views/user/edit.rhtml
CHANGED
|
@@ -11,17 +11,16 @@
|
|
|
11
11
|
<h4><%=l :password %></h4>
|
|
12
12
|
</div>
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
<%= start_form_tag_helper %>
|
|
15
|
+
<%= render_partial 'password', :submit => true %>
|
|
16
|
+
</form>
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
</div>
|
|
18
|
+
<%= start_form_tag_helper %>
|
|
19
|
+
<div class="user_delete">
|
|
20
|
+
<%= hidden_field 'user', 'form', :value => 'delete' %>
|
|
21
|
+
<%= submit_tag l(:delete) %>
|
|
22
|
+
</div>
|
|
23
|
+
</form>
|
|
25
24
|
</div>
|
|
26
25
|
|
|
27
26
|
<div id="lfeature">
|
|
@@ -29,15 +28,33 @@
|
|
|
29
28
|
<h4><%=l :groups %></h4>
|
|
30
29
|
</div>
|
|
31
30
|
|
|
32
|
-
<table>
|
|
33
|
-
<% for @group in @groups %>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
31
|
+
<table>
|
|
32
|
+
<% for @group in @groups %>
|
|
33
|
+
<tr>
|
|
34
|
+
<td><%=link_to h(@group.name), :controller => 'groups', :action => :edit, :id => @group %></td>
|
|
35
|
+
<td>
|
|
36
|
+
<% form_for :group, @group, :url => {:controller => 'groups', :action => :set_member, :id => @group, :user_id => @user.id} do %>
|
|
37
|
+
<%=check_box_tag :value, true, @group.users.include?(@user), :onchange => "form.submit()" %>
|
|
38
|
+
<% end %>
|
|
39
|
+
</td>
|
|
40
|
+
</tr>
|
|
41
|
+
<% end %>
|
|
42
|
+
</table>
|
|
43
43
|
</div>
|
|
44
|
+
|
|
45
|
+
<br clear="right"/>
|
|
46
|
+
|
|
47
|
+
<div id="rfeature">
|
|
48
|
+
<div class="btitle">
|
|
49
|
+
<h4><%=l :periods %></h4>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<table>
|
|
53
|
+
<% for @period in @periods %>
|
|
54
|
+
<tr>
|
|
55
|
+
<td><%=link_to h(@period.name), :controller => 'periods', :action => :show, :id => @period %></td>
|
|
56
|
+
</tr>
|
|
57
|
+
<% end %>
|
|
58
|
+
</table>
|
|
59
|
+
</div>
|
|
60
|
+
|
data/cruise_config.rb
ADDED
data/lang/en.yaml
CHANGED
|
@@ -55,9 +55,11 @@ next: Next
|
|
|
55
55
|
no_pending_tasks: There are no pending tasks in this period.
|
|
56
56
|
password: Password
|
|
57
57
|
period: Period
|
|
58
|
+
periods: Periods
|
|
58
59
|
position: Position
|
|
59
60
|
postponed: Postponed
|
|
60
61
|
previous: Previous
|
|
62
|
+
previous_abr: Prev.
|
|
61
63
|
projection: Projection
|
|
62
64
|
reopen: Reopen task
|
|
63
65
|
resolution: Resolution
|
data/lang/no.yaml
CHANGED
|
@@ -55,9 +55,11 @@ next: Neste
|
|
|
55
55
|
no_pending_tasks: Det er ingen ventende oppgaver i denne perioden.
|
|
56
56
|
password: Passord
|
|
57
57
|
period: Periode
|
|
58
|
+
periods: Perioder
|
|
58
59
|
position: Posisjon
|
|
59
60
|
postponed: Utsatt
|
|
60
61
|
previous: Forrige
|
|
62
|
+
previous_abr: Forrige
|
|
61
63
|
projection: Projeksjon
|
|
62
64
|
reopen: Gjenåpne
|
|
63
65
|
resolution: Avslutningsmåte
|
|
@@ -108,7 +108,16 @@ class ActiveRecord::Base
|
|
|
108
108
|
# then filter by sub_attributes
|
|
109
109
|
method_missing_super(method_symbol, parameters)
|
|
110
110
|
else
|
|
111
|
-
#{proxy_class_name}.method_missing(method_symbol, parameters)
|
|
111
|
+
result = #{proxy_class_name}.method_missing(method_symbol, parameters)
|
|
112
|
+
if result
|
|
113
|
+
if result.is_a? Array
|
|
114
|
+
result.map {|entry| entry.base}
|
|
115
|
+
else
|
|
116
|
+
result = result.base
|
|
117
|
+
end
|
|
118
|
+
else
|
|
119
|
+
result
|
|
120
|
+
end
|
|
112
121
|
end
|
|
113
122
|
else
|
|
114
123
|
method_missing_super(method_symbol, parameters)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
2
|
require 'estimates_controller'
|
|
3
3
|
|
|
4
|
-
# Re-raise errors caught by the controller.
|
|
5
4
|
class EstimatesController; def rescue_action(e) raise e end; end
|
|
6
5
|
|
|
7
6
|
class EstimatesControllerTest < Test::Unit::TestCase
|
|
@@ -9,10 +8,34 @@ class EstimatesControllerTest < Test::Unit::TestCase
|
|
|
9
8
|
@controller = EstimatesController.new
|
|
10
9
|
@request = ActionController::TestRequest.new
|
|
11
10
|
@response = ActionController::TestResponse.new
|
|
11
|
+
|
|
12
|
+
@request.session[:user_id] = 1000001
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_create
|
|
16
|
+
count_before = Estimate.count
|
|
17
|
+
post :create,
|
|
18
|
+
"action"=>"create",
|
|
19
|
+
"id"=>"1",
|
|
20
|
+
"estimate"=>{"todo"=>"0"}
|
|
21
|
+
|
|
22
|
+
assert_response :redirect
|
|
23
|
+
assert_redirected_to :controller => 'periods', :action => :show, :id => 1, :task_id => 1
|
|
24
|
+
|
|
25
|
+
assert_equal count_before +1 , Estimate.count
|
|
12
26
|
end
|
|
27
|
+
|
|
28
|
+
def test_create_get_is_redirected_to_root
|
|
29
|
+
count_before = Estimate.count
|
|
30
|
+
get :create,
|
|
31
|
+
"action"=>"create",
|
|
32
|
+
"id"=>"1",
|
|
33
|
+
"estimate"=>{"todo"=>"0"}
|
|
34
|
+
|
|
35
|
+
assert_response :redirect
|
|
36
|
+
assert_redirected_to :controller => 'backlogs', :action => :index
|
|
13
37
|
|
|
14
|
-
|
|
15
|
-
def test_truth
|
|
16
|
-
assert true
|
|
38
|
+
assert_equal count_before, Estimate.count
|
|
17
39
|
end
|
|
40
|
+
|
|
18
41
|
end
|
data/test/unit/user_test.rb
CHANGED
|
@@ -134,6 +134,11 @@ class UserTest < Test::Unit::TestCase
|
|
|
134
134
|
# assert !u.save
|
|
135
135
|
# end
|
|
136
136
|
|
|
137
|
+
def test_find_by
|
|
138
|
+
user = User.find_by_email('tesla@example.com')
|
|
139
|
+
assert_equal User, user.class
|
|
140
|
+
end
|
|
141
|
+
|
|
137
142
|
private
|
|
138
143
|
|
|
139
144
|
# TODO (uwe): This method should be removed
|
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.7.
|
|
6
|
+
version: 0.7.3
|
|
7
7
|
date: 2007-08-17 00:00:00 +02:00
|
|
8
8
|
summary: Application to aid collecting, processing, organizing, reviewing and doing tasks.
|
|
9
9
|
require_paths:
|
|
@@ -227,7 +227,9 @@ files:
|
|
|
227
227
|
- config/environments/datek_production.rb
|
|
228
228
|
- LICENSE_LOCALIZATION
|
|
229
229
|
- README.txt
|
|
230
|
+
- doc
|
|
230
231
|
- Manifest.txt
|
|
232
|
+
- cruise_config.rb
|
|
231
233
|
- vendor
|
|
232
234
|
- vendor/plugins
|
|
233
235
|
- vendor/plugins/activerecord_foreign_key_extensions
|