diff --git a/app/controllers/admin/event_types_controller.rb b/app/controllers/admin/event_types_controller.rb index 85d1ff6b..c1bf4bcf 100644 --- a/app/controllers/admin/event_types_controller.rb +++ b/app/controllers/admin/event_types_controller.rb @@ -49,7 +49,10 @@ module Admin private def event_type_params - params[:event_type] + params.require(:event_type).permit(:title, :length, + :minimum_abstract_length, + :maximum_abstract_length, + :color, :is_keynote) end end end diff --git a/app/models/conference.rb b/app/models/conference.rb index 45f01b96..7c105abb 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -45,11 +45,13 @@ class Conference < ActiveRecord::Base end def keynotes - where(state: :confirmed).select { |e| e.event_type.title == 'Keynote'} + where(state: :confirmed). + select { |e| e.event_type.is_keynote == true} end def highlights - where(is_highlight: true) + where(state: :confirmed).where(is_highlight: true). + select { |e| e.event_type.is_keynote != true} # No duplication, if event is a keynote end end has_many :event_users, through: :events @@ -900,7 +902,8 @@ class Conference < ActiveRecord::Base maximum_abstract_length: 500) event_types << EventType.create(title: 'Keynote', length: 60, color: '#00FF00', minimum_abstract_length: 0, - maximum_abstract_length: 500) + maximum_abstract_length: 500, + is_keynote: true) true end diff --git a/app/models/event_type.rb b/app/models/event_type.rb index a2204985..2be9c6d8 100644 --- a/app/models/event_type.rb +++ b/app/models/event_type.rb @@ -1,6 +1,6 @@ class EventType < ActiveRecord::Base attr_accessible :title, :length, :minimum_abstract_length, :maximum_abstract_length, :color, - :conference_id + :conference_id, :is_keynote belongs_to :conference diff --git a/app/views/admin/event_types/_form.html.haml b/app/views/admin/event_types/_form.html.haml index 8ef37e4e..47e52c0c 100644 --- a/app/views/admin/event_types/_form.html.haml +++ b/app/views/admin/event_types/_form.html.haml @@ -13,6 +13,7 @@ = f.input :length, :input_html => {:size => 3} = f.input :minimum_abstract_length, :input_html => {:size => 3} = f.input :maximum_abstract_length, :input_html => {:size => 3} + = f.input :is_keynote = f.input :color, :input_html => { :size => 6, :type => 'color' } %p.text-right - = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } \ No newline at end of file + = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } diff --git a/app/views/admin/event_types/index.html.haml b/app/views/admin/event_types/index.html.haml index fddc2dd3..a7f2c179 100644 --- a/app/views/admin/event_types/index.html.haml +++ b/app/views/admin/event_types/index.html.haml @@ -11,6 +11,7 @@ %th Title %th Length %th Abstract Length + %th Keynote %th Color %th Actions %tbody @@ -24,6 +25,7 @@ %td = "#{event_type.minimum_abstract_length} - #{event_type.maximum_abstract_length}" Words + %td= event_type.is_keynote %td %span.label{style: "background-color: #{event_type.color};"} = event_type.color diff --git a/app/views/admin/events/edit.html.haml b/app/views/admin/events/edit.html.haml index 0ea1048e..bccdad74 100644 --- a/app/views/admin/events/edit.html.haml +++ b/app/views/admin/events/edit.html.haml @@ -1 +1 @@ -= render 'proposal/form' \ No newline at end of file += render 'proposal/form' diff --git a/app/views/conference/_program.html.haml b/app/views/conference/_program.html.haml index 07a602c9..8f7d3c16 100644 --- a/app/views/conference/_program.html.haml +++ b/app/views/conference/_program.html.haml @@ -30,12 +30,13 @@ - if @conference.events.highlights.any? .row .col-md-12 - - @conference.events.highlights.each_slice(2) do |slice| + - @conference.events.highlights.each_slice(3) do |slice| .row.row-centered - slice.each do |event| - .col-md-6.col-centered.col-top.highlights + .col-md-4.col-centered.col-top.highlights %p.text-center %b= event.title + by #{event.speakers.first.name} %h5.text-center = simple_format truncate(event.abstract, length: 500, separator: ' ') = link_to "Read More", conference_proposal_path(@conference.short_title, event) diff --git a/db/migrate/20141207115535_add_is_keynote_to_event_types.rb b/db/migrate/20141207115535_add_is_keynote_to_event_types.rb new file mode 100644 index 00000000..baf95ee0 --- /dev/null +++ b/db/migrate/20141207115535_add_is_keynote_to_event_types.rb @@ -0,0 +1,5 @@ +class AddIsKeynoteToEventTypes < ActiveRecord::Migration + def change + add_column :event_types, :is_keynote, :boolean, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb index b72a5ce2..ed9c045a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20141130182139) do +ActiveRecord::Schema.define(version: 20141207115535) do create_table "ahoy_events", force: true do |t| t.uuid "visit_id" @@ -191,11 +191,12 @@ ActiveRecord::Schema.define(version: 20141130182139) do create_table "event_types", force: true do |t| t.integer "conference_id" - t.string "title", null: false + t.string "title", null: false t.integer "length", default: 30 t.integer "minimum_abstract_length", default: 0 t.integer "maximum_abstract_length", default: 500 t.string "color" + t.boolean "is_keynote", default: false end create_table "event_users", force: true do |t| @@ -334,11 +335,11 @@ ActiveRecord::Schema.define(version: 20141130182139) do create_table "roles", force: true do |t| t.string "name" + t.datetime "created_at" + t.datetime "updated_at" t.string "description" t.integer "resource_id" t.string "resource_type" - t.datetime "created_at" - t.datetime "updated_at" end add_index "roles", ["name", "resource_type", "resource_id"], name: "index_roles_on_name_and_resource_type_and_resource_id"