dm_event 4.2.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +23 -0
- data/README.md +33 -0
- data/Rakefile +36 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/at/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/be/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/ch/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/de/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/es/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/fr/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/it/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/nl/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/pl/icon-64x44.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/100x38.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/200x75.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/250x94.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/28x7.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/320x120.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/42x11.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/75x28.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/icon-32x22.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/icon-32x24.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/icon-48x32.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/icon-48x34.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/icon-64x42.png +0 -0
- data/app/assets/images/dm_event/payment_logos/sofort/uk/icon-64x44.png +0 -0
- data/app/assets/javascripts/dm_event/admin.js +94 -0
- data/app/assets/stylesheets/dm_event/admin.css +152 -0
- data/app/assets/stylesheets/dm_event/application.css +65 -0
- data/app/controllers/dm_event/admin/admin_controller.rb +13 -0
- data/app/controllers/dm_event/admin/registrations_controller.rb +411 -0
- data/app/controllers/dm_event/admin/workshop_prices_controller.rb +73 -0
- data/app/controllers/dm_event/admin/workshops_controller.rb +147 -0
- data/app/controllers/dm_event/application_controller.rb +23 -0
- data/app/controllers/dm_event/payments_controller.rb +83 -0
- data/app/controllers/dm_event/registrations_controller.rb +368 -0
- data/app/datatables/registration_datatable.rb +117 -0
- data/app/helpers/dm_event/application_helper.rb +4 -0
- data/app/helpers/dm_event/registrations_helper.rb +14 -0
- data/app/helpers/dm_event/workshops_helper.rb +41 -0
- data/app/mailers/payment_reminder_mailer.rb +25 -0
- data/app/mailers/registration_notify_mailer.rb +31 -0
- data/app/models/dm_event/concerns/ability.rb +38 -0
- data/app/models/dm_event/concerns/registration_state_email.rb +80 -0
- data/app/models/dm_event/concerns/registration_state_machine.rb +218 -0
- data/app/models/dm_event/concerns/user_profile.rb +20 -0
- data/app/models/dm_event/model_decorators.rb +6 -0
- data/app/models/dm_event/permitted_params.rb +35 -0
- data/app/models/payment.rb +48 -0
- data/app/models/registration.rb +297 -0
- data/app/models/workshop.rb +247 -0
- data/app/models/workshop_price.rb +118 -0
- data/app/presenters/event_common_presenter.rb +31 -0
- data/app/presenters/registration_presenter.rb +34 -0
- data/app/presenters/workshop_presenter.rb +22 -0
- data/app/views/dm_event/admin/registrations/_form.html.erb +297 -0
- data/app/views/dm_event/admin/registrations/action_state.js.erb +1 -0
- data/app/views/dm_event/admin/registrations/edit.html.erb +1 -0
- data/app/views/dm_event/admin/registrations/index.html.erb +0 -0
- data/app/views/dm_event/admin/workshop_prices/_form.html.erb +62 -0
- data/app/views/dm_event/admin/workshop_prices/edit.html.erb +2 -0
- data/app/views/dm_event/admin/workshop_prices/index.html.erb +31 -0
- data/app/views/dm_event/admin/workshop_prices/new.html.erb +2 -0
- data/app/views/dm_event/admin/workshops/_form.html.erb +61 -0
- data/app/views/dm_event/admin/workshops/_header_menu.html.erb +21 -0
- data/app/views/dm_event/admin/workshops/_registration_stats.html.erb +58 -0
- data/app/views/dm_event/admin/workshops/additional_configuration.html.erb +47 -0
- data/app/views/dm_event/admin/workshops/edit.html.erb +2 -0
- data/app/views/dm_event/admin/workshops/edit_system_email.html.erb +75 -0
- data/app/views/dm_event/admin/workshops/financials.html.erb +179 -0
- data/app/views/dm_event/admin/workshops/index.html.erb +100 -0
- data/app/views/dm_event/admin/workshops/lost_users.html.erb +44 -0
- data/app/views/dm_event/admin/workshops/new.html.erb +2 -0
- data/app/views/dm_event/admin/workshops/show.html.erb +47 -0
- data/app/views/dm_event/admin/workshops/user_outstanding_balances.html.erb +29 -0
- data/app/views/dm_event/liquid_tags/_funding_project_status.html.erb +27 -0
- data/app/views/dm_event/payments/_registrations_paypal_standard.html.erb +23 -0
- data/app/views/dm_event/payments/_registrations_sofort.html.erb +18 -0
- data/app/views/dm_event/registrations/_section_address.html.erb +30 -0
- data/app/views/dm_event/registrations/_section_custom_fields.html.erb +7 -0
- data/app/views/dm_event/registrations/_section_prices.html.erb +33 -0
- data/app/views/dm_event/registrations/_workshop_price.html.erb +18 -0
- data/app/views/dm_event/registrations/choose_payment.html.erb +5 -0
- data/app/views/dm_event/registrations/closed.html.erb +14 -0
- data/app/views/dm_event/registrations/new.html.erb +30 -0
- data/app/views/dm_event/registrations/success.html.erb +15 -0
- data/app/views/layouts/email_templates/dm_event_email_layout.html.erb +318 -0
- data/app/views/layouts/email_templates/dm_event_email_layout.text.erb +1 -0
- data/app/views/layouts/email_templates/dm_event_payment_reminder.html.erb +22 -0
- data/app/views/layouts/email_templates/dm_event_payment_reminder.text.erb +19 -0
- data/app/views/layouts/email_templates/dm_event_registration_notify.html.erb +21 -0
- data/app/views/layouts/email_templates/dm_event_registration_notify.text.erb +13 -0
- data/config/initializers/dm_event.rb +1 -0
- data/config/initializers/liquid_init.rb +2 -0
- data/config/locales/ems.cs.yml +51 -0
- data/config/locales/ems.de.yml +51 -0
- data/config/locales/ems.en.yml +51 -0
- data/config/locales/ems.fi.yml +51 -0
- data/config/locales/ems.ja.yml +51 -0
- data/config/routes.rb +40 -0
- data/db/migrate/20130510155617_create_events.rb +98 -0
- data/db/migrate/20130516124327_add_locale_to_registration.rb +5 -0
- data/db/migrate/20130516204454_add_user_profile_to_registration.rb +11 -0
- data/db/migrate/20130518092324_add_require_address.rb +7 -0
- data/db/migrate/20130609145812_add_workshop_published.rb +5 -0
- data/db/migrate/20130624134506_add_amount_currency.rb +16 -0
- data/db/migrate/20130703131515_add_workshop_currency.rb +5 -0
- data/db/migrate/20130913083529_add_event_funding_type.rb +6 -0
- data/db/migrate/20130914105736_add_enable_payments.rb +5 -0
- data/db/migrate/20130916160033_add_sidebar_to_workshop.rb +5 -0
- data/db/migrate/20130917161700_add_show_address.rb +5 -0
- data/db/migrate/20131116180719_add_default_funding_goal.rb +8 -0
- data/db/migrate/20131127165445_add_payment_reminder.rb +5 -0
- data/db/migrate/20140122204702_add_event_image.rb +5 -0
- data/db/migrate/20140523165342_add_workshop_summary.rb +5 -0
- data/db/migrate/20140605052208_add_uuid_to_registration.rb +10 -0
- data/db/migrate/20140707152124_add_registration_comment_count.rb +5 -0
- data/db/migrate/20140708142312_add_payment_comment.rb +20 -0
- data/db/migrate/20150709125105_add_payment_reminder_history.rb +16 -0
- data/db/migrate/20160810081542_add_bcc_contact_email.rb +5 -0
- data/db/migrate/20160821150120_index_foreign_keys_in_ems_registrations.rb +9 -0
- data/db/migrate/20160821150121_index_foreign_keys_in_ems_workshop_price_translations.rb +5 -0
- data/db/migrate/20160821150122_index_foreign_keys_in_ems_workshop_prices.rb +6 -0
- data/db/migrate/20160821150123_index_foreign_keys_in_ems_workshop_translations.rb +5 -0
- data/db/migrate/20160821150124_index_foreign_keys_in_ems_workshops.rb +6 -0
- data/lib/dm_event/engine.rb +20 -0
- data/lib/dm_event/liquid/tags/funding_project_status.rb +55 -0
- data/lib/dm_event.rb +4 -0
- data/lib/tasks/dm_event_tasks.rake +4 -0
- data/spec/controllers/registrations_controller_spec.rb +152 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/ability.rb +10 -0
- data/spec/dummy/app/models/user.rb +6 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config/application.rb +26 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +82 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/assets.rb +8 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +11 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20141114170927_add_globalize_countries.dm_core.rb +50 -0
- data/spec/dummy/db/migrate/20141114170928_devise_create_users.dm_core.rb +46 -0
- data/spec/dummy/db/migrate/20141114170929_add_user_fields.dm_core.rb +14 -0
- data/spec/dummy/db/migrate/20141114170930_rolify_create_roles.dm_core.rb +20 -0
- data/spec/dummy/db/migrate/20141114170931_add_last_access.dm_core.rb +10 -0
- data/spec/dummy/db/migrate/20141114170932_create_versions.dm_core.rb +19 -0
- data/spec/dummy/db/migrate/20141114170933_add_object_changes_column_to_versions.dm_core.rb +12 -0
- data/spec/dummy/db/migrate/20141114170934_create_dm_core_accounts.dm_core.rb +13 -0
- data/spec/dummy/db/migrate/20141114170935_add_account_to_users.dm_core.rb +9 -0
- data/spec/dummy/db/migrate/20141114170936_create_preferences.dm_core.rb +13 -0
- data/spec/dummy/db/migrate/20141114170937_create_comments.dm_core.rb +22 -0
- data/spec/dummy/db/migrate/20141114170938_add_activity.dm_core.rb +21 -0
- data/spec/dummy/db/migrate/20141114170939_add_type_to_comments.dm_core.rb +9 -0
- data/spec/dummy/db/migrate/20141114170940_add_category.dm_core.rb +28 -0
- data/spec/dummy/db/migrate/20141114170941_create_email_table.dm_core.rb +26 -0
- data/spec/dummy/db/migrate/20141114170942_add_user_profile.dm_core.rb +46 -0
- data/spec/dummy/db/migrate/20141114170943_add_profile_email.dm_core.rb +14 -0
- data/spec/dummy/db/migrate/20141114170944_create_payment_history.dm_core.rb +37 -0
- data/spec/dummy/db/migrate/20141114170945_change_anchor_field.dm_core.rb +10 -0
- data/spec/dummy/db/migrate/20141114170946_create_user_site_profile.dm_core.rb +27 -0
- data/spec/dummy/db/migrate/20141114170947_add_avatar.dm_core.rb +12 -0
- data/spec/dummy/db/migrate/20141114170948_add_notify_to_payment_history.dm_core.rb +8 -0
- data/spec/dummy/db/migrate/20141114170949_acts_as_votable_migration.dm_core.rb +28 -0
- data/spec/dummy/db/migrate/20141114170950_add_user_site_profile_uuid.dm_core.rb +19 -0
- data/spec/dummy/db/migrate/20141114170951_add_invoice_id.dm_core.rb +7 -0
- data/spec/dummy/db/migrate/20141114170952_acts_as_follower_migration.dm_core.rb +18 -0
- data/spec/dummy/db/migrate/20141114170953_rename_invoice_id.dm_core.rb +12 -0
- data/spec/dummy/db/migrate/20141114170954_add_core_addresses.dm_core.rb +18 -0
- data/spec/dummy/db/migrate/20141114170955_papertrail_increase_column.dm_core.rb +9 -0
- data/spec/dummy/db/migrate/20141114170956_acts_as_taggable_on_migration.dm_core.rb +32 -0
- data/spec/dummy/db/migrate/20141114170957_add_missing_unique_indices.dm_core.rb +23 -0
- data/spec/dummy/db/migrate/20141114170958_add_taggings_counter_cache_to_tags.dm_core.rb +16 -0
- data/spec/dummy/db/migrate/20141114170959_create_custom_fields.dm_core.rb +40 -0
- data/spec/dummy/db/migrate/20141114170960_add_missing_taggable_index.dm_core.rb +11 -0
- data/spec/dummy/db/migrate/20141119103740_create_cms.dm_cms.rb +92 -0
- data/spec/dummy/db/migrate/20141119103741_add_account_to_cms.dm_cms.rb +11 -0
- data/spec/dummy/db/migrate/20141119103742_create_blog.dm_cms.rb +62 -0
- data/spec/dummy/db/migrate/20141119103743_add_notification_sent.dm_cms.rb +6 -0
- data/spec/dummy/db/migrate/20141119103744_add_blog_comment.dm_cms.rb +8 -0
- data/spec/dummy/db/migrate/20141119103745_add_blog_image.dm_cms.rb +6 -0
- data/spec/dummy/db/migrate/20141119103746_rename_snippet_slug.dm_cms.rb +14 -0
- data/spec/dummy/db/migrate/20141119103747_add_requires_subscription_blog.dm_cms.rb +8 -0
- data/spec/dummy/db/migrate/20141119103748_add_pages_ranked_model.dm_cms.rb +23 -0
- data/spec/dummy/db/migrate/20141119103749_add_blog_owner.dm_cms.rb +7 -0
- data/spec/dummy/db/migrate/20141119103750_create_media_files.dm_cms.rb +30 -0
- data/spec/dummy/db/migrate/20141119103751_add_cmspage_summary.dm_cms.rb +7 -0
- data/spec/dummy/db/migrate/20141119103752_add_blog_image_email_header.dm_cms.rb +6 -0
- data/spec/dummy/db/migrate/20141119103753_add_header_image.dm_cms.rb +10 -0
- data/spec/dummy/db/migrate/20160128154135_add_favored_locale.dm_core.rb +17 -0
- data/spec/dummy/db/migrate/20160128154136_update_papertrail_v4.dm_core.rb +41 -0
- data/spec/dummy/db/schema.rb +677 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/account_factory.rb +7 -0
- data/spec/factories/registration_factory.rb +13 -0
- data/spec/factories/workshop_factory.rb +25 -0
- data/spec/factories/workshop_price_factory.rb +19 -0
- data/spec/models/registration_spec.rb +83 -0
- data/spec/models/workshop_spec.rb +26 -0
- data/spec/rails_helper.rb +70 -0
- data/spec/spec_helper.rb +85 -0
- data/spec/support/accounts.rb +17 -0
- data/spec/support/devise.rb +44 -0
- data/spec/support/fix_locale.rb +57 -0
- metadata +520 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
<% payment_service_for @registration.receipt_code, current_account.preferred_paypal_merchant_id,
|
2
|
+
amount: @registration.payment_owed.amount,
|
3
|
+
currency: @registration.payment_owed.currency.iso_code,
|
4
|
+
service: :paypal do |service|
|
5
|
+
service.customer :first_name => @registration.first_name,
|
6
|
+
:last_name => @registration.last_name,
|
7
|
+
:phone => '',
|
8
|
+
:email => @registration.email
|
9
|
+
service.item_name @registration.workshop.title
|
10
|
+
service.tax '0.00'
|
11
|
+
service.cmd '_donations' if @registration.workshop.crowdfunding?
|
12
|
+
service.notify_url dm_event.payment_paypal_ipn_url if Rails.env.production?
|
13
|
+
service.return_url dm_event.register_success_url(@registration.receipt_code)
|
14
|
+
service.cancel_return_url dm_event.register_choose_payment_url(@registration.receipt_code)
|
15
|
+
%>
|
16
|
+
|
17
|
+
<!-- display payment summary here -->
|
18
|
+
<% if locale == :de %>
|
19
|
+
<%= image_submit_tag "https://www.paypal.com/de_DE/DE/i/btn/btn_xpressCheckout.gif" %>
|
20
|
+
<% else %>
|
21
|
+
<%= image_submit_tag "https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" %>
|
22
|
+
<% end %>
|
23
|
+
<% end %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% payment_service_for @registration.receipt_code, current_account.preferred_sofort_user_id,
|
2
|
+
credential2: current_account.preferred_sofort_project_id,
|
3
|
+
credential3: current_account.preferred_sofort_project_password,
|
4
|
+
credential4: '', #--- notification password
|
5
|
+
amount: @registration.payment_owed,
|
6
|
+
currency: @registration.payment_owed.currency.iso_code,
|
7
|
+
service: :directebanking do |service|
|
8
|
+
service.item_name @registration.workshop.title
|
9
|
+
service.description @registration.workshop.title
|
10
|
+
service.reason_2 @registration.receipt_code
|
11
|
+
service.notify_url dm_event.payment_sofort_ipn_url if Rails.env.production?
|
12
|
+
service.return_url dm_event.register_success_url(@registration.receipt_code)
|
13
|
+
service.cancel_return_url dm_event.register_choose_payment_url(@registration.receipt_code)
|
14
|
+
%>
|
15
|
+
|
16
|
+
<!-- display payment summary here -->
|
17
|
+
<%= image_submit_tag "dm_event/payment_logos/sofort/#{I18n.locale}/200x75.png", width: 150 %>
|
18
|
+
<% end %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<% if current_user.nil? %>
|
2
|
+
<h3><%= I18n.t "ems.ticket_contact" %></h3>
|
3
|
+
<div class="ticket_information">
|
4
|
+
<div class="registration_section_address">
|
5
|
+
<%= f.simple_fields_for :user_profile, @registration.user_profile do |builder| %>
|
6
|
+
|
7
|
+
<%= builder.input(:email, :label => I18n.t('ems.registration_email'), :required => true) %>
|
8
|
+
<% if I18n.locale == :ja %>
|
9
|
+
<%= builder.input :last_name, :label => I18n.t('ems.registration_last_name'), :required => true %>
|
10
|
+
<%= builder.input :first_name, :label => I18n.t('ems.registration_first_name'), :required => true %>
|
11
|
+
<% else %>
|
12
|
+
<%= builder.input :first_name, :label => I18n.t('ems.registration_first_name'), :required => true %>
|
13
|
+
<%= builder.input :last_name, :label => I18n.t('ems.registration_last_name'), :required => true %>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<% if @workshop.show_address %>
|
17
|
+
<%= builder.input :address, :label => I18n.t('ems.registration_address'), :required => @workshop.require_address %>
|
18
|
+
<%= builder.input :address2, :label => I18n.t('ems.registration_address2') %>
|
19
|
+
<%= builder.input :city, :label => I18n.t('ems.registration_city'), :required => @workshop.require_address %>
|
20
|
+
<%= builder.input :state, :label => I18n.t('ems.registration_state') %>
|
21
|
+
<%= builder.input :zipcode, :label => I18n.t('ems.registration_zipcode'), :required => @workshop.require_address %>
|
22
|
+
<% end %>
|
23
|
+
|
24
|
+
<%= builder.input :country_id, :collection => ut_country_select_collection(false), :label => I18n.t('ems.registration_country'), :required => true %>
|
25
|
+
<%= builder.input :address_required, :as => :hidden %>
|
26
|
+
<%= builder.input :userless_registration, :as => :hidden %>
|
27
|
+
<% end %>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
<% end %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% f.object.build_missing_fields workshop %>
|
2
|
+
<%= f.simple_fields_for :custom_fields do |builder| %>
|
3
|
+
<% field = builder.object %>
|
4
|
+
<div class="custom_field_group">
|
5
|
+
<%= render "dm_core/admin/custom_fields/#{field.field_type}", field: field, f: builder %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<% unless @workshop.workshop_prices.empty? && @workshop.custom_field_defs.empty? %>
|
2
|
+
<h3><%= I18n.t "ems.ticket_information" %></h3>
|
3
|
+
<div id="ticket_information" class="ticket_information">
|
4
|
+
<% unless @workshop.custom_field_defs.empty? %>
|
5
|
+
<div class="registration_custom_fields">
|
6
|
+
<%= render partial: 'section_custom_fields', locals: {f: f, workshop: @workshop} %>
|
7
|
+
</div>
|
8
|
+
<% end %>
|
9
|
+
<% unless @workshop.workshop_prices.empty? %>
|
10
|
+
<div class="registration_section_prices">
|
11
|
+
<%= f.error :workshop_price_id, id: 'workshop_price_error', class: 'error' %>
|
12
|
+
<ul class="workshop_price_list">
|
13
|
+
<% if @registration.new_record? %>
|
14
|
+
<% @workshop.workshop_prices.each do |p| %>
|
15
|
+
<% if p.visible? and !@workshop.price_sold_out?(p) %>
|
16
|
+
<li>
|
17
|
+
<% if @workshop.workshop_prices.size == 1 # if only one price, pre-select it %>
|
18
|
+
<label><%= radio_button 'registration', 'workshop_price_id', p.id, checked: true %><%= price_details(p) %></label>
|
19
|
+
<% else %>
|
20
|
+
<label><%= radio_button 'registration', 'workshop_price_id', p.id %><%= price_details(p) %></label>
|
21
|
+
<% end %>
|
22
|
+
</li>
|
23
|
+
<% end %>
|
24
|
+
<% end %>
|
25
|
+
<% else %>
|
26
|
+
<li><label><%= price_details(@registration.workshop_price) %></label></li>
|
27
|
+
<% end %>
|
28
|
+
</ul>
|
29
|
+
</div>
|
30
|
+
<% end %>
|
31
|
+
</div>
|
32
|
+
<% end %>
|
33
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<div class="price_details">
|
2
|
+
<dl>
|
3
|
+
<dt>
|
4
|
+
<% if workshop_price.price %>
|
5
|
+
<span class="price"><%= humanized_money_with_symbol workshop_price.price %></span> —
|
6
|
+
<% end %>
|
7
|
+
<% unless workshop_price.price_description.blank? %>
|
8
|
+
<span class='price_description'><%= workshop_price.price_description %></span>
|
9
|
+
<% end %>
|
10
|
+
</dt>
|
11
|
+
<% unless workshop_price.sub_description.blank? %>
|
12
|
+
<dd class="sub_description"><%= workshop_price.sub_description %></dd>
|
13
|
+
<% end %>
|
14
|
+
<% unless workshop_price.valid_until.nil? %>
|
15
|
+
<dd class='expires'>Expires: <span><%= format_date(workshop_price.valid_until) %></span></dd>
|
16
|
+
<% end %>
|
17
|
+
</dl>
|
18
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% available = Workshop.available %>
|
2
|
+
<div id="workshop_registration" class="registration_closed">
|
3
|
+
<h2><%= I18n.t "ems.registration_closed_heading" %></h2>
|
4
|
+
<p><%= I18n.t "ems.registration_closed_text", title: @workshop.title %></p>
|
5
|
+
<p><%= I18n.t "ems.registration_closed_email", email: @workshop.contact_email %></p>
|
6
|
+
<% unless available.empty? %>
|
7
|
+
<p><%= I18n.t 'ems.registration_closed_list' %></p>
|
8
|
+
<ul>
|
9
|
+
<% available.each do |workshop| %>
|
10
|
+
<li><%= link_to workshop.title, register_new_url(workshop) %></li>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<% content_for :sidebar do %>
|
2
|
+
<%= render_workshop_sidebar(@workshop) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<div id="workshop_registration">
|
6
|
+
<div id="workshop_description">
|
7
|
+
<%= render_workshop_description(@workshop) %>
|
8
|
+
<% if @workshop.show_social_buttons? %>
|
9
|
+
<div class="clearfix"></div>
|
10
|
+
<%= render(partial: "dm_cms/shared/social_buttons") %>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<% unless @workshop.require_account && current_user.nil? %>
|
15
|
+
<%= simple_form_for @registration, url: register_create_url(@workshop, anchor: 'ticket_information'),
|
16
|
+
html: { class: 'form-horizontal' }, wrapper: simple_form_theme_wrapper do |f| %>
|
17
|
+
|
18
|
+
<%= render partial: 'section_prices', locals: {f: f} %>
|
19
|
+
|
20
|
+
<%= render partial: 'section_address', locals: {f: f} %>
|
21
|
+
|
22
|
+
<% save_label = @workshop.crowdfunding? ? I18n.t('ems.donate_button') : I18n.t('ems.register_btn') %>
|
23
|
+
<%= submit_tag save_label, class: 'btn btn-primary' %>
|
24
|
+
<%= link_to I18n.t('ems.cancel_btn'), main_app.index_url, class: 'btn' %>
|
25
|
+
<% end %>
|
26
|
+
<% else %>
|
27
|
+
<%= link_to I18n.t('ems.login'), main_app.new_user_session_path, class: 'btn btn-primary', style: 'margin-bottom: 20px' %>
|
28
|
+
<%= link_to I18n.t('ems.create_account'), main_app.new_user_registration_path, class: 'btn' %>
|
29
|
+
<% end %>
|
30
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="receipt_section">
|
2
|
+
<h2><%= I18n.t('ems.registration_receipt_title') %></h2>
|
3
|
+
<div class="ticket">
|
4
|
+
<h3><%= @registration.workshop.title %></h3>
|
5
|
+
<ul>
|
6
|
+
<li><span class="header"><%= I18n.t('ems.ticket_receipt_attendee') %></span><%=h @registration.full_name %></li>
|
7
|
+
<li><span class="header"><%= I18n.t('ems.ticket_receipt_ticket_number') %></span><%=h @registration.receipt_code %></li>
|
8
|
+
<% if @registration.workshop_price %>
|
9
|
+
<li><span class="header"><%= I18n.t('ems.ticket_receipt_price') %></span><%= humanized_money_with_symbol @registration.price %></li>
|
10
|
+
<% end %>
|
11
|
+
</table>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<%= markdown(@receipt_content, :safe => false) %>
|
15
|
+
</div>
|
@@ -0,0 +1,318 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
|
+
|
6
|
+
<style type="text/css">
|
7
|
+
#outlook a { padding:0; }
|
8
|
+
body { width:100% !important; }
|
9
|
+
.ReadMsgBody { width:100%; }
|
10
|
+
.ExternalClass { width:100%; }
|
11
|
+
figure {margin:0; padding:0; display:block;}
|
12
|
+
body { -webkit-text-size-adjust:none; }
|
13
|
+
body {
|
14
|
+
margin:0;
|
15
|
+
padding:0;
|
16
|
+
font-size: 12px;
|
17
|
+
font-family: Arial, sans-serif;
|
18
|
+
}
|
19
|
+
img {
|
20
|
+
border:0;
|
21
|
+
height:auto;
|
22
|
+
line-height:100%;
|
23
|
+
outline:none;
|
24
|
+
text-decoration:none;
|
25
|
+
}
|
26
|
+
table td { border-collapse:collapse; }
|
27
|
+
#backgroundTable{
|
28
|
+
height:100% !important;
|
29
|
+
margin:0;
|
30
|
+
padding:0;
|
31
|
+
width:100% !important;
|
32
|
+
}
|
33
|
+
body,#backgroundTable { background-color:#FFFFFF; }
|
34
|
+
#templateContainer { border:1px solid #E7E0C4; }
|
35
|
+
h1,.h1 {
|
36
|
+
color:#800040;
|
37
|
+
display:block;
|
38
|
+
font-family:Arial;
|
39
|
+
font-size: 18px;
|
40
|
+
font-weight: normal;
|
41
|
+
line-height: 24px;
|
42
|
+
text-transform: uppercase;
|
43
|
+
margin-top:20px;
|
44
|
+
margin-right:0;
|
45
|
+
margin-bottom:20px;
|
46
|
+
margin-left:0;
|
47
|
+
text-align:left;
|
48
|
+
padding-bottom: 5px;
|
49
|
+
}
|
50
|
+
h2,.h2 {
|
51
|
+
color:#8c8c8c;
|
52
|
+
display:block;
|
53
|
+
font-family:Arial;
|
54
|
+
font-size:16px;
|
55
|
+
font-weight:normal;
|
56
|
+
line-height:100%;
|
57
|
+
margin-top:0;
|
58
|
+
margin-right:0;
|
59
|
+
margin-bottom:10px;
|
60
|
+
margin-left:0;
|
61
|
+
text-align:left;
|
62
|
+
text-transform: uppercase;
|
63
|
+
}
|
64
|
+
h3,.h3 {
|
65
|
+
color:#8c8c8c;
|
66
|
+
display:block;
|
67
|
+
font-family:Arial;
|
68
|
+
font-size:16px;
|
69
|
+
font-weight:normal;
|
70
|
+
line-height:100%;
|
71
|
+
margin-top:0;
|
72
|
+
margin-right:0;
|
73
|
+
margin-bottom:10px;
|
74
|
+
margin-left:0;
|
75
|
+
text-align:left;
|
76
|
+
}
|
77
|
+
h4,.h4 {
|
78
|
+
color:#8c8c8c;
|
79
|
+
display:block;
|
80
|
+
font-family:Arial;
|
81
|
+
font-size:14px;
|
82
|
+
font-weight:bold;
|
83
|
+
line-height:100%;
|
84
|
+
margin-top:0;
|
85
|
+
margin-right:0;
|
86
|
+
margin-bottom:10px;
|
87
|
+
margin-left:0;
|
88
|
+
text-align:left;
|
89
|
+
}
|
90
|
+
#templatePreheader { background-color:#FFF; }
|
91
|
+
.preheaderContent div {
|
92
|
+
color:#505050;
|
93
|
+
font-family:Arial;
|
94
|
+
font-size:10px;
|
95
|
+
line-height:100%;
|
96
|
+
text-align:left;
|
97
|
+
}
|
98
|
+
.preheaderContent div a:link,.preheaderContent div a:visited,.preheaderContent div a .yshortcuts {
|
99
|
+
color:#336699;
|
100
|
+
font-weight:normal;
|
101
|
+
text-decoration:underline;
|
102
|
+
}
|
103
|
+
#templateHeader {
|
104
|
+
background-color:#FFFFFF;
|
105
|
+
border-bottom:0;
|
106
|
+
}
|
107
|
+
.headerContent {
|
108
|
+
color:#202020;
|
109
|
+
font-family:Arial;
|
110
|
+
font-size:34px;
|
111
|
+
font-weight:bold;
|
112
|
+
line-height:100%;
|
113
|
+
padding:0;
|
114
|
+
text-align:center;
|
115
|
+
vertical-align:middle;
|
116
|
+
}
|
117
|
+
.headerContent a:link,.headerContent a:visited,.headerContent a .yshortcuts {
|
118
|
+
color:#336699;
|
119
|
+
font-weight:normal;
|
120
|
+
text-decoration:underline;
|
121
|
+
}
|
122
|
+
#headerImage {
|
123
|
+
height:auto;
|
124
|
+
max-width:650px !important;
|
125
|
+
}
|
126
|
+
#templateContainer,.bodyContent { background-color:#FFFFFF; }
|
127
|
+
.bodyContent div {
|
128
|
+
color:#505050;
|
129
|
+
font-family:Arial;
|
130
|
+
font-size:13px;
|
131
|
+
line-height:150%;
|
132
|
+
text-align:left;
|
133
|
+
}
|
134
|
+
.bodyContent div a:link,.bodyContent div a:visited,.bodyContent div a .yshortcuts {
|
135
|
+
color:#336699;
|
136
|
+
font-weight:normal;
|
137
|
+
text-decoration:underline;
|
138
|
+
}
|
139
|
+
.bodyContent img {
|
140
|
+
display:inline;
|
141
|
+
height:auto;
|
142
|
+
}
|
143
|
+
#templateFooter {
|
144
|
+
background-color:#F8F8F8;
|
145
|
+
border-top: 1px solid #ddd;
|
146
|
+
}
|
147
|
+
.footerContent div {
|
148
|
+
color:#707070;
|
149
|
+
font-family:Arial;
|
150
|
+
font-size:11px;
|
151
|
+
line-height:125%;
|
152
|
+
text-align:center;
|
153
|
+
}
|
154
|
+
.footerContent div a:link,.footerContent div a:visited,.footerContent div a .yshortcuts {
|
155
|
+
color:#336699;
|
156
|
+
font-weight:normal;
|
157
|
+
text-decoration:underline;
|
158
|
+
}
|
159
|
+
.footerContent img { display:inline; }
|
160
|
+
hr, .hr {
|
161
|
+
width: 100%;
|
162
|
+
clear: both;
|
163
|
+
border: none;
|
164
|
+
height: 1px;
|
165
|
+
background-color: #aaa;
|
166
|
+
margin-top: 30px;
|
167
|
+
margin-bottom: 30px;
|
168
|
+
}
|
169
|
+
.bodyContent blockquote p {
|
170
|
+
border-left: 3px solid silver;
|
171
|
+
padding-bottom: 5px;
|
172
|
+
margin-bottom: 10px;
|
173
|
+
padding-left: 5px;
|
174
|
+
margin-left: 10px;
|
175
|
+
margin-right: 0;
|
176
|
+
}
|
177
|
+
.bodyContent .date {
|
178
|
+
text-align: right;
|
179
|
+
font-size: 12px;
|
180
|
+
}
|
181
|
+
.bodyContent img, img.img_right {
|
182
|
+
float: right;
|
183
|
+
padding: 0px 0px 10px 20px;
|
184
|
+
}
|
185
|
+
img.img_left {
|
186
|
+
float: left;
|
187
|
+
padding: 0px 20px 10px 0px;
|
188
|
+
}
|
189
|
+
img.img_full {
|
190
|
+
float: none;
|
191
|
+
padding: 0px 0px 0px 0px !important;
|
192
|
+
margin: 0px 0px 0px 0px;
|
193
|
+
clear: both;
|
194
|
+
}
|
195
|
+
|
196
|
+
#social {
|
197
|
+
background-color:#F8F6EF;
|
198
|
+
border:0;
|
199
|
+
}
|
200
|
+
#social div, #social div table {
|
201
|
+
text-align:center;
|
202
|
+
background-color: #F8F6EF;
|
203
|
+
color: #707070;
|
204
|
+
font-family: Arial;
|
205
|
+
font-size: 13px;
|
206
|
+
line-height: 125%;
|
207
|
+
}
|
208
|
+
#social img { vertical-align:middle; }
|
209
|
+
#utility {
|
210
|
+
background-color:#F8F6EF;
|
211
|
+
border:0;
|
212
|
+
}
|
213
|
+
#utility div { text-align:center; }
|
214
|
+
#monkeyRewards img { max-width:190px; }
|
215
|
+
</style>
|
216
|
+
</head>
|
217
|
+
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
|
218
|
+
<center>
|
219
|
+
<table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="backgroundTable">
|
220
|
+
<tr>
|
221
|
+
<td align="center" valign="top" style="border-collapse: collapse;">
|
222
|
+
<!-- // Begin Template Preheader \\ -->
|
223
|
+
<table border="0" cellpadding="10" cellspacing="0" width="650" id="templatePreheader">
|
224
|
+
<tr>
|
225
|
+
<td valign="top" class="preheaderContent">
|
226
|
+
<div>
|
227
|
+
<!-- ====================== Start Teaser Section ====================== -->
|
228
|
+
<!-- ====================== End Teaser Section ====================== -->
|
229
|
+
</div>
|
230
|
+
</td>
|
231
|
+
</tr>
|
232
|
+
</table>
|
233
|
+
<!-- // End Template Preheader \\ -->
|
234
|
+
<table border="0" cellpadding="0" cellspacing="0" width="650" id="templateContainer">
|
235
|
+
<tr>
|
236
|
+
<td align="center" valign="top" style="border-collapse: collapse;">
|
237
|
+
<!-- // Begin Template Header \\ -->
|
238
|
+
<table border="0" cellpadding="0" cellspacing="0" width="650" id="templateHeader">
|
239
|
+
<tr>
|
240
|
+
<td class="headerContent">
|
241
|
+
|
242
|
+
<!-- // Begin Module: Standard Header Image \\ -->
|
243
|
+
<img src="<%= site_asset_url('newsletter/template/email_header_eventinfo.jpg') %>" style="max-width:650px;" id="headerImage" />
|
244
|
+
<!-- // End Module: Standard Header Image \\ -->
|
245
|
+
|
246
|
+
</td>
|
247
|
+
</tr>
|
248
|
+
</table>
|
249
|
+
<!-- // End Template Header \\ -->
|
250
|
+
</td>
|
251
|
+
</tr>
|
252
|
+
<tr>
|
253
|
+
<td align="center" valign="top" style="border-collapse: collapse;">
|
254
|
+
<!-- // Begin Template Body \\ -->
|
255
|
+
<table border="0" cellpadding="0" cellspacing="0" width="650" id="templateBody">
|
256
|
+
<tr>
|
257
|
+
<td valign="top" style="border-collapse: collapse;">
|
258
|
+
<table border="0" cellpadding="0" cellspacing="0" width="650">
|
259
|
+
<tr>
|
260
|
+
<td valign="top" class="bodyContent">
|
261
|
+
|
262
|
+
<!-- // Begin Module: Standard Content \\ -->
|
263
|
+
<table border="0" cellpadding="20" cellspacing="0" width="100%">
|
264
|
+
<tr>
|
265
|
+
<td valign="top" style="border-collapse: collapse;">
|
266
|
+
<div>
|
267
|
+
<!-- ====================== Start Main Content ====================== -->
|
268
|
+
<%= yield %>
|
269
|
+
<!-- ====================== End Main Content ====================== -->
|
270
|
+
</div>
|
271
|
+
</td>
|
272
|
+
</tr>
|
273
|
+
</table>
|
274
|
+
<!-- // End Module: Standard Content \\ -->
|
275
|
+
</td>
|
276
|
+
</tr>
|
277
|
+
</table>
|
278
|
+
</td>
|
279
|
+
</tr>
|
280
|
+
</table>
|
281
|
+
<!-- // End Template Body \\ -->
|
282
|
+
</td>
|
283
|
+
</tr>
|
284
|
+
<tr>
|
285
|
+
<td align="center" valign="top" style="border-collapse: collapse;">
|
286
|
+
<!-- // Begin Template Footer \\ -->
|
287
|
+
<table border="0" cellpadding="10" cellspacing="0" width="650" id="templateFooter">
|
288
|
+
<tr>
|
289
|
+
<td valign="top" class="footerContent" style="border-collapse: collapse;">
|
290
|
+
|
291
|
+
<!-- // Begin Module: Standard Footer \\ -->
|
292
|
+
<table border="0" cellpadding="10" cellspacing="0" width="100%">
|
293
|
+
<tr>
|
294
|
+
<td valign="top" width="650">
|
295
|
+
<div>
|
296
|
+
<em>Copyright © <%= Time.now.year %> <%= Account.current.company_name %></em>
|
297
|
+
• <a href="mailto:<%= Account.current.contact_email %>"><%= Account.current.contact_email %></a>
|
298
|
+
• <a href="http://<%= Account.current.domain %>"><%= Account.current.domain %></a>
|
299
|
+
</div>
|
300
|
+
</td>
|
301
|
+
</tr>
|
302
|
+
</table>
|
303
|
+
<!-- // End Module: Standard Footer \\ -->
|
304
|
+
|
305
|
+
</td>
|
306
|
+
</tr>
|
307
|
+
</table>
|
308
|
+
<!-- // End Template Footer \\ -->
|
309
|
+
</td>
|
310
|
+
</tr>
|
311
|
+
</table>
|
312
|
+
<br>
|
313
|
+
</td>
|
314
|
+
</tr>
|
315
|
+
</table>
|
316
|
+
</center>
|
317
|
+
</body>
|
318
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= yield %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%= markdown do %>
|
2
|
+
<%= I18n.t('email.salutation', :value => h(@registration.full_name)) %>
|
3
|
+
|
4
|
+
<%= I18n.t('ems.ticket_registered_following_event') %>:
|
5
|
+
|
6
|
+
**<%=h @registration.workshop.title %>**
|
7
|
+
|
8
|
+
<%= I18n.t('ems.ticket_outstanding_balance') %>:
|
9
|
+
|
10
|
+
**<%= @payment_owed %>**
|
11
|
+
|
12
|
+
<%= I18n.t('ems.ticket_payment_link_leadin' )%>:
|
13
|
+
|
14
|
+
[<%= I18n.t('ems.ticket_payment_link_text') %>](<%= @payment_link %>)
|
15
|
+
|
16
|
+
<%= I18n.t('ems.ticket_receipt_questions', :value => h(@registration.workshop.contact_email)) %>
|
17
|
+
|
18
|
+
<%= I18n.t('email.thank_you') %>
|
19
|
+
|
20
|
+
<small>_<%= I18n.t('ems.ticket_if_already_paid', :value => h(@registration.workshop.contact_email))%>_</small>
|
21
|
+
|
22
|
+
<% end %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= I18n.t('email.salutation', :value => h(@registration.full_name)) %>
|
2
|
+
|
3
|
+
<%= I18n.t('ems.ticket_registered_following_event') %>:
|
4
|
+
|
5
|
+
**<%=h @registration.workshop.title %>**
|
6
|
+
|
7
|
+
<%= I18n.t('ems.ticket_outstanding_balance') %>:
|
8
|
+
|
9
|
+
**<%= @payment_owed %>**
|
10
|
+
|
11
|
+
<%= I18n.t('ems.ticket_payment_link_leadin' )%>:
|
12
|
+
|
13
|
+
[<%= I18n.t('ems.ticket_payment_link_text') %>](<%= @payment_link %>)
|
14
|
+
|
15
|
+
<%= I18n.t('ems.ticket_receipt_questions', :value => h(@registration.workshop.contact_email)) %>
|
16
|
+
|
17
|
+
<%= I18n.t('email.thank_you') %>
|
18
|
+
|
19
|
+
_<%= I18n.t('ems.ticket_if_already_paid', :value => h(@registration.workshop.contact_email))%>_
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<div class="ticket">
|
2
|
+
<table>
|
3
|
+
<tr><td><strong><%= I18n.t('ems.ticket_receipt_event') %>:</strong></td><td><%=h @registration.workshop.title %></td></tr>
|
4
|
+
<tr><td><strong><%= I18n.t('ems.ticket_receipt_attendee') %>:</strong></td><td><%=h @registration.full_name %></td></tr>
|
5
|
+
<tr><td><strong><%= I18n.t('ems.ticket_receipt_ticket_number') %>:</strong></td><td><%=h @registration.receipt_code %></td></tr>
|
6
|
+
</table>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<p><%= I18n.t('email.salutation', :value => h(@registration.full_name)) %></p>
|
10
|
+
|
11
|
+
<%= markdown(@content, :safe => false) %>
|
12
|
+
|
13
|
+
<% if @state != 'rejected' %>
|
14
|
+
<p><%= I18n.t('ems.ticket_receipt_questions', :value => h(@registration.workshop.contact_email)) %>
|
15
|
+
<% unless @registration.workshop.contact_phone.blank? -%>
|
16
|
+
<%= I18n.t('ems.ticket_receipt_questions_telephone', :value => h(@registration.workshop.contact_phone)) %>
|
17
|
+
<% end -%>
|
18
|
+
.</p>
|
19
|
+
|
20
|
+
<p><%= I18n.t('email.thank_you') %></p>
|
21
|
+
<% end %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%= I18n.t('ems.ticket_receipt_event') %>: <%=h @registration.workshop.title %>
|
2
|
+
<%= I18n.t('ems.ticket_receipt_attendee') %>: <%=h @registration.full_name %>
|
3
|
+
<%= I18n.t('ems.ticket_receipt_ticket_number') %>: <%=h @registration.receipt_code %>
|
4
|
+
|
5
|
+
<%= I18n.t('email.salutation', :value => h(@registration.full_name)) %>
|
6
|
+
|
7
|
+
<%= @content %>
|
8
|
+
|
9
|
+
<% if @state != 'rejected' -%>
|
10
|
+
<%= I18n.t('ems.ticket_receipt_questions', :value => h(@registration.workshop.contact_email)) %><% unless @registration.workshop.contact_phone.blank? -%> <%= I18n.t('ems.ticket_receipt_questions_telephone', h(@registration.workshop.contact_phone)) %><% end -%>.
|
11
|
+
|
12
|
+
<%= I18n.t('email.thank_you') %>
|
13
|
+
<% end -%>
|
@@ -0,0 +1 @@
|
|
1
|
+
ActiveMerchant::Billing::Base.mode = :test unless Rails.env.production?
|