Class: Decidim::Conferences::Admin::ConferenceSpeakerForm

Inherits:
Form show all
Includes:
ApplicationHelper, TranslatableAttributes
Defined in:
decidim-conferences/app/forms/decidim/conferences/admin/conference_speaker_form.rb

Overview

A form object used to create conference members from the admin dashboard.

Constant Summary

Constants included from AttributeObject::TypeMap

AttributeObject::TypeMap::Boolean, AttributeObject::TypeMap::Decimal

Instance Attribute Summary

Attributes inherited from AttributeObject::Form

#context

Instance Method Summary collapse

Methods included from TranslatableAttributes

#default_locale?

Methods inherited from AttributeObject::Form

ensure_hash, from_model, from_params, hash_from, infer_model_name, mimic, mimicked_model_name, model_name, #persisted?, #to_key, #to_model, #to_param, #valid?, #with_context

Methods included from AttributeObject::Model

#[], #[]=, #attributes, #attributes_with_values, #initialize, #to_h

Instance Method Details

#conference_meetingsObject


61
62
63
64
65
66
# File 'decidim-conferences/app/forms/decidim/conferences/admin/conference_speaker_form.rb', line 61

def conference_meetings
  meeting_components = current_participatory_space.components.where(manifest_name: "meetings")
  return unless meeting_components || conference_meeting_ids.delete("").present?

  @conference_meetings ||= Decidim::ConferenceMeeting.where(component: meeting_components).where(id: conference_meeting_ids)
end

#map_model(model) ⇒ Object


51
52
53
54
55
# File 'decidim-conferences/app/forms/decidim/conferences/admin/conference_speaker_form.rb', line 51

def map_model(model)
  self.user_id = model.decidim_user_id
  self.existing_user = user_id.present?
  self.conference_meeting_ids = model.conference_meetings.pluck(:conference_meeting_id)
end

#meetingsObject


68
69
70
71
72
73
# File 'decidim-conferences/app/forms/decidim/conferences/admin/conference_speaker_form.rb', line 68

def meetings
  meeting_components = current_participatory_space.components.where(manifest_name: "meetings")
  @meetings ||= Decidim::ConferenceMeeting.where(component: meeting_components)
                                           &.order(title: :asc)
                                           &.map { |meeting| [present(meeting).title, meeting.id] }
end

#personal_urlObject


43
44
45
46
47
48
49
# File 'decidim-conferences/app/forms/decidim/conferences/admin/conference_speaker_form.rb', line 43

def personal_url
  return if super.blank?

  return "http://#{super}" unless super.match?(%r{\A(http|https)://}i)

  super
end

#userObject


57
58
59
# File 'decidim-conferences/app/forms/decidim/conferences/admin/conference_speaker_form.rb', line 57

def user
  @user ||= current_organization.users.find_by(id: user_id)
end