Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
fa3ae24c
Commit
fa3ae24c
authored
Oct 02, 2012
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Group entity. Group has many projects
parent
2e1c3c52
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
116 additions
and
1 deletion
+116
-1
app/models/group.rb
app/models/group.rb
+22
-0
app/models/project.rb
app/models/project.rb
+3
-0
db/migrate/20121002150926_create_groups.rb
db/migrate/20121002150926_create_groups.rb
+11
-0
db/migrate/20121002151033_add_group_id_to_project.rb
db/migrate/20121002151033_add_group_id_to_project.rb
+5
-0
db/schema.rb
db/schema.rb
+10
-1
spec/factories/groups.rb
spec/factories/groups.rb
+21
-0
spec/models/group_spec.rb
spec/models/group_spec.rb
+22
-0
spec/models/project_spec.rb
spec/models/project_spec.rb
+22
-0
No files found.
app/models/group.rb
0 → 100644
View file @
fa3ae24c
# == Schema Information
#
# Table name: groups
#
# id :integer not null, primary key
# name :string(255) not null
# code :string(255) not null
# owner_id :integer not null
# created_at :datetime not null
# 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_id
,
presence:
true
end
app/models/project.rb
View file @
fa3ae24c
...
...
@@ -11,6 +11,7 @@ class Project < ActiveRecord::Base
attr_accessor
:error_code
# Relations
belongs_to
:group
belongs_to
:owner
,
class_name:
"User"
has_many
:users
,
through: :users_projects
has_many
:events
,
dependent: :destroy
...
...
@@ -173,4 +174,6 @@ end
# wall_enabled :boolean default(TRUE), not null
# merge_requests_enabled :boolean default(TRUE), not null
# wiki_enabled :boolean default(TRUE), not null
# group_id :integer
#
db/migrate/20121002150926_create_groups.rb
0 → 100644
View file @
fa3ae24c
class
CreateGroups
<
ActiveRecord
::
Migration
def
change
create_table
:groups
do
|
t
|
t
.
string
:name
,
null:
false
t
.
string
:code
,
null:
false
t
.
integer
:owner_id
,
null:
false
t
.
timestamps
end
end
end
db/migrate/20121002151033_add_group_id_to_project.rb
0 → 100644
View file @
fa3ae24c
class
AddGroupIdToProject
<
ActiveRecord
::
Migration
def
change
add_column
:projects
,
:group_id
,
:integer
end
end
db/schema.rb
View file @
fa3ae24c
...
...
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
:version
=>
2012
0905043334
)
do
ActiveRecord
::
Schema
.
define
(
:version
=>
2012
1002151033
)
do
create_table
"events"
,
:force
=>
true
do
|
t
|
t
.
string
"target_type"
...
...
@@ -25,6 +25,14 @@ ActiveRecord::Schema.define(:version => 20120905043334) do
t
.
integer
"author_id"
end
create_table
"groups"
,
:force
=>
true
do
|
t
|
t
.
string
"name"
,
:null
=>
false
t
.
string
"code"
,
:null
=>
false
t
.
integer
"owner_id"
,
:null
=>
false
t
.
datetime
"created_at"
,
:null
=>
false
t
.
datetime
"updated_at"
,
:null
=>
false
end
create_table
"issues"
,
:force
=>
true
do
|
t
|
t
.
string
"title"
t
.
integer
"assignee_id"
...
...
@@ -108,6 +116,7 @@ ActiveRecord::Schema.define(:version => 20120905043334) do
t
.
boolean
"wall_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
boolean
"merge_requests_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
boolean
"wiki_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
integer
"group_id"
end
create_table
"protected_branches"
,
:force
=>
true
do
|
t
|
...
...
spec/factories/groups.rb
0 → 100644
View file @
fa3ae24c
# == Schema Information
#
# Table name: groups
#
# id :integer not null, primary key
# name :string(255) not null
# code :string(255) not null
# owner_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
# Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl
.
define
do
factory
:group
do
name
"MyString"
code
"MyString"
owner_id
1
end
end
spec/models/group_spec.rb
0 → 100644
View file @
fa3ae24c
# == Schema Information
#
# Table name: groups
#
# id :integer not null, primary key
# name :string(255) not null
# code :string(255) not null
# owner_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
require
'spec_helper'
describe
Group
do
it
{
should
have_many
:projects
}
it
{
should
validate_presence_of
:name
}
it
{
should
validate_uniqueness_of
(
:name
)
}
it
{
should
validate_presence_of
:code
}
it
{
should
validate_uniqueness_of
(
:code
)
}
it
{
should
validate_presence_of
:owner_id
}
end
spec/models/project_spec.rb
View file @
fa3ae24c
# == Schema Information
#
# Table name: projects
#
# id :integer not null, primary key
# name :string(255)
# path :string(255)
# description :text
# created_at :datetime not null
# updated_at :datetime not null
# private_flag :boolean default(TRUE), not null
# code :string(255)
# owner_id :integer
# default_branch :string(255)
# issues_enabled :boolean default(TRUE), not null
# wall_enabled :boolean default(TRUE), not null
# merge_requests_enabled :boolean default(TRUE), not null
# wiki_enabled :boolean default(TRUE), not null
# group_id :integer
#
require
'spec_helper'
describe
Project
do
describe
"Associations"
do
it
{
should
belong_to
(
:group
)
}
it
{
should
belong_to
(
:owner
).
class_name
(
'User'
)
}
it
{
should
have_many
(
:users
)
}
it
{
should
have_many
(
:events
).
dependent
(
:destroy
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment