decidim-conferences 0.30.2 → 0.31.0.rc1

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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_settings_form/show.erb +3 -1
  3. data/app/commands/decidim/conferences/admin/create_conference.rb +1 -1
  4. data/app/commands/decidim/conferences/admin/{copy_conference.rb → duplicate_conference.rb} +15 -16
  5. data/app/commands/decidim/conferences/admin/update_conference.rb +2 -2
  6. data/app/controllers/decidim/conferences/admin/conference_duplicates_controller.rb +35 -0
  7. data/app/controllers/decidim/conferences/admin/conference_invites_controller.rb +1 -1
  8. data/app/controllers/decidim/conferences/admin/conference_speakers_controller.rb +4 -4
  9. data/app/controllers/decidim/conferences/admin/conferences_controller.rb +3 -3
  10. data/app/controllers/decidim/conferences/admin/diplomas_controller.rb +1 -1
  11. data/app/controllers/decidim/conferences/admin/media_links_controller.rb +2 -2
  12. data/app/controllers/decidim/conferences/admin/partners_controller.rb +2 -2
  13. data/app/controllers/decidim/conferences/admin/registration_types_controller.rb +2 -2
  14. data/app/forms/decidim/conferences/admin/{conference_copy_form.rb → conference_duplicate_form.rb} +3 -3
  15. data/app/forms/decidim/conferences/admin/conference_form.rb +0 -4
  16. data/app/helpers/decidim/conferences/conference_helper.rb +1 -0
  17. data/app/jobs/decidim/conferences/upcoming_conference_notification_job.rb +1 -1
  18. data/app/models/decidim/conference.rb +0 -4
  19. data/app/models/decidim/conferences/registration_type.rb +4 -0
  20. data/app/packs/entrypoints/decidim_conferences_admin.js +0 -1
  21. data/app/packs/src/decidim/conferences/admin/conference_invite_form.js +1 -1
  22. data/app/packs/src/decidim/conferences/admin/conference_speakers.js +1 -1
  23. data/app/packs/src/decidim/conferences/admin/conferences.js +1 -1
  24. data/app/packs/stylesheets/decidim/conferences/conferences.scss +5 -5
  25. data/app/permissions/decidim/conferences/permissions.rb +4 -4
  26. data/app/presenters/decidim/conference_speaker_presenter.rb +0 -4
  27. data/app/presenters/decidim/conferences/admin_log/conference_presenter.rb +0 -1
  28. data/app/presenters/decidim/conferences/conference_stats_presenter.rb +1 -3
  29. data/app/queries/decidim/conferences/admin/conference_speakers.rb +2 -2
  30. data/app/queries/decidim/conferences/conferences_stats_followers_count.rb +14 -0
  31. data/app/queries/decidim/conferences/conferences_stats_participants_count.rb +14 -0
  32. data/app/views/decidim/conferences/admin/{conference_copies → conference_duplicates}/_form.html.erb +3 -3
  33. data/app/views/decidim/conferences/admin/conference_duplicates/new.html.erb +19 -0
  34. data/app/views/decidim/conferences/admin/conference_registrations/index.html.erb +34 -20
  35. data/app/views/decidim/conferences/admin/conference_speakers/index.html.erb +51 -22
  36. data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +44 -17
  37. data/app/views/decidim/conferences/admin/conferences/_actions.html.erb +108 -33
  38. data/app/views/decidim/conferences/admin/conferences/_conference_row.html.erb +4 -4
  39. data/app/views/decidim/conferences/admin/conferences/_conferences_thead.html.erb +2 -2
  40. data/app/views/decidim/conferences/admin/conferences/_form.html.erb +115 -40
  41. data/app/views/decidim/conferences/admin/conferences/edit.html.erb +0 -8
  42. data/app/views/decidim/conferences/admin/conferences/index.html.erb +2 -2
  43. data/app/views/decidim/conferences/admin/conferences/manage_trash.html.erb +2 -1
  44. data/app/views/decidim/conferences/admin/media_links/index.html.erb +32 -13
  45. data/app/views/decidim/conferences/admin/partners/index.html.erb +33 -14
  46. data/app/views/decidim/conferences/admin/registration_types/index.html.erb +56 -21
  47. data/app/views/decidim/conferences/conference_program/show.html.erb +1 -1
  48. data/app/views/decidim/conferences/conferences/_conference_hero.html.erb +0 -5
  49. data/app/views/decidim/conferences/conferences/show.html.erb +1 -1
  50. data/app/views/layouts/decidim/diploma.html.erb +2 -2
  51. data/config/assets.rb +2 -2
  52. data/config/locales/ar.yml +1 -10
  53. data/config/locales/bg.yml +1 -13
  54. data/config/locales/bs-BA.yml +0 -5
  55. data/config/locales/ca-IT.yml +24 -12
  56. data/config/locales/ca.yml +24 -12
  57. data/config/locales/cs.yml +23 -11
  58. data/config/locales/de.yml +25 -13
  59. data/config/locales/el.yml +1 -10
  60. data/config/locales/en.yml +24 -12
  61. data/config/locales/es-MX.yml +24 -12
  62. data/config/locales/es-PY.yml +24 -12
  63. data/config/locales/es.yml +24 -12
  64. data/config/locales/eu.yml +24 -12
  65. data/config/locales/fi-plain.yml +23 -11
  66. data/config/locales/fi.yml +23 -11
  67. data/config/locales/fr-CA.yml +24 -15
  68. data/config/locales/fr.yml +24 -15
  69. data/config/locales/ga-IE.yml +2 -6
  70. data/config/locales/gl.yml +1 -10
  71. data/config/locales/hu.yml +1 -10
  72. data/config/locales/id-ID.yml +1 -9
  73. data/config/locales/it.yml +1 -10
  74. data/config/locales/ja.yml +25 -13
  75. data/config/locales/lb.yml +1 -7
  76. data/config/locales/lt.yml +1 -10
  77. data/config/locales/lv.yml +1 -10
  78. data/config/locales/nl.yml +1 -10
  79. data/config/locales/no.yml +1 -10
  80. data/config/locales/pl.yml +1 -13
  81. data/config/locales/pt-BR.yml +1 -13
  82. data/config/locales/pt.yml +1 -10
  83. data/config/locales/ro-RO.yml +3 -10
  84. data/config/locales/sk.yml +1 -10
  85. data/config/locales/sl.yml +0 -5
  86. data/config/locales/sr-CS.yml +0 -5
  87. data/config/locales/sv.yml +16 -13
  88. data/config/locales/tr-TR.yml +1 -10
  89. data/config/locales/zh-CN.yml +1 -10
  90. data/config/locales/zh-TW.yml +1 -10
  91. data/db/migrate/20250605094623_remove_hashtag_column_conferences.rb +7 -0
  92. data/lib/decidim/api/conference_registration_type_type.rb +30 -0
  93. data/lib/decidim/api/conference_speaker_type.rb +12 -0
  94. data/lib/decidim/api/conference_type.rb +15 -3
  95. data/lib/decidim/conferences/admin_engine.rb +1 -1
  96. data/lib/decidim/conferences/api.rb +1 -0
  97. data/lib/decidim/conferences/conference_diploma_pdf.rb +1 -1
  98. data/lib/decidim/conferences/engine.rb +5 -3
  99. data/lib/decidim/conferences/participatory_space.rb +14 -0
  100. data/lib/decidim/conferences/seeds.rb +5 -6
  101. data/lib/decidim/conferences/test/factories.rb +2 -2
  102. data/lib/decidim/conferences/version.rb +1 -1
  103. metadata +19 -15
  104. data/app/controllers/decidim/conferences/admin/conference_copies_controller.rb +0 -35
  105. data/app/views/decidim/conferences/admin/conference_copies/new.html.erb +0 -19
@@ -1,5 +1,5 @@
1
1
  <div class="form__wrapper">
2
- <div class="card" data-component="accordion" id="accordion-title">
2
+ <div class="card" data-controller="accordion" id="accordion-title">
3
3
  <div class="card-divider">
4
4
  <button class="card-divider-button" data-open="true" data-controls="panel-title" type="button">
5
5
  <%= icon "arrow-right-s-line" %>
@@ -23,17 +23,9 @@
23
23
  </div>
24
24
 
25
25
  <div class="row">
26
- <div class="columns slug">
26
+ <div class="columns" data-controller="slug">
27
27
  <%= form.text_field :slug, help_text: t(".slug_help_html", url: decidim_form_slug_url(:conferences, form.object.slug)) %>
28
28
  </div>
29
-
30
- <div class="columns">
31
- <%= form.text_field :hashtag %>
32
- </div>
33
- </div>
34
-
35
- <div class="row column">
36
- <%= form.check_box :promoted %>
37
29
  </div>
38
30
 
39
31
  <div class="row column">
@@ -43,15 +35,41 @@
43
35
  <div class="row column">
44
36
  <%= form.translated :editor, :description, aria: { label: :description } %>
45
37
  </div>
38
+ </div>
39
+ </div>
46
40
 
41
+ <div class="card" data-controller="accordion" id="accordion-duration">
42
+ <div class="card-divider">
43
+ <button class="card-divider-button" data-open="true" data-controls="panel-duration" type="button">
44
+ <%= icon "arrow-right-s-line" %>
45
+ <h2 class="card-title" id="duration">
46
+ <%= t("duration", scope: "decidim.admin.conferences.form") %>
47
+ </h2>
48
+ </button>
49
+ </div>
50
+
51
+ <div id="panel-duration" class="card-section">
47
52
  <div class="row column">
48
- <%= form.translated :editor, :objectives, aria: { label: :objectives } %>
53
+ <%= form.date_field :start_date %>
49
54
  </div>
50
55
 
51
56
  <div class="row column">
52
- <%= form.text_field :location %>
57
+ <%= form.date_field :end_date %>
53
58
  </div>
59
+ </div>
60
+ </div>
61
+
62
+ <div class="card" data-controller="accordion" id="accordion-images">
63
+ <div class="card-divider">
64
+ <button class="card-divider-button" data-open="true" data-controls="panel-images" type="button">
65
+ <%= icon "arrow-right-s-line" %>
66
+ <h2 class="card-title" id="images">
67
+ <%= t("images", scope: "decidim.admin.conferences.form") %>
68
+ </h2>
69
+ </button>
70
+ </div>
54
71
 
72
+ <div id="panel-images" class="card-section">
55
73
  <div class="row">
56
74
  <div class="columns">
57
75
  <%= form.upload :hero_image, button_class: "button button__sm button__transparent-secondary" %>
@@ -61,54 +79,63 @@
61
79
  <%= form.upload :banner_image, button_class: "button button__sm button__transparent-secondary" %>
62
80
  </div>
63
81
  </div>
82
+ </div>
83
+ </div>
64
84
 
65
- <div class="row column">
66
- <%= form.check_box :show_statistics %>
67
- </div>
85
+ <div class="card" data-controller="accordion" id="accordion-metadata">
86
+ <div class="card-divider">
87
+ <button class="card-divider-button" data-open="true" data-controls="panel-metadata" type="button">
88
+ <%= icon "arrow-right-s-line" %>
89
+ <h2 class="card-title" id="metadata">
90
+ <%= t("metadata", scope: "decidim.admin.conferences.form") %>
91
+ </h2>
92
+ </button>
93
+ </div>
94
+ <div id="panel-metadata" class="card-section">
68
95
 
69
96
  <div class="row column">
70
- <%= form.date_field :start_date %>
97
+ <%= form.translated :editor, :objectives, aria: { label: :objectives } %>
71
98
  </div>
72
99
 
73
100
  <div class="row column">
74
- <%= form.date_field :end_date %>
101
+ <%= form.text_field :location %>
75
102
  </div>
76
103
 
77
104
  <div class="row column">
78
- <%= form.check_box :registrations_enabled %>
105
+ <%= form.check_box :show_statistics %>
79
106
  </div>
80
-
81
- <div class="row column">
82
- <p><%= t(".registrations_count", count: current_participatory_space.present? ? current_participatory_space.conference_registrations.count : 0) %></p>
83
- <%= form.number_field :available_slots, help_text: t(".available_slots_help") %>
84
107
  </div>
108
+ </div>
85
109
 
86
- <div class="row column" id="conference_registrations_terms">
87
- <%= form.translated :editor, :registration_terms, toolbar: :content, aria: { label: :registration_terms } %>
88
- </div>
110
+ <div class="card" data-controller="accordion" id="accordion-registrations">
111
+ <div class="card-divider">
112
+ <button class="card-divider-button" data-open="true" data-controls="panel-registrations" type="button">
113
+ <%= icon "arrow-right-s-line" %>
114
+ <h2 class="card-title" id="registrations">
115
+ <%= t("registrations", scope: "decidim.admin.conferences.form") %>
116
+ </h2>
117
+ </button>
118
+ </div>
89
119
 
120
+ <div id="panel-registrations" class="card-section">
90
121
  <div class="row column">
91
- <% if @form.processes_for_select %>
92
- <%= form.select :participatory_processes_ids,
93
- options_for_select(@form.processes_for_select, selected: processes_selected ),
94
- { include_blank: true },
95
- { multiple: true, class: "chosen-select" } %>
96
- <% end %>
122
+ <%= form.check_box :registrations_enabled, data: { controller: :toggle, "toggle-toggle-value": "registrations_enabled_details" } %>
97
123
  </div>
98
124
 
99
- <div class="row column">
100
- <% if @form.assemblies_for_select %>
101
- <%= form.select :assemblies_ids,
102
- options_for_select(@form.assemblies_for_select, selected: assemblies_selected ),
103
- { include_blank: true },
104
- { multiple: true, class: "chosen-select" } %>
105
- <% end %>
106
- </div>
125
+ <div id="registrations_enabled_details" <%= form.object.registrations_enabled ? nil : "hidden" %>>
126
+ <div class="row column">
127
+ <p><%= t(".registrations_count", count: current_participatory_space.present? ? current_participatory_space.conference_registrations.count : 0) %></p>
128
+ <%= form.number_field :available_slots, help_text: t(".available_slots_help") %>
129
+ </div>
107
130
 
131
+ <div class="row column" id="conference_registrations_terms">
132
+ <%= form.translated :editor, :registration_terms, toolbar: :content, aria: { label: :registration_terms } %>
133
+ </div>
134
+ </div>
108
135
  </div>
109
136
  </div>
110
137
 
111
- <div class="card" data-component="accordion" id="accordion-taxonomies">
138
+ <div class="card" data-controller="accordion" id="accordion-taxonomies">
112
139
  <div class="card-divider">
113
140
  <button class="card-divider-button" data-open="true" data-controls="panel-taxonomies" type="button">
114
141
  <%= icon "arrow-right-s-line" %>
@@ -134,6 +161,54 @@
134
161
  <% end %>
135
162
  </div>
136
163
  </div>
164
+
165
+ <div class="card" data-controller="accordion" id="accordion-visibility">
166
+ <div class="card-divider">
167
+ <button class="card-divider-button" data-open="true" data-controls="panel-visibility" type="button">
168
+ <%= icon "arrow-right-s-line" %>
169
+ <h2 class="card-title" id="visibility">
170
+ <%= t("visibility", scope: "decidim.admin.conferences.form") %>
171
+ </h2>
172
+ </button>
173
+ </div>
174
+
175
+ <div id="panel-visibility" class="card-section">
176
+ <div class="row column">
177
+ <%= form.check_box :promoted %>
178
+ </div>
179
+ </div>
180
+ </div>
181
+
182
+ <div class="card" data-controller="accordion" id="accordion-related_spaces">
183
+ <div class="card-divider">
184
+ <button class="card-divider-button" data-open="true" data-controls="panel-related_spaces" type="button">
185
+ <%= icon "arrow-right-s-line" %>
186
+ <h2 class="card-title" id="related_spaces">
187
+ <%= t("related_spaces", scope: "decidim.admin.conferences.form") %>
188
+ </h2>
189
+ </button>
190
+ </div>
191
+
192
+ <div id="panel-related_spaces" class="card-section">
193
+ <div class="row column">
194
+ <% if @form.processes_for_select %>
195
+ <%= form.select :participatory_processes_ids,
196
+ options_for_select(@form.processes_for_select, selected: processes_selected ),
197
+ { include_blank: true },
198
+ { multiple: true, class: "chosen-select" } %>
199
+ <% end %>
200
+ </div>
201
+
202
+ <div class="row column">
203
+ <% if @form.assemblies_for_select %>
204
+ <%= form.select :assemblies_ids,
205
+ options_for_select(@form.assemblies_for_select, selected: assemblies_selected ),
206
+ { include_blank: true },
207
+ { multiple: true, class: "chosen-select" } %>
208
+ <% end %>
209
+ </div>
210
+ </div>
211
+ </div>
137
212
  </div>
138
213
 
139
214
  <%= append_javascript_pack_tag "decidim_conferences_admin" %>
@@ -13,14 +13,6 @@
13
13
  <div class="item__edit-sticky">
14
14
  <div class="item__edit-sticky-container">
15
15
  <%= f.submit t("conferences.edit.update", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
16
-
17
- <% if allowed_to? :publish, :conference, conference: current_conference %>
18
- <% if current_conference.published? %>
19
- <%= link_to t("actions.unpublish", scope: "decidim.admin"), conference_publish_path(current_conference), method: :delete, class: "button button__sm button__secondary" %>
20
- <% else %>
21
- <%= link_to t("actions.publish", scope: "decidim.admin"), conference_publish_path(current_conference), method: :post, class: "button button__sm button__secondary" %>
22
- <% end %>
23
- <% end %>
24
16
  </div>
25
17
  </div>
26
18
  <% end %>
@@ -1,7 +1,7 @@
1
1
  <% add_decidim_page_title(t("decidim.admin.titles.conferences")) %>
2
2
  <div class="card" id="conferences">
3
3
  <%= admin_filter_selector %>
4
- <div class="table-scroll">
4
+ <div class="table-stacked">
5
5
  <table class="table-list">
6
6
  <%= render partial: "conferences_thead" %>
7
7
  <tbody>
@@ -14,7 +14,7 @@
14
14
  </div>
15
15
  <% if allowed_to? :read, :conference, trashable_deleted_resource: @conferences %>
16
16
  <div class="card mt-4">
17
- <%= link_to manage_trash_conferences_path, class: "flex items-center underline text-secondary" do %>
17
+ <%= link_to manage_trash_conferences_path, class: "flex items-center text-secondary" do %>
18
18
  <%= icon "delete-bin-2-line", class: "mr-2 fill-current text-secondary", role: "img" %>
19
19
  <%= t("decidim.admin.actions.view_deleted_conferences") %>
20
20
  <span class="ml-2">
@@ -1,4 +1,5 @@
1
1
  <% add_decidim_page_title(t("conferences_deleted", scope: "decidim.admin.titles")) %>
2
+
2
3
  <div class="item_show__header">
3
4
  <h1 class="item_show__header-title">
4
5
  <%= t "conferences.manage_trash.title", scope: "decidim.admin" %>
@@ -7,7 +8,7 @@
7
8
  <div class="card" id="conferences">
8
9
  <%= admin_filter_selector %>
9
10
  </div>
10
- <div class="table-scroll">
11
+ <div class="table-stacked">
11
12
  <table class="table-list">
12
13
  <%= render partial: "conferences_thead" %>
13
14
  <tbody>
@@ -8,37 +8,56 @@
8
8
  <% end %>
9
9
  </h1>
10
10
  </div>
11
- <div class="table-scroll">
11
+ <div class="table-stacked">
12
12
  <table class="table-list">
13
13
  <thead>
14
14
  <tr>
15
15
  <th><%= t("models.media_link.fields.title", scope: "decidim.admin") %></th>
16
16
  <th><%= t("models.media_link.fields.link", scope: "decidim.admin") %></th>
17
17
  <th><%= t("models.media_link.fields.date", scope: "decidim.admin") %></th>
18
-
19
- <th></th>
18
+ <th><%= t("models.media_link.fields.actions", scope: "decidim.admin") %></th>
20
19
  </tr>
21
20
  </thead>
22
21
  <tbody>
23
22
  <% @media_links.each do |media_link| %>
24
23
  <tr>
25
- <td>
24
+ <td data-label="<%= t("models.media_link.fields.title", scope: "decidim.admin") %>">
26
25
  <%= translated_attribute(media_link.title) %>
27
26
  </td>
28
- <td>
27
+ <td data-label="<%= t("models.media_link.fields.link", scope: "decidim.admin") %>">
29
28
  <%= media_link.link %>
30
29
  </td>
31
- <td>
30
+ <td data-label="<%= t("models.media_link.fields.date", scope: "decidim.admin") %>">
32
31
  <%= l(media_link.date, format: :decidim_short ) %>
33
32
  </td>
34
- <td class="table-list__actions">
35
- <% if allowed_to? :update, :media_link, media_link: media_link %>
36
- <%= icon_link_to "pencil-line", edit_conference_media_link_path(current_conference, media_link), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
37
- <% end %>
33
+ <td class="table-list__actions" data-label="<%= t("models.media_link.fields.actions", scope: "decidim.admin") %>">
34
+ <button type="button" data-controller="dropdown" data-target="actions-media-link-<%= media_link.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: translated_attribute(media_link.title)) %>">
35
+ <%= icon "more-fill", class: "text-secondary" %>
36
+ </button>
37
+
38
+ <div class="inline-block relative">
39
+ <ul id="actions-media-link-<%= media_link.id %>" class="dropdown dropdown__action" aria-hidden="true">
40
+ <% if allowed_to? :update, :media_link, media_link: media_link %>
41
+ <li class="dropdown__item">
42
+ <%= link_to edit_conference_media_link_path(current_conference, media_link), class: "dropdown__button" do %>
43
+ <%= icon "pencil-line" %>
44
+ <%= t("actions.edit", scope: "decidim.admin") %>
45
+ <% end %>
46
+ </li>
47
+
48
+ <hr>
49
+ <% end %>
38
50
 
39
- <% if allowed_to? :destroy, :media_link, media_link: media_link %>
40
- <%= icon_link_to "delete-bin-line", conference_media_link_path(current_conference, media_link), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
41
- <% end %>
51
+ <% if allowed_to? :destroy, :media_link, media_link: media_link %>
52
+ <li class="dropdown__item">
53
+ <%= link_to conference_media_link_path(current_conference, media_link), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }, class: "dropdown__button dropdown__button--danger" do %>
54
+ <%= icon "delete-bin-line" %>
55
+ <%= t("actions.destroy", scope: "decidim.admin") %>
56
+ <% end %>
57
+ </li>
58
+ <% end %>
59
+ </ul>
60
+ </div>
42
61
  </td>
43
62
  </tr>
44
63
  <% end %>
@@ -8,7 +8,7 @@
8
8
  <% end %>
9
9
  </h1>
10
10
  </div>
11
- <div class="table-scroll">
11
+ <div class="table-stacked">
12
12
  <table class="table-list">
13
13
  <thead>
14
14
  <tr>
@@ -16,37 +16,56 @@
16
16
  <th><%= t("models.partner.fields.partner_type", scope: "decidim.admin") %></th>
17
17
  <th><%= t("models.partner.fields.link", scope: "decidim.admin") %></th>
18
18
  <th><%= t("models.partner.fields.logo", scope: "decidim.admin") %></th>
19
-
20
- <th></th>
19
+ <th><%= t("models.partner.fields.actions", scope: "decidim.admin") %></th>
21
20
  </tr>
22
21
  </thead>
23
22
  <tbody>
24
23
  <% @partners.each do |partner| %>
25
24
  <tr>
26
- <td>
25
+ <td data-label="<%= t("models.partner.fields.name", scope: "decidim.admin") %>">
27
26
  <%= partner.name %>
28
27
  </td>
29
- <td>
28
+ <td data-label="<%= t("models.partner.fields.partner_type", scope: "decidim.admin") %>">
30
29
  <%= t("#{partner.partner_type}", scope: "decidim.admin.models.partner.types") %>
31
30
  </td>
32
- <td>
31
+ <td data-label="<%= t("models.partner.fields.link", scope: "decidim.admin") %>">
33
32
  <% if partner.link.presence %>
34
33
  <%= link_to partner.link, partner.link, target: "_blank" %>
35
34
  <% end %>
36
35
  </td>
37
- <td>
36
+ <td data-label="<%= t("models.partner.fields.logo", scope: "decidim.admin") %>">
38
37
  <% if partner.logo.attached? %>
39
38
  <%= image_tag(partner.attached_uploader(:logo).variant_url(:thumb)) %>
40
39
  <% end %>
41
40
  </td>
42
- <td class="table-list__actions">
43
- <% if allowed_to? :update, :partner, partner: partner %>
44
- <%= icon_link_to "pencil-line", edit_conference_partner_path(current_conference, partner), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
45
- <% end %>
41
+ <td class="table-list__actions" data-label="<%= t("models.partner.fields.actions", scope: "decidim.admin") %>">
42
+ <button type="button" data-controller="dropdown" data-target="actions-partner-<%= partner.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: partner.name || t("models.partner.name", scope: "decidim.admin")) %>">
43
+ <%= icon "more-fill", class: "text-secondary" %>
44
+ </button>
46
45
 
47
- <% if allowed_to? :destroy, :partner, partner: partner %>
48
- <%= icon_link_to "delete-bin-line", conference_partner_path(current_conference, partner), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
49
- <% end %>
46
+ <div class="inline-block relative">
47
+ <ul id="actions-partner-<%= partner.id %>" class="dropdown dropdown__action" aria-hidden="true">
48
+ <% if allowed_to? :update, :partner, partner: partner %>
49
+ <li class="dropdown__item">
50
+ <%= link_to edit_conference_partner_path(current_conference, partner), class: "dropdown__button" do %>
51
+ <%= icon "pencil-line" %>
52
+ <%= t("actions.edit", scope: "decidim.admin") %>
53
+ <% end %>
54
+ </li>
55
+
56
+ <hr>
57
+ <% end %>
58
+
59
+ <% if allowed_to? :destroy, :partner, partner: partner %>
60
+ <li class="dropdown__item">
61
+ <%= link_to conference_partner_path(current_conference, partner), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }, class: "dropdown__button dropdown__button--danger" do %>
62
+ <%= icon "delete-bin-line" %>
63
+ <%= t("actions.destroy", scope: "decidim.admin") %>
64
+ <% end %>
65
+ </li>
66
+ <% end %>
67
+ </ul>
68
+ </div>
50
69
  </td>
51
70
  </tr>
52
71
  <% end %>
@@ -8,7 +8,7 @@
8
8
  <% end %>
9
9
  </h1>
10
10
  </div>
11
- <div class="table-scroll">
11
+ <div class="table-stacked">
12
12
  <table class="table-list">
13
13
  <thead>
14
14
  <tr>
@@ -17,42 +17,76 @@
17
17
  <th><%= t("models.registration_type.fields.weight", scope: "decidim.admin") %></th>
18
18
  <th><%= t("models.registration_type.fields.conference_meetings", scope: "decidim.admin") %></th>
19
19
  <th><%= t("models.registration_type.fields.registrations_count", scope: "decidim.admin") %></th>
20
- <th></th>
20
+ <th><%= t("models.registration_type.fields.actions", scope: "decidim.admin") %></th>
21
21
  </tr>
22
22
  </thead>
23
23
  <tbody>
24
24
  <% @registration_types.each do |registration_type| %>
25
25
  <tr>
26
- <td>
26
+ <td data-label="<%= t("models.registration_type.fields.title", scope: "decidim.admin") %>">
27
27
  <%= translated_attribute(registration_type.title) %>
28
28
  </td>
29
- <td>
29
+ <td data-label="<%= t("models.registration_type.fields.price", scope: "decidim.admin") %>">
30
30
  <%= registration_type.price %>
31
31
  </td>
32
- <td>
32
+ <td data-label="<%= t("models.registration_type.fields.weight", scope: "decidim.admin") %>">
33
33
  <%= registration_type.weight %>
34
34
  </td>
35
- <td>
35
+ <td data-label="<%= t("models.registration_type.fields.conference_meetings", scope: "decidim.admin") %>">
36
36
  <%= registration_type.conference_meeting_registration_types.count %>
37
37
  </td>
38
- <td>
38
+ <td data-label="<%= t("models.registration_type.fields.registrations_count", scope: "decidim.admin") %>">
39
39
  <%= registration_type.conference_registrations.count %>
40
40
  </td>
41
- <td class="table-list__actions">
42
- <% if allowed_to?(:update, :registration_type, registration_type: registration_type) && !registration_type.conference_registrations.any? %>
43
- <%= icon_link_to "pencil-line", edit_conference_registration_type_path(current_conference, registration_type), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
44
- <% end %>
45
41
 
46
- <% if allowed_to?(:update, :registration_type, registration_type: registration_type) %>
47
- <% if registration_type.published? %>
48
- <%= icon_link_to "close-circle-line", conference_registration_type_publish_path(current_conference, registration_type), t("actions.unpublish", scope: "decidim.admin"), class: "action-icon--unpublish", method: :delete %>
49
- <% else %>
50
- <%= icon_link_to "check-line", conference_registration_type_publish_path(current_conference, registration_type), t("actions.publish", scope: "decidim.admin"), class: "action-icon--publish", method: :post %>
51
- <% end %>
52
- <% end %>
53
- <% if allowed_to?(:destroy, :registration_type, registration_type: registration_type) && !registration_type.conference_registrations.any? %>
54
- <%= icon_link_to "delete-bin-line", conference_registration_type_path(current_conference, registration_type), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
55
- <% end %>
42
+ <td class="table-list__actions" data-label="<%= t("models.registration_type.fields.actions", scope: "decidim.admin") %>">
43
+ <button type="button" data-controller="dropdown" data-target="actions-conference-registration-type-<%= registration_type.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: translated_attribute(registration_type.title)) %>">
44
+ <%= icon "more-fill", class: "text-secondary" %>
45
+ </button>
46
+
47
+ <div class="inline-block relative">
48
+ <ul id="actions-conference-registration-type-<%= registration_type.id %>" class="dropdown dropdown__action" aria-hidden="true">
49
+ <% if allowed_to?(:update, :registration_type, registration_type: registration_type) && !registration_type.conference_registrations.any? %>
50
+ <li class="dropdown__item">
51
+ <%= link_to edit_conference_registration_type_path(current_conference, registration_type), class: "dropdown__button" do %>
52
+ <%= icon "pencil-line" %>
53
+ <%= t("actions.edit", scope: "decidim.admin") %>
54
+ <% end %>
55
+ </li>
56
+
57
+ <hr>
58
+ <% end %>
59
+
60
+ <% if allowed_to?(:update, :registration_type, registration_type: registration_type) %>
61
+ <% if registration_type.published? %>
62
+ <li class="dropdown__item">
63
+ <%= link_to conference_registration_type_publish_path(current_conference, registration_type), method: :delete, class: "dropdown__button" do %>
64
+ <%= icon "close-circle-line" %>
65
+ <%= t("actions.unpublish", scope: "decidim.admin") %>
66
+ <% end %>
67
+ </li>
68
+ <% else %>
69
+ <li class="dropdown__item">
70
+ <%= link_to conference_registration_type_publish_path(current_conference, registration_type), method: :post, class: "dropdown__button" do %>
71
+ <%= icon "check-line" %>
72
+ <%= t("actions.publish", scope: "decidim.admin") %>
73
+ <% end %>
74
+ </li>
75
+ <% end %>
76
+
77
+ <hr>
78
+ <% end %>
79
+
80
+ <% if allowed_to?(:destroy, :registration_type, registration_type: registration_type) && !registration_type.conference_registrations.any? %>
81
+ <li class="dropdown__item">
82
+ <%= link_to conference_registration_type_path(current_conference, registration_type), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }, class: "dropdown__button" do %>
83
+ <%= icon "delete-bin-line" %>
84
+ <%= t("actions.destroy", scope: "decidim.admin") %>
85
+ <% end %>
86
+ </li>
87
+ <% end %>
88
+ </ul>
89
+ </div>
56
90
  </td>
57
91
  </tr>
58
92
  <% end %>
@@ -60,4 +94,5 @@
60
94
  </table>
61
95
  </div>
62
96
  </div>
97
+
63
98
  <%= decidim_paginate @registration_types %>
@@ -20,7 +20,7 @@ end
20
20
  <span class="sr-only"><%= t(".program") %> (<%= translated_attribute current_participatory_space.title %>)</span>
21
21
  </h1>
22
22
 
23
- <div data-component="accordion" data-multiselectable="false" data-collapsible="false">
23
+ <div data-controller="accordion" data-multiselectable="false" data-collapsible="false">
24
24
  <% if meeting_days.any? %>
25
25
  <ul class="conference__program-selector">
26
26
  <% meeting_days.each_with_index do |day, i| %>
@@ -5,11 +5,6 @@
5
5
  <%= translated_attribute(current_participatory_space.title) %>
6
6
  </h1>
7
7
  <p class="conference__hero-slogan">
8
- <% if current_participatory_space.hashtag.present? %>
9
- <span>
10
- <%= link_to "##{current_participatory_space.hashtag}", twitter_hashtag_url(current_participatory_space.hashtag), target: "_blank" %>
11
- </span>
12
- <% end %>
13
8
  <%= translated_attribute(current_participatory_space.slogan) %>
14
9
  </p>
15
10
  <p class="conference__hero-location">
@@ -24,7 +24,7 @@ edit_link(
24
24
 
25
25
  <%= content_for :aside do %>
26
26
  <div class="conference__nav-container">
27
- <button id="dropdown-trigger-conference" data-component="dropdown" data-target="dropdown-menu-conference" data-auto-close="true" data-scroll-to-menu="true">
27
+ <button id="dropdown-trigger-conference" data-controller="dropdown" data-target="dropdown-menu-conference" data-auto-close="true" data-scroll-to-menu="true">
28
28
  <span><%= t("decidim.searches.filters.jump_to") %></span>
29
29
  <%= icon "arrow-down-s-line" %>
30
30
  <%= icon "arrow-up-s-line" %>
@@ -1,8 +1,8 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="<%= I18n.locale %>" class="no-js">
3
3
  <head>
4
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
- <meta name="viewport" content="width=device-width">
4
+ <%= tag :meta, "http-equiv": "Content-Type", content: "text/html; charset=utf-8" %>
5
+ <%= tag :meta, name: "viewport", content: "width=device-width" %>
6
6
  <%= stylesheet_pack_tag "decidim_conference_diploma" %>
7
7
  </head>
8
8
  <body>
data/config/assets.rb CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  base_path = File.expand_path("..", __dir__)
4
4
 
5
- Decidim::Webpacker.register_path("#{base_path}/app/packs")
6
- Decidim::Webpacker.register_entrypoints(
5
+ Decidim::Shakapacker.register_path("#{base_path}/app/packs")
6
+ Decidim::Shakapacker.register_entrypoints(
7
7
  decidim_conferences: "#{base_path}/app/packs/entrypoints/decidim_conferences.js",
8
8
  decidim_conferences_admin: "#{base_path}/app/packs/entrypoints/decidim_conferences_admin.js"
9
9
  )
@@ -3,16 +3,11 @@ ar:
3
3
  activemodel:
4
4
  attributes:
5
5
  conference:
6
- assemblies_ids: الجمعيات ذات الصلة
7
6
  available_slots: المواعيد المتاحة
8
7
  banner_image: صورة بانر
9
- copy_categories: نسخ الفئات
10
- copy_components: نسخ المكونات
11
- copy_features: نسخ الميزات
12
8
  decidim_scope_id: نطاق
13
9
  description: وصف
14
10
  end_date: تاريخ الانتهاء
15
- hashtag: رابطة هاشتاق
16
11
  hero_image: الصورة الرئيسية
17
12
  location: الموقع
18
13
  main_logo: الشعار الرئيسي
@@ -93,9 +88,6 @@ ar:
93
88
  new_conference: مؤتمر جديد
94
89
  new_partner: شريك جديد
95
90
  send_diplomas: إرسال شهادات الحضور
96
- conference_copies:
97
- new:
98
- copy: نسخ
99
91
  conference_publications:
100
92
  create:
101
93
  error: كانت هناك مشكلة في نشر هذا المؤتمر.
@@ -144,12 +136,12 @@ ar:
144
136
  exports:
145
137
  registrations: التسجيلات
146
138
  form:
139
+ images: صور
147
140
  title: معلومات عامة
148
141
  index:
149
142
  published: نشرت
150
143
  new:
151
144
  create: إنشاء
152
- title: مؤتمر
153
145
  update:
154
146
  error: حدثت مشكلة أثناء تحديث هذا المؤتمر.
155
147
  success: تم تحديث المؤتمر بنجاح.
@@ -198,7 +190,6 @@ ar:
198
190
  admin: مدير
199
191
  collaborator: متعاون
200
192
  moderator: وسيط
201
- valuator: مُقيِّم
202
193
  media_link:
203
194
  fields:
204
195
  date: تاريخ