spina-admin-conferences 1.3.8 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/spina_admin_conferences_manifest.js +0 -2
  3. data/app/assets/stylesheets/spina/admin/conferences/application.sass +0 -15
  4. data/app/controllers/spina/admin/conferences/application_controller.rb +6 -3
  5. data/app/controllers/spina/admin/conferences/conferences_controller.rb +19 -28
  6. data/app/controllers/spina/admin/conferences/delegates_controller.rb +3 -5
  7. data/app/controllers/spina/admin/conferences/dietary_requirements_controller.rb +2 -2
  8. data/app/controllers/spina/admin/conferences/institutions_controller.rb +2 -2
  9. data/app/controllers/spina/admin/conferences/presentation_attachment_types_controller.rb +2 -2
  10. data/app/controllers/spina/admin/conferences/presentation_types_controller.rb +2 -2
  11. data/app/controllers/spina/admin/conferences/presentations_controller.rb +5 -6
  12. data/app/controllers/spina/admin/conferences/rooms_controller.rb +2 -2
  13. data/app/controllers/spina/admin/conferences/sessions_controller.rb +2 -2
  14. data/app/jobs/spina/admin/conferences/presentation_import_job.rb +2 -3
  15. data/app/models/spina/admin/conferences/conference.rb +4 -7
  16. data/app/models/spina/admin/conferences/event.rb +21 -58
  17. data/app/models/spina/admin/conferences/presentation.rb +15 -33
  18. data/app/models/spina/parts/admin/conferences/date.rb +14 -0
  19. data/app/models/spina/parts/admin/conferences/email_address.rb +20 -0
  20. data/app/models/spina/parts/admin/conferences/time.rb +14 -0
  21. data/app/models/spina/parts/admin/conferences/url.rb +20 -0
  22. data/app/views/spina/admin/conferences/{delegates/_form_conferences.html.haml → application/_conferences.html.haml} +2 -4
  23. data/app/views/spina/admin/conferences/{conferences/_form_delegates.html.haml → application/_delegates.html.haml} +2 -3
  24. data/app/views/spina/admin/conferences/application/_dietary_requirements.html.haml +9 -0
  25. data/app/views/spina/admin/conferences/application/_institutions.html.haml +10 -0
  26. data/app/views/spina/admin/conferences/application/_presentation_attachment_types.html.haml +10 -0
  27. data/app/views/spina/admin/conferences/{conferences/_form_presentation_types.html.haml → application/_presentation_types.html.haml} +2 -3
  28. data/app/views/spina/admin/conferences/{rooms/_form_presentations.html.haml → application/_presentations.html.haml} +2 -3
  29. data/app/views/spina/admin/conferences/{conferences/_form_rooms.html.haml → application/_rooms.html.haml} +2 -3
  30. data/app/views/spina/admin/conferences/{presentation_types/_form_sessions.html.haml → application/_sessions.html.haml} +2 -3
  31. data/app/views/spina/admin/conferences/conferences/_event_fields.html.haml +15 -21
  32. data/app/views/spina/admin/conferences/conferences/_form.html.haml +7 -3
  33. data/app/views/spina/admin/conferences/conferences/_form_conference_details.html.haml +22 -24
  34. data/app/views/spina/admin/conferences/conferences/_form_parts.html.haml +7 -14
  35. data/app/views/spina/admin/conferences/conferences/index.html.haml +2 -13
  36. data/app/views/spina/admin/conferences/delegates/_form.html.haml +4 -3
  37. data/app/views/spina/admin/conferences/delegates/_form_delegate_details.html.haml +47 -32
  38. data/app/views/spina/admin/conferences/delegates/index.html.haml +2 -12
  39. data/app/views/spina/admin/conferences/dietary_requirements/_form.html.haml +3 -3
  40. data/app/views/spina/admin/conferences/dietary_requirements/_form_dietary_requirement_details.html.haml +7 -8
  41. data/app/views/spina/admin/conferences/dietary_requirements/index.html.haml +2 -10
  42. data/app/views/spina/admin/conferences/institutions/_form.html.haml +4 -3
  43. data/app/views/spina/admin/conferences/institutions/_form_institution_details.html.haml +29 -35
  44. data/app/views/spina/admin/conferences/institutions/index.html.haml +2 -11
  45. data/app/views/spina/admin/conferences/presentation_attachment_types/_form.html.haml +2 -2
  46. data/app/views/spina/admin/conferences/presentation_attachment_types/index.html.haml +2 -10
  47. data/app/views/spina/admin/conferences/presentation_types/_form.html.haml +4 -3
  48. data/app/views/spina/admin/conferences/presentation_types/_form_presentation_type_details.html.haml +13 -17
  49. data/app/views/spina/admin/conferences/presentation_types/index.html.haml +2 -12
  50. data/app/views/spina/admin/conferences/presentations/_attachment_fields.html.haml +6 -15
  51. data/app/views/spina/admin/conferences/presentations/_form.html.haml +3 -3
  52. data/app/views/spina/admin/conferences/presentations/_form_presentation_details.html.haml +56 -55
  53. data/app/views/spina/admin/conferences/presentations/index.html.haml +2 -12
  54. data/app/views/spina/admin/conferences/rooms/_form.html.haml +3 -3
  55. data/app/views/spina/admin/conferences/rooms/_form_room_details.html.haml +13 -15
  56. data/app/views/spina/admin/conferences/rooms/index.html.haml +2 -12
  57. data/app/views/spina/admin/conferences/sessions/_form.html.haml +3 -3
  58. data/app/views/spina/admin/conferences/sessions/_form_session_details.html.haml +18 -20
  59. data/app/views/spina/admin/conferences/sessions/_session.html.haml +1 -1
  60. data/app/views/spina/admin/conferences/sessions/index.html.haml +2 -12
  61. data/app/views/spina/admin/hooks/conferences/_primary_navigation.html.haml +4 -4
  62. data/app/views/spina/admin/hooks/conferences/_settings_secondary_navigation.html.haml +2 -2
  63. data/app/views/spina/admin/parts/admin/conferences/dates/_form.html.haml +2 -0
  64. data/app/views/spina/admin/parts/admin/conferences/email_addresses/_form.html.haml +2 -0
  65. data/app/views/spina/admin/parts/admin/conferences/times/_form.html.haml +2 -0
  66. data/app/views/spina/admin/parts/admin/conferences/urls/_form.html.haml +2 -0
  67. data/config/locales/en.yml +26 -29
  68. data/db/migrate/20210315164409_add_json_attributes_to_spina_conferences_presentations.rb +7 -0
  69. data/db/migrate/20210315164410_add_json_attributes_to_spina_conferences_conferences.rb +7 -0
  70. data/db/migrate/20210315164411_convert_partables_to_json.rb +407 -0
  71. data/lib/spina/admin/conferences/engine.rb +7 -0
  72. data/lib/spina/admin/conferences/version.rb +1 -1
  73. data/lib/tasks/spina/admin/conferences_tasks.rake +11 -1
  74. metadata +25 -29
  75. data/app/helpers/spina/admin/conferences/conferences_helper.rb +0 -44
  76. data/app/models/spina/admin/conferences/date_part.rb +0 -15
  77. data/app/models/spina/admin/conferences/email_address_part.rb +0 -21
  78. data/app/models/spina/admin/conferences/part.rb +0 -20
  79. data/app/models/spina/admin/conferences/time_part.rb +0 -53
  80. data/app/models/spina/admin/conferences/url_part.rb +0 -21
  81. data/app/views/spina/admin/conferences/conferences/_form_presentations.html.haml +0 -12
  82. data/app/views/spina/admin/conferences/delegates/_form_presentations.html.haml +0 -12
  83. data/app/views/spina/admin/conferences/dietary_requirements/_form_delegates.html.haml +0 -12
  84. data/app/views/spina/admin/conferences/institutions/_form_delegates.html.haml +0 -12
  85. data/app/views/spina/admin/conferences/institutions/_form_rooms.html.haml +0 -12
  86. data/app/views/spina/admin/conferences/presentation_types/_form_presentations.html.haml +0 -12
  87. data/app/views/spina/admin/conferences/presentations/_form_presenters.html.haml +0 -12
  88. data/app/views/spina/admin/conferences/sessions/_form_presentations.html.haml +0 -12
  89. data/app/views/spina/admin/partables/admin/conferences/date_parts/_form.html.haml +0 -5
  90. data/app/views/spina/admin/partables/admin/conferences/email_address_parts/_form.html.haml +0 -5
  91. data/app/views/spina/admin/partables/admin/conferences/time_parts/_form.html.haml +0 -7
  92. data/app/views/spina/admin/partables/admin/conferences/url_parts/_form.html.haml +0 -5
@@ -15,6 +15,14 @@ module Spina
15
15
  # - {#title}
16
16
  # - {#abstract}
17
17
  class Presentation < ApplicationRecord
18
+ include AttrJson::Record
19
+ include AttrJson::NestedAttributes
20
+ include Spina::Partable
21
+ include Spina::TranslatedContent
22
+
23
+ # @!attribute [rw] start_datetime
24
+ # @return [ActiveSupport::TimeWithZone, nil] the presentation start time
25
+
18
26
  default_scope { includes(:translations) }
19
27
 
20
28
  # @!attribute [rw] title
@@ -65,11 +73,16 @@ module Spina
65
73
  association_foreign_key: :spina_conferences_delegate_id
66
74
  accepts_nested_attributes_for :attachments, allow_destroy: true
67
75
 
68
- validates :title, :date, :start_time, :start_datetime, :abstract, :presenters, presence: true
69
- validates :date, 'spina/admin/conferences/conference_date': true
76
+ validates :title, :start_datetime, :abstract, :presenters, presence: true
77
+ validates :start_datetime, 'spina/admin/conferences/conference_date': true
70
78
  validates_associated :presenters
71
79
  validates_associated :attachments
72
80
 
81
+ # @!attribute [rw] start_time
82
+ # @return [ActiveSupport::TimeWithZone, nil] the start time (alias)
83
+ # @see #start_datetime
84
+ alias_attribute :start_time, :start_datetime
85
+
73
86
  # Imports a presentation from CSV.
74
87
  # @param file [String] the CSV file to be read
75
88
  # @return [void]
@@ -85,37 +98,6 @@ module Spina
85
98
  start_datetime.to_date
86
99
  end
87
100
 
88
- # Sets the date of the presentation.
89
- # @param date [Date] the new date
90
- # @return [void]
91
- def date=(date)
92
- if date.blank? || date.to_date.blank?
93
- self.start_datetime = nil
94
- return
95
- end
96
-
97
- self.start_datetime = date.to_date + (start_datetime.try(:seconds_since_midnight) || 0).seconds
98
- end
99
-
100
- # @return [ActiveSupport::TimeWithZone, nil] the start time of the presentation. Nil if the presentation has no start date and time
101
- def start_time
102
- return if start_datetime.blank?
103
-
104
- start_datetime
105
- end
106
-
107
- # Sets the start time of the presentation.
108
- # @param start_time [ActiveSupport::TimeWithZone] the new start time
109
- # @return [void]
110
- def start_time=(start_time)
111
- if start_time.blank?
112
- self.start_datetime = nil
113
- return
114
- end
115
-
116
- self.start_datetime = Time.parse(start_time, date).to_datetime.in_time_zone
117
- end
118
-
119
101
  # @return [Icalendar::Event] the presentation as an iCal event
120
102
  def to_event # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
121
103
  event = Icalendar::Event.new
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Parts
5
+ module Admin
6
+ module Conferences
7
+ # Date parts, without associated times.
8
+ class Date < Spina::Parts::Base
9
+ attr_json :content, :date
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Parts
5
+ module Admin
6
+ module Conferences
7
+ # Email address parts. The format is validated.
8
+ #
9
+ # = Validators
10
+ # Email address (using {EmailAddressValidator}):: {#content}.
11
+ # @see EmailAddressValidator
12
+ class EmailAddress < Spina::Parts::Base
13
+ attr_json :content, :string
14
+
15
+ validates :content, 'spina/admin/conferences/email_address': true, allow_blank: true
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Parts
5
+ module Admin
6
+ module Conferences
7
+ # Time parts.
8
+ class Time < Spina::Parts::Base
9
+ attr_json :content, :time
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Parts
5
+ module Admin
6
+ module Conferences
7
+ # URL parts. The format is validated.
8
+ #
9
+ # = Validators
10
+ # HTTP(S) URL (using {HttpUrlValidator}):: {#content}.
11
+ # @see HttpUrlValidator
12
+ class Url < Spina::Parts::Base
13
+ attr_json :content, :string
14
+
15
+ validates :content, 'spina/admin/conferences/http_url': true, allow_blank: true
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,14 +1,12 @@
1
- #conferences.tab-content.well
1
+ .well
2
2
  .table-container
3
3
  %table.table
4
4
  %thead
5
5
  %tr
6
6
  %th= Spina::Admin::Conferences::Conference.human_attribute_name :name
7
7
  %th= Spina::Admin::Conferences::Conference.human_attribute_name :year
8
- %th= Spina::Admin::Conferences::Conference.human_attribute_name :institution
9
8
  %th= Spina::Admin::Conferences::Conference.human_attribute_name :start_date
10
9
  %th= Spina::Admin::Conferences::Conference.human_attribute_name :finish_date
11
10
  %th
12
11
 
13
- %tbody
14
- = render @delegate.conferences.any? ? @delegate.conferences : 'empty_list', message: t('spina.admin.conferences.conferences.index.no_conferences')
12
+ %tbody= render conferences.presence || 'empty_list', message: t('.no_conferences')
@@ -1,4 +1,4 @@
1
- #delegates.tab-content.well
1
+ .well
2
2
  .table-container
3
3
  %table.table
4
4
  %thead
@@ -8,5 +8,4 @@
8
8
  %th= Spina::Admin::Conferences::Delegate.human_attribute_name :institution
9
9
  %th
10
10
 
11
- %tbody
12
- = render @conference.delegates.any? ? @conference.delegates : 'empty_list', message: t('spina.admin.conferences.delegates.index.no_delegates')
11
+ %tbody= render delegates.presence || 'empty_list', message: t('.no_delegates')
@@ -0,0 +1,9 @@
1
+ .well
2
+ .table-container
3
+ %table.table
4
+ %thead
5
+ %tr
6
+ %th= Spina::Admin::Conferences::DietaryRequirement.human_attribute_name :name
7
+ %th
8
+
9
+ %tbody= render dietary_requirements.presence || 'empty_list', message: t('.no_dietary_requirements')
@@ -0,0 +1,10 @@
1
+ .well
2
+ .table-container
3
+ %table.table
4
+ %thead
5
+ %tr
6
+ %th= Spina::Admin::Conferences::Institution.human_attribute_name :name
7
+ %th= Spina::Admin::Conferences::Institution.human_attribute_name :city
8
+ %th
9
+
10
+ %tbody= render institutions.presence || 'empty_list', message: t('.no_institutions')
@@ -0,0 +1,10 @@
1
+ .well
2
+ .table-container
3
+ %table.table
4
+ %thead
5
+ %tr
6
+ %th= Spina::Admin::Conferences::DietaryRequirement.human_attribute_name :name
7
+ %th
8
+
9
+ %tbody
10
+ = render presentation_attachment_types.presence || 'empty_list', message: t('.no_presentation_attachment_types')
@@ -1,4 +1,4 @@
1
- #presentation_types.tab-content.well
1
+ .well
2
2
  .table-container
3
3
  %table.table
4
4
  %thead
@@ -8,5 +8,4 @@
8
8
  %th= Spina::Admin::Conferences::PresentationType.human_attribute_name :duration
9
9
  %th
10
10
 
11
- %tbody
12
- = render @conference.presentation_types.any? ? @conference.presentation_types : 'empty_list', message: t('spina.admin.conferences.presentation_types.index.no_presentation_types')
11
+ %tbody= render presentation_types.presence || 'empty_list', message: t('.no_presentation_types')
@@ -1,4 +1,4 @@
1
- #presentations.tab-content.well
1
+ .well
2
2
  .table-container
3
3
  %table.table
4
4
  %thead
@@ -8,5 +8,4 @@
8
8
  %th= Spina::Admin::Conferences::Presentation.human_attribute_name :presenters
9
9
  %th
10
10
 
11
- %tbody
12
- = render @room.presentations.any? ? @room.presentations : 'empty_list', message: t('spina.admin.conferences.presentations.index.no_presentations')
11
+ %tbody= render presentations.presence || 'empty_list', message: t('.no_presentations')
@@ -1,4 +1,4 @@
1
- #rooms.tab-content.well
1
+ .well
2
2
  .table-container
3
3
  %table.table
4
4
  %thead
@@ -8,5 +8,4 @@
8
8
  %th= Spina::Admin::Conferences::Room.human_attribute_name :number
9
9
  %th
10
10
 
11
- %tbody
12
- = render @conference.rooms.any? ? @conference.rooms : 'empty_list', message: t('spina.admin.conferences.rooms.index.no_rooms')
11
+ %tbody= render rooms.presence || 'empty_list', message: t('.no_rooms')
@@ -1,4 +1,4 @@
1
- #sessions.tab-content.well
1
+ .well
2
2
  .table-container
3
3
  %table.table
4
4
  %thead
@@ -8,5 +8,4 @@
8
8
  %th= Spina::Admin::Conferences::Session.human_attribute_name :room
9
9
  %th
10
10
 
11
- %tbody
12
- = render @presentation_type.sessions.any? ? @presentation_type.sessions : 'empty_list', message: t('spina.admin.conferences.sessions.index.no_sessions')
11
+ %tbody= render sessions.presence || 'empty_list', message: t('.no_sessions')
@@ -1,35 +1,29 @@
1
1
  .structure-form-pane{ class: ('active' if (local_assigns[:active] == true) || (f.index == 0)), id: "structure_form_pane_#{f.index}",
2
2
  data: { 'spina--admin--conferences--conference_events_form': { target: 'formPane' } } }
3
3
  .structure-form-part
4
- .horizontal-form-label= Spina::Admin::Conferences::Event.human_attribute_name :name
5
- .horizontal-form-content= f.text_field :name, placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:name), required: true
4
+ .page-form-label= Spina::Admin::Conferences::Event.human_attribute_name :name
5
+ .page-form-control= f.text_field :name, placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:name), required: true
6
6
 
7
7
  .structure-form-part
8
- .horizontal-form-label= Spina::Admin::Conferences::Event.human_attribute_name :date
9
- .horizontal-form-content= f.date_field :date, value: f.object.conference.start_date&.strftime("%Y-%m-%d"),
10
- placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:date),
11
- required: true
8
+ .page-form-label= Spina::Admin::Conferences::Event.human_attribute_name :start_datetime
9
+ .page-form-control= f.datetime_field :start_datetime,
10
+ placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:start_datetime), required: true
12
11
 
13
12
  .structure-form-part
14
- .horizontal-form-label= Spina::Admin::Conferences::Event.human_attribute_name :start_time
15
- .horizontal-form-content= f.time_field :start_time,
16
- value: (f.object.start_time.to_formatted_s(:time) unless f.object.start_time.blank?),
17
- placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:start_time), required: true
13
+ .page-form-label= Spina::Admin::Conferences::Event.human_attribute_name :finish_datetime
14
+ .page-form-control= f.datetime_field :finish_datetime,
15
+ placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:finish_datetime), required: true
18
16
 
19
17
  .structure-form-part
20
- .horizontal-form-label= Spina::Admin::Conferences::Event.human_attribute_name :finish_time
21
- .horizontal-form-content= f.time_field :finish_time,
22
- value: (f.object.finish_time.to_formatted_s(:time) unless f.object.finish_time.blank?),
23
- placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:finish_time), required: true
18
+ .page-form-label= Spina::Admin::Conferences::Event.human_attribute_name :location
19
+ .page-form-control= f.text_field :location, placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:location),
20
+ required: true
24
21
 
25
22
  .structure-form-part
26
- .horizontal-form-label= Spina::Admin::Conferences::Event.human_attribute_name :location
27
- .horizontal-form-content= f.text_field :location, placeholder: Spina::Admin::Conferences::Event.human_attribute_name(:location),
28
- required: true
29
-
30
- .structure-form-part
31
- .horizontal-form-label= Spina::Admin::Conferences::Event.human_attribute_name :description
32
- .horizontal-form-content= render 'spina/admin/shared/rich_text_field', f: f, field: :description
23
+ .page-form-label= Spina::Admin::Conferences::Event.human_attribute_name :description
24
+ .page-form-content
25
+ .page-form-rich-text
26
+ = render 'spina/admin/shared/rich_text_field', f: f, field: :description
33
27
 
34
28
  = f.hidden_field :id
35
29
 
@@ -2,7 +2,7 @@
2
2
  - content_for :notifications do
3
3
  = render 'errors', errors: @conference.errors
4
4
 
5
- = form_for @conference, html: { autocomplete: 'off' } do |f|
5
+ = form_for [:admin_conferences, @conference], html: { autocomplete: 'off' } do |f|
6
6
  %header#header
7
7
  = render partial: 'spina/admin/shared/breadcrumbs'
8
8
 
@@ -19,5 +19,9 @@
19
19
  %li{ class: ('active' if i == 0) }
20
20
  = link_to t(".#{tab}"), "##{tab}"
21
21
 
22
- - @tabs.each do |tab|
23
- = render "form_#{tab}", f: f
22
+ #conference_details.tab-content.active= render 'form_conference_details', f: f
23
+ #parts.tab-content= render 'form_parts', f: f
24
+ #rooms.tab-content= render partial: 'rooms', object: @conference.rooms
25
+ #presentation_types.tab-content= render partial: 'presentation_types', object: @conference.presentation_types
26
+ #delegates.tab-content= render partial: 'delegates', object: @conference.delegates
27
+ #presentations.tab-content= render partial: 'presentations', object: @conference.presentations
@@ -1,29 +1,27 @@
1
- #conference_details.tab-content.active
2
- .well
3
- .horizontal-form{ data: { controller: 'spina--admin--conferences--select-options', 'spina--admin--conferences--select_options': { config_value: '{ "admin_conferences_conference_institution_id": { "value": "id", "text": "name" }, "admin_conferences_conference_room_ids": { "trigger": "admin_conferences_conference_institution_id", "key": "rooms", "value": "id", "text": "name" } }', record_value: @institutions } } }
4
- .horizontal-form-group
5
- .horizontal-form-label= Spina::Admin::Conferences::Conference.human_attribute_name :name
6
- .horizontal-form-content= f.text_field :name, placeholder: Spina::Admin::Conferences::Conference.human_attribute_name(:name), required: true
1
+ .page-form{ data: { controller: 'spina--admin--conferences--select-options', 'spina--admin--conferences--select_options': { config_value: '{ "admin_conferences_conference_institution_id": { "value": "id", "text": "name" }, "admin_conferences_conference_room_ids": { "trigger": "admin_conferences_conference_institution_id", "key": "rooms", "value": "id", "text": "name" } }', record_value: @institutions } } }
2
+ .page-form-group
3
+ .page-form-label= Spina::Admin::Conferences::Conference.human_attribute_name :name
4
+ .page-form-control= f.text_field :name, placeholder: Spina::Admin::Conferences::Conference.human_attribute_name(:name), required: true, class: 'input-large'
7
5
 
8
- .horizontal-form-group
9
- .horizontal-form-label= Spina::Admin::Conferences::Conference.human_attribute_name :start_date
10
- .horizontal-form-content= f.date_field :start_date, value: (@conference.start_date.strftime("%Y-%m-%d") if @conference.start_date.present?), placeholder: Spina::Admin::Conferences::Conference.human_attribute_name(:start_date), required: true
6
+ .page-form-group
7
+ .page-form-label= Spina::Admin::Conferences::Conference.human_attribute_name :start_date
8
+ .page-form-control= f.date_field :start_date, value: (@conference.start_date.strftime("%Y-%m-%d") if @conference.start_date.present?), placeholder: Spina::Admin::Conferences::Conference.human_attribute_name(:start_date), required: true
11
9
 
12
- .horizontal-form-group
13
- .horizontal-form-label= Spina::Admin::Conferences::Conference.human_attribute_name :finish_date
14
- .horizontal-form-content= f.date_field :finish_date, value: (@conference.finish_date.strftime("%Y-%m-%d") if @conference.finish_date.present?), placeholder: Spina::Admin::Conferences::Conference.human_attribute_name(:finish_date), required: true
10
+ .page-form-group
11
+ .page-form-label= Spina::Admin::Conferences::Conference.human_attribute_name :finish_date
12
+ .page-form-control= f.date_field :finish_date, value: (@conference.finish_date.strftime("%Y-%m-%d") if @conference.finish_date.present?), placeholder: Spina::Admin::Conferences::Conference.human_attribute_name(:finish_date), required: true
15
13
 
16
- .horizontal-form-group{ class: dom_class(@conference.events) }
17
- .horizontal-form-content
18
- .structure-form{ data: { controller: 'spina--admin--conferences--conference-events-form', 'spina--admin--conferences--conference_events_form': { active_class: 'active' } } }
19
- .structure-form-menu
20
- %label= Spina::Admin::Conferences::Conference.human_attribute_name :events
21
- %ul= render partial: 'event_row', collection: f.object.events, as: :event
22
- = link_to icon('plus'), @conference.new_record? ? new_admin_conferences_event_path : new_admin_conferences_conference_event_path(@conference, index: @conference.events.size), remote: true, class: %w[button button-link icon], data: { 'spina--admin--conferences--conference_events_form_target': 'addFormLink', disable_with: '&#xF12C;' }
14
+ .page-form-group{ class: dom_class(@conference.events) }
15
+ .page-form-label= Spina::Admin::Conferences::Conference.human_attribute_name :events
16
+ .page-form-control
17
+ .structure-form{ data: { controller: 'spina--admin--conferences--conference-events-form', 'spina--admin--conferences--conference_events_form': { active_class: 'active' } } }
18
+ .structure-form-menu
19
+ %ul= render partial: 'event_row', collection: f.object.events, as: :event
20
+ = link_to icon('plus'), @conference.new_record? ? new_admin_conferences_event_path : new_admin_conferences_conference_event_path(@conference, index: @conference.events.size), remote: true, class: %w[button button-link icon], data: { 'spina--admin--conferences--conference_events_form_target': 'addFormLink', disable_with: '&#xF12C;' }
23
21
 
24
- .structure-form-content{ data: { action: 'conferenceEventFieldsAdded->spina--admin--conferences--conference-events-form#updateURL' } }
25
- = f.fields_for :events do |event_fields|
26
- = render 'event_fields', f: event_fields
22
+ .structure-form-content{ data: { action: 'conferenceEventFieldsAdded->spina--admin--conferences--conference-events-form#updateURL' } }
23
+ = f.fields_for :events do |event_fields|
24
+ = render 'event_fields', f: event_fields
27
25
 
28
- - unless @conference.new_record?
29
- .pull-right= link_to t('spina.permanently_delete'), admin_conferences_conference_path(@conference), method: :delete, data: { confirm: t('.delete_confirmation', name: @conference.name) }, class: %w[button button-link button-danger]
26
+ - unless @conference.new_record?
27
+ .pull-right= link_to t('spina.permanently_delete'), admin_conferences_conference_path(@conference), method: :delete, data: { confirm: t('.delete_confirmation', name: @conference.name) }, class: %w[button button-link button-danger]
@@ -1,15 +1,8 @@
1
- #parts.tab-content
2
- .well
3
- .horizontal-form
4
- = f.fields_for :parts do |ff|
5
- = ff.hidden_field :id
6
- = ff.hidden_field :title
7
- = ff.hidden_field :partable_type
8
- = ff.hidden_field :name
1
+ .page-form
2
+ = f.fields_for :"#{@locale}_content", @parts do |ff|
3
+ = ff.hidden_field :type, value: ff.object.class.name
4
+ = ff.hidden_field :title
5
+ = ff.hidden_field :name
9
6
 
10
- .horizontal-form-group.page-part{ data: { name: ff.object.name } }
11
- - case ff.object.partable_type
12
- - when 'Spina::Structure'
13
- = render 'form_structure', f: ff
14
- - else
15
- = render "spina/admin/partables/#{partable_type_partial_namespace(ff.object.partable_type)}/form", f: ff
7
+ .page-form-group.page-part{ data: { name: ff.object.name } }
8
+ = render "spina/admin/parts/#{parts_partial_namespace(ff.object.class.name)}/form", f: ff
@@ -3,16 +3,5 @@
3
3
  = icon 'plus'
4
4
  = t '.new'
5
5
 
6
- .well
7
- .table-container
8
- %table.table
9
- %thead
10
- %tr
11
- %th= Spina::Admin::Conferences::Conference.human_attribute_name :name
12
- %th= Spina::Admin::Conferences::Conference.human_attribute_name :year
13
- %th= Spina::Admin::Conferences::Conference.human_attribute_name :start_date
14
- %th= Spina::Admin::Conferences::Conference.human_attribute_name :finish_date
15
- %th
16
-
17
- %tbody
18
- = render @conferences.any? ? @conferences : 'empty_list', message: t('.no_conferences')
6
+ = render partial: 'conferences', object: @conferences
7
+ = link_to_next_page @conferences, 'Next'
@@ -2,7 +2,7 @@
2
2
  - content_for :notifications do
3
3
  = render 'errors', errors: @delegate.errors
4
4
 
5
- = form_for @delegate, html: { autocomplete: 'off' } do |f|
5
+ = form_for [:admin_conferences, @delegate], html: { autocomplete: 'off' } do |f|
6
6
  %header#header
7
7
  = render partial: 'spina/admin/shared/breadcrumbs'
8
8
 
@@ -19,5 +19,6 @@
19
19
  %li{ class: ('active' if i == 0) }
20
20
  = link_to t(".#{tab}"), "##{tab}"
21
21
 
22
- - @tabs.each do |tab|
23
- = render "form_#{tab}", f: f
22
+ #delegate_details.tab-content.active= render 'form_delegate_details', f: f
23
+ #conferences.tab-content= render partial: 'conferences', object: @delegate.conferences
24
+ #presentations.tab-content= render partial: 'presentations', object: @delegate.presentations