implement manual event management and support for multiple speakers per event

This commit is contained in:
Eugene Dubinin 2017-02-02 16:34:59 +02:00
parent 46a6a59622
commit 790e2fd3a2
24 changed files with 180 additions and 89 deletions

View file

@ -0,0 +1,11 @@
.row
.col-md-12
.page-header
%h1
-if @event.new_record?
New
= @event.title
Event
.row
.col-md-12
= render 'proposals/proposal_form'

View file

@ -131,9 +131,26 @@
%i Hidden
%tr
%td
%b Biography
%b Speakers
%td
= markdown(@event.submitter.biography)
- if @program.show_voting?
- @event.speakers.each do |speaker|
%div
= link_to speaker.name, admin_user_path(speaker)
(
= link_to speaker.email, "mailto: #{speaker.email}"
)
- else
%i Hidden
%tr
%td
%b Biographies
%td
- @event.speakers.each do |speaker|
- unless speaker.biography.blank?
%b
= speaker.name
= markdown(speaker.biography)
%tr
%td
%b Submitted on

View file

@ -4,7 +4,9 @@
%h1
Events
= "(#{@events.length})" if @events.any?
.btn-group.pull-right
.pull-right
- if can? :create, Event
=link_to 'Add Event', new_admin_conference_program_event_path(@conference.short_title), class: 'button btn btn-default btn-info'
- if can? :read, Event
.btn-group
%button.btn.btn-default.dropdown-toggle{ 'data-toggle' => 'dropdown', type: 'button', class: 'btn btn-success' }
@ -54,8 +56,8 @@
%th
%b Submitter
%th
%b Speaker
- if @program.languages.present?
%b Speakers
-if @program.languages.present?
%th
%b Language
%th
@ -99,10 +101,9 @@
%i Hidden
%td
- if @program.show_voting?
- if speaker = event.speakers.first
= link_to speaker.name, admin_user_path(speaker)
- else
Unknown speaker
- event.speakers_ordered.each do |speaker|
.speaker
= link_to speaker.name, admin_user_path(speaker)
- else
%i Hidden

View file

@ -4,6 +4,10 @@
= f.input :subtitle, as: :string
= f.input :speakers, as: :select,
collection: options_for_select(@users.map {|user| ["#{user.name} (#{user.email})", user.id]}, @event.speakers.map(&:id)),
include_blank: false, label: 'Speakers', input_html: { class: 'select-help-toggle', multiple: 'true' }
- if @program.tracks.any?
= f.input :track_id, as: :select,
collection: @program.tracks.map {|track| ["#{track.name}", track.id] },
@ -60,4 +64,15 @@
%p.text-right
= f.submit 'Update Proposal', class: 'btn btn-success'
- if @event.new_record?
= f.submit 'Create Proposal', class: 'btn btn-success'
- else
= f.submit 'Update Proposal', class: 'btn btn-success'
:javascript
$(document).ready(function() {
$('#event_speaker_ids').selectize({
plugins: ['remove_button'],
maxItems: 5
} )
});

View file

@ -3,8 +3,9 @@
%meta{ property: "og:url", content: conference_program_proposal_url(@conference.short_title, @event) }
%meta{ property: "og:description", content: @event.abstract }
%meta{ property: "og:site_name", content: (ENV['OSEM_NAME'] || 'OSEM') }
%meta{ property: "og:image", content: @speaker.gravatar_url }
%meta{ property: "og:image:secure_url", content: @speaker.gravatar_url }
- if @speakers_ordered.any?
%meta{ property: "og:image", content: @speakers_ordered.first.gravatar_url }
%meta{ property: "og:image:secure_url", content: @speakers_ordered.first.gravatar_url }
.container
.row
@ -25,21 +26,25 @@
.row
.col-md-3
.speakerinfo
.col-md-12
= image_tag @speaker.gravatar_url(size: 200), class: 'img-responsive img-rounded'
.col-md-12
%h3
by
= link_to @speaker.name, user_path(@speaker.id)
= "(#{@speaker.email})" if @speaker.email_public
- if @speaker.affiliation?
%br
%span.muted
from
= @speaker.affiliation
-if @speaker.biography?
= markdown(@speaker.biography)
%h3
Presented by:
- @speakers_ordered.each do |speaker|
.speakerinfo
.row
.col-md-4
= image_tag speaker.gravatar_url(:size => 120), class: 'img-responsive img-rounded'
.col-md-8
%h4
= link_to speaker.name, user_path(speaker.id)
= "(#{speaker.email})"
- if speaker.affiliation?
.text-muted
from
= speaker.affiliation
-if speaker.biography?
.row.speakerbio
.col-md-12
= markdown(speaker.biography)
.col-md-9
.row
.col-md-12

View file

@ -1,9 +1,9 @@
.panel.panel-default.event-panel{ onClick: 'eventClicked(event, this);', "data-url" => "#{url_for(conference_program_proposal_path(@conference.short_title, event.id))}" }
.panel-body
- if speaker = event.speakers.first
= image_tag speaker.gravatar_url, class: "img-circle pull-right all-speaker-pic", |
alt: speaker.name, |
title: speaker.name |
- event.speakers_ordered.each do |speaker|
= image_tag speaker.gravatar_url, :class => "img-circle pull-right all-speaker-pic", |
:alt => speaker.name, |
:title => speaker.name |
%p
= canceled_replacement_event_label(event, event_schedule)

View file

@ -14,3 +14,9 @@
alt: speaker.name, |
title: speaker.name, |
style: "height: #{ speaker_height(@rooms) }px; width: #{ speaker_width(@rooms) }px;"
- event.speakers_ordered.each do |speaker|
= image_tag speaker.gravatar_url, :class => "img-circle pull-right speaker-pic", |
:alt => speaker.name, |
:title => speaker.name, |
:style => "height: #{ speaker_height(@rooms) }px; width: #{ speaker_width(@rooms) }px;"

View file

@ -11,11 +11,11 @@
= markdown(@user.biography)
.row
.col-md-12
- if @user.events.confirmed.any?
- if @user.presented_events.confirmed.any?
%h3
= "#{@user.name} presents #{pluralize(@user.events.confirmed.count, 'Event')}:"
= "#{@user.name} presents #{pluralize(@user.presented_events.confirmed.count, 'Event')}:"
%ul.list-unstyled
- @user.events.confirmed.each do |event|
- @user.presented_events.confirmed.each do |event|
%li
%h4
= link_to event.title, conference_program_proposal_path(event.program.conference.short_title, event.id)