backlog 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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