Class: Decidim::Sortitions::Sortition
- Inherits:
-
ApplicationRecord
show all
- Includes:
- Authorable, Comments::CommentableWithComponent, FilterableResource, HasCategory, HasComponent, HasReference, Loggable, Randomable, Resourceable, Taxonomizable, Traceable, TranslatableResource
- Defined in:
- decidim-sortitions/app/models/decidim/sortitions/sortition.rb
Overview
Model that encapsulates the parameters of a sortition
Class Method Summary
collapse
Instance Method Summary
collapse
#attachment?, #default_locale?
Class Method Details
.log_presenter_class_for(_log) ⇒ Object
36
37
38
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 36
def self.log_presenter_class_for(_log)
Decidim::Sortitions::AdminLog::SortitionPresenter
end
|
.ransackable_associations(_auth_object = nil) ⇒ Object
98
99
100
101
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 98
def self.ransackable_associations(_auth_object = nil)
%w(author cancelled_by_user taxonomies comment_threads comments component decidim_proposals_component resource_links_from
resource_links_to resource_permission versions)
end
|
.ransackable_attributes(_auth_object = nil) ⇒ Object
92
93
94
95
96
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 92
def self.ransackable_attributes(_auth_object = nil)
%w(additional_info cancel_reason cancelled_by_user_id cancelled_on candidate_proposals comments_count created_at decidim_author_id
decidim_author_type decidim_component_id decidim_proposals_component_id dice id reference request_timestamp search_text selected_proposals
target_items title updated_at witnesses)
end
|
.ransackable_scopes(_auth_object = nil) ⇒ Object
88
89
90
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 88
def self.ransackable_scopes(_auth_object = nil)
[:with_any_state, :with_any_taxonomies]
end
|
Instance Method Details
Public: Overrides the ‘accepts_new_comments?` Commentable concern method.
65
66
67
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 65
def
end
|
#allow_resource_permissions? ⇒ Boolean
Public: Overrides the ‘allow_resource_permissions?` Resourceable concern method.
80
81
82
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 80
def allow_resource_permissions?
true
end
|
#cancelled? ⇒ Boolean
60
61
62
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 60
def cancelled?
cancelled_on.present?
end
|
Public: Overrides the ‘comments_have_alignment?` Commentable concern method.
70
71
72
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 70
def
true
end
|
Public: Overrides the ‘comments_have_votes?` Commentable concern method.
75
76
77
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 75
def
true
end
|
#presenter ⇒ Object
40
41
42
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 40
def presenter
Decidim::Sortitions::SortitionPresenter.new(self)
end
|
#proposals ⇒ Object
44
45
46
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 44
def proposals
Decidim::Proposals::Proposal.where(id: selected_proposals)
end
|
#seed ⇒ Object
56
57
58
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 56
def seed
request_timestamp.to_i * dice
end
|
#similar_count ⇒ Object
48
49
50
51
52
53
54
|
# File 'decidim-sortitions/app/models/decidim/sortitions/sortition.rb', line 48
def similar_count
Sortition.where(component:)
.where(decidim_proposals_component:)
.with_taxonomies(*taxonomies.map(&:id))
.where(target_items:)
.count
end
|