decidim-sortitions 0.29.2 → 0.30.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/sortitions/admin/create_sortition.rb +2 -6
  3. data/app/controllers/decidim/sortitions/sortitions_controller.rb +2 -2
  4. data/app/forms/decidim/sortitions/admin/sortition_form.rb +6 -3
  5. data/app/helpers/decidim/sortitions/admin/sortitions_helper.rb +5 -3
  6. data/app/helpers/decidim/sortitions/sortitions_helper.rb +18 -20
  7. data/app/models/decidim/sortitions/sortition.rb +14 -2
  8. data/app/queries/decidim/sortitions/admin/participatory_space_proposals.rb +6 -9
  9. data/app/queries/decidim/sortitions/filtered_sortitions.rb +2 -2
  10. data/app/views/decidim/sortitions/admin/sortitions/_form.html.erb +19 -4
  11. data/app/views/decidim/sortitions/admin/sortitions/show.html.erb +2 -2
  12. data/app/views/decidim/sortitions/sortitions/index.html.erb +8 -1
  13. data/app/views/decidim/sortitions/sortitions/show.html.erb +10 -9
  14. data/config/locales/ar.yml +0 -6
  15. data/config/locales/bg.yml +0 -6
  16. data/config/locales/ca.yml +11 -6
  17. data/config/locales/cs.yml +11 -6
  18. data/config/locales/de.yml +0 -6
  19. data/config/locales/el.yml +0 -6
  20. data/config/locales/en.yml +11 -6
  21. data/config/locales/es-MX.yml +11 -6
  22. data/config/locales/es-PY.yml +11 -6
  23. data/config/locales/es.yml +11 -6
  24. data/config/locales/eu.yml +11 -6
  25. data/config/locales/fi-plain.yml +0 -6
  26. data/config/locales/fi.yml +0 -6
  27. data/config/locales/fr-CA.yml +3 -6
  28. data/config/locales/fr.yml +3 -6
  29. data/config/locales/ga-IE.yml +0 -1
  30. data/config/locales/gl.yml +0 -6
  31. data/config/locales/hu.yml +0 -6
  32. data/config/locales/id-ID.yml +0 -6
  33. data/config/locales/is-IS.yml +0 -6
  34. data/config/locales/it.yml +0 -6
  35. data/config/locales/ja.yml +0 -6
  36. data/config/locales/lt.yml +0 -6
  37. data/config/locales/lv.yml +0 -6
  38. data/config/locales/nl.yml +0 -6
  39. data/config/locales/no.yml +0 -6
  40. data/config/locales/pl.yml +0 -6
  41. data/config/locales/pt-BR.yml +0 -6
  42. data/config/locales/pt.yml +0 -6
  43. data/config/locales/ro-RO.yml +10 -6
  44. data/config/locales/ru.yml +0 -6
  45. data/config/locales/sk.yml +0 -6
  46. data/config/locales/sv.yml +0 -6
  47. data/config/locales/tr-TR.yml +0 -6
  48. data/config/locales/uk.yml +0 -6
  49. data/config/locales/zh-CN.yml +0 -6
  50. data/config/locales/zh-TW.yml +0 -6
  51. data/db/migrate/20240828103823_add_deleted_at_to_decidim_sortitions_sortitions.rb +8 -0
  52. data/decidim-sortitions.gemspec +1 -1
  53. data/lib/decidim/api/sortition_type.rb +11 -12
  54. data/lib/decidim/api/sortitions_type.rb +4 -5
  55. data/lib/decidim/sortitions/component.rb +1 -0
  56. data/lib/decidim/sortitions/version.rb +1 -1
  57. metadata +19 -19
  58. data/app/views/decidim/sortitions/sortitions/_tags.html.erb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a882041ba0d61aa6b213340bc40970e234ab1e19a9d3f833572c2035031bd09
4
- data.tar.gz: 10a2fb26b17571136a8ade7a897bf78e786cd165e13c430f6268f8a613a26490
3
+ metadata.gz: e300d2d8eac9304be8ba3bc3e2cb8833637698ed7a5e35b7214c2d3eb3c0bdc1
4
+ data.tar.gz: 515b3389c8474159fa189c3db384644ca1e9d35272afdcbb8fafade192936e3c
5
5
  SHA512:
6
- metadata.gz: cd7b93da3eeea33b6a4960569e37a18751379bb64932a8662683b097c0d2041700bb51d446c89e44f325b14a30c24113e2c4a06fd5e0ec370d48a4b50fdea692
7
- data.tar.gz: fea8d9d4ebbc94ae4ec01bee160a2fca77818183e6d52503ed7686b0ede4bf6c2ef0367297fe9f74faf3ea4a7732b0191f065d49ae490e83e88fed628a2c1a12
6
+ metadata.gz: b2b5fb08323e3178187824a5056998a73174e84444e2ff09afb00901c76e5f7a28daa8f98f9a04c39de983761fe22fc42306f6d60c0a28ce36f9be75b7f46478
7
+ data.tar.gz: 6826e795353348fbdc155a841c48d9f6b1c823f511e68ebcea284e9a63b103e9ccf08c877fd56ece4e4902aac067e1cb75251f6e8ed236547b784a9a39aec5b0
@@ -49,16 +49,12 @@ module Decidim
49
49
  additional_info: form.additional_info,
50
50
  selected_proposals: [],
51
51
  candidate_proposals: [],
52
- category:
52
+ taxonomizations: form.taxonomizations
53
53
  )
54
54
  end
55
55
 
56
- def category
57
- Decidim::Category.find(form.decidim_category_id) if form.decidim_category_id.present?
58
- end
59
-
60
56
  def select_proposals_for(sortition)
61
- draw = Draw.new(sortition)
57
+ draw = Draw.new(sortition.reload)
62
58
 
63
59
  sortition.update(
64
60
  selected_proposals: draw.results,
@@ -15,7 +15,7 @@ module Decidim
15
15
  def index
16
16
  @sortitions = search
17
17
  .result
18
- .includes(:category)
18
+ .includes(:taxonomies)
19
19
 
20
20
  @sortitions = reorder(@sortitions)
21
21
  @sortitions = paginate(@sortitions)
@@ -38,7 +38,7 @@ module Decidim
38
38
  def default_filter_params
39
39
  {
40
40
  search_text_cont: "",
41
- with_category: "",
41
+ with_any_taxonomies: nil,
42
42
  with_any_state: "active"
43
43
  }
44
44
  end
@@ -4,13 +4,13 @@ module Decidim
4
4
  module Sortitions
5
5
  module Admin
6
6
  class SortitionForm < Form
7
- include TranslatableAttributes
7
+ include Decidim::TranslatableAttributes
8
+ include Decidim::HasTaxonomyFormAttributes
8
9
 
9
10
  mimic :sortition
10
11
 
11
12
  translatable_attribute :title, String
12
13
  attribute :decidim_proposals_component_id, Integer
13
- attribute :decidim_category_id, Integer
14
14
  attribute :dice, Integer
15
15
  attribute :target_items, Integer
16
16
  translatable_attribute :witnesses, Decidim::Attributes::RichText
@@ -35,9 +35,12 @@ module Decidim
35
35
  greater_than_or_equal_to: 1
36
36
  }
37
37
 
38
- delegate :categories, to: :current_participatory_space
39
38
  delegate :current_participatory_space, to: :context
40
39
  delegate :current_component, to: :context
40
+
41
+ def participatory_space_manifest
42
+ @participatory_space_manifest ||= current_component.participatory_space.manifest.name
43
+ end
41
44
  end
42
45
  end
43
46
  end
@@ -6,6 +6,7 @@ module Decidim
6
6
  module SortitionsHelper
7
7
  include Decidim::TranslationsHelper
8
8
  include Decidim::PaginateHelper
9
+ include Decidim::SanitizeHelper
9
10
 
10
11
  # Converts a list of components into a list of selectable options
11
12
  def components_options(components)
@@ -14,10 +15,11 @@ module Decidim
14
15
  end
15
16
  end
16
17
 
17
- def sortition_category(sortition)
18
- return translated_attribute sortition.category&.name if sortition.category
18
+ def sortition_taxonomies(sortition)
19
+ taxonomies = sortition.taxonomies.map { |taxonomy| decidim_sanitize_translated(taxonomy.name) }.join(", ")
20
+ return taxonomies if taxonomies.present?
19
21
 
20
- I18n.t("sortitions.form.all_categories", scope: "decidim.sortitions.admin")
22
+ I18n.t("sortitions.form.all_taxonomies", scope: "decidim.sortitions.admin")
21
23
  end
22
24
  end
23
25
  end
@@ -14,39 +14,37 @@ module Decidim
14
14
  (defined?(current_component) && translated_attribute(current_component&.name).presence) || t("decidim.components.sortitions.name")
15
15
  end
16
16
 
17
- # Generates the sortition category label
18
- def sortition_category_label(sortition)
19
- if sortition.category.present?
20
- return I18n.t("show.category",
17
+ # Generates the sortition taxonomy labels
18
+ def sortition_taxonomy_labels(sortition)
19
+ if sortition.taxonomies.present?
20
+ return I18n.t("show.taxonomies",
21
21
  scope: "decidim.sortitions.sortitions",
22
- category: translated_attribute(sortition.category.name))
22
+ taxonomies: sortition.taxonomies.map { |taxonomy| decidim_sanitize_translated(taxonomy.name) }.join(", "))
23
23
  end
24
24
 
25
- I18n.t("show.any_category", scope: "decidim.sortitions.sortitions")
25
+ I18n.t("show.any_taxonomy", scope: "decidim.sortitions.sortitions")
26
26
  end
27
27
 
28
28
  # Show list of candidate proposals for a sortition. Selected sortition ids will appear with bold font.
29
29
  def sortition_proposal_candidate_ids(sortition)
30
- result = []
31
- sortition.candidate_proposals.each do |proposal_id|
32
- result << if sortition.selected_proposals.include? proposal_id
33
- "<b>#{proposal_id}</b>"
34
- else
35
- proposal_id.to_s
36
- end
30
+ result = sortition.candidate_proposals.map do |proposal_id|
31
+ if sortition.selected_proposals.include? proposal_id
32
+ "<b>#{proposal_id}</b>"
33
+ else
34
+ proposal_id.to_s
35
+ end
37
36
  end
38
37
 
39
38
  result.join(" - ").html_safe
40
39
  end
41
40
 
42
41
  def filter_sections_sortitions
43
- sections = [{ method: :with_any_state, collection: filter_state_values, label_scope: "decidim.sortitions.sortitions.filters", id: "state" }]
44
- if current_participatory_space.categories.any?
45
- sections.append(
46
- method: :with_category,
47
- collection: filter_categories_values,
48
- label_scope: "decidim.sortitions.sortitions.filters", id: "category"
49
- )
42
+ sections = [{ method: :with_any_state, collection: filter_state_values, label: t("decidim.sortitions.sortitions.filters.state"), id: "state" }]
43
+ current_component.available_taxonomy_filters.each do |taxonomy_filter|
44
+ sections.append(method: "with_any_taxonomies[#{taxonomy_filter.root_taxonomy_id}]",
45
+ collection: filter_taxonomy_values_for(taxonomy_filter),
46
+ label: decidim_sanitize_translated(taxonomy_filter.name),
47
+ id: "taxonomy-#{taxonomy_filter.root_taxonomy_id}")
50
48
  end
51
49
  sections.reject { |item| item[:collection].blank? }
52
50
  end
@@ -6,6 +6,7 @@ module Decidim
6
6
  class Sortition < ApplicationRecord
7
7
  include Decidim::Resourceable
8
8
  include Decidim::HasCategory
9
+ include Decidim::Taxonomizable
9
10
  include Decidim::Authorable
10
11
  include Decidim::HasComponent
11
12
  include Decidim::HasReference
@@ -43,7 +44,7 @@ module Decidim
43
44
  def similar_count
44
45
  Sortition.where(component:)
45
46
  .where(decidim_proposals_component:)
46
- .with_category(category&.id)
47
+ .with_taxonomies(*taxonomies.map(&:id))
47
48
  .where(target_items:)
48
49
  .count
49
50
  end
@@ -81,7 +82,18 @@ module Decidim
81
82
  ransacker_i18n_multi :search_text, [:title, :additional_info, :witnesses]
82
83
 
83
84
  def self.ransackable_scopes(_auth_object = nil)
84
- [:with_any_state, :with_category]
85
+ [:with_any_state, :with_any_taxonomies]
86
+ end
87
+
88
+ def self.ransackable_attributes(_auth_object = nil)
89
+ %w(additional_info cancel_reason cancelled_by_user_id cancelled_on candidate_proposals comments_count created_at decidim_author_id
90
+ decidim_author_type decidim_component_id decidim_proposals_component_id dice id reference request_timestamp search_text selected_proposals
91
+ target_items title updated_at witnesses)
92
+ end
93
+
94
+ def self.ransackable_associations(_auth_object = nil)
95
+ %w(author cancelled_by_user taxonomies comment_threads comments component decidim_proposals_component resource_links_from
96
+ resource_links_to resource_permission user_group versions)
85
97
  end
86
98
  end
87
99
  end
@@ -14,7 +14,7 @@ module Decidim
14
14
  # sortition - a sortition to select proposals
15
15
  def initialize(sortition)
16
16
  @sortition = sortition
17
- @category = sortition.category
17
+ @taxonomies = sortition.taxonomies
18
18
  @request_timestamp = sortition.request_timestamp
19
19
  end
20
20
 
@@ -26,22 +26,19 @@ module Decidim
26
26
  .not_withdrawn
27
27
  .published
28
28
  .not_hidden
29
- .where("decidim_proposals_proposals.created_at < ?", request_timestamp)
29
+ .where(decidim_proposals_proposals: { created_at: ...request_timestamp })
30
30
  .where(component: sortition.decidim_proposals_component)
31
31
  proposals = proposals.where.not(id: proposals.only_status(:rejected))
32
32
 
33
- return proposals.order(id: :asc) if category.nil?
33
+ return proposals.order(id: :asc) if taxonomies.blank?
34
34
 
35
- # categorization -> category
36
- proposals
37
- .joins(:categorization)
38
- .where(decidim_categorizations: { decidim_category_id: category.id })
39
- .order(id: :asc)
35
+ # taxonomization -> taxonomy
36
+ proposals.with_taxonomies(*taxonomies.map(&:id)).order(id: :asc)
40
37
  end
41
38
 
42
39
  private
43
40
 
44
- attr_reader :sortition, :category, :request_timestamp
41
+ attr_reader :sortition, :taxonomies, :request_timestamp
45
42
  end
46
43
  end
47
44
  end
@@ -28,8 +28,8 @@ module Decidim
28
28
  # by a range of dates.
29
29
  def query
30
30
  sortitions = Decidim::Sortitions::Sortition.where(component: @components)
31
- sortitions = sortitions.where("created_at >= ?", @start_at) if @start_at.present?
32
- sortitions = sortitions.where("created_at <= ?", @end_at) if @end_at.present?
31
+ sortitions = sortitions.where(created_at: @start_at..) if @start_at.present?
32
+ sortitions = sortitions.where(created_at: ..@end_at) if @end_at.present?
33
33
  sortitions
34
34
  end
35
35
  end
@@ -11,13 +11,28 @@
11
11
  components_options(proposal_components),
12
12
  prompt: t(".select_proposal_component") %>
13
13
  </div>
14
+ </div>
15
+ </div>
16
+ </div>
14
17
 
15
- <div class="columns">
16
- <%= form.categories_select :decidim_category_id,
17
- @form.categories,
18
- include_blank: t(".all_categories") %>
18
+ <% if @form.taxonomy_filters&.any? %>
19
+ <div class="card pt-4">
20
+ <div class="card-section">
21
+ <div class="row">
22
+ <h3 class="pb-4"><%= t(".select_taxonomies") %></h3>
23
+ <% @form.taxonomy_filters.each do |filter| %>
24
+ <div class="columns">
25
+ <%= filter_taxonomy_items_select_field form, :taxonomies, filter %>
26
+ </div>
27
+ <% end %>
19
28
  </div>
29
+ </div>
30
+ </div>
31
+ <% end %>
20
32
 
33
+ <div class="card pt-4">
34
+ <div class="card-section">
35
+ <div class="row">
21
36
  <div class="columns">
22
37
  <%= form.number_field :target_items, min: 1, step: 1 %>
23
38
  </div>
@@ -12,7 +12,7 @@
12
12
  <th><%= t("models.sortition.fields.request_timestamp", scope: "decidim.sortitions.admin") %></th>
13
13
  <th><%= t("models.sortition.fields.dice", scope: "decidim.sortitions.admin") %></th>
14
14
  <th><%= t("models.sortition.fields.target_items", scope: "decidim.sortitions.admin") %></th>
15
- <th><%= t("models.sortition.fields.category", scope: "decidim.sortitions.admin") %></th>
15
+ <th><%= t("models.sortition.fields.taxonomies", scope: "decidim.sortitions.admin") %></th>
16
16
  <th><%= t("models.sortition.fields.decidim_proposals_component", scope: "decidim.sortitions.admin") %></th>
17
17
  <th><%= t("models.sortition.fields.seed", scope: "decidim.sortitions.admin") %></th>
18
18
  <th></th>
@@ -23,7 +23,7 @@
23
23
  <td><%= l sortition.request_timestamp, format: :long %></td>
24
24
  <td><%= sortition.dice %></td>
25
25
  <td><%= sortition.target_items %></td>
26
- <td><%= sortition_category sortition %></td>
26
+ <td><%= sortition_taxonomies sortition %></td>
27
27
  <td><%= translated_attribute sortition.decidim_proposals_component.name %></td>
28
28
  <td><%= sortition.seed %></td>
29
29
  <td></td>
@@ -1,4 +1,11 @@
1
- <% add_decidim_page_title component_name %>
1
+ <% add_decidim_meta_tags(
2
+ description: translated_attribute(current_component.participatory_space.try(:description)),
3
+ title: t("decidim.components.pagination.page_title",
4
+ component_name: component_name,
5
+ current_page: @sortitions.current_page,
6
+ total_pages: @sortitions.total_pages ),
7
+ url: sortitions_url,
8
+ resource: current_component) %>
2
9
 
3
10
  <% content_for :aside do %>
4
11
  <h1 class="title-decorator"><%= component_name %></h1>
@@ -1,8 +1,8 @@
1
- <% add_decidim_meta_tags({
2
- description: decidim_sanitize_editor(translated_attribute(sortition.additional_info)),
3
- title: decidim_escape_translated(sortition.title),
4
- url: sortition_url(sortition.to_param)
5
- }) %>
1
+ <% add_decidim_meta_tags(
2
+ description: decidim_sanitize_editor(translated_attribute(sortition.additional_info)),
3
+ title: decidim_escape_translated(sortition.title),
4
+ url: sortition_url(sortition.to_param),
5
+ resource: sortition) %>
6
6
 
7
7
  <%
8
8
  edit_link(
@@ -76,6 +76,10 @@ edit_link(
76
76
 
77
77
  <section class="layout-main__section layout-main__buttons" data-buttons>
78
78
  <%= cell "decidim/comments_button", nil %>
79
+
80
+ <div class="ml-auto lg:ml-0">
81
+ <%= cell "decidim/share_widget", sortition %>
82
+ </div>
79
83
  </section>
80
84
 
81
85
  <% content_for :aside do %>
@@ -123,7 +127,7 @@ edit_link(
123
127
  <div class="sortition__aside-element bg-background p-4 rounded">
124
128
  <div class="sortition__aside-element-item">
125
129
  <span class="sortition__aside-element-item__title">
126
- <%= t("candidate_proposals_info", scope: "decidim.sortitions.sortitions.show", category_label: sortition_category_label(sortition)) %>
130
+ <%= t("candidate_proposals_info", scope: "decidim.sortitions.sortitions.show", taxonomy_labels: sortition_taxonomy_labels(sortition)) %>
127
131
  </span>
128
132
  <span class="sortition__aside-element-item__numbers">
129
133
  <%= sortition_proposal_candidate_ids sortition %>
@@ -131,9 +135,6 @@ edit_link(
131
135
  </div>
132
136
  </div>
133
137
  </section>
134
- <section class="layout-aside__section actions__secondary">
135
- <%= cell "decidim/share_button", nil %>
136
- </section>
137
138
  <% end %>
138
139
  <% content_for :item_footer do %>
139
140
  <%= comments_for sortition %>
@@ -4,7 +4,6 @@ ar:
4
4
  attributes:
5
5
  sortition:
6
6
  additional_info: معلومات التصنيف
7
- decidim_category_id: فئات مجموعة المقترحات التي تريد تطبيق السحب عليها
8
7
  decidim_proposals_component_id: مجموعة المقترحات
9
8
  dice: نتيجة يموت لفة. قم بلف قالب من 6 جوانب ، أو ابحث عن طريقة عشوائية أخرى لإنشاء رقم من 1 إلى 6 ، وأدخل هنا الرقم الناتج أمام بعض الشهود. هذا يساهم في جودة وضمانات عشوائية النتيجة
10
9
  target_items: عدد المقترحات التي سيتم اختيارها (يشير إلى عدد المقترحات التي تريد تحديدها عن طريق رسم الكثير من مجموعة المقترحات التي اخترتها سابقًا)
@@ -44,7 +43,6 @@ ar:
44
43
  models:
45
44
  sortition:
46
45
  fields:
47
- category: الفئة
48
46
  created_at: تاريخ الإنشاء
49
47
  decidim_proposals_component: مكون الاقتراحات
50
48
  dice: حجر النرد
@@ -64,7 +62,6 @@ ar:
64
62
  title: تحديث المعلومات حول الفرز
65
63
  update: تحديث
66
64
  form:
67
- all_categories: جميع الفئات
68
65
  select_proposal_component: حدد مجموعة المقترحات
69
66
  index:
70
67
  title: Sortitions
@@ -111,11 +108,8 @@ ar:
111
108
  other: مقترحات مختارة
112
109
  show:
113
110
  algorithm: رمز خوارزمية التصنيف
114
- any_category: من جميع الفئات
115
111
  cancelled: فرز الملغاة
116
112
  candidate_proposal_ids: ترتيب المقترحات الترتيب ومعرفات
117
- candidate_proposals_info: 'تم تنفيذ التصنيف بين المقترحات التالية (%{category_label}) ، مع المعرفات التالية (بالخط العريض للمقترحات المختارة) '
118
- category: من %{category} الفئة
119
113
  dice_result: (1) نتيجة النرد
120
114
  introduction: 'تحتوي هذه الصفحة على نتائج الفرز %{reference}. من خلال هذا sortition، %{target_items} تم اختيارها عشوائيا عدد من النتائج ومع التوزيع الاحتمالي على قدم المساواة من مجموعة من المقترحات المعروضة رفع الصوت عاليا. جنبًا إلى جنب مع النتائج ، توفر المعلومات المعروضة على هذه الصفحة جميع المعلومات المطلوبة لزيادة الضمانات وإعادة إنتاج النتائج. المفتاح لجودة هذا الفرز هو العشوائية المزدوجة التي يوفرها المتداول من الزهر (التحقق من قبل الشهود) والوقت الدقيق للترتيب الذي يوفر مدخلات لخوارزمية يولد اختيار عشوائي. إن البذر الزمني للفرز دقيق للغاية (بالثواني) بحيث يستحيل على البشر التحكم فيه ، مما يوفر مدخلات مزدوجة "لا يمكن السيطرة عليها" لضمان نتيجة عادلة. '
121
115
  mathematical_result: النتيجة (1) × (2)
@@ -4,7 +4,6 @@ bg:
4
4
  attributes:
5
5
  sortition:
6
6
  additional_info: Информация за сортировката
7
- decidim_category_id: Категории от набора от предложения, в които искате да приложите жребий
8
7
  decidim_proposals_component_id: Предложенията са зададени
9
8
  dice: Резултат от хвърлянето на зара. Хвърлете 6-странен зар или потърсете друг произволен начин за генериране на число от 1 до 6 и въведете тук полученото число пред няколко свидетели. Това допринася за качеството и гаранции за случайността на резултата
10
9
  target_items: Брой на предложенията, които да бъдат избрани (указва броя на предложенията, които искате да бъдат избрани чрез хвърляне на жребий от групата предложения, които сте избрали по-рано)
@@ -44,7 +43,6 @@ bg:
44
43
  models:
45
44
  sortition:
46
45
  fields:
47
- category: Категория
48
46
  created_at: Дата на създаване
49
47
  decidim_proposals_component: Компонент Предложения
50
48
  dice: Зар
@@ -68,7 +66,6 @@ bg:
68
66
  title: Актуализирайте информацията за сортировката
69
67
  update: Актуализация
70
68
  form:
71
- all_categories: Всички категории
72
69
  select_proposal_component: Изберете набора от предложения
73
70
  index:
74
71
  title: Сортировки
@@ -111,11 +108,8 @@ bg:
111
108
  other: Избрани предложения
112
109
  show:
113
110
  algorithm: Код на алгоритъма за жребия в сортировката
114
- any_category: от всички категории
115
111
  cancelled: Отменена сортировка
116
112
  candidate_proposal_ids: Ред и ID номерата на предложенията в сортировката
117
- candidate_proposals_info: 'Сортирането беше извършено сред следните предложения (%{category_label}), със следните идентификатори (с удебелен шрифт избраните предложения) '
118
- category: от категорията %{category}
119
113
  dice_result: Резултат от жребия
120
114
  introduction: 'Тази страница съдържа резултатите от сортирането %{reference}. Чрез това сортиране, %{target_items} брой резултати са избрани на случаен принцип и с равно вероятностно разпределение от набора от предложения, показани по-долу. Заедно с резултатите, информацията, показана на тази страница, предоставя цялата информация, необходима за максимизиране на гаранциите и за възпроизвеждане на резултатите. Ключът към качеството на това сортиране е двойната случайност, осигурена от хвърлянето на зарове (потвърдено от свидетели) и точното време на сортирането, което осигурява вход за алгоритъм, който генерира случаен избор. Времето за начало за сортирането е толкова точно (секунди), че е невъзможно да се контролира от хора, като по този начин се осигурява двоен „неконтролируем“ вход, за да се гарантира справедлив резултат. '
121
115
  mathematical_result: Резулатат (Зарове х Разбъркване)
@@ -4,7 +4,6 @@ ca:
4
4
  attributes:
5
5
  sortition:
6
6
  additional_info: Informació del sorteig
7
- decidim_category_id: Categories del conjunt de propostes en què vols aplicar el sorteig
8
7
  decidim_proposals_component_id: Propostes establertes
9
8
  dice: Resultat de la tirada de daus. Tira un dau de sis cares o busca alguna altra manera de generar un número de l'u al sis i introdueix-lo aquí davant d'algunes testimonies. Això contribueix en la qualitat i garantia de l'aletorietat del resultat
10
9
  target_items: Nombre de propostes a seleccionar (indica el nombre de propostes que vols seleccionar mitjançant el sorteig del grup de propostes que hàgiu triat prèviament)
@@ -25,8 +24,13 @@ ca:
25
24
  name: Sortejos
26
25
  settings:
27
26
  global:
27
+ clear_all: Netejar-ho tot
28
28
  comments_enabled: Comentaris habilitats
29
29
  comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
30
+ define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
31
+ no_taxonomy_filters_found: No s'han trobat filtres de taxonomia.
32
+ taxonomy_filters: Seleccionar filtres pel component
33
+ taxonomy_filters_add: Afegir un filtre
30
34
  events:
31
35
  sortitions:
32
36
  sortition_created:
@@ -44,7 +48,6 @@ ca:
44
48
  models:
45
49
  sortition:
46
50
  fields:
47
- category: Categoria
48
51
  created_at: Data de creació
49
52
  decidim_proposals_component: Component de Propostes
50
53
  dice: Dau
@@ -52,6 +55,7 @@ ca:
52
55
  request_timestamp: Temps de dibuixar
53
56
  seed: Llavor
54
57
  target_items: Elements a seleccionar
58
+ taxonomies: Taxonomies
55
59
  title: Títol
56
60
  sortitions:
57
61
  confirm_destroy:
@@ -68,8 +72,9 @@ ca:
68
72
  title: Actualitza la informació sobre el sorteig
69
73
  update: Actualitzar
70
74
  form:
71
- all_categories: Totes les categories
75
+ all_taxonomies: Totes les taxonomies
72
76
  select_proposal_component: Selecciona el grup de propostes
77
+ select_taxonomies: Taxonomies del conjunt de propostes del qual vols aplicar per dibuixar. Deixar buit per aplicar a totes les propostes de la taxonomia.
73
78
  index:
74
79
  title: Sortejos
75
80
  new:
@@ -111,16 +116,16 @@ ca:
111
116
  other: propostes seleccionades
112
117
  show:
113
118
  algorithm: Codi d'algoritme del sorteig
114
- any_category: de totes les categories
119
+ any_taxonomy: de totes les taxonomies
115
120
  cancelled: Sorteig cancel·lat
116
121
  candidate_proposal_ids: Ordre i IDs de les propostes del sorteig
117
- 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) '
118
- category: de la categoria %{category}
122
+ candidate_proposals_info: 'La resolució es va dur a terme entre les següents propostes (%{taxonomy_labels}), amb les següents IDs (en negreta, les propostes seleccionades) '
119
123
  dice_result: (1) Resultat de la tirada de daus
120
124
  introduction: 'Aquesta pàgina conté els resultats del sorteig %{reference}. Mitjançant aquest sorteig, %{target_items} nombre de resultats han estat seleccionats aleatòriament i amb una distribució de probabilitat igual al conjunt de propostes que es mostra a continuació. Juntament amb els resultats, la informació que es mostra en aquesta pàgina proporciona tota la informació necessària per maximitzar les garanties i reproduir els resultats. La clau per a la qualitat d''aquest sorteig és l''aleatorietat doble proporcionada per una tirada d''un dau (verificat pels testimonis) i el temps precís de l''assentament que proporciona entrada per a un algorisme que genera una selecció aleatòria. El llindar de temps per a l''assaig és tan precís (segons) que és impossible de controlar pels humans, oferint així una doble entrada "incontrolable" per garantir un resultat just. '
121
125
  mathematical_result: Resultat (1) x (2)
122
126
  proposals_selected_by_sortition: Propostes seleccionades pel sorteig
123
127
  sortition_reproducibility_details: Detalls de la reproductibilitat del sorteig
128
+ taxonomies: de les taxonomies %{taxonomies}
124
129
  time_seed: (2) Llavor de temps
125
130
  witnesses: Testimonis
126
131
  sortition:
@@ -4,7 +4,6 @@ cs:
4
4
  attributes:
5
5
  sortition:
6
6
  additional_info: Informace o volbě losem
7
- decidim_category_id: Kategorie sady návrhů, ve kterých chcete použít remízu
8
7
  decidim_proposals_component_id: Návrhy jsou nastaveny
9
8
  dice: Výsledek hodu kostkou. Hoďte šestistrannou kostkou nebo najděte jiný náhodný způsob, jak získat číslo od 1 do 6, a výsledné číslo sem před svědky vložte. To přispěje ke kvalitě a zaručí nahodilost výsledku
10
9
  target_items: Počet návrhů, které mají být vybrány (udává počet návrhů, které chcete vybrat, čerpáním ze skupiny návrhů, které jste předtím vybrali)
@@ -27,8 +26,13 @@ cs:
27
26
  name: Losování
28
27
  settings:
29
28
  global:
29
+ clear_all: Vymazat vše
30
30
  comments_enabled: Komentáře povoleny
31
31
  comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
32
+ define_taxonomy_filters: Před použitím tohoto nastavení prosím definujte některé filtry pro tento participační prostor.
33
+ no_taxonomy_filters_found: Nebyly nalezeny žádné filtry taxonomie.
34
+ taxonomy_filters: Vyberte filtry pro komponentu
35
+ taxonomy_filters_add: Přidat filtr
32
36
  events:
33
37
  sortitions:
34
38
  sortition_created:
@@ -46,7 +50,6 @@ cs:
46
50
  models:
47
51
  sortition:
48
52
  fields:
49
- category: Kategorie
50
53
  created_at: Datum vytvoření
51
54
  decidim_proposals_component: Součást návrhů
52
55
  dice: Kostky
@@ -54,6 +57,7 @@ cs:
54
57
  request_timestamp: Čas vržení kostek
55
58
  seed: Založení
56
59
  target_items: Položky k výběru
60
+ taxonomies: Taxonomie
57
61
  title: Název
58
62
  sortitions:
59
63
  confirm_destroy:
@@ -70,8 +74,9 @@ cs:
70
74
  title: Aktualizovat informace o volbě losem
71
75
  update: Aktualizace
72
76
  form:
73
- all_categories: Všechny kategorie
77
+ all_taxonomies: Všechny taxonomie
74
78
  select_proposal_component: Vyberte sadu návrhů
79
+ select_taxonomies: Taxonomie sady návrhů, ve kterých chcete losování použít. Chcete-li použít losování na všechny návrhy v dané taxonomii, ponechte prázdné.
75
80
  index:
76
81
  title: Losování
77
82
  new:
@@ -117,16 +122,16 @@ cs:
117
122
  other: vybrané návrhy
118
123
  show:
119
124
  algorithm: Kód algoritmu losování
120
- any_category: ze všech kategorií
125
+ any_taxonomy: ze všech taxonomií
121
126
  cancelled: Zrušené losování
122
127
  candidate_proposal_ids: Pořadí a ID návrhů k losování
123
- candidate_proposals_info: 'Losování bylo provedeno mezi následujícími návrhy (%{category_label}), s následujícími ID (označené tučně vybrané návrhy) '
124
- category: z kategorie %{category}
128
+ candidate_proposals_info: 'Losování bylo provedeno mezi následujícími návrhy (%{taxonomy_labels}), s následujícími ID (označené tučně vybrané návrhy) '
125
129
  dice_result: (1) Výsledek hodu kostkou
126
130
  introduction: "Tato stránka obsahuje výsledky losování %{reference}. Prostřednictvím tohoto losování bylo vybráno %{target_items} výsledků náhodně a se stejným rozdělením pravděpodobnosti ze souboru návrhů zobrazených níže. \n\nSpolu s výsledky informace zobrazené na této stránce poskytují všechny informace potřebné pro maximalizaci záruk a reprodukci výsledků. Klíčem ke kvalitě tohoto losování je dvojitá náhodnost, kterou poskytuje hod kostkou (ověřený svědky) a přesný čas výběru, který poskytuje vstup pro algoritmus, který generuje náhodný výběr. \n\nČasový základ pro losování je tak přesný (na sekundy), že není možné ovládat lidi, a tak lze poskytnout dvojitý \"nekontrolovatelný\" vstup, který zaručí spravedlivý výsledek. "
127
131
  mathematical_result: Výsledek (1) x (2)
128
132
  proposals_selected_by_sortition: Návrhy vybrané losováním
129
133
  sortition_reproducibility_details: Detaily reprodukovatelnosti losování
134
+ taxonomies: z taxonomií %{taxonomies}
130
135
  time_seed: (2) Časový základ
131
136
  witnesses: Svědci
132
137
  sortition:
@@ -4,7 +4,6 @@ de:
4
4
  attributes:
5
5
  sortition:
6
6
  additional_info: Sortierinformationen
7
- decidim_category_id: Kategorien der Vorschläge, in denen Sie die Auslosung anwenden möchten
8
7
  decidim_proposals_component_id: Vorschläge festgelegt
9
8
  dice: Ergebnis des Würfelwurfs. Wirf einen 6-seitigen Würfel oder suche nach einem anderen zufälligen Weg, um eine Zahl von 1 bis 6 zu erzeugen, und gib die resultierende Zahl vor einigen Zeugen ein. Dies trägt zur Qualität und zur Gewährleistung der Zufälligkeit des Ergebnisses bei
10
9
  target_items: Anzahl der auszuwählenden Vorschläge (gibt die Anzahl der Vorschläge an, die Sie auswählen möchten, indem Sie viele der Vorschläge auswählen, die Sie zuvor ausgewählt haben)
@@ -44,7 +43,6 @@ de:
44
43
  models:
45
44
  sortition:
46
45
  fields:
47
- category: Kategorie
48
46
  created_at: Erstellungsdatum
49
47
  decidim_proposals_component: Vorschlagskomponente
50
48
  dice: Würfel
@@ -68,7 +66,6 @@ de:
68
66
  title: Informationen zur Sortierung aktualisieren
69
67
  update: Aktualisieren
70
68
  form:
71
- all_categories: Alle Kategorien
72
69
  select_proposal_component: Wählen Sie die Vorschläge aus
73
70
  index:
74
71
  title: Sortierungen
@@ -111,11 +108,8 @@ de:
111
108
  other: ausgewählte Vorschläge
112
109
  show:
113
110
  algorithm: Sortieralgorithmuscode
114
- any_category: aus allen Kategorien
115
111
  cancelled: Stornierte Sortierung
116
112
  candidate_proposal_ids: Reihenfolge der Sortierungsvorschläge und IDs
117
- 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) '
118
- category: aus der %{category} Kategorie
119
113
  dice_result: (1) Würfelergebnis
120
114
  introduction: 'Diese Seite enthält die Ergebnisse der Sortierung %{reference}. Durch diese Sortierung wurde %{target_items} Anzahl von Ergebnissen zufällig und mit einer gleichen Wahrscheinlichkeitsverteilung aus dem unten angezeigten Satz von Vorschlägen ausgewählt. Zusammen mit den Ergebnissen bieten die auf dieser Seite angezeigten Informationen alle Informationen, die erforderlich sind, um die Garantien zu maximieren und die Ergebnisse zu reproduzieren. Der Schlüssel zur Qualität dieser Sortierung ist die doppelte Zufälligkeit, die durch das Rollen eines Würfels (verifiziert durch Zeugen) und den genauen Zeitpunkt der Sortierung bereitgestellt wird, der eine Eingabe für einen Algorithmus liefert, der eine zufällige Auswahl erzeugt. Der Zeitsaat für die Sortierung ist so genau (Sekunden), dass es unmöglich ist, von Menschen kontrolliert zu werden, wodurch eine doppelte "unkontrollierbare" Eingabe bereitgestellt wird, um ein faires Ergebnis zu garantieren. '
121
115
  mathematical_result: Ergebnis (1) x (2)