spina-admin-conferences 1.3.3 → 1.3.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -10
- data/app/assets/config/spina_admin_conferences_manifest.js +2 -3
- data/app/assets/javascripts/{spina/admin/conferences/controllers/conference_events_form_controller.es6 → controllers/spina/admin/conferences/conference_events_form_controller.js} +3 -4
- data/app/assets/javascripts/{spina/admin/conferences/controllers/presentation_attachments_form_controller.es6 → controllers/spina/admin/conferences/presentation_attachments_form_controller.js} +3 -4
- data/app/assets/javascripts/{spina/admin/conferences/controllers/select_options_controller.es6 → controllers/spina/admin/conferences/select_options_controller.js} +8 -9
- data/app/assets/javascripts/importmap.json.erb +6 -0
- data/app/assets/javascripts/spina/admin/conferences/application.js +4 -0
- data/app/assets/stylesheets/spina/admin/conferences/application.sass +4 -0
- data/app/controllers/spina/admin/conferences/application_controller.rb +1 -1
- data/app/controllers/spina/admin/conferences/conferences_controller.rb +3 -3
- data/app/controllers/spina/admin/conferences/delegates_controller.rb +3 -3
- data/app/controllers/spina/admin/conferences/dietary_requirements_controller.rb +3 -3
- data/app/controllers/spina/admin/conferences/institutions_controller.rb +3 -3
- data/app/controllers/spina/admin/conferences/presentation_attachment_types_controller.rb +3 -3
- data/app/controllers/spina/admin/conferences/presentation_types_controller.rb +3 -3
- data/app/controllers/spina/admin/conferences/presentations_controller.rb +3 -3
- data/app/controllers/spina/admin/conferences/rooms_controller.rb +3 -3
- data/app/controllers/spina/admin/conferences/sessions_controller.rb +3 -3
- data/app/views/layouts/spina/admin/conferences/application.html.haml +6 -0
- data/app/views/layouts/spina/admin/conferences/conferences.html.haml +2 -4
- data/app/views/layouts/spina/admin/conferences/delegates.html.haml +2 -4
- data/app/views/layouts/spina/admin/conferences/dietary_requirements.html.haml +2 -4
- data/app/views/layouts/spina/admin/conferences/institutions.html.haml +2 -4
- data/app/views/layouts/spina/admin/conferences/presentation_attachment_types.html.haml +2 -4
- data/app/views/layouts/spina/admin/conferences/presentations.html.haml +2 -4
- data/app/views/spina/admin/conferences/application/_errors.turbo_stream.haml +1 -0
- data/app/views/spina/admin/conferences/conferences/_event_fields.html.haml +3 -4
- data/app/views/spina/admin/conferences/conferences/_event_row.html.haml +2 -2
- data/app/views/spina/admin/conferences/conferences/_form.html.haml +1 -1
- data/app/views/spina/admin/conferences/conferences/_form_conference_details.html.haml +7 -7
- data/app/views/spina/admin/conferences/delegates/_form.html.haml +1 -1
- data/app/views/spina/admin/conferences/delegates/_form_delegate_details.html.haml +1 -1
- data/app/views/spina/admin/conferences/dietary_requirements/_form.html.haml +1 -1
- data/app/views/spina/admin/conferences/dietary_requirements/_form_dietary_requirement_details.html.haml +1 -1
- data/app/views/spina/admin/conferences/events/new.js.erb +3 -9
- data/app/views/spina/admin/conferences/institutions/_form.html.haml +1 -1
- data/app/views/spina/admin/conferences/institutions/_form_institution_details.html.haml +1 -1
- data/app/views/spina/admin/conferences/presentation_attachment_types/_form.html.haml +2 -2
- data/app/views/spina/admin/conferences/presentation_attachments/new.js.erb +3 -3
- data/app/views/spina/admin/conferences/presentation_types/_form.html.haml +1 -1
- data/app/views/spina/admin/conferences/presentation_types/_form_presentation_type_details.html.haml +2 -2
- data/app/views/spina/admin/conferences/presentations/_attachment_fields.html.haml +4 -4
- data/app/views/spina/admin/conferences/presentations/_attachment_row.html.haml +2 -2
- data/app/views/spina/admin/conferences/presentations/_form.html.haml +1 -1
- data/app/views/spina/admin/conferences/presentations/_form_presentation_details.html.haml +9 -9
- data/app/views/spina/admin/conferences/rooms/_form.html.haml +1 -1
- data/app/views/spina/admin/conferences/rooms/_form_room_details.html.haml +1 -1
- data/app/views/spina/admin/conferences/sessions/_form.html.haml +1 -1
- data/app/views/spina/admin/conferences/sessions/_form_session_details.html.haml +7 -7
- data/app/views/spina/admin/hooks/conferences/_head.html.haml +5 -0
- data/app/views/spina/admin/hooks/conferences/_primary_navigation.html.haml +15 -14
- data/app/views/spina/admin/hooks/conferences/_settings_secondary_navigation.html.haml +4 -2
- data/app/views/spina/admin/partables/admin/conferences/date_parts/_form.html.haml +1 -1
- data/app/views/spina/admin/partables/admin/conferences/time_parts/_form.html.haml +1 -1
- data/config/initializers/assets.rb +1 -1
- data/db/migrate/20200911161739_move_conference_parts.rb +10 -8
- data/db/migrate/20201007125625_add_timestamps_to_spina_conferences_parts.rb +4 -3
- data/lib/spina/admin/conferences.rb +2 -0
- data/lib/spina/admin/conferences/migration/renaming.rb +4 -6
- data/lib/spina/admin/conferences/version.rb +1 -1
- metadata +67 -39
- data/app/assets/javascripts/spina/admin/conferences/application.es6 +0 -20
- data/app/views/spina/admin/conferences/application/_errors.js.erb +0 -2
- data/config/initializers/types.rb +0 -13
- data/lib/spina/admin/conferences/types/interval_type.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 237e63ca008d5ac58754c006687f7378872f151e6bd817b81cf44d1b9a0bf677
|
4
|
+
data.tar.gz: 312b6209900f12ba566c0b9724796184c3ba8f416deebd69c2e120ee41b26595
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a205c0ed63e61e697f4d1f18b933a1a13c636526924898827957bbdb0f24e39e182ba2d5d36fd902d0f4e1d427854d36c72d49a74bd98f520140fc7ed31828f
|
7
|
+
data.tar.gz: '008dedf4887056d635cbb7e99f89e3512e3c6142f4bdae8be522c7b215ef7ba3943853a85400f593a716d64d63104978a5cc3447bb8110ff38c65e43aa6282df'
|
data/README.md
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
# Conferences
|
2
2
|
|
3
|
-
|
4
|
-
![
|
5
|
-
[![
|
6
|
-
[![
|
7
|
-
[![
|
8
|
-
[![
|
9
|
-
[![
|
10
|
-
[![Visual testing](https://percy.io/static/images/percy-badge.svg)](https://percy.io/Ulab/spina-conferences)
|
3
|
+
![Rails tests](https://github.com/jmalcic/spina-admin-conferences/workflows/Rails%20tests/badge.svg?branch=master&event=push)
|
4
|
+
[![Coverage Status](https://coveralls.io/repos/github/jmalcic/spina-admin-conferences/badge.svg?branch=master)](https://coveralls.io/github/jmalcic/spina-admin-conferences?branch=master)
|
5
|
+
[![Total alerts](https://img.shields.io/lgtm/alerts/g/jmalcic/spina-admin-conferences.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/jmalcic/spina-admin-conferences/alerts/)
|
6
|
+
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/jmalcic/spina-admin-conferences.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/jmalcic/spina-admin-conferences/context:javascript)
|
7
|
+
[![Code quality](https://www.codefactor.io/repository/github/jmalcic/spina-admin-conferences/badge)](https://www.codefactor.io/repository/github/jmalcic/spina-admin-conferences)
|
8
|
+
[![Inline docs](http://inch-ci.org/github/jmalcic/spina-admin-conferences.svg?branch=master)](http://inch-ci.org/github/jmalcic/spina-admin-conferences)
|
9
|
+
[![Visual testing](https://percy.io/static/images/percy-badge.svg)](https://percy.io/Ulab/spina-admin-conferences)
|
11
10
|
|
12
11
|
*Conferences* is a plugin for [Spina](https://www.spinacms.com 'Spina website') (a [Rails](http://rubyonrails.org 'Ruby on Rails website') content management system) to add conference management functionality.
|
13
12
|
With the plugin, you'll be able to manage details of conferences, delegates, and presentations.
|
@@ -73,14 +72,14 @@ Then follow the instructions below.
|
|
73
72
|
Add this line to your application's Gemfile:
|
74
73
|
|
75
74
|
```ruby
|
76
|
-
gem 'spina-
|
75
|
+
gem 'spina-admin-conferences'
|
77
76
|
```
|
78
77
|
|
79
78
|
You'll then need to install and run the migrations from Conferences (the Spina install generator does this for Spina).
|
80
79
|
|
81
80
|
First install the migrations and then migrate the database:
|
82
81
|
```bash
|
83
|
-
$ rake
|
82
|
+
$ rake spina_admin_conferences:install:migrations
|
84
83
|
$ rake db:migrate
|
85
84
|
```
|
86
85
|
|
@@ -1,14 +1,13 @@
|
|
1
|
-
/* global Stimulus */
|
2
|
-
|
3
1
|
/**
|
4
|
-
* @external
|
2
|
+
* @external Controller
|
5
3
|
* @see {@link https://stimulusjs.org}
|
6
4
|
*/
|
5
|
+
import { Controller } from 'stimulus'
|
7
6
|
|
8
7
|
/**
|
9
8
|
* @classdesc Controller that manages conference event inputs.
|
10
9
|
*/
|
11
|
-
class
|
10
|
+
export default class extends Controller {
|
12
11
|
// noinspection JSUnusedGlobalSymbols
|
13
12
|
static get targets() {
|
14
13
|
return [
|
@@ -1,14 +1,13 @@
|
|
1
|
-
/* global Stimulus */
|
2
|
-
|
3
1
|
/**
|
4
|
-
* @external
|
2
|
+
* @external Controller
|
5
3
|
* @see {@link https://stimulusjs.org}
|
6
4
|
*/
|
5
|
+
import { Controller } from 'stimulus'
|
7
6
|
|
8
7
|
/**
|
9
8
|
* @classdesc Controller that manages presentation attachment inputs.
|
10
9
|
*/
|
11
|
-
class
|
10
|
+
export default class extends Controller {
|
12
11
|
// noinspection JSUnusedGlobalSymbols
|
13
12
|
static get targets() {
|
14
13
|
return [
|
@@ -1,14 +1,13 @@
|
|
1
|
-
/* global Stimulus */
|
2
|
-
|
3
1
|
/**
|
4
|
-
* @external
|
2
|
+
* @external Controller
|
5
3
|
* @see {@link https://stimulusjs.org}
|
6
4
|
*/
|
5
|
+
import { Controller } from 'stimulus'
|
7
6
|
|
8
7
|
/**
|
9
8
|
* @classdesc Controller that links related select elements.
|
10
9
|
*/
|
11
|
-
class SelectOptionsController extends
|
10
|
+
export default class SelectOptionsController extends Controller {
|
12
11
|
// noinspection JSUnusedGlobalSymbols
|
13
12
|
static get targets() {
|
14
13
|
return [
|
@@ -24,7 +23,7 @@ class SelectOptionsController extends Stimulus.Controller { // eslint-disable-li
|
|
24
23
|
return {
|
25
24
|
/**
|
26
25
|
* @private
|
27
|
-
* @property {Array}
|
26
|
+
* @property {Array} recordValue - The record values.
|
28
27
|
*/
|
29
28
|
record: Array,
|
30
29
|
}
|
@@ -44,7 +43,7 @@ class SelectOptionsController extends Stimulus.Controller { // eslint-disable-li
|
|
44
43
|
* Hook to update select targets when record values change.
|
45
44
|
* @private
|
46
45
|
*/
|
47
|
-
|
46
|
+
recordValueChanged() {
|
48
47
|
this.selectTargets.forEach(target => {
|
49
48
|
if (!(target instanceof HTMLSelectElement)) return
|
50
49
|
this.updateOptions(target)
|
@@ -59,8 +58,8 @@ class SelectOptionsController extends Stimulus.Controller { // eslint-disable-li
|
|
59
58
|
setVisibility(event) {
|
60
59
|
const target = event.currentTarget
|
61
60
|
if (!(target instanceof HTMLSelectElement)) return
|
62
|
-
const recordFilter = new SelectOptionsController.RecordFilter(this.
|
63
|
-
this.
|
61
|
+
const recordFilter = new SelectOptionsController.RecordFilter(this.recordValue, target)
|
62
|
+
this.recordValue = recordFilter.setVisibility()
|
64
63
|
}
|
65
64
|
|
66
65
|
/**
|
@@ -69,7 +68,7 @@ class SelectOptionsController extends Stimulus.Controller { // eslint-disable-li
|
|
69
68
|
* @param {HTMLSelectElement} target - The select element to update the options of.
|
70
69
|
*/
|
71
70
|
updateOptions(target) {
|
72
|
-
let newRecords = this.
|
71
|
+
let newRecords = this.recordValue
|
73
72
|
if ('keyPath' in target.dataset) {
|
74
73
|
const keyPath = new SelectOptionsController.KeyPath(target.dataset.keyPath)
|
75
74
|
newRecords = keyPath.visibleObjectsAtKeyPath(newRecords)
|
@@ -58,7 +58,7 @@ module Spina
|
|
58
58
|
add_breadcrumb t('.new')
|
59
59
|
render :new
|
60
60
|
end
|
61
|
-
format.
|
61
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @conference.errors } }
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -74,7 +74,7 @@ module Spina
|
|
74
74
|
add_breadcrumb @conference.name
|
75
75
|
render :edit
|
76
76
|
end
|
77
|
-
format.
|
77
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @conference.errors } }
|
78
78
|
end
|
79
79
|
end
|
80
80
|
end
|
@@ -90,7 +90,7 @@ module Spina
|
|
90
90
|
add_breadcrumb @conference.name
|
91
91
|
render :edit
|
92
92
|
end
|
93
|
-
format.
|
93
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @conference.errors } }
|
94
94
|
end
|
95
95
|
end
|
96
96
|
end
|
@@ -44,7 +44,7 @@ module Spina
|
|
44
44
|
add_breadcrumb t('.new')
|
45
45
|
render :new
|
46
46
|
end
|
47
|
-
format.
|
47
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @delegate.errors } }
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -60,7 +60,7 @@ module Spina
|
|
60
60
|
add_breadcrumb @delegate.full_name
|
61
61
|
render :edit
|
62
62
|
end
|
63
|
-
format.
|
63
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @delegate.errors } }
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
@@ -76,7 +76,7 @@ module Spina
|
|
76
76
|
add_breadcrumb @delegate.full_name
|
77
77
|
render :edit
|
78
78
|
end
|
79
|
-
format.
|
79
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @delegate.errors } }
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
@@ -44,7 +44,7 @@ module Spina
|
|
44
44
|
add_breadcrumb t('.new')
|
45
45
|
render :new
|
46
46
|
end
|
47
|
-
format.
|
47
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @dietary_requirement.errors } }
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -60,7 +60,7 @@ module Spina
|
|
60
60
|
add_breadcrumb @dietary_requirement.name
|
61
61
|
render :edit
|
62
62
|
end
|
63
|
-
format.
|
63
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @dietary_requirement.errors } }
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
@@ -76,7 +76,7 @@ module Spina
|
|
76
76
|
add_breadcrumb @dietary_requirement.name
|
77
77
|
render :edit
|
78
78
|
end
|
79
|
-
format.
|
79
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @dietary_requirement.errors } }
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
@@ -44,7 +44,7 @@ module Spina
|
|
44
44
|
add_breadcrumb t('.new')
|
45
45
|
render :new
|
46
46
|
end
|
47
|
-
format.
|
47
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @institution.errors } }
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -60,7 +60,7 @@ module Spina
|
|
60
60
|
add_breadcrumb @institution.name
|
61
61
|
render :edit
|
62
62
|
end
|
63
|
-
format.
|
63
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @institution.errors } }
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
@@ -76,7 +76,7 @@ module Spina
|
|
76
76
|
add_breadcrumb @institution.name
|
77
77
|
render :edit
|
78
78
|
end
|
79
|
-
format.
|
79
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @institution.errors } }
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
@@ -43,7 +43,7 @@ module Spina
|
|
43
43
|
add_breadcrumb t('.new')
|
44
44
|
render :new
|
45
45
|
end
|
46
|
-
format.
|
46
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation_attachment_type.errors } }
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
@@ -59,7 +59,7 @@ module Spina
|
|
59
59
|
add_breadcrumb @presentation_attachment_type.name
|
60
60
|
render :edit
|
61
61
|
end
|
62
|
-
format.
|
62
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation_attachment_type.errors } }
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
@@ -75,7 +75,7 @@ module Spina
|
|
75
75
|
add_breadcrumb @presentation_attachment_type.name
|
76
76
|
render :edit
|
77
77
|
end
|
78
|
-
format.
|
78
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation_attachment_type.errors } }
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|
@@ -46,7 +46,7 @@ module Spina
|
|
46
46
|
add_breadcrumb t('.new')
|
47
47
|
render :new
|
48
48
|
end
|
49
|
-
format.
|
49
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation_type.errors } }
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -62,7 +62,7 @@ module Spina
|
|
62
62
|
add_breadcrumb @presentation_type.name
|
63
63
|
render :edit
|
64
64
|
end
|
65
|
-
format.
|
65
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation_type.errors } }
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
@@ -78,7 +78,7 @@ module Spina
|
|
78
78
|
add_breadcrumb @presentation_type.name
|
79
79
|
render :edit
|
80
80
|
end
|
81
|
-
format.
|
81
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation_type.errors } }
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
@@ -45,7 +45,7 @@ module Spina
|
|
45
45
|
add_breadcrumb t('.new')
|
46
46
|
render :new
|
47
47
|
end
|
48
|
-
format.
|
48
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation.errors } }
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
@@ -61,7 +61,7 @@ module Spina
|
|
61
61
|
add_breadcrumb @presentation.title
|
62
62
|
render :edit
|
63
63
|
end
|
64
|
-
format.
|
64
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation.errors } }
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
@@ -77,7 +77,7 @@ module Spina
|
|
77
77
|
add_breadcrumb @presentation.title
|
78
78
|
render :edit
|
79
79
|
end
|
80
|
-
format.
|
80
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation.errors } }
|
81
81
|
end
|
82
82
|
end
|
83
83
|
end
|
@@ -46,7 +46,7 @@ module Spina
|
|
46
46
|
add_breadcrumb t('.new')
|
47
47
|
render :new
|
48
48
|
end
|
49
|
-
format.
|
49
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @room.errors } }
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -62,7 +62,7 @@ module Spina
|
|
62
62
|
add_breadcrumb @room.name
|
63
63
|
render :edit
|
64
64
|
end
|
65
|
-
format.
|
65
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @room.errors } }
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
@@ -78,7 +78,7 @@ module Spina
|
|
78
78
|
add_breadcrumb @room.name
|
79
79
|
render :edit
|
80
80
|
end
|
81
|
-
format.
|
81
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @room.errors } }
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
@@ -47,7 +47,7 @@ module Spina
|
|
47
47
|
add_breadcrumb t('.new')
|
48
48
|
render :new
|
49
49
|
end
|
50
|
-
format.
|
50
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @session.errors } }
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -63,7 +63,7 @@ module Spina
|
|
63
63
|
add_breadcrumb @session.name
|
64
64
|
render :edit
|
65
65
|
end
|
66
|
-
format.
|
66
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @session.errors } }
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
@@ -79,7 +79,7 @@ module Spina
|
|
79
79
|
add_breadcrumb @session.name
|
80
80
|
render :edit
|
81
81
|
end
|
82
|
-
format.
|
82
|
+
format.turbo_stream { render partial: 'errors', locals: { errors: @session.errors } }
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
- content_for :
|
1
|
+
- content_for :admin_header do
|
2
2
|
%header#header
|
3
3
|
#header_actions
|
4
4
|
= yield(:header_actions)
|
@@ -14,6 +14,4 @@
|
|
14
14
|
%li{class: ('active' if controller_name == 'sessions')}
|
15
15
|
= link_to Spina::Admin::Conferences::Session.model_name.human(count: 0), admin_conferences_sessions_path
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
= render template: 'layouts/spina/admin/admin'
|
17
|
+
= render template: 'layouts/spina/admin/conferences/application'
|