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
- if event.speakers.any?
- event.speakers_ordered.each do |speaker| - event.speakers_ordered.each do |speaker|
.speaker .speaker
= link_to speaker.name, admin_user_path(speaker) = link_to speaker.name, admin_user_path(speaker)
- unless speaker.registrations.for_conference(event.conference) - unless speaker.registrations.for_conference(event.conference)
%span.label.label-danger Unregistered %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
- if(event.speakers.any?)
.small .small
(Presented by (Presented by
= speaker_links(event) = 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
- if(event.speakers.any?)
= speaker_links(event) = speaker_links(event)
- else
.small
(No speaker)

View file

@ -27,6 +27,7 @@
.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

View file

@ -15,6 +15,7 @@
%small %small
= event.subtitle = event.subtitle
%h4 %h4
- if(event.speakers.any?)
presented by #{event.speaker_names} presented by #{event.speaker_names}
%p %p
= markdown(truncate(event.abstract, length: 400)) = markdown(truncate(event.abstract, length: 400))