decidim-elections 0.31.0.rc1 → 0.31.0.rc2
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/app/cells/decidim/elections/election_card_metadata_cell.rb +2 -3
- data/app/helpers/decidim/elections/admin/elections_helper.rb +1 -6
- data/app/helpers/decidim/elections/label_helper.rb +25 -0
- data/app/packs/entrypoints/decidim_elections.scss +0 -1
- data/app/packs/entrypoints/decidim_elections_admin.scss +0 -1
- data/app/views/decidim/elections/admin/census/edit.html.erb +11 -6
- data/app/views/decidim/elections/admin/dashboard/_calendar.html.erb +10 -6
- data/app/views/decidim/elections/admin/elections/dashboard.html.erb +24 -12
- data/app/views/decidim/elections/admin/elections/edit.html.erb +13 -3
- data/app/views/decidim/elections/admin/elections/new.html.erb +9 -4
- data/app/views/decidim/elections/admin/questions/_form.html.erb +30 -1
- data/app/views/decidim/elections/admin/questions/_question.html.erb +0 -10
- data/app/views/decidim/elections/admin/questions/edit_questions.html.erb +15 -8
- data/config/locales/ca-IT.yml +2 -2
- data/config/locales/ca.yml +2 -2
- data/config/locales/cs.yml +28 -0
- data/config/locales/es.yml +1 -1
- data/config/locales/fr-CA.yml +4 -0
- data/config/locales/fr.yml +4 -0
- data/config/locales/ja.yml +64 -0
- data/lib/decidim/elections/version.rb +1 -1
- metadata +15 -15
- data/app/packs/stylesheets/decidim/elections/labels.scss +0 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1350982617f9cf2b5417179740fe67d319fd01e74c85fbcc823f092d78b23923
|
|
4
|
+
data.tar.gz: 29788cfe9ee20c68fbbd6739baee65968c98c1ed3daf344e11634ba3f458687e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3535497567d41f0d365331a63ffb3aa2f751bcef39460de3f9c3ab377f64e0be9011f85748b819f4910141bdcfbd5ff506b96d11ba3d52d71175571381b80f91
|
|
7
|
+
data.tar.gz: 07cfca093845a3378687f949072ac9a16fcace3ce766e1bbe6be70922db0dc04b8380c3c44fa67d867802766ef5cf1800dd164d9937889ec8c375be1140e3526
|
|
@@ -6,6 +6,7 @@ module Decidim
|
|
|
6
6
|
class ElectionCardMetadataCell < Decidim::CardMetadataCell
|
|
7
7
|
include Decidim::LayoutHelper
|
|
8
8
|
include ActionView::Helpers::DateHelper
|
|
9
|
+
include Decidim::Elections::LabelHelper
|
|
9
10
|
|
|
10
11
|
alias election model
|
|
11
12
|
|
|
@@ -22,9 +23,7 @@ module Decidim
|
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
def label
|
|
25
|
-
{
|
|
26
|
-
text: content_tag("span", t(election.status, scope: "decidim.elections.status"), class: "#{election.status} label")
|
|
27
|
-
}
|
|
26
|
+
{ text: election_status_with_label(election) }
|
|
28
27
|
end
|
|
29
28
|
|
|
30
29
|
def current_date
|
|
@@ -5,6 +5,7 @@ module Decidim
|
|
|
5
5
|
module Admin
|
|
6
6
|
module ElectionsHelper
|
|
7
7
|
include Decidim::ApplicationHelper
|
|
8
|
+
include Decidim::Elections::LabelHelper
|
|
8
9
|
|
|
9
10
|
def census_count(election)
|
|
10
11
|
election.census&.count(election).to_i
|
|
@@ -24,12 +25,6 @@ module Decidim
|
|
|
24
25
|
election.census.user_presenter.constantize.new(user)
|
|
25
26
|
end
|
|
26
27
|
|
|
27
|
-
def election_status_with_label(election)
|
|
28
|
-
content_tag(:span,
|
|
29
|
-
I18n.t("decidim.elections.status.#{election.status}"),
|
|
30
|
-
class: "#{election.status} label")
|
|
31
|
-
end
|
|
32
|
-
|
|
33
28
|
def election_status_action_data(election)
|
|
34
29
|
if election.scheduled? && election.manual_start?
|
|
35
30
|
{
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Elections
|
|
5
|
+
# Helpers to render the states as labels on Elections (ongoing, finished, unpublished)
|
|
6
|
+
module LabelHelper
|
|
7
|
+
def election_status_with_label(election)
|
|
8
|
+
css_class = case election.status
|
|
9
|
+
when :ongoing
|
|
10
|
+
"warning"
|
|
11
|
+
when :finished
|
|
12
|
+
"success"
|
|
13
|
+
when :unpublished
|
|
14
|
+
"alert"
|
|
15
|
+
else
|
|
16
|
+
"reverse"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
content_tag(:span,
|
|
20
|
+
I18n.t("decidim.elections.status.#{election.status}"),
|
|
21
|
+
class: "#{css_class} label")
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
<%= append_javascript_pack_tag "decidim_elections_admin" %>
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
<%= button_tag t("save", scope: "decidim.elections.admin.elections.form"), class: "main-tabs-menu__cta-button #{"hide" unless election.census}", form: "census-election-form" %>
|
|
5
|
-
<% end %>
|
|
6
|
-
|
|
7
|
-
<div class="item_show__header form-defaults">
|
|
3
|
+
<div class="item_show__header form-defaults border-none">
|
|
8
4
|
<h1 class="item_show__header-title">
|
|
9
5
|
<%= t(".title") %>
|
|
10
6
|
</h1>
|
|
@@ -14,6 +10,9 @@
|
|
|
14
10
|
id: "census-manifest-selector" %>
|
|
15
11
|
|
|
16
12
|
</div>
|
|
13
|
+
|
|
14
|
+
<%= render "decidim/elections/admin/elections/tabs_menu" %>
|
|
15
|
+
|
|
17
16
|
<% if election.census_ready? %>
|
|
18
17
|
<%
|
|
19
18
|
census_ready = t("decidim.elections.censuses.census_ready_html", election_title: decidim_sanitize_translated(election.title))
|
|
@@ -21,7 +20,7 @@
|
|
|
21
20
|
%>
|
|
22
21
|
<%= cell "decidim/announcement", "#{census_ready}<br>#{census_count}", callout_class: "success" %>
|
|
23
22
|
<% end %>
|
|
24
|
-
<div class="card-section census-form form-defaults">
|
|
23
|
+
<div class="card-section census-form form-defaults 2xl:mr-80">
|
|
25
24
|
<% if @form && election.census&.admin_form_partial %>
|
|
26
25
|
<%= decidim_form_for(@form, url: election_census_path(election, manifest: election.census&.name), method: :patch, multipart: true, html: { id: "census-election-form" }) do |f| %>
|
|
27
26
|
<%= render partial: election.census.admin_form_partial, locals: { form: f } %>
|
|
@@ -31,3 +30,9 @@
|
|
|
31
30
|
<%= render partial: "decidim/elections/admin/census/preview", locals: { election: } if preview_users(election).present? %>
|
|
32
31
|
</div>
|
|
33
32
|
</div>
|
|
33
|
+
|
|
34
|
+
<div class="item__edit-sticky">
|
|
35
|
+
<div class="item__edit-sticky-container">
|
|
36
|
+
<%= button_tag t("save", scope: "decidim.elections.admin.elections.form"), class: "button button__sm button__secondary #{"hide" unless election.census}", form: "census-election-form" %>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
<div class="card-divider">
|
|
3
3
|
<h2 class="card-title justify-between">
|
|
4
4
|
<span class="text-black font-bold"><%= t("decidim.elections.admin.dashboard.calendar.title") %></span>
|
|
5
|
-
<% if (action_data = election_status_action_data(election)) %>
|
|
6
|
-
<%= form_with url: update_status_election_path(election), method: :put, local: true do %>
|
|
7
|
-
<%= hidden_field_tag :status_action, action_data[:status_action] %>
|
|
8
|
-
<%= button_tag action_data[:label], class: "button button__xs button__secondary small" %>
|
|
9
|
-
<% end %>
|
|
10
|
-
<% end %>
|
|
11
5
|
</h2>
|
|
12
6
|
</div>
|
|
13
7
|
|
|
@@ -30,3 +24,13 @@
|
|
|
30
24
|
</div>
|
|
31
25
|
</div>
|
|
32
26
|
</div>
|
|
27
|
+
<div class="item__edit-sticky">
|
|
28
|
+
<div class="item__edit-sticky-container">
|
|
29
|
+
<% if (action_data = election_status_action_data(election)) %>
|
|
30
|
+
<%= form_with url: update_status_election_path(election), method: :put, local: true do %>
|
|
31
|
+
<%= hidden_field_tag :status_action, action_data[:status_action] %>
|
|
32
|
+
<%= button_tag action_data[:label], class: "button button__sm button__secondary" %>
|
|
33
|
+
<% end %>
|
|
34
|
+
<% end %>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
@@ -3,17 +3,12 @@
|
|
|
3
3
|
<% append_javascript_pack_tag "decidim_elections_admin" %>
|
|
4
4
|
<% append_stylesheet_pack_tag "decidim_elections_admin" %>
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
<div class="item_show__header" style="border-bottom: none;">
|
|
7
|
+
<h1 class="item_show__header-title">
|
|
8
|
+
<%= t(".title") %>
|
|
9
|
+
</h1>
|
|
10
|
+
|
|
7
11
|
<div>
|
|
8
|
-
<% if allowed_to?(:publish, :election, election:) %>
|
|
9
|
-
<%= link_to publish_election_path(election),
|
|
10
|
-
method: :put,
|
|
11
|
-
class: "button button__xs button__secondary",
|
|
12
|
-
data: { confirm: t("publish_confirm", scope: "decidim.elections.admin.dashboard") } do %>
|
|
13
|
-
<%= icon "check-line" %>
|
|
14
|
-
<%= t("publish", scope: "decidim.elections.admin.elections.form") %>
|
|
15
|
-
<% end %>
|
|
16
|
-
<% end %>
|
|
17
12
|
<%= link_to resource_locator(election).path, class: "button button__xs button__transparent-secondary", target: :blank, data: { "external-link": false } do %>
|
|
18
13
|
<%= icon "eye-line" %>
|
|
19
14
|
<%# i18n-tasks-use t("decidim.elections.actions.view") %>
|
|
@@ -21,9 +16,11 @@
|
|
|
21
16
|
<%= t(election.published? ? "view" : "preview", scope: "decidim.elections.actions") %>
|
|
22
17
|
<% end %>
|
|
23
18
|
</div>
|
|
24
|
-
|
|
19
|
+
</div>
|
|
25
20
|
|
|
26
|
-
|
|
21
|
+
<%= render "decidim/elections/admin/elections/tabs_menu" %>
|
|
22
|
+
|
|
23
|
+
<div class="item__edit-form 2xl:mr-80">
|
|
27
24
|
<% if election.published? %>
|
|
28
25
|
<div class="flex flex-col md:flex-row gap-4 w-full mb-10">
|
|
29
26
|
<div class="flex-1"><%= render partial: "decidim/elections/admin/dashboard/status" %></div>
|
|
@@ -37,3 +34,18 @@
|
|
|
37
34
|
<%= render partial: "decidim/elections/admin/dashboard/census" %>
|
|
38
35
|
<% end %>
|
|
39
36
|
</div>
|
|
37
|
+
<% unless election.published? %>
|
|
38
|
+
<div class="item__edit-sticky">
|
|
39
|
+
<div class="item__edit-sticky-container">
|
|
40
|
+
<% if allowed_to?(:publish, :election, election:) %>
|
|
41
|
+
<%= link_to publish_election_path(election),
|
|
42
|
+
method: :put,
|
|
43
|
+
class: "button button__sm button__secondary",
|
|
44
|
+
data: { confirm: t("publish_confirm", scope: "decidim.elections.admin.dashboard") } do %>
|
|
45
|
+
<%= icon "check-line" %>
|
|
46
|
+
<%= t("publish", scope: "decidim.elections.admin.elections.form") %>
|
|
47
|
+
<% end %>
|
|
48
|
+
<% end %>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
<% end %>
|
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
<% append_javascript_pack_tag "decidim_elections_admin" %>
|
|
4
4
|
<% append_stylesheet_pack_tag "decidim_elections_admin" %>
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
<div class="item_show__header" style="border-bottom: none;">
|
|
7
|
+
<h1 class="item_show__header-title">
|
|
8
|
+
<%= t(".title") %>
|
|
9
|
+
</h1>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
<%= render "decidim/elections/admin/elections/tabs_menu" %>
|
|
9
13
|
|
|
10
14
|
<div class="item__edit item__edit-1col">
|
|
11
15
|
<div class="item__edit-form">
|
|
@@ -13,4 +17,10 @@
|
|
|
13
17
|
<%= render partial: "form", object: f %>
|
|
14
18
|
<% end %>
|
|
15
19
|
</div>
|
|
20
|
+
|
|
21
|
+
<div class="item__edit-sticky">
|
|
22
|
+
<div class="item__edit-sticky-container">
|
|
23
|
+
<%= button_tag t("save", scope: "decidim.elections.admin.elections.form"), class: "button button__sm button__secondary", form: "basic-election-form-edit" %>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
16
26
|
</div>
|
|
@@ -3,19 +3,24 @@
|
|
|
3
3
|
<% append_javascript_pack_tag "decidim_elections_admin" %>
|
|
4
4
|
<% append_stylesheet_pack_tag "decidim_elections_admin" %>
|
|
5
5
|
|
|
6
|
-
<%= render "decidim/elections/admin/elections/tabs_menu" do %>
|
|
7
|
-
<%= button_tag t("save", scope: "decidim.elections.admin.elections.form"), class: "main-tabs-menu__cta-button", form: "basic-election-form-new" %>
|
|
8
|
-
<% end %>
|
|
9
|
-
|
|
10
6
|
<div class="item_show__header">
|
|
11
7
|
<h1 class="item_show__header-title">
|
|
12
8
|
<%= t(".title") %>
|
|
13
9
|
</h1>
|
|
14
10
|
</div>
|
|
11
|
+
|
|
12
|
+
<%= render "decidim/elections/admin/elections/tabs_menu" %>
|
|
13
|
+
|
|
15
14
|
<div class="item__edit item__edit-1col">
|
|
16
15
|
<div class="item__edit-form">
|
|
17
16
|
<%= decidim_form_for(@form, html: { id: "basic-election-form-new", class: "form-defaults form new_election" }) do |f| %>
|
|
18
17
|
<%= render partial: "form", object: f %>
|
|
19
18
|
<% end %>
|
|
19
|
+
|
|
20
|
+
<div class="item__edit-sticky">
|
|
21
|
+
<div class="item__edit-sticky-container">
|
|
22
|
+
<%= button_tag t("save", scope: "decidim.elections.admin.elections.form"), class: "button button__sm button__secondary", form: "basic-election-form-new" %>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
20
25
|
</div>
|
|
21
26
|
</div>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<%= render "decidim/elections/admin/questions/response_option_template", form: question_form, editable: true, template_id: "response-option-template-dummy" %>
|
|
17
17
|
<% end %>
|
|
18
18
|
|
|
19
|
-
<div class="questionnaire-questions-list flex flex-col py-6 gap-6 last:pb-0">
|
|
19
|
+
<div class="questionnaire-questions-list flex flex-col py-6 gap-6 last:pb-0" data-draggable-table data-sort-url="#" id="questionnaire-questions-list">
|
|
20
20
|
<% @form.questions.each_with_index do |question, index| %>
|
|
21
21
|
<%= fields_for "questions[]", question do |question_form| %>
|
|
22
22
|
<%= render "decidim/elections/admin/questions/question",
|
|
@@ -35,5 +35,34 @@
|
|
|
35
35
|
<script>
|
|
36
36
|
document.addEventListener("turbo:load", function () {
|
|
37
37
|
window.Decidim.createEditableForm();
|
|
38
|
+
|
|
39
|
+
// Function to initialize the sortable functionality
|
|
40
|
+
function initializeSortable() {
|
|
41
|
+
const container = document.querySelector("#questionnaire-questions-list");
|
|
42
|
+
const questionCards = container?.querySelectorAll(".card.questionnaire-question");
|
|
43
|
+
|
|
44
|
+
if (!container || !questionCards?.length) return;
|
|
45
|
+
|
|
46
|
+
questionCards.forEach(card => {
|
|
47
|
+
card.setAttribute("draggable", "true");
|
|
48
|
+
card.setAttribute("role", "option");
|
|
49
|
+
card.setAttribute("aria-grabbed", "false");
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
window.Decidim?.createSortableList?.("#questionnaire-questions-list");
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Initialize on load and when new options such as questions etc are added
|
|
56
|
+
initializeSortable();
|
|
57
|
+
|
|
58
|
+
const observer = new MutationObserver(() => {
|
|
59
|
+
clearTimeout(observer.timer);
|
|
60
|
+
observer.timer = setTimeout(initializeSortable, 500);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const container = document.querySelector("#questionnaire-questions-list");
|
|
64
|
+
if (container) {
|
|
65
|
+
observer.observe(container, { childList: true, subtree: true });
|
|
66
|
+
}
|
|
38
67
|
});
|
|
39
68
|
</script>
|
|
@@ -25,16 +25,6 @@
|
|
|
25
25
|
</button>
|
|
26
26
|
|
|
27
27
|
<% if editable %>
|
|
28
|
-
<button class="button button__xs button__transparent-secondary small alert move-up-question button--title">
|
|
29
|
-
<%= icon("arrow-up-line") %>
|
|
30
|
-
<span class="hidden md:block"><%= t("up", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
|
31
|
-
</button>
|
|
32
|
-
|
|
33
|
-
<button class="button button__xs button__transparent-secondary small alert move-down-question button--title">
|
|
34
|
-
<%= icon("arrow-down-line") %>
|
|
35
|
-
<span class="hidden md:block"><%= t("down", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
|
36
|
-
</button>
|
|
37
|
-
|
|
38
28
|
<button class="button button__xs button__transparent-secondary small alert remove-question button--title" data-confirm="<%= t("remove_question_confirm", scope: "decidim.elections.admin.questions.edit_questions") %>">
|
|
39
29
|
<%= icon "delete-bin-line" %>
|
|
40
30
|
<span class="hidden md:block"><%= t("remove", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
<% add_decidim_page_title(t(".title")) %>
|
|
2
2
|
|
|
3
|
-
<%= render "decidim/elections/admin/elections/tabs_menu" do %>
|
|
4
|
-
<%= button_tag t("save", scope: "decidim.elections.admin.elections.form"), class: "main-tabs-menu__cta-button", form: "questions-election-form" %>
|
|
5
|
-
<% end %>
|
|
6
|
-
|
|
7
3
|
<div class="questionnaire-questions">
|
|
4
|
+
<div class="item_show__header" style="border-bottom: none;">
|
|
5
|
+
<h1 class="item_show__header-title">
|
|
6
|
+
<%= t(".title") %>
|
|
7
|
+
<button class="button button__sm button__transparent-secondary add-question"><%= t("add_question", scope: "decidim.forms.admin.questionnaires.form") %></button>
|
|
8
|
+
</h1>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
8
11
|
<div class="row column">
|
|
9
12
|
<%= cell "decidim/announcement", t("decidim.elections.admin.questions.form.form_description") %>
|
|
10
13
|
</div>
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
<%= render "decidim/elections/admin/elections/tabs_menu" %>
|
|
16
|
+
|
|
17
|
+
<div class="grid-cols-1 2xl:mr-80">
|
|
18
|
+
<div class="item__edit-form">
|
|
14
19
|
<%= decidim_form_for(@form, url: update_url, method: :put, html: { id: "questions-election-form", class: "form-defaults form edit_questions" }) do |form| %>
|
|
15
20
|
<%= render partial: "decidim/elections/admin/questions/form", object: form %>
|
|
16
21
|
<% end %>
|
|
17
22
|
|
|
18
|
-
<div class="
|
|
19
|
-
<
|
|
23
|
+
<div class="item__edit-sticky">
|
|
24
|
+
<div class="item__edit-sticky-container">
|
|
25
|
+
<%= button_tag t("save", scope: "decidim.elections.admin.elections.form"), class: "button button__sm button__secondary", form: "questions-election-form" %>
|
|
26
|
+
</div>
|
|
20
27
|
</div>
|
|
21
28
|
</div>
|
|
22
29
|
</div>
|
data/config/locales/ca-IT.yml
CHANGED
|
@@ -22,7 +22,7 @@ ca-IT:
|
|
|
22
22
|
create: Crear
|
|
23
23
|
destroy: Destruir
|
|
24
24
|
update: Actualitzar
|
|
25
|
-
name:
|
|
25
|
+
name: Eleccions
|
|
26
26
|
settings:
|
|
27
27
|
global:
|
|
28
28
|
announcement: Avís
|
|
@@ -132,7 +132,7 @@ ca-IT:
|
|
|
132
132
|
save: Desa i continua
|
|
133
133
|
start_at: Dia i hora d'inici
|
|
134
134
|
index:
|
|
135
|
-
title:
|
|
135
|
+
title: Eleccions
|
|
136
136
|
manage_trash:
|
|
137
137
|
title: Eleccions eliminades
|
|
138
138
|
new:
|
data/config/locales/ca.yml
CHANGED
|
@@ -22,7 +22,7 @@ ca:
|
|
|
22
22
|
create: Crear
|
|
23
23
|
destroy: Destruir
|
|
24
24
|
update: Actualitzar
|
|
25
|
-
name:
|
|
25
|
+
name: Eleccions
|
|
26
26
|
settings:
|
|
27
27
|
global:
|
|
28
28
|
announcement: Avís
|
|
@@ -132,7 +132,7 @@ ca:
|
|
|
132
132
|
save: Desa i continua
|
|
133
133
|
start_at: Dia i hora d'inici
|
|
134
134
|
index:
|
|
135
|
-
title:
|
|
135
|
+
title: Eleccions
|
|
136
136
|
manage_trash:
|
|
137
137
|
title: Eleccions eliminades
|
|
138
138
|
new:
|
data/config/locales/cs.yml
CHANGED
|
@@ -8,6 +8,7 @@ cs:
|
|
|
8
8
|
admin:
|
|
9
9
|
menu:
|
|
10
10
|
elections_menu:
|
|
11
|
+
basic_elections: Hlavní
|
|
11
12
|
election_census: Seznam obyvatel
|
|
12
13
|
election_dashboard: Ovládací panel
|
|
13
14
|
election_questions: Otázky
|
|
@@ -39,7 +40,11 @@ cs:
|
|
|
39
40
|
dashboard:
|
|
40
41
|
calendar:
|
|
41
42
|
end_at: 'Čas ukončení:'
|
|
43
|
+
end_election: Ukončit volby
|
|
44
|
+
manual_start: Ručně
|
|
45
|
+
published_results_at: Výsledky zveřejněny na
|
|
42
46
|
start_at: 'Čas zahájení:'
|
|
47
|
+
start_election: Zahájit volbu
|
|
43
48
|
title: Kalendář
|
|
44
49
|
census:
|
|
45
50
|
title: Seznam obyvatel
|
|
@@ -55,6 +60,7 @@ cs:
|
|
|
55
60
|
questions:
|
|
56
61
|
labels:
|
|
57
62
|
answers: Odpovědi
|
|
63
|
+
limit_info: Tyto volby mají více otázek. Náhled je omezen na 3 otázky.
|
|
58
64
|
title: Otázky
|
|
59
65
|
questions_table:
|
|
60
66
|
answer: Odpovědi
|
|
@@ -63,6 +69,7 @@ cs:
|
|
|
63
69
|
results:
|
|
64
70
|
not_started: Volba ještě nezačala.
|
|
65
71
|
publish_button: Publikovat výsledky
|
|
72
|
+
start_question_button: Povolit hlasování
|
|
66
73
|
title: Výsledky
|
|
67
74
|
status:
|
|
68
75
|
title: Stav voleb
|
|
@@ -85,7 +92,9 @@ cs:
|
|
|
85
92
|
publish: Publikovat
|
|
86
93
|
results_availability:
|
|
87
94
|
after_end: Po ukončení voleb
|
|
95
|
+
real_time: V reálném čase
|
|
88
96
|
title: Dostupnost výsledků
|
|
97
|
+
save: Uložit a pokračovat
|
|
89
98
|
start_at: Čas zahájení
|
|
90
99
|
index:
|
|
91
100
|
title: Volby
|
|
@@ -119,6 +128,7 @@ cs:
|
|
|
119
128
|
internal_users:
|
|
120
129
|
already_have_an_account?: Již máte účet?
|
|
121
130
|
are_you_new?: Nový účastník?
|
|
131
|
+
sign_in_description: Přihlaste se k hlasování v těchto volbách
|
|
122
132
|
token_csv:
|
|
123
133
|
upload_file: Nahrát soubor
|
|
124
134
|
upload_new_census: Nahrát CSV soubor
|
|
@@ -143,8 +153,12 @@ cs:
|
|
|
143
153
|
state_values:
|
|
144
154
|
finished: Dokončeno
|
|
145
155
|
ongoing: Probíhající
|
|
156
|
+
scheduled: Naplánováno
|
|
146
157
|
orders:
|
|
158
|
+
end_at: Datum ukončení
|
|
159
|
+
label: Seřadit podle
|
|
147
160
|
recent: Nedávné
|
|
161
|
+
start_at: Datum zahájení
|
|
148
162
|
questions:
|
|
149
163
|
title: Volební otázky
|
|
150
164
|
show:
|
|
@@ -159,15 +173,29 @@ cs:
|
|
|
159
173
|
start_at: Čas zahájení
|
|
160
174
|
status: Stav
|
|
161
175
|
title: Název
|
|
176
|
+
per_question_votes:
|
|
177
|
+
waiting:
|
|
178
|
+
edit_vote: Upravte svůj hlas
|
|
162
179
|
status:
|
|
163
180
|
active: Aktivní
|
|
164
181
|
finished: Dokončeno
|
|
165
182
|
not_started: Nezahájeno
|
|
166
183
|
ongoing: Probíhající
|
|
184
|
+
scheduled: Naplánováno
|
|
167
185
|
unpublished: Nezveřejněno
|
|
186
|
+
voting_enabled: Probíhá hlasování
|
|
168
187
|
votes:
|
|
188
|
+
cast:
|
|
189
|
+
invalid: Při odesílání vašeho hlasu došlo k chybě. Zkontrolujte zadané údaje a zkuste to znovu.
|
|
190
|
+
success: Váš hlas byl úspěšně odeslán.
|
|
191
|
+
check_census:
|
|
192
|
+
access: Přístup
|
|
193
|
+
failed: Vaši identitu nelze ověřit. Zkontrolujte zadané informace a zkuste to znovu.
|
|
194
|
+
form_title: Ověřte svou identitu
|
|
169
195
|
confirm:
|
|
196
|
+
not_answered: Na tuto otázku jste neodpověděl.
|
|
170
197
|
title: Potvrďte svůj hlas
|
|
198
|
+
not_authorized: V těchto volbách nemáte oprávnění volit.
|
|
171
199
|
question:
|
|
172
200
|
back: Zpět
|
|
173
201
|
next: Další
|
data/config/locales/es.yml
CHANGED
data/config/locales/fr-CA.yml
CHANGED
|
@@ -43,6 +43,10 @@ fr-CA:
|
|
|
43
43
|
edit:
|
|
44
44
|
created_at: Créée le
|
|
45
45
|
identifier: Identifiant de l'utilisateur
|
|
46
|
+
preview:
|
|
47
|
+
title:
|
|
48
|
+
one: La liste de prévisualisation est limitée à %{count} enregistrement.
|
|
49
|
+
other: La liste de prévisualisation est limitée à %{count} enregistrements.
|
|
46
50
|
update:
|
|
47
51
|
error: Il y a eu une erreur lors de la génération ou de l'enregistrement du recensement.
|
|
48
52
|
success: Recensement mis à jour avec succès.
|
data/config/locales/fr.yml
CHANGED
|
@@ -43,6 +43,10 @@ fr:
|
|
|
43
43
|
edit:
|
|
44
44
|
created_at: Créée le
|
|
45
45
|
identifier: Identifiant de l'utilisateur
|
|
46
|
+
preview:
|
|
47
|
+
title:
|
|
48
|
+
one: La liste de prévisualisation est limitée à %{count} enregistrement.
|
|
49
|
+
other: La liste de prévisualisation est limitée à %{count} enregistrements.
|
|
46
50
|
update:
|
|
47
51
|
error: Il y a eu une erreur lors de la génération ou de l'enregistrement du recensement.
|
|
48
52
|
success: Recensement mis à jour avec succès.
|
data/config/locales/ja.yml
CHANGED
|
@@ -105,6 +105,7 @@ ja:
|
|
|
105
105
|
invalid: 選挙の作成中に問題がありました。
|
|
106
106
|
success: 選挙を作成しました。
|
|
107
107
|
dashboard:
|
|
108
|
+
subtitle: '最終ステップ:入力内容を確認してください。公開前に修正を加えることが可能です。公開後も、選挙の説明内容を更新することができます。'
|
|
108
109
|
title: ダッシュボード
|
|
109
110
|
edit:
|
|
110
111
|
title: 選挙を編集
|
|
@@ -184,8 +185,24 @@ ja:
|
|
|
184
185
|
census_size_html:
|
|
185
186
|
other: 現在、 <strong>%{count}</strong> の投票対象者がこの選挙に参加しています(センサスで変更される可能性があります)。
|
|
186
187
|
internal_users:
|
|
188
|
+
already_have_an_account?: すでにアカウントをお持ちですか?
|
|
189
|
+
are_you_new?: 新しい参加者ですか?
|
|
190
|
+
info_html: |
|
|
191
|
+
選挙への参加を、認証済みの参加者のみに限定することができます。<br>
|
|
192
|
+
投票するには、参加者は選択した権限を満たす必要があります。すべてのチェックボックスを空のままにすると、登録済みの全員の投票が可能になります。
|
|
187
193
|
internal_type_title: 投票するための追加の必要な権限 (任意)
|
|
188
194
|
label: 登録済み参加者(動的)
|
|
195
|
+
sign_in_description: この選挙に投票するにはログインしてください
|
|
196
|
+
sign_up_description: この選挙に投票するアカウントを作成する
|
|
197
|
+
internal_users_form:
|
|
198
|
+
authorization_options_invalid: 残念ながら、必要なすべての権限を持っていても、今回の選挙では一部の権限が有効ではありません。
|
|
199
|
+
exit_button: 投票ブースを出る
|
|
200
|
+
invalid: この選挙で投票する権限がありません。
|
|
201
|
+
missing: ユーザーには必要な権限が逃しています。情報を確認してから、もう一度やり直してください。
|
|
202
|
+
not_authorized: '"%{adapter}" 認証が必要な条件に一致しません。'
|
|
203
|
+
not_granted: '"%{adapter}" 認証は許可されていません。'
|
|
204
|
+
resume_with_method: '%{name} で本人確認を再開'
|
|
205
|
+
verify_with_method: '%{name} で本人確認する'
|
|
189
206
|
token_csv:
|
|
190
207
|
example: |
|
|
191
208
|
email;token
|
|
@@ -200,25 +217,44 @@ ja:
|
|
|
200
217
|
upload_new_census: CSVファイルをアップロードする
|
|
201
218
|
token_csv_form:
|
|
202
219
|
email: Eメールアドレス
|
|
220
|
+
email_placeholder: 投票者のメールアドレスを入力してください
|
|
221
|
+
invalid: メールまたはトークンが無効です。詳細を確認して、もう一度お試しください。
|
|
222
|
+
token: トークン
|
|
223
|
+
token_placeholder: 投票者のトークンを入力してください
|
|
203
224
|
elections:
|
|
204
225
|
count:
|
|
205
226
|
elections_count:
|
|
206
227
|
other: "%{count} 選挙"
|
|
228
|
+
elections:
|
|
229
|
+
empty: 利用可能な選挙はありません。
|
|
230
|
+
empty_filters: フィルターに一致する選挙はありません。
|
|
207
231
|
filters:
|
|
208
232
|
all: 全て
|
|
209
233
|
state: ステータス:
|
|
210
234
|
state_values:
|
|
211
235
|
finished: 完了
|
|
212
236
|
ongoing: 進行中
|
|
237
|
+
scheduled: スケジュール済み
|
|
213
238
|
orders:
|
|
239
|
+
end_at: 終了日
|
|
240
|
+
label: ソート順
|
|
214
241
|
recent: 新しい
|
|
242
|
+
start_at: 開始日
|
|
215
243
|
questions:
|
|
244
|
+
subtitle: 'この投票プロセスに関する質問です:'
|
|
216
245
|
title: 選挙の質問
|
|
217
246
|
show:
|
|
247
|
+
active_voting_until: '有効な投票まで: %{end_date}'
|
|
218
248
|
vote_button: 投票
|
|
249
|
+
voted: すでに投票済みです。再度投票することは可能ですが、最後に投票した内容のみが集計対象となります。
|
|
219
250
|
votes_count:
|
|
220
251
|
other: "%{count}票"
|
|
252
|
+
voting_began: '%{start_date} に投票が開始します'
|
|
221
253
|
vote_results:
|
|
254
|
+
subtitle:
|
|
255
|
+
after_end: 選挙は終了しました。結果を確認できます。
|
|
256
|
+
per_question: 結果は質問ごとに確認できます。投票が有効化され、結果が公開されると、各質問の結果を確認できるようになります。
|
|
257
|
+
real_time: 結果はリアルタイムで確認できます。投票が行われている間も結果を閲覧可能です。
|
|
222
258
|
title: 結果
|
|
223
259
|
models:
|
|
224
260
|
election:
|
|
@@ -228,20 +264,48 @@ ja:
|
|
|
228
264
|
start_at: 開始日時
|
|
229
265
|
status: ステータス:
|
|
230
266
|
title: タイトル
|
|
267
|
+
per_question_votes:
|
|
268
|
+
waiting:
|
|
269
|
+
description: 次の質問が利用可能になるまでここでお待ちいただけます。準備が整い次第、自動的に次の質問にリダイレクトされます。
|
|
270
|
+
edit_vote: 投票を編集
|
|
271
|
+
exit_button: 待合室を出る
|
|
272
|
+
title: 次の質問を待っています
|
|
231
273
|
status:
|
|
232
274
|
active: 有効
|
|
233
275
|
finished: 完了
|
|
234
276
|
not_started: 開始前
|
|
235
277
|
ongoing: 進行中
|
|
278
|
+
published_results: 公開結果
|
|
236
279
|
scheduled: スケジュール済み
|
|
237
280
|
unpublished: 未公開
|
|
238
281
|
voting_enabled: 投票中
|
|
239
282
|
votes:
|
|
283
|
+
cast:
|
|
284
|
+
invalid: 投票時に問題が発生しました。入力した情報を確認して、もう一度お試しください。
|
|
285
|
+
success: 投票は正常に行われました。
|
|
286
|
+
check_census:
|
|
287
|
+
access: アクセス
|
|
288
|
+
election_not_open: 選挙はまだ開始されていません。日付を確認してから再度お試しください。
|
|
289
|
+
failed: 本人確認ができませんでした。入力した情報を確認して、もう一度お試しください。
|
|
290
|
+
form_title: 本人確認を行う
|
|
291
|
+
invalid: ユーザーがセンサスに見つかりません。
|
|
240
292
|
confirm:
|
|
293
|
+
cast_vote: 投票
|
|
294
|
+
edit_vote: 投票を編集
|
|
295
|
+
not_answered: この質問に答えていません。
|
|
241
296
|
title: 投票を確定
|
|
297
|
+
not_authorized: あなたはこの選挙に投票する権限がありません。
|
|
242
298
|
question:
|
|
243
299
|
back: 戻る
|
|
300
|
+
cast_vote: 投票
|
|
244
301
|
next: 次へ
|
|
302
|
+
receipt:
|
|
303
|
+
description: 投票期間中はいつでも再投票が可能です。以前の投票結果は新しい投票結果で上書きされます。
|
|
304
|
+
exit_button: 投票ブースを出る
|
|
305
|
+
title: 投票は正常に行われました
|
|
306
|
+
metadata:
|
|
307
|
+
progress:
|
|
308
|
+
published_results: '結果が公開されました: %{end_date}'
|
|
245
309
|
statistics:
|
|
246
310
|
elections_count: 選挙
|
|
247
311
|
layouts:
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: decidim-elections
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.31.0.
|
|
4
|
+
version: 0.31.0.rc2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ivan Vergés
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: decidim-admin
|
|
@@ -16,84 +16,84 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.31.0.
|
|
19
|
+
version: 0.31.0.rc2
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.31.0.
|
|
26
|
+
version: 0.31.0.rc2
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: decidim-core
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - '='
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.31.0.
|
|
33
|
+
version: 0.31.0.rc2
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.31.0.
|
|
40
|
+
version: 0.31.0.rc2
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: decidim-forms
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - '='
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0.31.0.
|
|
47
|
+
version: 0.31.0.rc2
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - '='
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 0.31.0.
|
|
54
|
+
version: 0.31.0.rc2
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: decidim-admin
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - '='
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 0.31.0.
|
|
61
|
+
version: 0.31.0.rc2
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - '='
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 0.31.0.
|
|
68
|
+
version: 0.31.0.rc2
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: decidim-dev
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - '='
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 0.31.0.
|
|
75
|
+
version: 0.31.0.rc2
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - '='
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 0.31.0.
|
|
82
|
+
version: 0.31.0.rc2
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: decidim-participatory_processes
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - '='
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.31.0.
|
|
89
|
+
version: 0.31.0.rc2
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - '='
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0.31.0.
|
|
96
|
+
version: 0.31.0.rc2
|
|
97
97
|
description: A module that aims to provide a set of tools to create elections in Decidim.
|
|
98
98
|
email:
|
|
99
99
|
- ivan@pokecode.net
|
|
@@ -139,6 +139,7 @@ files:
|
|
|
139
139
|
- app/forms/decidim/elections/censuses/token_csv_form.rb
|
|
140
140
|
- app/helpers/decidim/elections/admin/elections_helper.rb
|
|
141
141
|
- app/helpers/decidim/elections/application_helper.rb
|
|
142
|
+
- app/helpers/decidim/elections/label_helper.rb
|
|
142
143
|
- app/models/decidim/elections/application_record.rb
|
|
143
144
|
- app/models/decidim/elections/csv_census/data.rb
|
|
144
145
|
- app/models/decidim/elections/election.rb
|
|
@@ -156,7 +157,6 @@ files:
|
|
|
156
157
|
- app/packs/src/decidim/elections/live_results_update.js
|
|
157
158
|
- app/packs/src/decidim/elections/waiting_room.js
|
|
158
159
|
- app/packs/stylesheets/decidim/elections/elections.scss
|
|
159
|
-
- app/packs/stylesheets/decidim/elections/labels.scss
|
|
160
160
|
- app/packs/stylesheets/decidim/elections/live_results_update.scss
|
|
161
161
|
- app/permissions/decidim/elections/admin/permissions.rb
|
|
162
162
|
- app/permissions/decidim/elections/permissions.rb
|