]> source.dussan.org Git - sonarqube.git/commitdiff
[SONAR-1973] Add first model of review concept
authorFabrice Bellingard <bellingard@gmail.com>
Tue, 5 Apr 2011 14:05:36 +0000 (16:05 +0200)
committerFabrice Bellingard <bellingard@gmail.com>
Wed, 20 Apr 2011 06:39:18 +0000 (08:39 +0200)
sonar-server/src/main/webapp/WEB-INF/app/models/review.rb
sonar-server/src/main/webapp/WEB-INF/app/models/review_data.rb
sonar-server/src/main/webapp/WEB-INF/db/migrate/190_create_review.rb

index 9f97d1a096ff5673aefb76f680add71e62d5226b..c271a3115d6ffcf14e5a7fc970f63f5ca0a09db4 100644 (file)
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
 #
 class Review < ActiveRecord::Base
-  belongs_to :users
-  belongs_to :rule_failures
-  belongs_to :projects, :class_name => 'Project', :foreign_key => 'resource_id'
-  has_many :review_datas, :dependent => :destroy
+  belongs_to :user
+  belongs_to :rule_failure
+  belongs_to :resource, :class_name => 'Project', :foreign_key => 'resource_id'
+  has_many :review_data, :order => created_at, :dependent => :destroy
+  validates_presence_of :user
+  validates_presence_of :review_type
+  validates_presence_of :status
+  validate :review_must_have_at_least_one_comment
 
-  
-
-  def inherited?
-    inheritance=='INHERITED'
+  def review_must_have_at_least_one_comment
+    errors.add("A review must have at least one comment.") if
+      review_data.length < 1
   end
 
-  def overrides?
-    inheritance=='OVERRIDES'
-  end
 end
index d4bb18dbc310a536db35e873899256889b3f9257..7933d7f818794e193bc01f45e9e851fc746e7cef 100644 (file)
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
 #
 class ReviewData < ActiveRecord::Base
-  belongs_to :users
-  belongs_to :reviews
+  belongs_to :user
+  belongs_to :review
+  validates_presence_of :user
+  validates_presence_of :review
+  validates_length_of :review_text, :minimum => 1, :too_short => "Your review cannot be empty."
 
-  
-
-  def inherited?
-    inheritance=='INHERITED'
-  end
-
-  def overrides?
-    inheritance=='OVERRIDES'
-  end
 end
index 9a00f93f8880af6e8aa02346388a342321273295..a7a03a251fd94806f6745600361461586bf07e6a 100644 (file)
@@ -25,10 +25,10 @@ class CreateReview < ActiveRecord::Migration
 
   def self.up
     create_table 'reviews' do |t|
-      t.column 'user_id',                      :integer
       t.column 'created_at',           :datetime
-      t.column 'review_type',          :string,        :limit => 20
-      t.column 'status',                       :string,        :limit => 20
+      t.column 'user_id',                      :integer,       :null => true
+      t.column 'review_type',          :string,        :null => true,  :limit => 10
+      t.column 'status',                       :string,        :null => true,  :limit => 10
       t.column 'severity',                     :integer,       :null => true
       t.column 'external_link',        :string,        :null => true,  :limit => 200  
       t.column 'rule_failure_id',      :integer,       :null => true   
@@ -36,11 +36,11 @@ class CreateReview < ActiveRecord::Migration
       t.column 'resource_line',        :integer,       :null => true      
     end
     
-    create_table 'review_datas' do |t|
-      t.column 'user_id',                      :integer
-      t.column 'review_id',            :integer
+    create_table 'review_data' do |t|
       t.column 'created_at',           :datetime
-      t.column 'review_text',          :string,        :limit => 5000 
+      t.column 'review_id',            :integer
+      t.column 'user_id',                      :integer,       :null => true
+      t.column 'review_text',          :text,          :null => true
     end
     
   end