Class: Decidim::UserGroup
Overview
A UserGroup is an organization of citizens
Constant Summary
Decidim::UserBaseEntity::REGEXP_NAME
Class Method Summary
collapse
Instance Method Summary
collapse
#following
#maximum_avatar_size, #maximum_upload_size
Methods included from Followable
#followers
Class Method Details
.export_serializer ⇒ Object
.log_presenter_class_for(_log) ⇒ Object
.user_collection(user) ⇒ Object
68
69
70
|
# File 'app/models/decidim/user_group.rb', line 68
def self.user_collection(user)
user.user_groups
end
|
.with_document_number(organization, number) ⇒ Object
34
35
36
37
|
# File 'app/models/decidim/user_group.rb', line 34
def self.with_document_number(organization, number)
where(decidim_organization_id: organization.id)
.where("extended_data->>'document_number' = ?", number)
end
|
Instance Method Details
#accepted_memberships ⇒ Object
sugar for the memberships query
#accepted_users ⇒ Object
easy way to return all the users accepted in this group
110
111
112
|
# File 'app/models/decidim/user_group.rb', line 110
def accepted_users
accepted_memberships.map(&:user)
end
|
#accepts_conversation?(_user) ⇒ Boolean
Currently, groups always accept conversations from anyone. This may change in the future in case the desired behaviour is to check if all (or any) of the administrators accepts conversations or there’s simply and option for this in the group preferences.
118
119
120
|
# File 'app/models/decidim/user_group.rb', line 118
def accepts_conversation?(_user)
true
end
|
#document_number ⇒ Object
76
77
78
|
# File 'app/models/decidim/user_group.rb', line 76
def document_number
extended_data["document_number"]
end
|
#non_deleted_memberships ⇒ Object
39
40
41
|
# File 'app/models/decidim/user_group.rb', line 39
def non_deleted_memberships
memberships.where(decidim_users: { deleted_at: nil })
end
|
#pending? ⇒ Boolean
Public: Checks if the user group is pending.
64
65
66
|
# File 'app/models/decidim/user_group.rb', line 64
def pending?
verified_at.blank? && rejected_at.blank?
end
|
#phone ⇒ Object
80
81
82
|
# File 'app/models/decidim/user_group.rb', line 80
def phone
extended_data["phone"]
end
|
#presenter ⇒ Object
Returns the presenter for this author, to be used in the views. Required by ActsAsAuthor.
#reject! ⇒ Object
92
93
94
95
96
|
# File 'app/models/decidim/user_group.rb', line 92
def reject!
extended_data["verified_at"] = nil
extended_data["rejected_at"] = Time.current
save!
end
|
#rejected? ⇒ Boolean
Public: Checks if the user group is rejected.
59
60
61
|
# File 'app/models/decidim/user_group.rb', line 59
def rejected?
rejected_at.present?
end
|
#rejected_at ⇒ Object
84
85
86
|
# File 'app/models/decidim/user_group.rb', line 84
def rejected_at
extended_data["rejected_at"]
end
|
#unread_messages_count_for(user) ⇒ Object
122
123
124
125
|
# File 'app/models/decidim/user_group.rb', line 122
def unread_messages_count_for(user)
@unread_messages_count_for ||= {}
@unread_messages_count_for[user.id] ||= Decidim::Messaging::Conversation.user_collection(self).unread_messages_by(user).count
end
|
#verified? ⇒ Boolean
Public: Checks if the user group is verified.
54
55
56
|
# File 'app/models/decidim/user_group.rb', line 54
def verified?
verified_at.present?
end
|
#verified_at ⇒ Object
88
89
90
|
# File 'app/models/decidim/user_group.rb', line 88
def verified_at
extended_data["verified_at"]
end
|
#verify! ⇒ Object
98
99
100
101
102
|
# File 'app/models/decidim/user_group.rb', line 98
def verify!
extended_data["verified_at"] = Time.current
extended_data["rejected_at"] = nil
save!
end
|