backlog 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.2.1 2007-07-31
2
+
3
+ * Improved workflow
4
+ * Added more shortcut links
5
+
1
6
  == 0.2.0 2007-07-31
2
7
 
3
8
  * Improved workflow
data/README.txt CHANGED
@@ -2,4 +2,20 @@
2
2
 
3
3
  Welcome to Backlog!
4
4
 
5
- Backlog is a tool to help you collect and organize all your tasks, wether you are a singler persion or a small or large group.
5
+ Backlog is a tool to help you collect and organize all your tasks,
6
+ wether you are a single persion or a small or large group.
7
+
8
+ === Installation
9
+
10
+ * Install ruby
11
+ * Install RubyGems
12
+ * Install PostgreSQL
13
+ * run <tt>sudo gem install backlog -y</tt>
14
+ * run <tt>sudo backlog setup</tt>
15
+ * run <tt>sudo backlog start</tt>
16
+
17
+ === Updates
18
+
19
+ * run <tt>sudo backlog stop</tt>
20
+ * run <tt>sudo gem update -y</tt>
21
+ * run <tt>sudo backlog start</tt>
data/Rakefile CHANGED
@@ -11,8 +11,9 @@ require 'tasks/rails'
11
11
 
12
12
  require 'hoe'
13
13
 
14
- Hoe.new("backlog", '0.2.0') do |p|
14
+ Hoe.new("backlog", '0.2.1') do |p|
15
15
  p.rubyforge_name = "backlog"
16
+ p.summary = "Application to aid collecting, processing, organizing, reviewing and doing tasks."
16
17
  p.description = p.paragraphs_of('README.txt', 0..-1).join("\n\n")
17
18
  p.remote_rdoc_dir = '' # Release to root
18
19
  p.changes = p.paragraphs_of('History.txt', 0..-1).join("\n\n")
@@ -1,7 +1,12 @@
1
+ # Holds a value given by a user at a certain time estimating how many work-points (gummybears?)
2
+ # still remain until this task is completed.
3
+ #
4
+ # A value of zero indicated that the task is completed.
1
5
  class Estimate < ActiveRecord::Base
2
6
  belongs_to :task
3
7
  belongs_to :user
4
8
 
9
+ validates_presence_of :task_id
5
10
  validates_associated :task
6
11
 
7
12
  def after_create
data/app/models/party.rb CHANGED
@@ -5,4 +5,8 @@ class Party < ActiveRecord::Base
5
5
  self.class.name.downcase.to_sym
6
6
  end
7
7
 
8
+ def controller
9
+ self.class.name.downcase.pluralize
10
+ end
11
+
8
12
  end
data/app/models/task.rb CHANGED
@@ -18,6 +18,7 @@ class Task < ActiveRecord::Base
18
18
  validates_presence_of :backlog_id, :if => Proc.new { |task| task.parent_id.nil? }
19
19
  validates_presence_of :parent_id, :if => Proc.new { |task| task.backlog_id.nil? }
20
20
  validates_uniqueness_of :description, :scope => :period_id
21
+ validates_uniqueness_of :position, :scope => :period_id, :allow_nil => true
21
22
 
22
23
  def validate
23
24
  unless (self.period_id || self.parent_id) && !(self.period_id && self.parent_id)
data/app/models/user.rb CHANGED
@@ -14,17 +14,13 @@ class User < Party
14
14
  after_save '@password_needs_confirmation = false'
15
15
  after_validation :crypt_password
16
16
 
17
- validates_presence_of :login, :on => :create
18
- validates_length_of :login, :within => 3..40, :on => :create
19
-
20
- # TODO (uwe): This is commented out since it is broken by ClassTableInheritanceInRails
21
- #validates_uniqueness_of :login, :on => :create
17
+ validates_presence_of :login
18
+ validates_length_of :login, :within => 3..40
19
+ validates_uniqueness_of :login
22
20
 
23
21
  validates_presence_of :email
24
22
  validates_length_of :email, :allow_nil => false, :maximum => 60, :if => :email
25
-
26
- # TODO (uwe): This is commented out since it is broken by ClassTableInheritanceInRails
27
- #validates_uniqueness_of :email, :on => :create
23
+ validates_uniqueness_of :email
28
24
 
29
25
  # This is commented out since I want to allow empty passwords
30
26
  # validates_presence_of :password, :if => :validate_password?
@@ -46,6 +42,10 @@ class User < Party
46
42
  @password_needs_confirmation = false
47
43
  end
48
44
 
45
+ def controller
46
+ self.class.name.downcase
47
+ end
48
+
49
49
  def self.authenticate(login, pass)
50
50
  u = find(:first, :conditions => ["login = ? AND verified = TRUE AND deleted = FALSE", login])
51
51
  return nil if u.nil?
@@ -1,13 +1,18 @@
1
1
  <%= error_messages_for 'period' %>
2
2
 
3
3
  <!--[form:period]-->
4
+ <p>
4
5
  <% if @period.new_record? %>
5
- <p><label for="period_party_id"><%=l :group%>/<%=l :user%></label><br/>
6
- <%= select 'period', 'party_id', [['', '']] + @parties.map{|party| [party.name, party.id]}, {}, :onchange => "form.action = '#{url_for :action => :new}'; form.submit();" %></p>
6
+ <label for="period_party_id"><%=l :group%>/<%=l :user%></label><br/>
7
+ <%= select 'period', 'party_id', (@period.party ? [] : [['', '']]) + @parties.map{|party| [party.name, party.id]}, {}, :onchange => "form.action = '#{url_for :action => :new}'; form.submit();" %>
7
8
  <% else %>
8
- <p><label for="period_party_id"><%=l @period.party.class.name.downcase.to_s%></label>:
9
- <%= hidden_field 'period', 'party_id' %><%=detour_to h(@period.party.name), :controller => @period.party.type.name.downcase.pluralize, :action => :edit, :id => @period.party%></p>
9
+ <label for="period_party_id"><%=l @period.party.class.name.downcase.to_s%></label>:
10
+ <%= hidden_field 'period', 'party_id' %><%=detour_to h(@period.party.name), :controller => @period.party.type.name.downcase.pluralize, :action => :edit, :id => @period.party%>
10
11
  <% end %>
12
+ <% if @period.party %>
13
+ <%=image_detour_to(@period.party.to_sym.to_s + '.png', "#{l(@period.party.to_sym)} #{@period.party.name}", nil, :controller => @period.party.to_s, :action => :edit, :id => @period.party) %>
14
+ <% end %>
15
+ </p>
11
16
 
12
17
  <%= hidden_field 'period', 'position' %>
13
18
  <% if @period.party %>
@@ -3,7 +3,7 @@
3
3
  <%=if @period.lower_item then link_to(image_tag(url_for("arrow_right.png"), :alt => "#{l :next} #{l :period}", :title => "#{l :next} #{l :period}", :class => 'image-submit'), :controller => 'periods', :action => :show, :id => @period.lower_item) end%>
4
4
  <%=link_to(image_tag(url_for("period.png"), :alt => l(:period), :title => l(:period), :class => 'image-submit'), :controller => 'periods', :action => :edit, :id => @period) %>
5
5
 
6
- <%=detour_to(image_tag(url_for(@period.party.to_sym.to_s + ".png"), :alt => l(@period.party.to_sym), :title => l(@period.party.to_sym), :class => 'image-submit'), :controller => @period.party.to_sym.to_s, :action => :edit, :id => @period.party) %>
6
+ <%=detour_to(image_tag(url_for(@period.party.to_sym.to_s + ".png"), :alt => l(@period.party.to_sym), :title => l(@period.party.to_sym), :class => 'image-submit'), :controller => @period.party.controller, :action => :edit, :id => @period.party) %>
7
7
 
8
8
  <%=if @period.higher_item then link_to(image_tag(url_for("arrow_left.png"), :alt => "#{l :previous} #{l :period}", :title => "#{l :previous} #{l :period}", :class => 'image-submit'), :controller => 'periods', :action => :show, :id => @period.higher_item) end%>
9
9
  <%=unless @period.passed? then link_to(image_tag(url_for("add.png"), :alt => l(:add_task), :title => l(:add_task), :class => 'image-submit'), :controller => 'tasks', :action => 'new', :task => {:period_id => (@period ? @period.id : (@backlog && @backlog.periods.first ? @backlog.periods.first.id : nil))} ) end %>
@@ -1,18 +1,18 @@
1
1
  <%= error_messages_for 'task' %>
2
2
 
3
3
  <!--[form:task]-->
4
+ <p>
4
5
  <% if @task.backlog.nil? || @task.new_record? %>
5
-
6
- <p><label for="task_backlog_id"><%=l :backlog%></label><br/>
7
- <%= select 'task', 'backlog_id', [['', '']] + @backlogs.map{|backlog| [backlog.name, backlog.id]}, {}, :onchange => "form.action = '#{url_for}'; form.submit();" %></p>
8
-
6
+ <label for="task_backlog_id"><%=l :backlog%></label><br/>
7
+ <%= select 'task', 'backlog_id', [['', '']] + @backlogs.map{|backlog| [backlog.name, backlog.id]}, {}, :onchange => "form.action = '#{url_for}'; form.submit();" %>
9
8
  <% else %>
10
-
11
- <p><label for="task_backlog_id"><%=l :backlog%></label>:
12
- <%= hidden_field 'task', 'backlog_id' %><%=h @task.backlog.name%></p>
13
-
9
+ <label for="task_backlog_id"><%=l :backlog%></label>:
10
+ <%= hidden_field 'task', 'backlog_id' %><%=h @task.backlog.name%>
14
11
  <% end %>
15
-
12
+ <% if @task.backlog %>
13
+ <%=image_detour_to('clipboard.png', "#{l(:backlog)} #{@task.backlog.name}", {:class => 'image-submit', :style => 'vertical-align: bottom'}, :controller => 'backlogs', :action => :edit, :id => @task.backlog) %>
14
+ <% end %>
15
+ </p>
16
16
 
17
17
 
18
18
  <p><label for="task_period_id"><%=l :period%></label><br/>
@@ -1,5 +1,5 @@
1
1
  <% @task = task %>
2
- <tr valign="top" <%= 'style="background-color: yellow"' if highlight %>>
2
+ <tr valign="top" <%= 'class="highlight"' if highlight %>>
3
3
  <td width="1">
4
4
  <% if @task.enable_subtasks? && @task.period.active_or_future? && active %>
5
5
  <% form_tag({:controller => 'tasks', :action => :specify, :id => @task}) do %>
@@ -8,6 +8,7 @@
8
8
  <% end %>
9
9
  </td>
10
10
  <td align="left" valign="top" width="1" nowrap="true">
11
+ <%= @task.position if @task.depth == 0 %>
11
12
  <%= ("&nbsp;" * @task.depth * 4) if @task.depth > 0 %>
12
13
  <%= l(@task.resolution.downcase) if @task.finished_at %>
13
14
  <%= "-" if @task.children.size > 0 %>
@@ -1,7 +1,7 @@
1
1
  .task_description { width: 300px; }
2
2
  .task_hours { width: 32px; }
3
3
  .task_time { width: 40px; border: 1 }
4
- .image-submit {height: 22px; border: 0; margin: 0; padding: 0; vertical-align: top; float: none;}
4
+ .image-submit {height: 22px; border: 0; margin-bottom: 1px; padding: 0; vertical-align: bottom; float: none;}
5
5
  table.input {border-collapse: collapse}
6
6
  table.input td {vertical-align: top; margin: 0; border: 0; padding: 0 1px;}
7
7
  #spotlight img.image-submit {float: none;}
metadata CHANGED
@@ -3,15 +3,15 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: backlog
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.0
6
+ version: 0.2.1
7
7
  date: 2007-07-31 00:00:00 +02:00
8
- summary: The author was too lazy to write a summary
8
+ summary: Application to aid collecting, processing, organizing, reviewing and doing tasks.
9
9
  require_paths:
10
10
  - lib
11
11
  email: ryand-ruby@zenspider.com
12
12
  homepage: http://www.zenspider.com/ZSS/Products/backlog/
13
13
  rubyforge_project: backlog
14
- description: == Backlog Welcome to Backlog! Backlog is a tool to help you collect and organize all your tasks, wether you are a singler persion or a small or large group.
14
+ description: == Backlog Welcome to Backlog! Backlog is a tool to help you collect and organize all your tasks, wether you are a single persion or a small or large group. === Installation * Install ruby * Install RubyGems * Install PostgreSQL * run <tt>sudo gem install backlog -y</tt> * run <tt>sudo backlog setup</tt> * run <tt>sudo backlog start</tt> === Updates * run <tt>sudo backlog stop</tt> * run <tt>sudo gem update -y</tt> * run <tt>sudo backlog start</tt>
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
@@ -226,7 +226,6 @@ files:
226
226
  - config/environments/datek_production.rb
227
227
  - LICENSE_LOCALIZATION
228
228
  - README.txt
229
- - doc
230
229
  - Manifest.txt
231
230
  - vendor
232
231
  - vendor/plugins