tramway-event 0.5 → 0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/tramway/event/events_controller.rb +2 -1
- data/app/controllers/tramway/event/participants_controller.rb +13 -0
- data/app/forms/tramway/event/participant_form_field_form.rb +4 -2
- data/app/helpers/tramway/event/application_helper.rb +10 -0
- data/app/models/tramway/event/participant_form_field.rb +3 -1
- data/app/views/tramway/event/events/show.html.haml +26 -0
- data/app/views/tramway/event/participants/_form.html.haml +19 -5
- data/config/locales/ru.yml +7 -0
- data/lib/tramway/event/generators/install_generator.rb +2 -0
- data/lib/tramway/event/generators/templates/add_options_to_tramway_event_participant_form_fields.rb +5 -0
- data/lib/tramway/event/generators/templates/add_position_to_tramway_event_participant_form_fields.rb +5 -0
- data/lib/tramway/event/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b2fdb2461f25bcc59c92c8775b5b3968ca209196b6995136f86403c058d1e00
|
4
|
+
data.tar.gz: 78dabdb189958cc8e29f4b98462558a7aea93a0d4abc8cd3977d8ad1b4eb9ab0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59cb50910c2b61ccbd5f8cd7a1ba49097b690ec00a89f0c9812269f62fc6425aaa70569ee37c6db397fd4edc36ccb02de254e388218f35bcb47bed8ca6ec415a
|
7
|
+
data.tar.gz: b099a0ea2122f482e734e51b42426d7d3204029798d69246fb843b50328c82d8e3522a3d772a50ce4be03e2c359b5d1ae6fbf6c09041cb7f3c092c7766f7dc14
|
@@ -3,7 +3,8 @@ class Tramway::Event::EventsController < Tramway::Event::ApplicationController
|
|
3
3
|
|
4
4
|
def show
|
5
5
|
@event = ::Tramway::Event::EventDecorator.decorate ::Tramway::Event::Event.find params[:id]
|
6
|
-
|
6
|
+
class_name = "ParticipantExtendedFormEventId#{@event.id}"
|
7
|
+
form_class = ::Tramway::Core::ExtendableForm.new(class_name, *@event.participant_form_fields.inputs_list.map(&:title).map(&:to_sym))
|
7
8
|
@participant_form = form_class.new ::Tramway::Event::Participant.new
|
8
9
|
end
|
9
10
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Tramway::Event::ParticipantsController < Tramway::Event::ApplicationController
|
2
|
+
def create
|
3
|
+
event = ::Tramway::Event::Event.find params[:tramway_event_participant][:event_id]
|
4
|
+
class_name = "ParticipantExtendedFormEventId#{event.id}"
|
5
|
+
form_class = ::Tramway::Core::ExtendableForm.new(class_name, *(event.participant_form_fields.inputs_list.map(&:title)).map(&:to_sym))
|
6
|
+
@participant_form = form_class.new ::Tramway::Event::Participant.new event_id: event.id
|
7
|
+
if @participant_form.submit params[:tramway_event_participant].except :event_id
|
8
|
+
redirect_to event_path event, flash: :success
|
9
|
+
else
|
10
|
+
redirect_to event_path event, flash: :error
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -1,12 +1,14 @@
|
|
1
1
|
class Tramway::Event::ParticipantFormFieldForm < ::Tramway::Core::ApplicationForm
|
2
|
-
properties :title, :description, :field_type, :event
|
2
|
+
properties :title, :description, :field_type, :event, :options, :position
|
3
3
|
|
4
4
|
def initialize(object)
|
5
5
|
form_object = super object
|
6
6
|
form_properties event: :association,
|
7
7
|
title: :string,
|
8
8
|
description: :string,
|
9
|
-
field_type: :default
|
9
|
+
field_type: :default,
|
10
|
+
options: :text,
|
11
|
+
position: :numeric
|
10
12
|
form_object
|
11
13
|
end
|
12
14
|
|
@@ -1,6 +1,16 @@
|
|
1
|
+
require "tramway/collection"
|
2
|
+
|
1
3
|
module Tramway
|
2
4
|
module Event
|
3
5
|
module ApplicationHelper
|
6
|
+
def collection_list_by(name:)
|
7
|
+
require name # needed to load class name with collection
|
8
|
+
unless ::Tramway::Collection.descendants.map(&:to_s).include?(name.camelize)
|
9
|
+
raise "There no such collection named #{name.camelize}. Please create class with self method `list` and extended of `Tramway::Collection`"
|
10
|
+
end
|
11
|
+
|
12
|
+
name.camelize.constantize.list
|
13
|
+
end
|
4
14
|
end
|
5
15
|
end
|
6
16
|
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class Tramway::Event::ParticipantFormField < ::Tramway::Event::ApplicationRecord
|
2
2
|
belongs_to :event, class_name: 'Tramway::Event::Event'
|
3
3
|
|
4
|
-
enumerize :field_type, in: [ :text, :numeric ], default: :text
|
4
|
+
enumerize :field_type, in: [ :text, :string, :numeric, :date_picker, :select ], default: :text
|
5
|
+
|
6
|
+
scope :inputs_list, -> { active.order(position: :asc) }
|
5
7
|
end
|
@@ -2,6 +2,32 @@
|
|
2
2
|
= @event.title
|
3
3
|
- content_for :body_content do
|
4
4
|
= stylesheet_link_tag 'tramway/event/events/show'
|
5
|
+
|
6
|
+
|
7
|
+
- if params[:flash] == 'success'
|
8
|
+
.alert.alert-success{role: "alert"}
|
9
|
+
%button.close{"aria-label" => "Close", "data-dismiss" => "alert", type: "button"}
|
10
|
+
%span{"aria-hidden" => "true"} ×
|
11
|
+
%h4.alert-heading Заявка успешно отправлена!
|
12
|
+
%p Орг.комитет мероприятия свяжется с вами по одному из указанных вами каналов связи: телефон, email, страница ВКонтакте
|
13
|
+
%hr/
|
14
|
+
%p.mb-0
|
15
|
+
По всем вопросам обращайтесь по телефону
|
16
|
+
= tel_tag '+79603727276'
|
17
|
+
или пишите на email
|
18
|
+
= mail_to 'kalashnikov@ulmic.ru'
|
19
|
+
- if params[:flash] == 'error'
|
20
|
+
.alert.alert-danger{role: "alert"}
|
21
|
+
%button.close{"aria-label" => "Close", "data-dismiss" => "alert", type: "button"}
|
22
|
+
%span{"aria-hidden" => "true"} ×
|
23
|
+
%h4.alert-heading Ошибка при отправлении заявки!
|
24
|
+
%p Подробности ошибки описаны ниже в форме приёма заявок
|
25
|
+
%hr/
|
26
|
+
%p.mb-0
|
27
|
+
Если ошибка повторяется или не отображается, обращайтесь по телефону
|
28
|
+
= tel_tag '+79603727276'
|
29
|
+
или пишите на email
|
30
|
+
= mail_to 'kalashnikov@ulmic.ru'
|
5
31
|
= render 'tramway/landing/blocks/templates/full_page', block: @event, buttons: []
|
6
32
|
.container
|
7
33
|
= render 'tramway/event/participants/form'
|
@@ -1,5 +1,19 @@
|
|
1
|
-
.
|
2
|
-
.
|
3
|
-
|
4
|
-
|
5
|
-
=
|
1
|
+
- if @event.participant_form_fields.any?
|
2
|
+
.row
|
3
|
+
.col-lg-12
|
4
|
+
%h1
|
5
|
+
= t('.registration')
|
6
|
+
- class_name = 'tramway_event_participant'
|
7
|
+
= simple_form_for @participant_form, url: { controller: 'tramway/event/participants', action: :create }, html: { class: class_name, id: class_name } do |f|
|
8
|
+
= f.input :event_id, as: :hidden, input_html: { value: @event.id, class: class_name, id: "#{class_name}_event_id", name: "#{class_name}[event_id]" }
|
9
|
+
- @event.participant_form_fields.inputs_list.each do |field|
|
10
|
+
- case field.field_type
|
11
|
+
- when 'text', 'string', 'numeric', 'date_picker'
|
12
|
+
= f.input field.title.to_sym, as: field.field_type, input_html: { class: class_name, id: "#{class_name}_#{field.title}", name: "#{class_name}[#{field.title}]" }
|
13
|
+
- when 'select'
|
14
|
+
- parsed_json = JSON.parse(field.options) unless field.options == ''
|
15
|
+
- if parsed_json && parsed_json['collection']['name']
|
16
|
+
= f.input field.title.to_sym, as: :select, collection: collection_list_by(name: parsed_json['collection']['name']), input_html: { class: class_name, id: "#{class_name}_#{field.title}", name: "#{class_name}[#{field.title}]" }
|
17
|
+
- else
|
18
|
+
= f.input field.title.to_sym, as: :select, input_html: { class: class_name, id: "#{class_name}_#{field.title}", name: "#{class_name}[#{field.title}]" }
|
19
|
+
= f.button :submit, t('.submit_form')
|
@@ -19,6 +19,8 @@ module Tramway::Event::Generators
|
|
19
19
|
migration_template 'add_photo_to_tramway_event_events.rb', 'db/migrate/add_photo_to_tramway_event_events.rb'
|
20
20
|
migration_template 'create_tramway_event_participant_form_fields.rb', 'db/migrate/create_tramway_event_participant_form_fields.rb'
|
21
21
|
migration_template 'create_tramway_event_participants.rb', 'db/migrate/create_tramway_event_participants.rb'
|
22
|
+
migration_template 'add_options_to_tramway_event_participant_form_fields.rb', 'db/migrate/add_options_to_tramway_event_participant_form_fields.rb'
|
23
|
+
migration_template 'add_position_to_tramway_event_participant_form_fields.rb', 'db/migrate/add_position_to_tramway_event_participant_form_fields.rb'
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tramway-event
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.6'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Rails engine for events
|
14
14
|
email:
|
@@ -26,6 +26,7 @@ files:
|
|
26
26
|
- app/assets/stylesheets/tramway/event/events/show.css.sass
|
27
27
|
- app/controllers/tramway/event/application_controller.rb
|
28
28
|
- app/controllers/tramway/event/events_controller.rb
|
29
|
+
- app/controllers/tramway/event/participants_controller.rb
|
29
30
|
- app/decorators/tramway/event/event_decorator.rb
|
30
31
|
- app/decorators/tramway/event/event_link_decorator.rb
|
31
32
|
- app/decorators/tramway/event/participant_decorator.rb
|
@@ -45,12 +46,15 @@ files:
|
|
45
46
|
- config/initializers/assets.rb
|
46
47
|
- config/initializers/tramway.rb
|
47
48
|
- config/locales/models.yml
|
49
|
+
- config/locales/ru.yml
|
48
50
|
- config/routes.rb
|
49
51
|
- lib/tasks/tramway/event_tasks.rake
|
50
52
|
- lib/tramway/event.rb
|
51
53
|
- lib/tramway/event/engine.rb
|
52
54
|
- lib/tramway/event/generators/install_generator.rb
|
55
|
+
- lib/tramway/event/generators/templates/add_options_to_tramway_event_participant_form_fields.rb
|
53
56
|
- lib/tramway/event/generators/templates/add_photo_to_tramway_event_events.rb
|
57
|
+
- lib/tramway/event/generators/templates/add_position_to_tramway_event_participant_form_fields.rb
|
54
58
|
- lib/tramway/event/generators/templates/create_tramway_event_events.rb
|
55
59
|
- lib/tramway/event/generators/templates/create_tramway_event_participant_form_fields.rb
|
56
60
|
- lib/tramway/event/generators/templates/create_tramway_event_participants.rb
|