Supports talks without speakers

Admins may want to have discussions or any other general activity
that does not have any particular speaker. Thus, speaker validation
is removed.

Closes https://github.com/openSUSE/osem/issues/2520
This commit is contained in:
snpd 2019-09-04 17:48:18 +05:30
parent fef08bf951
commit 997dc668e0
7 changed files with 48 additions and 34 deletions

View file

@ -44,7 +44,6 @@ class Event < ApplicationRecord
validates :abstract, presence: true validates :abstract, presence: true
validates :event_type, presence: true validates :event_type, presence: true
validates :program, presence: true validates :program, presence: true
validates :speakers, presence: true
validates :max_attendees, numericality: { only_integer: true, greater_than_or_equal_to: 1, allow_nil: true } validates :max_attendees, numericality: { only_integer: true, greater_than_or_equal_to: 1, allow_nil: true }
validate :max_attendees_no_more_than_room_size validate :max_attendees_no_more_than_room_size

View file

@ -24,11 +24,15 @@
Unknown submitter Unknown submitter
%td %td
- event.speakers_ordered.each do |speaker| - if event.speakers.any?
.speaker - event.speakers_ordered.each do |speaker|
= link_to speaker.name, admin_user_path(speaker) .speaker
- unless speaker.registrations.for_conference(event.conference) = link_to speaker.name, admin_user_path(speaker)
%span.label.label-danger Unregistered - unless speaker.registrations.for_conference(event.conference)
%span.label.label-danger Unregistered
- else
.small
No Speaker
- if @program.languages.present? - if @program.languages.present?
%td %td

View file

@ -69,9 +69,10 @@
%span{ 'class' => [icon_for_todo(progress_status['registered']), 'fa-lg'] } %span{ 'class' => [icon_for_todo(progress_status['registered']), 'fa-lg'] }
%tr %tr
%td %td
- if @event.speakers.count == 1 - speakers_count = @event.speakers.count
- if speakers_count == 1
= link_to 'Fill out speaker\'s biography', edit_admin_user_path(@event.speakers.first) = link_to 'Fill out speaker\'s biography', edit_admin_user_path(@event.speakers.first)
- else - elsif speakers_count > 1
Fill out speaker's biography: Fill out speaker's biography:
= speaker_links(@event) = speaker_links(@event)
%td{ 'class' => class_for_todo(progress_status['biographies']) } %td{ 'class' => class_for_todo(progress_status['biographies']) }

View file

@ -27,10 +27,14 @@
%td %td
= link_to event.title, edit_admin_conference_program_event_path(@conference.short_title, event) = link_to event.title, edit_admin_conference_program_event_path(@conference.short_title, event)
%br %br
.small - if(event.speakers.any?)
(Presented by .small
= speaker_links(event) (Presented by
) = speaker_links(event)
)
- else
.small
(No speaker)
- %w(registered biographies commercials subtitle difficulty_level).each do |info| - %w(registered biographies commercials subtitle difficulty_level).each do |info|
%td{'data-order' => "#{progress_status[info]}"} %td{'data-order' => "#{progress_status[info]}"}

View file

@ -18,4 +18,8 @@
%td= event.id %td= event.id
%td= link_to event.title, edit_admin_conference_program_event_path(@conference.short_title, event) %td= link_to event.title, edit_admin_conference_program_event_path(@conference.short_title, event)
%td %td
= speaker_links(event) - if(event.speakers.any?)
= speaker_links(event)
- else
.small
(No speaker)

View file

@ -27,27 +27,28 @@
.row .row
.col-md-3 .col-md-3
%h3 %h3
- if event.speakers.any?
Presented by: Presented by:
- @speakers_ordered.each do |speaker| - @speakers_ordered.each do |speaker|
.speakerinfo .speakerinfo
.row .row
.col-md-4 .col-md-4
= image_tag speaker.gravatar_url(:size => 120), class: 'img-responsive img-rounded' = image_tag speaker.gravatar_url(:size => 120), class: 'img-responsive img-rounded'
.col-md-8 .col-md-8
%h4 %h4
= link_to speaker.name, user_path(speaker.id) = link_to speaker.name, user_path(speaker.id)
%br %br
- if speaker.email_public? - if speaker.email_public?
= mail_to "#{ speaker.email }" do = mail_to "#{ speaker.email }" do
%i.fa.fa-envelope-o.fa-2x %i.fa.fa-envelope-o.fa-2x
- if speaker.affiliation? - if speaker.affiliation?
.text-muted .text-muted
from from
= speaker.affiliation = speaker.affiliation
-if speaker.biography? -if speaker.biography?
.row.speakerbio .row.speakerbio
.col-md-12 .col-md-12
= markdown(speaker.biography) = markdown(speaker.biography)
.col-md-9 .col-md-9
.row .row
.col-md-12 .col-md-12

View file

@ -15,7 +15,8 @@
%small %small
= event.subtitle = event.subtitle
%h4 %h4
presented by #{event.speaker_names} - if(event.speakers.any?)
presented by #{event.speaker_names}
%p %p
= markdown(truncate(event.abstract, length: 400)) = markdown(truncate(event.abstract, length: 400))
= link_to 'more', conference_program_proposal_path(@conference.short_title, event.id) if event.abstract.length > 400 = link_to 'more', conference_program_proposal_path(@conference.short_title, event.id) if event.abstract.length > 400