Schedule divisions and workshops table

This commit is contained in:
Godwin
2017-08-20 16:04:39 -07:00
parent c1f9b5db82
commit ad3136a5cb
13 changed files with 614 additions and 280 deletions
+4 -3
View File
@@ -38,7 +38,8 @@ module AdminHelper
events: [
:locations,
:meals,
:events
:events,
:workshops
],
schedule: [
:workshop_times,
@@ -177,8 +178,8 @@ module AdminHelper
def available_dates_match?(host, guest)
return false unless host.housing_data['availability'].present? && host.housing_data['availability'][1].present?
return false unless guest.arrival.present? && guest.departure.present?
if host.housing_data['availability'][0] <= guest.arrival &&
host.housing_data['availability'][1] >= guest.departure
if host.housing_data['availability'][0].to_date <= guest.arrival.to_date &&
host.housing_data['availability'][1].to_date >= guest.departure.to_date
return true
end
+4 -2
View File
@@ -11,13 +11,15 @@ module FormHelper
# set the selected locale
selected_locale = (options[:locale] || object.locale || I18n.locale).to_sym
I18n.backend.enabled_locales.each do |locale|
locales = I18n.backend.enabled_locales.map { |l| [l, _("languages.#{l}")] }.sort_by { |l| l.last.downcase }.to_h
locales.each do |locale, locale_name|
# ses if this should b the selected field
class_name = selected_locale == locale.to_sym ? 'selected' : nil
# add the locale to the nav
nav += content_tag(:li,
content_tag(:a, _("languages.#{locale}"), href: 'javascript:void(0)'),
content_tag(:a, locale_name, href: 'javascript:void(0)'),
class: class_name, data: { locale: locale }).html_safe
fields = ''
+29 -4
View File
@@ -16,7 +16,7 @@ module TableHelper
headers = ''
options[:column_names].each do |header_name, columns|
column_names[header_name] ||= []
headers += content_tag(:th, excel_data[:keys][header_name].present? ? _(excel_data[:keys][header_name]) : '', colspan: 2)
headers += content_tag(:th, excel_data[:keys][header_name].present? ? I18n.t(excel_data[:keys][header_name], (excel_data[:key_vars] || {})[header_name]) : '', colspan: 2)
row_count = columns.size
columns.each do |column|
column_names[header_name] << column
@@ -43,7 +43,7 @@ module TableHelper
attributes[:rowspan] = options[:row_spans][column]
end
column_text = excel_data[:keys][column].present? ? _(excel_data[:keys][column]) : ''
column_text = excel_data[:keys][column].present? ? I18n.t(excel_data[:keys][column], (excel_data[:key_vars] || {})[header_name]) : ''
columns_html += content_tag(:th, column_text.html_safe, rowspan: attributes[:rowspan]) +
edit_column(nil, column, nil, attributes, excel_data, options)
@@ -64,7 +64,7 @@ module TableHelper
if (excel_data[:column_types] || {})[column] != :table && ((options[:column_names] || []).include? column)
rows += content_tag(:tr, { class: 'always-edit', data: { key: '' } }) do
attributes = { class: [excel_data[:column_types][column]], data: { 'column-id' => column } }
column_text = excel_data[:keys][column].present? ? _(excel_data[:keys][column]) : ''
column_text = excel_data[:keys][column].present? ? I18n.t(excel_data[:keys][column], (excel_data[:key_vars] || {})[header_name]) : ''
columns = content_tag(:th, column_text.html_safe) + edit_column(nil, column, nil, attributes, excel_data, options)
end
@@ -124,7 +124,7 @@ module TableHelper
data[:columns].each do |column|
unless data[:column_types].present? && data[:column_types][column] == :table
column_text = data[:keys][column].present? ? _(data[:keys][column]) : ''
column_text = data[:keys][column].present? ? I18n.t(data[:keys][column], (data[:key_vars] || {})[column]) : ''
attrs = { class: class_name }
unless @sort_column.nil?
@@ -400,4 +400,29 @@ module TableHelper
column_options: @column_options
}
end
def workshops_table_options
{
id: 'search-table',
class: ['registrations', 'admin-edit'],
primary_key: :id,
column_names: [
:title,
:owner,
:info,
:notes,
:locale,
:facilitators
] +
User.AVAILABLE_LANGUAGES.map { |l| "language_#{l}".to_sym } +
(User.AVAILABLE_LANGUAGES - [I18n.locale]).map { |l| "title_#{l}".to_sym } +
Workshop.all_needs.map { |n| "need_#{n}".to_sym } + [
:theme,
:space
],
editable: administration_update_path(@this_conference.slug, @admin_step),
sortable: administration_step_path(@this_conference.slug, @admin_step),
column_options: @column_options
}
end
end