Class: Decidim::ParticipatoryProcess
- Inherits:
-
ApplicationRecord
- Object
- ApplicationRecord
- Decidim::ParticipatoryProcess
- Includes:
- FilterableResource, Followable, HasArea, HasAttachmentCollections, HasAttachments, HasPrivateUsers, HasReference, HasUploadValidations, Loggable, Participable, ParticipatorySpaceResourceable, Publicable, ScopableParticipatorySpace, Searchable, Traceable, TranslatableResource
- Defined in:
- app/models/decidim/participatory_process.rb
Overview
Interaction between a user and an organization is done via a ParticipatoryProcess. It’s a unit of action from the Organization point of view that groups several components (proposals, debates…) distributed in steps that get enabled or disabled depending on which step is currently active.
Class Method Summary collapse
- .active_spaces ⇒ Object
- .future_spaces ⇒ Object
-
.group_ids ⇒ Object
Pluck all ParticipatoryProcessGroup ID’s.
-
.grouped ⇒ Object
Return processes that belong to a process group.
-
.groupless ⇒ Object
Return processes that DON’T belong to a process group.
- .log_presenter_class_for(_log) ⇒ Object
- .moderators(organization) ⇒ Object
- .past_spaces ⇒ Object
-
.promoted ⇒ Object
Scope to return only the promoted processes.
- .ransackable_scopes(_auth_object = nil) ⇒ Object
Instance Method Summary collapse
- #active? ⇒ Boolean
- #attachment_context ⇒ Object
- #closed? ⇒ Boolean
- #hashtag ⇒ Object
-
#moderators ⇒ Object
Overrides the moderators methods from ‘Participable`.
- #past? ⇒ Boolean
- #to_param ⇒ Object
- #upcoming? ⇒ Boolean
- #user_roles(role_name = nil) ⇒ Object
Class Method Details
.active_spaces ⇒ Object
135 136 137 |
# File 'app/models/decidim/participatory_process.rb', line 135 def self.active_spaces active end |
.future_spaces ⇒ Object
139 140 141 |
# File 'app/models/decidim/participatory_process.rb', line 139 def self.future_spaces upcoming end |
.group_ids ⇒ Object
Pluck all ParticipatoryProcessGroup ID’s
170 171 172 |
# File 'app/models/decidim/participatory_process.rb', line 170 def self.group_ids pluck(:decidim_participatory_process_group_id) end |
.grouped ⇒ Object
Return processes that belong to a process group.
131 132 133 |
# File 'app/models/decidim/participatory_process.rb', line 131 def self.grouped where.not(decidim_participatory_process_group_id: nil) end |
.groupless ⇒ Object
Return processes that DON’T belong to a process group.
126 127 128 |
# File 'app/models/decidim/participatory_process.rb', line 126 def self.groupless where(decidim_participatory_process_group_id: nil) end |
.log_presenter_class_for(_log) ⇒ Object
147 148 149 |
# File 'app/models/decidim/participatory_process.rb', line 147 def self.log_presenter_class_for(_log) Decidim::ParticipatoryProcesses::AdminLog::ParticipatoryProcessPresenter end |
.moderators(organization) ⇒ Object
191 192 193 |
# File 'app/models/decidim/participatory_process.rb', line 191 def self.moderators(organization) "#{admin_module_name}::Moderators".constantize.for_organization(organization) end |
.past_spaces ⇒ Object
143 144 145 |
# File 'app/models/decidim/participatory_process.rb', line 143 def self.past_spaces past end |
.promoted ⇒ Object
Scope to return only the promoted processes.
Returns an ActiveRecord::Relation.
121 122 123 |
# File 'app/models/decidim/participatory_process.rb', line 121 def self.promoted where(promoted: true) end |
.ransackable_scopes(_auth_object = nil) ⇒ Object
209 210 211 |
# File 'app/models/decidim/participatory_process.rb', line 209 def self.ransackable_scopes(_auth_object = nil) [:with_date, :with_area, :with_any_scope, :with_type] end |
Instance Method Details
#active? ⇒ Boolean
151 152 153 154 155 |
# File 'app/models/decidim/participatory_process.rb', line 151 def active? return false if start_date.blank? start_date <= Date.current && (end_date.blank? || end_date >= Date.current) end |
#attachment_context ⇒ Object
202 203 204 |
# File 'app/models/decidim/participatory_process.rb', line 202 def :admin end |
#closed? ⇒ Boolean
174 175 176 |
# File 'app/models/decidim/participatory_process.rb', line 174 def closed? past? end |
#hashtag ⇒ Object
178 179 180 |
# File 'app/models/decidim/participatory_process.rb', line 178 def hashtag attributes["hashtag"].to_s.delete("#") end |
#moderators ⇒ Object
Overrides the moderators methods from ‘Participable`.
187 188 189 |
# File 'app/models/decidim/participatory_process.rb', line 187 def moderators "#{admin_module_name}::Moderators".constantize.for(self) end |
#past? ⇒ Boolean
157 158 159 160 161 |
# File 'app/models/decidim/participatory_process.rb', line 157 def past? return false if end_date.blank? end_date < Date.current end |
#to_param ⇒ Object
182 183 184 |
# File 'app/models/decidim/participatory_process.rb', line 182 def to_param slug end |
#upcoming? ⇒ Boolean
163 164 165 166 167 |
# File 'app/models/decidim/participatory_process.rb', line 163 def upcoming? return false if start_date.blank? start_date > Date.current end |
#user_roles(role_name = nil) ⇒ Object
195 196 197 198 199 200 |
# File 'app/models/decidim/participatory_process.rb', line 195 def user_roles(role_name = nil) roles = Decidim::ParticipatoryProcessUserRole.where(participatory_process: self) return roles if role_name.blank? roles.where(role: role_name) end |