backlog 0.10.0 → 0.10.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,21 @@
1
+ == 0.10.1 2007-09-23
2
+
3
+ === Features
4
+
5
+ === Fixes
6
+
7
+ * Fixed bug in "remember me" login when running with JRuby
8
+ * Fixed bug when moving a task to next sprint on mysql
9
+ * Made user message more visible, especially register messages.
10
+ * Added explanatory text in log for reading global config.
11
+ * Excluded "pkg" from war file to avoid duplicates and save space.
12
+ * Removed "bouncycastle" from WAR to get it to run on Tomcat.
13
+ * Merged migration steps 001 and 002 to get them to run on SQLite.
14
+ * Fixed reading of application version when running with JRuby.
15
+ * Excluded "log" and "WEB-INF" directories from gem to save space.
16
+ * Added "rails" to gem dependencies since Rails is not included anymore.
17
+ * Bumped dependent version of rmagick from 1.15.9 to 1.15.10 to get the newest fixes.
18
+
1
19
  == 0.10.0 2007-09-21
2
20
 
3
21
  === Features
data/Rakefile CHANGED
@@ -21,7 +21,7 @@ Hoe.new("backlog", APP::VERSION) do |p|
21
21
  p.remote_rdoc_dir = '' # Release to root
22
22
  p.changes = p.paragraphs_of('History.txt', 0..4).join("\n\n")
23
23
  p.rdoc_pattern = /^(app\/(controllers|helpers|models)|lib|bin)|txt$/
24
- p.clean_globs = ['doc', 'log']
24
+ p.clean_globs = ['doc', 'log/*']
25
25
  p.spec_extras = {
26
26
  :files => Dir['**/*'].reject{|file_name| file_name =~ /^(doc|log|pkg|tmp|WEB-INF)/},
27
27
  :rdoc_options => ['--inline-source'],
@@ -30,16 +30,16 @@ Hoe.new("backlog", APP::VERSION) do |p|
30
30
  }
31
31
  p.need_zip = true
32
32
  p.url = 'http://rubyforge.org/projects/backlog/'
33
- p.extra_deps = [['gruff', '>= 0.2.8'], ['rmagick', '>= 1.15.9'], ['postgres', '>= 0.7.1']]
33
+ p.extra_deps = [['rails', '>= 1.2.3'], ['gruff', '>= 0.2.8'], ['rmagick', '>= 1.15.10'], ['postgres', '>= 0.7.1']]
34
34
  p.rsync_args = "-av --delete --exclude=wiki*"
35
35
  end
36
36
 
37
37
  task :release_all do
38
38
  ENV['VERSION'] = APP::VERSION
39
- #Rake::Task[:publish_docs].invoke
39
+ Rake::Task[:publish_docs].invoke
40
40
  Rake::Task[:release].invoke
41
41
  Rake::Task[:release_war].invoke
42
- #Rake::Task[:post_news].invoke
42
+ Rake::Task[:post_news].invoke
43
43
  end
44
44
 
45
45
  task :release_war do
@@ -157,6 +157,12 @@ class UserController < ApplicationController
157
157
  case request.method
158
158
  when :get
159
159
  @user = User.new
160
+ if cookie = cookies['autologin']
161
+ cookie_value = cookie[0]
162
+ if remembered_user = User.find(:first, :conditions => ["id = ?", cookie_value])
163
+ @user.login = remembered_user.login
164
+ end
165
+ end
160
166
  render
161
167
  return true
162
168
  end
@@ -165,6 +165,7 @@ class Task < ActiveRecord::Base
165
165
  new_task.period = new_period
166
166
  new_task.description = self.description
167
167
  new_task.initial_estimate = self.initial_estimate
168
+ new_task.save!
168
169
  new_task.insert_at 1
169
170
  new_task.position = 1
170
171
  new_task.save!
@@ -18,6 +18,21 @@
18
18
  <%=flash[:notice]%>
19
19
  </div>
20
20
  <% end %>
21
+ <% if flash['notice'] %>
22
+ <div id="notice">
23
+ <%=flash['notice']%>
24
+ </div>
25
+ <% end %>
26
+ <% if flash[:notice] %>
27
+ <div id="message">
28
+ <%=flash[:message]%>
29
+ </div>
30
+ <% end %>
31
+ <% if flash['message'] %>
32
+ <div id="message">
33
+ <%=flash['message']%>
34
+ </div>
35
+ <% end %>
21
36
  <%= error_messages_for :backlog %>
22
37
  <%= error_messages_for :estimate %>
23
38
  <%= error_messages_for :group %>
@@ -1,14 +1,12 @@
1
1
  <% @page_title = l(:please_login) %>
2
2
 
3
3
  <div title="<%= title_helper %>" class="form">
4
- <%= head_helper ' ' %>
5
-
6
4
  <div class="form-padding">
7
5
  <%= start_form_tag_helper %>
8
6
  <table>
9
7
  <tr class="two_columns">
10
8
  <td class="prompt"><label>Login:</label></td>
11
- <td class="value"><%= text_field 'user', 'login', :size => 30, :value => cookies['autologin'] && User.find(cookies['autologin'][0]).login %></td>
9
+ <td class="value"><%= text_field 'user', 'login', :size => 30 %></td>
12
10
  </tr>
13
11
  <tr class="two_columns">
14
12
  <td class="prompt"><label>Password:</label></td>
@@ -16,16 +16,24 @@ require File.join(File.dirname(__FILE__), 'boot')
16
16
  # The following section has been added to load database settings from system config.
17
17
  APP_CONFIG_FILE = Config::CONFIG["sysconfdir"] + '/backlog.conf'
18
18
  if File.exists? APP_CONFIG_FILE
19
+ puts "Found global config file (#{APP_CONFIG_FILE})"
19
20
  module Rails
20
21
  class Configuration
21
22
  def database_configuration
22
23
  db_conf = YAML::load(ERB.new(IO.read(database_configuration_file)).result)
23
24
  app_conf = YAML::load(ERB.new(IO.read(APP_CONFIG_FILE)).result)
24
- db_conf['production'] = app_conf['database'] if app_conf['database']
25
+ if db_settings = app_conf['database']
26
+ puts "Found global database connection settings: #{db_settings.inspect}"
27
+ db_conf['production'] = db_settings
28
+ else
29
+ puts "Did not find global database connection settings: #{app_conf.inspect}"
30
+ end
25
31
  db_conf
26
32
  end
27
33
  end
28
34
  end
35
+ else
36
+ puts "Global config file not found (#{APP_CONFIG_FILE})"
29
37
  end
30
38
 
31
39
  if RUBY_PLATFORM =~ /java/
@@ -1,15 +1,22 @@
1
1
  class CreateTasks < ActiveRecord::Migration
2
2
  def self.up
3
+ create_table :backlogs do |table|
4
+ table.column :name, :string, :limit => 32, :null => false
5
+ end
6
+
3
7
  create_table :tasks do |table|
4
8
  table.column :position, :integer, :null => true
5
9
  table.column :description, :string, :limit => 80, :null => false
6
10
  table.column :assigned_to, :integer
7
11
  table.column :estimate, :time
8
12
  table.column :finished_at, :datetime
13
+ table.column :backlog_id, :integer, :null => false
9
14
  end
10
15
  end
11
16
 
12
17
  def self.down
13
18
  drop_table :tasks
19
+ drop_table :backlogs
14
20
  end
21
+
15
22
  end
@@ -25,18 +25,21 @@ th.hours {text-align: right;}
25
25
  }
26
26
 
27
27
  #notice {
28
+ width: 320px;
28
29
  border: 2px solid green;
29
30
  padding: 7px;
30
31
  padding-bottom: 12px;
31
32
  margin: 1em;
32
33
  margin-left: 0px;
33
- background: transparent;
34
+ color: #080;
35
+ background: white;
34
36
  float: right;
37
+ font-size: 15px;
35
38
  }
36
39
 
37
40
  #errorExplanation {
38
41
  border: 2px solid red;
39
- padding: 7px;
42
+ padding: 7px;
40
43
  padding-bottom: 12px;
41
44
  margin: 1em;
42
45
  margin-left: 0px;
@@ -2,12 +2,7 @@ require File.dirname(__FILE__) + '/../test_helper'
2
2
  require 'tasks_controller'
3
3
 
4
4
  # Re-raise errors caught by the controller.
5
- class TasksController
6
- def rescue_action(e)
7
- puts e.backtrace.join("\n")
8
- raise(e)
9
- end
10
- end
5
+ class TasksController; def rescue_action(e) raise e end; end
11
6
 
12
7
  class TasksControllerTest < Test::Unit::TestCase
13
8
  fixtures :parties, :users, :groups, :groups_users, :backlogs, :periods, :tasks, :task_files, :works, :estimates
@@ -19,6 +14,10 @@ class TasksControllerTest < Test::Unit::TestCase
19
14
  @request.session[:user_id] = 1000001
20
15
  end
21
16
 
17
+ def teardown
18
+ assert_sequences
19
+ end
20
+
22
21
  def test_index
23
22
  get :index
24
23
  assert_redirected_to :controller => 'backlogs'
@@ -200,7 +199,24 @@ class TasksControllerTest < Test::Unit::TestCase
200
199
  new_task = Task.find_by_period_id_and_previous_task_id(periods(:future).id, before.id)
201
200
  assert_nil new_task.finished_at
202
201
  assert_nil new_task.resolution
203
- tasks = Task.find_all_by_period_id(3)
202
+ assert_equal 1, new_task.position
203
+ end
204
+
205
+ def test_move_to_next_period_from_past
206
+ task = tasks(:first)
207
+ before = Task.find(task.id)
208
+
209
+ post :move_to_next_period, :id => task.id
210
+
211
+ assert_response :redirect
212
+ assert_redirected_to :controller => 'periods', :action => :show, :id => periods(:past)
213
+
214
+ after = Task.find(task.id)
215
+ assert_equal task.period_id, after.period_id
216
+
217
+ new_task = Task.find_by_period_id_and_previous_task_id(periods(:active).id, task.id)
218
+ assert_nil new_task.finished_at
219
+ assert_nil new_task.resolution
204
220
  assert_equal 1, new_task.position
205
221
  end
206
222
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: backlog
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.10.0
7
- date: 2007-09-22 00:00:00 +02:00
6
+ version: 0.10.1
7
+ date: 2007-09-23 00:00:00 +02:00
8
8
  summary: Application to aid collecting, processing, organizing, reviewing and doing tasks.
9
9
  require_paths:
10
10
  - lib
@@ -130,7 +130,6 @@ files:
130
130
  - db/migrate/003_add_estimation_points.rb
131
131
  - db/migrate/007_add_task_created_at.rb
132
132
  - db/migrate/004_add_period.rb
133
- - db/migrate/002_create_backlogs.rb
134
133
  - db/migrate/016_add_invoicable_flag.rb
135
134
  - db/migrate/018_create_groups.rb
136
135
  - db/migrate/005_add_field_work_started_at.rb
@@ -448,6 +447,15 @@ requirements:
448
447
  - ImageMagick or GraphicsMagick
449
448
  - PostgreSQL
450
449
  dependencies:
450
+ - !ruby/object:Gem::Dependency
451
+ name: rails
452
+ version_requirement:
453
+ version_requirements: !ruby/object:Gem::Version::Requirement
454
+ requirements:
455
+ - - ">="
456
+ - !ruby/object:Gem::Version
457
+ version: 1.2.3
458
+ version:
451
459
  - !ruby/object:Gem::Dependency
452
460
  name: gruff
453
461
  version_requirement:
@@ -464,7 +472,7 @@ dependencies:
464
472
  requirements:
465
473
  - - ">="
466
474
  - !ruby/object:Gem::Version
467
- version: 1.15.9
475
+ version: 1.15.10
468
476
  version:
469
477
  - !ruby/object:Gem::Dependency
470
478
  name: postgres
@@ -1,31 +0,0 @@
1
- class CreateBacklogs < ActiveRecord::Migration
2
- def self.up
3
- create_table :backlogs do |table|
4
- table.column :name, :string, :limit => 32, :null => false
5
- end
6
-
7
- if Task.count > 0
8
- default_backlog = Backlog.create! :name => 'Default Backlog'
9
- add_column :tasks, :backlog_id, :integer, :null => false, :default => default_backlog.id
10
-
11
- # TODO(uwe): This line is only needed because Rails 1.2 cannot set default to NULL
12
- change_column_default :tasks, :backlog_id, 0
13
-
14
- change_column_default :tasks, :backlog_id, nil
15
- else
16
- add_column :tasks, :backlog_id, :integer, :null => false
17
- end
18
- end
19
-
20
- def self.down
21
- remove_column :tasks, :backlog_id
22
- drop_table :backlogs
23
- end
24
-
25
- class Task < ActiveRecord::Base
26
- end
27
-
28
- class Backlog < ActiveRecord::Base
29
- end
30
-
31
- end