backlog 0.21.2 → 0.21.3

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,17 @@
1
+ == 0.21.3 2008-02-13
2
+
3
+ === Features
4
+
5
+ * Added link to weekly work sheet from daily work sheet.
6
+
7
+ === Fixes
8
+
9
+ * Fixed reading the default host/port for Work Lock Nag email from the local network settings and backlog.conf.
10
+ * Fixed adding startup links on non-redhat unix distributions. Now use "ln -s ..." instead.
11
+ * Fixed bug that could occur when finishing tasks.
12
+ * Fixed bug when starting two tasks at the same time.
13
+ * Added missing dependency for the "slave" gem to WAR cofig.
14
+
1
15
  == 0.21.2 2008-02-08
2
16
 
3
17
  === Features
data/Rakefile CHANGED
@@ -34,7 +34,7 @@ Hoe.new("backlog", APP::VERSION) do |p|
34
34
  p.url = 'http://rubyforge.org/projects/backlog/'
35
35
  p.extra_deps = [['rails', '>= 1.2.4'], ['gruff', '>= 0.2.9'], ['rmagick', '= 1.15.12'],
36
36
  ['postgres', '>= 0.7.9'], ['slave', '>= 1.2.1']]
37
- p.rsync_args = "-av --delete --exclude=wiki*"
37
+ p.rsync_args = "-acuv --delete --exclude=wiki*"
38
38
  end
39
39
 
40
40
  desc 'Release the application to RubyForge'
@@ -44,7 +44,6 @@ class UserController < ApplicationController
44
44
  end
45
45
 
46
46
  def logout
47
- session[:user_id] = nil
48
47
  self.current_user = nil
49
48
  cookies.delete :autologin
50
49
  redirect_to :action => 'login'
@@ -45,7 +45,7 @@ module PeriodsHelper
45
45
  page.insert_html :top, period_tag_id, %Q{<ul id="#{list_tag_id}" class="task_list"/>}
46
46
  page.insert_html :top, period_tag_id, :partial => '/tasks/fields_header', :locals => {:backlog => @task.backlog, :active => false, :work_done => work_done}
47
47
  end
48
- page.insert_html :top, list_tag_id, :partial => '/tasks/task', :locals => {:active => false, :hidden => true, :highlight_task => false}
48
+ page.insert_html :top, list_tag_id, :partial => '/tasks/task', :locals => {:active => false, :hidden => true, :highlight_task => false, :show_backlog => true}
49
49
  page.visual_effect :appear, "task_#{@task.id}"
50
50
 
51
51
  end
@@ -1,17 +1,2 @@
1
1
  module TasksHelper
2
2
  end
3
-
4
- class Time
5
- def self.next_quarter
6
- now = Time.now
7
- now -= now.sec
8
- next_quarter = now + (15 - now.min % 15).minutes
9
- end
10
-
11
- def self.previous_quarter
12
- now = Time.now
13
- now -= now.sec
14
- previous_quarter = now - (now.min % 15).minutes
15
- end
16
-
17
- end
data/app/models/task.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'time_extras'
2
+
1
3
  class Task < ActiveRecord::Base
2
4
  extend UserSystem
3
5
  include UserSystem
@@ -349,9 +351,9 @@ class Task < ActiveRecord::Base
349
351
 
350
352
  new_work.started_at = Time.previous_quarter
351
353
  if current_user
352
- last_work = current_user.works.last
354
+ last_work = current_user.works.select {|w| w.completed_at}.last
353
355
  else
354
- last_work = Work.find(:first, :order => 'compeleted_at DESC')
356
+ last_work = Work.find(:first, :conditions => 'completed_at IS NOT NULL', :order => 'completed_at DESC')
355
357
  end
356
358
  if last_work && last_work.completed_at > new_work.started_at
357
359
  new_work.started_at = last_work.completed_at
@@ -8,11 +8,14 @@ class WorkLockNagger
8
8
  sleep 1.minute
9
9
  puts "Work Lock Nagger started"
10
10
  begin
11
- host = Socket::gethostbyname('localhost')[1][1]
12
11
  config = YAML::load(ERB.new(IO.read(APP_CONFIG_FILE)).result) || {}
13
- port = config[:port] || 3000
14
-
15
- url = url_for(:host => host, :port => port, :controller => 'works', :action => :weekly_work_sheet_by_work_account)
12
+ if app_url = config[:app_url]
13
+ url = app_url + 'works/weekly_work_sheet_by_work_account'
14
+ else
15
+ host = Socket::gethostname
16
+ port = config[:port] || 3000
17
+ url = url_for(:host => host, :port => port, :controller => 'works', :action => :weekly_work_sheet_by_work_account)
18
+ end
16
19
  rescue Exception => e
17
20
  puts e.message
18
21
  puts e.backtrace
@@ -10,6 +10,12 @@
10
10
  <br clear="all" />
11
11
 
12
12
  <table sstyle="width: 100%" border="0">
13
+ <tr>
14
+ <th align="right" colspan="5">
15
+ <%=link_to l(:weekly_work_sheet), :action => :weekly_work_sheet_by_work_account%>
16
+ </th>
17
+ </tr>
18
+
13
19
  <tr>
14
20
  <th><%=l :account %></th>
15
21
  <th><%=l :description %></th>
data/bin/backlog CHANGED
@@ -146,10 +146,31 @@ when 'setup_unix'
146
146
  File.delete startup_app if File.exists? startup_app
147
147
  `cp -p #{INSTALL_DIR}/bin/backlog_init.d #{startup_app}` unless File.exists? startup_app
148
148
  `chmod a+x #{startup_app}` if File.exists? startup_app
149
+ (0..6).each do |run_level|
150
+ link_name = "/etc/rc#{run_level}.d/S88#{APPLICATION}"
151
+ kill_link_name = "/etc/rc#{run_level}.d/K12#{APPLICATION}"
152
+ if [3,4,5].include? run_level
153
+ unless File.exists? link_name
154
+ puts "Creating startup link for run level #{run_level}."
155
+ `su - -c "ln -s /etc/init.d/#{APPLICATION} #{link_name}"`
156
+ end
157
+ if File.exists? kill_link_name
158
+ puts "Removing kill link for run level #{run_level}."
159
+ `su - -c "rm #{kill_link_name}"`
160
+ end
161
+ else
162
+ if File.exists? link_name
163
+ puts "Removing startup link for run level #{run_level}."
164
+ `su - -c "rm #{link_name}"`
165
+ end
166
+ unless File.exists? kill_link_name
167
+ puts "Creating kill link for run level #{run_level}."
168
+ `su - -c "ln -s /etc/init.d/#{APPLICATION} #{kill_link_name}"`
169
+ end
170
+ end
171
+ end
149
172
  end
150
173
  FileUtils.cp "#{INSTALL_DIR}/etc/#{APPLICATION}.conf", config_file unless File.exists? config_file
151
- `su - -c "chkconfig --add #{APPLICATION}"`
152
- `su - -c "chkconfig #{APPLICATION} on"`
153
174
  puts
154
175
  else
155
176
  puts "Usage: #$0 {start|stop|restart|status|setup_unix [bsd] [debug]}"
data/config/war.rb CHANGED
@@ -1,18 +1,19 @@
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.0'
4
+ maven_library 'org.jruby', 'jruby-complete', '1.1RC1'
5
+ maven_library 'backport-util-concurrent', 'backport-util-concurrent', '3.0'
5
6
  #maven_library 'org.jruby.extras', 'goldspike', '1.3-SNAPSHOT'
6
7
 
7
8
  # Add a Java library from the Maven repository:
8
9
  maven_library 'postgresql', 'postgresql', '8.2-504.jdbc4'
9
10
  #maven_library 'bouncycastle', 'bcprov-jdk16', '136'
10
11
 
11
- #add_gem('postgres-pr', '>=0.0.1')
12
12
  add_gem('jruby-openssl', '>=0.0.4')
13
13
  add_gem('rubyforge', '>=0.4.4')
14
14
  add_gem('rmagick4j', '>=0.3.3')
15
15
  add_gem('gruff', '>=0.2.8')
16
+ add_gem('slave', '>=1.2.1')
16
17
 
17
18
  exclude_files('pkg')
18
19
 
data/lib/clock.rb CHANGED
@@ -11,4 +11,4 @@ class Clock
11
11
  def self.time=
12
12
  raise "Cannot set real Clock class"
13
13
  end
14
- end
14
+ end
@@ -0,0 +1,14 @@
1
+ class Time
2
+ def self.next_quarter
3
+ now = Time.now
4
+ now -= now.sec
5
+ next_quarter = now + (15 - now.min % 15).minutes
6
+ end
7
+
8
+ def self.previous_quarter
9
+ now = Time.now
10
+ now -= now.sec
11
+ previous_quarter = now - (now.min % 15).minutes
12
+ end
13
+
14
+ end
data/lib/user_system.rb CHANGED
@@ -87,7 +87,7 @@ module UserSystem
87
87
  end
88
88
 
89
89
  def current_user= user
90
- session[:user_id] = user && user.id
90
+ session[:user_id] = user && user.id if @session
91
91
  Thread.current[:user] = user
92
92
  end
93
93
 
@@ -3,10 +3,11 @@ require 'yaml'
3
3
  require 'bigdecimal'
4
4
  require 'rubygems'
5
5
  require 'active_support'
6
+ require 'big_decimal_yaml_fix'
6
7
 
7
8
  class BigDecimalYamlTest < Test::Unit::TestCase
8
9
  def test_to_yaml
9
- #assert_equal "--- 1.0\n", BigDecimal.new('1').to_yaml
10
+ assert_equal "--- 1.0\n", BigDecimal.new('1').to_yaml
10
11
  assert_equal "--- 100000.30020320320000000000000000000000000000001\n", BigDecimal.new('100000.30020320320000000000000000000000000000001').to_yaml
11
12
  assert_equal "--- .Inf\n", BigDecimal.new('Infinity').to_yaml
12
13
  assert_equal "--- .NaN\n", BigDecimal.new('NaN').to_yaml
@@ -1,10 +1,26 @@
1
1
  require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class TaskTest < Test::Unit::TestCase
4
+ include UserSystem
5
+
4
6
  main_scenario
5
7
 
6
- # Replace this with your real tests.
7
- def test_truth
8
- assert true
8
+ def setup
9
+ self.current_user = User.find(1000001)
10
+ end
11
+
12
+ def teardown
13
+ self.current_user = nil
14
+ end
15
+
16
+ def test_two_started_tasks
17
+ tasks(:first).start_work
18
+ tasks(:another).start_work
19
+ end
20
+
21
+ def test_two_started_tasks_anonymous
22
+ self.current_user = nil
23
+ tasks(:first).start_work
24
+ tasks(:another).start_work
9
25
  end
10
26
  end
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.21.2
4
+ version: 0.21.3
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-02-08 00:00:00 +01:00
12
+ date: 2008-02-13 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -598,6 +598,7 @@ files:
598
598
  - lib/change_column_null_migration_fix.rb
599
599
  - lib/version_from_history.rb
600
600
  - lib/user_system.rb
601
+ - lib/time_extras.rb
601
602
  - lib/localization.rb
602
603
  - config
603
604
  - config/database.yml