Namespace model added. Migration to convert exit project/groups

This commit is contained in:
Dmitriy Zaporozhets 2012-11-22 21:34:16 +03:00
parent ced242a2d0
commit e29ccece33
6 changed files with 60 additions and 31 deletions

View file

@ -10,26 +10,7 @@
# updated_at :datetime not null
#
class Group < ActiveRecord::Base
attr_accessible :code, :name, :owner_id
has_many :projects
belongs_to :owner, class_name: "User"
validates :name, presence: true, uniqueness: true
validates :code, presence: true, uniqueness: true
validates :owner, presence: true
delegate :name, to: :owner, allow_nil: true, prefix: true
def self.search query
where("name LIKE :query OR code LIKE :query", query: "%#{query}%")
end
def to_param
code
end
class Group < Namespace
def users
User.joins(:users_projects).where(users_projects: {project_id: project_ids}).uniq
end

20
app/models/namespace.rb Normal file
View file

@ -0,0 +1,20 @@
class Namespace < ActiveRecord::Base
attr_accessible :code, :name, :owner_id
has_many :projects
belongs_to :owner, class_name: "User"
validates :name, presence: true, uniqueness: true
validates :code, presence: true, uniqueness: true
validates :owner, presence: true
delegate :name, to: :owner, allow_nil: true, prefix: true
def self.search query
where("name LIKE :query OR code LIKE :query", query: "%#{query}%")
end
def to_param
code
end
end

View file

@ -32,7 +32,8 @@ class Project < ActiveRecord::Base
attr_accessor :error_code
# Relations
belongs_to :group
belongs_to :group, foreign_key: "namespace_id", conditions: 'type = Group'
belongs_to :namespace
belongs_to :owner, class_name: "User"
has_many :users, through: :users_projects
has_many :events, dependent: :destroy
@ -192,4 +193,12 @@ class Project < ActiveRecord::Base
def gitlab_ci?
gitlab_ci_service && gitlab_ci_service.active
end
def path_with_namespace
if namespace
namespace.code + '/' + path
else
path
end
end
end