mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
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:
parent
fef08bf951
commit
997dc668e0
7 changed files with 48 additions and 34 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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']) }
|
||||||
|
|
|
||||||
|
|
@ -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]}"}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue