Added conference list page, administration tools, and re-designed conference administration

This commit is contained in:
Godwin
2016-12-11 20:02:24 -08:00
parent 08244444b0
commit 1dc608bf58
175 changed files with 12225 additions and 11806 deletions
@@ -1,6 +1,6 @@
= columns(medium: 3, large: 2) do
= admin_menu
= admin_menu
= columns(medium: 9, large: 10) do
%h3.subtitle=_("menu.submenu.admin.#{@admin_step.titlecase.gsub(/\s/, '_')}")
%p=(_"articles.admin.#{@admin_step.gsub(/\s/, '_')}.description", :p) unless @hide_description === true
%div{id: "admin-#{@admin_step}"}= render "conferences/admin/#{@admin_step}"
%h3.subtitle=_("menu.submenu.admin.#{@admin_step.titlecase.gsub(/\s/, '_')}")
%p=(_"articles.admin.#{@admin_step.gsub(/\s/, '_')}.description", :p) unless @hide_description === true
%div{id: "admin-#{@admin_step}"}= render "conferences/admin/#{@admin_step}"
@@ -0,0 +1,34 @@
- links ||= [ :register ]
- sections ||= [ :info ]
%article
= row(tag: :header) do
= columns(class: 'conference-banner') do
.title
%h1=_!conference.title
.details
%h2.primary=location(conference.city || conference.location) if conference.city_name.present?
- if conference.start_date.present? && conference.end_date.present?
.secondary
= date_span(conference.start_date.to_date, conference.end_date.to_date)
- if conference.poster.present?
%img{src: conference.poster.full.url || image_path('default_poster.jpg'), role: :presentation, alt: (_'images.conference.poster', vars: { conference_title: conference.title })}
= row(class: 'conference-details') do
= columns(medium: 10, push: {medium: 1}) do
%h2=_!conference.title if conference.poster.present?
= richtext conference.info
- if conference.registration_status == :open && sections.include?(:workshops)
- if conference.workshop_schedule_published
- add_inline_script :home_schedule
%h3=_'articles.workshops.headings.Schedule'
= render 'conferences/admin/schedule'
- else
%h3=_'articles.workshops.headings.Proposed_Workshops'
%p=_'articles.workshops.paragraphs.Proposed_Workshops'
= render 'workshops/workshop_previews', :workshops => (conference.workshops.sort { |a, b| a.title.downcase <=> b.title.downcase })
.links
= (link_to (_'forms.actions.generic.register'), register_path(conference.slug), class: [:button, :register]) if links.include?(:register) && conference.registration_status == :open
= (link_to (_'articles.workshops.info.read_more'), conference_path(conference.slug), class: :button) if links.include?(:read_more)
= (link_to (_'forms.actions.generic.administrate'), administrate_conference_path(conference.slug), class: [:button]) if links.include?(:administrate)
= (link_to (_'forms.actions.generic.edit'), edit_conference_path(conference.slug), class: [:button, :subdued]) if links.include?(:edit)
+5 -5
View File
@@ -1,10 +1,10 @@
- content_for :banner do
.title
%h1=_!@conference.title
%h1=_!@this_conference.title
.details
%h2.primary=location(@conference.organizations.first.locations.first)
%h2.primary=location(@this_conference.city)
.secondary
= date_span(@conference.start_date.to_date, @conference.end_date.to_date)
%img{src: @conference.poster.full.url || image_path('default_poster.jpg'), role: :presentation, alt: (_'images.conference.poster', vars: { conference_title: @conference.title })}
= date_span(@this_conference.start_date.to_date, @this_conference.end_date.to_date)
%img{src: @this_conference.poster.full.url || image_path('default_poster.jpg'), role: :presentation, alt: (_'images.conference.poster', vars: { conference_title: @this_conference.title })}
- content_for :og_image do
= @conference.poster.full.url || image_path('default_poster.jpg')
= @this_conference.poster.full.url || image_path('default_poster.jpg')
+19 -19
View File
@@ -1,20 +1,20 @@
= columns(medium: 12) do
= form_tag register_path(@this_conference.slug) do
= checkbox :can_provide_housing, @registration.can_provide_housing, 'articles.conference_registration.can_provide_housing', heading: 'articles.conference_registration.headings.can_provide_housing', help: 'articles.conference_registration.paragraphs.can_provide_housing', inline: true, toggles: 'hosting-options', centered: true
#hosting-options
= checkbox :not_attending, @registration.is_attending == 'n', 'articles.conference_registration.not_attending', help: 'articles.conference_registration.paragraphs.not_attending', inline: true, right_help: true
= textfield :address, @hosting_data['address'], required: true, heading: 'articles.conference_registration.headings.host.address', help: 'articles.conference_registration.paragraphs.host.address'
= telephonefield :phone, @hosting_data['phone'], required: true
= fieldset :space, heading: 'articles.conference_registration.headings.host.space', help: 'articles.conference_registration.paragraphs.host.space' do
- ConferenceRegistration.all_spaces.each do | space |
= numberfield space, @hosting_data['space'][space.to_s] || 0, min: 0, required: true
= fieldset :hosting_dates, heading: 'articles.conference_registration.headings.host.availability', help: 'articles.conference_registration.paragraphs.host.availability' do
- first_day_options = conference_days_options_list(:before)
- last_day_options = conference_days_options_list(:after)
= selectfield :first_day, @hosting_data['availability'][0] || first_day_options.first.last, first_day_options
= selectfield :last_day, @hosting_data['availability'][1] || last_day_options.last.last, last_day_options
= checkboxes :considerations, ConferenceRegistration.all_considerations, @hosting_data['considerations'], 'articles.conference_registration.host.considerations', heading: 'articles.conference_registration.headings.host.considerations', help: 'articles.conference_registration.paragraphs.host.considerations', vertical: true
= textarea :notes, @hosting_data['notes'], help: 'articles.conference_registration.paragraphs.host.notes', edit_on: :focus
.actions.next-prev
= button_tag (params[:step] == :save ? :save : :next), value: :hosting
= button_tag :previous, value: :prev_contact_info, class: :subdued, formnovalidate: true
= form_tag register_path(@this_conference.slug) do
= checkbox :can_provide_housing, @registration.can_provide_housing, 'articles.conference_registration.can_provide_housing', heading: 'articles.conference_registration.headings.can_provide_housing', help: 'articles.conference_registration.paragraphs.can_provide_housing', inline: true, toggles: 'hosting-options', centered: true
#hosting-options
= checkbox :not_attending, @registration.is_attending == 'n', 'articles.conference_registration.not_attending', help: 'articles.conference_registration.paragraphs.not_attending', inline: true, right_help: true
= textfield :address, @hosting_data['address'], required: true, heading: 'articles.conference_registration.headings.host.address', help: 'articles.conference_registration.paragraphs.host.address'
= telephonefield :phone, @hosting_data['phone'], required: true
= fieldset :space, heading: 'articles.conference_registration.headings.host.space', help: 'articles.conference_registration.paragraphs.host.space' do
- ConferenceRegistration.all_spaces.each do | space |
= numberfield space, @hosting_data['space'][space.to_s] || 0, min: 0, required: true
= fieldset :hosting_dates, heading: 'articles.conference_registration.headings.host.availability', help: 'articles.conference_registration.paragraphs.host.availability' do
- first_day_options = conference_days_options_list(:before)
- last_day_options = conference_days_options_list(:after)
= selectfield :first_day, @hosting_data['availability'][0] || first_day_options.first.last, first_day_options
= selectfield :last_day, @hosting_data['availability'][1] || last_day_options.last.last, last_day_options
= checkboxes :considerations, ConferenceRegistration.all_considerations, @hosting_data['considerations'], 'articles.conference_registration.host.considerations', heading: 'articles.conference_registration.headings.host.considerations', help: 'articles.conference_registration.paragraphs.host.considerations', vertical: true
= textarea :notes, @hosting_data['notes'], help: 'articles.conference_registration.paragraphs.host.notes', edit_on: :focus
.actions.next-prev
= button_tag (params[:step] == :save ? :save : :next), value: :hosting
= button_tag :previous, value: :prev_contact_info, class: :subdued, formnovalidate: true
+1 -1
View File
@@ -1 +1 @@
= render :partial => 'application/header', :locals => {:page_group => :conferences, :page_key => page_key, :image_file => @conference.poster_url}
= render :partial => 'application/header', :locals => {:page_group => :conferences, :page_key => page_key, :image_file => @this_conference.poster_url}
+25 -25
View File
@@ -1,29 +1,29 @@
= columns(medium: 12) do
- if @registration.registration_fees_paid.present?
%p
%strong=_'articles.conference_registration.paragraphs.Payment_Made', :p, vars: { fees_paid: (number_to_currency @registration.registration_fees_paid, unit: '$') }
= _'articles.conference_registration.paragraphs.Payment_Add'
= @this_conference.payment_message.html_safe if @this_conference.payment_message.present?
- elsif @this_conference.payment_message.present?
= @this_conference.payment_message.html_safe
- else
%p=@this_conference.payment_message || (_'articles.conference_registration.paragraphs.Payment', :p)
- if @registration.registration_fees_paid.present?
%p
%strong=_'articles.conference_registration.paragraphs.Payment_Made', :p, vars: { fees_paid: (number_to_currency @registration.registration_fees_paid, unit: '$') }
= _'articles.conference_registration.paragraphs.Payment_Add'
= @this_conference.payment_message.html_safe if @this_conference.payment_message.present?
- elsif @this_conference.payment_message.present?
= @this_conference.payment_message.html_safe
- else
%p=@this_conference.payment_message || (_'articles.conference_registration.paragraphs.Payment', :p)
= columns(large: 9, push: 1) do
= form_tag register_path(@this_conference.slug), class: :payment do
= hidden_field_tag :button, :payment
- payment_amounts = @this_conference.payment_amounts.present? ? @this_conference.payment_amounts : Conference.default_payment_amounts
.graded-options{class: "option-count-#{payment_amounts.size}"}
- payment_amounts.each_with_index do | amount, i |
= button_tag :amount_25, name: :amount, value: amount.to_f.to_s, class: "option-#{i + 1}" do
=_! (number_to_currency amount, unit: '$')
= form_tag register_path(@this_conference.slug), class: ['custom-payment', :centered] do
%span.currency=_!'$'
= numberfield :amount, nil, required: true, step: 0.01, min: 0.00, label: false
= button_tag :custom_amount, value: :payment
%p=_'articles.conference_registration.paragraphs.currency','(amounts are in $USD)'
= form_tag register_path(@this_conference.slug), class: :payment do
= hidden_field_tag :button, :payment
.actions.skip
= button_tag :skip, name: :amount, value: '0.0'
= form_tag register_path(@this_conference.slug), class: :payment do
= hidden_field_tag :button, :payment
- payment_amounts = @this_conference.payment_amounts.present? ? @this_conference.payment_amounts : Conference.default_payment_amounts
.graded-options{class: "option-count-#{payment_amounts.size}"}
- payment_amounts.each_with_index do | amount, i |
= button_tag :amount_25, name: :amount, value: amount.to_f.to_s, class: "option-#{i + 1}" do
=_! (number_to_currency amount, unit: '$')
= form_tag register_path(@this_conference.slug), class: ['custom-payment', :centered] do
%span.currency=_!'$'
= numberfield :amount, nil, required: true, step: 0.01, min: 0.00, label: false
= button_tag :custom_amount, value: :payment
%p=_'articles.conference_registration.paragraphs.currency','(amounts are in $USD)'
= form_tag register_path(@this_conference.slug), class: :payment do
= hidden_field_tag :button, :payment
.actions.skip
= button_tag :skip, name: :amount, value: '0.0'
= columns(large: 2)
@@ -1,29 +1,29 @@
- org_index = session[:registration][:new_org_index] || 0
= hidden_field_tag :new_org_index, org_index
- if session[:registration][:new_organization].length > 1
%h3=_'registration.new_organization.list.title','Your New Organizations'
%ul.columns.medium-11.medium-offset-1.end
- session[:registration][:new_organization].each_with_index do |new_organization, index|
- if new_organization.present? && new_organization[:name].present?
%li
- if index == org_index && new_organization[:name]
%strong=new_organization[:name]
- else
= new_organization[:name]
%h3=_'registration.new_organization.title','Your Organization Information'
.columns.medium-12
= text_field_tag :organization_name, session[:registration][:new_organization][org_index][:name], :required => true
.columns.medium-12= text_area_tag :organization_info, session[:registration][:new_organization][org_index][:info], :data => {:editor => ""}
.columns.medium-7
= email_field_tag :organization_email, session[:registration][:new_organization][org_index][:email], :required => true
= text_field_tag :organization_street, session[:registration][:new_organization][org_index][:street], :required => true
= text_field_tag :organization_city, session[:registration][:new_organization][org_index][:city], :required => true
= country_select_tag :organization_country, session[:registration][:new_organization][org_index][:country], :required => true
= subregion_select_tag :organization_territory, session[:registration][:new_organization][org_index][:territory], session[:registration][:new_organization][org_index][:country] || 'US', html: {class: session[:registration][:new_organization][org_index][:country] ? 'can' : 'cant', data: {:country => session[:registration][:new_organization][org_index][:country]}}
.columns.medium-5
= image_field_tag :logo
.columns
= check_box_tag :add_another_org, (org_index <= session[:registration][:new_organization].length - 1)
- content_for :footer_scripts do
= javascript_include_tag 'editor'
- org_index = session[:registration][:new_org_index] || 0
= hidden_field_tag :new_org_index, org_index
- if session[:registration][:new_organization].length > 1
%h3=_'registration.new_organization.list.title','Your New Organizations'
%ul.columns.medium-11.medium-offset-1.end
- session[:registration][:new_organization].each_with_index do |new_organization, index|
- if new_organization.present? && new_organization[:name].present?
%li
- if index == org_index && new_organization[:name]
%strong=new_organization[:name]
- else
= new_organization[:name]
%h3=_'registration.new_organization.title','Your Organization Information'
.columns.medium-12
= text_field_tag :organization_name, session[:registration][:new_organization][org_index][:name], :required => true
.columns.medium-12= text_area_tag :organization_info, session[:registration][:new_organization][org_index][:info], :data => {:editor => ""}
.columns.medium-7
= email_field_tag :organization_email, session[:registration][:new_organization][org_index][:email], :required => true
= text_field_tag :organization_street, session[:registration][:new_organization][org_index][:street], :required => true
= text_field_tag :organization_city, session[:registration][:new_organization][org_index][:city], :required => true
= country_select_tag :organization_country, session[:registration][:new_organization][org_index][:country], :required => true
= subregion_select_tag :organization_territory, session[:registration][:new_organization][org_index][:territory], session[:registration][:new_organization][org_index][:country] || 'US', html: {class: session[:registration][:new_organization][org_index][:country] ? 'can' : 'cant', data: {:country => session[:registration][:new_organization][org_index][:country]}}
.columns.medium-5
= image_field_tag :logo
.columns
= check_box_tag :add_another_org, (org_index <= session[:registration][:new_organization].length - 1)
- content_for :footer_scripts do
= javascript_include_tag 'editor'
+56 -56
View File
@@ -1,59 +1,59 @@
= columns(medium: 12) do
%h2=_'articles.conference_registration.headings.Stats'
%p=_'articles.conference_registration.paragraphs.Stats', :p
%h2=_'articles.conference_registration.headings.Stats'
%p=_'articles.conference_registration.paragraphs.Stats', :p
= columns(medium: 6) do
%ul.stats
%li
%h3=_'articles.conference_registration.terms.Total_Registrations'
.stat.important=_!@total_registrations
%li.money
%h3=_'articles.conference_registration.terms.Total_Donations'
.stat=money @total_donations
%li
%h3=_'articles.conference_registration.terms.Donation_Count'
.stat
= _!"#{@donation_count} / #{@total_registrations}"
%li
%h3=_'articles.conference_registration.terms.Housing'
.breakdown
- @housing.each do |h, v|
- unless h == :none
.stat-with-label
.label=_"articles.conference_registration.questions.housing.#{h}"
.stat=_!v
%li
%h3=_'articles.conference_registration.terms.Bikes'
.breakdown
.stat=_!"#{@bike_count} / #{@total_registrations}"
- @bikes.each do |h, v|
- unless h == :none
.stat-with-label
.label=_"articles.conference_registration.questions.bikes.#{h}"
.stat.percent=_!percent(v.to_f / @bike_count)
%li
%h3=_'articles.conference_registration.terms.Food'
.breakdown
- @food.each do |h, v|
.stat-with-label
.label=_"articles.conference_registration.questions.food.#{h}"
.stat.percent=_!percent(v.to_f / @total_registrations)
%li
%h3=_'articles.conference_registration.terms.Languages'
.breakdown
- @languages.each do |h, v|
.stat-with-label
.label=_"languages.#{h}"
.stat.percent=_!percent(v.to_f / @total_registrations)
%ul.stats
%li
%h3=_'articles.conference_registration.terms.Total_Registrations'
.stat.important=_!@total_registrations
%li.money
%h3=_'articles.conference_registration.terms.Total_Donations'
.stat=money @total_donations
%li
%h3=_'articles.conference_registration.terms.Donation_Count'
.stat
= _!"#{@donation_count} / #{@total_registrations}"
%li
%h3=_'articles.conference_registration.terms.Housing'
.breakdown
- @housing.each do |h, v|
- unless h == :none
.stat-with-label
.label=_"articles.conference_registration.questions.housing.#{h}"
.stat=_!v
%li
%h3=_'articles.conference_registration.terms.Bikes'
.breakdown
.stat=_!"#{@bike_count} / #{@total_registrations}"
- @bikes.each do |h, v|
- unless h == :none
.stat-with-label
.label=_"articles.conference_registration.questions.bikes.#{h}"
.stat.percent=_!percent(v.to_f / @bike_count)
%li
%h3=_'articles.conference_registration.terms.Food'
.breakdown
- @food.each do |h, v|
.stat-with-label
.label=_"articles.conference_registration.questions.food.#{h}"
.stat.percent=_!percent(v.to_f / @total_registrations)
%li
%h3=_'articles.conference_registration.terms.Languages'
.breakdown
- @languages.each do |h, v|
.stat-with-label
.label=_"languages.#{h}"
.stat.percent=_!percent(v.to_f / @total_registrations)
= columns(medium: 6) do
.allergies
%h3=_'articles.conference_registration.headings.Allergies'
%ul
- @allergies.each do |a|
%li
%p=_!a
.other
%h3=_'articles.conference_registration.headings.other'
%ul
- @other.each do |o|
%li
%p=_!o
.allergies
%h3=_'articles.conference_registration.headings.Allergies'
%ul
- @allergies.each do |a|
%li
%p=_!a
.other
%h3=_'articles.conference_registration.headings.other'
%ul
- @other.each do |o|
%li
%p=_!o
@@ -1,22 +0,0 @@
= form_tag administration_update_path(@this_conference.slug, :broadcast) do
- if @broadcast_step == :preview || @broadcast_step == :test
= hidden_field_tag :subject, @subject
= hidden_field_tag :body, @body
= hidden_field_tag :send_to, @send_to
- if @broadcast_step == :preview
%p= _'articles.conference_registration.paragraphs.admin.broadcast.test', vars: { send_to_count: "<strong>#{(@send_to_count || 0)}</strong>".html_safe }
- else
.warning-info.make-room= _'articles.conference_registration.paragraphs.admin.broadcast.preview', vars: { send_to_count: "<strong>#{(@send_to_count || 0)}</strong>".html_safe }
.test-preview
%h4=@subject
= richtext @body, 4
.actions.right
= button_tag :test, value: :test, class: :secondary if @broadcast_step == :preview
= button_with_confirmation :send, (_'modals.admin.broadcast.confirm', vars: { number: "<strong>#{(@send_to_count || 0)}</strong>".html_safe }), value: :send, class: :delete if @broadcast_step == :test
= button_tag :edit, value: :edit
- else
= selectfield :send_to, nil, broadcast_options, full: true
= textfield :subject, @subject, required: true, big: true
= textarea :body, @body, lang: @this_conference.locale, edit_on: :focus
.actions.right
= button_tag :preview, value: :preview
@@ -1,20 +0,0 @@
= form_tag administration_update_path(@this_conference.slug, :edit) do
= selectfield :registration_status, @this_conference.registration_status || 'closed', registration_status_options_list, small: true, inline_label: true
= textarea :info, @this_conference.info!, heading: 'articles.conference_registration.headings.admin.edit.info', help: 'articles.conference_registration.paragraphs.admin.edit.info', lang: @this_conference.locale, edit_on: :focus
- I18n.backend.enabled_locales.each do | locale |
- if locale.to_s != @this_conference.locale.to_s
= textarea "info_translations[#{locale.to_s}]", @this_conference._info(locale), label: 'translate.pages.Locale_Translation', vars: { language: _("languages.#{locale}") }, lang: locale, edit_on: :focus
.actions.right
= button_tag :save, value: :save
%h4=_'articles.admin.edit.headings.host_organizations'
- @this_conference.organizations.each do | organization |
%p=organization.name
%h5=_'articles.admin.edit.headings.members'
.details.org-members.inline
- organization.users.each do | user |
= raw_data_set(:h6, user.name) do
= user.email
= form_tag administration_update_path(@this_conference.slug, :edit), class: 'mini-flex-form' do
= hidden_field_tag :org_id, organization.id
= emailfield :email, nil, required: true
= button_tag :add_member, value: :add_member, class: :small
@@ -1,42 +0,0 @@
- if @this_conference.event_locations.blank?
.warning-info=_'articles.admin.events.no_locations_warning'
- else
- if @events.present?
%table.events.admin-edit
%tr
%th=_'forms.labels.generic.title'
%th=_'forms.labels.generic.event_location'
%th=_'forms.labels.generic.day'
%th=_'forms.labels.generic.time'
%th=_'forms.labels.generic.time_span'
%th.form
- @events.each do | event |
%tr
%th=event.title
%td=_!(event.event_location.present? ? event.event_location.title : '')
%td=date(event.start_time.to_date, :weekday)
%td=time(event.start_time, :short)
%td=hours(event.start_time, event.end_time)
%td.form
= form_tag administration_update_path(@this_conference.slug, :events) do
= hidden_field_tag :id, event.id
= button_tag :edit, value: :edit, class: :small
= button_with_confirmation :delete, (_'modals.admin.generic.delete.confirm', :p, vars: { title: event.title }), value: :delete, class: [:delete, :small]
%h4=_"articles.admin.locations.headings.#{@event.id.present? ? 'edit' : 'add'}_event", :t
= form_tag administration_update_path(@this_conference.slug, :events) do
= hidden_field_tag :id, @event.id if @event.id.present?
= textfield :title, @event.title!, required: true, big: true, lang: @event.locale
= textarea :info, @event.info!, heading: 'articles.conference_registration.headings.admin.edit.info', help: 'articles.conference_registration.paragraphs.admin.events.info', lang: @event.locale, edit_on: :focus
.flex-inputs
= location_select @event.event_location_id, small: true, stretch: true
= day_select @day, small: true, format: :weekday
= hour_select @time, small: true
= length_select @length, small: true
- I18n.backend.enabled_locales.each do | locale |
- if locale.to_s != @event.locale.to_s
= textfield "title_translations[#{locale.to_s}]", @event._title(locale), big: true, heading: 'translate.pages.Locale_Translation', vars: { language: _("languages.#{locale}") }, label: 'forms.labels.generic.title', lang: locale
= textarea "info_translations[#{locale.to_s}]", @event._info(locale), lang: locale, label: 'forms.labels.generic.info', edit_on: :focus
.actions.next-prev
= button_tag :save, value: :save
= button_tag :cancel, value: :cancel, class: :subdued, formnovalidate: true if @event.id.present?
@@ -1,11 +0,0 @@
.guests-housed
%h5 Guests Housed:
.data="#{@guests_housed} / #{@guests.size}"
%table.hosts.admin-edit
- @hosts.each do | id, registration |
%tr.host
%th
.name=registration.user.name
.address=registration.housing_data['address']
%td.inner-table{colspan: 2}=host_guests_table(registration)
@@ -1,10 +0,0 @@
- add_inline_script :housing
= form_tag administration_update_path(@this_conference.slug, :housing), id: 'housing-table-form' do
#housing-table= render partial: 'conferences/admin/hosts_table'
#guest-selector
= form_tag administration_update_path(@this_conference.slug, :housing), class: 'guest-dlg', id: 'guest-list-table' do
%h3 Select a Guest
#table
.actions
= link_to (_'links.download.Excel'), administration_step_path(@this_conference.slug, :housing, :format => :xlsx), class: [:button, :download]
@@ -1,37 +0,0 @@
- unless @location.present?
- if @locations.present?
%table.locations.admin-edit
%tr
%th=_'forms.labels.generic.title'
%th=_'forms.labels.generic.address'
%th=_'articles.workshops.headings.space'
%th=_'articles.admin.locations.headings.amenities'
%th.form
- @locations.each do | location |
%tr
%th=_!(location.title || '')
%td=location_link location
%td=location.space.present? ? (_"workshop.options.space.#{location.space}") : ''
%td
- amenities = location.amenities.present? ? JSON.parse(location.amenities) : []
=_!(amenities.collect { |amenity| _"workshop.options.needs.#{amenity}" }).join(', ')
%td.form
= form_tag administration_update_path(@this_conference.slug, :locations) do
= hidden_field_tag :id, location.id
= button_tag :edit, value: :edit, class: :small
= button_with_confirmation :delete, (_'modals.admin.generic.delete.confirm', :p, vars: { title: location.title }), value: :delete, class: [:delete, :small]
%h4=_"articles.admin.locations.headings.#{@location.present? ? 'edit' : 'add'}_location", :t
= form_tag administration_update_path(@this_conference.slug, :locations) do
= hidden_field_tag :id, @location.id if @location.present?
= textfield :title, @location.present? ? @location.title : nil, required: true, big: true, help: 'articles.admin.locations.paragraphs.title'
= textfield :address, @location.present? ? @location.address : nil, required: true, help: 'articles.admin.locations.paragraphs.address'
= columns(medium: 6) do
= radiobuttons :space, EventLocation.all_spaces, @location.present? ? @location.space : nil, 'workshop.options.space', vertical: true, heading: 'articles.workshops.headings.space', required: true, help: 'articles.admin.locations.paragraphs.space'
= columns(medium: 6) do
= checkboxes :needs, EventLocation.all_amenities, @location.present? ? JSON.parse(@location.amenities) : [], 'workshop.options.needs', vertical: true, heading: 'articles.admin.locations.headings.amenities', help: 'articles.admin.locations.paragraphs.amenities'
.actions.next-prev
- if @location.present?
= button_tag :save, value: :save
= button_tag :cancel, value: :cancel, class: :subdued, formnovalidate: true
- else
= button_tag :create, value: :create
@@ -1,34 +0,0 @@
- if @this_conference.event_locations.present?
- if @this_conference.meals.present?
%table.meals.admin-edit
%tr
%th=_'forms.labels.generic.title'
%th=_'forms.labels.generic.info'
%th=_'forms.labels.generic.event_location'
%th=_'forms.labels.generic.day'
%th=_'forms.labels.generic.time'
%th.form
- @meals.each do | time, meal |
%tr
%th
=_!(meal['title'] || '')
%td=_!(meal['info'] || '')
%td=_!location_name(meal['location'].to_i)
%td=date(meal['day'], :weekday)
%td=time(meal['time'].to_f)
%td.form
= form_tag administration_update_path(@this_conference.slug, :meals) do
= hidden_field_tag :meal, time
= button_tag :delete, value: :delete, class: [:small, :delete]
= form_tag administration_update_path(@this_conference.slug, :meals) do
%h4=_'articles.admin.locations.headings.add_meal', :t
.flex-inputs
= location_select nil, small: true, stretch: true
= day_select nil, small: true, format: :weekday
= hour_select nil, small: true
= textfield :title, nil, required: true, big: true, help: 'articles.admin.locations.paragraphs.meal_title'
= textfield :info, nil, help: 'articles.admin.locations.paragraphs.meal_info'
.actions.next-prev
= button_tag :add_meal, value: :add_meal
- else
.warning-info=_'articles.admin.meals.no_locations_warning'
@@ -1,20 +0,0 @@
= form_tag administration_update_path(@this_conference.slug, :payment) do
= textarea :payment_message, (@this_conference.payment_message! || "<p>#{I18n.t('articles.conference_registration.paragraphs.Payment', locale: @this_conference.locale)}</p>"), help: 'articles.conference_registration.paragraphs.admin.payment.message', lang: @this_conference.locale, edit_on: :focus, short: true
- I18n.backend.enabled_locales.each do | locale |
- if locale.to_s != @this_conference.locale.to_s
= textarea "payment_message_translations[#{locale.to_s}]", (@this_conference._payment_message(locale) || "<p>#{I18n.t('articles.conference_registration.paragraphs.Payment', locale: locale)}</p>"), label: 'translate.pages.Locale_Translation', vars: { language: _("languages.#{locale}") }, lang: locale, edit_on: :focus, short: true
%h4=_'articles.admin.payment.headings.payment_amounts', :t
= fieldset :payment_amounts, help: 'articles.admin.payment.paragraphs.payment_amounts' do
- payment_amounts = @this_conference.payment_amounts.present? ? @this_conference.payment_amounts : Conference.default_payment_amounts
- for i in 1..5 do
= numberfield "payment_amounts[#{i - 1}]", payment_amounts[i - 1], step: 0.01, min: 0.00, label: false
%h4=_'articles.admin.edit.headings.paypal_info', :t
%p=(_'articles.admin.edit.paragraphs.paypal_info', :p).html_safe
= emailfield :paypal_email_address, @this_conference.paypal_email_address || @this_conference.email_address || (@this_conference.organizations.present? && @this_conference.organizations.first.present? ? @this_conference.organizations.first.email_address : nil)
= textfield :paypal_username, @this_conference.paypal_username
= passwordfield :paypal_password, @this_conference.paypal_password
= textfield :paypal_signature, @this_conference.paypal_signature
.actions.right
= button_tag :save, value: :save
@@ -1,93 +0,0 @@
- conference = @this_conference || @conference
- if conference.event_locations.blank? && @entire_page
.warning-info=_'articles.admin.schedule.no_locations_warning'
- else
- if @entire_page
- add_inline_script :schedule
= form_tag administration_update_path(conference.slug, :schedule) do
- if conference.workshop_schedule_published
%p=_'articles.conference_registration.paragraphs.admin.schedule.published', :p
.actions= button_tag :un_publish, value: :publish, class: :delete
- else
%p=_'articles.conference_registration.paragraphs.admin.schedule.un_published', :p
.actions= button_tag :publish, value: :publish
#schedule-preview
- @schedule.each do | day, data |
%h4=date(day, :weekday)
%table.schedule{class: [data[:locations].present? ? 'has-locations' : 'no-locations', "locations-#{data[:num_locations]}"]}
- if data[:locations].present? && data[:locations].values.first != :add
%thead
%tr
%th.corner
- data[:locations].each do | id, location |
%th=location.is_a?(Symbol) ? '' : location.title
%tbody
- data[:times].each do | time, time_data |
%tr
- rowspan = (time_data[:length] * 2).to_i
%th=time(time)
- if time_data[:type] == :workshop
- data[:locations].each do | id, location |
- if time_data[:item][:workshops][id].present?
- workshop = time_data[:item][:workshops][id][:workshop]
- status = time_data[:item][:workshops][id][:status]
- else
- workshop = status = nil
%td{class: [time_data[:type], workshop.present? ? :filled : :open], rowspan: rowspan, data: workshop.present? ? nil : { block: time_data[:item][:block], day: day, location: id }}
- if workshop.present? && workshop.event_location.present?
= link_to view_workshop_path(@conference.slug, workshop.id), class: 'event-detail-link' do
.details
.title=workshop.title
%template.event-details{data: { href: view_workshop_path(@conference.slug, workshop.id) }}
%h1.title=workshop.title
%p.address
= workshop.event_location.title + _!(': ')
= location_link workshop.event_location
.workshop-description= richtext workshop.info, 1
- if @can_edit
= form_tag administration_update_path(conference.slug, :schedule), class: 'deschedule-workshop' do
.status
.conflict-score
%span.title Conflicts:
%span.value="#{status[:conflict_score]} / #{workshop.interested.size}"
- if status[:errors].present?
.errors
- status[:errors].each do | error |
.error=_"errors.messages.schedule.#{error[:name].to_s}", vars: error[:i18nVars]
= hidden_field_tag :id, workshop.id
= button_tag :deschedule, value: :deschedule_workshop, class: [:delete, :small]
- elsif @can_edit
.title="Block #{time_data[:item][:block] + 1}"
- elsif time_data[:type] != :nil
%td{class: time_data[:type], rowspan: rowspan, colspan: data[:locations].present? ? data[:locations].size : 1}
- case time_data[:type]
- when :meal
- location = EventLocation.where(id: time_data[:item]['location'].to_i).first
- if location.present?
%a.event-detail-link
.details
.title= time_data[:item]['title']
.location= location.title
%template.event-details
%h1.title=time_data[:item]['title']
%p.address
= location.title + _!(': ')
= location_link location
- when :event
- if time_data[:item].event_location.present?
%a.event-detail-link
.details
.title= time_data[:item][:title]
.location= time_data[:item].event_location.title
%template.event-details
%h1.title=time_data[:item][:title]
%p.address
= time_data[:item].event_location.title + _!(': ')
= location_link time_data[:item].event_location
= richtext time_data[:item][:info], 1
- if @entire_page
#workshop-selector
= form_tag administration_update_path(@this_conference.slug, :schedule), class: 'workshop-dlg', id: 'workshop-table-form' do
%h3 Select a Workshop
#table
@@ -1,46 +0,0 @@
= hidden_field_tag :host, host.id
.host-field
%h4.inline=_'forms.labels.generic.name'
%span.plain-value= host.user.name
.host-field
%h4.inline=_'articles.conference_registration.headings.host.availability'
%span.plain-value= host.housing_data['availability'].present? && host.housing_data['availability'][1].present? ? date_span(host.housing_data['availability'][0].to_date, host.housing_data['availability'][1].to_date) : ''
- if host.housing_data['considerations'].present?
.host-field
%h4.inline=_'articles.conference_registration.headings.host.considerations'
%span.plain-value= (host.housing_data['considerations'].map { | consideration | _"articles.conference_registration.host.considerations.#{consideration}" }).join(', ')
- if sanitize(host.housing_data['notes'], tags: []).present?
.host-field
%h4=_'articles.conference_registration.headings.host.notes'
%blockquote= host.housing_data['notes'].html_safe
%table.guests.admin-edit
%tr
%th.corner
%th=_'forms.labels.generic.city'
%th=_'forms.labels.generic.housing'
%th=_'articles.admin.housing.headings.arrival_departure'
%th=_'articles.conference_registration.headings.companion'
%th=_'forms.labels.generic.food'
%th=_'forms.labels.generic.allergies'
%th=_'forms.labels.generic.other'
- @guests.each do | id, registration |
%tr.selectable{class: get_housing_match(host, registration, space).to_s.gsub('_', '-'), data: {host: host.id, guest: id, space: space}}
%th=registration.user.name
%td=registration.city
%td=registration.housing.present? ? (_"articles.conference_registration.questions.housing.#{registration.housing}") : ''
%td=date_span(registration.arrival.to_date, registration.departure.to_date)
- companion = companion(registration)
%td=companion.present? ? (companion.is_a?(User) ? companion.named_email : (_"articles.conference_registration.terms.registration_status.#{companion}")) : ''
%td=registration.food.present? ? (_"articles.conference_registration.questions.food.#{registration.food}") : ''
%td=registration.allergies
%td
.p=registration.other
.legend
%h4 Legend
%ul
%li.good-match Good Match
%li.bad-match Poor Match
%li.selected-space Also in this space
%li.other-space Also with this host
%li.other-host Already hosted
@@ -1,50 +0,0 @@
.host-field
%h4.inline=_'forms.labels.generic.event_location'
- if @event_location.present?
%span.plain-value
= @event_location.title
= hidden_field_tag :event_location, @location
- else
= location_select(nil, inline_label: true, small: true, invalid_locations: (((((@schedule[@day] || {})[:times] || {})[@time] || {})[:item] || {})[:workshops] || {}).keys, label: false)
- if @event_location.present?
.host-field
%h4.inline=_'articles.admin.locations.headings.amenities'
%span.plain-value
= (JSON.parse(@event_location.amenities || '[]').map { |a| _"workshop.options.needs.#{a}" }).join(', ')
.host-field
%h4.inline=_'forms.labels.generic.day'
%span.plain-value
= date(@day, :weekday)
.host-field
%h4.inline=_'forms.labels.generic.time'
%span.plain-value
= time(@workshop_blocks[@block]['time'].to_f)
%table.workshops.admin-edit
%tr
%th.corner
%th=_'articles.workshops.headings.theme'
%th=_'articles.workshops.headings.space'
%th=_'articles.workshops.headings.needs'
%th=_'articles.workshops.headings.facilitators'
%th=_'articles.workshops.headings.interested_count'
%th=_'articles.workshops.headings.notes'
- @ordered_workshops.each do | id, workshop |
%tr.selectable{class: get_workshop_match(workshop, @day, @block, @event_location).to_s.gsub('_', '-'), data: {workshop: id}}
%th=workshop.title
%td=Workshop.all_themes.include?((workshop.theme || '').to_sym) ? (_"workshop.options.theme.#{workshop.theme}") : workshop.theme
%td=workshop.space.present? ? (_"workshop.options.space.#{workshop.space}") : ''
- needs = JSON.parse(workshop.needs || '[]')
%td=_!((needs.map { |x| _"workshop.options.needs.#{x}" }).join(', ').to_s.html_safe)
%td=(workshop.active_facilitators.map { |x| x.named_email }).join(', ')
%td=workshop.interested_count
%td
.text=workshop.notes
.legend
%h4 Legend
%ul
%li.good-match Good Match
%li.bad-match Poor Match
%li.selected-space Also at this time
%li.other-space Also in this space
%li.other-host Already scheduled
@@ -1,37 +0,0 @@
- add_inline_script :registrations
.details
= data_set(:h4, 'articles.admin.stats.headings.completed_registrations') do
= (@completed_registrations || 0).to_s
= data_set(:h4, 'articles.admin.stats.headings.incomplete_registrations') do
= ((@registration_count - @completed_registrations) || 0).to_s
= data_set(:h4, 'articles.admin.stats.headings.bikes') do
= (@completed_registrations || 0) > 0 ? "#{@bikes} (#{number_to_percentage(@bikes / @completed_registrations.to_f * 100.0)})" : "0"
= data_set(:h4, 'articles.admin.stats.headings.food.meat') do
= (@food[:all] || 0) > 0 ? "#{@food[:meat]} (#{number_to_percentage(@food[:meat] / @food[:all].to_f * 100.0)})" : "0"
= data_set(:h4, 'articles.admin.stats.headings.food.vegetarian') do
= (@food[:all] || 0) > 0 ? "#{@food[:vegetarian]} (#{number_to_percentage(@food[:vegetarian] / @food[:all].to_f * 100.0)})" : "0"
= data_set(:h4, 'articles.admin.stats.headings.food.vegan') do
= (@food[:all] || 0) > 0 ? "#{@food[:vegan]} (#{number_to_percentage(@food[:vegan] / @food[:all].to_f * 100.0)})" : "0"
= data_set(:h4, 'articles.admin.stats.headings.donation_count') do
= (@completed_registrations || 0) > 0 ? "#{@donation_count} (#{number_to_percentage(@donation_count / @completed_registrations.to_f * 100.0)})" : "0"
= data_set(:h4, 'articles.admin.stats.headings.donation_total') do
= "$#{@donations || 0.00}"
.actions
= link_to (_'links.download.Excel'), administration_step_path(@this_conference.slug, :stats, :format => :xlsx), class: [:button, :download]
= link_to (_'links.download.Organizations_Excel'), administration_step_path(@this_conference.slug, :organizations, :format => :xlsx), class: [:button, :download, :subdued]
%h4=_'articles.admin.stats.headings.Registrations'
.goes-fullscreen#registrations-table
.flex-column
= searchfield :search, nil, big: true, stretch: true
%a.button{data: { expands: 'registrations-table' }}='expand'
%a.button.delete{data: { contracts: 'registrations-table' }}='close'
%a.button.modify{data: { 'opens-modal': 'new-registration' }}='+'
.table-scroller
= html_table @excel_data, registrations_table_options
= form_tag administration_update_path(@this_conference.slug, :stats), id: 'new-registration', class: 'modal-edit' do
.modal-edit-overlay{data: { 'closes-modal': 'new-registration' }}
.modal-edit-content
=html_edit_table @excel_data, registrations_edit_table_options
.actions.right
%a.button.subdued{data: { 'closes-modal': 'new-registration' }}='Cancel'
= button_tag :save, value: :save, class: :modify
@@ -1,18 +0,0 @@
.table.workshop-blocks
.table-tr.header
.table-th=_'forms.labels.generic.block_number'
.table-th=_'forms.labels.generic.time'
.table-th=_'forms.labels.generic.length'
.table-th=_'forms.labels.generic.days'
.table-th.form
- @workshop_blocks.each_with_index do | info, block |
- is_new = info['time'].blank?
= form_tag administration_update_path(@this_conference.slug, :workshop_times), class: ['table-tr', is_new ? 'new' : 'saved'] do
.table-th.center.big= is_new ? '' : (block + 1)
.table-td=hour_select info['time'], small: true, label: false
.table-td=length_select info['length'], {small: true, label: false}, 0.5, 2
.table-td=checkboxes :days, @block_days, info['days'].map(&:to_i), 'date.day_names', vertical: true, small: true
.table-td.form
= hidden_field_tag :workshop_block, block
= button_tag :delete_block, value: :delete_block, class: [:small, :delete] if block == @workshop_blocks.length - 2
= button_tag (is_new ? :add_block : :update_block), value: :save_block, class: [:small, :add]
+32 -32
View File
@@ -1,35 +1,35 @@
= render 'page_header', :page_key => 'Email_Participants'
%article
= row do
= columns(medium: 12) do
- if @email_sent == :yes
%p=_('articles.conference_registration.paragraphs.participants_emailed',"All participants of #{@this_conference.title} have been emailed.", :vars => {:conference_title => @this_conference.title})
- if @email_sent != :yes
=m('articles.conference_registration.paragraphs.Email_Participants','This page is used to contact all participants. Text can be entered as [Markdown](http://daringfireball.net/projects/markdown/basics). Pressing \'test\' will send the email only to you, make sure you do this and use caution in general before pressing \'send\'')
- if @email_sent == :yes || @email_sent == :preview
%h2=_'articles.conference_registration.headings.Preview'
.email-preview
%h3=@subject
=markdown @content
- if @email_sent != :yes
= form_tag broadcast_path(@this_conference.slug), class: 'composition' do
- if @email_sent == :preview
= hidden_field_tag :subject, @subject
= hidden_field_tag :content, @content
- else
.text-field.input-field.big
= label_tag :subject
= text_field_tag :subject, @subject, :required => true
.select-field.input-field
= label_tag :content
= text_area_tag :content, @content, :required => true
.actions.right
- if @email_sent == :test
.note=_('articles.conference_registration.notes.Test_Email_Sent',"An email was sent to #{current_user.email}", vars: {:email_address => current_user.email})
- if @email_sent == :preview # let the user send the
= button_tag :edit, :value => :edit
= button_tag :send, :value => :send
- else
= button_tag :preview, :value => :preview
= button_tag :test, :value => :test
= row do
= columns(medium: 12) do
- if @email_sent == :yes
%p=_('articles.conference_registration.paragraphs.participants_emailed',"All participants of #{@this_conference.title} have been emailed.", :vars => {:conference_title => @this_conference.title})
- if @email_sent != :yes
=m('articles.conference_registration.paragraphs.Email_Participants','This page is used to contact all participants. Text can be entered as [Markdown](http://daringfireball.net/projects/markdown/basics). Pressing \'test\' will send the email only to you, make sure you do this and use caution in general before pressing \'send\'')
- if @email_sent == :yes || @email_sent == :preview
%h2=_'articles.conference_registration.headings.Preview'
.email-preview
%h3=@subject
=markdown @content
- if @email_sent != :yes
= form_tag broadcast_path(@this_conference.slug), class: 'composition' do
- if @email_sent == :preview
= hidden_field_tag :subject, @subject
= hidden_field_tag :content, @content
- else
.text-field.input-field.big
= label_tag :subject
= text_field_tag :subject, @subject, :required => true
.select-field.input-field
= label_tag :content
= text_area_tag :content, @content, :required => true
.actions.right
- if @email_sent == :test
.note=_('articles.conference_registration.notes.Test_Email_Sent',"An email was sent to #{current_user.email}", vars: {:email_address => current_user.email})
- if @email_sent == :preview # let the user send the
= button_tag :edit, :value => :edit
= button_tag :send, :value => :send
- else
= button_tag :preview, :value => :preview
= button_tag :test, :value => :test
+39
View File
@@ -0,0 +1,39 @@
= javascript_include_tag 'topojson.js'
- add_inline_script :map
- content_for :title do
=I18n.t'articles.conferences.headings.Conference_List'
- content_for :banner do
#header-title.map
%svg#map.loading{preserveAspectRatio: 'xMinYMin slice', viewBox: "0 0 1880 550"}
#tooltip
%article
= row do
= columns(medium: 12) do
%h2=_"articles.conferences.headings.conferences", :t
%p=_"articles.conferences.paragraphs.conferences", :p
- if logged_in? && current_user.administrator?
.actions.left= link_to (_'forms.actions.generic.create'), new_conference_path, class: ['button', 'accented']
= row do
= columns(medium: 12, id: :conferences, class: 'list-view') do
- @conference_list.each do | type, list |
%h3=_"articles.conferences.headings.types.#{type.to_s}", :t
%ul
- list.each do | conference |
%li.conference{id: "conference-#{conference.id}", data: {a: conference.city.latitude, o: conference.city.longitude, y: conference.year, t: conference.conferencetype}}
.info
%h4.title= conference.title
.conference-details
.location=location(conference.city)
.date= date_span(conference.start_date.to_date, conference.end_date.to_date)
.actions
= link_to (_'articles.workshops.info.read_more'), conference_path(conference.slug), class: ['button', 'conference-link', 'small']
- if logged_in?
- if conference.host? current_user
= link_to (_'forms.actions.generic.administrate'), administrate_conference_path(conference.slug), class: [:button, :modify, :small]
- if current_user.administrator?
= link_to (_'forms.actions.generic.edit'), edit_conference_path(conference.slug), class: [:button, :subdued, :small]
- if conference.poster.present?
.img
%img{src: conference.poster.preview.url}
+10 -10
View File
@@ -1,13 +1,13 @@
= render :partial => 'page_header', :locals => {:page_key => 'Conference_Registration'}
= render :partial => 'page_header', :locals => {:page_key => 'Conference_Administration'}
- if @warnings.present?
= row class: 'warnings', tag: :ul do
- @warnings.each do | warning |
= columns tag: :li do
= warning
= row class: 'warnings', tag: :ul do
- @warnings.each do | warning |
= columns tag: :li do
= warning
%article
= row do
= columns(medium: 12) do
%h2=_(@page_title)
= registration_step_menu
= render @register_template.to_s
= row do
= columns(medium: 12) do
%h2=_(@page_title)
= registration_step_menu
= render @register_template.to_s
+34 -34
View File
@@ -1,34 +1,34 @@
- location = @conference.organizations.first.locations.first
- location_name = location.city + ', ' + (location.territory ? Carmen::Country.coded(location.country).subregions.coded(location.territory).name : location.country)
- title @conference.title
- description "#{@conference.title} conference in #{location_name} for DIY bicycle collectives, co-ops, and advocacy groups"
= render 'header'
%article.row
.columns.large-10
- if @register_step
%h2='Conference Registration'
- if @actions
= form_tag (@conference.url + '/register/').gsub(/\/\/+/, '/'), :method => :post, :multipart => @multipart do
= hidden_field_tag :step, @register_step
- if @error_message
.columns.medium-8.medium-centered
%p.error=@error_message
= render @register_template
.columns= form_actions @actions
- else
= render @register_template
- else
%h2=('About '+@conference.title)
=p @conference, :info
- if @conference.registration_open
.columns.small-12.centered
%a.button.register-now{href: @conference.url(:register)}
=_'conference.Register_Now'
- content_for :side_bar do
%h5= @conference.title+' is hosted by:'
%ul.preview-list.org-list.small-block-grid-2.large-block-grid-1
- @conference.organizations.each do |organization|
%li=render 'organizations/preview', :organization => organization
- location = @conference.organizations.first.locations.first
- location_name = location.city + ', ' + (location.territory ? Carmen::Country.coded(location.country).subregions.coded(location.territory).name : location.country)
- title @conference.title
- description "#{@conference.title} conference in #{location_name} for DIY bicycle collectives, co-ops, and advocacy groups"
= render 'header'
%article.row
.columns.large-10
- if @register_step
%h2='Conference Registration'
- if @actions
= form_tag (@conference.url + '/register/').gsub(/\/\/+/, '/'), :method => :post, :multipart => @multipart do
= hidden_field_tag :step, @register_step
- if @error_message
.columns.medium-8.medium-centered
%p.error=@error_message
= render @register_template
.columns= form_actions @actions
- else
= render @register_template
- else
%h2=('About '+@conference.title)
=p @conference, :info
- if @conference.registration_open
.columns.small-12.centered
%a.button.register-now{href: @conference.url(:register)}
=_'conference.Register_Now'
- content_for :side_bar do
%h5= @conference.title+' is hosted by:'
%ul.preview-list.org-list.small-block-grid-2.large-block-grid-1
- @conference.organizations.each do |organization|
%li=render 'organizations/preview', :organization => organization
+5
View File
@@ -0,0 +1,5 @@
- content_for :og_image do
= @this_conference.poster.full.url || image_path('default_poster.jpg')
- content_for :title do
=@this_conference.title
= render 'conferences/conference', conference: @this_conference, links: @links