decidim-sortitions 0.27.6 → 0.28.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/sortitions/sortition_cell.rb +1 -1
  3. data/app/cells/decidim/sortitions/sortition_l_cell.rb +26 -0
  4. data/app/cells/decidim/sortitions/sortition_metadata_cell.rb +66 -0
  5. data/app/commands/decidim/sortitions/admin/create_sortition.rb +2 -2
  6. data/app/commands/decidim/sortitions/admin/destroy_sortition.rb +1 -1
  7. data/app/commands/decidim/sortitions/admin/update_sortition.rb +1 -1
  8. data/app/controllers/decidim/sortitions/admin/sortitions_controller.rb +11 -11
  9. data/app/controllers/decidim/sortitions/sortitions_controller.rb +0 -1
  10. data/app/helpers/decidim/sortitions/admin/sortitions_helper.rb +1 -0
  11. data/app/helpers/decidim/sortitions/sortitions_helper.rb +25 -1
  12. data/app/models/decidim/sortitions/sortition.rb +3 -3
  13. data/app/packs/entrypoints/decidim_sortitions.js +3 -0
  14. data/app/packs/stylesheets/sortitions.scss +31 -0
  15. data/app/permissions/decidim/sortitions/permissions.rb +0 -14
  16. data/app/presenters/decidim/sortitions/admin_log/sortition_presenter.rb +2 -2
  17. data/app/queries/decidim/sortitions/admin/participatory_space_proposal_components.rb +1 -1
  18. data/app/views/decidim/sortitions/admin/sortitions/_form.html.erb +29 -31
  19. data/app/views/decidim/sortitions/admin/sortitions/confirm_destroy.html.erb +24 -15
  20. data/app/views/decidim/sortitions/admin/sortitions/edit.html.erb +26 -22
  21. data/app/views/decidim/sortitions/admin/sortitions/index.html.erb +47 -54
  22. data/app/views/decidim/sortitions/admin/sortitions/new.html.erb +16 -10
  23. data/app/views/decidim/sortitions/admin/sortitions/show.html.erb +42 -46
  24. data/app/views/decidim/sortitions/sortitions/_proposal.html.erb +1 -1
  25. data/app/views/decidim/sortitions/sortitions/_results_count.html.erb +3 -3
  26. data/app/views/decidim/sortitions/sortitions/_sortitions.html.erb +10 -11
  27. data/app/views/decidim/sortitions/sortitions/_tags.html.erb +0 -1
  28. data/app/views/decidim/sortitions/sortitions/index.html.erb +14 -17
  29. data/app/views/decidim/sortitions/sortitions/index.js.erb +0 -5
  30. data/app/views/decidim/sortitions/sortitions/show.html.erb +123 -118
  31. data/config/locales/ar.yml +2 -24
  32. data/config/locales/bg.yml +0 -36
  33. data/config/locales/ca.yml +10 -21
  34. data/config/locales/cs.yml +7 -22
  35. data/config/locales/de.yml +10 -21
  36. data/config/locales/el.yml +6 -19
  37. data/config/locales/en.yml +14 -25
  38. data/config/locales/es-MX.yml +9 -20
  39. data/config/locales/es-PY.yml +9 -20
  40. data/config/locales/es.yml +9 -20
  41. data/config/locales/eu.yml +25 -32
  42. data/config/locales/fi-plain.yml +7 -20
  43. data/config/locales/fi.yml +27 -40
  44. data/config/locales/fr-CA.yml +7 -20
  45. data/config/locales/fr.yml +10 -21
  46. data/config/locales/ga-IE.yml +0 -6
  47. data/config/locales/gl.yml +2 -22
  48. data/config/locales/hu.yml +2 -22
  49. data/config/locales/id-ID.yml +2 -19
  50. data/config/locales/is-IS.yml +2 -16
  51. data/config/locales/it.yml +2 -21
  52. data/config/locales/ja.yml +7 -19
  53. data/config/locales/lt.yml +6 -22
  54. data/config/locales/lv.yml +2 -22
  55. data/config/locales/nl.yml +2 -21
  56. data/config/locales/no.yml +2 -21
  57. data/config/locales/pl.yml +2 -24
  58. data/config/locales/pt-BR.yml +3 -25
  59. data/config/locales/pt.yml +2 -21
  60. data/config/locales/ro-RO.yml +5 -21
  61. data/config/locales/ru.yml +2 -22
  62. data/config/locales/sk.yml +2 -23
  63. data/config/locales/sr-CS.yml +0 -6
  64. data/config/locales/sv.yml +2 -21
  65. data/config/locales/tr-TR.yml +3 -21
  66. data/config/locales/uk.yml +2 -22
  67. data/config/locales/zh-CN.yml +2 -20
  68. data/config/locales/zh-TW.yml +5 -18
  69. data/lib/decidim/sortitions/component.rb +5 -7
  70. data/lib/decidim/sortitions/engine.rb +8 -3
  71. data/lib/decidim/sortitions/seeds.rb +24 -0
  72. data/lib/decidim/sortitions/test/factories.rb +11 -16
  73. data/lib/decidim/sortitions/version.rb +1 -1
  74. metadata +31 -34
  75. data/app/cells/decidim/sortitions/sortition_m/data.erb +0 -15
  76. data/app/cells/decidim/sortitions/sortition_m/footer.erb +0 -13
  77. data/app/cells/decidim/sortitions/sortition_m_cell.rb +0 -55
  78. data/app/controllers/decidim/sortitions/widgets_controller.rb +0 -30
  79. data/app/packs/stylesheets/decidim/sortitions/_sortitions.scss +0 -49
  80. data/app/views/decidim/sortitions/sortition_widgets/show.html.erb +0 -4
  81. data/app/views/decidim/sortitions/sortitions/_filters.html.erb +0 -39
  82. data/app/views/decidim/sortitions/sortitions/_filters_small_view.html.erb +0 -18
  83. data/app/views/decidim/sortitions/sortitions/_sortitions_count.html.erb +0 -1
  84. data/config/locales/he-IL.yml +0 -1
  85. data/decidim-sortitions.gemspec +0 -32
  86. data/lib/tasks/decidim/.keep +0 -0
@@ -37,7 +37,7 @@ tr:
37
37
  actions:
38
38
  destroy: Sıralamayı iptal et
39
39
  edit: Düzenle
40
- new: Yeni sıralama
40
+ new_sortition: Yeni Sıralama
41
41
  show: Sıralama detayları
42
42
  models:
43
43
  sortition:
@@ -51,9 +51,6 @@ tr:
51
51
  seed: Çekirdek
52
52
  target_items: Seçilecek öğeler
53
53
  title: Başlık
54
- name:
55
- one: Sıralama
56
- other: Sıralama
57
54
  sortitions:
58
55
  confirm_destroy:
59
56
  confirm_destroy: Bu sıralamayı iptal etmek istediğinize emin misiniz?
@@ -61,17 +58,12 @@ tr:
61
58
  title: Sıralamanın iptali
62
59
  create:
63
60
  error: Yeni bir sıralama oluştururken bir sorun oluştu.
64
- success: Sıralama başarıyla oluşturuldu
65
- destroy:
66
- error: Sıralama iptal edilemez.
67
- success: Sıralama başarıyla iptal edildi
68
61
  edit:
69
62
  title: Sıralama hakkındaki bilgileri güncelleyin
70
63
  update: Güncelle
71
64
  form:
72
65
  all_categories: Tüm Kategoriler
73
66
  select_proposal_component: Teklif kümesini seçin
74
- title: Teklifler için yeni sıralama
75
67
  index:
76
68
  title: Sıralama
77
69
  new:
@@ -81,7 +73,6 @@ tr:
81
73
  selected_proposals: Çekiliş için seçilen teklifler
82
74
  update:
83
75
  error: Sıralama güncellenirken bir sorun oluştu.
84
- success: Sıralama başarıyla güncellendi
85
76
  admin_log:
86
77
  sortition:
87
78
  create: "%{user_name}, %{space_name} %{resource_name} sıralamayı yarattı"
@@ -97,14 +88,7 @@ tr:
97
88
  all: Tümü
98
89
  cancelled: İptal edildi
99
90
  category: Kategori
100
- category_prompt: Bir kategori seç
101
- search: Arama
102
91
  state: Statü
103
- filters_small_view:
104
- close_modal: Pencereyi kapat
105
- filter: Filtrele
106
- filter_by: Şuna göre filtrele
107
- unfold: Aç
108
92
  linked_sortitions:
109
93
  selected_proposals: Seçili teklifler
110
94
  orders:
@@ -118,24 +102,22 @@ tr:
118
102
  show:
119
103
  algorithm: Sıralamanın algoritma kodu
120
104
  any_category: tüm kategorilerden
121
- back: Listeye geri dön
122
105
  cancelled: İptal edilen sıralama
123
106
  candidate_proposal_ids: Sıralama tekliflerinin sırası ve ID'si
124
107
  candidate_proposals_info: 'Sıralama, aşağıdaki teklifler arasında (%{category_label}), aşağıdaki kimliklerle gerçekleştirildi (seçilen teklifler kalın olarak) '
125
108
  category: '%{category} kategoriden'
126
- dice_result: "(1) Zar sonucu"
109
+ dice_result: (1) Zar sonucu
127
110
  introduction: 'Bu sayfa, %{reference} sıralamasının sonuçlarını içerir. Bu sıralama sayesinde, %{target_items} sonuç sayısı rasgele ve aşağıda gösterilen teklif kümesinden eşit olasılık dağılımıyla seçilmiştir. Sonuçlarla birlikte, bu sayfada görüntülenen bilgiler, garantileri en üst düzeye çıkarmak ve sonuçları yeniden üretmek için gereken tüm bilgileri sağlar. Bu sınıflandırmanın kalitesinin anahtarı, bir zarın yuvarlanmasıyla sağlanan (tanıklar tarafından doğrulanan) çift rastlantısallık ve rasgele bir seçim oluşturan bir algoritma için girdi sağlayan sıralamanın kesin zamanıdır. Ayırma için zaman-tohum o kadar doğrudur (saniye) ki, insanlar tarafından kontrol edilmesi imkansızdır, böylece adil bir sonucu garantilemek için çift "kontrol edilemez" bir girdi sağlar. '
128
111
  mathematical_result: Sonuç (1) x (2)
129
112
  proposals_selected_by_sortition: Sıralamaya göre seçilen teklifler
130
113
  sortition_reproducibility_details: Sıralama yeniden üretilebilirlik ayrıntıları
131
- time_seed: "(2) Zaman tohumu"
114
+ time_seed: (2) Zaman tohumu
132
115
  witnesses: Tanıklar
133
116
  sortition:
134
117
  random_seed: Rastgele tohum
135
118
  selected_proposals:
136
119
  one: teklif seçildi
137
120
  other: teklif seçildi
138
- view: Görünüm
139
121
  sortition_author:
140
122
  deleted: Silinmiş katılımcı
141
123
  sortition_cancel_author:
@@ -38,7 +38,6 @@ uk:
38
38
  actions:
39
39
  destroy: Скасувати жеребкування
40
40
  edit: Редагувати
41
- new: Додати жеребкування
42
41
  show: Подробиці жеребкування
43
42
  models:
44
43
  sortition:
@@ -52,11 +51,6 @@ uk:
52
51
  seed: Початкове число
53
52
  target_items: Наймення до вибору
54
53
  title: Назва
55
- name:
56
- one: Жеребкування
57
- few: Жеребкування
58
- many: Жеребкувань
59
- other: Жеребкувань
60
54
  sortitions:
61
55
  confirm_destroy:
62
56
  confirm_destroy: Ви дійсно бажаєте скасувати це жеребкування?
@@ -64,17 +58,12 @@ uk:
64
58
  title: Скасування жеребкування
65
59
  create:
66
60
  error: При спробі створити нове жеребкування сталася помилка.
67
- success: Жеребкування успішно створено
68
- destroy:
69
- error: Неможливо скасувати це жеребкування.
70
- success: Жеребкування успішно скасовано
71
61
  edit:
72
62
  title: Оновити відомості про жеребкування
73
63
  update: Оновити
74
64
  form:
75
65
  all_categories: Усі категорії
76
66
  select_proposal_component: Оберіть набір пропозицій
77
- title: Додати нове жеребкування пропозицій
78
67
  index:
79
68
  title: Жеребкування
80
69
  new:
@@ -84,7 +73,6 @@ uk:
84
73
  selected_proposals: Пропозиції, відібрані для жеребкування
85
74
  update:
86
75
  error: При спробі оновити жеребкування сталася помилка.
87
- success: Жеребкування успішно оновлено
88
76
  admin_log:
89
77
  sortition:
90
78
  create: "%{user_name} створив жеребкування %{resource_name} у %{space_name}"
@@ -102,14 +90,7 @@ uk:
102
90
  all: Усі
103
91
  cancelled: Скасовані
104
92
  category: Категорія
105
- category_prompt: Оберіть категорію
106
- search: Шукати
107
93
  state: Стан
108
- filters_small_view:
109
- close_modal: Закрити віконце
110
- filter: Відібрати
111
- filter_by: 'Відібрати за ознакою:'
112
- unfold: Розгорнути
113
94
  linked_sortitions:
114
95
  selected_proposals: Вибрані пропозиції
115
96
  orders:
@@ -129,12 +110,12 @@ uk:
129
110
  candidate_proposal_ids: Порядок та назви жеребкованих пропозицій
130
111
  candidate_proposals_info: 'Жеребкування було проведено серед пропозицій (%{category_label}), з наступними назвами (напівжирним шрифтом виділені обрані пропозиції) '
131
112
  category: з категорії %{category}
132
- dice_result: "(1) Вислід кидання гральної кістки"
113
+ dice_result: (1) Вислід кидання гральної кістки
133
114
  introduction: 'На цій сторінці показані висліди жеребкування %{reference}. За допомогою цього жеребкування було обрано випадковим чином %{target_items} пропозицій з рівним розподілом імовірності з числа пропозицій, перелічених нижче. Разом з вислідами, відомості, які відображені на цій сторінці, містять все, що необхідно для щонайбільших гарантій та для відтворення вислідів. Ключ до якості цього жеребкування - це подвійна випадковість, забезпечена шляхом кидання гральної кістки (засвідченого свідками) і точного часу жеребкування, введеного до алгоритму, який виробляє випадкову добірку. Задіяний як початкове число час жеребкування настільки точний (секунди), що люди нездатні його контролювати. Таким чином завдяки подвійним "неконтрольованим" входовим даним забезпечується справедливий вислід. '
134
115
  mathematical_result: Добуток (1) x (2)
135
116
  proposals_selected_by_sortition: Пропозиції, обрані киданням жеребу
136
117
  sortition_reproducibility_details: Подробиці щодо відтворюваності жеребкування
137
- time_seed: "(2) Час як початкове число"
118
+ time_seed: (2) Час як початкове число
138
119
  witnesses: Свідки
139
120
  sortition:
140
121
  random_seed: Випадкове початкове число
@@ -143,7 +124,6 @@ uk:
143
124
  few: обрані пропозиції
144
125
  many: обраних пропозицій
145
126
  other: обраних пропозицій
146
- view: Переглянути
147
127
  sortition_author:
148
128
  deleted: Видалений учасник
149
129
  sortition_cancel_author:
@@ -36,7 +36,6 @@ zh-CN:
36
36
  actions:
37
37
  destroy: 取消排序方式
38
38
  edit: 编辑
39
- new: 新的排序方式
40
39
  show: 排序详情
41
40
  models:
42
41
  sortition:
@@ -50,8 +49,6 @@ zh-CN:
50
49
  seed: 种子
51
50
  target_items: 要选择的项目
52
51
  title: 标题
53
- name:
54
- other: 联谊会
55
52
  sortitions:
56
53
  confirm_destroy:
57
54
  confirm_destroy: 您确定要取消这个分类吗?
@@ -59,17 +56,12 @@ zh-CN:
59
56
  title: 取消吸附性
60
57
  create:
61
58
  error: 出现了一个问题,造成了新的怨恨。
62
- success: 排序成功创建
63
- destroy:
64
- error: 不能取消排序。
65
- success: 排序成功取消
66
59
  edit:
67
60
  title: 更新有关分类的信息
68
61
  update: 更新
69
62
  form:
70
63
  all_categories: 所有类别
71
64
  select_proposal_component: 选择提案集
72
- title: 对建议书的新排序方式
73
65
  index:
74
66
  title: 联谊会
75
67
  new:
@@ -79,7 +71,6 @@ zh-CN:
79
71
  selected_proposals: 选择绘图提案
80
72
  update:
81
73
  error: 有一个问题是更新厌恶。
82
- success: 排序成功更新
83
74
  admin_log:
84
75
  sortition:
85
76
  create: "%{user_name} 在 %{resource_name} 中创建了 %{space_name} 个排序。"
@@ -94,14 +85,7 @@ zh-CN:
94
85
  all: 所有的
95
86
  cancelled: 已取消
96
87
  category: 类别
97
- category_prompt: 选择一个类别
98
- search: 搜索
99
88
  state: 状态
100
- filters_small_view:
101
- close_modal: 关闭模式
102
- filter: 筛选器
103
- filter_by: 筛选方式
104
- unfold: 展开...
105
89
  linked_sortitions:
106
90
  selected_proposals: 选定的建议
107
91
  orders:
@@ -114,23 +98,21 @@ zh-CN:
114
98
  show:
115
99
  algorithm: 排序算法
116
100
  any_category: 来自所有类别
117
- back: 返回列表
118
101
  cancelled: 取消排序方式
119
102
  candidate_proposal_ids: 排序建议订单和 ID
120
103
  candidate_proposals_info: '排序是在下列建议中进行的 (%{category_label}),具有以下ID(以选定建议的黑体字) '
121
104
  category: 来自 %{category} 类别
122
- dice_result: "(1) 致残结果"
105
+ dice_result: (1) 致残结果
123
106
  introduction: '此页面包含排序 %{reference}的结果。 通过这种道歉, 已经随机选择了 %{target_items} 个结果,并且显示在下面的一组建议中同样的概率分布。 本页所显示的信息连同结果,提供了最大限度保证和复制结果所需的所有信息。 这种区分的质量的关键是由证人核实的法官滚动所提供的双倍随机性和为产生随机选择的算法提供输入的吸附确切时间。 难度的时间种子非常精确(秒),人类无法控制,因此提供了双个“无法控制的”输入以保证结果的公允。 '
124
107
  mathematical_result: 结果(1) x (2)
125
108
  proposals_selected_by_sortition: 按排序选择的提议
126
109
  sortition_reproducibility_details: 排序详细信息
127
- time_seed: "(2) 时间种子"
110
+ time_seed: (2) 时间种子
128
111
  witnesses: 证人
129
112
  sortition:
130
113
  random_seed: 随机种子
131
114
  selected_proposals:
132
115
  other: 建议已选择
133
- view: 查看
134
116
  sortition_author:
135
117
  deleted: 删除参与者
136
118
  sortition_cancel_author:
@@ -38,7 +38,6 @@ zh-TW:
38
38
  actions:
39
39
  destroy: 取消選民隨機抽籤
40
40
  edit: 編輯
41
- new: 新的抽籤
42
41
  show: 抽籤詳細資料
43
42
  models:
44
43
  sortition:
@@ -52,8 +51,6 @@ zh-TW:
52
51
  seed: 種子碼
53
52
  target_items: 選擇項目
54
53
  title: 標題
55
- name:
56
- other: 抽籤
57
54
  sortitions:
58
55
  confirm_destroy:
59
56
  confirm_destroy: 您確定要取消此選項嗎?
@@ -61,17 +58,16 @@ zh-TW:
61
58
  title: 取消抽籤
62
59
  create:
63
60
  error: 建立新抽籤時出現問題。
64
- success: 排序成功建立
61
+ success: 抽籤已成功建立。
65
62
  destroy:
66
63
  error: 無法取消抽籤。
67
- success: 隨機抽籤已成功取消
64
+ success: 抽籤取消成功。
68
65
  edit:
69
66
  title: 更新抽籤資訊
70
67
  update: 更新
71
68
  form:
72
69
  all_categories: 所有類別
73
70
  select_proposal_component: 選擇提案集
74
- title: 提案新抽籤
75
71
  index:
76
72
  title: 抽籤
77
73
  new:
@@ -82,7 +78,7 @@ zh-TW:
82
78
  selected_proposals: 已選擇的提案以進行抽籤
83
79
  update:
84
80
  error: 更新抽籤時發生問題。
85
- success: 抽籤成功更新
81
+ success: 抽籤成功更新.
86
82
  admin_log:
87
83
  sortition:
88
84
  create: "%{user_name} 在 %{space_name} 中創建了 %{resource_name} 抽籤"
@@ -97,14 +93,7 @@ zh-TW:
97
93
  all: 全部
98
94
  cancelled: 已取消
99
95
  category: 類別
100
- category_prompt: 選擇一個類別
101
- search: 搜尋
102
96
  state: 狀態
103
- filters_small_view:
104
- close_modal: 關閉視窗
105
- filter: 篩選
106
- filter_by: 篩選條件
107
- unfold: 展開
108
97
  linked_sortitions:
109
98
  selected_proposals: 選擇的提案
110
99
  orders:
@@ -117,23 +106,21 @@ zh-TW:
117
106
  show:
118
107
  algorithm: 抽籤排序算法
119
108
  any_category: 從所有類別中
120
- back: 返回列表
121
109
  cancelled: 取消的抽籤
122
110
  candidate_proposal_ids: 隨機抽籤提案的順序和 ID
123
111
  candidate_proposals_info: '該抽籤是在以下提案中進行的 (%{category_label}),以下是這些提案的 ID (選中的提案以粗體標出) '
124
112
  category: 來自 %{category} 類別
125
- dice_result: "(1) 骰子結果"
113
+ dice_result: (1) 骰子結果
126
114
  introduction: '本頁面包含了抽籤 %{reference} 的結果。透過這個抽籤,從下面顯示的提案集合中隨機且以等機率隨機選出了 %{target_items} 個結果。除了顯示的結果外,此頁面的資訊提供了最大化保證並重現結果所需的所有資訊。此抽籤質量的關鍵在於雙重隨機性,一方面是由證人驗證的擲骰子結果,另一方面是精確的抽籤時間提供的算法輸入以產生隨機選擇。抽籤的時間種子如此精確(秒級),以至於人類無法控制,從而提供雙重「不可控制」輸入,以保證公平結果。 '
127
115
  mathematical_result: 結果 (1) x (2)
128
116
  proposals_selected_by_sortition: 通過抽籤選中的提案
129
117
  sortition_reproducibility_details: 抽籤可重複性詳情
130
- time_seed: "(2) 時間種子"
118
+ time_seed: (2) 時間種子
131
119
  witnesses: 見證人
132
120
  sortition:
133
121
  random_seed: 隨機種子
134
122
  selected_proposals:
135
123
  other: 選中的提案
136
- view: 檢視
137
124
  sortition_author:
138
125
  deleted: 已刪除的參與者
139
126
  sortition_cancel_author:
@@ -4,12 +4,13 @@ Decidim.register_component(:sortitions) do |component|
4
4
  component.engine = Decidim::Sortitions::Engine
5
5
  component.admin_engine = Decidim::Sortitions::AdminEngine
6
6
  component.icon = "media/images/decidim_sortitions.svg"
7
+ component.icon_key = "billiards-line"
7
8
  # component.stylesheet = "decidim/sortitions/sortitions"
8
9
  component.permissions_class_name = "Decidim::Sortitions::Permissions"
9
10
  component.query_type = "Decidim::Sortitions::SortitionsType"
10
11
 
11
12
  component.on(:before_destroy) do |instance|
12
- raise StandardError, "Can't remove this component" if Decidim::Sortitions::Sortition.where(component: instance).any?
13
+ raise StandardError, "Cannot remove this component" if Decidim::Sortitions::Sortition.where(component: instance).any?
13
14
  end
14
15
 
15
16
  # These actions permissions can be configured in the admin panel
@@ -33,11 +34,8 @@ Decidim.register_component(:sortitions) do |component|
33
34
  end
34
35
 
35
36
  component.seeds do |participatory_space|
36
- component = Decidim::Component.create!(
37
- name: Decidim::Components::Namer.new(participatory_space.organization.available_locales, :sortitions).i18n_name,
38
- manifest_name: :sortitions,
39
- published_at: Time.current,
40
- participatory_space: participatory_space
41
- )
37
+ require "decidim/sortitions/seeds"
38
+
39
+ Decidim::Sortitions::Seeds.new(participatory_space:).call
42
40
  end
43
41
  end
@@ -12,10 +12,15 @@ module Decidim
12
12
  isolate_namespace Decidim::Sortitions
13
13
 
14
14
  routes do
15
- resources :sortitions, only: [:index, :show] do
16
- resource :widget, only: :show, path: "embed"
15
+ resources :sortitions, only: [:index, :show]
16
+ scope "/sortitions" do
17
+ root to: "sortitions#index"
17
18
  end
18
- root to: "sortitions#index"
19
+ get "/", to: redirect("sortitions", status: 301)
20
+ end
21
+
22
+ initializer "decidim_sortitions.register_icons" do
23
+ Decidim.icons.register(name: "seedling-line", icon: "seedling-line", category: "system", description: "", engine: :sortitions)
19
24
  end
20
25
 
21
26
  initializer "decidim_sortitions.add_cells_view_paths" do
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "decidim/components/namer"
4
+
5
+ module Decidim
6
+ module Sortitions
7
+ class Seeds
8
+ attr_reader :participatory_space
9
+
10
+ def initialize(participatory_space:)
11
+ @participatory_space = participatory_space
12
+ end
13
+
14
+ def call
15
+ Decidim::Component.create!(
16
+ name: Decidim::Components::Namer.new(participatory_space.organization.available_locales, :sortitions).i18n_name,
17
+ manifest_name: :sortitions,
18
+ published_at: Time.current,
19
+ participatory_space:
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,27 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "decidim/components/namer"
3
4
  require "decidim/faker/localized"
4
5
  require "decidim/core/test/factories"
5
6
  require "decidim/participatory_processes/test/factories"
6
7
 
7
8
  FactoryBot.define do
8
9
  factory :sortition_component, parent: :component do
9
- transient do
10
- skip_injection { false }
11
- end
12
- name { generate_component_name(participatory_space.organization.available_locales, :sortitions, skip_injection: skip_injection) }
10
+ name { Decidim::Components::Namer.new(participatory_space.organization.available_locales, :sortitions).i18n_name }
13
11
  manifest_name { :sortitions }
14
- participatory_space { create(:participatory_process, :with_steps, organization: organization, skip_injection: skip_injection) }
12
+ participatory_space { create(:participatory_process, :with_steps, organization:) }
15
13
  end
16
14
 
17
15
  factory :sortition, class: "Decidim::Sortitions::Sortition" do
18
- transient do
19
- skip_injection { false }
20
- end
21
- component { create(:sortition_component, skip_injection: skip_injection) }
22
- decidim_proposals_component { create(:proposal_component, organization: component.organization, skip_injection: skip_injection) }
16
+ component { create(:sortition_component) }
17
+ decidim_proposals_component { create(:proposal_component, organization: component.organization) }
23
18
 
24
- title { generate_localized_title(:sortition_title, skip_injection: skip_injection) }
19
+ title { generate_localized_title }
25
20
  author do
26
21
  create(:user, :admin, organization: component.organization) if component
27
22
  end
@@ -29,15 +24,15 @@ FactoryBot.define do
29
24
  dice { Faker::Number.between(from: 1, to: 6).to_i }
30
25
  target_items { Faker::Number.between(from: 1, to: 5).to_i }
31
26
  request_timestamp { Time.now.utc }
32
- witnesses { generate_localized_description(:sortition_witnesses, skip_injection: skip_injection) }
33
- additional_info { generate_localized_description(:sortition_additional_info, skip_injection: skip_injection) }
34
- selected_proposals { create_list(:proposal, target_items, component: decidim_proposals_component, skip_injection: skip_injection).pluck(:id) }
27
+ witnesses { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
28
+ additional_info { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
29
+ selected_proposals { create_list(:proposal, target_items, component: decidim_proposals_component).pluck(:id) }
35
30
  candidate_proposals { selected_proposals }
36
31
 
37
32
  trait :cancelled do
38
33
  cancelled_on { Time.now.utc }
39
- cancel_reason { generate_localized_description(:sortition_cancel_reason, skip_injection: skip_injection) }
40
- cancelled_by_user { create(:user, :admin, organization: component.organization, skip_injection: skip_injection) if component }
34
+ cancel_reason { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
35
+ cancelled_by_user { create(:user, :admin, organization: component.organization) if component }
41
36
  end
42
37
  end
43
38
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Sortitions
5
5
  def self.version
6
- "0.27.6"
6
+ "0.28.0.rc4"
7
7
  end
8
8
  end
9
9
  end