decidim-assemblies 0.28.1 → 0.29.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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_cell.rb +0 -4
  3. data/app/cells/decidim/assemblies/content_blocks/stats_cell.rb +1 -1
  4. data/app/commands/decidim/assemblies/admin/create_assemblies_type.rb +3 -31
  5. data/app/commands/decidim/assemblies/admin/create_assembly.rb +30 -89
  6. data/app/commands/decidim/assemblies/admin/create_assembly_member.rb +14 -66
  7. data/app/commands/decidim/assemblies/admin/destroy_assembly_member.rb +5 -37
  8. data/app/commands/decidim/assemblies/admin/import_assembly.rb +1 -1
  9. data/app/commands/decidim/assemblies/admin/update_assemblies_type.rb +2 -35
  10. data/app/commands/decidim/assemblies/admin/update_assembly.rb +22 -99
  11. data/app/commands/decidim/assemblies/admin/update_assembly_member.rb +8 -69
  12. data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +1 -1
  13. data/app/controllers/decidim/assemblies/admin/assemblies_types_controller.rb +4 -4
  14. data/app/controllers/decidim/assemblies/admin/assembly_members_controller.rb +1 -1
  15. data/app/controllers/decidim/assemblies/admin/participatory_space_private_users_controller.rb +1 -1
  16. data/app/controllers/decidim/assemblies/admin/participatory_space_private_users_csv_imports_controller.rb +1 -1
  17. data/app/controllers/decidim/assemblies/application_controller.rb +4 -1
  18. data/app/controllers/decidim/assemblies/assemblies_controller.rb +0 -3
  19. data/app/controllers/decidim/assemblies/assembly_members_controller.rb +0 -2
  20. data/app/forms/decidim/assemblies/admin/assembly_form.rb +0 -1
  21. data/app/helpers/decidim/assemblies/assemblies_helper.rb +0 -26
  22. data/app/permissions/decidim/assemblies/permissions.rb +1 -1
  23. data/app/presenters/decidim/assemblies/admin_log/assembly_presenter.rb +0 -1
  24. data/app/serializers/decidim/assemblies/assembly_importer.rb +0 -1
  25. data/app/serializers/decidim/assemblies/assembly_serializer.rb +1 -2
  26. data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +5 -9
  27. data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +2 -0
  28. data/app/views/decidim/assemblies/admin/assembly_members/index.html.erb +1 -1
  29. data/app/views/decidim/assemblies/admin/assembly_user_roles/_form.html.erb +1 -1
  30. data/app/views/decidim/assemblies/admin/assembly_user_roles/index.html.erb +1 -1
  31. data/app/views/decidim/assemblies/assemblies/show.html.erb +21 -17
  32. data/app/views/decidim/assemblies/assembly_members/index.html.erb +2 -1
  33. data/config/locales/ar.yml +0 -7
  34. data/config/locales/bg.yml +441 -4
  35. data/config/locales/ca.yml +2 -7
  36. data/config/locales/cs.yml +2 -7
  37. data/config/locales/de.yml +3 -8
  38. data/config/locales/el.yml +0 -7
  39. data/config/locales/en.yml +3 -8
  40. data/config/locales/es-MX.yml +6 -11
  41. data/config/locales/es-PY.yml +5 -10
  42. data/config/locales/es.yml +6 -11
  43. data/config/locales/eu.yml +3 -8
  44. data/config/locales/fi-plain.yml +2 -7
  45. data/config/locales/fi.yml +2 -7
  46. data/config/locales/fr-CA.yml +3 -8
  47. data/config/locales/fr.yml +3 -8
  48. data/config/locales/ga-IE.yml +0 -3
  49. data/config/locales/gl.yml +0 -7
  50. data/config/locales/he-IL.yml +0 -4
  51. data/config/locales/hu.yml +1 -8
  52. data/config/locales/id-ID.yml +0 -6
  53. data/config/locales/is-IS.yml +0 -4
  54. data/config/locales/it.yml +1 -7
  55. data/config/locales/ja.yml +3 -8
  56. data/config/locales/lb.yml +0 -6
  57. data/config/locales/lt.yml +0 -7
  58. data/config/locales/lv.yml +0 -6
  59. data/config/locales/nl.yml +0 -7
  60. data/config/locales/no.yml +0 -7
  61. data/config/locales/pl.yml +2 -7
  62. data/config/locales/pt-BR.yml +0 -7
  63. data/config/locales/pt.yml +0 -7
  64. data/config/locales/ro-RO.yml +0 -7
  65. data/config/locales/ru.yml +0 -6
  66. data/config/locales/sk.yml +0 -3
  67. data/config/locales/sl.yml +0 -2
  68. data/config/locales/sq-AL.yml +323 -1
  69. data/config/locales/sv.yml +0 -7
  70. data/config/locales/tr-TR.yml +0 -6
  71. data/config/locales/uk.yml +0 -6
  72. data/config/locales/zh-CN.yml +0 -6
  73. data/config/locales/zh-TW.yml +0 -7
  74. data/db/migrate/20240712061153_change_show_statistics_from_decidim_assemblies.rb +11 -0
  75. data/decidim-assemblies.gemspec +1 -1
  76. data/lib/decidim/api/assembly_type.rb +3 -4
  77. data/lib/decidim/assemblies/content_blocks/registry_manager.rb +1 -1
  78. data/lib/decidim/assemblies/engine.rb +1 -0
  79. data/lib/decidim/assemblies/menu.rb +11 -0
  80. data/lib/decidim/assemblies/seeds.rb +1 -11
  81. data/lib/decidim/assemblies/test/factories.rb +0 -1
  82. data/lib/decidim/assemblies/version.rb +1 -1
  83. metadata +20 -21
  84. data/app/commands/decidim/assemblies/admin/destroy_assemblies_type.rb +0 -45
  85. data/app/views/layouts/decidim/assembly.html.erb +0 -18
@@ -5,84 +5,23 @@ module Decidim
5
5
  module Admin
6
6
  # A command with all the business logic when updating an assembly
7
7
  # member in the system.
8
- class UpdateAssemblyMember < Decidim::Command
9
- include ::Decidim::AttachmentAttributesMethods
8
+ class UpdateAssemblyMember < Decidim::Commands::UpdateResource
9
+ fetch_file_attributes :non_user_avatar
10
10
 
11
- # Public: Initializes the command.
12
- #
13
- # form - A form object with the params.
14
- # assembly_member - The AssemblyMember to update
15
- def initialize(form, assembly_member)
16
- @form = form
17
- @assembly_member = assembly_member
18
- end
19
-
20
- # Executes the command. Broadcasts these events:
21
- #
22
- # - :ok when everything is valid.
23
- # - :invalid if the form was not valid and we could not proceed.
24
- #
25
- # Returns nothing.
26
- def call
27
- return broadcast(:invalid) if form.invalid?
28
- return broadcast(:invalid) unless assembly_member
29
-
30
- assembly_member.assign_attributes(attributes)
31
-
32
- if assembly_member.valid?
33
- assembly_member.reload
34
- update_assembly_member!
35
- broadcast(:ok)
36
- else
37
- if assembly_member.errors.include? :non_user_avatar
38
- form.errors.add(
39
- :non_user_avatar,
40
- assembly_member.errors[:non_user_avatar]
41
- )
42
- end
43
-
44
- broadcast(:invalid)
45
- end
46
- end
11
+ fetch_form_attributes :full_name, :gender, :birthday, :birthplace, :ceased_date, :designation_date,
12
+ :position, :position_other, :weight, :user
47
13
 
48
14
  private
49
15
 
50
- attr_reader :form, :assembly_member
51
-
52
- def attributes
53
- form.attributes.slice(
54
- "full_name",
55
- "gender",
56
- "birthday",
57
- "birthplace",
58
- "ceased_date",
59
- "designation_date",
60
- "position",
61
- "position_other",
62
- "weight"
63
- ).symbolize_keys.merge(
64
- user: form.user
65
- ).merge(
66
- attachment_attributes(:non_user_avatar)
67
- )
68
- end
69
-
70
- def update_assembly_member!
71
- log_info = {
16
+ def extra_params
17
+ {
72
18
  resource: {
73
- title: assembly_member.full_name
19
+ title: resource.full_name
74
20
  },
75
21
  participatory_space: {
76
- title: assembly_member.assembly.title
22
+ title: resource.assembly.title
77
23
  }
78
24
  }
79
-
80
- Decidim.traceability.update!(
81
- assembly_member,
82
- form.current_user,
83
- attributes,
84
- log_info
85
- )
86
25
  end
87
26
  end
88
27
  end
@@ -52,7 +52,7 @@ module Decidim
52
52
  assembly_id: current_assembly.id
53
53
  )
54
54
 
55
- UpdateAssembly.call(current_assembly, @form) do
55
+ UpdateAssembly.call(@form, current_assembly) do
56
56
  on(:ok) do |assembly|
57
57
  flash[:notice] = I18n.t("assemblies.update.success", scope: "decidim.admin")
58
58
  redirect_to edit_assembly_path(assembly)
@@ -5,8 +5,8 @@ module Decidim
5
5
  module Admin
6
6
  # Controller used to manage the available assemblies types for the current
7
7
  # organization.
8
- # As this substitues former i18n simple hash we need to keep these i18n keys for migrations
9
- # and rollbakcs. So let i18n-tasks know about:
8
+ # As this substitutes former i18n simple hash we need to keep these i18n keys for migrations
9
+ # and rollbacks. So let i18n-tasks know about:
10
10
  # i18n-tasks-use t('decidim.assemblies.assembly_types.government')
11
11
  # i18n-tasks-use t('decidim.assemblies.assembly_types.commission')
12
12
  # i18n-tasks-use t('decidim.assemblies.assembly_types.consultative_advisory')
@@ -63,7 +63,7 @@ module Decidim
63
63
  @form = assembly_type_form
64
64
  .from_params(params, assembly_type: current_assembly_type)
65
65
 
66
- UpdateAssembliesType.call(current_assembly_type, @form) do
66
+ UpdateAssembliesType.call(@form, current_assembly_type) do
67
67
  on(:ok) do
68
68
  flash[:notice] = I18n.t("assemblies_types.update.success", scope: "decidim.admin")
69
69
  redirect_to assemblies_types_path
@@ -80,7 +80,7 @@ module Decidim
80
80
  def destroy
81
81
  enforce_permission_to :destroy, :assembly_type, assembly_type: current_assembly_type
82
82
 
83
- DestroyAssembliesType.call(current_assembly_type, current_user) do
83
+ Decidim::Commands::DestroyResource.call(current_assembly_type, current_user) do
84
84
  on(:ok) do
85
85
  flash[:notice] = I18n.t("assemblies_types.destroy.success", scope: "decidim.admin")
86
86
  redirect_to assemblies_types_path
@@ -23,7 +23,7 @@ module Decidim
23
23
  enforce_permission_to :create, :assembly_member
24
24
  @form = form(AssemblyMemberForm).from_params(params)
25
25
 
26
- CreateAssemblyMember.call(@form, current_user, current_assembly) do
26
+ CreateAssemblyMember.call(@form) do
27
27
  on(:ok) do
28
28
  flash[:notice] = I18n.t("assembly_members.create.success", scope: "decidim.admin")
29
29
  redirect_to assembly_members_path(current_assembly)
@@ -4,7 +4,7 @@ module Decidim
4
4
  module Assemblies
5
5
  module Admin
6
6
  # Controller that allows managing assembly private users
7
- # on assembies
7
+ # on assemblies
8
8
  class ParticipatorySpacePrivateUsersController < Decidim::Assemblies::Admin::ApplicationController
9
9
  include Concerns::AssemblyAdmin
10
10
  include Decidim::Admin::Concerns::HasPrivateUsers
@@ -4,7 +4,7 @@ module Decidim
4
4
  module Assemblies
5
5
  module Admin
6
6
  # Controller that allows importing assembly private users
7
- # on assembies
7
+ # on assemblies
8
8
  class ParticipatorySpacePrivateUsersCsvImportsController < Decidim::Admin::ApplicationController
9
9
  include Concerns::AssemblyAdmin
10
10
  include Decidim::Admin::Concerns::HasPrivateUsersCsvImport
@@ -2,7 +2,10 @@
2
2
 
3
3
  module Decidim
4
4
  module Assemblies
5
- # The main admin application controller for assemblies
5
+ # The main application controller for assemblies
6
+ #
7
+ # This controller is the abstract class from which all other controllers of
8
+ # this engine inherit.
6
9
  class ApplicationController < Decidim::ApplicationController
7
10
  helper Decidim::ApplicationHelper
8
11
  helper Decidim::Assemblies::AssembliesHelper
@@ -6,9 +6,6 @@ module Decidim
6
6
  class AssembliesController < Decidim::Assemblies::ApplicationController
7
7
  include ParticipatorySpaceContext
8
8
  include AssemblyBreadcrumb
9
-
10
- participatory_space_layout only: :show
11
-
12
9
  include FilterResource
13
10
  include Paginable
14
11
  include HasParticipatorySpaceContentBlocks
@@ -6,8 +6,6 @@ module Decidim
6
6
  include ParticipatorySpaceContext
7
7
  include AssemblyBreadcrumb
8
8
 
9
- participatory_space_layout only: :index
10
-
11
9
  helper_method :collection
12
10
 
13
11
  def index
@@ -51,7 +51,6 @@ module Decidim
51
51
  attribute :is_transparent, Boolean
52
52
  attribute :promoted, Boolean
53
53
  attribute :private_space, Boolean
54
- attribute :show_statistics, Boolean
55
54
  attribute :scopes_enabled, Boolean
56
55
 
57
56
  attribute :closing_date, Decidim::Attributes::LocalizedDate
@@ -12,32 +12,6 @@ module Decidim
12
12
  include Decidim::FiltersHelper
13
13
  include FilterAssembliesHelper
14
14
 
15
- # Public: Returns the characteristics of an assembly in a readable format like
16
- # "title: close, no public, no transparent and is restricted to the members of the assembly"
17
- # deprecated
18
- def participatory_processes_for_assembly(assembly_participatory_processes)
19
- html = ""
20
- html += %( <div class="section"> ).html_safe
21
- html += %( <h4>#{t("assemblies.show.related_participatory_processes", scope: "decidim")}</h4> ).html_safe
22
- html += %( <div class="row small-up-1 medium-up-2 card-grid"> ).html_safe
23
- assembly_participatory_processes.each do |assembly_participatory_process|
24
- html += render partial: "decidim/participatory_processes/participatory_process", locals: { participatory_process: assembly_participatory_process }
25
- end
26
- html += %( </div> ).html_safe
27
- html += %( </div> ).html_safe
28
-
29
- html.html_safe
30
- end
31
-
32
- def assembly_features(assembly)
33
- html = "".html_safe
34
- html += "<strong>#{translated_attribute(assembly.title)}: </strong>".html_safe
35
- html += t("assemblies.show.private_space", scope: "decidim").to_s.html_safe
36
- html += ", #{t("assemblies.show.is_transparent.#{assembly.is_transparent}", scope: "decidim")}".html_safe if assembly.is_transparent?
37
- html += " #{decidim_sanitize_editor translated_attribute(assembly.special_features)}".html_safe
38
- html.html_safe
39
- end
40
-
41
15
  # Items to display in the navigation of an assembly
42
16
  def assembly_nav_items(participatory_space)
43
17
  components = participatory_space.components.published.or(Decidim::Component.where(id: try(:current_component)))
@@ -145,7 +145,7 @@ module Decidim
145
145
  end
146
146
 
147
147
  # All users with a relation to an assembly and organization admins can enter
148
- # the space area. The sapce area is considered to be the assemblies zone,
148
+ # the space area. The space area is considered to be the assemblies zone,
149
149
  # not the assembly groups one.
150
150
  def user_can_enter_space_area?
151
151
  return unless permission_action.action == :enter &&
@@ -31,7 +31,6 @@ module Decidim
31
31
  reference: :string,
32
32
  scopes_enabled: :boolean,
33
33
  short_description: :i18n,
34
- show_statistics: :boolean,
35
34
  slug: :default,
36
35
  subtitle: :i18n,
37
36
  target: :i18n,
@@ -36,7 +36,6 @@ module Decidim
36
36
  target: attributes["target"],
37
37
  participatory_scope: attributes["participatory_scope"],
38
38
  participatory_structure: attributes["participatory_structure"],
39
- show_statistics: attributes["show_statistics"],
40
39
  scopes_enabled: attributes["scopes_enabled"],
41
40
  private_space: attributes["private_space"],
42
41
  reference: attributes["reference"],
@@ -33,9 +33,8 @@ module Decidim
33
33
  local_area: assembly.local_area,
34
34
  target: assembly.target,
35
35
  decidim_scope_id: assembly.decidim_scope_id,
36
- paticipatory_scope: assembly.participatory_scope,
36
+ paticipatory_scope: assembly.participatory_scope, # intentionally misspelled
37
37
  participatory_structure: assembly.participatory_structure,
38
- show_statistics: assembly.show_statistics,
39
38
  scopes_enabled: assembly.scopes_enabled,
40
39
  private_space: assembly.private_space,
41
40
  reference: assembly.reference,
@@ -181,17 +181,17 @@
181
181
  </div>
182
182
  </div>
183
183
 
184
- <div class="card" data-component="accordion" id="accordion-visbility">
184
+ <div class="card" data-component="accordion" id="accordion-visibility">
185
185
  <div class="card-divider">
186
- <button class="card-divider-button" data-open="true" data-controls="panel-visbility" type="button">
186
+ <button class="card-divider-button" data-open="true" data-controls="panel-visibility" type="button">
187
187
  <%= icon "arrow-right-s-line" %>
188
- <h2 class="card-title" id="visbility">
189
- <%= t("visbility", scope: "decidim.assemblies.admin.assemblies.form") %>
188
+ <h2 class="card-title" id="visibility">
189
+ <%= t("visibility", scope: "decidim.assemblies.admin.assemblies.form") %>
190
190
  </h2>
191
191
  </button>
192
192
  </div>
193
193
 
194
- <div id="panel-visbility" class="card-section">
194
+ <div id="panel-visibility" class="card-section">
195
195
  <% if params[:parent_id].present? %>
196
196
  <%= form.hidden_field :parent_id, value: @form.parent_id %>
197
197
  <% else %>
@@ -273,10 +273,6 @@
273
273
  label: t("social_handlers",
274
274
  scope: "decidim.assemblies.admin.assemblies.form") %>
275
275
  </div>
276
-
277
- <div class="row column">
278
- <%= form.check_box :show_statistics %>
279
- </div>
280
276
  </div>
281
277
  </div>
282
278
  </div>
@@ -48,6 +48,8 @@
48
48
 
49
49
  <% if allowed_to? :update, :assembly, assembly: assembly %>
50
50
  <%= link_to translated_attribute(assembly.title), edit_assembly_path(assembly) %>
51
+ <% elsif allowed_to? :read, :component, assembly: assembly %>
52
+ <%= link_to translated_attribute(assembly.title), components_path(assembly) %><br>
51
53
  <% else %>
52
54
  <%= translated_attribute(assembly.title) %>
53
55
  <% end %>
@@ -18,7 +18,7 @@
18
18
  <th><%= t("models.assembly_member.fields.position", scope: "decidim.admin") %></th>
19
19
  <th><%= t("models.assembly_member.fields.designation_date", scope: "decidim.admin") %></th>
20
20
  <th><%= t("models.assembly_member.fields.ceased_date", scope: "decidim.admin") %></th>
21
- <th class="actions"></th>
21
+ <th></th>
22
22
  </tr>
23
23
  </thead>
24
24
  <tbody>
@@ -10,7 +10,7 @@
10
10
  </div>
11
11
  <div class="columns">
12
12
  <%= form.label :role %>
13
- <%= select :assembly_user_role, :role, @form.roles, include_blank: false %>
13
+ <%= select :assembly_user_role, :role, options_for_select(@form.roles, @user_role&.role) %>
14
14
  </div>
15
15
  </div>
16
16
  </div>
@@ -18,7 +18,7 @@
18
18
  <th><%= sort_link(query, :last_sign_in_at, t("models.user.fields.last_sign_in_at", scope: "decidim.admin"), default_order: :desc) %></th>
19
19
  <th><%= sort_link(query, :invitation_accepted_at, t("models.user.fields.invitation_accepted_at", scope: "decidim.admin"), default_order: :desc) %></th>
20
20
  <th><%= sort_link(query, :role, t("models.assembly_user_role.fields.role", scope: "decidim.admin"), default_order: :desc) %></th>
21
- <th class="actions"></th>
21
+ <th></th>
22
22
  </tr>
23
23
  </thead>
24
24
  <tbody>
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_meta_tags({
2
+ title: translated_attribute(current_participatory_space.title),
2
3
  image_url: current_participatory_space.attached_uploader(:hero_image).path,
3
4
  description: translated_attribute(current_participatory_space.short_description),
4
- url: assembly_url(current_participatory_space),
5
- twitter_handler: current_organization.twitter_handler
5
+ url: assembly_url(current_participatory_space)
6
6
  }) %>
7
7
 
8
8
  <%
@@ -14,23 +14,27 @@ edit_link(
14
14
  )
15
15
  %>
16
16
 
17
- <% if current_participatory_space.private_space? %>
18
- <section class="participatory-space__block-reference alert">
19
- <%= t("private_space", scope: "decidim.assemblies.show") %>
20
- </section>
21
- <% end %>
17
+ <%= render partial: "layouts/decidim/header/follow_space_menu_bar_button", locals: { participatory_space: current_participatory_space } %>
22
18
 
23
- <div class="participatory-space__container">
19
+ <main>
20
+ <% if current_participatory_space.private_space? %>
21
+ <section class="participatory-space__block-reference alert">
22
+ <%= t("private_space", scope: "decidim.assemblies.show") %>
23
+ </section>
24
+ <% end %>
24
25
 
25
- <%= participatory_space_floating_help %>
26
+ <div class="participatory-space__container">
26
27
 
27
- <% active_content_blocks.each do |content_block| %>
28
- <% next unless content_block.manifest %>
29
- <%= cell content_block.manifest.cell, content_block %>
30
- <% end %>
28
+ <%= participatory_space_floating_help %>
31
29
 
32
- </div>
30
+ <% active_content_blocks.each do |content_block| %>
31
+ <% next unless content_block.manifest %>
32
+ <%= cell content_block.manifest.cell, content_block %>
33
+ <% end %>
33
34
 
34
- <section class="participatory-space__block-reference">
35
- <%= resource_reference(current_participatory_space) %>
36
- </section>
35
+ </div>
36
+
37
+ <section class="participatory-space__block-reference">
38
+ <%= resource_reference(current_participatory_space) %>
39
+ </section>
40
+ </main>
@@ -1,4 +1,5 @@
1
- <% add_decidim_meta_tags(title: t("assembly_members.index.title", scope: "decidim")) %>
1
+ <% add_decidim_page_title(t("assembly_members.index.title", scope: "decidim")) %>
2
+ <% add_decidim_page_title(translated_attribute(current_participatory_space.title)) %>
2
3
 
3
4
  <%
4
5
  edit_link(
@@ -51,7 +51,6 @@ ar:
51
51
  scope_id: نطاق
52
52
  scopes_enabled: النطاقات المُفعّلَة
53
53
  short_description: وصف قصير
54
- show_statistics: عرض الإحصائيات
55
54
  slug: سبيكة العنوان الشبكي
56
55
  special_features: مميزات خاصة
57
56
  subtitle: العنوان الفرعي
@@ -200,7 +199,6 @@ ar:
200
199
  categories: الفئات
201
200
  components: المكونات
202
201
  moderations: الإعتدال
203
- private_users: المستخدمون الخاصون
204
202
  assemblies_types: نوع التجمّعات
205
203
  models:
206
204
  assemblies_types:
@@ -291,7 +289,6 @@ ar:
291
289
  form:
292
290
  existing_user: المشارك الحالي
293
291
  explanation: 'إرشادات للصورة:'
294
- image_guide: يفضل أن تكون صورة لا تحتوي على أي نص.
295
292
  non_user: غير مشارك
296
293
  non_user_avatar_help: يجب أن تحصل على موافقة الأشخاص قبل نشرهم كأعضاء.
297
294
  select_a_position: اختر المنصب
@@ -350,11 +347,7 @@ ar:
350
347
  show:
351
348
  assembly_type: نوع الجمعية
352
349
  duration: المدة الزمنية
353
- is_transparent:
354
- 'false': مبهمة
355
- 'true': شفافة
356
350
  private_space: هذه جمعية خاصة
357
- related_participatory_processes: العمليات التشاركية ذات الصلة
358
351
  social_networks_title: زيارة التجمع على
359
352
  assembly_members:
360
353
  assembly_member: