decidim-elections 0.26.2 → 0.26.4
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/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/import_proposals_to_elections.rb +4 -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/controllers/decidim/elections/elections_controller.rb +2 -2
- data/app/controllers/decidim/votings/admin/imports_controller.rb +14 -0
- data/app/controllers/decidim/votings/votings_controller.rb +2 -2
- 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/permissions/decidim/votings/admin/permissions.rb +4 -1
- 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 +6 -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/gn-PY.yml +1 -0
- data/config/locales/hu.yml +6 -1
- data/config/locales/it.yml +2 -2
- data/config/locales/ja.yml +21 -2
- data/config/locales/lo-LA.yml +1 -0
- data/config/locales/lt.yml +1423 -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
- data/lib/decidim/votings/admin_engine.rb +3 -0
- metadata +20 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8ec0e86b7444f64ee3b9a825db1950f6dbfd337abf7ea93ca577d4637225d99d
|
|
4
|
+
data.tar.gz: 2303d3bad0bfc976ee51ba20cd5cc0b4722706f2a7b216cda95d47a1a6c71d63
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b74806f59ce7fe4cdb2a78e3a7fe813ff345e0024a01e8cb270e865c2dbd671faef589490a9d7d5393d50ca413c8affe79ef9007861ab5f2db6436033f0ce58f
|
|
7
|
+
data.tar.gz: 2a915f400a8549614a12be707202a991376f1b732bc171b74a27e423b6c1cae88840cb837ce07f55987ef184a32e185d884dd6b0099b35c7c8c2934138a680cc
|
|
@@ -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>
|
|
@@ -77,7 +77,10 @@ module Decidim
|
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
def proposal_already_copied?(original_proposal)
|
|
80
|
-
|
|
80
|
+
# Note: we are including also answers from unpublished components
|
|
81
|
+
# because otherwise duplicates could be created until the component is
|
|
82
|
+
# published.
|
|
83
|
+
original_proposal.linked_resources(:answers, "related_proposals", component_published: false).any? do |answer|
|
|
81
84
|
answer.question == target_question
|
|
82
85
|
end
|
|
83
86
|
end
|
|
@@ -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
|
|
@@ -57,8 +57,8 @@ module Decidim
|
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
def paginated_elections
|
|
60
|
-
@paginated_elections ||=
|
|
61
|
-
@paginated_elections =
|
|
60
|
+
@paginated_elections ||= reorder(search.results.published)
|
|
61
|
+
@paginated_elections = paginate(@paginated_elections)
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
def scheduled_elections
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Votings
|
|
5
|
+
module Admin
|
|
6
|
+
# This controller allows importing things.
|
|
7
|
+
# It is targeted for customizations for importing things that lives under
|
|
8
|
+
# a voting space.
|
|
9
|
+
class ImportsController < Decidim::Admin::ImportsController
|
|
10
|
+
include VotingAdmin
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -129,8 +129,8 @@ module Decidim
|
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
def paginated_votings
|
|
132
|
-
@paginated_votings ||=
|
|
133
|
-
@paginated_votings =
|
|
132
|
+
@paginated_votings ||= reorder(search.results.published)
|
|
133
|
+
@paginated_votings = paginate(@paginated_votings)
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def promoted_votings
|
|
@@ -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
|
+
|
|
@@ -59,7 +59,8 @@ module Decidim
|
|
|
59
59
|
:monitoring_committee_verify_elections,
|
|
60
60
|
:monitoring_committee_election_result, :monitoring_committee_election_results,
|
|
61
61
|
:census,
|
|
62
|
-
:ballot_style, :ballot_styles
|
|
62
|
+
:ballot_style, :ballot_styles,
|
|
63
|
+
:component_data
|
|
63
64
|
].member? permission_action.subject
|
|
64
65
|
|
|
65
66
|
case permission_action.subject
|
|
@@ -130,6 +131,8 @@ module Decidim
|
|
|
130
131
|
end
|
|
131
132
|
when :ballot_styles
|
|
132
133
|
toggle_allow(user.admin?) if permission_action.action == :read
|
|
134
|
+
when :component_data
|
|
135
|
+
toggle_allow(user.admin?) if permission_action.action == :import
|
|
133
136
|
end
|
|
134
137
|
end
|
|
135
138
|
|
|
@@ -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: Els codis d'accés al cens no s'han pogut generar.
|
|
236
|
+
census_frozen: Els codis d'accés al cens no s'han pogut exportar.
|
|
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: S'han generat els codis d'accés al cens.
|
|
253
|
+
census_frozen: S'han exportat els codis per al cens i el cens ha quedat congelat.
|
|
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:
|