backlog 0.7.2 → 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|