Class: Decidim::UserPresenter

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

Overview

Decorator for users

Direct Known Subclasses

UserGroupPresenter

Instance Method Summary collapse

Methods included from TranslatableAttributes

#default_locale?

Instance Method Details

#avatarObject



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

def avatar
  attached_uploader(:avatar)
end

#avatar_url(variant = nil) ⇒ Object



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

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

  avatar.path(variant: variant)
end

#badgeObject



21
22
23
24
25
# File 'app/presenters/decidim/user_presenter.rb', line 21

def badge
  return "" unless officialized?

  "verified-badge"
end

#can_be_contacted?Boolean

Returns:

  • (Boolean)


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

def can_be_contacted?
  true
end

#can_follow?Boolean

Returns:

  • (Boolean)


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

def can_follow?
  true
end

#default_avatar_urlObject



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

def default_avatar_url
  attached_uploader(:avatar).default_url
end

#direct_messages_enabled?(context) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
57
58
# File 'app/presenters/decidim/user_presenter.rb', line 54

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

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

#display_mentionObject



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

def display_mention
  link_to nickname, profile_url, class: "user-mention"
end

#has_tooltip?Boolean

Returns:

  • (Boolean)


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

def has_tooltip?
  true
end

#nicknameObject

nickname presented in a twitter-like style



15
16
17
18
19
# File 'app/presenters/decidim/user_presenter.rb', line 15

def nickname
  return "" if __getobj__.blocked?

  "@#{__getobj__.nickname}"
end

#officialization_textObject



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

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

#profile_pathObject



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

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

  decidim.profile_path(__getobj__.nickname)
end

#profile_urlObject



27
28
29
30
31
# File 'app/presenters/decidim/user_presenter.rb', line 27

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

  decidim.profile_url(__getobj__.nickname, host: __getobj__.organization.host)
end