From 78c118181cc9f740c6db43ab8ad16aa2d2991806 Mon Sep 17 00:00:00 2001 From: bsag Date: Sun, 5 Jun 2005 09:54:58 +0000 Subject: [PATCH] Patch by nic, fixes the incorrect count for next actions in contexts and projects in the sidebar, and also packages up the methods nicely into the models files. Thanks, nic! Fixes #53. git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@96 a4c988fc-2ded-0310-b66e-134b36920a42 --- tracks/app/models/context.rb | 9 +++++ tracks/app/models/project.rb | 10 ++++- tracks/app/models/user.rb | 3 +- tracks/app/views/context/show.rhtml | 61 ++++++++++++++++------------ tracks/app/views/project/show.rhtml | 62 ++++++++++++++++------------- tracks/app/views/todo/list.rhtml | 56 +++++++++++++++----------- 6 files changed, 122 insertions(+), 79 deletions(-) diff --git a/tracks/app/models/context.rb b/tracks/app/models/context.rb index 1c0abccd..8cc0f684 100644 --- a/tracks/app/models/context.rb +++ b/tracks/app/models/context.rb @@ -8,4 +8,13 @@ class Context < ActiveRecord::Base validates_presence_of :name, :message => "context must have a name" validates_length_of :name, :maximum => 255, :message => "context name must be less than %d" validates_uniqueness_of :name, :message => "already exists" + + def self.list_of(hidden=0) + find(:all, :conditions => [ "hide = ?" , hidden ], :order => "position ASC") + end + + def count_undone_todos + Todo.count( "context_id=#{self.id} AND done=0" ) + end + end diff --git a/tracks/app/models/project.rb b/tracks/app/models/project.rb index da486009..13cce765 100644 --- a/tracks/app/models/project.rb +++ b/tracks/app/models/project.rb @@ -8,5 +8,13 @@ class Project < ActiveRecord::Base validates_presence_of :name, :message => "project must have a name" validates_length_of :name, :maximum => 255, :message => "project name must be less than %d" validates_uniqueness_of :name, :message => "already exists" - + + def self.list_of(isdone=0) + find(:all, :conditions => [ "done = ?" , isdone ], :order => "position ASC") + end + + def count_undone_todos + Todo.count( "project_id=#{self.id} AND done=0" ) + end + end diff --git a/tracks/app/models/user.rb b/tracks/app/models/user.rb index df160c8d..d7317c04 100644 --- a/tracks/app/models/user.rb +++ b/tracks/app/models/user.rb @@ -24,7 +24,8 @@ class User < ActiveRecord::Base write_attribute("word", self.class.sha1(word)) end - validates_length_of :password, :login, :within => 5..40 + validates_length_of :password, :within => 5..40 + validates_length_of :login, :within => 3..80 validates_presence_of :password, :login, :word validates_uniqueness_of :login, :on => :create validates_uniqueness_of :word, :on => :create diff --git a/tracks/app/views/context/show.rhtml b/tracks/app/views/context/show.rhtml index 3efc108b..f2b401ca 100644 --- a/tracks/app/views/context/show.rhtml +++ b/tracks/app/views/context/show.rhtml @@ -63,33 +63,42 @@ -

Active Contexts:

- - -

Hidden Contexts:

- - -

Active Projects:

- +

Active Projects:

+ + +

Completed Projects:

+ + +

Active Contexts:

+ + +

Hidden Contexts:

+ -

Completed Projects:

- <% if @flash["confirmation"] %>
<%= @flash["confirmation"] %>
<% end %> diff --git a/tracks/app/views/project/show.rhtml b/tracks/app/views/project/show.rhtml index d91bcc56..f8433aaa 100644 --- a/tracks/app/views/project/show.rhtml +++ b/tracks/app/views/project/show.rhtml @@ -63,34 +63,42 @@ - -

Active Projects:

- - -

Completed Projects:

- - -

Active Contexts:

- -

Hidden Contexts:

- +

Active Projects:

+ + +

Completed Projects:

+ + +

Active Contexts:

+ + +

Hidden Contexts:

+ <% if @flash["confirmation"] %>
<%= @flash["confirmation"] %>
<% end %> diff --git a/tracks/app/views/todo/list.rhtml b/tracks/app/views/todo/list.rhtml index c6a44ca8..cafcb3bd 100644 --- a/tracks/app/views/todo/list.rhtml +++ b/tracks/app/views/todo/list.rhtml @@ -75,33 +75,41 @@ -

Active Projects:

- +

Active Projects:

+ -

Completed Projects:

- +

Completed Projects:

+ -

Active Contexts:

- +

Active Contexts:

+ -

Hidden Contexts:

- +

Hidden Contexts:

+