Class: Decidim::UserGroup

Inherits:
UserBaseEntity show all
Includes:
DataPortability, Traceable
Defined in:
app/models/decidim/user_group.rb

Overview

A UserGroup is an organization of citizens

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from UserBaseEntity

#following

Methods included from Followable

#followers

Class Method Details

.export_serializerObject



61
62
63
# File 'app/models/decidim/user_group.rb', line 61

def self.export_serializer
  Decidim::DataPortabilitySerializers::DataPortabilityUserGroupSerializer
end

.log_presenter_class_for(_log) ⇒ Object



38
39
40
# File 'app/models/decidim/user_group.rb', line 38

def self.log_presenter_class_for(_log)
  Decidim::AdminLog::UserGroupPresenter
end

.user_collection(user) ⇒ Object



57
58
59
# File 'app/models/decidim/user_group.rb', line 57

def self.user_collection(user)
  user.user_groups
end

.with_document_number(organization, number) ⇒ Object



33
34
35
36
# File 'app/models/decidim/user_group.rb', line 33

def self.with_document_number(organization, number)
  where(decidim_organization_id: organization.id)
    .where("extended_data->>'document_number' = ?", number)
end

Instance Method Details

#document_numberObject



65
66
67
# File 'app/models/decidim/user_group.rb', line 65

def document_number
  extended_data["document_number"]
end

#pending?Boolean

Public: Checks if the user group is pending.

Returns:

  • (Boolean)


53
54
55
# File 'app/models/decidim/user_group.rb', line 53

def pending?
  verified_at.blank? && rejected_at.blank?
end

#phoneObject



69
70
71
# File 'app/models/decidim/user_group.rb', line 69

def phone
  extended_data["phone"]
end

#reject!Object



81
82
83
84
85
# File 'app/models/decidim/user_group.rb', line 81

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.

Returns:

  • (Boolean)


48
49
50
# File 'app/models/decidim/user_group.rb', line 48

def rejected?
  rejected_at.present?
end

#rejected_atObject



73
74
75
# File 'app/models/decidim/user_group.rb', line 73

def rejected_at
  extended_data["rejected_at"]
end

#verified?Boolean

Public: Checks if the user group is verified.

Returns:

  • (Boolean)


43
44
45
# File 'app/models/decidim/user_group.rb', line 43

def verified?
  verified_at.present?
end

#verified_atObject



77
78
79
# File 'app/models/decidim/user_group.rb', line 77

def verified_at
  extended_data["verified_at"]
end

#verify!Object



87
88
89
90
91
# File 'app/models/decidim/user_group.rb', line 87

def verify!
  extended_data["verified_at"] = Time.current
  extended_data["rejected_at"] = nil
  save!
end