decidim-elections 0.26.2 → 0.26.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/votings/content_blocks/highlighted_votings/show.erb +1 -1
- data/app/cells/decidim/votings/content_blocks/highlighted_votings_cell.rb +1 -0
- data/app/cells/decidim/votings/content_blocks/landing_page/description/show.erb +1 -1
- data/app/cells/decidim/votings/content_blocks/landing_page/header/show.erb +2 -2
- data/app/commands/decidim/elections/admin/create_question.rb +0 -1
- data/app/commands/decidim/elections/admin/setup_election.rb +3 -1
- data/app/commands/decidim/elections/admin/update_question.rb +0 -1
- data/app/forms/decidim/elections/admin/question_form.rb +0 -2
- data/app/forms/decidim/elections/admin/setup_form.rb +43 -0
- data/app/models/decidim/elections/election.rb +2 -2
- data/app/models/decidim/elections/question.rb +1 -1
- data/app/packs/src/decidim/elections/admin/pending_action.js +2 -0
- data/app/packs/src/decidim/elections/admin/trustees_process.js +2 -0
- data/app/packs/src/decidim/elections/broken_promises_handler.js +11 -0
- data/app/packs/src/decidim/elections/trustee/key_ceremony.js +3 -0
- data/app/packs/src/decidim/elections/trustee/tally.js +3 -0
- data/app/packs/src/decidim/elections/voter/casting-vote.js +3 -0
- data/app/packs/src/decidim/elections/voter/setup-vote.js +9 -0
- data/app/packs/src/decidim/votings/in-person-vote.js +3 -0
- data/app/views/decidim/elections/admin/questions/_form.html.erb +0 -4
- data/app/views/decidim/elections/admin/steps/_create_election.html.erb +14 -1
- data/app/views/decidim/elections/admin/steps/index.html.erb +2 -0
- data/app/views/decidim/elections/shared/_broken_promises_modal.html.erb +33 -0
- data/app/views/decidim/elections/trustee_zone/elections/show.html.erb +3 -0
- data/app/views/decidim/elections/votes/_server_error_modal.html.erb +28 -0
- data/app/views/decidim/elections/votes/_show_casting.html.erb +2 -0
- data/app/views/decidim/elections/votes/new.html.erb +3 -0
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/new.html.erb +2 -0
- data/app/views/decidim/votings/polling_officer_zone/in_person_votes/show.html.erb +2 -0
- data/app/views/decidim/votings/votings/_promoted_voting.html.erb +1 -1
- data/config/locales/ar.yml +0 -2
- data/config/locales/ca.yml +21 -2
- data/config/locales/cs.yml +25 -6
- data/config/locales/de.yml +33 -3
- data/config/locales/el.yml +0 -1
- data/config/locales/en.yml +21 -2
- data/config/locales/es-MX.yml +21 -2
- data/config/locales/es-PY.yml +21 -2
- data/config/locales/es.yml +21 -2
- data/config/locales/eu.yml +2 -2
- data/config/locales/fi-plain.yml +21 -2
- data/config/locales/fi.yml +21 -2
- data/config/locales/fr-CA.yml +22 -3
- data/config/locales/fr.yml +21 -2
- data/config/locales/ga-IE.yml +3 -0
- data/config/locales/gl.yml +2 -1
- data/config/locales/hu.yml +6 -1
- data/config/locales/it.yml +2 -2
- data/config/locales/ja.yml +21 -2
- data/config/locales/lt.yml +1427 -0
- data/config/locales/lv.yml +0 -1
- data/config/locales/nl.yml +2 -2
- data/config/locales/no.yml +3 -2
- data/config/locales/oc-FR.yml +1 -0
- data/config/locales/pl.yml +7 -2
- data/config/locales/pt-BR.yml +2 -2
- data/config/locales/pt.yml +2 -2
- data/config/locales/ro-RO.yml +2 -2
- data/config/locales/sv.yml +52 -1
- data/config/locales/tr-TR.yml +3 -1
- data/config/locales/zh-CN.yml +3 -1
- data/db/migrate/20220615102642_remove_description_from_elections_questions.rb +7 -0
- data/lib/decidim/api/election_question_type.rb +0 -1
- data/lib/decidim/elections/component.rb +0 -12
- data/lib/decidim/elections/test/factories.rb +0 -1
- data/lib/decidim/elections/version.rb +1 -1
- metadata +17 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79cbe0a072815eeb089fe22866c15107b9dd0f68e6a3a3cc3c45471f7186777c
|
4
|
+
data.tar.gz: d67f9a69166f20546353b2b40d7a19ce08a59f4837fde321d2c369c7c9a9ab3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2ef4df36d4b64aa1f6d26d01716d39ce15511c1c4c70be51c86830f29c43d4d854ab2b1a5d3f2fd38ee0f8f9c31d0c9542497b86cc261030cdb8278b739aa34
|
7
|
+
data.tar.gz: 6da057cd74be00affe5622b0b6de4be710838768b0ec778596bf8588b166d5a4c6ca8357563b396f62169a49c8a4449bfb7a9e653eceeecd21fdbfe65157210a
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<div class="column">
|
9
9
|
<%= link_to decidim_votings.voting_path(voting), class: "card card--voting card--mini" do %>
|
10
10
|
<div aria-hidden="true" class="card__image-top"
|
11
|
-
style="background-image:url(<%= voting.attached_uploader(:banner_image).path %>)"></div>
|
11
|
+
style="background-image:url('<%= voting.attached_uploader(:banner_image).path %>')"></div>
|
12
12
|
<div class="card__content">
|
13
13
|
<span class="card__title card__link"><%= translated_attribute voting.title %></span>
|
14
14
|
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<section class="extended hero" style="background-image:url(<%= current_participatory_space.attached_uploader(:banner_image).path %>);">
|
1
|
+
<section class="extended hero" style="background-image:url('<%= current_participatory_space.attached_uploader(:banner_image).path %>');">
|
2
2
|
<div class="hero__container">
|
3
3
|
<div class="row">
|
4
4
|
<div class="columns large-10 text-left">
|
@@ -24,6 +24,6 @@
|
|
24
24
|
</div>
|
25
25
|
</section>
|
26
26
|
|
27
|
-
<section
|
27
|
+
<section>
|
28
28
|
<%= extended_navigation_bar(navigation_items) %>
|
29
29
|
</section>
|
@@ -94,7 +94,9 @@ module Decidim
|
|
94
94
|
weight: question.weight,
|
95
95
|
max_selections: question.max_selections,
|
96
96
|
title: flatten_translations(question.title),
|
97
|
-
description
|
97
|
+
# the bulletin_board gem (ruby client) expects a description for the question
|
98
|
+
# as development is in a separate repository, let's send an empty content for the moment
|
99
|
+
description: {},
|
98
100
|
answers: question_answers_data(question)
|
99
101
|
}
|
100
102
|
end
|
@@ -8,14 +8,12 @@ module Decidim
|
|
8
8
|
include TranslatableAttributes
|
9
9
|
|
10
10
|
translatable_attribute :title, String
|
11
|
-
translatable_attribute :description, String
|
12
11
|
attribute :max_selections, Integer, default: 1
|
13
12
|
attribute :weight, Integer, default: 0
|
14
13
|
attribute :random_answers_order, Boolean, default: true
|
15
14
|
attribute :min_selections, Integer, default: 1
|
16
15
|
|
17
16
|
validates :title, translatable_presence: true
|
18
|
-
validates :description, translatable_presence: true
|
19
17
|
validates :max_selections, presence: true, numericality: { greater_than_or_equal_to: 1 }
|
20
18
|
|
21
19
|
def election
|
@@ -13,6 +13,12 @@ module Decidim
|
|
13
13
|
validations.each do |message, t_args, valid|
|
14
14
|
errors.add(message, I18n.t("steps.create_election.errors.#{message}", **t_args, scope: "decidim.elections.admin")) unless valid
|
15
15
|
end
|
16
|
+
|
17
|
+
if needs_census?
|
18
|
+
census_validations.each do |message, t_args, valid|
|
19
|
+
errors.add(message, I18n.t("steps.create_election.errors.#{message}", **t_args, scope: "decidim.elections.admin")) unless valid
|
20
|
+
end
|
21
|
+
end
|
16
22
|
end
|
17
23
|
|
18
24
|
def current_step; end
|
@@ -34,17 +40,34 @@ module Decidim
|
|
34
40
|
[:minimum_answers, {}, election.minimum_answers?],
|
35
41
|
[:max_selections, {}, election.valid_questions?],
|
36
42
|
[:published, {}, election.published_at.present?],
|
43
|
+
[:component_published, {}, election.component.published?],
|
37
44
|
[:time_before, { hours: Decidim::Elections.setup_minimum_hours_before_start }, election.minimum_hours_before_start?],
|
38
45
|
[:trustees_number, { number: bulletin_board.number_of_trustees }, participatory_space_trustees_with_public_key.size >= bulletin_board.number_of_trustees]
|
39
46
|
].freeze
|
40
47
|
end
|
41
48
|
|
49
|
+
def census_validations
|
50
|
+
return [] unless needs_census?
|
51
|
+
|
52
|
+
@census_validations ||= [
|
53
|
+
[:census_uploaded, {}, census.present? && census.data.exists?],
|
54
|
+
[:census_codes_generated, {}, census_codes_generated?],
|
55
|
+
[:census_frozen, {}, census&.freeze?]
|
56
|
+
].freeze
|
57
|
+
end
|
58
|
+
|
42
59
|
def messages
|
43
60
|
@messages ||= validations.map do |message, t_args, _valid|
|
44
61
|
[message, I18n.t("steps.create_election.requirements.#{message}", **t_args, scope: "decidim.elections.admin")]
|
45
62
|
end.to_h
|
46
63
|
end
|
47
64
|
|
65
|
+
def census_messages
|
66
|
+
@census_messages ||= census_validations.to_h do |message, t_args, _valid|
|
67
|
+
[message, I18n.t("steps.create_election.requirements.#{message}", **t_args, scope: "decidim.elections.admin")]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
48
71
|
def participatory_space_trustees
|
49
72
|
@participatory_space_trustees ||= Decidim::Elections::Trustees::ByParticipatorySpace.new(election.component.participatory_space).to_a
|
50
73
|
end
|
@@ -57,6 +80,26 @@ module Decidim
|
|
57
80
|
@bulletin_board ||= context[:bulletin_board] || Decidim::Elections.bulletin_board
|
58
81
|
end
|
59
82
|
|
83
|
+
def needs_census?
|
84
|
+
vote_flow.is_a?(Decidim::Votings::CensusVoteFlow)
|
85
|
+
end
|
86
|
+
|
87
|
+
def vote_flow
|
88
|
+
@vote_flow ||= election.participatory_space.try(:vote_flow_for, election)
|
89
|
+
end
|
90
|
+
|
91
|
+
def census_codes_generated?
|
92
|
+
return unless needs_census?
|
93
|
+
|
94
|
+
census&.codes_generated? || census&.exporting_codes? || census&.freeze?
|
95
|
+
end
|
96
|
+
|
97
|
+
def census
|
98
|
+
return unless needs_census?
|
99
|
+
|
100
|
+
@census ||= election.component.participatory_space.dataset
|
101
|
+
end
|
102
|
+
|
60
103
|
def main_button?
|
61
104
|
true
|
62
105
|
end
|
@@ -86,7 +86,7 @@ module Decidim
|
|
86
86
|
#
|
87
87
|
# Returns a boolean.
|
88
88
|
def minimum_answers?
|
89
|
-
questions.all? { |question| question.answers.size > 1 }
|
89
|
+
questions.any? && questions.all? { |question| question.answers.size > 1 }
|
90
90
|
end
|
91
91
|
|
92
92
|
# Public: Checks if the election results are published and election finished
|
@@ -107,7 +107,7 @@ module Decidim
|
|
107
107
|
#
|
108
108
|
# Returns a boolean.
|
109
109
|
def valid_questions?
|
110
|
-
questions.all?(&:valid_max_selection?)
|
110
|
+
questions.any? && questions.all?(&:valid_max_selection?)
|
111
111
|
end
|
112
112
|
|
113
113
|
# Public: Gets the voting period status of the election
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Elections
|
5
5
|
# The data store for a Question in the Decidim::Elections component. It stores a
|
6
|
-
# title
|
6
|
+
# title and a maximum number of selection that voters can choose.
|
7
7
|
class Question < ApplicationRecord
|
8
8
|
include Decidim::Resourceable
|
9
9
|
include Traceable
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/* Fallback for non-handled failed promises */
|
2
|
+
window.addEventListener("unhandledrejection", (event) => {
|
3
|
+
console.log("broken", event)
|
4
|
+
$("#server-failure .tech-info").html(event.reason);
|
5
|
+
if (event.reason.toString().indexOf("fetch") === -1) {
|
6
|
+
$("#server-failure .communication_error").addClass("hide");
|
7
|
+
$("#server-failure .generic_error").removeClass("hide");
|
8
|
+
}
|
9
|
+
$("#server-failure").foundation("open");
|
10
|
+
});
|
11
|
+
|
@@ -1,5 +1,7 @@
|
|
1
1
|
/* eslint-disable require-jsdoc */
|
2
2
|
|
3
|
+
// show a message to the user if comunication is lost
|
4
|
+
import "src/decidim/elections/broken_promises_handler";
|
3
5
|
import { VoteComponent } from "@decidim/decidim-bulletin_board";
|
4
6
|
|
5
7
|
import * as VotingSchemesDummy from "@decidim/voting_schemes-dummy";
|
@@ -46,5 +48,12 @@ export default function setupVoteComponent($voteWrapper) {
|
|
46
48
|
});
|
47
49
|
}
|
48
50
|
|
51
|
+
/* Fallback for non-handled failed promises */
|
52
|
+
window.addEventListener("unhandledrejection", (event) => {
|
53
|
+
$("#server-failure .tech-info").html(event.reason);
|
54
|
+
$("#server-failure").foundation("open");
|
55
|
+
});
|
56
|
+
|
49
57
|
window.Decidim = window.Decidim || {};
|
50
58
|
window.Decidim.setupVoteComponent = setupVoteComponent;
|
59
|
+
|
@@ -8,10 +8,6 @@
|
|
8
8
|
<%= form.translated :text_field, :title, autofocus: true %>
|
9
9
|
</div>
|
10
10
|
|
11
|
-
<div class="row column">
|
12
|
-
<%= form.translated :editor, :description %>
|
13
|
-
</div>
|
14
|
-
|
15
11
|
<div class="row column">
|
16
12
|
<%= form.number_field :max_selections, step: 1, min: 0 %>
|
17
13
|
</div>
|
@@ -14,10 +14,23 @@
|
|
14
14
|
<% end %>
|
15
15
|
</ul>
|
16
16
|
|
17
|
+
<% if form.needs_census? %>
|
18
|
+
<h4><%= t(".census") %></h4>
|
19
|
+
<ul class="no-bullet-indented">
|
20
|
+
<% form.census_messages.each do |key, value| %>
|
21
|
+
<% if form.errors.include?(key) %>
|
22
|
+
<li><%= icon "x", class: "text-alert", role: "img", "aria-hidden": true %> <%= form.errors.messages[key][0].html_safe %></li>
|
23
|
+
<% else %>
|
24
|
+
<li><%= icon "check", class: "text-success", role: "img", "aria-hidden": true %> <%= value.html_safe %></li>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
</ul>
|
28
|
+
<% end %>
|
29
|
+
|
17
30
|
<h4><%= t(".trustees") %></h4>
|
18
31
|
<ul class="no-bullet-indented">
|
19
32
|
<% if form.participatory_space_trustees.none? %>
|
20
|
-
<li><%= t(".no_trustees") %></li>
|
33
|
+
<li><%= icon "x", class: "text-alert", role: "img", "aria-hidden": true %> <%= t(".no_trustees") %></li>
|
21
34
|
<% end %>
|
22
35
|
|
23
36
|
<% form.participatory_space_trustees.map {|trustee| [trustee, form.trustees.none? || form.trustees.include?(trustee)] }
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<% i18n_scope ||= "decidim.elections.connection.failed" %>
|
2
|
+
|
3
|
+
<div class="reveal" id="server-failure" data-reveal>
|
4
|
+
<div class="reveal__header">
|
5
|
+
<h3 class="reveal__title">
|
6
|
+
<%= t("modal.title", scope: i18n_scope) %>
|
7
|
+
</h3>
|
8
|
+
|
9
|
+
<button class="close-button" data-close aria-label="<%= t("modal.close", scope: i18n_scope) %>"
|
10
|
+
type="button">
|
11
|
+
<span aria-hidden="true">×</span>
|
12
|
+
</button>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="row">
|
16
|
+
<p class="communication_error">
|
17
|
+
<%= t("modal.communication_lost", scope: i18n_scope).html_safe %>
|
18
|
+
</p>
|
19
|
+
<p class="generic_error hide">
|
20
|
+
<%= t("modal.generic_error", scope: i18n_scope).html_safe %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<p class="help-text tech-info"></p>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<div class="row">
|
27
|
+
<div class="column flex-center">
|
28
|
+
<button class="button primary expanded" data-close type="button">
|
29
|
+
<%= t("modal.close", scope: i18n_scope) %>
|
30
|
+
</button>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
</div>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<div class="reveal" id="server-failure" data-reveal>
|
2
|
+
<div class="reveal__header">
|
3
|
+
<h3 class="reveal__title">
|
4
|
+
<%= t("modal.title", scope: "decidim.elections.votes.failed") %>
|
5
|
+
</h3>
|
6
|
+
|
7
|
+
<button class="close-button" data-close aria-label="<%= t("modal.close", scope: "decidim.elections.votes.failed") %>"
|
8
|
+
type="button">
|
9
|
+
<span aria-hidden="true">×</span>
|
10
|
+
</button>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="row">
|
14
|
+
<p>
|
15
|
+
<%= t("modal.communication_lost", scope: "decidim.elections.votes.failed").html_safe %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<p class="help-text tech-info"></p>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div class="row">
|
22
|
+
<div class="column flex-center">
|
23
|
+
<button class="button primary expanded" data-close type="button">
|
24
|
+
<%= t("modal.close", scope: "decidim.elections.votes.failed") %>
|
25
|
+
</button>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</div>
|
@@ -22,4 +22,6 @@
|
|
22
22
|
<%= form_tag election_vote_path(election, id: vote.encrypted_vote_hash), method: :patch, class: "update_vote_status" %>
|
23
23
|
</div>
|
24
24
|
|
25
|
+
<%= render "decidim/elections/shared/broken_promises_modal" %>
|
26
|
+
|
25
27
|
<%= javascript_pack_tag "decidim_elections_voter_casting_vote" %>
|
@@ -59,9 +59,12 @@
|
|
59
59
|
</div>
|
60
60
|
</div>
|
61
61
|
|
62
|
+
<%= render "decidim/elections/shared/broken_promises_modal" %>
|
63
|
+
|
62
64
|
<% if preview_mode? %>
|
63
65
|
<%= javascript_pack_tag "decidim_elections_voter_setup_preview" %>
|
64
66
|
<% else %>
|
65
67
|
<%= javascript_pack_tag "decidim_elections_voter_setup_vote" %>
|
66
68
|
<% end %>
|
69
|
+
|
67
70
|
<%= javascript_pack_tag "decidim_elections_voter_new_vote" %>
|
@@ -22,4 +22,6 @@
|
|
22
22
|
<%= form_tag polling_officer_election_in_person_vote_path(polling_officer, election, in_person_vote), method: :patch, class: "update_vote_status" %>
|
23
23
|
</div>
|
24
24
|
|
25
|
+
<%= render "decidim/elections/shared/broken_promises_modal" %>
|
26
|
+
|
25
27
|
<%= javascript_pack_tag "decidim_votings_in_person_vote" %>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
</div>
|
14
14
|
<div class="columns mediumlarge-8 large-6 card--process__column">
|
15
15
|
<div class="card--full__image"
|
16
|
-
style="background-image:url(<%= promoted_voting.attached_uploader(:banner_image).path %>)">
|
16
|
+
style="background-image:url('<%= promoted_voting.attached_uploader(:banner_image).path %>')">
|
17
17
|
<div class="card__content row collapse">
|
18
18
|
<div class="large-6 large-offset-6 columns">
|
19
19
|
<%= link_to voting_path(promoted_voting), class: "button expanded button--sc" do %>
|
data/config/locales/ar.yml
CHANGED
data/config/locales/ca.yml
CHANGED
@@ -12,7 +12,6 @@ ca:
|
|
12
12
|
start_time: La votació comença el
|
13
13
|
title: Títol
|
14
14
|
question:
|
15
|
-
description: Descripció
|
16
15
|
max_selections: Número màxim d'opcions
|
17
16
|
min_selections: Cap de les opcions anteriors
|
18
17
|
title: Títol
|
@@ -231,12 +230,17 @@ ca:
|
|
231
230
|
success: La pregunta s'ha actualitzat correctament
|
232
231
|
steps:
|
233
232
|
create_election:
|
233
|
+
census: Cens
|
234
234
|
errors:
|
235
|
+
census_codes_generated: No es generen codi electorals per al cens.
|
236
|
+
census_frozen: No s'exporten els codis electorals.
|
237
|
+
census_uploaded: No s'ha pujat el cens per a aquestes eleccions.
|
238
|
+
component_published: L'elecció <strong>no està publicada</strong>.
|
235
239
|
max_selections: Les preguntes no tenen un <strong>valor correcte per quantitat de respostes</strong>
|
236
240
|
minimum_answers: Les preguntes han de tenir <strong>almenys dues respostes</strong>.
|
237
241
|
minimum_questions: L'elecció <strong>ha de tenir almenys una pregunta</strong>.
|
238
242
|
published: L'elecció <strong>no està publicada</strong>.
|
239
|
-
time_before: L'hora d'inici és en <strong>menys de
|
243
|
+
time_before: L'hora d'inici és en <strong>menys de %{hours} hores </strong> abans de que comenci l'elecció.
|
240
244
|
trustees_number: L'espai de participació <strong>ha de tenir almenys %{number} garants amb clau pública</strong>.
|
241
245
|
invalid: S'ha produït un error en configurar aquesta elecció
|
242
246
|
no_trustees: No hi ha garants configurats per aquest espai de participació
|
@@ -245,6 +249,10 @@ ca:
|
|
245
249
|
'false': no té una <strong>clau pública</strong>
|
246
250
|
'true': té una <strong>clau pública</strong>
|
247
251
|
requirements:
|
252
|
+
census_codes_generated: Es generen codis de cens.
|
253
|
+
census_frozen: Els codis s'exporten i el cens es congela.
|
254
|
+
census_uploaded: El cens s'ha pujat.
|
255
|
+
component_published: L'elecció està <strong>publicada</strong>.
|
248
256
|
max_selections: Totes les preguntes tenen un valor correcte per <strong>màxim de respostes</strong>.
|
249
257
|
minimum_answers: Cada pregunta té <strong>almenys 2 respostes</strong>.
|
250
258
|
minimum_questions: L'elecció té <strong>almenys 1 pregunta</strong>.
|
@@ -357,6 +365,13 @@ ca:
|
|
357
365
|
update: "%{user_name} ha actualitzat l'elecció %{resource_name} a %{space_name}"
|
358
366
|
trustee:
|
359
367
|
create: "%{user_name} ha assignat a la usuària %{trustee_user} com a garant"
|
368
|
+
connection:
|
369
|
+
failed:
|
370
|
+
modal:
|
371
|
+
close: Tancar
|
372
|
+
communication_lost: Malauradament, sembla que la comunicació amb el servidor de votació (Bulletin Board) s'ha perdut.<br>Pot ser que la connexió a Internet estigui avariada o que el servidor de destí estigui massa ocupat.<br>Pots provar-ho més tard o posar-te en contacte amb el servei d'assistència si aquest problema persisteix.
|
373
|
+
generic_error: Malauradament, s'ha produït un error desconegut. És probable que el teu navegador no estigui suportat o que estiguis fent servir el mode "d'incògnit" o "privat" que no són compatibles.
|
374
|
+
title: Alguna cosa ha anat malament
|
360
375
|
election_m:
|
361
376
|
badge_name:
|
362
377
|
finished: Acabada
|
@@ -639,6 +654,10 @@ ca:
|
|
639
654
|
failed:
|
640
655
|
header: Vot fallit
|
641
656
|
lead: El teu vot no s'ha enviat!
|
657
|
+
modal:
|
658
|
+
close: Tancar
|
659
|
+
communication_lost: Malauradament, sembla que la comunicació amb el servidor de votació (Bulletin Board) s'ha perdut.<br>Pot ser que la connexió a Internet estigui avariada o que el servidor de destí estigui massa ocupat.<br>Pots provar-ho més tard o posar-te en contacte amb el servei d'assistència si aquest problema persisteix.
|
660
|
+
title: Alguna cosa ha anat malament
|
642
661
|
text: Alguna cosa ha anat malament. Si us plau, torna-ho a provar.
|
643
662
|
try_again: Prova-ho de nou
|
644
663
|
header:
|
data/config/locales/cs.yml
CHANGED
@@ -12,7 +12,6 @@ cs:
|
|
12
12
|
start_time: Hlasování začíná v
|
13
13
|
title: Název
|
14
14
|
question:
|
15
|
-
description: Popis
|
16
15
|
max_selections: Maximální počet výběrů
|
17
16
|
min_selections: Žádná z výše uvedených možností
|
18
17
|
title: Název
|
@@ -249,12 +248,17 @@ cs:
|
|
249
248
|
success: Otázka byla úspěšně aktualizována
|
250
249
|
steps:
|
251
250
|
create_election:
|
251
|
+
census: Rejstřík obyvatel
|
252
252
|
errors:
|
253
|
+
census_codes_generated: Volební kódy pro rejstřík obyvatel nejsou generovány.
|
254
|
+
census_frozen: Volební kódy nejsou exportovány.
|
255
|
+
census_uploaded: Pro tyto volby není nahrán žádný rejstřík obyvatel.
|
256
|
+
component_published: Volební složka <strong>není publikována</strong>.
|
253
257
|
max_selections: Otázky nemají <strong>správnou hodnotu pro množství odpovědí</strong>
|
254
258
|
minimum_answers: Otázky musí mít <strong>alespoň dvě odpovědi</strong>.
|
255
259
|
minimum_questions: Volby <strong>musí mít alespoň jednu otázku</strong>.
|
256
260
|
published: Volby <strong>nejsou publikovány</strong>.
|
257
|
-
time_before:
|
261
|
+
time_before: Čas zahájení je v <strong>méně než %{hours} hodin</strong> před začátkem voleb.
|
258
262
|
trustees_number: Participační prostor <strong>musí mít alespoň %{number} důvěrníků s veřejným klíčem</strong>.
|
259
263
|
invalid: Při zřizování těchto voleb došlo k chybě
|
260
264
|
no_trustees: Pro tento participační prostor nejsou nakonfigurováni žádní důvěrníci
|
@@ -263,6 +267,10 @@ cs:
|
|
263
267
|
'false': nemá <strong>veřejný klíč</strong>
|
264
268
|
'true': má <strong>veřejný klíč</strong>
|
265
269
|
requirements:
|
270
|
+
census_codes_generated: Vytvářejí se kódy pro rejstřík obyvatel.
|
271
|
+
census_frozen: Kódy jsou exportovány a rejstřík obyvatel je zmrazen.
|
272
|
+
census_uploaded: Rejstřík obyvatel je nahrán.
|
273
|
+
component_published: Volební komponenta je <strong>publikována</strong>.
|
266
274
|
max_selections: Všechny otázky mají správnou hodnotu pro <strong>maximum odpovědí</strong>.
|
267
275
|
minimum_answers: Každá otázka má <strong>alespoň 2 odpovědi</strong>.
|
268
276
|
minimum_questions: Volba má <strong>alespoň jednu otázku</strong>.
|
@@ -375,6 +383,13 @@ cs:
|
|
375
383
|
update: "%{user_name} aktualizoval volbu %{resource_name} z %{space_name}"
|
376
384
|
trustee:
|
377
385
|
create: "%{user_name} přiřadil uživatele %{trustee_user} jako důvěrníka"
|
386
|
+
connection:
|
387
|
+
failed:
|
388
|
+
modal:
|
389
|
+
close: Zavřít
|
390
|
+
communication_lost: Bohužel se zdá, že komunikace s hlasovacím serverem (Bulletin Board) je ztracena.<br>Může se stát, že připojení k internetu je přerušeno nebo že cílový server je příliš zaneprázdněný.<br>Pokud tento problém přetrvává, můžete to zkusit později nebo se obraťte na podporu.
|
391
|
+
generic_error: Bohužel došlo k neznámé chybě. Je pravděpodobné, že váš prohlížeč není podporován nebo že používáte "incognito" nebo "privátní" režim, který není podporován.
|
392
|
+
title: Něco se pokazilo
|
378
393
|
election_m:
|
379
394
|
badge_name:
|
380
395
|
finished: Dokončeno
|
@@ -629,7 +644,7 @@ cs:
|
|
629
644
|
back: Zahájit proces hlasování znovu
|
630
645
|
ballot_hash: 'Identifikátor vašeho hlasování:'
|
631
646
|
cast: Uložte hlasování, abyste dokončili vaše hlasování
|
632
|
-
description: Zde máte možnost odevzdat hlasovací lístek tak, aby byl správně spočítán, nebo případně můžete kontrolovat, zda je vaše hlasování správně šifrované. Z důvodů porušeného
|
647
|
+
description: Zde máte možnost odevzdat hlasovací lístek tak, aby byl správně spočítán, nebo případně můžete kontrolovat, zda je vaše hlasování správně šifrované. Z důvodů porušeného zabezpečení to váš hlasovací lístek může zrušit. To znamená, že abyste mohli hlasovat, budete muset znovu zahájit hlasovací proces.
|
633
648
|
header: 'Hlasovací lístek je šifrovaný: zahlasujte s ním nebo jej auditujte'
|
634
649
|
casting:
|
635
650
|
header: Hlasování...
|
@@ -659,6 +674,10 @@ cs:
|
|
659
674
|
failed:
|
660
675
|
header: Hlasování se nezdařilo
|
661
676
|
lead: Váš hlas nebyl odeslán!
|
677
|
+
modal:
|
678
|
+
close: Zavřít
|
679
|
+
communication_lost: Bohužel se zdá, že komunikace s hlasovacím serverem (Bulletin Board) je ztracena.<br>Může se stát, že připojení k internetu je přerušeno nebo že cílový server je příliš zaneprázdněný.<br>Pokud tento problém přetrvává, můžete to zkusit později nebo se obraťte na podporu.
|
680
|
+
title: Něco se pokazilo
|
662
681
|
text: Něco se pokazilo, zkuste to prosím znovu.
|
663
682
|
try_again: Zkuste to znovu
|
664
683
|
header:
|
@@ -697,7 +716,7 @@ cs:
|
|
697
716
|
header: Hlasování nenalezeno!
|
698
717
|
info: Kód hlasu nebyl nalezen v %{link} volebních urnám, zkuste to znovu.
|
699
718
|
form:
|
700
|
-
back: Zpět na
|
719
|
+
back: Zpět na Decidim
|
701
720
|
submit: Ověřit
|
702
721
|
vote_identifier: 'Identifikační kód:'
|
703
722
|
header:
|
@@ -731,7 +750,7 @@ cs:
|
|
731
750
|
notification_title: Jste důvěrník pro <a href="%{participatory_space_url}">%{resource_name}</a>.
|
732
751
|
votes:
|
733
752
|
accepted_votes:
|
734
|
-
email_intro: 'Váš hlas byl přijat! Pomocí
|
753
|
+
email_intro: 'Váš hlas byl přijat! Pomocí vašeho hlasovacího tokenu: %{encrypted_vote_hash}, můžete ověřit svůj hlas <a href="%{verify_url}">zde</a>.'
|
735
754
|
email_outro: Obdrželi jste toto oznámení, protože jste hlasovali pro hlasování %{resource_name}.
|
736
755
|
email_subject: Váš hlas pro %{resource_name} byl přijat.
|
737
756
|
notification_title: 'Váš hlas byl přijat. Ověřte svůj hlas <a href="%{verify_url}">zde</a> pomocí hlasovacího tokenu: %{encrypted_vote_hash}'
|
@@ -1021,7 +1040,7 @@ cs:
|
|
1021
1040
|
promoted: Propagováno
|
1022
1041
|
select_a_voting_type: Vyberte prosím typ hlasování
|
1023
1042
|
slug: Slug
|
1024
|
-
slug_help: 'URL
|
1043
|
+
slug_help: 'URL slug se používá k generování URL, které odkazují na toto hlasování. přijímá pouze písmena, čísla a pomlčky a musí začínat písmenem. Příklad: %{url}'
|
1025
1044
|
title: Název
|
1026
1045
|
voting_type:
|
1027
1046
|
hybrid: Hybridní
|