Add CFP Status to Conferences
This commit is contained in:
parent
17bbe0372a
commit
999da93b41
|
@ -3,12 +3,16 @@ th.actions, td.actions {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
td.actions {
|
td.action, td.actions {
|
||||||
i.fa {
|
i.fa {
|
||||||
font-size: 16px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
th.action, td.action {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.record-table td {
|
.record-table td {
|
||||||
vertical-align: middle !important;
|
vertical-align: middle !important;
|
||||||
}
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
module Management
|
module Management
|
||||||
class ConferencesController < ManagementController
|
class ConferencesController < ManagementController
|
||||||
before_action :assign_conference, only: [:edit]
|
before_action :assign_conference, only: [:edit, :open_call_for_papers, :close_call_for_papers]
|
||||||
|
before_action :assign_conferences, only: [:index, :open_call_for_papers, :close_call_for_papers]
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@conference = Conference.new
|
@conference = Conference.new
|
||||||
|
@ -17,7 +18,20 @@ module Management
|
||||||
end
|
end
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@conferences = Conference.all.order(start_date: :desc)
|
end
|
||||||
|
|
||||||
|
def open_call_for_papers
|
||||||
|
@conference.call_for_papers_open = true
|
||||||
|
@conference.save
|
||||||
|
|
||||||
|
render 'reload_table'
|
||||||
|
end
|
||||||
|
|
||||||
|
def close_call_for_papers
|
||||||
|
@conference.call_for_papers_open = false
|
||||||
|
@conference.save
|
||||||
|
|
||||||
|
render 'reload_table'
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -26,6 +40,10 @@ module Management
|
||||||
@conference = Conference.find params[:id]
|
@conference = Conference.find params[:id]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def assign_conferences
|
||||||
|
@conferences = Conference.all.order(start_date: :desc)
|
||||||
|
end
|
||||||
|
|
||||||
def conference_params
|
def conference_params
|
||||||
params.require(:conference).permit [:title, :email, :start_date, :end_date, :description, tracks_attributes: [:id, :name, :color, :description, :_destroy]]
|
params.require(:conference).permit [:title, :email, :start_date, :end_date, :description, tracks_attributes: [:id, :name, :color, :description, :_destroy]]
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,12 +16,20 @@ class Conference < ActiveRecord::Base
|
||||||
|
|
||||||
scope :future, -> { where('start_date >= ?', Date.today).order('start_date ASC') }
|
scope :future, -> { where('start_date >= ?', Date.today).order('start_date ASC') }
|
||||||
|
|
||||||
|
before_save :close_all_other_calls_for_papers
|
||||||
|
|
||||||
def self.current
|
def self.current
|
||||||
future.first || last
|
future.first || last
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def close_all_other_calls_for_papers
|
||||||
|
if call_for_papers_open? and call_for_papers_open_changed?
|
||||||
|
Conference.where.not(id: self.id).update_all call_for_papers_open: false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def end_date_is_before_start_date
|
def end_date_is_before_start_date
|
||||||
if start_date.present? and end_date.present? and start_date > end_date
|
if start_date.present? and end_date.present? and start_date > end_date
|
||||||
errors.add(:end_date, :cannot_be_before_start_date)
|
errors.add(:end_date, :cannot_be_before_start_date)
|
||||||
|
|
|
@ -1,7 +1,15 @@
|
||||||
tr
|
tr
|
||||||
td = conference.title
|
td = conference.title
|
||||||
td = l conference.start_date.to_date, format: :long
|
td.hidden-xs.hidden-sm = l conference.start_date.to_date, format: :long
|
||||||
td = l conference.end_date.to_date, format: :long
|
td.hidden-xs.hidden-sm = l conference.end_date.to_date, format: :long
|
||||||
|
td.action
|
||||||
|
- if conference.call_for_papers_open?
|
||||||
|
= link_to cfp_management_conference_path(conference), method: :delete, class: 'btn btn-sm btn-success cfp-toggle', remote: true, onclick: '$(".cfp-toggle").addClass("disabled")'
|
||||||
|
= fa_icon 'dot-circle-o fw'
|
||||||
|
- else
|
||||||
|
= link_to cfp_management_conference_path(conference), method: :post, class: 'btn btn-sm btn-warning cfp-toggle', remote: true, onclick: '$(".cfp-toggle").addClass("disabled")'
|
||||||
|
= fa_icon 'circle-o fw'
|
||||||
|
|
||||||
td = conference.events.count
|
td = conference.events.count
|
||||||
td.actions
|
td.actions
|
||||||
div.btn-group.btn-group-sm
|
div.btn-group.btn-group-sm
|
||||||
|
|
|
@ -7,12 +7,13 @@
|
||||||
.panel-heading
|
.panel-heading
|
||||||
h1.panel-title = Conference.model_name.human(count: 2).mb_chars.capitalize
|
h1.panel-title = Conference.model_name.human(count: 2).mb_chars.capitalize
|
||||||
.panel-body
|
.panel-body
|
||||||
table.table.table-striped.table-hover.record-table
|
table.table.table-striped.table-hover.record-table#conferences
|
||||||
thead
|
thead
|
||||||
tr
|
tr
|
||||||
th = Conference.human_attribute_name :title
|
th = Conference.human_attribute_name :title
|
||||||
th = Conference.human_attribute_name :start_date
|
th.hidden-xs.hidden-sm = Conference.human_attribute_name :start_date
|
||||||
th = Conference.human_attribute_name :end_date
|
th.hidden-xs.hidden-sm = Conference.human_attribute_name :end_date
|
||||||
|
th.action = Conference.human_attribute_name :call_for_papers_open
|
||||||
th = Conference.human_attribute_name :submissions
|
th = Conference.human_attribute_name :submissions
|
||||||
th.actions
|
th.actions
|
||||||
tbody
|
tbody
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
$('#conferences tbody').html('<%= j render @conferences %>');
|
|
@ -17,6 +17,11 @@ Rails.application.routes.draw do
|
||||||
get '/', to: 'events#index'
|
get '/', to: 'events#index'
|
||||||
|
|
||||||
resources :conferences do
|
resources :conferences do
|
||||||
|
member do
|
||||||
|
post 'cfp', to: 'conferences#open_call_for_papers'
|
||||||
|
delete 'cfp', to: 'conferences#close_call_for_papers'
|
||||||
|
end
|
||||||
|
|
||||||
resources :events do
|
resources :events do
|
||||||
patch 'state'
|
patch 'state'
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddCallForPapersStatusToConferences < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :conferences, :call_for_papers_open, :boolean
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue