Registration form more-or-less working, workshop scaffold is up
This commit is contained in:
parent
4b79de7a24
commit
3d6ad3b432
@ -106,4 +106,7 @@ workshop
|
|||||||
- slug : string
|
- slug : string
|
||||||
- info : text
|
- info : text
|
||||||
|
|
||||||
rails g scaffold
|
rails g scaffold workshop title:string slug:string info:text conference_id:integer workshop_stream_id:integer workshop_presentation_style:integer min_facilitators:integer location_id:integer start_time:datetime end_time:datetime
|
||||||
|
|
||||||
|
- requested_resources : NtoN[workshop_resource]
|
||||||
|
- facilitators : NtoN[user]
|
3
app/assets/javascripts/workshops.js.coffee
Normal file
3
app/assets/javascripts/workshops.js.coffee
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Place all the behaviors and hooks related to the matching controller here.
|
||||||
|
# All this logic will automatically be available in application.js.
|
||||||
|
# You can use CoffeeScript in this file: http://coffeescript.org/
|
3
app/assets/stylesheets/workshops.css.scss
Normal file
3
app/assets/stylesheets/workshops.css.scss
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// Place all the styles related to the workshops controller here.
|
||||||
|
// They will automatically be included in application.css.
|
||||||
|
// You can use Sass (SCSS) here: http://sass-lang.com/
|
@ -37,6 +37,7 @@ class ConferencesController < ApplicationController
|
|||||||
registration = ConferenceRegistration.find_by(:user_id => current_user.id, :conference_id => @conference.id)
|
registration = ConferenceRegistration.find_by(:user_id => current_user.id, :conference_id => @conference.id)
|
||||||
if registration
|
if registration
|
||||||
registration.conference_registration_responses.destroy_all
|
registration.conference_registration_responses.destroy_all
|
||||||
|
registration.is_attending = params[:is_attending]
|
||||||
else
|
else
|
||||||
registration = ConferenceRegistration.new(user_id: current_user.id, conference_id: @conference.id, is_attending: params[:is_attending])
|
registration = ConferenceRegistration.new(user_id: current_user.id, conference_id: @conference.id, is_attending: params[:is_attending])
|
||||||
end
|
end
|
||||||
@ -53,7 +54,7 @@ class ConferencesController < ApplicationController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
data.each do |key, value|
|
data.each do |key, value|
|
||||||
registration.conference_registration_responses << ConferenceRegistrationResponse.new(registration_form_field_id: key.to_i, data: value.to_json.to_s)
|
registration.conference_registration_responses << ConferenceRegistrationResponse.new(registration_form_field_id: key.to_i, data: value.to_json)
|
||||||
end
|
end
|
||||||
registration.save!
|
registration.save!
|
||||||
render action: 'show'
|
render action: 'show'
|
||||||
@ -134,6 +135,16 @@ class ConferencesController < ApplicationController
|
|||||||
# Use callbacks to share common setup or constraints between actions.
|
# Use callbacks to share common setup or constraints between actions.
|
||||||
def set_conference
|
def set_conference
|
||||||
@conference = Conference.find_by(slug: params[:slug] || params[:conference_slug])
|
@conference = Conference.find_by(slug: params[:slug] || params[:conference_slug])
|
||||||
|
set_conference_registration
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_conference_registration
|
||||||
|
if !@conference || !current_user
|
||||||
|
@conference_registration = nil
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
@conference_registration = ConferenceRegistration.find_by(conference_id: @conference.id, user_id: current_user.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Only allow a trusted parameter "white list" through.
|
# Only allow a trusted parameter "white list" through.
|
||||||
|
58
app/controllers/workshops_controller.rb
Normal file
58
app/controllers/workshops_controller.rb
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
class WorkshopsController < ApplicationController
|
||||||
|
before_action :set_workshop, only: [:show, :edit, :update, :destroy]
|
||||||
|
|
||||||
|
# GET /workshops
|
||||||
|
def index
|
||||||
|
@workshops = Workshop.all
|
||||||
|
end
|
||||||
|
|
||||||
|
# GET /workshops/1
|
||||||
|
def show
|
||||||
|
end
|
||||||
|
|
||||||
|
# GET /workshops/new
|
||||||
|
def new
|
||||||
|
@workshop = Workshop.new
|
||||||
|
end
|
||||||
|
|
||||||
|
# GET /workshops/1/edit
|
||||||
|
def edit
|
||||||
|
end
|
||||||
|
|
||||||
|
# POST /workshops
|
||||||
|
def create
|
||||||
|
@workshop = Workshop.new(workshop_params)
|
||||||
|
|
||||||
|
if @workshop.save
|
||||||
|
redirect_to @workshop, notice: 'Workshop was successfully created.'
|
||||||
|
else
|
||||||
|
render action: 'new'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# PATCH/PUT /workshops/1
|
||||||
|
def update
|
||||||
|
if @workshop.update(workshop_params)
|
||||||
|
redirect_to @workshop, notice: 'Workshop was successfully updated.'
|
||||||
|
else
|
||||||
|
render action: 'edit'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# DELETE /workshops/1
|
||||||
|
def destroy
|
||||||
|
@workshop.destroy
|
||||||
|
redirect_to workshops_url, notice: 'Workshop was successfully destroyed.'
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
# Use callbacks to share common setup or constraints between actions.
|
||||||
|
def set_workshop
|
||||||
|
@workshop = Workshop.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
|
# Only allow a trusted parameter "white list" through.
|
||||||
|
def workshop_params
|
||||||
|
params.require(:workshop).permit(:title, :slug, :info, :conference_id, :workshop_stream_id, :workshop_presentation_style, :min_facilitators, :location_id, :start_time, :end_time)
|
||||||
|
end
|
||||||
|
end
|
@ -90,7 +90,7 @@ module ApplicationHelper
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def _(key, behavior = nil, behavior_size = nil, fake: nil, vars: {}, html: nil, blockData: {}, &block)
|
def _(key, behavior = nil, behavior_size = nil, vars: {}, html: nil, blockData: {}, &block)
|
||||||
|
|
||||||
queued_keys = nil
|
queued_keys = nil
|
||||||
result = nil
|
result = nil
|
||||||
@ -201,7 +201,7 @@ module ApplicationHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def field(form, name, type = nil, param = nil, html: nil, help: false, attrs: [], classes: nil, label: nil, placeholder: nil)
|
def field(form, name, type = nil, param = nil, html: nil, help: false, attrs: [], classes: nil, label: nil, placeholder: nil, value: nil, checked: nil)
|
||||||
|
|
||||||
if form.is_a?(Symbol) || form.is_a?(String)
|
if form.is_a?(Symbol) || form.is_a?(String)
|
||||||
param = type
|
param = type
|
||||||
@ -228,18 +228,24 @@ module ApplicationHelper
|
|||||||
select_prompt = nil
|
select_prompt = nil
|
||||||
show_label = true
|
show_label = true
|
||||||
label_after = true
|
label_after = true
|
||||||
|
value_attribute = !form
|
||||||
|
|
||||||
if /select(_tag)?$/.match(type.to_s)
|
if /select(_tag)?$/.match(type.to_s)
|
||||||
placeholder = nil
|
|
||||||
if !label
|
if !label
|
||||||
select_prompt = 'Select a ' + name.to_s
|
select_prompt = placeholder || (form ? 'Select a ' + name.to_s : 'Select one')
|
||||||
label_html = ''
|
label_html = ''
|
||||||
show_label = false
|
show_label = false
|
||||||
end
|
end
|
||||||
label_after = false
|
placeholder = nil
|
||||||
if param && param.is_a?(Array)
|
label_after = false
|
||||||
param = options_for_select(param)
|
if param
|
||||||
|
if param.is_a?(Array)
|
||||||
|
param = options_for_select(param, value)
|
||||||
|
elsif param.is_a?(Hash)
|
||||||
|
param = options_from_collection_for_select(param, :first, :last, value)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
value_attribute = false
|
||||||
elsif type.to_s == 'image_field' || type.to_s == 'user_select_field' || type.to_s == 'organization_select_field'
|
elsif type.to_s == 'image_field' || type.to_s == 'user_select_field' || type.to_s == 'organization_select_field'
|
||||||
placeholder = nil
|
placeholder = nil
|
||||||
label_html = ''
|
label_html = ''
|
||||||
@ -316,14 +322,29 @@ module ApplicationHelper
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
ph = ''
|
ph = ''
|
||||||
|
va = ''
|
||||||
|
if value_attribute
|
||||||
|
if /^(check_box|radio_button)/.match(type.to_s)
|
||||||
|
if checked === nil
|
||||||
|
checked = value == "on" || value.to_s == "1"
|
||||||
|
end
|
||||||
|
if /^(radio_button)/.match(type.to_s)
|
||||||
|
va = ', "' + value + '", checked'
|
||||||
|
else
|
||||||
|
va = ', "1", checked'
|
||||||
|
end
|
||||||
|
else
|
||||||
|
va = ', value'
|
||||||
|
end
|
||||||
|
end
|
||||||
if placeholder
|
if placeholder
|
||||||
if form
|
if form
|
||||||
ph = ", :placeholder => '#{placeholder}'"
|
ph = ", :placeholder => '#{placeholder}'"
|
||||||
else
|
else
|
||||||
ph = ", nil, placeholder: '#{placeholder}'"
|
ph = ", placeholder: '#{placeholder}'"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
form_html = (form ? "form.#{type} :#{name}" : "#{type} :#{name}") + ph + (param ? ', param' : '')
|
form_html = (form ? "form.#{type} :#{name}" : "#{type} :#{name}") + va + ph + (param ? ', param' : '')
|
||||||
attrs.each_index { |i| form_html += (i >= attrs_used ? ', attrs[' + i.to_s + ']' : '') }
|
attrs.each_index { |i| form_html += (i >= attrs_used ? ', attrs[' + i.to_s + ']' : '') }
|
||||||
if select_prompt
|
if select_prompt
|
||||||
if form
|
if form
|
||||||
@ -451,10 +472,11 @@ module ApplicationHelper
|
|||||||
('<p>' + object.send(attribute.to_s).strip.gsub(/\s*\n+\s*/, '</p><p>') + '</p>').html_safe
|
('<p>' + object.send(attribute.to_s).strip.gsub(/\s*\n+\s*/, '</p><p>') + '</p>').html_safe
|
||||||
end
|
end
|
||||||
|
|
||||||
def form_field(f)
|
def form_field(f, response = nil)
|
||||||
id = 'field_' + f.id.to_s
|
id = 'field_' + f.id.to_s
|
||||||
html = p(f, 'title')#'<label for="' + id + '">' + f.title + '</label>'
|
html = p(f, 'title')#'<label for="' + id + '">' + f.title + '</label>'
|
||||||
|
|
||||||
|
#options = ActiveSupport::JSON.decode(options)#JSON.parse(f.options)
|
||||||
options = JSON.parse(f.options)
|
options = JSON.parse(f.options)
|
||||||
if f.field_type == 'multiple'
|
if f.field_type == 'multiple'
|
||||||
if f.help
|
if f.help
|
||||||
@ -466,12 +488,27 @@ module ApplicationHelper
|
|||||||
kv = value.split(/\s*\|\s*/, 2)
|
kv = value.split(/\s*\|\s*/, 2)
|
||||||
opts[kv[0]] = kv[1]
|
opts[kv[0]] = kv[1]
|
||||||
end
|
end
|
||||||
opts.each do |key, value|
|
|
||||||
#html += self.send(options['selection_type'] + '_tag', 'field-' + id)
|
val = response ? ActiveSupport::JSON.decode(response.data) : Hash.new
|
||||||
html += field((id + '_' + key), options['selection_type'] + '_tag', label: value)
|
#val = nil
|
||||||
|
|
||||||
|
if f.repeats?
|
||||||
|
is_array = f.is_array?
|
||||||
|
opts.each do |key, value|
|
||||||
|
#html += self.send(options['selection_type'] + '_tag', 'field-' + id)
|
||||||
|
#ActiveSupport::JSON.decode(key)
|
||||||
|
if is_array
|
||||||
|
#x
|
||||||
|
end
|
||||||
|
html += field((id + (is_array ? ('_' + key) : '')).to_sym, options['selection_type'] + '_tag', label: value, value: is_array ? (val ? val[key] : nil) : key, checked: is_array ? (val[key] == "1" || val[key] == "on") : val.to_s == key.to_s)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
html += field(id.to_sym, options['selection_type'] + '_tag', opts, value: val)
|
||||||
end
|
end
|
||||||
|
#html += collection_check_boxes nil, nil, opts, nil, :key
|
||||||
else
|
else
|
||||||
html += field(id.to_sym, options['input_type'] + '_tag', label: false, placeholder: f.help)
|
#x
|
||||||
|
html += field(id.to_sym, options['input_type'] + '_tag', label: false, placeholder: f.help, value: response ? ActiveSupport::JSON.decode(response.data) : nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
html.html_safe
|
html.html_safe
|
||||||
|
2
app/helpers/workshops_helper.rb
Normal file
2
app/helpers/workshops_helper.rb
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
module WorkshopsHelper
|
||||||
|
end
|
@ -56,6 +56,14 @@ class RegistrationFormField < ActiveRecord::Base
|
|||||||
o
|
o
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def repeats?()
|
||||||
|
field_type.to_s == 'multiple' && selection_type.to_s != 'select'
|
||||||
|
end
|
||||||
|
|
||||||
|
def is_array?()
|
||||||
|
field_type.to_s == 'multiple' && selection_type.to_s != 'radio_button'
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def get_from_options(key)
|
def get_from_options(key)
|
||||||
if options
|
if options
|
||||||
|
2
app/models/workshop.rb
Normal file
2
app/models/workshop.rb
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
class Workshop < ActiveRecord::Base
|
||||||
|
end
|
@ -1,7 +1,8 @@
|
|||||||
.columns.medium-8
|
.columns.medium-8
|
||||||
= field :is_attending, :select_tag, ConferenceRegistration::AttendingOptions, label: 'Are you attending?'
|
= field :is_attending, :select_tag, ConferenceRegistration::AttendingOptions, label: 'Are you attending?', value: @conference_registration.try(:is_attending)
|
||||||
%ol
|
%ol
|
||||||
- @conference.registration_form_fields.each do |ff|
|
- @conference.registration_form_fields.each do |ff|
|
||||||
%li
|
%li
|
||||||
= form_field ff
|
- response = @conference_registration ? ConferenceRegistrationResponse.find_by(conference_registration_id: @conference_registration.id, registration_form_field_id: ff.id) : nil
|
||||||
|
= form_field ff, response
|
||||||
= actions :register
|
= actions :register
|
||||||
|
40
app/views/workshops/_form.html.haml
Normal file
40
app/views/workshops/_form.html.haml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
= form_for @workshop do |f|
|
||||||
|
- if @workshop.errors.any?
|
||||||
|
#error_explanation
|
||||||
|
%h2= "#{pluralize(@workshop.errors.count, "error")} prohibited this workshop from being saved:"
|
||||||
|
%ul
|
||||||
|
- @workshop.errors.full_messages.each do |msg|
|
||||||
|
%li= msg
|
||||||
|
|
||||||
|
.field
|
||||||
|
= f.label :title
|
||||||
|
= f.text_field :title
|
||||||
|
.field
|
||||||
|
= f.label :slug
|
||||||
|
= f.text_field :slug
|
||||||
|
.field
|
||||||
|
= f.label :info
|
||||||
|
= f.text_area :info
|
||||||
|
.field
|
||||||
|
= f.label :conference_id
|
||||||
|
= f.number_field :conference_id
|
||||||
|
.field
|
||||||
|
= f.label :workshop_stream_id
|
||||||
|
= f.number_field :workshop_stream_id
|
||||||
|
.field
|
||||||
|
= f.label :workshop_presentation_style
|
||||||
|
= f.number_field :workshop_presentation_style
|
||||||
|
.field
|
||||||
|
= f.label :min_facilitators
|
||||||
|
= f.number_field :min_facilitators
|
||||||
|
.field
|
||||||
|
= f.label :location_id
|
||||||
|
= f.number_field :location_id
|
||||||
|
.field
|
||||||
|
= f.label :start_time
|
||||||
|
= f.datetime_select :start_time
|
||||||
|
.field
|
||||||
|
= f.label :end_time
|
||||||
|
= f.datetime_select :end_time
|
||||||
|
.actions
|
||||||
|
= f.submit 'Save'
|
7
app/views/workshops/edit.html.haml
Normal file
7
app/views/workshops/edit.html.haml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
%h1 Editing workshop
|
||||||
|
|
||||||
|
= render 'form'
|
||||||
|
|
||||||
|
= link_to 'Show', @workshop
|
||||||
|
\|
|
||||||
|
= link_to 'Back', workshops_path
|
37
app/views/workshops/index.html.haml
Normal file
37
app/views/workshops/index.html.haml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
%h1 Listing workshops
|
||||||
|
|
||||||
|
%table
|
||||||
|
%tr
|
||||||
|
%th Title
|
||||||
|
%th Slug
|
||||||
|
%th Info
|
||||||
|
%th Conference
|
||||||
|
%th Workshop stream
|
||||||
|
%th Workshop presentation style
|
||||||
|
%th Min facilitators
|
||||||
|
%th Location
|
||||||
|
%th Start time
|
||||||
|
%th End time
|
||||||
|
%th
|
||||||
|
%th
|
||||||
|
%th
|
||||||
|
|
||||||
|
- @workshops.each do |workshop|
|
||||||
|
%tr
|
||||||
|
%td= workshop.title
|
||||||
|
%td= workshop.slug
|
||||||
|
%td= workshop.info
|
||||||
|
%td= workshop.conference_id
|
||||||
|
%td= workshop.workshop_stream_id
|
||||||
|
%td= workshop.workshop_presentation_style
|
||||||
|
%td= workshop.min_facilitators
|
||||||
|
%td= workshop.location_id
|
||||||
|
%td= workshop.start_time
|
||||||
|
%td= workshop.end_time
|
||||||
|
%td= link_to 'Show', workshop
|
||||||
|
%td= link_to 'Edit', edit_workshop_path(workshop)
|
||||||
|
%td= link_to 'Destroy', workshop, :method => :delete, :data => { :confirm => 'Are you sure?' }
|
||||||
|
|
||||||
|
%br
|
||||||
|
|
||||||
|
= link_to 'New Workshop', new_workshop_path
|
5
app/views/workshops/new.html.haml
Normal file
5
app/views/workshops/new.html.haml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
%h1 New workshop
|
||||||
|
|
||||||
|
= render 'form'
|
||||||
|
|
||||||
|
= link_to 'Back', workshops_path
|
36
app/views/workshops/show.html.haml
Normal file
36
app/views/workshops/show.html.haml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
%p#notice= notice
|
||||||
|
|
||||||
|
%p
|
||||||
|
%b Title:
|
||||||
|
= @workshop.title
|
||||||
|
%p
|
||||||
|
%b Slug:
|
||||||
|
= @workshop.slug
|
||||||
|
%p
|
||||||
|
%b Info:
|
||||||
|
= @workshop.info
|
||||||
|
%p
|
||||||
|
%b Conference:
|
||||||
|
= @workshop.conference_id
|
||||||
|
%p
|
||||||
|
%b Workshop stream:
|
||||||
|
= @workshop.workshop_stream_id
|
||||||
|
%p
|
||||||
|
%b Workshop presentation style:
|
||||||
|
= @workshop.workshop_presentation_style
|
||||||
|
%p
|
||||||
|
%b Min facilitators:
|
||||||
|
= @workshop.min_facilitators
|
||||||
|
%p
|
||||||
|
%b Location:
|
||||||
|
= @workshop.location_id
|
||||||
|
%p
|
||||||
|
%b Start time:
|
||||||
|
= @workshop.start_time
|
||||||
|
%p
|
||||||
|
%b End time:
|
||||||
|
= @workshop.end_time
|
||||||
|
|
||||||
|
= link_to 'Edit', edit_workshop_path(@workshop)
|
||||||
|
\|
|
||||||
|
= link_to 'Back', workshops_path
|
@ -1,5 +1,7 @@
|
|||||||
BikeBike::Application.routes.draw do
|
BikeBike::Application.routes.draw do
|
||||||
|
|
||||||
|
resources :workshops
|
||||||
|
|
||||||
#resources :conference_registration_responses
|
#resources :conference_registration_responses
|
||||||
|
|
||||||
#resources :conference_registrations
|
#resources :conference_registrations
|
||||||
|
18
db/migrate/20140314025647_create_workshops.rb
Normal file
18
db/migrate/20140314025647_create_workshops.rb
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
class CreateWorkshops < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :workshops do |t|
|
||||||
|
t.string :title
|
||||||
|
t.string :slug
|
||||||
|
t.text :info
|
||||||
|
t.integer :conference_id
|
||||||
|
t.integer :workshop_stream_id
|
||||||
|
t.integer :workshop_presentation_style
|
||||||
|
t.integer :min_facilitators
|
||||||
|
t.integer :location_id
|
||||||
|
t.datetime :start_time
|
||||||
|
t.datetime :end_time
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
17
db/schema.rb
17
db/schema.rb
@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20140308173325) do
|
ActiveRecord::Schema.define(version: 20140314025647) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
@ -228,4 +228,19 @@ ActiveRecord::Schema.define(version: 20140308173325) do
|
|||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "workshops", force: true do |t|
|
||||||
|
t.string "title"
|
||||||
|
t.string "slug"
|
||||||
|
t.text "info"
|
||||||
|
t.integer "conference_id"
|
||||||
|
t.integer "workshop_stream_id"
|
||||||
|
t.integer "workshop_presentation_style"
|
||||||
|
t.integer "min_facilitators"
|
||||||
|
t.integer "location_id"
|
||||||
|
t.datetime "start_time"
|
||||||
|
t.datetime "end_time"
|
||||||
|
t.datetime "created_at"
|
||||||
|
t.datetime "updated_at"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
49
test/controllers/workshops_controller_test.rb
Normal file
49
test/controllers/workshops_controller_test.rb
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class WorkshopsControllerTest < ActionController::TestCase
|
||||||
|
setup do
|
||||||
|
@workshop = workshops(:one)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should get index" do
|
||||||
|
get :index
|
||||||
|
assert_response :success
|
||||||
|
assert_not_nil assigns(:workshops)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should get new" do
|
||||||
|
get :new
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should create workshop" do
|
||||||
|
assert_difference('Workshop.count') do
|
||||||
|
post :create, workshop: { conference_id: @workshop.conference_id, end_time: @workshop.end_time, info: @workshop.info, location_id: @workshop.location_id, min_facilitators: @workshop.min_facilitators, slug: @workshop.slug, start_time: @workshop.start_time, title: @workshop.title, workshop_presentation_style: @workshop.workshop_presentation_style, workshop_stream_id: @workshop.workshop_stream_id }
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_redirected_to workshop_path(assigns(:workshop))
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should show workshop" do
|
||||||
|
get :show, id: @workshop
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should get edit" do
|
||||||
|
get :edit, id: @workshop
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should update workshop" do
|
||||||
|
patch :update, id: @workshop, workshop: { conference_id: @workshop.conference_id, end_time: @workshop.end_time, info: @workshop.info, location_id: @workshop.location_id, min_facilitators: @workshop.min_facilitators, slug: @workshop.slug, start_time: @workshop.start_time, title: @workshop.title, workshop_presentation_style: @workshop.workshop_presentation_style, workshop_stream_id: @workshop.workshop_stream_id }
|
||||||
|
assert_redirected_to workshop_path(assigns(:workshop))
|
||||||
|
end
|
||||||
|
|
||||||
|
test "should destroy workshop" do
|
||||||
|
assert_difference('Workshop.count', -1) do
|
||||||
|
delete :destroy, id: @workshop
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_redirected_to workshops_path
|
||||||
|
end
|
||||||
|
end
|
16
test/factories/workshops.rb
Normal file
16
test/factories/workshops.rb
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||||
|
|
||||||
|
FactoryGirl.define do
|
||||||
|
factory :workshop do
|
||||||
|
title "MyString"
|
||||||
|
slug "MyString"
|
||||||
|
info "MyText"
|
||||||
|
conference_id 1
|
||||||
|
workshop_stream_id 1
|
||||||
|
workshop_presentation_style 1
|
||||||
|
min_facilitators 1
|
||||||
|
location_id 1
|
||||||
|
start_time "2014-03-13 20:56:47"
|
||||||
|
end_time "2014-03-13 20:56:47"
|
||||||
|
end
|
||||||
|
end
|
4
test/helpers/workshops_helper_test.rb
Normal file
4
test/helpers/workshops_helper_test.rb
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class WorkshopsHelperTest < ActionView::TestCase
|
||||||
|
end
|
7
test/models/workshop_test.rb
Normal file
7
test/models/workshop_test.rb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class WorkshopTest < ActiveSupport::TestCase
|
||||||
|
# test "the truth" do
|
||||||
|
# assert true
|
||||||
|
# end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user