12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'backend/app/model/mixins/implied_publication.rb', line 12
def is_published_by_implication?
self.class.relationship_dependencies.any? {|relationship_name, relationship_dependency|
next unless ImpliedPublication::relevant_relationships.include? relationship_name
relationship_dependency.any? {|related_class|
next unless related_class.columns.include?(:publish)
relationship_class = related_class.find_relationship(relationship_name, true)
reference_columns = relationship_class.reference_columns_for(self.class)
referrer_columns = relationship_class.reference_columns_for(related_class)
referrer_columns.any? {|referrer_column|
reference_columns.any? {|reference_column|
relationship_class.join(related_class, :id => referrer_column).
filter(:publish => 1).
filter(reference_column => self.id).
any?
}
}
}
}
end
|