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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 964c1cb8bdbc697caa2249a77c682922a0f86c40991fdb82764a87aab5571e5d
4
- data.tar.gz: 3c70711e52d4da42332d93dc788169af7da4c7c8881fe00745a9510320a8a590
3
+ metadata.gz: 1350982617f9cf2b5417179740fe67d319fd01e74c85fbcc823f092d78b23923
4
+ data.tar.gz: 29788cfe9ee20c68fbbd6739baee65968c98c1ed3daf344e11634ba3f458687e
5
5
  SHA512:
6
- metadata.gz: 10695624537f8c405989c17ded7f678af45980ee351bacf122e642a8bcad349927be80af7beb03908d363c9652b946722c2314e8419d35797dd45e7bedf1809d
7
- data.tar.gz: ee3232a438080cc45f64b6c563f5121d8495812f9cad611fde725429ac8a67e7a239edace584bce7fc03c3ad26a552b37b1f91b7cdd8afbb1984dbac5db8bee9
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,3 +1,2 @@
1
1
  @import "stylesheets/decidim/elections/elections.scss";
2
- @import "stylesheets/decidim/elections/labels.scss";
3
2
  @import "stylesheets/decidim/elections/live_results_update.scss";
@@ -1,2 +1 @@
1
- @import "stylesheets/decidim/elections/labels.scss";
2
1
  @import "stylesheets/decidim/elections/live_results_update.scss";
@@ -1,10 +1,6 @@
1
1
  <%= append_javascript_pack_tag "decidim_elections_admin" %>
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 #{"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
- <%= render "decidim/elections/admin/elections/tabs_menu" do %>
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
- <% end %>
19
+ </div>
25
20
 
26
- <div class="item__edit-form">
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
- <%= 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-edit" %>
8
- <% end %>
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
- <div class="grid-cols-1">
13
- <div class="item__edit-form">
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="mt-2">
19
- <button class="button button__sm button__transparent-secondary add-question"><%= t("add_question", scope: "decidim.forms.admin.questionnaires.form") %></button>
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>
@@ -22,7 +22,7 @@ ca-IT:
22
22
  create: Crear
23
23
  destroy: Destruir
24
24
  update: Actualitzar
25
- name: Votacions
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: Votacions
135
+ title: Eleccions
136
136
  manage_trash:
137
137
  title: Eleccions eliminades
138
138
  new:
@@ -22,7 +22,7 @@ ca:
22
22
  create: Crear
23
23
  destroy: Destruir
24
24
  update: Actualitzar
25
- name: Votacions
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: Votacions
135
+ title: Eleccions
136
136
  manage_trash:
137
137
  title: Eleccions eliminades
138
138
  new:
@@ -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ší
@@ -22,7 +22,7 @@ es:
22
22
  create: Crear
23
23
  destroy: Eliminar
24
24
  update: Actualizar
25
- name: Votaciones
25
+ name: Elecciones
26
26
  settings:
27
27
  global:
28
28
  announcement: Aviso
@@ -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.
@@ -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.
@@ -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:
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Elections
5
5
  def self.version
6
- "0.31.0.rc1"
6
+ "0.31.0.rc2"
7
7
  end
8
8
  end
9
9
  end
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.rc1
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-09-25 00:00:00.000000000 Z
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.rc1
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.rc1
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.rc1
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.rc1
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.rc1
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.rc1
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.rc1
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.rc1
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.rc1
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.rc1
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.rc1
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.rc1
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
@@ -1,13 +0,0 @@
1
- .label {
2
- &.finished {
3
- @apply bg-[var(--bg-success)] text-[var(--success)];
4
- }
5
-
6
- &.ongoing {
7
- @apply bg-[var(--bg-warning)] text-[var(--warning)];
8
- }
9
-
10
- &.scheduled {
11
- @apply bg-neutral-200 text-neutral-900;
12
- }
13
- }