Class: Decidim::UserPresenter

Inherits:
SimpleDelegator
  • Object
show all
Includes:
ActionView::Helpers::UrlHelper, SanitizeHelper
Defined in:
app/presenters/decidim/user_presenter.rb

Overview

Decorator for users

Instance Method Summary collapse

Methods included from SanitizeHelper

#decidim_escape_translated, #decidim_html_escape, #decidim_rich_text, #decidim_sanitize, #decidim_sanitize_admin, #decidim_sanitize_editor, #decidim_sanitize_editor_admin, #decidim_sanitize_newsletter, #decidim_sanitize_translated, #decidim_url_escape, included

Instance Method Details

#avatarObject



37
38
39
# File 'app/presenters/decidim/user_presenter.rb', line 37

def avatar
  attached_uploader(:avatar)
end

#avatar_url(variant = nil) ⇒ Object



41
42
43
44
45
46
# File 'app/presenters/decidim/user_presenter.rb', line 41

def avatar_url(variant = nil)
  return default_avatar_url if __getobj__.blocked?
  return default_avatar_url unless avatar.attached?

  avatar.url(variant:)
end

#badgeObject



25
26
27
28
29
# File 'app/presenters/decidim/user_presenter.rb', line 25

def badge
  return "" unless officialized?

  "verified-badge"
end

#can_be_contacted?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'app/presenters/decidim/user_presenter.rb', line 68

def can_be_contacted?
  true unless blocked?
end

#can_follow?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'app/presenters/decidim/user_presenter.rb', line 77

def can_follow?
  true
end

#default_avatar_urlObject



48
49
50
# File 'app/presenters/decidim/user_presenter.rb', line 48

def default_avatar_url
  avatar.default_url
end

#direct_messages_enabled?(context) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
61
62
# File 'app/presenters/decidim/user_presenter.rb', line 58

def direct_messages_enabled?(context)
  return false unless __getobj__.respond_to?(:accepts_conversation?)

  __getobj__.accepts_conversation?(context[:current_user])
end

#display_mentionObject



64
65
66
# File 'app/presenters/decidim/user_presenter.rb', line 64

def display_mention
  link_to nickname, profile_url, data: { "external-link": false }
end

#nameObject

name sanitized



12
13
14
# File 'app/presenters/decidim/user_presenter.rb', line 12

def name
  decidim_sanitize_translated(__getobj__.name)
end

#nicknameObject

nickname presented in a twitter-like style



19
20
21
22
23
# File 'app/presenters/decidim/user_presenter.rb', line 19

def nickname
  return "" if __getobj__.blocked?

  "@#{__getobj__.nickname}"
end

#officialization_textObject



72
73
74
75
# File 'app/presenters/decidim/user_presenter.rb', line 72

def officialization_text
  translated_attribute(officialized_as).presence ||
    I18n.t("decidim.profiles.default_officialization_text_for_users")
end

#profile_pathObject



52
53
54
55
56
# File 'app/presenters/decidim/user_presenter.rb', line 52

def profile_path
  return "" if respond_to?(:deleted?) && deleted?

  decidim.profile_path(__getobj__.nickname)
end

#profile_urlObject



31
32
33
34
35
# File 'app/presenters/decidim/user_presenter.rb', line 31

def profile_url
  return "" if respond_to?(:deleted?) && deleted?

  decidim.profile_url(__getobj__.nickname)
end