decidim-assemblies 0.23.6 → 0.24.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/assemblies/assembly_m_cell.rb +2 -0
  3. data/app/cells/decidim/assemblies/statistic/show.erb +9 -0
  4. data/app/cells/decidim/assemblies/statistic_cell.rb +20 -0
  5. data/app/cells/decidim/assemblies/statistics/show.erb +17 -0
  6. data/app/cells/decidim/assemblies/statistics_cell.rb +18 -0
  7. data/app/commands/decidim/assemblies/admin/create_assembly.rb +1 -0
  8. data/app/commands/decidim/assemblies/admin/update_assembly.rb +2 -1
  9. data/app/controllers/decidim/assemblies/admin/imports_controller.rb +14 -0
  10. data/app/controllers/decidim/assemblies/admin/moderations/reports_controller.rb +14 -0
  11. data/app/controllers/decidim/assemblies/assemblies_controller.rb +1 -1
  12. data/app/forms/decidim/assemblies/admin/assembly_form.rb +1 -0
  13. data/app/helpers/decidim/assemblies/admin/assemblies_admin_menu_helper.rb +15 -0
  14. data/app/models/decidim/assembly.rb +3 -3
  15. data/app/presenters/decidim/assemblies/assembly_stats_presenter.rb +35 -25
  16. data/app/queries/decidim/assemblies/organization_assemblies.rb +1 -1
  17. data/app/queries/decidim/assemblies/organization_published_assemblies.rb +1 -1
  18. data/app/serializers/decidim/assemblies/assembly_serializer.rb +1 -0
  19. data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +4 -0
  20. data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +11 -1
  21. data/app/views/decidim/assemblies/admin/assemblies_types/index.html.erb +1 -1
  22. data/app/views/decidim/assemblies/assemblies/show.html.erb +1 -1
  23. data/app/views/layouts/decidim/admin/assemblies.html.erb +2 -20
  24. data/app/views/layouts/decidim/admin/assembly.html.erb +2 -1
  25. data/config/locales/ar.yml +0 -1
  26. data/config/locales/ca.yml +1 -4
  27. data/config/locales/cs.yml +11 -5
  28. data/config/locales/de.yml +9 -3
  29. data/config/locales/el.yml +0 -4
  30. data/config/locales/en.yml +9 -3
  31. data/config/locales/es-MX.yml +0 -4
  32. data/config/locales/es-PY.yml +0 -4
  33. data/config/locales/es.yml +0 -4
  34. data/config/locales/eu.yml +0 -1
  35. data/config/locales/fi-plain.yml +9 -3
  36. data/config/locales/fi.yml +9 -3
  37. data/config/locales/fr-CA.yml +9 -3
  38. data/config/locales/fr.yml +9 -3
  39. data/config/locales/gl.yml +0 -57
  40. data/config/locales/hu.yml +0 -4
  41. data/config/locales/id-ID.yml +0 -1
  42. data/config/locales/is-IS.yml +0 -1
  43. data/config/locales/it.yml +0 -4
  44. data/config/locales/ja.yml +0 -4
  45. data/config/locales/lv.yml +0 -4
  46. data/config/locales/nl.yml +9 -3
  47. data/config/locales/no.yml +0 -4
  48. data/config/locales/pl.yml +16 -10
  49. data/config/locales/pt-BR.yml +0 -1
  50. data/config/locales/pt.yml +0 -4
  51. data/config/locales/ro-RO.yml +101 -135
  52. data/config/locales/ru.yml +1 -2
  53. data/config/locales/sk.yml +0 -3
  54. data/config/locales/sl.yml +0 -1
  55. data/config/locales/sr-CS.yml +0 -3
  56. data/config/locales/sv.yml +1 -7
  57. data/config/locales/tr-TR.yml +0 -4
  58. data/config/locales/uk.yml +1 -2
  59. data/config/locales/zh-CN.yml +0 -4
  60. data/db/migrate/20210204152393_add_weight_field_to_assembly.rb +7 -0
  61. data/lib/decidim/api/assemblies_type_type.rb +16 -0
  62. data/lib/decidim/api/assembly_member_type.rb +28 -0
  63. data/lib/decidim/api/assembly_type.rb +64 -0
  64. data/lib/decidim/assemblies/admin_engine.rb +31 -1
  65. data/lib/decidim/assemblies/api.rb +9 -0
  66. data/lib/decidim/assemblies/engine.rb +3 -5
  67. data/lib/decidim/assemblies/participatory_space.rb +38 -38
  68. data/lib/decidim/assemblies/query_extensions.rb +39 -20
  69. data/lib/decidim/assemblies/test/factories.rb +5 -4
  70. data/lib/decidim/assemblies/version.rb +1 -1
  71. data/lib/decidim/assemblies.rb +1 -0
  72. metadata +24 -16
  73. data/app/types/decidim/assemblies/assemblies_type_type.rb +0 -17
  74. data/app/types/decidim/assemblies/assembly_member_type.rb +0 -29
  75. data/app/types/decidim/assemblies/assembly_type.rb +0 -67
  76. data/app/views/decidim/assemblies/assemblies/_statistics.html.erb +0 -10
@@ -129,7 +129,6 @@ sk:
129
129
  admin_log:
130
130
  assembly_type:
131
131
  create: "%{user_name} vytvoril %{resource_name} nový typ zhromaždenia"
132
- delete: "%{user_name} odstránil %{resource_name} používateľa z typu zhromaždenia %{space_name}"
133
132
  publish: "%{user_name} vytvoril nový typ zhromaždenia %{resource_name}"
134
133
  unpublish: "%{user_name} zrušil publikovanie typu zhromaždenia %{resource_name}"
135
134
  update: "%{user_name} aktualizoval typ zhromaždenia %{resource_name}"
@@ -163,8 +162,6 @@ sk:
163
162
  home:
164
163
  hero:
165
164
  participate_title: Podieľajte sa na procesoch platformy
166
- sub_hero:
167
- register_title: Vytvorte si účet na platforme
168
165
  participatory_processes:
169
166
  pages:
170
167
  home:
@@ -238,7 +238,6 @@ sl:
238
238
  assemblies_count: Združbe
239
239
  comments_count: Komentarji
240
240
  debates_count: Debate
241
- headline: Dejavnost
242
241
  meetings_count: Sestanki
243
242
  orders_count: Podpora
244
243
  pages_count: Strani
@@ -25,7 +25,6 @@ sr:
25
25
  admin_log:
26
26
  assembly_type:
27
27
  create: "%{user_name} je stvorio tip veća %{resource_name}"
28
- delete: "%{user_name} je uklonio člana %{resource_name} iz tipa veća %{space_name}"
29
28
  publish: "%{user_name} je objavio tip veća %{resource_name}"
30
29
  unpublish: "%{user_name} je odustao od objavljivanja tipa veća %{resource_name}"
31
30
  update: "%{user_name} je ažurirao tip veća %{resource_name}"
@@ -64,8 +63,6 @@ sr:
64
63
  home:
65
64
  hero:
66
65
  participate_title: Učestvujte u procesima platforme
67
- sub_hero:
68
- register_title: Registrujte se na platformu
69
66
  participatory_processes:
70
67
  pages:
71
68
  home:
@@ -1,8 +1,6 @@
1
1
  sv:
2
2
  activemodel:
3
3
  attributes:
4
- assemblies_setting:
5
- enable_organization_chart: Aktivera organisationskarta
6
4
  assembly:
7
5
  area_id: Område
8
6
  assembly_type: Typ av grupp
@@ -52,6 +50,7 @@ sv:
52
50
  target: Vem deltar
53
51
  title: Titel
54
52
  twitter: Twitter
53
+ weight: Vikt
55
54
  youtube: YouTube
56
55
  assembly_member:
57
56
  birthday: Födelsedag
@@ -62,7 +61,6 @@ sv:
62
61
  full_name: Fullständigt namn
63
62
  gender: Kön
64
63
  position: Befattning
65
- user_id: Användare
66
64
  assembly_user_role:
67
65
  email: E-post
68
66
  name: Namn
@@ -249,7 +247,6 @@ sv:
249
247
  update: "%{user_name} uppdaterade inställningarna för församlingarna"
250
248
  assembly_type:
251
249
  create: "%{user_name} skapade grupptypen %{resource_name}"
252
- delete: "%{user_name} tog bort medlemmen %{resource_name} från grupptypen %{space_name}"
253
250
  publish: "%{user_name} publicerade grupptypen %{resource_name}"
254
251
  unpublish: "%{user_name} avpublicerade grupptypen %{resource_name}"
255
252
  update: "%{user_name} uppdaterade grupptypen %{resource_name}"
@@ -386,7 +383,6 @@ sv:
386
383
  comments_count: Kommentarer
387
384
  debates_count: Debatter
388
385
  endorsements_count: Instämmanden
389
- headline: Aktivitet
390
386
  meetings_count: Möten
391
387
  orders_count: Stöd
392
388
  pages_count: Sidor
@@ -443,8 +439,6 @@ sv:
443
439
  home:
444
440
  hero:
445
441
  participate_title: Delta i plattformens dialoger
446
- sub_hero:
447
- register_title: Skapa ett konto på plattformen genom att logga in
448
442
  participatory_processes:
449
443
  pages:
450
444
  home:
@@ -249,7 +249,6 @@ tr:
249
249
  update: "%{user_name}, kurul ayarlarını güncelledi"
250
250
  assembly_type:
251
251
  create: "%{user_name},%{resource_name} kurul türünü oluşturdu"
252
- delete: "%{user_name},%{resource_name} üyesini %{space_name} kurul türünden kaldırdı"
253
252
  publish: "%{user_name}, %{resource_name} kurul türünü yayınladı"
254
253
  unpublish: "%{user_name}, %{resource_name} kurul türünü yayından kaldırdı"
255
254
  update: "%{user_name}, %{resource_name} kurul türünü güncelledi"
@@ -386,7 +385,6 @@ tr:
386
385
  comments_count: Yorumlar
387
386
  debates_count: Tartışmalar
388
387
  endorsements_count: Onaylar
389
- headline: Aktivite
390
388
  meetings_count: Toplantılar
391
389
  orders_count: Destekler
392
390
  pages_count: Sayfalar
@@ -443,8 +441,6 @@ tr:
443
441
  home:
444
442
  hero:
445
443
  participate_title: Platformun süreçlerine katılın
446
- sub_hero:
447
- register_title: Platformda bir hesap oluşturmak için kaydolun
448
444
  participatory_processes:
449
445
  pages:
450
446
  home:
@@ -307,11 +307,10 @@ uk:
307
307
  target: Хто бере участь
308
308
  statistics:
309
309
  answers_count: Відповідей
310
- assemblies_count: Збори
310
+ assemblies_count: Зборів
311
311
  comments_count: Коментарів
312
312
  debates_count: Обговорень
313
313
  endorsements_count: Проявів підтримки
314
- headline: Діяльність
315
314
  meetings_count: Зустрічей
316
315
  orders_count: Голосів
317
316
  pages_count: Сторінок
@@ -243,7 +243,6 @@ zh-CN:
243
243
  update: "%{user_name} 更新了程序集设置"
244
244
  assembly_type:
245
245
  create: "%{user_name} 创建了 %{resource_name} 组装类型"
246
- delete: "%{user_name} 将 %{resource_name} 成员从 %{space_name} 组装类型中移除"
247
246
  publish: "%{user_name} 发布了 %{resource_name} 组装类型"
248
247
  unpublish: "%{user_name} 未发布的 %{resource_name} 组装类型"
249
248
  update: "%{user_name} 更新了 %{resource_name} 装配体类型"
@@ -377,7 +376,6 @@ zh-CN:
377
376
  comments_count: 评论
378
377
  debates_count: 辩论
379
378
  endorsements_count: 授权
380
- headline: 活动
381
379
  meetings_count: 会议
382
380
  orders_count: 支持
383
381
  pages_count: 页 次
@@ -434,8 +432,6 @@ zh-CN:
434
432
  home:
435
433
  hero:
436
434
  participate_title: 参与平台进程
437
- sub_hero:
438
- register_title: 注册在平台上创建帐户
439
435
  participatory_processes:
440
436
  pages:
441
437
  home:
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddWeightFieldToAssembly < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_assemblies, :weight, :integer, null: false, default: true
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ # This type represents an AssembliesType.
6
+ class AssembliesTypeType < Decidim::Api::Types::BaseObject
7
+ description "An assemblies type"
8
+
9
+ field :id, GraphQL::Types::ID, "The assemblies type's unique ID", null: false
10
+ field :title, Decidim::Core::TranslatedFieldType, "The title of this assemblies type.", null: false
11
+ field :created_at, Decidim::Core::DateTimeType, "The time this assemblies type was created", null: false
12
+ field :updated_at, Decidim::Core::DateTimeType, "The time this assemblies type was updated", null: false
13
+ field :assemblies, [Decidim::Assemblies::AssemblyType, { null: true }], "Assemblies with this assemblies type", null: false
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ # This type represents a assembly.
6
+ class AssemblyMemberType < Decidim::Api::Types::BaseObject
7
+ description "An assembly member"
8
+
9
+ field :id, GraphQL::Types::ID, "Internal ID of the member", null: false
10
+ field :full_name, GraphQL::Types::String, "Full name of the member", null: true
11
+ field :position, GraphQL::Types::String, "Position of the member in the assembly", null: true
12
+
13
+ field :user, Decidim::Core::UserType, "The corresponding decidim user", null: true
14
+
15
+ field :created_at, Decidim::Core::DateTimeType, "The time this member was created", null: true
16
+ field :updated_at, Decidim::Core::DateTimeType, "The time this member was updated", null: true
17
+
18
+ field :weight, GraphQL::Types::Int, "Order of appearance in which it should be represented", null: true
19
+ field :gender, GraphQL::Types::String, "Gender of the member", null: true
20
+ # field :birthday, Decidim::Core::DateType, "Birthday date of the member" # non-public currently
21
+ field :birthplace, GraphQL::Types::String, "Birthplace of the member", null: true
22
+ field :designation_date, Decidim::Core::DateType, "Date of designation of the member", null: true
23
+ # field :designationMode, types.String, "Mode in which the member was designated", property: :designation_mode # non-public currently
24
+ field :position_other, GraphQL::Types::String, "Custom position name", null: true
25
+ field :ceased_date, Decidim::Core::DateType, "Date of cease for the member", null: true
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ # This type represents a assembly.
6
+ class AssemblyType < Decidim::Api::Types::BaseObject
7
+ implements Decidim::Core::ParticipatorySpaceInterface
8
+ implements Decidim::Core::AttachableInterface
9
+ implements Decidim::Core::ParticipatorySpaceResourceableInterface
10
+
11
+ description "An assembly"
12
+
13
+ field :id, ID, "The internal ID for this assembly", null: false
14
+ field :subtitle, Decidim::Core::TranslatedFieldType, "The subtitle of this assembly", null: true
15
+ field :short_description, Decidim::Core::TranslatedFieldType, "The sort description of this assembly", null: true
16
+ field :description, Decidim::Core::TranslatedFieldType, "The description of this assembly", null: true
17
+ field :slug, String, "The slug of this assembly", null: false
18
+ field :hashtag, String, "The hashtag for this assembly", null: true
19
+ field :created_at, Decidim::Core::DateTimeType, "The time this assembly was created", null: false
20
+ field :updated_at, Decidim::Core::DateTimeType, "The time this assembly was updated", null: false
21
+ field :published_at, Decidim::Core::DateTimeType, "The time this assembly was published", null: false
22
+ field :reference, String, "Reference for this assembly", null: false
23
+ field :categories, [Decidim::Core::CategoryType, { null: true }], "Categories for this assembly", null: false
24
+
25
+ field :hero_image, String, "The hero image for this assembly", null: true
26
+ field :banner_image, String, "The banner image for this assembly", null: true
27
+ field :promoted, Boolean, "If this assembly is promoted (therefore in the homepage)", null: true
28
+ field :developer_group, Decidim::Core::TranslatedFieldType, "The promoter group of this assembly", null: true
29
+ field :meta_scope, Decidim::Core::TranslatedFieldType, "The scope metadata of this assembly", null: true
30
+ field :local_area, Decidim::Core::TranslatedFieldType, "The organization area of this assembly", null: true
31
+ field :target, Decidim::Core::TranslatedFieldType, "Who participates in this assembly", null: true
32
+ field :participatory_scope, Decidim::Core::TranslatedFieldType, "What is decided on this assembly", null: true
33
+ field :participatory_structure, Decidim::Core::TranslatedFieldType, "How it is decided on this assembly", null: true
34
+ field :show_statistics, Boolean, "If this assembly should show statistics", null: true
35
+ field :scopes_enabled, Boolean, "If this assembly has scopes enabled", null: true
36
+ field :private_space, Boolean, "If this assembly is a private space", null: true
37
+ field :area, Decidim::Core::AreaApiType, "Area of this assembly", null: true
38
+ field :parent, Decidim::Assemblies::AssemblyType, "The parent assembly of this assembly", null: true
39
+ field :parents_path, String, "Assembly hierarchy representation", null: true
40
+ field :children_count, Integer, "Number of children assemblies", null: true
41
+ field :purpose_of_action, Decidim::Core::TranslatedFieldType, "Purpose of action", null: true
42
+ field :composition, Decidim::Core::TranslatedFieldType, "Composition of this assembly", null: true
43
+ field :assembly_type, Decidim::Assemblies::AssembliesTypeType, "Type of the assembly", null: true
44
+ field :creation_date, Decidim::Core::DateType, "Creation date of this assembly", null: true
45
+ field :created_by, String, "The creator of this assembly", null: true
46
+ field :created_by_other, Decidim::Core::TranslatedFieldType, "Custom creator", null: true
47
+ field :duration, Decidim::Core::DateType, "Duration of this assembly", null: true
48
+ field :included_at, Decidim::Core::DateType, "Included at", null: true
49
+ field :closing_date, Decidim::Core::DateType, "Closing date of the assembly", null: true
50
+ field :closing_date_reason, Decidim::Core::TranslatedFieldType, "Closing date reason of this assembly", null: true
51
+ field :internal_organisation, Decidim::Core::TranslatedFieldType, "Internal organisation of this assembly", null: true
52
+ field :is_transparent, Boolean, "If this assembly is transparent", null: true
53
+ field :special_features, Decidim::Core::TranslatedFieldType, "Special features of this assembly", null: true
54
+ field :twitter_handler, String, "Twitter handler", null: true
55
+ field :instagram_handler, String, "Instagram handler", null: true
56
+ field :facebook_handler, String, "Facebook handler", null: true
57
+ field :youtube_handler, String, "Youtube handler", null: true
58
+ field :github_handler, String, "Github handler", null: true
59
+
60
+ field :members, [Decidim::Assemblies::AssemblyMemberType, { null: true }], "Members of this assembly", null: false
61
+ field :children, [Decidim::Assemblies::AssemblyType, { null: true }], "Childrens of this assembly", null: false
62
+ end
63
+ end
64
+ end
@@ -50,6 +50,7 @@ module Decidim
50
50
  get :share
51
51
  end
52
52
  resources :exports, only: :create
53
+ resources :imports, only: [:new, :create]
53
54
  end
54
55
 
55
56
  resources :moderations do
@@ -58,6 +59,7 @@ module Decidim
58
59
  put :hide
59
60
  put :unhide
60
61
  end
62
+ resources :reports, controller: "moderations/reports", only: [:index, :show]
61
63
  end
62
64
 
63
65
  resources :participatory_space_private_users, controller: "participatory_space_private_users" do
@@ -81,6 +83,12 @@ module Decidim
81
83
  end
82
84
  end
83
85
 
86
+ initializer "decidim_assemblies.action_controller" do |_app|
87
+ ActiveSupport.on_load :action_controller do
88
+ helper Decidim::Assemblies::Admin::AssembliesAdminMenuHelper if respond_to?(:helper)
89
+ end
90
+ end
91
+
84
92
  initializer "decidim_assemblies.admin_assets" do |app|
85
93
  app.config.assets.precompile += %w(admin/decidim_assemblies_manifest.js)
86
94
  end
@@ -90,11 +98,33 @@ module Decidim
90
98
  menu.item I18n.t("menu.assemblies", scope: "decidim.admin"),
91
99
  decidim_admin_assemblies.assemblies_path,
92
100
  icon_name: "dial",
93
- position: 3.5,
101
+ position: 2.2,
94
102
  active: :inclusive,
95
103
  if: allowed_to?(:enter, :space_area, space_name: :assemblies)
96
104
  end
97
105
  end
106
+
107
+ initializer "decidim_assemblies.admin_assemblies_menu" do
108
+ Decidim.menu :admin_assemblies_menu do |menu|
109
+ menu.item I18n.t("menu.assemblies", scope: "decidim.admin"),
110
+ decidim_admin_assemblies.assemblies_path,
111
+ position: 1.0,
112
+ active: is_active_link?(decidim_admin_assemblies.assemblies_path),
113
+ if: allowed_to?(:read, :assembly_list)
114
+
115
+ menu.item I18n.t("menu.assemblies_types", scope: "decidim.admin"),
116
+ decidim_admin_assemblies.assemblies_types_path,
117
+ active: is_active_link?(decidim_admin_assemblies.assemblies_types_path),
118
+ position: 1.1,
119
+ if: allowed_to?(:manage, :assemblies_type)
120
+
121
+ menu.item I18n.t("menu.assemblies_settings", scope: "decidim.admin"),
122
+ decidim_admin_assemblies.edit_assemblies_settings_path,
123
+ active: is_active_link?(decidim_admin_assemblies.edit_assemblies_settings_path),
124
+ position: 1.3,
125
+ if: allowed_to?(:read, :assemblies_setting)
126
+ end
127
+ end
98
128
  end
99
129
  end
100
130
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ autoload :AssemblyType, "decidim/api/assembly_type"
6
+ autoload :AssemblyMemberType, "decidim/api/assembly_member_type"
7
+ autoload :AssembliesTypeType, "decidim/api/assemblies_type_type"
8
+ end
9
+ end
@@ -58,8 +58,8 @@ module Decidim
58
58
  Decidim.menu :menu do |menu|
59
59
  menu.item I18n.t("menu.assemblies", scope: "decidim"),
60
60
  decidim_assemblies.assemblies_path,
61
- position: 2.5,
62
- if: Decidim::Assembly.where(organization: current_organization).published.any?,
61
+ position: 2.2,
62
+ if: OrganizationPublishedAssemblies.new(current_organization, current_user).any?,
63
63
  active: :inclusive
64
64
  end
65
65
  end
@@ -111,9 +111,7 @@ module Decidim
111
111
  end
112
112
 
113
113
  initializer "decidim_assemblies.query_extensions" do
114
- Decidim::Api::QueryType.define do
115
- QueryExtensions.define(self)
116
- end
114
+ Decidim::Api::QueryType.include Decidim::Assemblies::QueryExtensions
117
115
  end
118
116
  end
119
117
  end
@@ -55,15 +55,15 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
55
55
 
56
56
  2.times do |n|
57
57
  params = {
58
- title: Decidim::Faker::Localized.sentence(5),
59
- slug: Faker::Internet.unique.slug(nil, "-"),
60
- subtitle: Decidim::Faker::Localized.sentence(2),
58
+ title: Decidim::Faker::Localized.sentence(word_count: 5),
59
+ slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
60
+ subtitle: Decidim::Faker::Localized.sentence(word_count: 2),
61
61
  hashtag: "##{Faker::Lorem.word}",
62
62
  short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
63
- Decidim::Faker::Localized.sentence(3)
63
+ Decidim::Faker::Localized.sentence(word_count: 3)
64
64
  end,
65
65
  description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
66
- Decidim::Faker::Localized.paragraph(3)
66
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
67
67
  end,
68
68
  organization: organization,
69
69
  hero_image: File.new(File.join(seeds_root, "city.jpeg")), # Keep after organization
@@ -71,17 +71,17 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
71
71
  promoted: true,
72
72
  published_at: 2.weeks.ago,
73
73
  meta_scope: Decidim::Faker::Localized.word,
74
- developer_group: Decidim::Faker::Localized.sentence(1),
75
- local_area: Decidim::Faker::Localized.sentence(2),
76
- target: Decidim::Faker::Localized.sentence(3),
77
- participatory_scope: Decidim::Faker::Localized.sentence(1),
78
- participatory_structure: Decidim::Faker::Localized.sentence(2),
74
+ developer_group: Decidim::Faker::Localized.sentence(word_count: 1),
75
+ local_area: Decidim::Faker::Localized.sentence(word_count: 2),
76
+ target: Decidim::Faker::Localized.sentence(word_count: 3),
77
+ participatory_scope: Decidim::Faker::Localized.sentence(word_count: 1),
78
+ participatory_structure: Decidim::Faker::Localized.sentence(word_count: 2),
79
79
  scope: n.positive? ? Decidim::Scope.reorder(Arel.sql("RANDOM()")).first : nil,
80
80
  purpose_of_action: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
81
- Decidim::Faker::Localized.paragraph(3)
81
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
82
82
  end,
83
83
  composition: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
84
- Decidim::Faker::Localized.paragraph(3)
84
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
85
85
  end,
86
86
  assembly_type: Decidim::AssembliesType.create!(organization: organization, title: Decidim::Faker::Localized.word),
87
87
  creation_date: 1.day.from_now,
@@ -90,13 +90,13 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
90
90
  duration: 2.days.from_now,
91
91
  included_at: 5.days.from_now,
92
92
  closing_date: 5.days.from_now,
93
- closing_date_reason: Decidim::Faker::Localized.sentence(3),
93
+ closing_date_reason: Decidim::Faker::Localized.sentence(word_count: 3),
94
94
  internal_organisation: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
95
- Decidim::Faker::Localized.paragraph(3)
95
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
96
96
  end,
97
97
  is_transparent: true,
98
98
  special_features: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
99
- Decidim::Faker::Localized.paragraph(3)
99
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
100
100
  end,
101
101
  twitter_handler: Faker::Lorem.word,
102
102
  facebook_handler: Faker::Lorem.word,
@@ -138,15 +138,15 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
138
138
  end
139
139
 
140
140
  child = Decidim::Assembly.create!(
141
- title: Decidim::Faker::Localized.sentence(5),
142
- slug: Faker::Internet.unique.slug(nil, "-"),
143
- subtitle: Decidim::Faker::Localized.sentence(2),
141
+ title: Decidim::Faker::Localized.sentence(word_count: 5),
142
+ slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
143
+ subtitle: Decidim::Faker::Localized.sentence(word_count: 2),
144
144
  hashtag: "##{Faker::Lorem.word}",
145
145
  short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
146
- Decidim::Faker::Localized.sentence(3)
146
+ Decidim::Faker::Localized.sentence(word_count: 3)
147
147
  end,
148
148
  description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
149
- Decidim::Faker::Localized.paragraph(3)
149
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
150
150
  end,
151
151
  organization: organization,
152
152
  hero_image: File.new(File.join(seeds_root, "city.jpeg")), # Keep after organization
@@ -154,11 +154,11 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
154
154
  promoted: true,
155
155
  published_at: 2.weeks.ago,
156
156
  meta_scope: Decidim::Faker::Localized.word,
157
- developer_group: Decidim::Faker::Localized.sentence(1),
158
- local_area: Decidim::Faker::Localized.sentence(2),
159
- target: Decidim::Faker::Localized.sentence(3),
160
- participatory_scope: Decidim::Faker::Localized.sentence(1),
161
- participatory_structure: Decidim::Faker::Localized.sentence(2),
157
+ developer_group: Decidim::Faker::Localized.sentence(word_count: 1),
158
+ local_area: Decidim::Faker::Localized.sentence(word_count: 2),
159
+ target: Decidim::Faker::Localized.sentence(word_count: 3),
160
+ participatory_scope: Decidim::Faker::Localized.sentence(word_count: 1),
161
+ participatory_structure: Decidim::Faker::Localized.sentence(word_count: 2),
162
162
  scope: n.positive? ? Decidim::Scope.reorder(Arel.sql("RANDOM()")).first : nil,
163
163
  parent: assembly
164
164
  )
@@ -167,37 +167,37 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
167
167
  current_assembly.add_to_index_as_search_resource
168
168
  attachment_collection = Decidim::AttachmentCollection.create!(
169
169
  name: Decidim::Faker::Localized.word,
170
- description: Decidim::Faker::Localized.sentence(5),
170
+ description: Decidim::Faker::Localized.sentence(word_count: 5),
171
171
  collection_for: current_assembly
172
172
  )
173
173
 
174
174
  Decidim::Attachment.create!(
175
- title: Decidim::Faker::Localized.sentence(2),
176
- description: Decidim::Faker::Localized.sentence(5),
175
+ title: Decidim::Faker::Localized.sentence(word_count: 2),
176
+ description: Decidim::Faker::Localized.sentence(word_count: 5),
177
177
  attachment_collection: attachment_collection,
178
178
  attached_to: current_assembly,
179
179
  file: File.new(File.join(seeds_root, "Exampledocument.pdf")) # Keep after attached_to
180
180
  )
181
181
 
182
182
  Decidim::Attachment.create!(
183
- title: Decidim::Faker::Localized.sentence(2),
184
- description: Decidim::Faker::Localized.sentence(5),
183
+ title: Decidim::Faker::Localized.sentence(word_count: 2),
184
+ description: Decidim::Faker::Localized.sentence(word_count: 5),
185
185
  attached_to: current_assembly,
186
186
  file: File.new(File.join(seeds_root, "city.jpeg")) # Keep after attached_to
187
187
  )
188
188
 
189
189
  Decidim::Attachment.create!(
190
- title: Decidim::Faker::Localized.sentence(2),
191
- description: Decidim::Faker::Localized.sentence(5),
190
+ title: Decidim::Faker::Localized.sentence(word_count: 2),
191
+ description: Decidim::Faker::Localized.sentence(word_count: 5),
192
192
  attached_to: current_assembly,
193
193
  file: File.new(File.join(seeds_root, "Exampledocument.pdf")) # Keep after attached_to
194
194
  )
195
195
 
196
196
  2.times do
197
197
  Decidim::Category.create!(
198
- name: Decidim::Faker::Localized.sentence(5),
198
+ name: Decidim::Faker::Localized.sentence(word_count: 5),
199
199
  description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
200
- Decidim::Faker::Localized.paragraph(3)
200
+ Decidim::Faker::Localized.paragraph(sentence_count: 3)
201
201
  end,
202
202
  participatory_space: current_assembly
203
203
  )
@@ -207,9 +207,9 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
207
207
  Decidim::AssemblyMember.create!(
208
208
  full_name: Faker::Name.name,
209
209
  gender: Faker::Lorem.word,
210
- birthday: Faker::Date.birthday(18, 65),
210
+ birthday: Faker::Date.birthday(min_age: 18, max_age: 65),
211
211
  birthplace: Faker::Demographic.demonym,
212
- designation_date: Faker::Date.between(1.year.ago, 1.month.ago),
212
+ designation_date: Faker::Date.between(from: 1.year.ago, to: 1.month.ago),
213
213
  designation_mode: Faker::Lorem.word,
214
214
  position: position,
215
215
  position_other: position == "other" ? Faker::Job.position : nil,
@@ -220,9 +220,9 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
220
220
  Decidim::AssemblyMember.create!(
221
221
  user: current_assembly.organization.users.first,
222
222
  gender: Faker::Lorem.word,
223
- birthday: Faker::Date.birthday(18, 65),
223
+ birthday: Faker::Date.birthday(min_age: 18, max_age: 65),
224
224
  birthplace: Faker::Demographic.demonym,
225
- designation_date: Faker::Date.between(1.year.ago, 1.month.ago),
225
+ designation_date: Faker::Date.between(from: 1.year.ago, to: 1.month.ago),
226
226
  designation_mode: Faker::Lorem.word,
227
227
  position: "other",
228
228
  position_other: Faker::Job.position,
@@ -10,31 +10,50 @@ module Decidim
10
10
  # type - A GraphQL::BaseType to extend.
11
11
  #
12
12
  # Returns nothing.
13
- def self.define(type)
14
- type.field :assembliesTypes do
15
- type !types[AssembliesTypeType]
16
- description "Lists all assemblies types"
13
+ def self.included(type)
14
+ type.field :assemblies_types, [AssembliesTypeType], null: false, description: "Lists all assemblies types"
17
15
 
18
- resolve lambda { |_obj, _args, ctx|
19
- Decidim::AssembliesType.where(
20
- organization: ctx[:current_organization]
21
- )
22
- }
16
+ type.field :assemblies_type, AssembliesTypeType, null: true, description: "Finds an assemblies type group" do
17
+ argument :id, GraphQL::Types::ID, description: "The ID of the Assemblies type", required: true
18
+ end
19
+ type.field :assemblies,
20
+ [Decidim::Assemblies::AssemblyType],
21
+ null: true,
22
+ description: "Lists all assemblies" do
23
+ argument :filter, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputFilter, "This argument let's you filter the results", required: false
24
+ argument :order, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputSort, "This argument let's you order the results", required: false
23
25
  end
24
26
 
25
- type.field :assembliesType do
26
- type AssembliesTypeType
27
- description "Finds an assemblies type group"
28
- argument :id, !types.ID, "The ID of the Assemblies type"
29
-
30
- resolve lambda { |_obj, args, ctx|
31
- Decidim::AssembliesType.find_by(
32
- organization: ctx[:current_organization],
33
- id: args[:id]
34
- )
35
- }
27
+ type.field :assembly,
28
+ Decidim::Assemblies::AssemblyType,
29
+ null: true,
30
+ description: "Finds a assembly" do
31
+ argument :id, GraphQL::Types::ID, "The ID of the participatory space", required: false
36
32
  end
37
33
  end
34
+
35
+ def assemblies_types(*)
36
+ Decidim::AssembliesType.where(
37
+ organization: context[:current_organization]
38
+ )
39
+ end
40
+
41
+ def assemblies_type(id:)
42
+ Decidim::AssembliesType.find_by(
43
+ organization: context[:current_organization],
44
+ id: id
45
+ )
46
+ end
47
+
48
+ def assemblies(filter: {}, order: {})
49
+ manifest = Decidim.participatory_space_manifests.select { |m| m.name == :assemblies }.first
50
+ Decidim::Core::ParticipatorySpaceListBase.new(manifest: manifest).call(object, { filter: filter, order: order }, context)
51
+ end
52
+
53
+ def assembly(id: nil)
54
+ manifest = Decidim.participatory_space_manifests.select { |m| m.name == :assemblies }.first
55
+ Decidim::Core::ParticipatorySpaceFinderBase.new(manifest: manifest).call(object, { id: id }, context)
56
+ end
38
57
  end
39
58
  end
40
59
  end
@@ -5,7 +5,7 @@ require "decidim/dev"
5
5
 
6
6
  FactoryBot.define do
7
7
  sequence(:assembly_slug) do |n|
8
- "#{Faker::Internet.slug(nil, "-")}-#{n}"
8
+ "#{Decidim::Faker::Internet.slug(words: nil, glue: "-")}-#{n}"
9
9
  end
10
10
 
11
11
  factory :assemblies_setting, class: "Decidim::AssembliesSetting" do
@@ -53,6 +53,7 @@ FactoryBot.define do
53
53
  instagram_handler { "others" }
54
54
  youtube_handler { "others" }
55
55
  github_handler { "others" }
56
+ weight { 1 }
56
57
 
57
58
  trait :with_type do
58
59
  assembly_type { create :assemblies_type, organization: organization }
@@ -162,14 +163,14 @@ FactoryBot.define do
162
163
 
163
164
  full_name { Faker::Name.name }
164
165
  gender { Faker::Lorem.word }
165
- birthday { Faker::Date.birthday(18, 65) }
166
+ birthday { Faker::Date.birthday(min_age: 18, max_age: 65) }
166
167
  birthplace { Faker::Lorem.word }
167
168
  position { Decidim::AssemblyMember::POSITIONS.first }
168
- designation_date { Faker::Date.between(1.year.ago, 1.month.ago) }
169
+ designation_date { Faker::Date.between(from: 1.year.ago, to: 1.month.ago) }
169
170
  designation_mode { Faker::Lorem.word }
170
171
 
171
172
  trait :ceased do
172
- ceased_date { Faker::Date.between(1.day.ago, 5.days.ago) }
173
+ ceased_date { Faker::Date.between(from: 1.day.ago, to: 5.days.ago) }
173
174
  end
174
175
 
175
176
  trait :with_user do