]> source.dussan.org Git - redmine.git/commitdiff
Added default value for enumerations.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 5 Oct 2007 17:44:15 +0000 (17:44 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 5 Oct 2007 17:44:15 +0000 (17:44 +0000)
Only default issue priority is actually used.

git-svn-id: http://redmine.rubyforge.org/svn/trunk@803 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/enumeration.rb
app/models/issue.rb
app/views/enumerations/_form.rhtml
app/views/enumerations/list.rhtml
db/migrate/073_add_enumerations_is_default.rb [new file with mode: 0644]
lang/en.yml
lang/fr.yml

index b0ad48bc74a82693fd532951a94f2e6d468ac6e5..744bc1a88544fd5195ecb4a49cf31d7580cacc32 100644 (file)
@@ -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
   
index 7d214de8a7ceee2a98c16d3d6c1a2eda74ef2e2b..52e21b416eb439b24353b6a01555928b64e2c385 100644 (file)
@@ -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
index 637605939ccfd2e0090e11bbe543c5c81c7b63b9..3f98f5213e5d98869f4f4d32af8f62a26206dab1 100644 (file)
@@ -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
index f92ca0a319b6ffec91876cbedd23188db9a1f953..bab4df8300c73377b79b14949ca9169fd392c94f 100644 (file)
@@ -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 (file)
index 0000000..7365a14
--- /dev/null
@@ -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
index f4f71a9318eb5fdf6c62f56a63d712b1ec908614..e3bb9abb8301f2c85a33d9bc004cac17a9ca16e3 100644 (file)
@@ -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
index ff0586781187997cf34ff0271046e9eaa7fd63fc..b2b338b5125f6c6d6bb38f23ee03d3df409b9abf 100644 (file)
@@ -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