decidim-sortitions 0.19.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/decidim/sortitions/icon.svg +1 -3
  3. data/app/assets/stylesheets/decidim/sortitions/_sortitions.scss +1 -1
  4. data/app/cells/decidim/sortitions/sortition_m/data.erb +3 -3
  5. data/app/cells/decidim/sortitions/sortition_m/footer.erb +1 -1
  6. data/app/helpers/decidim/sortitions/sortitions_helper.rb +1 -0
  7. data/app/queries/decidim/sortitions/admin/participatory_space_proposals.rb +7 -1
  8. data/app/types/decidim/sortitions/sortition_type.rb +32 -0
  9. data/app/types/decidim/sortitions/sortitions_type.rb +32 -0
  10. data/app/views/decidim/sortitions/admin/sortitions/_form.html.erb +1 -1
  11. data/app/views/decidim/sortitions/admin/sortitions/confirm_destroy.html.erb +1 -1
  12. data/app/views/decidim/sortitions/admin/sortitions/edit.html.erb +1 -1
  13. data/app/views/decidim/sortitions/admin/sortitions/index.html.erb +1 -1
  14. data/app/views/decidim/sortitions/admin/sortitions/show.html.erb +1 -1
  15. data/app/views/decidim/sortitions/sortition_widgets/show.html.erb +1 -1
  16. data/app/views/decidim/sortitions/sortitions/_filters.html.erb +16 -8
  17. data/app/views/decidim/sortitions/sortitions/_linked_sortitions.html.erb +1 -1
  18. data/app/views/decidim/sortitions/sortitions/index.html.erb +4 -4
  19. data/app/views/decidim/sortitions/sortitions/show.html.erb +8 -2
  20. data/config/locales/bg-BG.yml +7 -0
  21. data/config/locales/ca.yml +1 -0
  22. data/config/locales/cs.yml +1 -0
  23. data/config/locales/da-DK.yml +1 -0
  24. data/config/locales/de.yml +1 -0
  25. data/config/locales/el-GR.yml +1 -0
  26. data/config/locales/el.yml +152 -0
  27. data/config/locales/en.yml +1 -0
  28. data/config/locales/es-MX.yml +1 -0
  29. data/config/locales/es-PY.yml +1 -0
  30. data/config/locales/es.yml +1 -0
  31. data/config/locales/et-EE.yml +1 -0
  32. data/config/locales/fi-plain.yml +1 -0
  33. data/config/locales/fi.yml +4 -3
  34. data/config/locales/fr-CA.yml +152 -0
  35. data/config/locales/fr.yml +1 -0
  36. data/config/locales/ga-IE.yml +1 -0
  37. data/config/locales/hr-HR.yml +1 -0
  38. data/config/locales/hu.yml +1 -0
  39. data/config/locales/is-IS.yml +122 -0
  40. data/config/locales/it.yml +25 -24
  41. data/config/locales/ja-JP.yml +146 -0
  42. data/config/locales/lt-LT.yml +1 -0
  43. data/config/locales/lv-LV.yml +158 -0
  44. data/config/locales/mt-MT.yml +1 -0
  45. data/config/locales/nl.yml +1 -0
  46. data/config/locales/no.yml +143 -0
  47. data/config/locales/pl.yml +2 -1
  48. data/config/locales/pt-BR.yml +1 -1
  49. data/config/locales/pt.yml +54 -53
  50. data/config/locales/ro-RO.yml +158 -0
  51. data/config/locales/sk-SK.yml +164 -0
  52. data/config/locales/sk.yml +164 -0
  53. data/config/locales/sl.yml +5 -0
  54. data/config/locales/sr-CS.yml +6 -0
  55. data/config/locales/sv.yml +2 -1
  56. data/db/migrate/20200320105926_index_foreign_keys_in_decidim_sortitions_sortitions.rb +7 -0
  57. data/lib/decidim/sortitions/component.rb +1 -0
  58. data/lib/decidim/sortitions/version.rb +1 -1
  59. metadata +34 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6b07ede6673cb3573653ce8dc00c008564ccea3fb6dc2f44108fb7978aa7286e
4
- data.tar.gz: '02928a5f7d5b6bc4ed06bb25d402567fa7fce23fca3e30eaf9fc5bc94b94936e'
3
+ metadata.gz: 783170a29f3625bc6b34b8e0f709ccca9395f05be1cc089e7e91329dcbb811fd
4
+ data.tar.gz: 0f625d637024bdbcb7a58d588b55d30d9eba8e4cd6733d36cf4828c5ebf5f664
5
5
  SHA512:
6
- metadata.gz: 55992f82ad07b6671b8d7290ed81e0a906bd61d8d61b78e033b0102500179b589289ca27b5d1b519d0d078a753c3005f72ed5e446c464a98bc61f75df2bff680
7
- data.tar.gz: acb31598de2b07bb4d4a100360802a46a0a07dac05d430288c18807113a5f1ec1a3604a642948af7ea7be04334eb050641a723fcb5e34aef5b9a8475181551da
6
+ metadata.gz: d4b42ad6f4818facb458f1401170c933ed9857cdc3b62f1121b55ac67c4f9588e206bcd93204bfc17010330b28bf37cae112866e63ac39eaa3104e4c93f51d7b
7
+ data.tar.gz: 6ce39b6b7c93de52bc5ff44fa80029cb193d757ab6a83e82ba831b42b25c06d6c4a3f342f52b95d3135402b1dba464aa1687cd877bd9c2d1cfc0a84794657fc7
@@ -1,3 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="8" height="8" data-icon="aperture" viewBox="0 0 34 34">
2
- <path d="M17 0c9.389 0 17 7.611 17 17s-7.611 17-17 17S0 26.389 0 17 7.611 0 17 0zm0 1.889C8.654 1.889 1.889 8.654 1.889 17S8.654 32.111 17 32.111 32.111 25.346 32.111 17 25.346 1.889 17 1.889zm11.865 10.74a3.15 3.15 0 1 1-6.3 0 3.15 3.15 0 0 1 6.3 0zm-1.89 0a1.26 1.26 0 1 0-2.521 0 1.26 1.26 0 0 0 2.522 0zM15.25 19.136a.944.944 0 0 1 1.89 0v1.792a5.71 5.71 0 1 1-11.423 0v-1.792a.944.944 0 0 1 1.89 0v1.792a3.822 3.822 0 1 0 7.643 0v-1.792zm5.841-6.974l.018.019a.941.941 0 0 1-.02 1.335l-2.514 2.44a.944.944 0 0 1-1.316-1.355l.843-.818a6.237 6.237 0 0 0-6.177 6.23.944.944 0 0 1-1.889 0c0-4.492 3.653-8.12 8.12-8.12h.041l-.958-.986a.944.944 0 0 1 1.355-1.316l2.497 2.571a.941.941 0 0 0-.66-.268h-2.234z"/>
3
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" data-icon="aperture" version="1.1" viewBox="0 0 34 34"><path d="M17 0c9.389 0 17 7.611 17 17s-7.611 17-17 17S0 26.389 0 17 7.611 0 17 0zm0 1.889C8.654 1.889 1.889 8.654 1.889 17S8.654 32.111 17 32.111 32.111 25.346 32.111 17 25.346 1.889 17 1.889zm11.865 10.74a3.15 3.15 0 1 1-6.3 0 3.15 3.15 0 0 1 6.3 0zm-1.89 0a1.26 1.26 0 1 0-2.521 0 1.26 1.26 0 0 0 2.522 0zM15.25 19.136a.944.944 0 0 1 1.89 0v1.792a5.71 5.71 0 1 1-11.423 0v-1.792a.944.944 0 0 1 1.89 0v1.792a3.822 3.822 0 1 0 7.643 0v-1.792zm5.841-6.974l.018.019a.941.941 0 0 1-.02 1.335l-2.514 2.44a.944.944 0 0 1-1.316-1.355l.843-.818a6.237 6.237 0 0 0-6.177 6.23.944.944 0 0 1-1.889 0c0-4.492 3.653-8.12 8.12-8.12h.041l-.958-.986a.944.944 0 0 1 1.355-1.316l2.497 2.571a.941.941 0 0 0-.66-.268h-2.234z"/></svg>
@@ -36,9 +36,9 @@
36
36
  }
37
37
 
38
38
  .sortition-details-text{
39
- text-transform: uppercase;
40
39
  letter-spacing: .03em;
41
40
  font-size: 90%;
41
+ text-transform: uppercase;
42
42
  color: #3d393c;
43
43
  font-weight: 600;
44
44
  line-height: 1;
@@ -1,14 +1,14 @@
1
1
  <div class="card__icondata">
2
2
  <ul class="card-data">
3
3
  <li class="card-data__item">
4
- <%= icon "random-seed", class: "icon--big" %>
4
+ <%= icon "random-seed", class: "icon--big", aria_label: t("decidim.sortitions.sortitions.sortition.random_seed"), role: "img" %>
5
5
  </li>
6
6
  <li class="card-data__item">
7
- <div class="text-left text-uppercase">
7
+ <div class="text-left">
8
8
  <strong class="heading4">
9
9
  <%= model.seed %>
10
10
  </strong>
11
- &nbsp;<small><%= t("decidim.sortitions.sortitions.sortition.random_seed") %></small>
11
+ &nbsp;<small aria-hidden="true"><%= t("decidim.sortitions.sortitions.sortition.random_seed") %></small>
12
12
  </div>
13
13
  </li>
14
14
  </ul>
@@ -1,6 +1,6 @@
1
1
  <div class="card__footer">
2
2
  <div class="card__support">
3
- <div class="text-uppercase">
3
+ <div>
4
4
  <strong class="text-large">
5
5
  <%= proposals_count %>
6
6
  </strong>
@@ -3,6 +3,7 @@
3
3
  module Decidim
4
4
  module Sortitions
5
5
  module SortitionsHelper
6
+ include Decidim::SanitizeHelper
6
7
  include Decidim::TranslationsHelper
7
8
 
8
9
  def proposal_path(proposal)
@@ -25,7 +25,10 @@ module Decidim
25
25
  if category.nil?
26
26
  return Decidim::Proposals::Proposal
27
27
  .except_withdrawn
28
- .where("created_at < ?", request_timestamp)
28
+ .except_drafts
29
+ .except_rejected
30
+ .not_hidden
31
+ .where("decidim_proposals_proposals.created_at < ?", request_timestamp)
29
32
  .where(component: sortition.decidim_proposals_component)
30
33
  .order(id: :asc)
31
34
  end
@@ -34,6 +37,9 @@ module Decidim
34
37
  Decidim::Proposals::Proposal
35
38
  .joins(:categorization)
36
39
  .except_withdrawn
40
+ .except_drafts
41
+ .except_rejected
42
+ .not_hidden
37
43
  .where(component: sortition.decidim_proposals_component)
38
44
  .where("decidim_proposals_proposals.created_at < ?", request_timestamp)
39
45
  .where("decidim_categorizations.decidim_category_id = ?", category.id)
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Sortitions
5
+ SortitionType = GraphQL::ObjectType.define do
6
+ interfaces [
7
+ -> { Decidim::Core::AuthorableInterface },
8
+ -> { Decidim::Comments::CommentableInterface },
9
+ -> { Decidim::Core::CategorizableInterface }
10
+ ]
11
+
12
+ name "Sortition"
13
+ description "A sortition"
14
+
15
+ field :id, !types.ID, "The internal ID for this sortition"
16
+ field :dice, types.Int, "The dice for this sortition"
17
+ field :targetItems, types.Int, "The target items for this sortition", property: :target_items
18
+ field :requestTimestamp, Decidim::Core::DateType, "The request time stamp for this request", property: :request_timestamp
19
+ field :selectedProposals, types[types.Int], "The selected proposals for this sortition", property: :selected_proposals
20
+ field :createdAt, Decidim::Core::DateTimeType, "When this sortition was created", property: :created_at
21
+ field :updatedAt, Decidim::Core::DateTimeType, "When this sortition was updated", property: :updated_at
22
+ field :witnesses, Decidim::Core::TranslatedFieldType, "The witnesses for this sortition"
23
+ field :additionalInfo, Decidim::Core::TranslatedFieldType, "The additional info for this sortition", property: :additional_info
24
+ field :reference, types.String, "The reference for this sortition"
25
+ field :title, Decidim::Core::TranslatedFieldType, "The title for this sortition"
26
+ field :cancelReason, Decidim::Core::TranslatedFieldType, "The cancel reason for this sortition", property: :cancel_reason
27
+ field :cancelledOn, Decidim::Core::DateType, "When this sortition was cancelled", property: :cancelled_on
28
+ field :cancelledByUser, Decidim::Core::UserType, "Who cancelled this sortition", property: :cancelled_by_user
29
+ field :candidateProposals, Decidim::Core::TranslatedFieldType, "The candidate proposal for this sortition", property: :candidate_proposals
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Sortitions
5
+ SortitionsType = GraphQL::ObjectType.define do
6
+ interfaces [-> { Decidim::Core::ComponentInterface }]
7
+
8
+ name "Sortitions"
9
+ description "A sortition component of a participatory space."
10
+
11
+ connection :sortitions, SortitionType.connection_type do
12
+ resolve ->(component, _args, _ctx) {
13
+ SortitionTypeHelper.base_scope(component).includes(:component)
14
+ }
15
+ end
16
+
17
+ field(:sortition, SortitionType) do
18
+ argument :id, !types.ID
19
+
20
+ resolve ->(component, args, _ctx) {
21
+ SortitionTypeHelper.base_scope(component).find_by(id: args[:id])
22
+ }
23
+ end
24
+ end
25
+
26
+ module SortitionTypeHelper
27
+ def self.base_scope(component)
28
+ Sortition.where(component: component)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -18,7 +18,7 @@
18
18
  <div class="columns xlarge-4">
19
19
  <%= form.categories_select :decidim_category_id,
20
20
  @form.categories,
21
- prompt: t(".all_categories") %>
21
+ include_blank: t(".all_categories") %>
22
22
  </div>
23
23
 
24
24
  <div class="columns xlarge-4">
@@ -3,7 +3,7 @@
3
3
  <%= decidim_form_for(@form, html: { class: "form confirm_destroy_sortition" }, method: :delete) do |form| %>
4
4
  <div class="card">
5
5
  <div class="card-divider">
6
- <h2 class="card-title"><%= translated_attribute sortition.title %></h2>
6
+ <h2 class="card-title"><%= decidim_html_escape(translated_attribute(sortition.title)) %></h2>
7
7
  </div>
8
8
 
9
9
  <div class="card-section">
@@ -1,5 +1,5 @@
1
1
  <h2 class="process-title-summary">
2
- <%= translated_attribute(sortition.title) %>
2
+ <%= decidim_html_escape(translated_attribute(sortition.title)) %>
3
3
  </h2>
4
4
 
5
5
  <%= decidim_form_for(@form, html: { class: "form edit_sortition" }) do |form| %>
@@ -25,7 +25,7 @@
25
25
  <% sortitions.each do |sortition| %>
26
26
  <tr>
27
27
  <td><%= sortition.reference %></td>
28
- <td><%= translated_attribute sortition.title %></td>
28
+ <td><%= decidim_html_escape(translated_attribute(sortition.title)) %></td>
29
29
  <td><%= l sortition.created_at, format: :short %></td>
30
30
  <td class="table-list__actions">
31
31
  <%= icon_link_to "eye",
@@ -1,7 +1,7 @@
1
1
  <div class="card" id="sortition">
2
2
  <div class="card-divider">
3
3
  <h2 class="card-title">
4
- <%= translated_attribute(sortition.title) %>
4
+ <%= decidim_html_escape(translated_attribute(sortition.title)) %>
5
5
  </h2>
6
6
  </div>
7
7
  <div class="card-section">
@@ -1,4 +1,4 @@
1
- <% content_for(:title, translated_attribute(model.title)) %>
1
+ <% content_for(:title, decidim_html_escape(translated_attribute(model.title))) %>
2
2
  <p>
3
3
  <%= decidim_sanitize html_truncate(translated_attribute(model.additional_info), length: 100, separator: "...") %>
4
4
  </p>
@@ -1,11 +1,13 @@
1
+ <%= render partial: "decidim/shared/filter_form_help", locals: { skip_to_id: "sortitions" } %>
2
+
1
3
  <%= filter_form_for filter do |form| %>
2
4
  <div class="filters__section">
3
5
  <div class="filters__search">
4
6
  <div class="input-group">
5
- <%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search") %>
7
+ <%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search"), title: t(".search"), data: { disable_dynamic_change: true } %>
6
8
  <div class="input-group-button">
7
- <button type="submit" class="button button--muted">
8
- <%= icon "magnifying-glass", aria_label: t(".search") %>
9
+ <button type="submit" class="button" aria-controls="sortitions">
10
+ <%= icon "magnifying-glass", aria_label: t(".search"), role: "img" %>
9
11
  </button>
10
12
  </div>
11
13
  </div>
@@ -15,17 +17,23 @@
15
17
  <% if current_participatory_space.categories.any? %>
16
18
  <%= form.categories_select :category_id,
17
19
  current_participatory_space.categories,
18
- legend_title: t(".category"),
19
- disable_parents: false,
20
- label: false,
21
- prompt: t(".category_prompt") %>
20
+ {
21
+ legend_title: t(".category"),
22
+ disable_parents: false,
23
+ label: "",
24
+ include_blank: t(".category_prompt"),
25
+ aria_label: t(".category")
26
+ },
27
+ "aria-label": t(".category"),
28
+ "aria-controls": "sortitions" %>
22
29
  <% end %>
23
30
 
24
31
  <%= form.collection_radio_buttons :state,
25
32
  [["all", t(".all")], ["active", t(".active")], ["cancelled", t(".cancelled")]],
26
33
  :first,
27
34
  :last,
28
- legend_title: t(".state") %>
35
+ { legend_title: t(".state") },
36
+ "aria-controls": "sortitions" %>
29
37
 
30
38
  <%= hidden_field_tag :order, order, id: nil, class: "order_filter" %>
31
39
  <% end %>
@@ -7,7 +7,7 @@
7
7
  <% end %>
8
8
  <div>
9
9
  <%= link_to resource_locator(sortition).path, class: "card__link" do %>
10
- <h5 class="card--list__heading"><%= translated_attribute sortition.title %></h5>
10
+ <h5 class="card--list__heading"><%= decidim_html_escape(translated_attribute(sortition.title)) %></h5>
11
11
  <% end %>
12
12
  <div class="author">
13
13
  <span class="author__avatar">
@@ -1,8 +1,8 @@
1
1
  <div class="row columns">
2
2
  <div class="title-action">
3
- <h2 id="sortitions-count" class="title-action__title section-heading">
3
+ <h3 id="sortitions-count" class="title-action__title section-heading">
4
4
  <%= render partial: "sortitions_count" %>
5
- </h2>
5
+ </h3>
6
6
  </div>
7
7
  </div>
8
8
  <div class="row">
@@ -12,10 +12,10 @@
12
12
  <%= render partial: "filters" %>
13
13
  </div>
14
14
  </div>
15
- <div id="sortitions" class="columns mediumlarge-8 large-9">
15
+ <div id="sortitions" class="columns mediumlarge-8 large-9" aria-live="polite">
16
16
  <%= render partial: "sortitions" %>
17
17
  </div>
18
18
  </div>
19
19
 
20
20
  <%= javascript_include_tag("decidim/filters") %>
21
- <%= javascript_include_tag "decidim/orders" %>
21
+ <%= javascript_include_tag "decidim/results_listing" %>
@@ -1,6 +1,6 @@
1
1
  <% add_decidim_meta_tags({
2
2
  description: decidim_sanitize(translated_attribute(sortition.additional_info)),
3
- title: translated_attribute(sortition.title),
3
+ title: decidim_html_escape(translated_attribute(sortition.title)),
4
4
  url: sortition_url(sortition.to_param)
5
5
  }) %>
6
6
 
@@ -11,7 +11,13 @@
11
11
  </div>
12
12
 
13
13
  <div class="row column view-header">
14
- <h2 class="heading2"><%= translated_attribute sortition.title %></h2>
14
+
15
+ <%= link_to :sortitions, class: "small hollow" do %>
16
+ <%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
17
+ <%= t(".back") %>
18
+ <% end %>
19
+
20
+ <h2 class="heading2"><%= decidim_html_escape(translated_attribute(sortition.title)) %></h2>
15
21
  <div class="author-data">
16
22
  <%= render partial: "sortition_author", locals: { sortition: sortition } %>
17
23
  </div>
@@ -0,0 +1,7 @@
1
+ bg:
2
+ activemodel:
3
+ attributes:
4
+ sortition:
5
+ additional_info: Сортиране на информация
6
+ decidim_category_id: Категории от набора от предложения, в които искате да приложите жребий
7
+ decidim_proposals_component_id: Предложенията са зададени
@@ -124,6 +124,7 @@ ca:
124
124
  show:
125
125
  algorithm: Codi d'algoritme del sorteig
126
126
  any_category: de totes les categories
127
+ back: Torna al llistat
127
128
  cancelled: Sorteig cancel·lat
128
129
  candidate_proposal_ids: Ordre i IDs de les propostes del sorteig
129
130
  candidate_proposals_info: 'La resolució es va dur a terme entre les següents propostes (%{category_label}), amb les següents IDs (en negreta, les propostes seleccionades) '
@@ -132,6 +132,7 @@ cs:
132
132
  show:
133
133
  algorithm: Kód algoritmu Sortition
134
134
  any_category: ze všech kategorií
135
+ back: Zpět na seznam
135
136
  cancelled: Zrušený výběr
136
137
  candidate_proposal_ids: Sortimentní objednávky a ID
137
138
  candidate_proposals_info: 'Rozbor byl proveden mezi následujícími návrhy (%{category_label}), s následujícími ID (označené tučně vybranými návrhy) '
@@ -0,0 +1 @@
1
+ da:
@@ -124,6 +124,7 @@ de:
124
124
  show:
125
125
  algorithm: Sortieralgorithmuscode
126
126
  any_category: aus allen Kategorien
127
+ back: Zurück zur Liste
127
128
  cancelled: Stornierte Sortierung
128
129
  candidate_proposal_ids: Reihenfolge der Sortierungsvorschläge und IDs
129
130
  candidate_proposals_info: 'Die Sortierung wurde unter den folgenden Vorschlägen (%{category_label}) durchgeführt, mit den folgenden IDs (in Fettschrift die ausgewählten Vorschläge) '
@@ -0,0 +1 @@
1
+ el:
@@ -0,0 +1,152 @@
1
+ el:
2
+ activemodel:
3
+ attributes:
4
+ sortition:
5
+ additional_info: Πληροφορίες κλήρωσης
6
+ decidim_category_id: Κατηγορίες του συνόλου προτάσεων στις οποίες θέλετε να εφαρμόσετε την κλήρωση
7
+ decidim_proposals_component_id: Σύνολο προτάσεων
8
+ dice: Αποτέλεσμα ζαριάς. Ρίξτε ένα ζάρι 6 πλευρών ή αναζητήστε έναν άλλο τυχαίο τρόπο για να δημιουργήσετε έναν αριθμό από το 1 έως το 6 και εισαγάγετε εδώ τον αριθμό που προκύπτει ενώπιον μερικών μαρτύρων. Αυτό συμβάλλει στην ποιότητα και εξασφαλίζει την τυχαιότητα του αποτελέσματος
9
+ target_items: Αριθμός προτάσεων προς επιλογή (δηλώνει τον αριθμό των προτάσεων που θέλετε να επιλεγούν με κλήρωση της ομάδας προτάσεων που έχετε επιλέξει προηγουμένως)
10
+ title: Τίτλος
11
+ witnesses: Μάρτυρες
12
+ models:
13
+ decidim/sortitions/create_sortition_event: Κλήρωση
14
+ activerecord:
15
+ models:
16
+ decidim/sortitions/sortition:
17
+ one: Κλήρωση
18
+ other: Κληρώσεις
19
+ decidim:
20
+ components:
21
+ sortitions:
22
+ name: Κληρώσεις
23
+ settings:
24
+ global:
25
+ comments_enabled: Τα σχόλια ενεργοποιήθηκαν
26
+ events:
27
+ sortitions:
28
+ sortition_created:
29
+ email_intro: Η κλήρωση «%{resource_title}» προστέθηκε στον χώρο συμμετοχής «%{participatory_space_title}» που ακολουθείτε.
30
+ email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε τον χώρο συμμετοχής «%{participatory_space_title}». Μπορείτε να σταματήσετε να τον ακολουθείτε από τον προηγούμενο σύνδεσμο.
31
+ email_subject: Προστέθηκε νέα κλήρωση στον χώρο συμμετοχής %{participatory_space_title}
32
+ notification_title: Η κλήρωση <a href="%{resource_path}">%{resource_title}</a> προστέθηκε στον χώρο συμμετοχής %{participatory_space_title}
33
+ pages:
34
+ home:
35
+ statistics:
36
+ sortitions_count: Κληρώσεις
37
+ participatory_processes:
38
+ statistics:
39
+ sortitions_count: Κληρώσεις
40
+ sortitions:
41
+ admin:
42
+ actions:
43
+ destroy: Ακύρωση της κλήρωσης
44
+ edit: Επεξεργασία
45
+ new: Νέα κλήρωση
46
+ show: Λεπτομέρειες κλήρωσης
47
+ models:
48
+ sortition:
49
+ fields:
50
+ category: Κατηγορία
51
+ created_at: Ημερομηνία δημιουργίας
52
+ decidim_proposals_component: Στοιχείο προτάσεων
53
+ dice: Ζάρι
54
+ reference: Αναφορά
55
+ request_timestamp: Ώρα κλήρωσης
56
+ seed: Κατάταξη
57
+ target_items: Στοιχεία προς επιλογή
58
+ title: Τίτλος
59
+ name:
60
+ one: Κλήρωση
61
+ other: Κληρώσεις
62
+ sortitions:
63
+ confirm_destroy:
64
+ confirm_destroy: Είστε βέβαιοι ότι θέλετε να ακυρώσετε αυτήν την κλήρωση;
65
+ destroy: Ακύρωση κλήρωσης
66
+ title: Ακύρωση της κλήρωσης
67
+ create:
68
+ error: Υπήρξε ένα πρόβλημα κατά τη δημιουργία μιας νέας κλήρωσης.
69
+ success: Η κλήρωση δημιουργήθηκε με επιτυχία
70
+ destroy:
71
+ error: Δεν είναι δυνατή η ακύρωση της κλήρωσης.
72
+ success: Η κλήρωση ακυρώθηκε με επιτυχία
73
+ edit:
74
+ title: Ενημερώστε τις πληροφορίες σχετικά με την κλήρωση
75
+ update: Ενημέρωση
76
+ form:
77
+ all_categories: Όλες οι κατηγορίες
78
+ select_proposal_component: Επιλέξτε το σύνολο προτάσεων
79
+ title: Νέα κλήρωση για προτάσεις
80
+ index:
81
+ title: Κληρώσεις
82
+ new:
83
+ confirm: Πατώντας το επόμενο κουμπί, το Decidim θα καταγράψει την ημερομηνία και την ώρα (με ακρίβεια δευτερολέπτων) και μαζί με τη ζαριά, αυτές οι πληροφορίες θα χρησιμοποιηθούν για τη δημιουργία μιας τυχαίας επιλογής. Η ενέργεια θα είναι μη αναστρέψιμη, μόλις πατήσετε το κουμπί, θα δημοσιευτεί το αποτέλεσμα αυτής της κλήρωσης, μαζί με τα δεδομένα που έχουν εισαχθεί σε αυτήν τη φόρμα και δεν μπορούν να τροποποιηθούν, ελέγξτε προσεκτικά το περιεχόμενο
84
+ create: Δημιουργία
85
+ title: Νέα κλήρωση
86
+ show:
87
+ selected_proposals: Επιλέχθηκαν προτάσεις για κλήρωση
88
+ update:
89
+ error: Υπήρξε ένα πρόβλημα κατά την ενημέρωση της κλήρωσης.
90
+ success: Η κλήρωση ενημερώθηκε με επιτυχία
91
+ admin_log:
92
+ sortition:
93
+ create: "Ο χρήστης %{user_name} δημιούργησε την κλήρωση %{resource_name} στον χώρο %{space_name}"
94
+ delete: "Ο χρήστης %{user_name} ακύρωσε την κλήρωση %{resource_name} στον χώρο %{space_name}"
95
+ update: "Ο χρήστης %{user_name} ενημέρωσε την κλήρωση %{resource_name} στον χώρο %{space_name}"
96
+ sortitions:
97
+ count:
98
+ proposals_count:
99
+ one: 1 πρόταση
100
+ other: "%{count} προτάσεις"
101
+ filters:
102
+ active: Ενεργές
103
+ all: Όλα
104
+ cancelled: Ακυρώθηκε
105
+ category: Κατηγορία
106
+ category_prompt: Επιλέξτε μια κατηγορία
107
+ search: Αναζήτηση
108
+ state: Κατάσταση
109
+ filters_small_view:
110
+ close_modal: Κλείσιμο βοηθητικού στοιχείου
111
+ filter: Φίλτρο
112
+ filter_by: Φιλτράρισμα κατά
113
+ unfold: Αποκάλυψη
114
+ linked_sortitions:
115
+ selected_proposals: Επιλεγμένες προτάσεις
116
+ orders:
117
+ label: 'Ταξινόμηση κληρώσεων κατά:'
118
+ random: Τυχαία
119
+ recent: Πρόσφατα
120
+ results_count:
121
+ count:
122
+ one: επιλεγμένη πρόταση
123
+ other: επιλεγμένες προτάσεις
124
+ show:
125
+ algorithm: Κωδικός αλγορίθμου κλήρωσης
126
+ any_category: από όλες τις κατηγορίες
127
+ back: Επιστροφή στη λίστα
128
+ cancelled: Ακυρωμένη κλήρωση
129
+ candidate_proposal_ids: Ταξινόμηση προτάσεων κληρώσεων και αναγνωριστικά
130
+ candidate_proposals_info: 'Η κλήρωση πραγματοποιήθηκε μεταξύ των ακόλουθων προτάσεων (%{category_label}), με τα παρακάτω αναγνωριστικά (οι επιλεγμένες προτάσεις επισημαίνονται με έντονη γραφή)'
131
+ category: από την κατηγορία %{category}
132
+ dice_result: "(1) Αποτέλεσμα ζαριάς"
133
+ introduction: 'Αυτή η σελίδα περιέχει τα αποτελέσματα της κλήρωσης %{reference}. Μέσω αυτής της κλήρωσης, ο αριθμός %{target_items} των αποτελεσμάτων επιλέχθηκε τυχαία και με ίση πιθανότητα κατανομής από το σύνολο των προτάσεων που εμφανίζονται παρακάτω. Μαζί με τα αποτελέσματα, οι πληροφορίες που εμφανίζονται σε αυτήν τη σελίδα παρέχουν όλες τις πληροφορίες που απαιτούνται για τη μεγιστοποίηση των εγγυήσεων και την αναπαραγωγή των αποτελεσμάτων. Το κλειδί για την ποιότητα αυτής της κλήρωσης είναι η διπλή τυχαιότητα που παρέχεται από το ρίξιμο του ζαριού (επαληθευμένο από μάρτυρες) και τον ακριβή χρόνο της κλήρωσης που παρέχει δεδομένα για έναν αλγόριθμο που δημιουργεί μια τυχαία επιλογή. Η χρονική κατάταξη για την κλήρωση είναι τόσο ακριβής (δευτερόλεπτα), που είναι αδύνατο να ελεγχθεί από ανθρώπους, παρέχοντας έτσι μια διπλή «μη ελεγχόμενη» εισαγωγή δεδομένων για να εξασφαλιστεί ένα δίκαιο αποτέλεσμα.'
134
+ mathematical_result: Αποτέλεσμα (1) x (2)
135
+ proposals_selected_by_sortition: Προτάσεις που επιλέχθηκαν βάσει κλήρωσης
136
+ sortition_reproducibility_details: Λεπτομέρειες δυνατότητας αναπαραγωγής κλήρωσης
137
+ time_seed: "(2) Χρονική κατάταξη"
138
+ witnesses: Μάρτυρες
139
+ sortition:
140
+ random_seed: Τυχαία κατάταξη
141
+ selected_proposals:
142
+ one: επιλεγμένη πρόταση
143
+ other: επιλεγμένες προτάσεις
144
+ view: Προβολή
145
+ sortition_author:
146
+ deleted: Διαγραμμένος συμμετέχων
147
+ sortition_cancel_author:
148
+ deleted: Διαγραμμένος συμμετέχων
149
+ sortitions_count:
150
+ count:
151
+ one: 1 κλήρωση
152
+ other: "%{count} κληρώσεις"