decidim-action_delegator 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/decidim/action_delegator/admin/delegations_controller.rb +1 -1
  3. data/app/controllers/decidim/action_delegator/admin/manage_delegations_controller.rb +3 -4
  4. data/app/controllers/decidim/action_delegator/admin/manage_participants_controller.rb +1 -2
  5. data/app/controllers/decidim/action_delegator/questions_summary_controller.rb +14 -0
  6. data/app/forms/decidim/action_delegator/admin/delegation_form.rb +6 -2
  7. data/app/models/concerns/decidim/action_delegator/consultations/question_override.rb +18 -0
  8. data/app/models/decidim/action_delegator/delegation.rb +25 -0
  9. data/app/models/decidim/action_delegator/participant.rb +10 -1
  10. data/app/overrides/decidim/consultations/admin/consultations/results/add_ongoing_warning.html.erb.deface +1 -1
  11. data/app/overrides/decidim/consultations/consultations/_question/replace_vote_info.html.erb.deface +4 -0
  12. data/app/overrides/decidim/consultations/questions/_results/replace_results.html.erb.deface +3 -0
  13. data/app/overrides/decidim/consultations/questions/_vote_button/add_modal_javascript.html.erb.deface +0 -1
  14. data/app/overrides/layouts/decidim/_consultation_header/add_consultation_callout.html.erb.deface +9 -0
  15. data/app/overrides/layouts/decidim/_question_header/add_consultation_callout.html.erb.deface +9 -0
  16. data/app/packs/entrypoints/decidim_action_delegator_questions_summary.js +1 -0
  17. data/app/packs/src/decidim/action_delegator/summary.js +24 -0
  18. data/app/packs/stylesheets/decidim/action_delegator/questions.scss +1 -1
  19. data/app/services/decidim/action_delegator/delegations_csv_importer.rb +3 -3
  20. data/app/views/decidim/action_delegator/consultations/_link_with_results.html.erb +11 -0
  21. data/app/views/decidim/action_delegator/consultations/questions/_link_to_delegations.html.erb +9 -5
  22. data/app/views/decidim/action_delegator/consultations/questions/_weight_results.html.erb +8 -0
  23. data/app/views/decidim/consultations/question_votes/_callout.html.erb +47 -0
  24. data/config/assets.rb +2 -1
  25. data/config/locales/ca.yml +97 -40
  26. data/config/locales/en.yml +9 -1
  27. data/config/locales/es.yml +106 -46
  28. data/lib/decidim/action_delegator/engine.rb +2 -1
  29. data/lib/decidim/action_delegator/version.rb +2 -2
  30. metadata +12 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c9cb4e269f3433a220d34955258ee7e663add3d465833a068ff9506eef4156d
4
- data.tar.gz: bfcff5e832367d10ec48825d509f7cbdc75616cb5d34700ef596b5df7eabc39e
3
+ metadata.gz: 86b19e1b854993702dadf3708f277d118c966380818bc6833f217aba2a6a6ef1
4
+ data.tar.gz: cc1855838e4640a8836aabb25bc0adb5cc38967ae44d6eca3b2dce29454f3ac0
5
5
  SHA512:
6
- metadata.gz: d62135dd241c7b135a80baa89d682c1fa9118a9fd6ae83ddcbf1d45c70c9cbc7e18a0e131f60a99bce588b5cb903244f596822992da81c3424acdd365799f4c9
7
- data.tar.gz: 4a13be55a171cc0dd6d524f00c3e84e6e9d8e46bef3a20145c8fedb2da89f8490fd81210c3b9719dbf043de40458d865ea86a3d639ed1c42738ec13387648f09
6
+ metadata.gz: dede3edfb646c09476cada959f9c613b851bdf6bb7b95f3d4aaf9db90e3c2f7756c4b6ae7dc9f11c5be2b017860fe02b339ada863bfd29333367e7bcf1147f3f
7
+ data.tar.gz: 1b91d0c5bbba56a7f3a4c2ae030bf9904cad6aac865637a1701d0cf25edd8e634cc26062576a65df9e310b61bd6f13f3bfaa8d6ae85c1586b16b166e16a3dcd1
@@ -25,7 +25,7 @@ module Decidim
25
25
  def create
26
26
  enforce_permission_to :create, :delegation
27
27
 
28
- @form = DelegationForm.from_params(params)
28
+ @form = form(DelegationForm).from_params(params)
29
29
 
30
30
  CreateDelegation.call(@form, current_user, current_setting) do
31
31
  on(:ok) do
@@ -22,15 +22,14 @@ module Decidim
22
22
  enforce_permission_to :create, :delegation
23
23
 
24
24
  @csv_file = params[:csv_file]
25
- redirect_to seting_manage_delegations_path && return if @csv_file.blank?
25
+ redirect_to(new_setting_manage_delegation_path) && return if @csv_file.blank?
26
26
 
27
- importer_type = "DelegationsCsvImporter"
28
27
  csv_file = @csv_file.read.force_encoding("utf-8").encode("utf-8")
29
- @import_summary = Decidim::ActionDelegator::Admin::ImportCsvJob.perform_now(importer_type, csv_file, current_user, current_setting)
28
+ @import_summary = Decidim::ActionDelegator::Admin::ImportCsvJob.perform_now("DelegationsCsvImporter", csv_file, current_user, current_setting)
30
29
 
31
30
  flash[:notice] = t(".success")
32
31
 
33
- redirect_to decidim_admin_action_delegator.setting_delegations_path(current_setting)
32
+ redirect_to setting_delegations_path(current_setting)
34
33
  end
35
34
 
36
35
  private
@@ -24,9 +24,8 @@ module Decidim
24
24
  @csv_file = params[:csv_file]
25
25
  redirect_to seting_manage_participants_path && return if @csv_file.blank?
26
26
 
27
- importer_type = "ParticipantsCsvImporter"
28
27
  csv_file = @csv_file.read.force_encoding("utf-8").encode("utf-8")
29
- @import_summary = Decidim::ActionDelegator::Admin::ImportCsvJob.perform_later(importer_type, csv_file, current_user, current_setting)
28
+ @import_summary = Decidim::ActionDelegator::Admin::ImportCsvJob.perform_later("ParticipantsCsvImporter", csv_file, current_user, current_setting)
30
29
 
31
30
  flash[:notice] = t(".success")
32
31
 
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ActionDelegator
5
+ # This controller handles user profile actions for this module
6
+ class QuestionsSummaryController < ActionDelegator::ApplicationController
7
+ include Decidim::Consultations::NeedsConsultation
8
+
9
+ def show
10
+ render partial: "decidim/consultations/question_votes/callout", locals: { consultation: current_consultation }
11
+ end
12
+ end
13
+ end
14
+ end
@@ -18,15 +18,19 @@ module Decidim
18
18
  validate :grantee_exists
19
19
 
20
20
  def granter
21
- User.find_by(id: granter_id) || User.find_by(email: granter_email)
21
+ User.find_by(id: granter_id, organization: current_organization) || User.find_by(email: granter_email, organization: current_organization)
22
22
  end
23
23
 
24
24
  def grantee
25
- User.find_by(id: grantee_id) || User.find_by(email: grantee_email)
25
+ User.find_by(id: grantee_id, organization: current_organization) || User.find_by(email: grantee_email, organization: current_organization)
26
26
  end
27
27
 
28
28
  private
29
29
 
30
+ def current_organization
31
+ context&.current_organization
32
+ end
33
+
30
34
  def granter_exists
31
35
  return if granter.present?
32
36
 
@@ -11,6 +11,24 @@ module Decidim
11
11
  def publishable_results?
12
12
  (ActionDelegator.admin_preview_results || consultation.finished?) && sorted_results.any?
13
13
  end
14
+
15
+ def weighted_responses
16
+ @weighted_responses ||= Decidim::ActionDelegator::SumOfWeights.new(consultation).query.group_by(&:question_id)
17
+ end
18
+
19
+ def total_weighted_votes
20
+ @total_weighted_votes ||= weighted_responses[id].sum(&:votes_count)
21
+ end
22
+
23
+ def most_weighted_voted_response
24
+ weighted_responses[id].max_by(&:votes_count)
25
+ end
26
+
27
+ def responses_sorted_by_weighted_votes
28
+ @responses_sorted_by_weighted_votes ||= weighted_responses.transform_values do |responses|
29
+ responses.sort_by { |response| -response.votes_count }
30
+ end
31
+ end
14
32
  end
15
33
  end
16
34
  end
@@ -16,6 +16,10 @@ module Decidim
16
16
  message: I18n.t("delegations.create.error_granter_unique", scope: "decidim.action_delegator.admin")
17
17
  }
18
18
 
19
+ validate :grantee_is_not_granter
20
+ validate :granter_and_grantee_belongs_to_same_organization
21
+ validate :granter_is_same_organization_as_consultation
22
+
19
23
  delegate :consultation, to: :setting
20
24
 
21
25
  before_destroy { |record| throw(:abort) if record.grantee_voted? }
@@ -32,6 +36,27 @@ module Decidim
32
36
  granter_votes&.detect { |vote| vote.versions.exists?(whodunnit: grantee&.id) } ? true : false
33
37
  end
34
38
  end
39
+
40
+ private
41
+
42
+ def grantee_is_not_granter
43
+ return unless granter == grantee
44
+
45
+ errors.add(:grantee, :invalid)
46
+ end
47
+
48
+ def granter_and_grantee_belongs_to_same_organization
49
+ return unless granter.organization != grantee.organization
50
+
51
+ errors.add(:grantee, :invalid)
52
+ end
53
+
54
+ def granter_is_same_organization_as_consultation
55
+ return unless setting && setting.consultation
56
+ return unless consultation.organization != granter.organization
57
+
58
+ errors.add(:granter, :invalid)
59
+ end
35
60
  end
36
61
  end
37
62
  end
@@ -25,6 +25,8 @@ module Decidim
25
25
  validates :email, uniqueness: { scope: :setting }, if: -> { email.present? }
26
26
  validates :phone, uniqueness: { scope: :setting }, if: -> { phone.present? }
27
27
 
28
+ validate :user_belongs_to_organization
29
+
28
30
  # sets the decidim user if found
29
31
  before_save :set_decidim_user
30
32
 
@@ -36,7 +38,7 @@ module Decidim
36
38
  end
37
39
 
38
40
  def user_from_metadata
39
- @user_from_metadata ||= if setting.email_required?
41
+ @user_from_metadata ||= if setting&.email_required?
40
42
  Decidim::User.find_by(email: email, organization: setting.organization)
41
43
  else
42
44
  Decidim::Authorization.find_by(unique_id: uniq_ids)&.user
@@ -96,6 +98,13 @@ module Decidim
96
98
  def set_decidim_user
97
99
  self.decidim_user = user_from_metadata if decidim_user.blank?
98
100
  end
101
+
102
+ def user_belongs_to_organization
103
+ return unless decidim_user && setting && setting.consultation
104
+ return if decidim_user.organization == organization
105
+
106
+ errors.add(:decidim_user, :invalid)
107
+ end
99
108
  end
100
109
  end
101
110
  end
@@ -1,3 +1,3 @@
1
1
  <!-- insert_before '.table-list' -->
2
2
 
3
- <%= render "decidim/action_delegator/admin/consultations/ongoing_consultation_warning", consultation: current_consultation %>
3
+ <%= render "decidim/action_delegator/admin/consultations/ongoing_consultation_warning", consultation: current_consultation %>
@@ -0,0 +1,4 @@
1
+ <!-- replace_contents "erb[silent]:contains('if question.results_published?')"
2
+ closing_selector "erb[silent]:contains('else')" -->
3
+
4
+ <%= render partial: "decidim/action_delegator/consultations/link_with_results", locals: { question: question } %>
@@ -0,0 +1,3 @@
1
+ <!-- replace_contents ".card--list" -->
2
+
3
+ <%= render partial: "decidim/action_delegator/consultations/questions/weight_results", locals: { response: response, question: question } %>
@@ -1,4 +1,3 @@
1
1
  <!-- insert_before "erb[loud]:contains('javascript_pack_tag')" -->
2
2
 
3
3
  <%= javascript_pack_tag "decidim_action_delegator_questions" %>
4
-
@@ -0,0 +1,9 @@
1
+ <!-- insert_after '.consultations-home-banner' -->
2
+
3
+ <% if user_signed_in? %>
4
+ <div id="user-answers-summary" class="row" style="padding:0 1rem;margint-top:-1rem" data-summary-path="<%= decidim_action_delegator.questions_summary_path(current_consultation) %>">
5
+ <%= render "decidim/consultations/question_votes/callout", consultation: current_consultation %>
6
+
7
+ <%= javascript_pack_tag "decidim_action_delegator_questions_summary" %>
8
+ </div>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <!-- insert_before 'h2' -->
2
+
3
+ <% if user_signed_in? %>
4
+ <div id="user-answers-summary" data-summary-path="<%= decidim_action_delegator.questions_summary_path(current_question.consultation) %>">
5
+ <%= render "decidim/consultations/question_votes/callout", consultation: current_question.consultation %>
6
+
7
+ <%= javascript_pack_tag "decidim_action_delegator_questions_summary" %>
8
+ </div>
9
+ <% end %>
@@ -0,0 +1 @@
1
+ import "src/decidim/action_delegator/summary.js";
@@ -0,0 +1,24 @@
1
+ $(() => {
2
+ const $usersAnswers = $("#user-answers-summary");
3
+ const path = $usersAnswers.data("summaryPath");
4
+ let $button = $("#consultations-questions-summary-button");
5
+ let $modal = $("#consultations-questions-summary-modal");
6
+ const $div = $(".question-vote-cabin").parent();
7
+ const openModal = (evt) => {
8
+ evt.preventDefault();
9
+ $modal.foundation("open");
10
+ };
11
+
12
+ $button.on("click", openModal);
13
+
14
+ $div.bind("DOMSubtreeModified", function() {
15
+ // console.log("tree changed", path);
16
+ $usersAnswers.load(path, () => {
17
+ $button = $usersAnswers.find("#consultations-questions-summary-button");
18
+ $modal = $usersAnswers.find("#consultations-questions-summary-modal");
19
+ // console.log("usersanswer loaded")
20
+ $usersAnswers.foundation();
21
+ $button.on("click", openModal);
22
+ });
23
+ });
24
+ });
@@ -11,7 +11,7 @@
11
11
 
12
12
  .question-vote-cabin {
13
13
  .delegations-notice {
14
- a {
14
+ button {
15
15
  color: var(--secondary);
16
16
  font-weight: 600;
17
17
  background: transparent;
@@ -23,7 +23,7 @@ module Decidim
23
23
  grantee_email: row["to"].to_s.strip.downcase
24
24
  }
25
25
 
26
- @form = form(Decidim::ActionDelegator::Admin::DelegationForm).from_params(params, setting: @current_setting)
26
+ @form = form(Decidim::ActionDelegator::Admin::DelegationForm).from_params(params, setting: @current_setting, current_organization: @current_setting.organization)
27
27
 
28
28
  {
29
29
  granter_id: @form.granter&.id,
@@ -31,8 +31,8 @@ module Decidim
31
31
  }
32
32
  end
33
33
 
34
- def delegation_exists?(params)
35
- @delegation = Delegation.find_by(granter_id: params[:granter_id], grantee_id: params[:grantee_id])
34
+ def delegation_exists?(_params)
35
+ @delegation = Delegation.find_by(granter: @form.granter, grantee: @form.grantee)
36
36
 
37
37
  @delegation.present?
38
38
  end
@@ -0,0 +1,11 @@
1
+ <%= link_to decidim_consultations.question_path(question), class: "button expanded button--sc" do %>
2
+ <%= t "consultations.question.view_results", scope: "decidim" %>
3
+ <% if question.most_weighted_voted_response.present? %>
4
+ <span class="button__info"><%= translated_attribute question.most_weighted_voted_response.title %></span>
5
+ <span class="button__info">
6
+ <%= question.most_weighted_voted_response.votes_count %>
7
+ <%= t "consultations.question.votes_out_of", scope: "decidim", count: question.most_weighted_voted_response.votes_count %>
8
+ <%= question.total_weighted_votes %>
9
+ </span>
10
+ <% end %>
11
+ <% end %>
@@ -1,11 +1,15 @@
1
1
  <% if Decidim::ActionDelegator::Delegation.granted_to?(current_user, question.consultation) %>
2
2
  <% if has_any_delegate_vote?(question) %>
3
- <div class="delegations-notice flex--cc">
4
- <%= link_to t("action_delegator.delegations.has_delegations", scope: "decidim"), "#", id: "delegations-button" %>
3
+ <div class="delegations-notice flex--cc" style="margin-top:1rem;">
4
+ <button id="delegations-button" class="card__button hollow button small expanded text-white">
5
+ <%= t("action_delegator.delegations.has_delegations", scope: "decidim") %>
6
+ </button>
5
7
  </div>
6
8
  <% else %>
7
- <div class="delegations-notice flex--cc">
8
- <%= link_to t("action_delegator.delegations.link", scope: "decidim"), "#", id: "delegations-button" %>
9
- </div>
9
+ <div class="delegations-notice flex--cc" style="margin-top:1rem; width: 100%;">
10
+ <button id="delegations-button" class="card__button button small expanded secondary hollow">
11
+ <%= t("action_delegator.delegations.link", scope: "decidim") %>
12
+ </button>
13
+ </div>
10
14
  <% end %>
11
15
  <% end %>
@@ -0,0 +1,8 @@
1
+ <% question.responses_sorted_by_weighted_votes[question.id].each do |response| %>
2
+ <div class=card--list__item>
3
+ <div class="card--list__text"><%= translated_attribute response.title %></div>
4
+ <div class="card--list__data">
5
+ <span class="card--list__data__number"><%= response.votes_count %></span>
6
+ </div>
7
+ </div>
8
+ <% end %>
@@ -0,0 +1,47 @@
1
+ <% total_published_questions = consultation.questions.published.count %>
2
+ <% voted_questions = consultation.questions.published.joins(:votes).where(votes: { author: current_user }).distinct.count(:id) %>
3
+
4
+ <% alert_class = total_published_questions != voted_questions ? "warning" : "success" %>
5
+
6
+ <div class="callout <%= alert_class %>">
7
+ <p>
8
+ <%= t("action_delegator.questions.callout_text", scope: "decidim", voted: voted_questions, total: total_published_questions) %>
9
+ <a href="#" class="text-primary" id="consultations-questions-summary-button"><%= t("action_delegator.questions.callout_link_text", scope: "decidim") %></a>
10
+ </p>
11
+ </div>
12
+
13
+ <div class="reveal" id="consultations-questions-summary-modal" data-reveal>
14
+ <h4><%= t("action_delegator.questions.modal.modal_votes_title", scope: "decidim", title: translated_attribute(consultation.title)) %></h4>
15
+ <p class="lead">
16
+ <table class="table-list">
17
+ <thead>
18
+ <tr>
19
+ <th width="200"><%= t("action_delegator.questions.modal.modal_table_header_question", scope: "decidim") %></th>
20
+ <th width="150"><%= t("action_delegator.questions.modal.modal_table_header_answer", scope: "decidim") %></th>
21
+ </tr>
22
+ </thead>
23
+ <tbody>
24
+ <% consultation.questions.each do |question| %>
25
+ <tr>
26
+ <td><%= strip_tags(translated_attribute(question.title)).truncate(200, separator: /\s/) %></td>
27
+ <td>
28
+ <% if question.votes.where(author: current_user).any? %>
29
+ <% user_response = question.responses.joins(:votes).find_by(votes: { author: current_user }) %>
30
+ <% if user_response %>
31
+ <p title="<%= translated_attribute(user_response.title) %>"><%= t("booleans.true") %></p>
32
+ <% else %>
33
+ <%= link_to t("action_delegator.questions.question_not_answered", scope: "decidim"), decidim_consultations.question_path(question), class: "text-primary" %>
34
+ <% end %>
35
+ <% else %>
36
+ <%= link_to t("action_delegator.questions.question_not_answered", scope: "decidim"), decidim_consultations.question_path(question), class: "text-primary" %>
37
+ <% end %>
38
+ </td>
39
+ </tr>
40
+ <% end %>
41
+ </tbody>
42
+ </table>
43
+ </p>
44
+ <button class="close-button" data-close aria-label="Close modal" type="button">
45
+ <span aria-hidden="true">&times;</span>
46
+ </button>
47
+ </div>
data/config/assets.rb CHANGED
@@ -19,7 +19,8 @@ Decidim::Webpacker.register_path("#{base_path}/app/packs")
19
19
  # SCSS files within the entrypoints, they become available for inclusion using
20
20
  # `stylesheet_pack_tag`.
21
21
  Decidim::Webpacker.register_entrypoints(
22
- decidim_action_delegator_questions: "#{base_path}/app/packs/entrypoints/decidim_action_delegator_questions.js"
22
+ decidim_action_delegator_questions: "#{base_path}/app/packs/entrypoints/decidim_action_delegator_questions.js",
23
+ decidim_action_delegator_questions_summary: "#{base_path}/app/packs/entrypoints/decidim_action_delegator_questions_summary.js"
23
24
  )
24
25
 
25
26
  # If you want to import some extra SCSS files in the Decidim main SCSS file
@@ -15,16 +15,19 @@ ca:
15
15
  setting:
16
16
  decidim_consultation_id: Consulta
17
17
  max_grants: Màxim nombre de delegacions que pot rebre una participant
18
- phone_freezed: Usa el número de telèfon del cens. No permet als participants editar-lo.
18
+ phone_freezed: Usa el número de telèfon del cens. No permet als participants
19
+ editar-lo.
19
20
  verify_with_sms: Verifica amb SMS
20
21
  errors:
21
22
  models:
22
23
  delegations_verifier:
23
24
  attributes:
24
25
  email:
25
- email_not_found: Ho sentim, el teu email no és al cens. Si us plau, contacteu amb nosaltres si penseu que hi ha un error.
26
+ email_not_found: Ho sentim, el teu email no és al cens. Si us plau,
27
+ contacteu amb nosaltres si penseu que hi ha un error.
26
28
  phone:
27
- phone_not_found: Ho sentim, el teu email no és al cens. Si us plau, contacta amb nosaltres is creieu que és un error.
29
+ phone_not_found: Ho sentim, el teu email no és al cens. Si us plau,
30
+ contacta amb nosaltres is creieu que és un error.
28
31
  decidim:
29
32
  action_delegator:
30
33
  admin:
@@ -81,23 +84,29 @@ ca:
81
84
  manage_delegations:
82
85
  create:
83
86
  error: S'ha produït un error en importar les participants
84
- success: El procés d'importació ha començat, espereu uns minuts i actualitzeu la pàgina per veure la llista de participants. Els resultats d'importació s'enviaran per correu electrònic.
87
+ success: El procés d'importació ha començat, espereu uns minuts i actualitzeu
88
+ la pàgina per veure la llista de participants. Els resultats d'importació
89
+ s'enviaran per correu electrònic.
85
90
  new:
86
91
  import: Importa
87
- required_fields: 'Camps obligatoris: Email de l''atorgant, email de la receptora'
92
+ required_fields: 'Camps obligatoris: Email de l''atorgant, email de la
93
+ receptora'
88
94
  title: Importa les delegacions
89
95
  title_example: 'Exemple:'
90
96
  upload_instructions: Ha de ser un fitxer en format CSV amb una capçalera.
91
97
  manage_participants:
92
98
  create:
93
99
  error: S'ha produït un error en importar les participants
94
- success: El procés d'importació ha començat, espereu uns minuts i actualitzeu la pàgina per veure la llista de participants. Els resultats d'importació s'enviaran per correu electrònic.
100
+ success: El procés d'importació ha començat, espereu uns minuts i actualitzeu
101
+ la pàgina per veure la llista de participants. Els resultats d'importació
102
+ s'enviaran per correu electrònic.
95
103
  new:
96
104
  authorization_method:
97
105
  both: correu electrònic i número de telèfon mòbil
98
106
  email: correu electrònic
99
107
  phone: número de telèfon
100
- describe: 'Tingueu en compte que també és possible importar pesos utilitzant el nom de la taula de ponderació en comptes del número de pes, per exemple:'
108
+ describe: 'Tingueu en compte que també és possible importar pesos utilitzant
109
+ el nom de la taula de ponderació en comptes del número de pes, per exemple:'
101
110
  import: Importar
102
111
  required_fields: 'Camps obligatoris: %{authorization_method}'
103
112
  title: Importar participants
@@ -125,12 +134,15 @@ ca:
125
134
  csv_import: Importa CSV
126
135
  new_participant: Nova participant
127
136
  remove_census: Elimina el cens
128
- all_users_registered_html: Totes les participants estan registrades a la plataforma
137
+ all_users_registered_html: Totes les participants estan registrades a
138
+ la plataforma
129
139
  created_at: Creat el
130
140
  email: Correu electrònic
131
141
  last_login: Darrer inici de sessió
132
- missing_emails: El mètode d'autorització no requereix un correu electrònic. Per això, %{count} s'han de registrar elles mateixes a la plataforma
133
- missing_registered: Hi ha %{missing_registered} participants que no estan registrades a la plataforma
142
+ missing_emails: El mètode d'autorització no requereix un correu electrònic.
143
+ Per això, %{count} s'han de registrar elles mateixes a la plataforma
144
+ missing_registered: Hi ha %{missing_registered} participants que no estan
145
+ registrades a la plataforma
134
146
  never_logged: Mai ha iniciat sessió
135
147
  participant: participant
136
148
  phone: Telèfon
@@ -143,14 +155,17 @@ ca:
143
155
  save: Crea
144
156
  title: Nova participant
145
157
  remove_census:
146
- confirm: Esteu segur que voleu suprimir aquest cens? Aquesta operació no es pot desfer
147
- success: "%{participants_count} entrades s'han suprimit correctament del cens"
158
+ confirm: Esteu segur que voleu suprimir aquest cens? Aquesta operació
159
+ no es pot desfer
160
+ success: "%{participants_count} entrades s'han suprimit correctament del
161
+ cens"
148
162
  update:
149
163
  error: S'ha produït un error en actualitzar la participant
150
164
  success: Participant desada correctament
151
165
  permissions:
152
166
  sync:
153
- started: La sincronització dels participants ha començat. Espereu uns minuts i actualitzeu aquesta pàgina.
167
+ started: La sincronització dels participants ha començat. Espereu uns
168
+ minuts i actualitzeu aquesta pàgina.
154
169
  update:
155
170
  error: S'ha produït un error en actualitzar els permisos
156
171
  success: Permisos actualitzats correctament
@@ -165,9 +180,13 @@ ca:
165
180
  save: Desa
166
181
  title: Edita el tipus d'afiliació
167
182
  form:
168
- name_help: Tipus d'associat, per exemple "soci col·laborador", "soci", "patró". Ha de ser únic.
169
- name_placeholder: 'Proveu, per exemple: "membre", "soci", "simpatitzant", "usuari base"...'
170
- weight_help: 'Pes del vot, per exemple: "1", "2", "1,5". Aquest número servirà per ponderar els vots de les participants assignades a cada tipologia.'
183
+ name_help: Tipus d'associat, per exemple "soci col·laborador", "soci",
184
+ "patró". Ha de ser únic.
185
+ name_placeholder: 'Proveu, per exemple: "membre", "soci", "simpatitzant",
186
+ "usuari base"...'
187
+ weight_help: 'Pes del vot, per exemple: "1", "2", "1,5". Aquest número
188
+ servirà per ponderar els vots de les participants assignades a cada
189
+ tipologia.'
171
190
  index:
172
191
  actions:
173
192
  new_ponderation: Nou tipus d'afiliació
@@ -195,7 +214,9 @@ ca:
195
214
  <li><b>Correu electrònic i número de telèfon:</b> utilitza la verificació per SMS. El correu electrònic de la participant ha de coincidir amb el cens i el número de telèfon estarà predefinit.</li>
196
215
  </ul>
197
216
  check_verifier:
198
- not_installed_html: Sembla que el mètode d'autorització "Verificador de Governança societària" no està instal·lat. No podeu utilitzar el cens integrat sense aquest. Instal·leu-lo a <a href="/system">/system</a>.
217
+ not_installed_html: Sembla que el mètode d'autorització "Verificador de
218
+ Governança societària" no està instal·lat. No podeu utilitzar el cens
219
+ integrat sense aquest. Instal·leu-lo a <a href="/system">/system</a>.
199
220
  copy_setting: 'Copia ponderacions i cens de:'
200
221
  create:
201
222
  error: S'ha produït un error en crear la configuració
@@ -232,20 +253,36 @@ ca:
232
253
  save: Desa
233
254
  title: Nova configuració
234
255
  setting_checks:
235
- all_users_authorized_html: Totes les participants són verficades pel <i>Verificador de Governança societària</i>.
236
- all_users_registered_html: Totes les participants estan registrades a la plataforma.
256
+ all_users_authorized_html: Totes les participants són verficades pel <i>Verificador
257
+ de Governança societària</i>.
258
+ all_users_registered_html: Totes les participants estan registrades a
259
+ la plataforma.
237
260
  click_to_fix: Feu clic aquí per solucionar-ho automàticament
238
- consultation_questions_all_verified_html: Totes les preguntes estan restringides pel <i>Verificador de Governança societària</i>.
239
- consultation_questions_missing_verifier_html: Hi ha %{count} preguntes que no estan restringides pel <i>Verificador de Governança societària</i>. <b>Sense això, tothom podrà votar-hi.</b> <em>Això és correcte si utilitzeu altres mètodes d'autorització o si tothom té permís per votar.</em>
240
- missing_authorizations_html: Hi ha %{count} participants que no estan verificats pel <i>Verificador de Governança societària</i>. <em>Això està bé si aquestes participants tenen els seus vots delegats a altres persones o si utilitzeu altres mètodes de verificació (o cap).</em>
241
- missing_emails: El mètode d'autorització no requereix un correu electrònic. Per això, %{count} s'han de registrar elles mateixes a la plataforma
242
- missing_registered_users_html: Hi ha %{count} participants que no estan registrats a la plataforma.
261
+ consultation_questions_all_verified_html: Totes les preguntes estan restringides
262
+ pel <i>Verificador de Governança societària</i>.
263
+ consultation_questions_missing_verifier_html: Hi ha %{count} preguntes
264
+ que no estan restringides pel <i>Verificador de Governança societària</i>.
265
+ <b>Sense això, tothom podrà votar-hi.</b> <em>Això és correcte si utilitzeu
266
+ altres mètodes d'autorització o si tothom té permís per votar.</em>
267
+ missing_authorizations_html: Hi ha %{count} participants que no estan
268
+ verificats pel <i>Verificador de Governança societària</i>. <em>Això
269
+ està bé si aquestes participants tenen els seus vots delegats a altres
270
+ persones o si utilitzeu altres mètodes de verificació (o cap).</em>
271
+ missing_emails: El mètode d'autorització no requereix un correu electrònic.
272
+ Per això, %{count} s'han de registrar elles mateixes a la plataforma
273
+ missing_registered_users_html: Hi ha %{count} participants que no estan
274
+ registrats a la plataforma.
243
275
  no_delegations_html: No hi ha delegacions de vot.
244
- no_participants_html: No hi ha cens! <b>Afegiu participants o ningú podrà votar si el <i>Verificador de Governança societària</i> està actiu.</b> <em>Això és correcte si feu servir altres mètodes d'autorització o si tothom té permís per votar.</em>
245
- no_ponderations_html: No hi ha ponderacions de vot. <b>Totes les participants tindran el mateix pes en els seus vots</b>
276
+ no_participants_html: No hi ha cens! <b>Afegiu participants o ningú podrà
277
+ votar si el <i>Verificador de Governança societària</i> està actiu.</b>
278
+ <em>Això és correcte si feu servir altres mètodes d'autorització o si
279
+ tothom té permís per votar.</em>
280
+ no_ponderations_html: No hi ha ponderacions de vot. <b>Totes les participants
281
+ tindran el mateix pes en els seus vots</b>
246
282
  participant: participant
247
283
  user: usuària
248
- users_need_sync_html: Cal sincronitzar la llista de participants. <b>Els resultats de la consulta poden ser incorrectes!</b>
284
+ users_need_sync_html: Cal sincronitzar la llista de participants. <b>Els
285
+ resultats de la consulta poden ser incorrectes!</b>
249
286
  state:
250
287
  closed: Tancat
251
288
  ongoing: En curs
@@ -258,15 +295,19 @@ ca:
258
295
  authorizations:
259
296
  new:
260
297
  missing_phone_error: No s'ha trobat telèfon de l'associat
261
- phone_warning: Aquest número de telèfon s'ha importat per l'administrador. Si us plau, poseu-vos-hi en contacte si no és correcte.
298
+ phone_warning: Aquest número de telèfon s'ha importat per l'administrador.
299
+ Si us plau, poseu-vos-hi en contacte si no és correcte.
262
300
  delegations:
263
301
  has_delegations: Vot delegat realitzat
264
- link: Tens delegacions disponibles
302
+ link: "\U0001F449 Tens delegacions disponibles"
265
303
  delegations_authorizer:
266
- email: Estem utilitzant el correu electrònic %{email} per verificar la vostra identitat. Si creieu que això està malament, poseu-vos en contacte amb nosaltres.
267
- no_setting: No s'ha trobat cap grup de delegació per a aquesta consulta. Poseu-vos en contacte amb l'administrador per solucionar-ho.
304
+ email: Estem utilitzant el correu electrònic %{email} per verificar la vostra
305
+ identitat. Si creieu que això està malament, poseu-vos en contacte amb nosaltres.
306
+ no_setting: No s'ha trobat cap grup de delegació per a aquesta consulta. Poseu-vos
307
+ en contacte amb l'administrador per solucionar-ho.
268
308
  not_in_census: No ets al cens
269
- phone: Estem utilitzant el telèfon %{phone} per verificar la vostra identitat. Si creieu que això està malament, poseu-vos en contacte amb nosaltres.
309
+ phone: Estem utilitzant el telèfon %{phone} per verificar la vostra identitat.
310
+ Si creieu que això està malament, poseu-vos en contacte amb nosaltres.
270
311
  delegations_modal:
271
312
  callout: Recorda, estàs votant en nom de
272
313
  contextual_help: 'Has estat autoritzat a votar en nom de:'
@@ -277,7 +318,9 @@ ca:
277
318
  errors_title: "<b>S'han trobat:</b> %{errors_count} errors"
278
319
  greeting: Hola %{name},
279
320
  info_messages: Motiu d'omissió
280
- instructions: "<p>S'adjunta un fitxer amb els detalls de la importació, conté les files que no s'han importat.</p>\n<p>Si voleu continuar important, corregiu les files especificades, suprimiu l'última columna del fitxer, deseu el fitxer i torna a importar.</p>\n"
321
+ instructions: |
322
+ <p>S'adjunta un fitxer amb els detalls de la importació, conté les files que no s'han importat.</p>
323
+ <p>Si voleu continuar important, corregiu les files especificades, suprimiu l'última columna del fitxer, deseu el fitxer i torna a importar.</p>
281
324
  result: "<b>Importat:</b> %{rows_count} files de %{total_rows_count}."
282
325
  row_number: Número de fila
283
326
  skipped_rows: "<b>S'han omès:</b> %{skipped_rows} files."
@@ -286,7 +329,8 @@ ca:
286
329
  text_error: Error
287
330
  invite_participants_mailer:
288
331
  confirmation:
289
- body: Us han convidat a participar en la consulta. Feu clic a l'enllaç següent per confirmar la vostra participació.
332
+ body: Us han convidat a participar en la consulta. Feu clic a l'enllaç següent
333
+ per confirmar la vostra participació.
290
334
  confirm: Confirmar la participació
291
335
  greeting: Hola %{recipient},
292
336
  name: Mòdul Decidim ActionDelegator per a cooperatives
@@ -300,7 +344,15 @@ ca:
300
344
  phone_exists: El participant amb aquest telèfon ja existeix
301
345
  ponderation_not_found: No s'ha trobat el tipus de ponderació
302
346
  skip_import_info: El participant ja existeix %{with_mismatched_fields}
303
- with_mismatched_fields: "amb camps no coincidents: %{fields}"
347
+ with_mismatched_fields: 'amb camps no coincidents: %{fields}'
348
+ questions:
349
+ callout_link_text: Revisa el resum de la teva votació aquí
350
+ callout_text: Has respost %{voted} de un total de %{total} preguntes.
351
+ modal:
352
+ modal_table_header_answer: Has respost?
353
+ modal_table_header_question: Pregunta
354
+ modal_votes_title: Els teus vots a "%{title}"
355
+ question_not_answered: No, ves-hi
304
356
  sms_message: El teu codi de verificació és %{code}
305
357
  user_delegations:
306
358
  index:
@@ -322,9 +374,13 @@ ca:
322
374
  new:
323
375
  authorize: Autoritza el meu compte
324
376
  missing_phone_error: Falta el telèfon de l'associat
325
- not_in_census: Ho sentim, però no pots estar autoritzat perquè el teu correu electrònic no està al cens. Poseu-vos en contacte amb l'administrador si creieu que es tracta d'un error.
326
- participate_in: 'Aquesta autorització us permet participar en les consultes següents: %{consultations}'
327
- phone_warning: Aquest número de telèfon ha estat importat per l'administrador. Si us plau, poseu-vos en contacte si no és correcte.
377
+ not_in_census: Ho sentim, però no pots estar autoritzat perquè el teu
378
+ correu electrònic no està al cens. Poseu-vos en contacte amb l'administrador
379
+ si creieu que es tracta d'un error.
380
+ participate_in: 'Aquesta autorització us permet participar en les consultes
381
+ següents: %{consultations}'
382
+ phone_warning: Aquest número de telèfon ha estat importat per l'administrador.
383
+ Si us plau, poseu-vos en contacte si no és correcte.
328
384
  send_code: Envia el codi de verificació
329
385
  title: Autoritza amb el Verificador de Governança societària
330
386
  admin:
@@ -344,9 +400,10 @@ ca:
344
400
  admin:
345
401
  delegations_verifier:
346
402
  help:
347
- - Mètode de verificació per la delegació de vot
403
+ - Mètode de verificació per la delegació de vot
348
404
  delegations_verifier:
349
- explanation: Els usuaris verificats per aquest mètode poden delegar els seus vots a altres usuaris
405
+ explanation: Els usuaris verificats per aquest mètode poden delegar els seus
406
+ vots a altres usuaris
350
407
  fields:
351
408
  phone: Número de telèfon
352
409
  name: Governança societària
@@ -298,7 +298,7 @@ en:
298
298
  reach out if it's not correct.
299
299
  delegations:
300
300
  has_delegations: Delegate vote made
301
- link: You have delegations granted
301
+ link: "\U0001F449 You have delegations granted"
302
302
  delegations_authorizer:
303
303
  email: We are using the email %{email} to verify your identity. If you think
304
304
  this is wrong, please contact us.
@@ -345,6 +345,14 @@ en:
345
345
  ponderation_not_found: Ponderation type not found
346
346
  skip_import_info: Participant already exists %{with_mismatched_fields}
347
347
  with_mismatched_fields: " with mismatched fields: %{fields}"
348
+ questions:
349
+ callout_link_text: Review the summary of your vote here
350
+ callout_text: You have answered %{voted} from a total of %{total} questions.
351
+ modal:
352
+ modal_table_header_answer: Did you answer?
353
+ modal_table_header_question: Question
354
+ modal_votes_title: Your votes in "%{title}"
355
+ question_not_answered: No, take me there
348
356
  sms_message: Your verification code is %{code}
349
357
  user_delegations:
350
358
  index:
@@ -14,17 +14,23 @@ es:
14
14
  name_help: Tipo de miembro
15
15
  setting:
16
16
  decidim_consultation_id: Consulta
17
- max_grants: Número máximo de delegaciones de voto que una participante puede recibir
18
- phone_freezed: Utilice el número de teléfono del censo. No permita que los participantes lo editen.
17
+ max_grants: Número máximo de delegaciones de voto que una participante puede
18
+ recibir
19
+ phone_freezed: Utilice el número de teléfono del censo. No permita que los
20
+ participantes lo editen.
19
21
  verify_with_sms: Verificar con SMS
20
22
  errors:
21
23
  models:
22
24
  delegations_verifier:
23
25
  attributes:
24
26
  email:
25
- email_not_found: Lo sentimos, este correo electrónico no está en el censo. Por favor, póngase en contacto con nosotros si cree que esto es un error.
27
+ email_not_found: Lo sentimos, este correo electrónico no está en el
28
+ censo. Por favor, póngase en contacto con nosotros si cree que esto
29
+ es un error.
26
30
  phone:
27
- phone_not_found: Lo sentimos, este correo electrónico no está en el censo. Por favor, póngase en contacto con nosotros si cree que esto es un error.
31
+ phone_not_found: Lo sentimos, este correo electrónico no está en el
32
+ censo. Por favor, póngase en contacto con nosotros si cree que esto
33
+ es un error.
28
34
  decidim:
29
35
  action_delegator:
30
36
  admin:
@@ -56,9 +62,9 @@ es:
56
62
  delete: Eliminar
57
63
  description_html: Estas son las delegaciones actuales para esta consulta
58
64
  grantee: Receptora (a)
59
- grantee_voted: '¿Se ha utilizado la delegación?'
65
+ grantee_voted: "¿Se ha utilizado la delegación?"
60
66
  granter: Otorgante
61
- granter_voted: '¿Ha votado la otorgante?'
67
+ granter_voted: "¿Ha votado la otorgante?"
62
68
  title: Participantes
63
69
  new:
64
70
  grantee: Beneficiario
@@ -81,23 +87,30 @@ es:
81
87
  manage_delegations:
82
88
  create:
83
89
  error: Se ha producido un error en importar las participantes
84
- success: El proceso de importación ha comenzado, por favor espere unos minutos y actualice la página para ver la lista de participantes. Los resultados de importación se enviarán por correo electrónico.
90
+ success: El proceso de importación ha comenzado, por favor espere unos
91
+ minutos y actualice la página para ver la lista de participantes. Los
92
+ resultados de importación se enviarán por correo electrónico.
85
93
  new:
86
94
  import: Importar
87
- required_fields: 'Campos requeridos: correo del otorgante, correo del receptor'
95
+ required_fields: 'Campos requeridos: correo del otorgante, correo del
96
+ receptor'
88
97
  title: Importar delegaciones
89
98
  title_example: 'Ejemplo:'
90
99
  upload_instructions: Debe ser un archivo en formato CSV con un encabezado.
91
100
  manage_participants:
92
101
  create:
93
102
  error: Se ha producido un error en importar las participantes
94
- success: El proceso de importación ha comenzado, por favor espere unos minutos y actualice la página para ver la lista de participantes. Los resultados de importación se enviarán por correo electrónico.
103
+ success: El proceso de importación ha comenzado, por favor espere unos
104
+ minutos y actualice la página para ver la lista de participantes. Los
105
+ resultados de importación se enviarán por correo electrónico.
95
106
  new:
96
107
  authorization_method:
97
108
  both: correo electrónico y número de teléfono
98
109
  email: correo electrónico
99
110
  phone: número de teléfono
100
- describe: 'Tenga en cuenta que también es posible importar pesos usando el nombre en la tabla de ponderación en lugar del número de peso, por ejemplo:'
111
+ describe: 'Tenga en cuenta que también es posible importar pesos usando
112
+ el nombre en la tabla de ponderación en lugar del número de peso, por
113
+ ejemplo:'
101
114
  import: Importar
102
115
  required_fields: 'Campos requeridos: %{authorization_method}'
103
116
  title: Importar participantes
@@ -125,12 +138,15 @@ es:
125
138
  csv_import: Importar CSV
126
139
  new_participant: Nueva participante
127
140
  remove_census: Eliminar censo
128
- all_users_registered_html: Todas las participantes están registradas en la plataforma
141
+ all_users_registered_html: Todas las participantes están registradas en
142
+ la plataforma
129
143
  created_at: Creado el
130
144
  email: Correo electrónico
131
145
  last_login: Último acceso
132
- missing_emails: El método de autorización no requiere un correo electrónico. Por esto, %{count} debe registrarse en la plataforma
133
- missing_registered: Hay %{missing_registered} participantes que no están registradas en la plataforma
146
+ missing_emails: El método de autorización no requiere un correo electrónico.
147
+ Por esto, %{count} debe registrarse en la plataforma
148
+ missing_registered: Hay %{missing_registered} participantes que no están
149
+ registradas en la plataforma
134
150
  never_logged: Nunca ha iniciado sesión
135
151
  participant: participante
136
152
  phone: Teléfono
@@ -138,19 +154,22 @@ es:
138
154
  send_invitation_link: Haga clic aquí para enviarles una invitación
139
155
  title: Censo
140
156
  user: Nombre
141
- voted: '¿Ha votado?'
157
+ voted: "¿Ha votado?"
142
158
  new:
143
159
  save: Crear
144
160
  title: Nueva participante
145
161
  remove_census:
146
- confirm: '¿Está seguro de que quiere eliminar el censo? Esta acción no se puede deshacer'
147
- success: "%{participants_count} entradas fueron eliminadas de la página con éxito"
162
+ confirm: "¿Está seguro de que quiere eliminar el censo? Esta acción no
163
+ se puede deshacer"
164
+ success: "%{participants_count} entradas fueron eliminadas de la página
165
+ con éxito"
148
166
  update:
149
167
  error: Se ha producido un error en actualizar las participantes
150
168
  success: Participantes guardados con éxito
151
169
  permissions:
152
170
  sync:
153
- started: La sincronización de participantes ha comenzado. Por favor espere unos minutos y actualice esta página.
171
+ started: La sincronización de participantes ha comenzado. Por favor espere
172
+ unos minutos y actualice esta página.
154
173
  update:
155
174
  error: Se ha producido un error al actualizar los permisos
156
175
  success: Permisos correctamente actualizados.
@@ -165,9 +184,11 @@ es:
165
184
  save: Guardar
166
185
  title: Editar tipos de ponderación
167
186
  form:
168
- name_help: Tipo de asociado, p. ej., "socio", "consumidor", "patrón". Debe ser único.
187
+ name_help: Tipo de asociado, p. ej., "socio", "consumidor", "patrón".
188
+ Debe ser único.
169
189
  name_placeholder: 'Prueba, por ejemplo: "miembro", "asociado", "partidario"...'
170
- weight_help: Peso del voto p. ej., "1", "2", "1.5". Este número se utilizará para sopesar los votos de las participantes en este tipo de ponderación.
190
+ weight_help: Peso del voto p. ej., "1", "2", "1.5". Este número se utilizará
191
+ para sopesar los votos de las participantes en este tipo de ponderación.
171
192
  index:
172
193
  actions:
173
194
  new_ponderation: Nueva ponderación
@@ -195,7 +216,9 @@ es:
195
216
  <li><b>Correo electrónico y número de teléfono:</b> Utiliza verificación por SMS. El correo electrónico de la participante debe coincidir con el censo y el número de teléfono estará predefinido.</li>
196
217
  </ul>
197
218
  check_verifier:
198
- not_installed_html: Parece que el método de autorización "Verificador de Gobernanza Societaria" no está activado. No puedes autenticar el censo sin la activación. Instálelo en <a href="/system">/system</a>.
219
+ not_installed_html: Parece que el método de autorización "Verificador
220
+ de Gobernanza Societaria" no está activado. No puedes autenticar el
221
+ censo sin la activación. Instálelo en <a href="/system">/system</a>.
199
222
  copy_setting: 'Copiar ponderaciones y censo de:'
200
223
  create:
201
224
  error: Se ha producido un problema al crear la configuración
@@ -232,20 +255,37 @@ es:
232
255
  save: Guardar
233
256
  title: Nueva configuración
234
257
  setting_checks:
235
- all_users_authorized_html: Todas las participantes están verificadas por el <i>Verificador de Gobernanza Societaria</i>.
236
- all_users_registered_html: Todos los participantes están registrados en la plataforma.
258
+ all_users_authorized_html: Todas las participantes están verificadas por
259
+ el <i>Verificador de Gobernanza Societaria</i>.
260
+ all_users_registered_html: Todos los participantes están registrados en
261
+ la plataforma.
237
262
  click_to_fix: Haga clic aquí para arreglar esto automáticamente
238
- consultation_questions_all_verified_html: Todas las preguntas están restringidas por el <i>Verificador de Gobernanza Societaria</i>.
239
- consultation_questions_missing_verifier_html: Hay %{count} preguntas que no están restringidas por el <i>Verificador de Gobernanza Societaria</i>. <b>Sin la restricción, cualquiera podrá votar las preguntas.</b> <em>Esto está bien si está utilizando otros métodos de autorización o si todas las registradas pueden votar.</em>
240
- missing_authorizations_html: Hay %{count} participantes que no están verificadas por el <i>Verificador de Gobernanza Societaria</i>. <em>Está bien si estas participantes tienen sus votos delegados a otras o si está utilizando otros métodos de verificación (o ninguno).</em>
241
- missing_emails: El método de autorización no requiere un correo electrónico. Por esto, %{count} debe registrarse en la plataforma
242
- missing_registered_users_html: Hay %{count} participantes que no están registrados en la plataforma.
263
+ consultation_questions_all_verified_html: Todas las preguntas están restringidas
264
+ por el <i>Verificador de Gobernanza Societaria</i>.
265
+ consultation_questions_missing_verifier_html: Hay %{count} preguntas que
266
+ no están restringidas por el <i>Verificador de Gobernanza Societaria</i>.
267
+ <b>Sin la restricción, cualquiera podrá votar las preguntas.</b> <em>Esto
268
+ está bien si está utilizando otros métodos de autorización o si todas
269
+ las registradas pueden votar.</em>
270
+ missing_authorizations_html: Hay %{count} participantes que no están verificadas
271
+ por el <i>Verificador de Gobernanza Societaria</i>. <em>Está bien si
272
+ estas participantes tienen sus votos delegados a otras o si está utilizando
273
+ otros métodos de verificación (o ninguno).</em>
274
+ missing_emails: El método de autorización no requiere un correo electrónico.
275
+ Por esto, %{count} debe registrarse en la plataforma
276
+ missing_registered_users_html: Hay %{count} participantes que no están
277
+ registrados en la plataforma.
243
278
  no_delegations_html: No hay votos delegados.
244
- no_participants_html: '¡No hay censo! <b>Añade participantes o nadie podrá votar si el <i>Verificador de Gobernanza Societaria</i> está activo.</b> <em>Está bien si está utilizando otros métodos de autorización o si todas las registradas pueden votar.</em>'
245
- no_ponderations_html: No hay ponderaciones de votos. <b>Todos los usuarios tendrán el mismo peso en sus votos</b>
279
+ no_participants_html: "¡No hay censo! <b>Añade participantes o nadie podrá
280
+ votar si el <i>Verificador de Gobernanza Societaria</i> está activo.</b>
281
+ <em>Está bien si está utilizando otros métodos de autorización o si
282
+ todas las registradas pueden votar.</em>"
283
+ no_ponderations_html: No hay ponderaciones de votos. <b>Todos los usuarios
284
+ tendrán el mismo peso en sus votos</b>
246
285
  participant: participante
247
286
  user: participante
248
- users_need_sync_html: La lista de participantes debe sincronizarse. <b>¡Los resultados de la consulta pueden ser incorrectos!</b>
287
+ users_need_sync_html: La lista de participantes debe sincronizarse. <b>¡Los
288
+ resultados de la consulta pueden ser incorrectos!</b>
249
289
  state:
250
290
  closed: Cerrado
251
291
  ongoing: En proceso
@@ -258,15 +298,19 @@ es:
258
298
  authorizations:
259
299
  new:
260
300
  missing_phone_error: Falta el teléfono de miembro
261
- phone_warning: Este número de teléfono ha sido importado por el administrador. Por favor, contacta si no es correcto.
301
+ phone_warning: Este número de teléfono ha sido importado por el administrador.
302
+ Por favor, contacta si no es correcto.
262
303
  delegations:
263
304
  has_delegations: Voto delegado realizado
264
- link: Tienes delegaciones concedidas
305
+ link: "\U0001F449 Tienes delegaciones concedidas"
265
306
  delegations_authorizer:
266
- email: Estamos utilizando el correo electrónico %{email} para verificar su identidad. Si cree que esto está mal, póngase en contacto con nosotros.
267
- no_setting: No se encontró ningún grupo de delegación para esta consulta. Póngase en contacto con el administrador para solucionarlo.
307
+ email: Estamos utilizando el correo electrónico %{email} para verificar su
308
+ identidad. Si cree que esto está mal, póngase en contacto con nosotros.
309
+ no_setting: No se encontró ningún grupo de delegación para esta consulta.
310
+ Póngase en contacto con el administrador para solucionarlo.
268
311
  not_in_census: No estás en el censo
269
- phone: Estamos usando el teléfono %{phone} para verificar su identidad. Si cree que esto está mal, póngase en contacto con nosotros.
312
+ phone: Estamos usando el teléfono %{phone} para verificar su identidad. Si
313
+ cree que esto está mal, póngase en contacto con nosotros.
270
314
  delegations_modal:
271
315
  callout: Recuerda, estás votando en nombre de
272
316
  contextual_help: 'Se le ha concedido el voto de:'
@@ -277,7 +321,9 @@ es:
277
321
  errors_title: "<b>Se han encontrado:</b> %{errors_count} errores"
278
322
  greeting: Hola %{name},
279
323
  info_messages: Motivo de omisión
280
- instructions: "<p>Se adjunta un archivo con detalles de importación, contiene filas que no fueron importadas.</p>\n<p>Si desea continuar con la importación, corrija las filas especificadas, elimine la última columna del archivo, guarde el archivo e importar de nuevo.</p>\n"
324
+ instructions: |
325
+ <p>Se adjunta un archivo con detalles de importación, contiene filas que no fueron importadas.</p>
326
+ <p>Si desea continuar con la importación, corrija las filas especificadas, elimine la última columna del archivo, guarde el archivo e importar de nuevo.</p>
281
327
  result: "<b>Importado:</b> %{rows_count} filas de %{total_rows_count}."
282
328
  row_number: Numero fila
283
329
  skipped_rows: "<b>Omitidas:</b> %{skipped_rows} filas."
@@ -286,9 +332,10 @@ es:
286
332
  text_error: Error
287
333
  invite_participants_mailer:
288
334
  confirmation:
289
- body: Has sido invitado a participar en la consulta. Por favor, haz clic en el enlace de abajo para confirmar tu participación.
335
+ body: Has sido invitado a participar en la consulta. Por favor, haz clic
336
+ en el enlace de abajo para confirmar tu participación.
290
337
  confirm: Confirmar la participación
291
- greeting: '¡Hola, %{recipient}!,'
338
+ greeting: "¡Hola, %{recipient}!,"
292
339
  name: Módulo Cooperativas - ActionDelegator para Decidim
293
340
  participants_csv_importer:
294
341
  import:
@@ -300,7 +347,15 @@ es:
300
347
  phone_exists: Ya existe un participante con esta dirección de correo electrónico
301
348
  ponderation_not_found: Tipo de ponderación no encontrado
302
349
  skip_import_info: El participante ya existe %{with_mismatched_fields}
303
- with_mismatched_fields: "con campos no coincidentes: %{fields}"
350
+ with_mismatched_fields: 'con campos no coincidentes: %{fields}'
351
+ questions:
352
+ callout_link_text: Revisa el resumen de tu votación aquí
353
+ callout_text: Has respondido %{voted} de un total de %{total} preguntas.
354
+ modal:
355
+ modal_table_header_answer: Has respondido?
356
+ modal_table_header_question: Pregunta
357
+ modal_votes_title: Tus votos a "%{title}"
358
+ question_not_answered: No, ir a la pregunta
304
359
  sms_message: Su código de verificación es %{code}
305
360
  user_delegations:
306
361
  index:
@@ -314,17 +369,21 @@ es:
314
369
  delegations_verifier:
315
370
  authorizations:
316
371
  edit:
317
- confirm_destroy: '¿Seguro que quieres restablecer el código de verificación?'
372
+ confirm_destroy: "¿Seguro que quieres restablecer el código de verificación?"
318
373
  destroy: Reiniciar código de verificación
319
- resend: '¿No has recibido el código de verificación?'
374
+ resend: "¿No has recibido el código de verificación?"
320
375
  send: Confirmar
321
376
  title: Introduce el código de verificación que recibiste
322
377
  new:
323
378
  authorize: Autorizar mi cuenta
324
379
  missing_phone_error: Falta el teléfono de miembro
325
- not_in_census: Lo sentimos, pero no puede ser autorizado porque su correo electrónico no está en el censo. Póngase en contacto con el administrador si cree que se trata de un error.
326
- participate_in: 'Esta autorización le permite participar en las siguientes consultas: %{consultations}'
327
- phone_warning: Este número de teléfono ha sido importado por el administrador. Por favor, contacta si no es correcto.
380
+ not_in_census: Lo sentimos, pero no puede ser autorizado porque su correo
381
+ electrónico no está en el censo. Póngase en contacto con el administrador
382
+ si cree que se trata de un error.
383
+ participate_in: 'Esta autorización le permite participar en las siguientes
384
+ consultas: %{consultations}'
385
+ phone_warning: Este número de teléfono ha sido importado por el administrador.
386
+ Por favor, contacta si no es correcto.
328
387
  send_code: Enviar código de verificación
329
388
  title: Autorizar con el Verificador de Gobernanza Societaria
330
389
  admin:
@@ -344,9 +403,10 @@ es:
344
403
  admin:
345
404
  delegations_verifier:
346
405
  help:
347
- - Un método de verificación para el voto delegado
406
+ - Un método de verificación para el voto delegado
348
407
  delegations_verifier:
349
- explanation: Las participantes verificadas con este método pueden delegar votos a otras participantes
408
+ explanation: Las participantes verificadas con este método pueden delegar
409
+ votos a otras participantes
350
410
  fields:
351
411
  phone: Número de teléfono
352
412
  name: Gobernanza Societaria
@@ -16,9 +16,10 @@ module Decidim
16
16
  routes do
17
17
  # Add engine routes here
18
18
  authenticate(:user) do
19
- resources :user_delegations, controller: :user_delegations
19
+ resources :user_delegations, controller: :user_delegations, only: [:index]
20
20
  root to: "user_delegations#index"
21
21
  end
22
+ resources :questions_summary, param: :slug, only: [:show]
22
23
  end
23
24
 
24
25
  config.to_prepare do
@@ -3,8 +3,8 @@
3
3
  module Decidim
4
4
  # This holds the decidim-action_delegator version.
5
5
  module ActionDelegator
6
- VERSION = "0.8.1"
7
- DECIDIM_VERSION = "0.27.4"
6
+ VERSION = "0.8.2"
7
+ DECIDIM_VERSION = "0.27.6"
8
8
  COMPAT_DECIDIM_VERSION = [">= 0.27.0", "< 0.28"].freeze
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-action_delegator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pau Pérez Fabregat
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-02-14 00:00:00.000000000 Z
12
+ date: 2024-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: decidim-admin
@@ -176,6 +176,7 @@ files:
176
176
  - app/controllers/decidim/action_delegator/admin/ponderations_controller.rb
177
177
  - app/controllers/decidim/action_delegator/admin/settings_controller.rb
178
178
  - app/controllers/decidim/action_delegator/application_controller.rb
179
+ - app/controllers/decidim/action_delegator/questions_summary_controller.rb
179
180
  - app/controllers/decidim/action_delegator/user_delegations_controller.rb
180
181
  - app/controllers/decidim/action_delegator/verifications/delegations_verifier/authorizations_controller.rb
181
182
  - app/forms/concerns/decidim/action_delegator/consultations/vote_form_override.rb
@@ -206,9 +207,11 @@ files:
206
207
  - app/models/decidim/action_delegator/whodunnit_vote.rb
207
208
  - app/overrides/decidim/consultations/admin/consultations/results/add_ongoing_warning.html.erb.deface
208
209
  - app/overrides/decidim/consultations/consultations/_question/add_delegation_link.html.erb.deface
210
+ - app/overrides/decidim/consultations/consultations/_question/replace_vote_info.html.erb.deface
209
211
  - app/overrides/decidim/consultations/consultations/_regular_questions/prevent_empty_questions.html.erb.deface
210
212
  - app/overrides/decidim/consultations/consultations/_regular_questions/remove_highlighted_scopes.html.erb.deface
211
213
  - app/overrides/decidim/consultations/question_multiple_votes/_form/add_delegation_notice.html.erb.deface
214
+ - app/overrides/decidim/consultations/questions/_results/replace_results.html.erb.deface
212
215
  - app/overrides/decidim/consultations/questions/_vote_button/add_delegations_link.html.erb.deface
213
216
  - app/overrides/decidim/consultations/questions/_vote_button/add_modal.html.erb.deface
214
217
  - app/overrides/decidim/consultations/questions/_vote_button/add_modal_javascript.html.erb.deface
@@ -216,11 +219,15 @@ files:
216
219
  - app/overrides/decidim/consultations/questions/_vote_modal/add_delegation_callout.html.erb.deface
217
220
  - app/overrides/decidim/consultations/questions/_vote_modal_confirm/add_delegation_callout.html.erb.deface
218
221
  - app/overrides/decidim/consultations/questions/_vote_modal_confirm/add_hidden_field.html.erb.deface
222
+ - app/overrides/layouts/decidim/_consultation_header/add_consultation_callout.html.erb.deface
223
+ - app/overrides/layouts/decidim/_question_header/add_consultation_callout.html.erb.deface
219
224
  - app/overrides/layouts/decidim/admin/remove_deprecation.rb
220
225
  - app/packs/entrypoints/decidim_action_delegator.scss
221
226
  - app/packs/entrypoints/decidim_action_delegator_questions.js
227
+ - app/packs/entrypoints/decidim_action_delegator_questions_summary.js
222
228
  - app/packs/images/logo-pokecode.png
223
229
  - app/packs/src/decidim/action_delegator/questions.js
230
+ - app/packs/src/decidim/action_delegator/summary.js
224
231
  - app/packs/stylesheets/decidim/action_delegator/questions.scss
225
232
  - app/permissions/concerns/decidim/action_delegator/consultations/permissions_override.rb
226
233
  - app/permissions/decidim/action_delegator/permissions.rb
@@ -273,16 +280,19 @@ files:
273
280
  - app/views/decidim/action_delegator/admin/settings/index.html.erb
274
281
  - app/views/decidim/action_delegator/admin/settings/new.html.erb
275
282
  - app/views/decidim/action_delegator/consultations/_link_to_question.html.erb
283
+ - app/views/decidim/action_delegator/consultations/_link_with_results.html.erb
276
284
  - app/views/decidim/action_delegator/consultations/questions/_callout.html.erb
277
285
  - app/views/decidim/action_delegator/consultations/questions/_delegations_modal.html.erb
278
286
  - app/views/decidim/action_delegator/consultations/questions/_link_to_delegations.html.erb
279
287
  - app/views/decidim/action_delegator/consultations/questions/_vote_delegated_active.html.erb
280
288
  - app/views/decidim/action_delegator/consultations/questions/_vote_delegated_finished.html.erb
281
289
  - app/views/decidim/action_delegator/consultations/questions/_vote_delegated_upcoming.html.erb
290
+ - app/views/decidim/action_delegator/consultations/questions/_weight_results.html.erb
282
291
  - app/views/decidim/action_delegator/import_mailer/import.html.erb
283
292
  - app/views/decidim/action_delegator/user_delegations/index.html.erb
284
293
  - app/views/decidim/action_delegator/verifications/delegations_verifier/authorizations/edit.html.erb
285
294
  - app/views/decidim/action_delegator/verifications/delegations_verifier/authorizations/new.html.erb
295
+ - app/views/decidim/consultations/question_votes/_callout.html.erb
286
296
  - app/views/decidim/consultations/question_votes/update_vote_button.js.erb
287
297
  - config/assets.rb
288
298
  - config/i18n-tasks.yml