backlog 0.32.0 → 0.33.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +22 -1
- data/app/controllers/works_controller.rb +10 -5
- data/app/models/period.rb +1 -1
- data/app/models/task.rb +2 -0
- data/app/views/tasks/_completed.rhtml +3 -1
- data/app/views/tasks/_task.rhtml +2 -0
- data/app/views/works/_new_row.rhtml +1 -1
- data/app/views/works/_weekly_work_sheet_buttons.rhtml +4 -2
- data/app/views/works/daily_work_sheet.rhtml +7 -5
- data/app/views/works/list.rhtml +0 -4
- data/app/views/works/update_row.rjs +4 -0
- data/app/views/works/weekly_work_sheet.rhtml +18 -3
- data/bin/backlog +0 -0
- data/bin/backlog_init.d +0 -0
- data/bin/copy_production2development.rb +0 -0
- data/config/war.rb +3 -3
- data/db/migrate/017_insert_datek_projects.rb +1 -1
- data/db/schema.rb +13 -13
- data/lang/en.yaml +1 -0
- data/lang/no.yaml +1 -0
- data/public/dispatch.cgi +0 -0
- data/public/dispatch.fcgi +0 -0
- data/public/dispatch.rb +0 -0
- data/public/images/blank.png +0 -0
- data/script/about +0 -0
- data/script/breakpointer +0 -0
- data/script/console +0 -0
- data/script/destroy +0 -0
- data/script/generate +0 -0
- data/script/performance/benchmarker +0 -0
- data/script/performance/profiler +0 -0
- data/script/plugin +0 -0
- data/script/process/inspector +0 -0
- data/script/process/reaper +0 -0
- data/script/process/spawner +0 -0
- data/script/runner +0 -0
- data/script/server +0 -0
- data/test/functional/works_controller_test.rb +28 -0
- data/test/unit/user_test.rb +1 -1
- data/vendor/plugins/goldspike/test/war_config_test_config.rb +0 -0
- data/vendor/plugins/will_paginate/test/console +0 -0
- metadata +5 -4
data/History.txt
CHANGED
@@ -1,4 +1,25 @@
|
|
1
|
-
== 0.
|
1
|
+
== 0.33.0 2008-05-09
|
2
|
+
|
3
|
+
== Features
|
4
|
+
|
5
|
+
* Upgraded JRuby to version 1.1.1 for the WAR distribution.
|
6
|
+
|
7
|
+
=== Fixes
|
8
|
+
|
9
|
+
* Changed to set the most commonly used backlog as default backlog for a new task.
|
10
|
+
* Copied the list of users that have grabbed a task when the task is moved to another period.
|
11
|
+
* Changed setting of start time for a new work record in the daily work sheet
|
12
|
+
to to completion time of the last work record on the same day,
|
13
|
+
or blank if there are no work records or the last work record was not completed yet..
|
14
|
+
* Added user_id parameter when navigating links in the daily and weekly work sheets.
|
15
|
+
* Changed to display expected number of hours per week instead of
|
16
|
+
adding 8 hours for public holidays and absences.
|
17
|
+
* Fixed wrong indent in Show Sprint view.
|
18
|
+
* Always show start time in works list.
|
19
|
+
* Fixed migrations to work with PostgreSQL 8.3
|
20
|
+
* Removed automatic setting of "completed at" time for works.
|
21
|
+
|
22
|
+
== 0.32.0 2008-05-08
|
2
23
|
|
3
24
|
== Features
|
4
25
|
|
@@ -65,7 +65,7 @@ class WorksController < ApplicationController
|
|
65
65
|
end
|
66
66
|
@work = Work.new(params[:work])
|
67
67
|
@work.started_on ||= Date.today
|
68
|
-
|
68
|
+
#@work.completed_at = Time.now unless @work.start_time || @work.completed_at
|
69
69
|
@work.calculate_hours! unless @work.hours && @work.hours.to_f > 0
|
70
70
|
@work.user_id = current_user.id
|
71
71
|
end
|
@@ -86,7 +86,11 @@ class WorksController < ApplicationController
|
|
86
86
|
|
87
87
|
@work.task.estimates.create!(params[:estimate]) if @work.task && params[:estimate]
|
88
88
|
|
89
|
-
|
89
|
+
if @work.task
|
90
|
+
back_or_redirect_to :controller => 'periods', :action => 'show', :id => @work.task && @work.task.period, :task_id => @work.task && @work.task.id
|
91
|
+
else
|
92
|
+
back_or_redirect_to :controller => 'works', :action => 'daily_work_sheet', :id => @work.started_on.strftime('%Y-%m-%d')
|
93
|
+
end
|
90
94
|
end
|
91
95
|
|
92
96
|
|
@@ -139,13 +143,14 @@ class WorksController < ApplicationController
|
|
139
143
|
if update_work
|
140
144
|
#flash.discard
|
141
145
|
@next_field = params[:next_field] || 'description'
|
142
|
-
works = Work.find_work_for_day((@work.started_on || @work.completed_at).to_date)
|
143
|
-
@day_total = works.inject(BigDecimal('0')){|total,work|total+=work.hours}
|
146
|
+
@works = Work.find_work_for_day((@work.started_on || @work.completed_at).to_date)
|
147
|
+
@day_total = @works.inject(BigDecimal('0')){|total,work|total+=work.hours}
|
144
148
|
else
|
145
149
|
@next_field = params[:field] || 'description'
|
146
150
|
end
|
147
151
|
@work_accounts = WorkAccount.find(:all, :order => :name)
|
148
152
|
@customers = Customer.find(:all, :order => :name)
|
153
|
+
@new_work = flash[:work] || Work.new(@works.last && @works.last.completed_at ? {:started_at => @works.last.completed_at} : nil)
|
149
154
|
end
|
150
155
|
|
151
156
|
def update_time
|
@@ -198,7 +203,7 @@ class WorksController < ApplicationController
|
|
198
203
|
@works = Work.find_work_for_day(@date, @user)
|
199
204
|
@customers = Customer.find(:all, :order => :name)
|
200
205
|
@started_works = Task.find_started
|
201
|
-
@new_work = flash[:work] || Work.new(:started_at =>
|
206
|
+
@new_work = flash[:work] || Work.new(@works.last && @works.last.completed_at ? {:started_at => @works.last.completed_at} : nil)
|
202
207
|
@work_accounts = WorkAccount.find(:all, :order => :name)
|
203
208
|
@absence = Absence.find(:first, :conditions => {:on => @date, :user_id => @user.id})
|
204
209
|
@public_holiday = PublicHoliday.find(:first, :conditions => {:on => @date})
|
data/app/models/period.rb
CHANGED
data/app/models/task.rb
CHANGED
@@ -179,6 +179,7 @@ class Task < ActiveRecord::Base
|
|
179
179
|
existing_task.open
|
180
180
|
existing_task.previous_task_id = self.previous_task_id || self.id
|
181
181
|
existing_task.description = self.description
|
182
|
+
existing_task.users = self.users
|
182
183
|
existing_task.save!
|
183
184
|
existing_task.estimate(old_todo)
|
184
185
|
return existing_task
|
@@ -195,6 +196,7 @@ class Task < ActiveRecord::Base
|
|
195
196
|
new_task.description = self.description
|
196
197
|
new_task.initial_estimate = self.initial_estimate
|
197
198
|
new_task.position = nil
|
199
|
+
new_task.users = self.users
|
198
200
|
new_task.save!
|
199
201
|
new_task.insert_at 1
|
200
202
|
new_task.estimate(old_todo)
|
@@ -7,7 +7,9 @@
|
|
7
7
|
<%=render :partial => '/tasks/fields_header', :locals => {:backlog => @backlog, :active => false, :track_times => false, :work_done => work_done} %>
|
8
8
|
<ul id="completed_tasks_<%=period && period.id%>" class="task_list" style="width: 100%;">
|
9
9
|
<% @completed_tasks.select {|t| t.period == period}.each do |task| %>
|
10
|
-
<%=render :partial => '/tasks/task', :locals => { :task => task, :i => i, :active => false,
|
10
|
+
<%=render :partial => '/tasks/task', :locals => { :task => task, :i => i, :active => false,
|
11
|
+
:highlight_task => task == @selected_task, :hidden => false,
|
12
|
+
:show_backlog => controller.class != BacklogsController, :update => :spotlight } %>
|
11
13
|
<% i += 1 %>
|
12
14
|
<% end %>
|
13
15
|
</ul>
|
data/app/views/tasks/_task.rhtml
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
<%=image_button_to('add.png', l(:specify), {:controller => 'tasks', :action => :specify, :id => @task.id},
|
7
7
|
:style => "margin-left: #{@task.depth * 2}em") %>
|
8
8
|
<% end %>
|
9
|
+
<% else %>
|
10
|
+
<%=image_tag 'blank.png', :class => 'image-submit', :style => "margin-left: 0em; padding: 0px" %>
|
9
11
|
<% end %>
|
10
12
|
</div>
|
11
13
|
<div style="float: left" style="border: 3px solid red">
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</td>
|
57
57
|
<td id="work_start_time_cell" align="right" valign="bottom">
|
58
58
|
<% field = 'start_time'; next_field = 'completed_at_time' %>
|
59
|
-
<%=text_field :work, :start_time, :value =>
|
59
|
+
<%=text_field :work, :start_time, :value => @new_work.start_time && @new_work.start_time.strftime('%H:%M'), :class => 'task_time',
|
60
60
|
:onchange => remote_function(:url => {:action => :update_new_row, :field => field,
|
61
61
|
:next_field => next_field},
|
62
62
|
:with => "
|
@@ -1,5 +1,7 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
<% user_parameter = @user != current_user ? @user.id : nil %>
|
2
|
+
|
3
|
+
<div style="float: left"><%=link_to(image_tag('arrow_left.png'), :year => (@week > 1 ? @year : @year - 1), :week => (@week > 1 ? @week - 1 : 52), :user_id => user_parameter)%></div>
|
4
|
+
<div style="float: right"><%=link_to(image_tag('arrow_right.png'), :year => (@week < 52 ? @year : @year + 1), :week => (@week < 52 ? @week + 1 : 1), :user_id => user_parameter)%></div>
|
3
5
|
|
4
6
|
<div align="right">
|
5
7
|
<% lock_action = @lock ? :unlock : :lock %>
|
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
<div id="spotlight">
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
<div style="float:
|
9
|
-
|
5
|
+
<% user_parameter = @user != current_user ? @user.id : nil %>
|
6
|
+
|
7
|
+
<div style="float: left"><%=image_link_to('arrow_left.png', l(:previous_week), {:id => @date - 7, :user_id => user_parameter}, :class => nil)%></div>
|
8
|
+
<div style="float: left"><%=image_link_to('arrow_left.png', l(:previous_day), {:id => @date-1, :user_id => user_parameter}, :class => nil)%></div>
|
9
|
+
<%=link_to l(:weekly_work_sheet), :action => :weekly_work_sheet, :year => @year, :week => @week, :user_id => user_parameter%>
|
10
|
+
<div style="float: right"><%=image_link_to('arrow_right.png', l(:next_week), {:id => @date + 7, :user_id => user_parameter}, :class => nil)%></div>
|
11
|
+
<div style="float: right"><%=image_link_to('arrow_right.png', l(:next_day), {:id => @date+1, :user_id => user_parameter}, :class => nil)%></div>
|
10
12
|
|
11
13
|
<br clear="all" />
|
12
14
|
|
data/app/views/works/list.rhtml
CHANGED
@@ -103,9 +103,7 @@
|
|
103
103
|
<th><%=l :done %></th>
|
104
104
|
<th><%=l :description %></th>
|
105
105
|
<th><%=l :invoice %></th>
|
106
|
-
<% if @period && @period.track_times? %>
|
107
106
|
<th><%=l :started_at %></th>
|
108
|
-
<% end %>
|
109
107
|
<th><%=l :completed_at %></th>
|
110
108
|
</tr>
|
111
109
|
|
@@ -122,9 +120,7 @@
|
|
122
120
|
%>
|
123
121
|
<td><%= link_to link, :controller => 'works', :action => 'daily_work_sheet', :id => work.started_on.strftime("%Y-%m-%d") %></td>
|
124
122
|
<td><%=work.invoice ? l(:yes) : '' %></td>
|
125
|
-
<% if @period && @period.track_times? %>
|
126
123
|
<td><%=work.started_at && work.started_at.strftime('%Y-%m-%d %H:%M:%S') %></td>
|
127
|
-
<% end %>
|
128
124
|
<td valign="top"><%=work.completed_at && work.completed_at.strftime('%Y-%m-%d %H:%M:%S') %></td>
|
129
125
|
<tr>
|
130
126
|
<% end %>
|
@@ -9,11 +9,25 @@
|
|
9
9
|
<tr>
|
10
10
|
<th><%=l :work_account %></th>
|
11
11
|
<% [:monday, :tuesday, :wednesday, :thursday, :friday, :saturday, :sunday].each_with_index do |day, i| %>
|
12
|
-
|
12
|
+
<th align="center"><%=detour_to "#{l(day)} #{week_date(i+1)}", :action => :daily_work_sheet, :id => (@first_date + i).strftime('%Y-%m-%d'), :user_id => (@user != current_user ? @user : nil) %></th>
|
13
13
|
<% end %>
|
14
14
|
<th align="center" nowrap="true"><%=l :week %> <%=@week%></th>
|
15
15
|
</tr>
|
16
16
|
|
17
|
+
<% unless (@absences + @public_holidays).compact.empty? %>
|
18
|
+
<tr>
|
19
|
+
<th/>
|
20
|
+
<% (0..6).each do |i| %>
|
21
|
+
<th><span style="color: red">
|
22
|
+
<%=l :public_holiday if @public_holidays[i] %>
|
23
|
+
<%=l :absent if @absences[i] %>
|
24
|
+
</span>
|
25
|
+
</th>
|
26
|
+
<% end %>
|
27
|
+
<th/>
|
28
|
+
</tr>
|
29
|
+
<% end %>
|
30
|
+
|
17
31
|
<% week_totals = Hash.new(0) %>
|
18
32
|
<% day_totals = Array.new(7, 0) %>
|
19
33
|
<% for work_account, totals in @work_accounts %>
|
@@ -35,12 +49,13 @@
|
|
35
49
|
<% end %>
|
36
50
|
<tr>
|
37
51
|
<th><%=l :totals%></th>
|
52
|
+
<% expected_week_total = BigDecimal('40') %>
|
38
53
|
<% (0..6).each do |day| %>
|
39
|
-
<%
|
54
|
+
<% expected_week_total -= BigDecimal('8') if @absences[day] || @public_holidays[day] %>
|
40
55
|
<th class="hours"><%=t(day_totals[day]) if day_totals[day] > 0%></th>
|
41
56
|
<% end %>
|
42
57
|
<% week_total = day_totals.inject(BigDecimal('0')) {|total, day_total| total + day_total} %>
|
43
|
-
<th class="hours"><%=t(week_total)%></th>
|
58
|
+
<th class="hours"><%=t(week_total)%><%=" (#{t expected_week_total})" unless expected_week_total == 40 %></th>
|
44
59
|
</tr>
|
45
60
|
</table>
|
46
61
|
|
data/bin/backlog
CHANGED
File without changes
|
data/bin/backlog_init.d
CHANGED
File without changes
|
File without changes
|
data/config/war.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Goldspike configuration
|
2
2
|
|
3
3
|
# Set the version of JRuby and GoldSpike to use:
|
4
|
-
maven_library 'org.jruby', 'jruby-complete', '1.
|
4
|
+
maven_library 'org.jruby', 'jruby-complete', '1.1.1'
|
5
5
|
maven_library 'backport-util-concurrent', 'backport-util-concurrent', '3.0'
|
6
6
|
#maven_library 'org.jruby.extras', 'goldspike', '1.3-SNAPSHOT'
|
7
7
|
|
@@ -10,9 +10,9 @@ maven_library 'postgresql', 'postgresql', '8.2-504.jdbc4'
|
|
10
10
|
#maven_library 'bouncycastle', 'bcprov-jdk16', '136'
|
11
11
|
|
12
12
|
add_gem('jruby-openssl', '>=0.0.4')
|
13
|
-
add_gem('rubyforge', '>=0.
|
13
|
+
add_gem('rubyforge', '>=1.0.0')
|
14
14
|
add_gem('rmagick4j', '>=0.3.3')
|
15
|
-
add_gem('gruff', '>=0.
|
15
|
+
add_gem('gruff', '>=0.3.1')
|
16
16
|
add_gem('slave', '>=1.2.1')
|
17
17
|
|
18
18
|
exclude_files('pkg')
|
@@ -53,7 +53,7 @@ class InsertDatekProjects < ActiveRecord::Migration
|
|
53
53
|
Backlog.reset_column_information
|
54
54
|
|
55
55
|
projects.each do |invoice_code, name|
|
56
|
-
if backlog = Backlog.find_by_invoice_code(invoice_code)
|
56
|
+
if backlog = Backlog.find_by_invoice_code(invoice_code.to_s)
|
57
57
|
if backlog.invoice_code.nil? || backlog.invoice_code.length >= 31
|
58
58
|
puts "Set Mamut project code to #{invoice_code} for '#{name}'"
|
59
59
|
backlog.invoice_code = invoice_code
|
data/db/schema.rb
CHANGED
@@ -151,29 +151,29 @@ ActiveRecord::Schema.define(:version => 31) do
|
|
151
151
|
|
152
152
|
add_foreign_key "absences", ["user_id"], "users", ["party_id"], :name => "absences_user_id_fkey"
|
153
153
|
|
154
|
-
add_foreign_key "backlogs", ["customer_id"], "customers", ["id"], :name => "backlogs_customer_id_fkey"
|
155
154
|
add_foreign_key "backlogs", ["work_account_id"], "work_accounts", ["id"], :name => "backlogs_work_account_id_fkey"
|
155
|
+
add_foreign_key "backlogs", ["customer_id"], "customers", ["id"], :name => "backlogs_customer_id_fkey"
|
156
156
|
|
157
|
-
add_foreign_key "estimates", ["user_id"], "users", ["party_id"], :name => "estimates_user_id_fkey"
|
158
157
|
add_foreign_key "estimates", ["task_id"], "tasks", ["id"], :name => "estimates_task_id_fkey"
|
158
|
+
add_foreign_key "estimates", ["user_id"], "users", ["party_id"], :name => "estimates_user_id_fkey"
|
159
159
|
|
160
160
|
add_foreign_key "groups", ["party_id"], "parties", ["id"], :name => "groups_party_id_fkey"
|
161
161
|
|
162
|
-
add_foreign_key "groups_users", ["user_id"], "users", ["party_id"], :name => "groups_users_user_id_fkey"
|
163
162
|
add_foreign_key "groups_users", ["group_id"], "groups", ["party_id"], :name => "groups_users_group_id_fkey"
|
163
|
+
add_foreign_key "groups_users", ["user_id"], "users", ["party_id"], :name => "groups_users_user_id_fkey"
|
164
164
|
|
165
165
|
add_foreign_key "periods", ["party_id"], "parties", ["id"], :name => "periods_party_id_fkey"
|
166
166
|
|
167
167
|
add_foreign_key "task_files", ["task_id"], "tasks", ["id"], :name => "task_files_task_id_fkey"
|
168
168
|
|
169
|
-
add_foreign_key "tasks", ["updated_by"], "users", ["party_id"], :name => "tasks_updated_by_fkey"
|
170
|
-
add_foreign_key "tasks", ["created_by"], "users", ["party_id"], :name => "tasks_created_by_fkey"
|
171
|
-
add_foreign_key "tasks", ["customer_id"], "customers", ["id"], :name => "tasks_customer_id_fkey"
|
172
|
-
add_foreign_key "tasks", ["work_account_id"], "work_accounts", ["id"], :name => "tasks_work_account_id_fkey"
|
173
|
-
add_foreign_key "tasks", ["backlog_id"], "backlogs", ["id"], :name => "tasks_backlog_id_fkey"
|
174
|
-
add_foreign_key "tasks", ["previous_task_id"], "tasks", ["id"], :name => "tasks_previous_task_id_fkey"
|
175
|
-
add_foreign_key "tasks", ["parent_id"], "tasks", ["id"], :name => "tasks_parent_id_fkey"
|
176
169
|
add_foreign_key "tasks", ["period_id"], "periods", ["id"], :name => "tasks_period_id_fkey"
|
170
|
+
add_foreign_key "tasks", ["parent_id"], "tasks", ["id"], :name => "tasks_parent_id_fkey"
|
171
|
+
add_foreign_key "tasks", ["previous_task_id"], "tasks", ["id"], :name => "tasks_previous_task_id_fkey"
|
172
|
+
add_foreign_key "tasks", ["backlog_id"], "backlogs", ["id"], :name => "tasks_backlog_id_fkey"
|
173
|
+
add_foreign_key "tasks", ["work_account_id"], "work_accounts", ["id"], :name => "tasks_work_account_id_fkey"
|
174
|
+
add_foreign_key "tasks", ["customer_id"], "customers", ["id"], :name => "tasks_customer_id_fkey"
|
175
|
+
add_foreign_key "tasks", ["created_by"], "users", ["party_id"], :name => "tasks_created_by_fkey"
|
176
|
+
add_foreign_key "tasks", ["updated_by"], "users", ["party_id"], :name => "tasks_updated_by_fkey"
|
177
177
|
|
178
178
|
add_foreign_key "tasks_users", ["task_id"], "tasks", ["id"], :name => "tasks_users_task_id_fkey"
|
179
179
|
add_foreign_key "tasks_users", ["user_id"], "users", ["party_id"], :name => "tasks_users_user_id_fkey"
|
@@ -188,9 +188,9 @@ ActiveRecord::Schema.define(:version => 31) do
|
|
188
188
|
|
189
189
|
add_foreign_key "work_locks", ["user_id"], "users", ["party_id"], :name => "work_locks_user_id_fkey"
|
190
190
|
|
191
|
-
add_foreign_key "works", ["work_account_id"], "work_accounts", ["id"], :name => "works_work_account_id_fkey"
|
192
|
-
add_foreign_key "works", ["customer_id"], "customers", ["id"], :name => "works_customer_id_fkey"
|
193
|
-
add_foreign_key "works", ["user_id"], "users", ["party_id"], :name => "works_user_id_fkey"
|
194
191
|
add_foreign_key "works", ["task_id"], "tasks", ["id"], :name => "works_task_id_fkey"
|
192
|
+
add_foreign_key "works", ["user_id"], "users", ["party_id"], :name => "works_user_id_fkey"
|
193
|
+
add_foreign_key "works", ["customer_id"], "customers", ["id"], :name => "works_customer_id_fkey"
|
194
|
+
add_foreign_key "works", ["work_account_id"], "work_accounts", ["id"], :name => "works_work_account_id_fkey"
|
195
195
|
|
196
196
|
end
|
data/lang/en.yaml
CHANGED
data/lang/no.yaml
CHANGED
data/public/dispatch.cgi
CHANGED
File without changes
|
data/public/dispatch.fcgi
CHANGED
File without changes
|
data/public/dispatch.rb
CHANGED
File without changes
|
Binary file
|
data/script/about
CHANGED
File without changes
|
data/script/breakpointer
CHANGED
File without changes
|
data/script/console
CHANGED
File without changes
|
data/script/destroy
CHANGED
File without changes
|
data/script/generate
CHANGED
File without changes
|
File without changes
|
data/script/performance/profiler
CHANGED
File without changes
|
data/script/plugin
CHANGED
File without changes
|
data/script/process/inspector
CHANGED
File without changes
|
data/script/process/reaper
CHANGED
File without changes
|
data/script/process/spawner
CHANGED
File without changes
|
data/script/runner
CHANGED
File without changes
|
data/script/server
CHANGED
File without changes
|
@@ -110,6 +110,34 @@ class WorksControllerTest < Test::Unit::TestCase
|
|
110
110
|
assert_equal BigDecimal('0.333'), assigns(:work).hours
|
111
111
|
end
|
112
112
|
|
113
|
+
def test_create_with_old_start_date_and_completed_at_time
|
114
|
+
num_works = Work.count
|
115
|
+
|
116
|
+
post :create, :work => {:task_id => 1, :started_on => '2007-07-31', :work_account_id => '1',
|
117
|
+
:start_time => '12:00', :completed_at_time => '12:20'}
|
118
|
+
|
119
|
+
assert_response :redirect
|
120
|
+
assert_redirected_to :controller => 'periods', :action => 'show', :id => periods(:past).id, :task_id => 1
|
121
|
+
|
122
|
+
assert_equal num_works + 1, Work.count
|
123
|
+
assert_equal BigDecimal('0.333'), assigns(:work).hours
|
124
|
+
assert_equal Time.parse('2007-07-31 12:20'), assigns(:work).completed_at
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_create_with_old_start_date_and_no_times
|
128
|
+
num_works = Work.count
|
129
|
+
|
130
|
+
post :create, :work => {:started_on => '2007-07-31', :work_account_id => '1', :hours_time => '3:00'}
|
131
|
+
|
132
|
+
assert_response :redirect
|
133
|
+
assert_redirected_to :controller => 'works', :action => 'daily_work_sheet', :id => '2007-07-31'
|
134
|
+
|
135
|
+
assert_equal num_works + 1, Work.count
|
136
|
+
assert_equal BigDecimal('3.000'), assigns(:work).hours
|
137
|
+
assert_nil assigns(:work).start_time
|
138
|
+
assert_nil assigns(:work).completed_at
|
139
|
+
end
|
140
|
+
|
113
141
|
def test_edit
|
114
142
|
get :edit, :id => 1
|
115
143
|
|
data/test/unit/user_test.rb
CHANGED
@@ -7,7 +7,7 @@ class UserTest < Test::Unit::TestCase
|
|
7
7
|
def test_authenticate
|
8
8
|
assert_equal users(:tesla), User.authenticate(users(:tesla).login, "atest")
|
9
9
|
assert_nil User.authenticate("nontesla", "atest")
|
10
|
-
assert_nil User.authenticate(users(:tesla), "wrong password")
|
10
|
+
assert_nil User.authenticate(users(:tesla).login, "wrong password")
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_authenticate_by_token
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backlog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.33.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Uwe Kubosch
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-05-
|
12
|
+
date: 2008-05-23 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
requirements:
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: 1.5.
|
58
|
+
version: 1.5.3
|
59
59
|
version:
|
60
60
|
description: Welcome to Backlog! Backlog is a tool to help you collect and organize all your tasks, whether you are a single person or a small or large group.
|
61
61
|
email: uwe@kubosch.no
|
@@ -596,6 +596,7 @@ files:
|
|
596
596
|
- public/images/rmagick_270.gif
|
597
597
|
- public/images/arrow_right.svg
|
598
598
|
- public/images/arrow_left.png
|
599
|
+
- public/images/blank.png
|
599
600
|
- public/images/arrow_right.png
|
600
601
|
- public/images/arrow_down.svg
|
601
602
|
- public/images/grab_gray.png
|
@@ -757,7 +758,7 @@ requirements:
|
|
757
758
|
- ImageMagick
|
758
759
|
- PostgreSQL
|
759
760
|
rubyforge_project: backlog
|
760
|
-
rubygems_version: 1.
|
761
|
+
rubygems_version: 1.1.1
|
761
762
|
signing_key:
|
762
763
|
specification_version: 2
|
763
764
|
summary: Application to aid collecting, processing, organizing, reviewing and doing tasks.
|