diff options
| author | Steven Thonus <steven@ln2.nl> | 2013-11-29 17:10:59 +0100 |
|---|---|---|
| committer | Steven Thonus <steven@ln2.nl> | 2013-12-16 14:39:14 +0100 |
| commit | 37383966ef3fada865d3d21a8ce7a3c640bbd11e (patch) | |
| tree | c7fe9015cd5d3b336e868498bb478fd523de0a86 /app/models/project.rb | |
| parent | 99490159e5f9d6ff4b45f78b977d01caa1e3c4fc (diff) | |
| download | gitlab-ce-37383966ef3fada865d3d21a8ce7a3c640bbd11e.tar.gz | |
Archiving old projects; archived projects aren't shown on dashboard
features for archive projects
abilities for archived project
other abilities for archive projects
only limit commits and merges for archived projects
ability changed to prohibited actions on archived projects
added spec and feature tests for archive projects
changed search bar not to include archived projects
Diffstat (limited to 'app/models/project.rb')
| -rw-r--r-- | app/models/project.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 506f34ca6b6..d389579b3a1 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -116,6 +116,8 @@ class Project < ActiveRecord::Base scope :public_only, -> { where(visibility_level: PUBLIC) } scope :public_or_internal_only, ->(user) { where("visibility_level IN (:levels)", levels: user ? [ INTERNAL, PUBLIC ] : [ PUBLIC ]) } + scope :non_archived, -> { where(archived: false) } + enumerize :issues_tracker, in: (Gitlab.config.issues_tracker.keys).append(:gitlab), default: :gitlab class << self @@ -132,7 +134,7 @@ class Project < ActiveRecord::Base end def search query - joins(:namespace).where("projects.name LIKE :query OR projects.path LIKE :query OR namespaces.name LIKE :query OR projects.description LIKE :query", query: "%#{query}%") + joins(:namespace).where("projects.archived = ?", false).where("projects.name LIKE :query OR projects.path LIKE :query OR namespaces.name LIKE :query OR projects.description LIKE :query", query: "%#{query}%") end def find_with_namespace(id) @@ -472,4 +474,12 @@ class Project < ActiveRecord::Base def visibility_level_field visibility_level end + + def archive! + update_attribute(:archived, true) + end + + def unarchive! + update_attribute(:archived, false) + end end |
