decidim-initiatives 0.30.1 → 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.
- checksums.yaml +4 -4
- data/README.md +46 -9
- data/app/cells/decidim/initiatives/content_blocks/highlighted_initiatives_settings_form/show.erb +7 -2
- data/app/cells/decidim/initiatives/initiative_g_cell.rb +5 -1
- data/app/commands/decidim/initiatives/admin/publish_initiative.rb +1 -5
- data/app/commands/decidim/initiatives/admin/update_initiative.rb +1 -2
- data/app/commands/decidim/initiatives/create_initiative.rb +0 -1
- data/app/commands/decidim/initiatives/update_initiative.rb +1 -3
- data/app/commands/decidim/initiatives/vote_initiative.rb +1 -11
- data/app/controllers/concerns/decidim/initiatives/has_signature_workflow.rb +36 -0
- data/app/controllers/concerns/decidim/initiatives/needs_initiative.rb +1 -12
- data/app/controllers/decidim/initiatives/admin/initiatives_controller.rb +2 -2
- data/app/controllers/decidim/initiatives/admin/initiatives_settings_controller.rb +1 -1
- data/app/controllers/decidim/initiatives/admin/initiatives_type_scopes_controller.rb +2 -2
- data/app/controllers/decidim/initiatives/admin/initiatives_types_controller.rb +2 -2
- data/app/controllers/decidim/initiatives/committee_requests_controller.rb +10 -2
- data/app/controllers/decidim/initiatives/create_initiative_controller.rb +84 -18
- data/app/controllers/decidim/initiatives/initiative_signatures_controller.rb +133 -42
- data/app/controllers/decidim/initiatives/initiative_votes_controller.rb +3 -2
- data/app/controllers/decidim/initiatives/initiatives_controller.rb +21 -2
- data/app/forms/decidim/initiatives/admin/initiative_form.rb +0 -1
- data/app/forms/decidim/initiatives/initiative_form.rb +0 -3
- data/app/helpers/decidim/initiatives/application_helper.rb +2 -0
- data/app/helpers/decidim/initiatives/initiatives_helper.rb +0 -1
- data/app/models/decidim/initiative.rb +7 -31
- data/app/models/decidim/initiatives_committee_member.rb +1 -1
- data/app/models/decidim/initiatives_type.rb +5 -2
- data/app/models/decidim/initiatives_vote.rb +2 -2
- data/app/packs/entrypoints/decidim_initiatives.js +1 -1
- data/app/packs/entrypoints/decidim_initiatives_admin.scss +1 -1
- data/app/packs/src/decidim/initiatives/admin/initiatives_types.js +2 -11
- data/app/packs/src/decidim/initiatives/admin/invite_users.js +1 -1
- data/app/packs/src/decidim/initiatives/application.js +1 -1
- data/app/packs/src/decidim/initiatives/check_code.js +114 -0
- data/app/packs/src/decidim/initiatives/initiative_creation_wizard.js +16 -0
- data/app/packs/src/decidim/initiatives/scoped_type.js +1 -1
- data/app/packs/stylesheets/initiatives.scss +16 -2
- data/app/permissions/decidim/initiatives/admin/permissions.rb +4 -7
- data/app/permissions/decidim/initiatives/permissions.rb +26 -16
- data/app/presenters/decidim/initiative_presenter.rb +12 -6
- data/app/presenters/decidim/initiatives/admin_log/initiative_presenter.rb +1 -2
- data/app/queries/decidim/initiatives/initiatives_stats_followers_count.rb +14 -0
- data/app/queries/decidim/initiatives/initiatives_stats_participants_count.rb +14 -0
- data/app/serializers/decidim/initiatives/open_data_initiative_serializer.rb +0 -1
- data/app/services/decidim/initiatives/data_encryptor.rb +1 -1
- data/app/services/decidim/initiatives/legacy_signature_handler.rb +25 -0
- data/app/services/decidim/initiatives/progress_notifier.rb +1 -7
- data/app/services/decidim/initiatives/signature_handler.rb +248 -0
- data/app/services/decidim/initiatives/status_change_notifier.rb +1 -7
- data/app/views/decidim/initiatives/admin/committee_requests/index.html.erb +29 -11
- data/app/views/decidim/initiatives/admin/exports/_dropdown.html.erb +17 -20
- data/app/views/decidim/initiatives/admin/initiatives/_form.html.erb +7 -13
- data/app/views/decidim/initiatives/admin/initiatives/_initiative_attachments.erb +2 -2
- data/app/views/decidim/initiatives/admin/initiatives/index.html.erb +76 -47
- data/app/views/decidim/initiatives/admin/initiatives_types/_form.html.erb +13 -21
- data/app/views/decidim/initiatives/admin/initiatives_types/_initiative_type_scopes.html.erb +28 -12
- data/app/views/decidim/initiatives/admin/initiatives_types/index.html.erb +33 -15
- data/app/views/decidim/initiatives/create_initiative/_committee_member.html.erb +27 -0
- data/app/views/decidim/initiatives/create_initiative/_return_to_initiatives_button.html.erb +3 -0
- data/app/views/decidim/initiatives/create_initiative/_send_to_technical_validation_button.html.erb +10 -0
- data/app/views/decidim/initiatives/create_initiative/_share_committee_link.html.erb +5 -1
- data/app/views/decidim/initiatives/create_initiative/fill_data.html.erb +7 -11
- data/app/views/decidim/initiatives/create_initiative/finish.html.erb +16 -13
- data/app/views/decidim/initiatives/create_initiative/promotal_committee.html.erb +33 -6
- data/app/views/decidim/initiatives/create_initiative/select_initiative_type.html.erb +40 -26
- data/app/views/decidim/initiatives/initiative_signatures/_sms_code_form.html.erb +22 -0
- data/app/views/decidim/initiatives/initiative_signatures/_sms_phone_number_form.html.erb +13 -0
- data/app/views/decidim/initiatives/initiative_signatures/fill_personal_data.html.erb +23 -22
- data/app/views/decidim/initiatives/initiative_signatures/finish.html.erb +17 -5
- data/app/views/decidim/initiatives/initiative_signatures/sms_code.html.erb +6 -8
- data/app/views/decidim/initiatives/initiative_signatures/sms_phone_number.html.erb +3 -8
- data/app/views/decidim/initiatives/initiative_signatures/update_buttons_and_counters.js.erb +3 -14
- data/app/views/decidim/initiatives/initiative_votes/update_buttons_and_counters.js.erb +3 -14
- data/app/views/decidim/initiatives/initiatives/_committee_members.html.erb +1 -1
- data/app/views/decidim/initiatives/initiatives/_form.html.erb +1 -3
- data/app/views/decidim/initiatives/initiatives/_new_initiative_button.html.erb +10 -3
- data/app/views/decidim/initiatives/initiatives/_pending_initiatives.html.erb +5 -0
- data/app/views/decidim/initiatives/initiatives/index.html.erb +8 -0
- data/app/views/decidim/initiatives/initiatives/show.html.erb +2 -2
- data/app/views/layouts/decidim/_initiative_signature_creation_header.html.erb +20 -2
- data/app/views/layouts/decidim/admin/_manage_initiatives.html.erb +1 -1
- data/app/views/layouts/decidim/initiative_signature_creation.html.erb +3 -1
- data/config/assets.rb +2 -2
- data/config/locales/ar.yml +0 -45
- data/config/locales/bg.yml +0 -54
- data/config/locales/ca-IT.yml +99 -51
- data/config/locales/ca.yml +99 -51
- data/config/locales/cs.yml +93 -54
- data/config/locales/de.yml +100 -52
- data/config/locales/el.yml +0 -45
- data/config/locales/en.yml +99 -51
- data/config/locales/es-MX.yml +99 -51
- data/config/locales/es-PY.yml +99 -51
- data/config/locales/es.yml +99 -51
- data/config/locales/eu.yml +120 -72
- data/config/locales/fi-plain.yml +99 -51
- data/config/locales/fi.yml +99 -51
- data/config/locales/fr-CA.yml +44 -51
- data/config/locales/fr.yml +44 -51
- data/config/locales/ga-IE.yml +0 -17
- data/config/locales/gl.yml +0 -41
- data/config/locales/hu.yml +0 -54
- data/config/locales/id-ID.yml +0 -40
- data/config/locales/is-IS.yml +0 -22
- data/config/locales/it.yml +0 -53
- data/config/locales/ja.yml +98 -49
- data/config/locales/lb.yml +0 -50
- data/config/locales/lt.yml +0 -56
- data/config/locales/lv.yml +0 -46
- data/config/locales/nl.yml +0 -47
- data/config/locales/no.yml +0 -53
- data/config/locales/pl.yml +0 -56
- data/config/locales/pt-BR.yml +0 -53
- data/config/locales/pt.yml +0 -53
- data/config/locales/ro-RO.yml +92 -50
- data/config/locales/ru.yml +0 -25
- data/config/locales/sk.yml +0 -43
- data/config/locales/sl.yml +0 -1
- data/config/locales/sv.yml +10 -53
- data/config/locales/tr-TR.yml +0 -53
- data/config/locales/uk.yml +0 -25
- data/config/locales/zh-CN.yml +0 -45
- data/config/locales/zh-TW.yml +0 -53
- data/db/migrate/20250605104500_remove_hashtag_column_initiatives.rb +7 -0
- data/lib/decidim/api/initiative_api_type.rb +3 -0
- data/lib/decidim/api/initiative_type.rb +23 -4
- data/lib/decidim/exporters/initiative_votes_pdf.rb +1 -1
- data/lib/decidim/initiatives/default_signature_authorizer.rb +17 -0
- data/lib/decidim/initiatives/engine.rb +17 -14
- data/lib/decidim/initiatives/menu.rb +1 -1
- data/lib/decidim/initiatives/participatory_space.rb +15 -1
- data/lib/decidim/initiatives/seeds.rb +1 -2
- data/lib/decidim/initiatives/signature_workflow_manifest.rb +176 -0
- data/lib/decidim/initiatives/signatures.rb +12 -0
- data/lib/decidim/initiatives/test/factories.rb +7 -7
- data/lib/decidim/initiatives/test/initiatives_signatures_test_helpers.rb +19 -0
- data/lib/decidim/initiatives/validatable_authorizations.rb +83 -0
- data/lib/decidim/initiatives/version.rb +1 -1
- data/lib/decidim/initiatives.rb +23 -12
- metadata +33 -21
- data/app/events/decidim/initiatives/endorse_initiative_event.rb +0 -13
- data/app/forms/decidim/initiatives/vote_form.rb +0 -208
- data/app/packs/src/decidim/initiatives/identity_selector_dialog.js +0 -14
- data/app/services/decidim/initiatives/pdf_signature_example.rb +0 -110
- data/app/views/decidim/initiatives/initiative_signatures/_wizard_steps.html.erb +0 -15
- data/app/views/decidim/initiatives/initiatives/_interactions.html.erb +0 -10
- data/app/views/layouts/decidim/_initiative_header.html.erb +0 -27
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="form__wrapper">
|
2
|
-
<div class="card" data-
|
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" %>
|
@@ -26,7 +26,7 @@
|
|
26
26
|
</div>
|
27
27
|
</div>
|
28
28
|
|
29
|
-
<div class="card" data-
|
29
|
+
<div class="card" data-controller="accordion" id="accordion-options">
|
30
30
|
<div class="card-divider">
|
31
31
|
<button class="card-divider-button" data-open="true" data-controls="panel-options" type="button">
|
32
32
|
<%= icon "arrow-right-s-line" %>
|
@@ -78,43 +78,35 @@
|
|
78
78
|
<div class="row column">
|
79
79
|
<%= form.check_box :comments_enabled %>
|
80
80
|
</div>
|
81
|
-
|
82
|
-
<div class="row column">
|
83
|
-
<%= form.check_box :collect_user_extra_fields %>
|
84
|
-
</div>
|
85
|
-
|
86
|
-
<div class="row column">
|
87
|
-
<%= form.translated :editor, :extra_fields_legal_information, aria: { label: :extra_fields_legal_information } %>
|
88
|
-
</div>
|
89
81
|
</div>
|
90
82
|
</div>
|
91
83
|
|
92
|
-
<div class="card" data-
|
84
|
+
<div class="card" data-controller="accordion" id="accordion-signature-workflow">
|
93
85
|
<div class="card-divider">
|
94
|
-
<button class="card-divider-button" data-open="true" data-controls="panel-
|
86
|
+
<button class="card-divider-button" data-open="true" data-controls="panel-signature-workflow" type="button">
|
95
87
|
<%= icon "arrow-right-s-line" %>
|
96
|
-
<h2 class="card-title" id="
|
97
|
-
<%= t("initiatives_types.form.
|
88
|
+
<h2 class="card-title" id="signature-workflow">
|
89
|
+
<%= t("initiatives_types.form.signature_workflow_settings", scope: "decidim.initiatives.admin") %>
|
98
90
|
</h2>
|
99
91
|
</button>
|
100
92
|
</div>
|
101
93
|
|
102
|
-
<div id="panel-
|
94
|
+
<div id="panel-signature-workflow" class="card-section">
|
103
95
|
<div class="row column">
|
104
96
|
<%=
|
105
97
|
form.select(
|
106
98
|
:document_number_authorization_handler,
|
107
|
-
|
99
|
+
Decidim::Initiatives::Signatures.workflows.map do |workflow|
|
100
|
+
[t("#{workflow.name}.name", scope: "decidim.initiatives.signatures.workflows"), workflow.name]
|
101
|
+
end,
|
108
102
|
include_blank: true
|
109
103
|
)
|
110
104
|
%>
|
111
105
|
</div>
|
112
106
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
</div>
|
117
|
-
<% end %>
|
107
|
+
<div class="row column">
|
108
|
+
<%= form.translated :editor, :extra_fields_legal_information, aria: { label: :extra_fields_legal_information } %>
|
109
|
+
</div>
|
118
110
|
</div>
|
119
111
|
</div>
|
120
112
|
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<div class="card" data-
|
1
|
+
<div class="card" data-controller="accordion" id="accordion-initiative_type_scope">
|
2
2
|
<div class="card-divider">
|
3
3
|
<h2 class="card-title gap-2" id="<%= t("initiatives_types.initiative_type_scopes.title", scope: "decidim.initiatives.admin") %>">
|
4
|
-
<button class="card-divider-button" data-open="true" data-controls="panel
|
4
|
+
<button class="card-divider-button" data-open="true" data-controls="panel-initiative_type_scope" type="button">
|
5
5
|
<%= icon "arrow-right-s-line" %>
|
6
6
|
<span>
|
7
7
|
<%= t("initiatives_types.initiative_type_scopes.title", scope: "decidim.initiatives.admin") %>
|
@@ -12,8 +12,8 @@
|
|
12
12
|
class: "button button__sm button__secondary flex-none" if allowed_to? :create, :initiative_type_scope %>
|
13
13
|
</h2>
|
14
14
|
</div>
|
15
|
-
<div id="panel
|
16
|
-
<div class="table-
|
15
|
+
<div id="panel-initiative_type_scope" class="card-section">
|
16
|
+
<div class="table-stacked">
|
17
17
|
<table class="table-list">
|
18
18
|
<thead>
|
19
19
|
<tr>
|
@@ -21,19 +21,35 @@
|
|
21
21
|
<th class="text-right">
|
22
22
|
<%= t("models.initiatives_type_scope.fields.supports_required", scope: "decidim.admin") %>
|
23
23
|
</th>
|
24
|
-
<th
|
24
|
+
<th><%= t("models.initiatives_type_scope.fields.actions", scope: "decidim.admin") %></th>
|
25
25
|
</tr>
|
26
26
|
</thead>
|
27
27
|
<tbody>
|
28
28
|
<% initiative_type.scopes.each do |s| %>
|
29
29
|
<tr>
|
30
|
-
<td
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
30
|
+
<td data-label="<%= t("models.initiatives_type_scope.fields.scope", scope: "decidim.admin") %>">
|
31
|
+
<%= translated_attribute(s.scope_name) %>
|
32
|
+
</td>
|
33
|
+
<td class="text-right" data-label="<%= t("models.initiatives_type_scope.fields.supports_required", scope: "decidim.admin") %>">
|
34
|
+
<%= s.supports_required %>
|
35
|
+
</td>
|
36
|
+
<td class="table-list__actions" data-label="<%= t("models.initiatives_type_scope.fields.actions", scope: "decidim.admin") %>">
|
37
|
+
<% if allowed_to? :edit, :initiative_type_scope, initiative_type_scope: s %>
|
38
|
+
<button type="button" data-controller="dropdown" data-target="actions-initiative-type-scope-<%= s.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: s.scope_name) %>">
|
39
|
+
<%= icon "more-fill", class: "text-secondary" %>
|
40
|
+
</button>
|
41
|
+
|
42
|
+
<div class="inline-block relative">
|
43
|
+
<ul id="actions-initiative-type-scope-<%= s.id %>" class="dropdown dropdown__action" aria-hidden="true">
|
44
|
+
<li class="dropdown__item">
|
45
|
+
<%= link_to decidim_admin_initiatives.edit_initiatives_type_initiatives_type_scope_path(initiative_type, s), class: "dropdown__button" do %>
|
46
|
+
<%= icon "pencil-line" %>
|
47
|
+
<%= t("actions.configure", scope: "decidim.admin") %>
|
48
|
+
<% end %>
|
49
|
+
</li>
|
50
|
+
</ul>
|
51
|
+
</div>
|
52
|
+
<% end %>
|
37
53
|
</td>
|
38
54
|
</tr>
|
39
55
|
<% end %>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
class: "button button__sm button__secondary" if allowed_to? :create, :initiative_type %>
|
10
10
|
</h1>
|
11
11
|
</div>
|
12
|
-
<div class="table-
|
12
|
+
<div class="table-stacked">
|
13
13
|
<table class="table-list">
|
14
14
|
<thead>
|
15
15
|
<tr>
|
@@ -21,27 +21,45 @@
|
|
21
21
|
<tbody>
|
22
22
|
<% @initiatives_types.each do |initiative_type| %>
|
23
23
|
<tr>
|
24
|
-
<td>
|
24
|
+
<td data-label="<%= t("models.initiatives_types.fields.title", scope: "decidim.admin") %>">
|
25
25
|
<% if allowed_to? :update, :initiative_type, initiative_type: initiative_type %>
|
26
26
|
<%= link_to translated_attribute(initiative_type.title), edit_initiatives_type_path(initiative_type) %>
|
27
27
|
<% else %>
|
28
28
|
<%= translated_attribute initiative_type.title %></td>
|
29
29
|
<% end %>
|
30
|
-
<td><%= l initiative_type.created_at, format: :short %></td>
|
31
|
-
<td class="table-list__actions">
|
32
|
-
|
33
|
-
<%=
|
34
|
-
|
35
|
-
<span class="action-space icon"></span>
|
36
|
-
<% end %>
|
30
|
+
<td data-label="<%= t("models.initiatives_types.fields.created_at", scope: "decidim.admin") %>"><%= l initiative_type.created_at, format: :short %></td>
|
31
|
+
<td class="table-list__actions" data-label="<%= t("initiatives_type.actions.title", scope: "decidim.resources") %>">
|
32
|
+
<button type="button" data-controller="dropdown" data-target="actions-initiative-type-<%= initiative_type.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: initiative_type.title) %>">
|
33
|
+
<%= icon "more-fill", class: "text-secondary" %>
|
34
|
+
</button>
|
37
35
|
|
38
|
-
|
36
|
+
<div class="inline-block relative">
|
37
|
+
<ul id="actions-initiative-type-<%= initiative_type.id %>" class="dropdown dropdown__action" aria-hidden="true">
|
38
|
+
<% if allowed_to? :update, :initiative_type, initiative_type: initiative_type %>
|
39
|
+
<li class="dropdown__item">
|
40
|
+
<%= link_to edit_initiatives_type_path(initiative_type), class: "dropdown__button" do %>
|
41
|
+
<%= icon "pencil-line" %>
|
42
|
+
<%= t("actions.configure", scope: "decidim.admin") %>
|
43
|
+
<% end %>
|
44
|
+
</li>
|
45
|
+
<% end %>
|
39
46
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
47
|
+
<li class="dropdown__item">
|
48
|
+
<%= free_resource_permissions_link(initiative_type) %>
|
49
|
+
</li>
|
50
|
+
|
51
|
+
<% if allowed_to? :destroy, :initiative_type, initiative_type: initiative_type %>
|
52
|
+
<hr>
|
53
|
+
|
54
|
+
<li class="dropdown__item">
|
55
|
+
<%= link_to initiative_type, method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }, class: "dropdown__button" do %>
|
56
|
+
<%= icon "delete-bin-line" %>
|
57
|
+
<%= t("actions.destroy", scope: "decidim.admin") %>
|
58
|
+
<% end %>
|
59
|
+
</li>
|
60
|
+
<% end %>
|
61
|
+
</ul>
|
62
|
+
</div>
|
45
63
|
</td>
|
46
64
|
</tr>
|
47
65
|
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<div class="flex items-center justify-between my-1">
|
2
|
+
<%= cell "decidim/author", request.user.presenter, layout: :compact %>
|
3
|
+
|
4
|
+
<div>
|
5
|
+
<% if allowed_to? :approve, :initiative_committee_member, initiative: current_initiative, request: request %>
|
6
|
+
<%= link_to(
|
7
|
+
approve_initiative_committee_request_path(current_initiative, request),
|
8
|
+
data: { confirm: t(".confirm_approve") },
|
9
|
+
class: "button button__xs button__transparent-secondary"
|
10
|
+
) do %>
|
11
|
+
<span><%= t(".approve") %></span>
|
12
|
+
<%= icon "check-line" %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
15
|
+
<% if allowed_to? :revoke, :initiative_committee_member, initiative: current_initiative, request: request %>
|
16
|
+
<%= link_to(
|
17
|
+
revoke_initiative_committee_request_path(current_initiative, request),
|
18
|
+
method: :delete,
|
19
|
+
data: { confirm: t(".confirm_revoke") },
|
20
|
+
class: "button button__xs button__transparent-secondary"
|
21
|
+
) do %>
|
22
|
+
<span><%= t(".revoke") %></span>
|
23
|
+
<%= icon "forbid-line" %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
</div>
|
27
|
+
</div>
|
data/app/views/decidim/initiatives/create_initiative/_send_to_technical_validation_button.html.erb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
<% if current_initiative.enough_committee_members? %>
|
2
|
+
<%= link_to t(".button"),
|
3
|
+
decidim_initiatives.send_to_technical_validation_initiative_path(current_initiative),
|
4
|
+
class: "button button__sm md:button__lg button__secondary",
|
5
|
+
data: { confirm: t(".confirm") } %>
|
6
|
+
<% else %>
|
7
|
+
<%= button_tag t(".button"),
|
8
|
+
class: "button button__sm md:button__lg button__secondary",
|
9
|
+
disabled: true %>
|
10
|
+
<% end %>
|
@@ -2,12 +2,16 @@
|
|
2
2
|
<span class="help-text mb-2">
|
3
3
|
<%= t ".invite_to_committee_help" %>
|
4
4
|
</span>
|
5
|
+
<span class="help-text mb-2">
|
6
|
+
<%= t ".invite_to_committee_help_2", committee_size: current_initiative.minimum_committee_members %>
|
7
|
+
<%= link_to t(".more_information"), decidim.page_path("initiatives"), target: "_blank" %>
|
8
|
+
</span>
|
5
9
|
<div class="initiative__form__committee">
|
6
10
|
<span>
|
7
11
|
<%= decidim_initiatives.new_initiative_committee_request_url(current_initiative) %>
|
8
12
|
</span>
|
9
13
|
<div class="ml-auto fill-secondary inline-block">
|
10
|
-
<button type="button" class="button button__sm button__text-secondary" data-clipboard-copy="#urlShareLink-committee">
|
14
|
+
<button type="button" class="button button__sm button__text-secondary" data-controller="clipboard-copy" data-clipboard-copy="#urlShareLink-committee">
|
11
15
|
<%= render_committee_tooltip %>
|
12
16
|
<span class="sr-only"><%= t("decidim.shared.share_modal.copy_share_link") %></span>
|
13
17
|
</button>
|
@@ -13,11 +13,9 @@
|
|
13
13
|
|
14
14
|
<%= f.hidden_field :type_id %>
|
15
15
|
|
16
|
-
<%= f.text_field :title,
|
16
|
+
<%= f.text_field :title, value: translated_attribute(f.object.title), data: { controller: "character-counter" } %>
|
17
17
|
|
18
|
-
<%= text_editor_for(f, :description, lines:
|
19
|
-
|
20
|
-
<%= f.text_field :hashtag %>
|
18
|
+
<%= text_editor_for(f, :description, lines: 20, toolbar: :content, value: translated_attribute(f.object.description)) %>
|
21
19
|
|
22
20
|
<% signature_type_options = signature_type_options(f.object) %>
|
23
21
|
<% if signature_type_options.length == 1 %>
|
@@ -40,10 +38,6 @@
|
|
40
38
|
<%= f.areas_select :area_id, areas_for_select(current_organization), prompt: t(".select_area") %>
|
41
39
|
<% end %>
|
42
40
|
|
43
|
-
<% if Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.any? %>
|
44
|
-
<%= f.select :decidim_user_group_id, Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.map { |g| [g.name, g.id] }, include_blank: current_user.name %>
|
45
|
-
<% end %>
|
46
|
-
|
47
41
|
<% if initiative_type.attachments_enabled? %>
|
48
42
|
<%= f.attachment :documents,
|
49
43
|
multiple: true,
|
@@ -66,9 +60,11 @@
|
|
66
60
|
<% end %>
|
67
61
|
|
68
62
|
<div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
|
69
|
-
|
70
|
-
<%=
|
71
|
-
|
63
|
+
<% if current_initiative %>
|
64
|
+
<%= link_to discard_initiative_path(current_initiative), class: "button button__sm md:button__lg button__text-secondary", method: :delete, data: { confirm: t(".confirm_discard") } do %>
|
65
|
+
<%= icon "delete-bin-line", class: "fill-current" %>
|
66
|
+
<%= t(".discard") %>
|
67
|
+
<% end %>
|
72
68
|
<% end %>
|
73
69
|
<%= f.submit t(".continue"), class: "button button__sm md:button__lg button__secondary", data: { disable_with: true } %>
|
74
70
|
</div>
|
@@ -6,28 +6,31 @@
|
|
6
6
|
<% end %>
|
7
7
|
<% end %>
|
8
8
|
|
9
|
+
<% is_validating = current_initiative.validating? %>
|
10
|
+
|
9
11
|
<% announcement_body = capture do %>
|
10
|
-
|
11
|
-
|
12
|
+
<% if is_validating %>
|
13
|
+
<%= t("callout_text_validating", scope: "decidim.initiatives.create_initiative.finish") %>
|
14
|
+
<% else %>
|
15
|
+
<%= t("callout_text_created", scope: "decidim.initiatives.create_initiative.finish") %>
|
16
|
+
<% end %>
|
12
17
|
<% end %>
|
13
18
|
|
14
19
|
<%= cell("decidim/announcement", { body: announcement_body }, callout_class: "secondary") %>
|
15
20
|
|
16
21
|
<div class="form__wrapper">
|
17
|
-
<p
|
22
|
+
<p><%= t "publish_helper_text_html", scope: "decidim.initiatives.create_initiative.finish" %></p>
|
18
23
|
</div>
|
19
24
|
|
20
25
|
<div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
|
21
|
-
|
22
|
-
<%=
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
<%= link_to t(".go_to_my_initiatives"), decidim_initiatives.initiatives_path(filter: { author: "myself", with_any_state: "" }), class: "button button__sm md:button__lg button__secondary" %>
|
26
|
+
<% if is_validating %>
|
27
|
+
<%= link_to t(".go_to_initiatives"), decidim_initiatives.initiatives_path, class: "button button__sm md:button__lg button__secondary" %>
|
28
|
+
<% else %>
|
29
|
+
<%= link_to fill_data_create_initiative_index_path, class: "button button__sm md:button__lg button__text-secondary" do %>
|
30
|
+
<%= icon "arrow-left-line", class: "fill-current" %>
|
31
|
+
<%= t("back", scope: "decidim.initiatives.create_initiative.previous_form") %>
|
32
|
+
<% end %>
|
29
33
|
|
30
|
-
|
31
|
-
<%= link_to t(".send_my_initiative"), decidim_initiatives.send_to_technical_validation_initiative_path(current_initiative), class: "button button__sm md:button__lg button__secondary", data: { confirm: t(".confirm") } %>
|
34
|
+
<%= render partial: "send_to_technical_validation_button" %>
|
32
35
|
<% end %>
|
33
36
|
</div>
|
@@ -1,19 +1,46 @@
|
|
1
1
|
<% add_decidim_page_title(t("new", scope: "decidim.initiatives.create_initiative.select_initiative_type")) %>
|
2
2
|
<% announcement_body = capture do %>
|
3
|
-
<%= t ".individual_help_text"
|
4
|
-
<%= link_to t(".more_information"), decidim.page_path("initiatives"), target: "_blank", class: "button button__sm button__text-secondary block text-left" %>
|
3
|
+
<%= t ".individual_help_text" %>
|
5
4
|
<% end %>
|
6
5
|
|
7
6
|
<%= cell("decidim/announcement", { body: announcement_body }, callout_class: "secondary") %>
|
8
7
|
|
9
|
-
<
|
10
|
-
|
8
|
+
<h3 class="title-decorator text-2xl my-8"><%= t(".invite_link_title") %></h3>
|
9
|
+
|
10
|
+
<%= render partial: "share_committee_link" %>
|
11
|
+
|
12
|
+
<h3 class="title-decorator text-2xl mb-8 mt-10"><%= t(".promoters_committee_title") %></h3>
|
13
|
+
|
14
|
+
<div class="block">
|
15
|
+
<span class="help-text mb-4">
|
16
|
+
<%= t(".promoters_committee_help_html", committee_members_left: minimum_committee_members - promoters_committee_members.count,
|
17
|
+
committee_members_count: promoters_committee_members.count,
|
18
|
+
committee_size: minimum_committee_members) %>
|
19
|
+
</span>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<% if promoters_committee_members.count.positive? %>
|
23
|
+
<div class="block">
|
24
|
+
<% current_initiative.committee_members.each do |request| %>
|
25
|
+
<%= render partial: "committee_member", locals: { request: request } %>
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
<div class="block">
|
31
|
+
<span class="help-text mt-4 mb-8 font-semibold">
|
32
|
+
<%= t(".promoters_committee_help_2") %>
|
33
|
+
</span>
|
11
34
|
</div>
|
12
35
|
|
13
36
|
<div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
|
14
|
-
<%= link_to
|
37
|
+
<%= link_to fill_data_create_initiative_index_path, class: "button button__sm md:button__lg button__text-secondary" do %>
|
15
38
|
<%= icon "arrow-left-line", class: "fill-current" %>
|
16
39
|
<%= t("back", scope: "decidim.initiatives.create_initiative.previous_form") %>
|
17
40
|
<% end %>
|
18
|
-
|
41
|
+
<div>
|
42
|
+
<%= render partial: "send_to_technical_validation_button" %>
|
43
|
+
</div>
|
19
44
|
</div>
|
45
|
+
|
46
|
+
<%= render partial: "return_to_initiatives_button" %>
|
@@ -1,46 +1,60 @@
|
|
1
1
|
<% add_decidim_page_title(t("new", scope: "decidim.initiatives.create_initiative.select_initiative_type")) %>
|
2
2
|
<% default_type = available_initiative_types.first %>
|
3
3
|
<% announcement_body = capture do %>
|
4
|
-
<%= t("
|
4
|
+
<%= t("select_initiative_type_help_html", scope: "decidim.initiatives.create_initiative.select_initiative_type") %>
|
5
|
+
<br>
|
5
6
|
<%= link_to t("more_information", scope: "decidim.initiatives.create_initiative.select_initiative_type"), decidim.page_path("initiatives"), target: "_blank", class: "button button__sm button__text-secondary block text-left" %>
|
6
7
|
<% end %>
|
7
8
|
|
8
9
|
<%= cell("decidim/announcement", { body: announcement_body }, callout_class: "secondary") %>
|
9
10
|
|
10
|
-
<
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
<
|
28
|
-
|
29
|
-
|
30
|
-
|
11
|
+
<h3 class="title-decorator text-2xl mt-8"><%= t(".subtitle") %></h3>
|
12
|
+
|
13
|
+
<div class="initiatives__selection" id="select-initiative-type">
|
14
|
+
<%= decidim_form_for(@form, url: select_initiative_type_create_initiative_index_path, method: :put, html: { id: "new_initiative_form", class: "form-defaults " }) do |f| %>
|
15
|
+
<% initiative_types_each do |type| %>
|
16
|
+
<% is_allowed = allowed_to?(:create, :initiative, { initiative_type: type }) %>
|
17
|
+
|
18
|
+
<%= render layout: "decidim/application/radio_accordion",
|
19
|
+
locals: {
|
20
|
+
panel_id: type.id,
|
21
|
+
title: translated_attribute(type.title),
|
22
|
+
input_radio_name: "initiative[type_id]",
|
23
|
+
input_radio_value: type.id,
|
24
|
+
show_more_text: t("show_more", scope: "decidim.initiatives.create_initiative.select_initiative_type"),
|
25
|
+
show_less_text: t("show_less", scope: "decidim.initiatives.create_initiative.select_initiative_type"),
|
26
|
+
disabled: !is_allowed
|
27
|
+
} do %>
|
28
|
+
<p>
|
29
|
+
<%= decidim_sanitize_admin(translated_attribute(type.description)) %>
|
30
|
+
</p>
|
31
|
+
|
32
|
+
<% if !is_allowed %>
|
33
|
+
<p>
|
34
|
+
<%= action_authorized_link_to(
|
31
35
|
:create,
|
32
36
|
fill_data_create_initiative_index_path(initiative: { type_id: type.id }),
|
33
37
|
authorizations_modal_path: authorization_create_modal_initiative_path(type),
|
34
38
|
permissions_holder: type,
|
35
|
-
class: "button button__sm
|
39
|
+
class: "button button__sm button__transparent-secondary",
|
36
40
|
"data-dialog-open": "not-authorized-modal",
|
37
41
|
onclick: "event.preventDefault();"
|
38
42
|
) do %>
|
39
43
|
<%= t("verification_required", scope: "decidim.initiatives.create_initiative.select_initiative_type") %>
|
40
|
-
|
41
|
-
|
42
|
-
|
44
|
+
<% end %>
|
45
|
+
</p>
|
46
|
+
<% end %>
|
47
|
+
|
48
|
+
<p>
|
49
|
+
<%= link_to t("consult_existing_initiatives", scope: "decidim.initiatives.create_initiative.select_initiative_type"),
|
50
|
+
initiatives_path(filter: { with_any_type: type.id }), target: "_blank" %>
|
51
|
+
</p>
|
52
|
+
<% end %>
|
43
53
|
<% end %>
|
54
|
+
|
55
|
+
<div class="form__wrapper-block flex-col-reverse md:flex-row justify-between border-0">
|
56
|
+
<%= f.submit t(".continue"), class: "button button__sm md:button__lg button__secondary" %>
|
57
|
+
</div>
|
44
58
|
<% end %>
|
45
59
|
</div>
|
46
60
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div class="form__wrapper">
|
2
|
+
<label for="mobile_phone_verification_code">
|
3
|
+
<%= t("decidim.initiatives.initiative_signatures.sms_phone_number.your_confirmation_code") %>
|
4
|
+
<div class="flex gap-x-4" data-check-code>
|
5
|
+
<% (0..5).each do |i| %>
|
6
|
+
<input pattern="^[0-9]$" maxlength="1" size="1" type="tel" class="" name="mobile_phone[verification_code][<%= i %>]" data-verification-code="<%= i %>">
|
7
|
+
<% end %>
|
8
|
+
<%= form.hidden_field(:verification_code, data: { check_code_path: sms_code_initiative_signatures_path }) %>
|
9
|
+
</div>
|
10
|
+
</label>
|
11
|
+
<%= cell("decidim/announcement", t("decidim.initiatives.initiative_signatures.sms_phone_number.your_code_is_correct"), callout_class: "success code-correct-announcement hidden") %>
|
12
|
+
<%= cell("decidim/announcement", t("decidim.initiatives.initiative_signatures.sms_phone_number.your_code_is_incorrect"), callout_class: "warning code-incorrect-announcement hidden") %>
|
13
|
+
|
14
|
+
<button type="submit" class="button button__lg button__secondary hidden" disabled data-submit-verification-code>
|
15
|
+
<span><%= t("decidim.initiatives.initiative_signatures.sms_phone_number.continue") %></span>
|
16
|
+
<%= icon "arrow-right-line", class: "fill-current" %>
|
17
|
+
</button>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div class="editor-content" data-resend-code>
|
21
|
+
<%= t("decidim.initiatives.initiative_signatures.sms_phone_number.resend_code_html", new_code_path: sms_phone_number_initiative_signatures_path) %>
|
22
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<% disabled = local_assigns[:disabled] %>
|
2
|
+
|
3
|
+
<div class="text-left editor-content">
|
4
|
+
<p><%= t("decidim.initiatives.initiative_signatures.sms_phone_number.help_enter_your_number") %></p>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="form__wrapper">
|
8
|
+
<%= sms_phone_number_form.text_field :mobile_phone_number, type: "tel", disabled: %>
|
9
|
+
<button class="button button__lg button__secondary" <%= disabled ? "disabled" : "" %>>
|
10
|
+
<span><%= t("decidim.initiatives.initiative_signatures.sms_phone_number.receive_code") %></span>
|
11
|
+
<%= icon "arrow-right-line", class: "fill-current" %>
|
12
|
+
</button>
|
13
|
+
</div>
|
@@ -1,32 +1,33 @@
|
|
1
|
-
|
1
|
+
<% custom_partial_path = lookup_context.exists?(@form.to_partial_path, [], true) && @form.to_partial_path %>
|
2
|
+
<% unless custom_partial_path %>
|
3
|
+
<%= cell("decidim/announcement", t("decidim.initiatives.initiative_signatures.fill_personal_data.help"), callout_class: "secondary") %>
|
4
|
+
<% end %>
|
2
5
|
|
3
|
-
<%= decidim_form_for(@form, url: fill_personal_data_initiative_signatures_path, method: :put) do |f| %>
|
6
|
+
<%= decidim_form_for(@form, url: fill_personal_data_initiative_signatures_path, method: :put, builder: Decidim::AuthorizationFormBuilder) do |f| %>
|
4
7
|
<%= form_required_explanation %>
|
5
|
-
<div>
|
6
|
-
<div class="form__wrapper">
|
7
|
-
<%= f.text_field :name_and_surname, autofocus: true, required: true %>
|
8
|
-
</div>
|
9
|
-
|
10
|
-
<div class="form__wrapper">
|
11
|
-
<%= f.text_field :document_number, required: true %>
|
12
|
-
</div>
|
13
8
|
|
9
|
+
<% if custom_partial_path %>
|
10
|
+
<%= render partial: custom_partial_path, locals: { handler: @form, form: f } %>
|
11
|
+
<% else %>
|
14
12
|
<div class="form__wrapper">
|
15
|
-
<%= f.
|
13
|
+
<%= f.all_fields %>
|
16
14
|
</div>
|
15
|
+
<% end %>
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
<div>
|
23
|
-
<small>
|
24
|
-
<%= strip_tags(translated_attribute(extra_data_legal_information)) %>
|
25
|
-
</small>
|
26
|
-
</div>
|
17
|
+
<div class="editor-content">
|
18
|
+
<small>
|
19
|
+
<%= decidim_sanitize_admin(translated_attribute(extra_data_legal_information)) %>
|
20
|
+
</small>
|
27
21
|
</div>
|
28
22
|
|
29
|
-
|
30
|
-
<%=
|
23
|
+
<% if current_user.ephemeral? && !current_user.tos_accepted? %>
|
24
|
+
<%= render partial: "/decidim/verifications/authorizations/tos_acceptance_field", locals: { form: f } %>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<div class="form__wrapper">
|
28
|
+
<button type="submit" class="button button__lg button__secondary">
|
29
|
+
<span><%= t(".continue") %></span>
|
30
|
+
<%= icon "arrow-right-line", class: "fill-current" %>
|
31
|
+
</button>
|
31
32
|
</div>
|
32
33
|
<% end %>
|
@@ -1,6 +1,18 @@
|
|
1
|
-
|
1
|
+
<div class="flex flex-col gap-4 items-center text-center my-12">
|
2
|
+
<%= success_animation %>
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
<h1 class="h1 inline-block">
|
5
|
+
<%= t("title", scope: "decidim.initiatives.initiative_signatures.finish") %>
|
6
|
+
</h1>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<%= t("decidim.initiatives.initiative_votes.create.success_html", title: translated_attribute(current_initiative.title)) %>
|
10
|
+
</p>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
|
14
|
+
<%= link_to initiative_path(current_initiative), class: "button button__sm md:button__lg button__secondary mr-auto !ml-0" do %>
|
15
|
+
<%= icon "arrow-left-line", class: "fill-current" %>
|
16
|
+
<%= t("back_to_initiative", scope: "decidim.initiatives.initiative_signatures.finish") %>
|
17
|
+
<% end %>
|
18
|
+
</div>
|