gitlab-org--gitlab-foss/app/models/concerns
Douwe Maan 05efd19e89 Merge branch 'dz-nested-groups' into 'master'
Add nested groups support on data level

## What does this MR do?

- [x] Add  `parent_id` field to `Namespace`model. 
- [x] Create new database table `routes` that keeps information about full path to each group or project
- [x] Remove uniq index from `namespaces.path`
- [x] Add uniq index on `routes.path`
- [x] Fill routes table with path data from namespaces and projects
- [x] Change Namespace/Project URL lookup by routes table
- [x] Rename related routes (nested groups, projects) when parent path changes

This is solely backend preparation. UI, Permissions and API support will be added in separate merge request.   
 
## Are there points in the code the reviewer needs to double check?

migrations, Route model, Routable concern

Will require downtime. See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7121#note_19490281 discussion

## Why was this MR needed?

One step further to full nested groups support

## Screenshots (if relevant)

No UI changes in this merge request so far

## Does this MR meet the acceptance criteria?

- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG.md) entry added~~
- ~~[Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~
- ~~API support added~~
- Tests
  - [x] Added for this feature/bug
  - [x] All builds are passing
- [x] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html)
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if it does - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

## What are the relevant issue numbers?

https://gitlab.com/gitlab-org/gitlab-ce/issues/2772

See merge request !7121
2016-12-09 01:52:36 +00:00
..
access_requestable.rb Re-add the AccessRequestable concern 2016-09-22 11:12:17 +02:00
awardable.rb Start Frontend work, fix routing problem 2016-09-19 19:50:40 +03:00
cache_markdown_field.rb Add markdown cache columns to the database, but don't use them yet 2016-10-07 02:54:25 +01:00
case_sensitivity.rb
expirable.rb Differentiate the expire from leave event 2016-10-20 00:26:45 +00:00
faster_cache_keys.rb Added concern for a faster "cache_key" method 2016-08-08 16:49:22 +02:00
has_status.rb Fix success status 2016-12-07 12:47:06 +01:00
importable.rb started refactoring some stuff based on MR feedback 2016-06-01 18:03:51 +02:00
internal_id.rb Use GitHub Issue/PR number as iid to keep references 2016-04-18 12:15:50 -03:00
issuable.rb Use :maximum instead of :within for length validators with a 0..N range 2016-12-06 10:23:17 +01:00
mentionable.rb Allow JIRA references for project snippets 2016-11-21 12:09:41 -02:00
milestoneish.rb Merge branch 'jej-23867-use-mr-finder-instead-of-access-check' into 'security' 2016-12-08 21:42:07 -03:00
note_on_diff.rb Move #to_discussion to NoteOnDiff 2016-08-30 16:30:42 +01:00
participable.rb Use cattr_accessor instead duplicating code on NoteOnDiff concern 2016-07-15 13:49:16 -03:00
project_features_compatibility.rb Fix project features default values 2016-11-01 11:03:56 -02:00
protected_branch_access.rb CE-specific changes gitlab-org/gitlab-ee#1137 2016-11-29 17:38:45 +05:30
referable.rb Add shorthand support to gitlab markdown references 2016-12-02 19:18:17 -02:00
routable.rb Add nested groups support on data level 2016-12-08 11:47:16 +02:00
select_for_project_authorization.rb Precalculate user's authorized projects in database 2016-11-18 20:25:45 +02:00
sortable.rb Fix and improve Sortable.highest_label_priority 2016-10-27 21:26:56 -03:00
spammable.rb Also check if Akismet is enabled, before showing the Submit as spam button. 2016-08-22 21:36:04 -05:00
strip_attribute.rb
subscribable.rb Allow users to subscribe to a group label at group or project level 2016-11-17 15:10:13 -02:00
taskable.rb add "x of y tasks completed" on issuable 2016-10-28 14:01:36 -02:00
token_authenticatable.rb Use separate email-friendly token for incoming email and let incoming 2016-11-07 15:55:42 +00:00