Rename 'ConferenceController' to 'ConferencesController', and 'ProposalController' to 'ProposalsController'
This commit is contained in:
parent
0b6550d060
commit
daf1f805bd
71 changed files with 225 additions and 191 deletions
24
app/views/proposals/_encouragement_text.html.haml
Normal file
24
app/views/proposals/_encouragement_text.html.haml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
%p.lead
|
||||
- if @program.event_types.any?
|
||||
You can submit proposals for
|
||||
= "#{event_types(@conference)}."
|
||||
- if @program.tracks.any?
|
||||
Proposals should fit in one of the
|
||||
= "#{pluralize(@program.tracks.count, 'track')}:"
|
||||
= "#{tracks(@conference)}."
|
||||
- if @program.cfp_open?
|
||||
The submission period has begun
|
||||
%em.notranslate
|
||||
= @program.cfp.start_date.strftime('%A, %B %-d. %Y')
|
||||
and closes
|
||||
%em.notranslate
|
||||
= @program.cfp.end_date.strftime('%A, %B %-d. %Y.')
|
||||
That means you have
|
||||
%b.notranslate= pluralize(@program.cfp.remaining_days, 'day')
|
||||
left!
|
||||
Remember
|
||||
%span.notranslate
|
||||
= @conference.title
|
||||
will only be as good as the content you present. Submit early, submit often!
|
||||
-else
|
||||
The submission period is closed now.
|
||||
45
app/views/proposals/_form.html.haml
Normal file
45
app/views/proposals/_form.html.haml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
.tabbable
|
||||
%ul.nav.nav-tabs
|
||||
%li.active
|
||||
= link_to 'Proposal', '#proposal-content', 'data-toggle' => 'tab'
|
||||
%li
|
||||
= link_to 'Commercials', '#commercials-content', 'data-toggle' => 'tab'
|
||||
.tab-content
|
||||
#proposal-content.tab-pane.active
|
||||
= render 'proposals/proposal_form'
|
||||
#commercials-content.tab-pane
|
||||
%p.text-muted
|
||||
You can add commercials for your proposal. These commercials will be displayed on the
|
||||
= link_to 'public proposal page.', conference_program_proposal_path(@conference.short_title, @event)
|
||||
If you don't add a commercial, the conference commercial will be displayed!
|
||||
- if can? :create, @event.commercials.new
|
||||
.row
|
||||
.col-md-6
|
||||
#resource-content
|
||||
#resource-placeholder{ style: 'background-color:#d3d3d3; float: left; width: 400px; height: 250px; margin: 5px; border-width: 1px; border-style: solid; border-color: rgba(0,0,0,.2);' }
|
||||
.row
|
||||
.col-md-6
|
||||
= semantic_form_for(@event.commercials.build, url: conference_program_proposal_commercials_path(conference_id: @conference.short_title, proposal_id: @event)) do |f|
|
||||
= f.input :url, label: 'URL', as: :string, input_html: { required: 'required', type: 'url' },
|
||||
hint: 'Just paste the url of your video/photo provider. Currently supported: YouTube, Vimeo, SpeakerDeck, SlideShare, Instagram, Flickr.'
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary pull-right', disabled: true }
|
||||
%hr
|
||||
- @event.commercials.each_slice(3) do |slice|
|
||||
.row
|
||||
- slice.each do |commercial|
|
||||
- if commercial.persisted?
|
||||
.col-md-4
|
||||
.thumbnail
|
||||
.flexvideo{ id: "resource-content-#{commercial.id}"}
|
||||
= render partial: 'shared/media_item', locals: { commercial: commercial }
|
||||
.caption
|
||||
- if can? :update, commercial
|
||||
= semantic_form_for commercial, url: conference_program_proposal_commercial_path(conference_id: @conference.short_title, proposal_id: @event, id: commercial) do |f|
|
||||
= f.input :url, label: 'URL', as: :string, input_html: { id: "commercial_url_#{commercial.id}", required: 'required', type: 'url' }
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-success' }, label: 'Update'
|
||||
- if can? :destroy, commercial
|
||||
= link_to 'Delete', conference_program_proposal_commercial_path(@conference.short_title, @event.id, commercial.id),
|
||||
:method => :delete, :data => { :confirm => 'Are you sure?' }, class: 'btn btn-danger'
|
||||
.text-right
|
||||
= "added by "
|
||||
= link_to_user(commercial.versions.last.whodunnit)
|
||||
66
app/views/proposals/_proposal_form.html.haml
Normal file
66
app/views/proposals/_proposal_form.html.haml
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
= semantic_form_for(@event, url: @url) do |f|
|
||||
= f.inputs name: 'Proposal Information' do
|
||||
= f.input :title, as: :string, required: true
|
||||
|
||||
= f.input :subtitle, as: :string
|
||||
|
||||
- if @program.tracks.any?
|
||||
= f.input :track_id, as: :select,
|
||||
collection: @program.tracks.map {|track| ["#{track.name}", track.id] },
|
||||
include_blank: true
|
||||
|
||||
= f.input :event_type_id, as: :select,
|
||||
collection: @conference.program.event_types.map {|type| ["#{type.title} - #{show_time(type.length)}", type.id,
|
||||
data: { min_words: type.minimum_abstract_length, max_words: type.maximum_abstract_length }]},
|
||||
include_blank: false, label: 'Type', input_html: { class: 'select-help-toggle' }
|
||||
|
||||
- if @program.languages.present?
|
||||
= f.input :language, as: :select,
|
||||
collection: @languages,
|
||||
include_blank: false, label: 'Language', input_html: { class: 'select-help-toggle' }
|
||||
|
||||
- @conference.program.event_types.each do |event_type|
|
||||
%span{ class: 'help-block select-help-text event_event_type_id collapse', id: "#{event_type.id}-help" }
|
||||
= event_type.description
|
||||
|
||||
:javascript
|
||||
$("##{@conference.program.event_types.first.id}-help").collapse('show');
|
||||
|
||||
= f.input :difficulty_level, as: :select, collection: @conference.program.difficulty_levels, input_html: { class: 'select-help-toggle' },
|
||||
include_blank: '(Please select)' if @conference.program.difficulty_levels.any?
|
||||
|
||||
- @conference.program.difficulty_levels.each do |difficulty_level|
|
||||
%span{ class: 'help-block select-help-text collapse event_difficulty_level_id', id: "#{difficulty_level.id}-help" }
|
||||
= difficulty_level.description
|
||||
|
||||
= f.input :abstract, required: true, input_html: { rows: 5, data: { provide: 'markdown-editable' } },
|
||||
hint: markdown_hint(link_to('Tips to improve your presentations.', 'http://blog.hubspot.com/blog/tabid/6307/bid/5975/10-Rules-to-Instantly-Improve-Your-Presentations.aspx'))
|
||||
|
||||
%p
|
||||
You have used
|
||||
%span#abstract-count #{@event.abstract_word_count}
|
||||
words. Abstracts must be between
|
||||
%span#abstract-minimum-word-count
|
||||
0
|
||||
and
|
||||
%span#abstract-maximum-word-count
|
||||
250
|
||||
words.
|
||||
|
||||
= f.inputs 'Enable pre-registration' do
|
||||
= f.input :require_registration, label: 'Require participants to register to your event'
|
||||
- message = @event.room ? "Value must be between 1 and #{@event.room.size}" : 'Check room capacity after scheduling.'
|
||||
= f.input :max_attendees, hint: 'The maximum number of participants. ' + message
|
||||
|
||||
- if current_user.has_any_role? :admin, { name: :organizer, resource: @conference }, { name: :cfp, resource: @conference }
|
||||
= f.input :is_highlight
|
||||
|
||||
%p.text-right
|
||||
= link_to '#description', 'data-toggle' => 'collapse' do
|
||||
Do you require something special?
|
||||
.collapse#description
|
||||
= f.input :description, input_html: { rows: 5 }, label: 'Requirements', placeholder: 'Eg. Whiteboard, printer, or something like that.'
|
||||
|
||||
|
||||
%p.text-right
|
||||
= f.submit 'Update Proposal', class: 'btn btn-success'
|
||||
24
app/views/proposals/_tooltip.html.haml
Normal file
24
app/views/proposals/_tooltip.html.haml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
- progress_status = event.progress_status
|
||||
%ul.list-unstyled
|
||||
%li{'class'=>class_for_todo(progress_status['registered'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['registered'])}
|
||||
- if progress_status['registered']
|
||||
= link_to 'Register to the conference', edit_conference_conference_registration_path(event.program.conference.short_title)
|
||||
- else
|
||||
= link_to 'Register to the conference', new_conference_conference_registration_path(event.program.conference.short_title)
|
||||
%li{'class'=>class_for_todo(progress_status['biography'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['biography'])}
|
||||
= link_to 'Fill out your biography', edit_user_path(event.submitter)
|
||||
%li{'class'=>class_for_todo(progress_status['subtitle'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['subtitle'])}
|
||||
= link_to 'Add a subtitle', edit_conference_program_proposal_path(event.program.conference.short_title, event)
|
||||
%li{'class'=>class_for_todo(progress_status['commercials'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['commercials'])}
|
||||
= link_to 'Add a commercial', edit_conference_program_proposal_path(event.program.conference.short_title, event, anchor: 'commercials-content')
|
||||
- unless progress_status['track'].nil?
|
||||
%li{'class'=>class_for_todo(progress_status['track'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['track'])}
|
||||
= link_to 'Add a track', edit_conference_program_proposal_path(event.program.conference.short_title, event)
|
||||
%li{'class'=>class_for_todo(progress_status['difficulty_level'])}
|
||||
%span{'class'=>icon_for_todo(progress_status['difficulty_level'])}
|
||||
= link_to 'Add a difficulty level', edit_conference_program_proposal_path(event.program.conference.short_title, event)
|
||||
4
app/views/proposals/edit.html.haml
Normal file
4
app/views/proposals/edit.html.haml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-12
|
||||
= render 'form'
|
||||
104
app/views/proposals/index.html.haml
Normal file
104
app/views/proposals/index.html.haml
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-12.page-header
|
||||
%h1
|
||||
Proposals for
|
||||
%span.notranslate
|
||||
= @conference.title
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
= render partial: 'encouragement_text'
|
||||
- if @events.any?
|
||||
- if @events.highlighted.any?
|
||||
.row
|
||||
.col-md-12
|
||||
|
||||
%p.lead
|
||||
%strong
|
||||
Congratulations!
|
||||
Some of your proposals have been selected as a highlight of #{@conference.title}!
|
||||
%ul
|
||||
- @events.highlighted.each do |event|
|
||||
%li= link_to event.title, conference_program_proposal_path(@conference.short_title, event)
|
||||
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
%p.text-right
|
||||
= link_to '#status-help', class: 'btn btn-default', "data-toggle"=>"collapse" do
|
||||
Help?
|
||||
.collapse#status-help
|
||||
%p
|
||||
%strong
|
||||
What happens next with my proposal?
|
||||
%p
|
||||
If you submit a proposal, the conference organizers will review it and either accept or reject it.
|
||||
%br
|
||||
If your proposal is accepted, the conference organizers expect you to confirm that you will be able to hold it.
|
||||
%br
|
||||
If your proposal is rejected, you can either live with that or adapt it and resubmit it for review again.
|
||||
%br
|
||||
If something changes and you can't hold the presentation any more, you should withdraw it.
|
||||
|
||||
%p
|
||||
%strong
|
||||
Why do I need to add more information?
|
||||
%p
|
||||
The more information you add to your proposal, the more likely it is that the conference organizers accept your proposal.
|
||||
%br
|
||||
It will also be more likely that visitors find your proposal interesting enough to attend.
|
||||
|
||||
%p
|
||||
%strong
|
||||
Why do I need to register to the conference?
|
||||
%p
|
||||
Knowing the number of visitors for the conference helps the organizers plan better.
|
||||
|
||||
%table.table.table-striped
|
||||
- @events.each do |event|
|
||||
%tr
|
||||
%td{style: "padding:20px 8px 20px 8px;"}
|
||||
%span{ title: event.state.humanize, class: "fa #{event_status_icon(event)}" }
|
||||
|
||||
%td.col-md-7{style: "padding:20px 8px 20px 8px;"}
|
||||
= link_to event.title, conference_program_proposal_path(@conference.short_title, event.id)
|
||||
%br
|
||||
%small.text-muted
|
||||
= event.event_type.title
|
||||
= "(#{event.event_type.length} min)"
|
||||
= "in #{event.track.name}" if event.track
|
||||
- if event.require_registration
|
||||
%br
|
||||
= link_to registered_text(event), registrations_conference_program_proposal_path(@conference.short_title, event), class: 'btn btn-xs btn-danger'
|
||||
|
||||
%td.col-md-2{style: "padding:20px 8px 20px 8px;"}
|
||||
= link_to 'Complete your proposal', 'javascript: void(0)', "type"=>"button", "data-trigger"=>"focus", "data-toggle"=>"popover", "title"=>"Your todo list", "data-content"=>"#{render partial: 'tooltip', locals: { event: event} }"
|
||||
|
||||
- progress_percentage = event.calculate_progress
|
||||
.progress
|
||||
%div{class: "progress-bar #{event_progress_color(progress_percentage)}", style: "width:#{progress_percentage}%;"}
|
||||
= event.progress_status.reject{ |_key, value| value || value.nil? }.length
|
||||
left
|
||||
|
||||
%td.col-md-3{style: "padding:20px 0px 20px 0px;"}
|
||||
.pull-right
|
||||
- if event.transition_possible? :confirm
|
||||
= link_to 'Confirm',
|
||||
confirm_conference_program_proposal_path(@conference.short_title, event),
|
||||
method: :patch, class: 'btn btn-mini btn-success', id: "confirm_proposal_#{event.id}"
|
||||
|
||||
- if event.transition_possible? :withdraw
|
||||
= link_to 'Withdraw', withdraw_conference_program_proposal_path(@conference.short_title, event.id), method: :patch,
|
||||
data: { confirm: 'Are you sure you want to withdraw this proposal?' }, class: 'btn btn-mini btn-warning',
|
||||
id: "delete_proposal_#{event.id}"
|
||||
- if event.state == 'withdrawn' || event.state == 'rejected'
|
||||
= link_to 'Re-Submit',
|
||||
restart_conference_program_proposal_path(@conference.short_title, event.id),
|
||||
method: :patch, class: 'btn btn-mini btn-success', id: "review_event_#{event.id}"
|
||||
= link_to 'Edit', edit_conference_program_proposal_path(@conference.short_title, event.id),
|
||||
class: 'btn btn-default', id: "edit_proposal_#{event.id}"
|
||||
.row
|
||||
.col-md-12
|
||||
- if can? :create, @event
|
||||
= link_to "New Proposal", new_conference_program_proposal_path(@conference.short_title), :class => "btn btn-success pull-right"
|
||||
72
app/views/proposals/new.html.haml
Normal file
72
app/views/proposals/new.html.haml
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1 New Proposal
|
||||
.row
|
||||
.col-md-12
|
||||
= render partial: 'encouragement_text'
|
||||
.row
|
||||
.col-md-8
|
||||
- unless current_user
|
||||
%legend
|
||||
%span
|
||||
=link_to('#signup', role: 'tab', 'aria-controls' => 'home', 'data-toggle' => 'tab') do
|
||||
= ENV['OSEM_NAME'] || 'OSEM'
|
||||
Account
|
||||
%span.pull-right#account-already
|
||||
=link_to('#signin', role: 'tab', 'aria-controls' => 'home', 'data-toggle' => 'tab') do
|
||||
Already have an account?
|
||||
.tab-content
|
||||
.tab-pane.active{role: 'tabpanel', id: 'signup'}
|
||||
|
||||
= semantic_form_for(@event, url: @url) do |f|
|
||||
|
||||
= render partial: 'devise/shared/sign_up_form_embedded'
|
||||
|
||||
= f.inputs name: 'Proposal Information' do
|
||||
= f.input :title, as: :string, required: true, input_html: { required: true }
|
||||
= f.input :event_type_id, as: :select,
|
||||
collection: @program.event_types.map {|type| ["#{type.title} - #{show_time(type.length)}", type.id,
|
||||
data: { min_words: type.minimum_abstract_length, max_words: type.maximum_abstract_length }]},
|
||||
include_blank: false, label: 'Type', input_html: { class: 'select-help-toggle' }
|
||||
|
||||
- if @program.languages.present?
|
||||
= f.input :language, as: :select,
|
||||
collection: @languages,
|
||||
include_blank: false, label: 'Language', input_html: { class: 'select-help-toggle' }
|
||||
|
||||
- @program.event_types.each do |event_type|
|
||||
%span{ class: 'help-block event_event_type_id collapse', id: "#{event_type.id}-help" }
|
||||
= event_type.description
|
||||
|
||||
:javascript
|
||||
$("##{@program.event_types.first.id}-help").collapse('show');
|
||||
|
||||
= f.input :abstract, required: true, input_html: { rows: 5, data: { provide: 'markdown-editable' } },
|
||||
hint: markdown_hint(link_to('Tips to improve your presentations.', 'http://blog.hubspot.com/blog/tabid/6307/bid/5975/10-Rules-to-Instantly-Improve-Your-Presentations.aspx'))
|
||||
|
||||
%p
|
||||
You have used
|
||||
%span#abstract-count #{@event.abstract_word_count}
|
||||
words. Abstracts must be between
|
||||
%span#abstract-minimum-word-count
|
||||
0
|
||||
and
|
||||
%span#abstract-maximum-word-count
|
||||
250
|
||||
words.
|
||||
|
||||
= f.input :require_registration, label: 'Require participants to register to your event'
|
||||
|
||||
%p.text-right
|
||||
= link_to '#description', 'data-toggle' => 'collapse', id: 'description_link' do
|
||||
Do you require something special?
|
||||
.collapse#description
|
||||
= f.input :description, input_html: { rows: 5 }, label: 'Requirements', placeholder: 'Eg. Whiteboard, printer, or something like that.'
|
||||
|
||||
%p.text-right
|
||||
= f.submit 'Create Proposal', class: 'btn btn-success'
|
||||
|
||||
.tab-pane{role: 'tabpanel', id: 'signin'}
|
||||
= render partial: 'devise/shared/sign_in_form_embedded'
|
||||
40
app/views/proposals/registrations.html.haml
Normal file
40
app/views/proposals/registrations.html.haml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-10.col-md-offset-1
|
||||
.page-header
|
||||
%h1
|
||||
Registrations
|
||||
- if @event.max_attendees
|
||||
(#{@event.events_registrations.length}/#{@event.max_attendees})
|
||||
- else
|
||||
(#{@event.events_registrations.length})
|
||||
.text-muted
|
||||
for
|
||||
= @event.title
|
||||
|
||||
.well
|
||||
%table.table.table-hover.table-borderd.table-striped.datatable#registrations
|
||||
%thead
|
||||
%th
|
||||
%th Name
|
||||
%th Email
|
||||
%th Created AT
|
||||
%th Attended
|
||||
%th Attended Conference
|
||||
%tbody
|
||||
- @event.events_registrations.each.with_index(1) do |event_registration, index|
|
||||
%tr
|
||||
%td= index
|
||||
%td= event_registration.name
|
||||
%td= event_registration.email
|
||||
%td= event_registration.created_at
|
||||
%td.text-center
|
||||
- if event_registration.attended
|
||||
%i.fa.fa-check.text-success
|
||||
- else
|
||||
%i.fa.fa-times.text-danger
|
||||
%td
|
||||
- if event_registration.registration.attended
|
||||
%i.fa.fa-check.text-success
|
||||
-else
|
||||
%i.fa.fa-times.text-danger
|
||||
103
app/views/proposals/show.html.haml
Normal file
103
app/views/proposals/show.html.haml
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
.container
|
||||
.row
|
||||
.col-md-12.page-header
|
||||
%h2
|
||||
= @event.title
|
||||
- if @event.subtitle
|
||||
%br
|
||||
%small
|
||||
= @event.subtitle
|
||||
.btn-group.pull-right
|
||||
- if can? :update, @event
|
||||
= link_to 'Registrations', registrations_conference_program_proposal_path(@conference.short_title, @event), class: 'btn btn-mini btn-success'
|
||||
- if can? :edit, @event
|
||||
= link_to "Edit", edit_conference_program_proposal_path(@conference.short_title, @event), :class => "btn btn-mini btn-primary"
|
||||
- if can? :schedule, @conference
|
||||
= link_to "Schedule", conference_schedule_path(@conference.short_title), :class =>"btn btn-success"
|
||||
|
||||
- if @event.state == 'canceled' || @event.state == 'withdrawn'
|
||||
%span.label.label-danger CANCELED
|
||||
- elsif @event.state == 'confirmed' && @event_schedule.present? && (!@event_schedule.intersecting_events.canceled.empty? || !@event_schedule.intersecting_events.withdrawn.empty?)
|
||||
%span.label.label-info REPLACEMENT
|
||||
|
||||
.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.affiliation?
|
||||
%br
|
||||
%span.muted
|
||||
from
|
||||
= @speaker.affiliation
|
||||
-if @speaker.biography?
|
||||
= markdown(@speaker.biography)
|
||||
.col-md-9
|
||||
.row
|
||||
.col-md-12
|
||||
-if @event_schedule.present?
|
||||
.lead
|
||||
- if @event.state == 'confirmed' && !@event_schedule.intersecting_events.withdrawn.empty?
|
||||
= "Please note that this talk replaces"
|
||||
= link_to @event_schedule.intersecting_events.withdrawn.first.event.title,
|
||||
conference_program_proposal_path(@conference.short_title, @event_schedule.intersecting_events.withdrawn.first.event.id)
|
||||
- elsif @event.state == 'confirmed' && !@event_schedule.intersecting_events.canceled.empty?
|
||||
= "Please note that this talk replaces"
|
||||
= link_to @event_schedule.intersecting_events.canceled.first.title,
|
||||
conference_program_proposal_path(@conference.short_title, @event_schedule.intersecting_events.canceled.first.event.id)
|
||||
|
||||
- if @event.commercials.empty?
|
||||
%h5.text-warning
|
||||
No video of the event yet, sorry!
|
||||
- unless @conference.commercials.empty?
|
||||
Meanwhile...
|
||||
- unless @conference.commercials.empty?
|
||||
= render partial: 'shared/media_items', locals: { commercials: @conference.commercials }
|
||||
- else
|
||||
%p
|
||||
= render partial: 'shared/media_items', locals: { commercials: @event.commercials }
|
||||
.row
|
||||
.col-md-12
|
||||
%p
|
||||
= markdown(@event.abstract)
|
||||
%dl#proposal-info
|
||||
.col-md-12
|
||||
%dt Date:
|
||||
%dd= @event_schedule.start_time.strftime("%Y %B %e %H:%M") if @event_schedule
|
||||
.col-md-12
|
||||
%dt Duration:
|
||||
%dd= show_time(@event.event_type.length)
|
||||
.col-md-12
|
||||
%dt Room:
|
||||
%dd
|
||||
- if @event.room
|
||||
= @event.room.name
|
||||
.col-md-12
|
||||
%dt Conference:
|
||||
%dd= @event.program.conference.title
|
||||
.col-md-12
|
||||
%dt Language:
|
||||
%dd= @event.language if @event.language
|
||||
.col-md-12
|
||||
%dt Track:
|
||||
%dd
|
||||
- if @event.track
|
||||
%span.label{:style =>"background-color: #{@event.track.color}; color: #{ contrast_color(@event.track.color) }"}
|
||||
= @event.track.name
|
||||
.col-md-12
|
||||
%dt Difficulty:
|
||||
%dd
|
||||
- if @event.difficulty_level
|
||||
%span.label{:style =>"background-color: #{@event.difficulty_level.color}; color: #{ contrast_color(@event.difficulty_level.color) };"}
|
||||
= @event.difficulty_level.title
|
||||
|
||||
- if @event.require_registration
|
||||
.col-md-12
|
||||
%dt Requires Registration:
|
||||
%dd
|
||||
= link_to "Yes (#{registered_text(@event)})", new_conference_conference_registration_path(@conference.short_title), class: 'btn btn-xs btn-danger', disabled: !@event.registration_possible?
|
||||
Loading…
Add table
Add a link
Reference in a new issue