@@ -21,15 +21,19 class IssueRelation < ActiveRecord::Base | |||||
21 |
|
21 | |||
22 | TYPE_RELATES = "relates" |
|
22 | TYPE_RELATES = "relates" | |
23 | TYPE_DUPLICATES = "duplicates" |
|
23 | TYPE_DUPLICATES = "duplicates" | |
|
24 | TYPE_DUPLICATED = "duplicated" | |||
24 | TYPE_BLOCKS = "blocks" |
|
25 | TYPE_BLOCKS = "blocks" | |
|
26 | TYPE_BLOCKED = "blocked" | |||
25 | TYPE_PRECEDES = "precedes" |
|
27 | TYPE_PRECEDES = "precedes" | |
26 | TYPE_FOLLOWS = "follows" |
|
28 | TYPE_FOLLOWS = "follows" | |
27 |
|
29 | |||
28 | TYPES = { TYPE_RELATES => { :name => :label_relates_to, :sym_name => :label_relates_to, :order => 1 }, |
|
30 | TYPES = { TYPE_RELATES => { :name => :label_relates_to, :sym_name => :label_relates_to, :order => 1 }, | |
29 | TYPE_DUPLICATES => { :name => :label_duplicates, :sym_name => :label_duplicated_by, :order => 2 }, |
|
31 | TYPE_DUPLICATES => { :name => :label_duplicates, :sym_name => :label_duplicated_by, :order => 2 }, | |
30 |
TYPE_ |
|
32 | TYPE_DUPLICATED => { :name => :label_duplicated_by, :sym_name => :label_duplicates, :order => 3, :reverse => TYPE_DUPLICATES }, | |
31 |
TYPE_ |
|
33 | TYPE_BLOCKS => { :name => :label_blocks, :sym_name => :label_blocked_by, :order => 4 }, | |
32 |
TYPE_ |
|
34 | TYPE_BLOCKED => { :name => :label_blocked_by, :sym_name => :label_blocks, :order => 5, :reverse => TYPE_BLOCKS }, | |
|
35 | TYPE_PRECEDES => { :name => :label_precedes, :sym_name => :label_follows, :order => 6 }, | |||
|
36 | TYPE_FOLLOWS => { :name => :label_follows, :sym_name => :label_precedes, :order => 7, :reverse => TYPE_PRECEDES } | |||
33 | }.freeze |
|
37 | }.freeze | |
34 |
|
38 | |||
35 | validates_presence_of :issue_from, :issue_to, :relation_type |
|
39 | validates_presence_of :issue_from, :issue_to, :relation_type | |
@@ -85,12 +89,13 class IssueRelation < ActiveRecord::Base | |||||
85 |
|
89 | |||
86 | private |
|
90 | private | |
87 |
|
91 | |||
|
92 | # Reverses the relation if needed so that it gets stored in the proper way | |||
88 | def reverse_if_needed |
|
93 | def reverse_if_needed | |
89 | if (TYPE_FOLLOWS == relation_type) |
|
94 | if TYPES.has_key?(relation_type) && TYPES[relation_type][:reverse] | |
90 | issue_tmp = issue_to |
|
95 | issue_tmp = issue_to | |
91 | self.issue_to = issue_from |
|
96 | self.issue_to = issue_from | |
92 | self.issue_from = issue_tmp |
|
97 | self.issue_from = issue_tmp | |
93 |
self.relation_type = TYPE |
|
98 | self.relation_type = TYPES[relation_type][:reverse] | |
94 | end |
|
99 | end | |
95 | end |
|
100 | end | |
96 | end |
|
101 | end |
General Comments 0
You need to be logged in to leave comments.
Login now