diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-10-05 17:44:15 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-10-05 17:44:15 +0000 |
commit | 73dba2ac044f9ff5de1917fd2457fd1a7b3f3377 (patch) | |
tree | 8ec8a0c78d11565ede2e1e15715b65cf7c326ed1 | |
parent | fd7910efc9e2620b77028153bb7a34fc4e66c4a7 (diff) | |
download | redmine-73dba2ac044f9ff5de1917fd2457fd1a7b3f3377.tar.gz redmine-73dba2ac044f9ff5de1917fd2457fd1a7b3f3377.zip |
Added default value for enumerations.
Only default issue priority is actually used.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@803 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/models/enumeration.rb | 12 | ||||
-rw-r--r-- | app/models/issue.rb | 14 | ||||
-rw-r--r-- | app/views/enumerations/_form.rhtml | 3 | ||||
-rw-r--r-- | app/views/enumerations/list.rhtml | 1 | ||||
-rw-r--r-- | db/migrate/073_add_enumerations_is_default.rb | 9 | ||||
-rw-r--r-- | lang/en.yml | 2 | ||||
-rw-r--r-- | lang/fr.yml | 2 |
7 files changed, 34 insertions, 9 deletions
diff --git a/app/models/enumeration.rb b/app/models/enumeration.rb index b0ad48bc7..744bc1a88 100644 --- a/app/models/enumeration.rb +++ b/app/models/enumeration.rb @@ -34,14 +34,18 @@ class Enumeration < ActiveRecord::Base def self.get_values(option) find(:all, :conditions => {:opt => option}, :order => 'position') end + + def self.default(option) + find(:first, :conditions => {:opt => option, :is_default => true}, :order => 'position') + end def option_name OPTIONS[self.opt] end - - #def <=>(enumeration) - # position <=> enumeration.position - #end + + def before_save + Enumeration.update_all("is_default = #{connection.quoted_false}", {:opt => opt}) if is_default? + end def to_s; name end diff --git a/app/models/issue.rb b/app/models/issue.rb index 7d214de8a..52e21b416 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -46,9 +46,17 @@ class Issue < ActiveRecord::Base validates_numericality_of :estimated_hours, :allow_nil => true validates_associated :custom_values, :on => :update - # set default status for new issues - def before_validation - self.status = IssueStatus.default if status.nil? + def after_initialize + if new_record? + # set default values for new records only + self.status ||= IssueStatus.default + self.priority ||= Enumeration.default('IPRI') + end + end + + def priority_id=(pid) + self.priority = nil + write_attribute(:priority_id, pid) end def validate diff --git a/app/views/enumerations/_form.rhtml b/app/views/enumerations/_form.rhtml index 637605939..3f98f5213 100644 --- a/app/views/enumerations/_form.rhtml +++ b/app/views/enumerations/_form.rhtml @@ -5,5 +5,8 @@ <p><label for="enumeration_name"><%=l(:field_name)%></label> <%= text_field 'enumeration', 'name' %></p> + +<p><label for="enumeration_is_default"><%=l(:field_is_default)%></label> +<%= check_box 'enumeration', 'is_default' %></p> <!--[eoform:optvalue]--> </div>
\ No newline at end of file diff --git a/app/views/enumerations/list.rhtml b/app/views/enumerations/list.rhtml index f92ca0a31..bab4df830 100644 --- a/app/views/enumerations/list.rhtml +++ b/app/views/enumerations/list.rhtml @@ -9,6 +9,7 @@ <% enumerations.each do |enumeration| %> <tr class="<%= cycle('odd', 'even') %>"> <td><%= link_to enumeration.name, :action => 'edit', :id => enumeration %></td> + <td style="width:15%;"><%= image_tag('true.png') if enumeration.is_default? %></td> <td style="width:15%;"> <%= link_to image_tag('2uparrow.png', :alt => l(:label_sort_highest)), {:action => 'move', :id => enumeration, :position => 'highest'}, :method => :post, :title => l(:label_sort_highest) %> <%= link_to image_tag('1uparrow.png', :alt => l(:label_sort_higher)), {:action => 'move', :id => enumeration, :position => 'higher'}, :method => :post, :title => l(:label_sort_higher) %> - diff --git a/db/migrate/073_add_enumerations_is_default.rb b/db/migrate/073_add_enumerations_is_default.rb new file mode 100644 index 000000000..7365a1411 --- /dev/null +++ b/db/migrate/073_add_enumerations_is_default.rb @@ -0,0 +1,9 @@ +class AddEnumerationsIsDefault < ActiveRecord::Migration + def self.up + add_column :enumerations, :is_default, :boolean, :default => false, :null => false + end + + def self.down + remove_column :enumerations, :is_default + end +end diff --git a/lang/en.yml b/lang/en.yml index f4f71a931..e3bb9abb8 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -106,7 +106,7 @@ field_issue: Issue field_status: Status field_notes: Notes field_is_closed: Issue closed -field_is_default: Default status +field_is_default: Default value field_html_color: Color field_tracker: Tracker field_subject: Subject diff --git a/lang/fr.yml b/lang/fr.yml index ff0586781..b2b338b51 100644 --- a/lang/fr.yml +++ b/lang/fr.yml @@ -106,7 +106,7 @@ field_issue: Demande field_status: Statut field_notes: Notes field_is_closed: Demande fermée -field_is_default: Statut par défaut +field_is_default: Valeur par défaut field_html_color: Couleur field_tracker: Tracker field_subject: Sujet |