Add index view for the cfp and modify existing ones

Add cfp_type to the form partial
Refactor Cfps#show to use partials for the different cfp types
Modify the rest of the view, where the cfp was used
This commit is contained in:
AEtherC0r3 2017-05-31 21:03:15 +03:00 committed by Stella Rouzi
parent c3eb178546
commit 2bff918556
10 changed files with 107 additions and 67 deletions

View file

@ -171,6 +171,7 @@ linters:
- "app/views/tickets/index.html.haml" - "app/views/tickets/index.html.haml"
- "app/views/users/edit.html.haml" - "app/views/users/edit.html.haml"
- "app/views/users/show.html.haml" - "app/views/users/show.html.haml"
- "app/views/admin/cfps/index.html.haml"
# Offense count: 223 # Offense count: 223
InstanceVariables: InstanceVariables:
@ -229,6 +230,7 @@ linters:
- "app/views/schedules/_schedule.html.haml" - "app/views/schedules/_schedule.html.haml"
- "app/views/schedules/_schedule_item.html.haml" - "app/views/schedules/_schedule_item.html.haml"
- "app/views/schedules/_schedule_tabs.html.haml" - "app/views/schedules/_schedule_tabs.html.haml"
- "app/views/admin/cfps/_events_cfp.html.haml"
# Offense count: 32 # Offense count: 32
IdNames: IdNames:
@ -247,6 +249,7 @@ linters:
- "app/views/admin/users/_event_registrations.html.haml" - "app/views/admin/users/_event_registrations.html.haml"
- "app/views/admin/users/show.html.haml" - "app/views/admin/users/show.html.haml"
- "app/views/users/edit.html.haml" - "app/views/users/edit.html.haml"
- "app/views/admin/cfps/_events_cfp.html.haml"
# Offense count: 4 # Offense count: 4
UnnecessaryInterpolation: UnnecessaryInterpolation:

View file

@ -4,21 +4,23 @@ module Admin
load_and_authorize_resource :program, through: :conference, singleton: true load_and_authorize_resource :program, through: :conference, singleton: true
load_and_authorize_resource through: :program load_and_authorize_resource through: :program
def index; end
def show; end def show; end
def new def new
@cfp = @program.build_cfp @cfp = @program.cfps.new
end end
def edit; end def edit; end
def create def create
@cfp = @program.build_cfp(cfp_params) @cfp = @program.cfps.new(cfp_params)
send_mail_on_cfp_dates_updates = @cfp.notify_on_cfp_date_update? send_mail_on_cfp_dates_updates = @cfp.notify_on_cfp_date_update?
if @cfp.save if @cfp.save
ConferenceCfpUpdateMailJob.perform_later(@conference) if send_mail_on_cfp_dates_updates ConferenceCfpUpdateMailJob.perform_later(@conference) if send_mail_on_cfp_dates_updates
redirect_to admin_conference_program_cfp_path, redirect_to admin_conference_program_cfps_path,
notice: 'Call for papers successfully created.' notice: 'Call for papers successfully created.'
else else
flash.now[:error] = "Creating the call for papers failed. #{@cfp.errors.full_messages.join('. ')}." flash.now[:error] = "Creating the call for papers failed. #{@cfp.errors.full_messages.join('. ')}."
@ -33,7 +35,7 @@ module Admin
if @cfp.update_attributes(cfp_params) if @cfp.update_attributes(cfp_params)
ConferenceCfpUpdateMailJob.perform_later(@conference) if send_mail_on_cfp_dates_updates ConferenceCfpUpdateMailJob.perform_later(@conference) if send_mail_on_cfp_dates_updates
redirect_to admin_conference_program_cfp_path(@conference.short_title), redirect_to admin_conference_program_cfps_path(@conference.short_title),
notice: 'Call for papers successfully updated.' notice: 'Call for papers successfully updated.'
else else
flash.now[:error] = "Updating call for papers failed. #{@cfp.errors.to_a.join('. ')}." flash.now[:error] = "Updating call for papers failed. #{@cfp.errors.to_a.join('. ')}."
@ -43,9 +45,9 @@ module Admin
def destroy def destroy
if @cfp.destroy if @cfp.destroy
redirect_to admin_conference_program_cfp_path, notice: 'Call for Papers was successfully deleted.' redirect_to admin_conference_program_cfps_path, notice: 'Call for Papers was successfully deleted.'
else else
redirect_to admin_conference_program_cfp_path, error: 'An error prohibited this Call for Papers from being destroyed: '\ redirect_to admin_conference_program_cfps_path, error: 'An error prohibited this Call for Papers from being destroyed: '\
"#{@cfp.errors.full_messages.join('. ')}." "#{@cfp.errors.full_messages.join('. ')}."
end end
end end
@ -53,7 +55,7 @@ module Admin
private private
def cfp_params def cfp_params
params.require(:cfp).permit(:start_date, :end_date) params.require(:cfp).permit(:start_date, :end_date, :cfp_type)
end end
end end
end end

View file

@ -0,0 +1,38 @@
%dt
Start Date:
%dd#start_date
= @cfp.start_date.strftime('%A, %B %-d. %Y')
%dt
End Date:
%dd#end_date
= @cfp.end_date.strftime('%A, %B %-d. %Y')
%dt
Days Left:
%dd
= pluralize(@cfp.remaining_days, 'day')
%dt
Event types:
%dd
= event_types(@conference)
%dt
Tracks:
%dd
= tracks(@conference)
%dt
Public Schedule
%dd#schedule_public
- if @program.schedule_public
Yes
- else
No
%dt
Schedule changeable?
%dd#schedule_changes
- if @program.schedule_fluid
Yes
- else
No
%dt
Rating Levels
%dd#rating
= @program.rating

View file

@ -4,8 +4,9 @@
%h1 Call for Papers %h1 Call for Papers
.row .row
.col-md-8 .col-md-8
= semantic_form_for(@cfp, url: admin_conference_program_cfp_path(@conference.short_title), html: {multipart: true}) do |f| = semantic_form_for(@cfp, url: (@cfp.new_record? ? admin_conference_program_cfps_path : admin_conference_program_cfp_path(@conference.short_title, @cfp)), html: {multipart: true}) do |f|
= f.input :start_date, as: :string, input_html: { id: 'registration-period-start-datepicker', start_date: @conference.start_date, end_date: @conference.end_date, readonly: 'readonly' } = f.input :start_date, as: :string, input_html: { id: 'registration-period-start-datepicker', start_date: @conference.start_date, end_date: @conference.end_date, readonly: 'readonly' }
= f.input :end_date, as: :string, input_html: { id: 'registration-period-end-datepicker', readonly: 'readonly' } = f.input :end_date, as: :string, input_html: { id: 'registration-period-end-datepicker', readonly: 'readonly' }
= f.input :cfp_type, as: :select, collection: (@cfp.new_record? ? @program.remaining_cfp_types : [@cfp.cfp_type] + @program.remaining_cfp_types).map {|type| ["#{type.capitalize}", type]}, include_blank: false, label: 'Type', input_html: { class: 'select-help-toggle' }
%p.text-right %p.text-right
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }

View file

@ -0,0 +1,36 @@
.row
.col-md-12
.page-header
%h1 Call for Papers
%p.text-muted
Call for people to submit events to your conference
- if @program.cfps
.row
.col-md-12
%table.table.table-hover.datatable#tickets
%thead
%th Type
%th Start Date
%th End Date
%th Days Left
%th Actions
%tbody
- @program.cfps.each do |cfp|
%tr
%td
= link_to(admin_conference_program_cfp_path(@conference.short_title, cfp.id)) do
= cfp.cfp_type.capitalize
%td
= cfp.start_date.strftime('%A, %B %-d. %Y')
%td
= cfp.end_date.strftime('%A, %B %-d. %Y')
%td
= pluralize(cfp.remaining_days, 'day')
%td
.btn-group
= link_to 'Edit', edit_admin_conference_program_cfp_path(@conference.short_title, cfp.id), method: :get, class: 'btn btn-primary'
= link_to 'Delete', admin_conference_program_cfp_path(@conference.short_title, cfp.id), method: 'delete', class: 'btn btn-danger', data: { confirm: 'Are you sure you want to delete the CfP?' }
- if @program.remaining_cfp_types.length > 0
.row
.col-md-12.text-right
= link_to 'Create Call for Papers', new_admin_conference_program_cfp_path(@conference.short_title), class: 'btn btn-primary'

View file

@ -4,55 +4,13 @@
%h1 Call for Papers %h1 Call for Papers
%p.text-muted %p.text-muted
Call for people to submit events to your conference Call for people to submit events to your conference
- if @cfp .row
.row .col-md-8
.col-md-8 %dl.dl-horizontal
%dl.dl-horizontal = render "#{@cfp.cfp_type}_cfp"
%dt .row
Start Date: .col-md-12.text-right
%dd#start_date = link_to(edit_admin_conference_program_cfp_path(@conference.short_title, @cfp.id), class: 'btn btn-primary') do
= @cfp.start_date.strftime('%A, %B %-d. %Y') Edit
%dt = link_to(admin_conference_program_cfp_path(@conference.short_title, @cfp.id), method: 'delete', class: 'btn btn-danger', data: { confirm: 'Are you sure you want to delete the CfP?' }) do
End Date: Delete
%dd#end_date
= @cfp.end_date.strftime('%A, %B %-d. %Y')
%dt
Days Left:
%dd
= pluralize(@cfp.remaining_days, 'day')
%dt
Event types:
%dd
= event_types(@conference)
%dt
Tracks:
%dd
= tracks(@conference)
%dt
Public Schedule
%dd#schedule_public
- if @program.schedule_public
Yes
- else
No
%dt
Schedule changeable?
%dd#schedule_changes
- if @program.schedule_fluid
Yes
- else
No
%dt
Rating Levels
%dd#rating
= @program.rating
.row
.col-md-12.text-right
= link_to(edit_admin_conference_program_cfp_path(@conference.short_title), class: 'btn btn-primary') do
Edit
= link_to(admin_conference_program_cfp_path(@conference.short_title), method: 'delete', class: 'btn btn-danger', data: { confirm: 'Are you sure you want to delete the CfP?' }) do
Delete
- else
.row
.col-md-12.text-right
= link_to 'Create Call for Papers', new_admin_conference_program_cfp_path(@conference.short_title), class: 'btn btn-primary'

View file

@ -18,7 +18,7 @@
%li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['cfp'])}" } %li{ 'class' => "list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['cfp'])}" }
%span{ 'class' => icon_for_todo(conference_progress['cfp']) } %span{ 'class' => icon_for_todo(conference_progress['cfp']) }
- if can? :update, Cfp.new(program_id: @program.id) - if can? :update, Cfp.new(program_id: @program.id)
= link_to 'Set up call for papers', admin_conference_program_cfp_path(conference_progress['short_title']) = link_to 'Set up call for papers', admin_conference_program_cfps_path(conference_progress['short_title'])
- else - else
Set up call for papers Set up call for papers
%li{'class'=>"list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['venue'])}"} %li{'class'=>"list-group-item #{hidden_if_conference_over(conference)} #{class_for_todo(conference_progress['venue'])}"}

View file

@ -85,8 +85,10 @@
admin_conference_program_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_program_path(conference_id: Conference.find(version.conference_id).short_title)
- when 'Cfp' - when 'Cfp'
= link_if_alive version, 'cfp', = 'cfp'
admin_conference_program_cfp_path(conference_id: Conference.find(version.conference_id).short_title) - cfp = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, cfp.cfp_type,
admin_conference_program_cfp_path(conference_id: Conference.find(version.conference_id).short_title, id: version.item_id)
- when 'Track' - when 'Track'
= 'track' = 'track'

View file

@ -67,8 +67,8 @@
- if @conference.program - if @conference.program
%ul %ul
- if can? :update, Cfp.new(program_id: @conference.program.id) - if can? :update, Cfp.new(program_id: @conference.program.id)
%li{class: active_nav_li(admin_conference_program_cfp_path(@conference.short_title))} %li{class: active_nav_li(admin_conference_program_cfps_path(@conference.short_title))}
= link_to 'Call for Papers', admin_conference_program_cfp_path(@conference.short_title) = link_to 'Call for Papers', admin_conference_program_cfps_path(@conference.short_title)
- if can? :update, @conference.program.events.build - if can? :update, @conference.program.events.build
%li{class: active_nav_li(admin_conference_program_events_path(@conference.short_title))} %li{class: active_nav_li(admin_conference_program_events_path(@conference.short_title))}
= link_to 'Events', admin_conference_program_events_path(@conference.short_title) = link_to 'Events', admin_conference_program_events_path(@conference.short_title)

View file

@ -53,7 +53,7 @@ Osem::Application.routes.draw do
end end
resource :registration_period resource :registration_period
resource :program do resource :program do
resource :cfp resources :cfps
resources :tracks resources :tracks
resources :event_types resources :event_types
resources :difficulty_levels resources :difficulty_levels