decidim-assemblies 0.6.0

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 (86) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +34 -0
  3. data/Rakefile +3 -0
  4. data/app/assets/config/admin/decidim_assemblies_manifest.js +1 -0
  5. data/app/assets/config/decidim_assemblies_manifest.js +1 -0
  6. data/app/assets/images/decidim/assemblies/assembly.svg +6 -0
  7. data/app/assets/javascripts/decidim/assemblies/admin/assemblies.js.es6 +12 -0
  8. data/app/commands/decidim/assemblies/admin/copy_assembly.rb +88 -0
  9. data/app/commands/decidim/assemblies/admin/create_assembly.rb +68 -0
  10. data/app/commands/decidim/assemblies/admin/publish_assembly.rb +34 -0
  11. data/app/commands/decidim/assemblies/admin/unpublish_assembly.rb +34 -0
  12. data/app/commands/decidim/assemblies/admin/update_assembly.rb +73 -0
  13. data/app/constraints/decidim/assemblies/current_assembly.rb +37 -0
  14. data/app/constraints/decidim/assemblies/current_feature.rb +28 -0
  15. data/app/controllers/concerns/decidim/assemblies/admin/assembly_context.rb +21 -0
  16. data/app/controllers/concerns/decidim/assemblies/assembly_context.rb +25 -0
  17. data/app/controllers/concerns/decidim/assemblies/needs_assembly.rb +50 -0
  18. data/app/controllers/decidim/assemblies/admin/application_controller.rb +11 -0
  19. data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +100 -0
  20. data/app/controllers/decidim/assemblies/admin/assembly_attachments_controller.rb +27 -0
  21. data/app/controllers/decidim/assemblies/admin/assembly_copies_controller.rb +35 -0
  22. data/app/controllers/decidim/assemblies/admin/assembly_publications_controller.rb +45 -0
  23. data/app/controllers/decidim/assemblies/admin/categories_controller.rb +13 -0
  24. data/app/controllers/decidim/assemblies/admin/concerns/assembly_admin.rb +26 -0
  25. data/app/controllers/decidim/assemblies/admin/exports_controller.rb +14 -0
  26. data/app/controllers/decidim/assemblies/admin/feature_permissions_controller.rb +14 -0
  27. data/app/controllers/decidim/assemblies/admin/features_controller.rb +14 -0
  28. data/app/controllers/decidim/assemblies/admin/moderations_controller.rb +12 -0
  29. data/app/controllers/decidim/assemblies/assemblies_controller.rb +43 -0
  30. data/app/controllers/decidim/assemblies/assembly_widgets_controller.rb +21 -0
  31. data/app/controllers/decidim/assemblies/categories_controller.rb +13 -0
  32. data/app/forms/decidim/assemblies/admin/assembly_copy_form.rb +34 -0
  33. data/app/forms/decidim/assemblies/admin/assembly_form.rb +63 -0
  34. data/app/models/decidim/assemblies/abilities/admin/admin_ability.rb +18 -0
  35. data/app/models/decidim/assemblies/abilities/admin_ability.rb +16 -0
  36. data/app/models/decidim/assemblies/abilities/everyone_ability.rb +17 -0
  37. data/app/models/decidim/assembly.rb +45 -0
  38. data/app/presenters/decidim/assemblies/assembly_stats_presenter.rb +52 -0
  39. data/app/queries/decidim/assemblies/admin/admin_users.rb +39 -0
  40. data/app/queries/decidim/assemblies/organization_assemblies.rb +16 -0
  41. data/app/queries/decidim/assemblies/organization_prioritized_assemblies.rb +20 -0
  42. data/app/queries/decidim/assemblies/organization_published_assemblies.rb +19 -0
  43. data/app/queries/decidim/assemblies/prioritized_assemblies.rb +13 -0
  44. data/app/queries/decidim/assemblies/promoted_assemblies.rb +12 -0
  45. data/app/queries/decidim/assemblies/published_assemblies.rb +12 -0
  46. data/app/views/decidim/assemblies/_assembly.html.erb +22 -0
  47. data/app/views/decidim/assemblies/_order_by_assemblies.html.erb +3 -0
  48. data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +89 -0
  49. data/app/views/decidim/assemblies/admin/assemblies/edit.html.erb +19 -0
  50. data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +66 -0
  51. data/app/views/decidim/assemblies/admin/assemblies/new.html.erb +11 -0
  52. data/app/views/decidim/assemblies/admin/assembly_copies/_form.html.erb +34 -0
  53. data/app/views/decidim/assemblies/admin/assembly_copies/new.html.erb +7 -0
  54. data/app/views/decidim/assemblies/assemblies/_no_assemblies_yet.html.erb +3 -0
  55. data/app/views/decidim/assemblies/assemblies/_promoted_assembly.html.erb +27 -0
  56. data/app/views/decidim/assemblies/assemblies/_statistics.html.erb +10 -0
  57. data/app/views/decidim/assemblies/assemblies/index.html.erb +17 -0
  58. data/app/views/decidim/assemblies/assemblies/show.html.erb +74 -0
  59. data/app/views/decidim/assemblies/assembly_widgets/show.html.erb +11 -0
  60. data/app/views/layouts/decidim/_assembly_header.html.erb +64 -0
  61. data/app/views/layouts/decidim/admin/assemblies.html.erb +14 -0
  62. data/app/views/layouts/decidim/admin/assembly.html.erb +54 -0
  63. data/app/views/layouts/decidim/assembly.html.erb +30 -0
  64. data/config/locales/ca.yml +128 -0
  65. data/config/locales/en.yml +128 -0
  66. data/config/locales/es.yml +128 -0
  67. data/config/locales/eu.yml +127 -0
  68. data/config/locales/fi.yml +127 -0
  69. data/config/locales/fr.yml +127 -0
  70. data/config/locales/it.yml +127 -0
  71. data/config/locales/nl.yml +127 -0
  72. data/config/locales/pl.yml +128 -0
  73. data/config/locales/uk.yml +129 -0
  74. data/db/migrate/20170727190859_add_assemblies.rb +37 -0
  75. data/db/migrate/20170822153055_add_scopes_enabled_to_assemblies.rb +7 -0
  76. data/db/seeds/Exampledocument.pdf +0 -0
  77. data/db/seeds/city.jpeg +0 -0
  78. data/db/seeds/city2.jpeg +0 -0
  79. data/db/seeds/homepage_image.jpg +0 -0
  80. data/lib/decidim/assemblies.rb +12 -0
  81. data/lib/decidim/assemblies/admin.rb +10 -0
  82. data/lib/decidim/assemblies/admin_engine.rb +79 -0
  83. data/lib/decidim/assemblies/engine.rb +53 -0
  84. data/lib/decidim/assemblies/participatory_space.rb +69 -0
  85. data/lib/decidim/assemblies/test/factories.rb +41 -0
  86. metadata +188 -0
@@ -0,0 +1,14 @@
1
+ <% content_for :secondary_nav do %>
2
+ <div class="secondary-nav">
3
+ <div class="secondary-nav__title">
4
+ <%= t "decidim.admin.titles.assemblies" %>
5
+ </div>
6
+ <div class="secondary-nav__actions">
7
+ <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.assembly.name", scope: "decidim.admin")), ['new', 'assembly'], class: 'button expanded small' if can? :create, Decidim::Assembly %>
8
+ </div>
9
+ </div>
10
+ <% end %>
11
+
12
+ <%= render "layouts/decidim/admin/application" do %>
13
+ <%= yield %>
14
+ <% end %>
@@ -0,0 +1,54 @@
1
+ <% content_for :secondary_nav do %>
2
+ <div class="secondary-nav secondary-nav--subnav">
3
+ <ul>
4
+ <% if can? :update, current_assembly %>
5
+ <li <% if is_active_link?(decidim_admin_assemblies.edit_assembly_path(current_assembly)) %> class="is-active" <% end %>>
6
+ <%= aria_selected_link_to t("info", scope: "decidim.admin.menu.assemblies_submenu"), decidim_admin_assemblies.edit_assembly_path(current_assembly) %>
7
+ </li>
8
+ <% end %>
9
+ <% if can? :read, Decidim::Feature %>
10
+ <li <% if is_active_link?(decidim_admin_assemblies.features_path(current_assembly)) %> class="is-active" <% end %>>
11
+ <%= aria_selected_link_to t("features", scope: "decidim.admin.menu.assemblies_submenu"), decidim_admin_assemblies.features_path(current_assembly) %>
12
+ <ul>
13
+ <% current_assembly.features.each do |feature| %>
14
+ <% if feature.manifest.admin_engine %>
15
+ <li <% if is_active_link?(manage_feature_path(feature)) %> class="is-active" <% end %>>
16
+ <%= link_to manage_feature_path(feature) do %>
17
+ <%= translated_attribute feature.name %>
18
+ <% if feature.primary_stat.present? %>
19
+ <span class="component-counter <%= "component-counter--off" if feature.primary_stat.zero? %>"><%= feature.primary_stat %></span>
20
+ <% end %>
21
+ <% end %>
22
+ </li>
23
+ <% end %>
24
+ <% end %>
25
+ </ul>
26
+ </li>
27
+ <% end %>
28
+ <% if can? :read, Decidim::Category %>
29
+ <li <% if is_active_link?(decidim_admin_assemblies.categories_path(current_assembly)) %> class="is-active" <% end %>>
30
+ <%= aria_selected_link_to t("categories", scope: "decidim.admin.menu.assemblies_submenu"), decidim_admin_assemblies.categories_path(current_assembly) %>
31
+ </li>
32
+ <% end %>
33
+ <% if can? :read, Decidim::Attachment %>
34
+ <li <% if is_active_link?(decidim_admin_assemblies.assembly_attachments_path(current_assembly.id)) %> class="is-active" <% end %>>
35
+ <%= aria_selected_link_to t("attachments", scope: "decidim.admin.menu.assemblies_submenu"), decidim_admin_assemblies.assembly_attachments_path(current_assembly.id) %>
36
+ </li>
37
+ <% end %>
38
+ <% if can? :read, Decidim::Moderation %>
39
+ <li <% if is_active_link?(decidim_admin_assemblies.moderations_path(current_assembly.id)) %> class="is-active" <% end %>>
40
+ <%= aria_selected_link_to t("moderations", scope: "decidim.admin.menu.assemblies_submenu"), decidim_admin_assemblies.moderations_path(current_assembly.id) %>
41
+ </li>
42
+ <% end %>
43
+ </ul>
44
+ </div>
45
+ <% end %>
46
+
47
+ <%= render "layouts/decidim/admin/application" do %>
48
+ <div class="process-title">
49
+ <div class="process-title-content">
50
+ <%= translated_attribute(current_assembly.title) %>
51
+ </div>
52
+ </div>
53
+ <%= yield %>
54
+ <% end %>
@@ -0,0 +1,30 @@
1
+ <% add_decidim_page_title(translated_attribute(current_feature.name)) if try(:current_feature) %>
2
+ <% add_decidim_page_title(translated_attribute(current_assembly.title)) %>
3
+ <% add_decidim_meta_tags(
4
+ image_url: current_assembly.banner_image.url,
5
+ description: translated_attribute(current_assembly.short_description),
6
+ ) %>
7
+
8
+ <%= render "layouts/decidim/application" do %>
9
+ <div class="wrapper">
10
+ <%= render partial: "layouts/decidim/assembly_header" %>
11
+ <%= yield %>
12
+ </div>
13
+ <% if content_for? :expanded %>
14
+ <div class="expanded">
15
+ <div class="wrapper wrapper--inner">
16
+ <div class="row">
17
+ <%= yield :expanded %>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ <% end %>
22
+ <% end %>
23
+
24
+ <% if try(:current_feature) %>
25
+ <% current_feature.manifest.actions.each do |action| %>
26
+ <%= action_authorization_modal(action) %>
27
+ <% end %>
28
+ <% end %>
29
+
30
+ <% provide :meta_image_url, current_assembly.banner_image.url %>
@@ -0,0 +1,128 @@
1
+ ---
2
+ ca:
3
+ activemodel:
4
+ attributes:
5
+ assembly:
6
+ banner_image: Imatge de bàner
7
+ copy_categories: Copiar categories
8
+ copy_features: Copiar funcionalitats
9
+ description: Descripció
10
+ developer_group: Grup promotor
11
+ domain: Àrees municipals
12
+ hashtag: Hashtag
13
+ hero_image: Imatge de portada
14
+ local_area: Àrea municipal
15
+ meta_scope: Metadades d'àmbit
16
+ participatory_scope: Àmbit participatiu
17
+ participatory_structure: Estructura participativa
18
+ promoted: Destacat
19
+ scope_id: Àmbit
20
+ scopes_enabled: Àmbit habilitat
21
+ short_description: Descripció breu
22
+ slug: Nom curt d'URL
23
+ subtitle: Subtítol
24
+ target: A qui va dirigit?
25
+ title: Grup de processos participatius
26
+ decidim:
27
+ admin:
28
+ assemblies:
29
+ create:
30
+ error: S'ha produït un error en crear una nova assemblea.
31
+ success: Assemblea creada correctament.
32
+ destroy:
33
+ success: L'assemblea s'ha eliminat amb èxit.
34
+ edit:
35
+ update: Actualitzar
36
+ form:
37
+ title: Informació general
38
+ index:
39
+ not_published: No publicada
40
+ published: Publicat
41
+ new:
42
+ create: Crear
43
+ title: Nova assemblea
44
+ update:
45
+ error: S'ha produït un error en actualitzar aquesta assemblea.
46
+ success: L'assemblea s'ha actualitzat correctament.
47
+ assemblies_copies:
48
+ create:
49
+ error: S'ha produït un error en duplicar aquesta assemblea.
50
+ success: L'assemblea s'ha duplicat correctament.
51
+ assembly_copies:
52
+ new:
53
+ copy: Còpia
54
+ select: Selecciona quines dades vols duplicar
55
+ title: Assemblea duplicada
56
+ assembly_publications:
57
+ create:
58
+ error: S'ha produït un error en publicar aquesta assemblea.
59
+ success: Assemblea publicada amb èxit.
60
+ destroy:
61
+ error: S'ha produït un error en despublicar aquesta assemblea.
62
+ success: Assemblea despublicada amb èxit.
63
+ menu:
64
+ assemblies: Assemblees
65
+ assemblies_submenu:
66
+ attachments: Adjunts
67
+ categories: Categories
68
+ features: Funcionalitats
69
+ info: Informació
70
+ moderations: Moderacions
71
+ models:
72
+ assembly:
73
+ fields:
74
+ created_at: Data de creació
75
+ promoted: Destacat
76
+ published: Publicat
77
+ title: Grup de processos participatius
78
+ name: Assemblea
79
+ titles:
80
+ assemblies: Assemblees
81
+ assemblies:
82
+ index:
83
+ title: Assemblees
84
+ show:
85
+ developer_group: Grup promotor
86
+ local_area: Àrea municipal
87
+ participatory_scope: Àmbit participatiu
88
+ participatory_structure: Estructura participativa
89
+ scope: Àmbit
90
+ target: A qui va dirigit
91
+ statistics:
92
+ answers_count: Respostes
93
+ assemblies_count: Assemblees
94
+ comments_count: Comentaris
95
+ headline: Activitat
96
+ meetings_count: Trobades presencials
97
+ orders_count: Vots
98
+ pages_count: Pàgines
99
+ projects_count: Projectes
100
+ proposals_count: Propostes
101
+ results_count: Resultats
102
+ surveys_count: Enquestes
103
+ users_count: Participants
104
+ votes_count: Suports
105
+ menu:
106
+ assemblies: Assemblees
107
+ layouts:
108
+ decidim:
109
+ assemblies:
110
+ assembly:
111
+ take_part: Participa
112
+ index:
113
+ promoted_assemblies: Assemblees destacades
114
+ no_assemblies_yet:
115
+ no_assemblies_yet: Encara no hi ha cap assemblea!
116
+ order_by_assemblies:
117
+ assemblies:
118
+ one: "%{count} assemblea"
119
+ other: "%{count} assemblees"
120
+ promoted_assembly:
121
+ more_info: Més informació
122
+ take_part: Participa
123
+ assembly_header:
124
+ assembly_menu_item: L'assemblea
125
+ unfold: Desplega
126
+ assembly_widgets:
127
+ show:
128
+ take_part: Participa
@@ -0,0 +1,128 @@
1
+ ---
2
+ en:
3
+ activemodel:
4
+ attributes:
5
+ assembly:
6
+ banner_image: Banner image
7
+ copy_categories: Copy categories
8
+ copy_features: Copy features
9
+ description: Description
10
+ developer_group: Developer group
11
+ domain: Domain
12
+ hashtag: Hashtag
13
+ hero_image: Home image
14
+ local_area: Local area
15
+ meta_scope: Scope metadata
16
+ participatory_scope: Participatory scope
17
+ participatory_structure: Participatory structure
18
+ promoted: Promoted
19
+ scope_id: Scope
20
+ scopes_enabled: Scopes enabled
21
+ short_description: Short description
22
+ slug: URL slug
23
+ subtitle: Subtitle
24
+ target: Target
25
+ title: Title
26
+ decidim:
27
+ admin:
28
+ assemblies:
29
+ create:
30
+ error: There was an error creating a new assembly.
31
+ success: Assembly created successfully.
32
+ destroy:
33
+ success: Assembly destroyed successfully.
34
+ edit:
35
+ update: Update
36
+ form:
37
+ title: General Information
38
+ index:
39
+ not_published: Not published
40
+ published: Published
41
+ new:
42
+ create: Create
43
+ title: New assembly
44
+ update:
45
+ error: There was an error when updating this assembly.
46
+ success: Assembly updated successfully.
47
+ assemblies_copies:
48
+ create:
49
+ error: There was an error when duplicating this assembly.
50
+ success: Assembly duplicated successfully.
51
+ assembly_copies:
52
+ new:
53
+ copy: Copy
54
+ select: Select which data you would like to duplicate
55
+ title: Duplicate assembly
56
+ assembly_publications:
57
+ create:
58
+ error: There was an error publishing this assembly.
59
+ success: Assembly published successfully.
60
+ destroy:
61
+ error: There was an error unpublishing this assembly.
62
+ success: Assembly unpublished successfully.
63
+ menu:
64
+ assemblies: Assemblies
65
+ assemblies_submenu:
66
+ attachments: Attachments
67
+ categories: Categories
68
+ features: Features
69
+ info: Info
70
+ moderations: Moderations
71
+ models:
72
+ assembly:
73
+ fields:
74
+ created_at: Created at
75
+ promoted: Highlighted
76
+ published: Published
77
+ title: Title
78
+ name: Assembly
79
+ titles:
80
+ assemblies: Assemblies
81
+ assemblies:
82
+ index:
83
+ title: Assemblies
84
+ show:
85
+ developer_group: Developer group
86
+ local_area: Local area
87
+ participatory_scope: Participatory scope
88
+ participatory_structure: Participatory structure
89
+ scope: Scope
90
+ target: Target
91
+ statistics:
92
+ answers_count: Answers
93
+ assemblies_count: Assemblies
94
+ comments_count: Comments
95
+ headline: Activity
96
+ meetings_count: Meetings
97
+ orders_count: Orders
98
+ pages_count: Pages
99
+ projects_count: Projects
100
+ proposals_count: Proposals
101
+ results_count: Results
102
+ surveys_count: Surveys
103
+ users_count: Participants
104
+ votes_count: Votes
105
+ menu:
106
+ assemblies: Assemblies
107
+ layouts:
108
+ decidim:
109
+ assemblies:
110
+ assembly:
111
+ take_part: Take part
112
+ index:
113
+ promoted_assemblies: Highlighted assemblies
114
+ no_assemblies_yet:
115
+ no_assemblies_yet: No assemblies yet!
116
+ order_by_assemblies:
117
+ assemblies:
118
+ one: "%{count} assembly"
119
+ other: "%{count} assemblies"
120
+ promoted_assembly:
121
+ more_info: More info
122
+ take_part: Take part
123
+ assembly_header:
124
+ assembly_menu_item: The assembly
125
+ unfold: Unfold
126
+ assembly_widgets:
127
+ show:
128
+ take_part: Take part
@@ -0,0 +1,128 @@
1
+ ---
2
+ es:
3
+ activemodel:
4
+ attributes:
5
+ assembly:
6
+ banner_image: Imagen de banner
7
+ copy_categories: Copiar categorías
8
+ copy_features: Copiar funcionalidades
9
+ description: Descripción
10
+ developer_group: Grupo promotor
11
+ domain: Dominio
12
+ hashtag: Hashtag
13
+ hero_image: Imagen de portada
14
+ local_area: Áreas municipales
15
+ meta_scope: 'Metadatos: ámbito'
16
+ participatory_scope: Ámbito participativo
17
+ participatory_structure: Estructura participativa
18
+ promoted: Destacado
19
+ scope_id: Ámbito
20
+ scopes_enabled: Ámbitos habilitados
21
+ short_description: Descripción breve
22
+ slug: Texto corto de URL
23
+ subtitle: Subtítulo
24
+ target: "¿A quién va dirigido?"
25
+ title: Grupo de procesos participativos
26
+ decidim:
27
+ admin:
28
+ assemblies:
29
+ create:
30
+ error: Se produjo un error al crear una nueva asamblea.
31
+ success: Asamblea creada correctamente.
32
+ destroy:
33
+ success: Asamblea destruida correctamente.
34
+ edit:
35
+ update: Actualizar
36
+ form:
37
+ title: Información general
38
+ index:
39
+ not_published: No publicado
40
+ published: Publicado
41
+ new:
42
+ create: Crear
43
+ title: Nueva asamblea
44
+ update:
45
+ error: Se ha producido un error al actualizar esta asamblea.
46
+ success: La asamblea se ha actualizado correctamente.
47
+ assemblies_copies:
48
+ create:
49
+ error: Se produjo un error al duplicar esta asamblea.
50
+ success: Asamblea duplicada correctamente.
51
+ assembly_copies:
52
+ new:
53
+ copy: Copiar
54
+ select: Seleccione los datos que desea duplicar
55
+ title: Duplicar asamblea
56
+ assembly_publications:
57
+ create:
58
+ error: Se produjo un error al publicar esta asamblea.
59
+ success: Asamblea publicada con éxito.
60
+ destroy:
61
+ error: Se produjo un error al despublicar esta asamblea.
62
+ success: Asamblea despublicada con éxito.
63
+ menu:
64
+ assemblies: Asambleas
65
+ assemblies_submenu:
66
+ attachments: Archivos adjuntos
67
+ categories: Categorías
68
+ features: Funcionalidades
69
+ info: Información
70
+ moderations: Moderaciones
71
+ models:
72
+ assembly:
73
+ fields:
74
+ created_at: Fecha de creación
75
+ promoted: Destacado
76
+ published: Publicada
77
+ title: Grupo de procesos participativos
78
+ name: Asamblea
79
+ titles:
80
+ assemblies: Asambleas
81
+ assemblies:
82
+ index:
83
+ title: Asambleas
84
+ show:
85
+ developer_group: Grupo promotor
86
+ local_area: Áreas municipales
87
+ participatory_scope: Ámbito participativo
88
+ participatory_structure: Estructura participativa
89
+ scope: Ámbito
90
+ target: "¿A quién va dirigida?"
91
+ statistics:
92
+ answers_count: Respuestas
93
+ assemblies_count: Asambleas
94
+ comments_count: Comentarios
95
+ headline: Actividad
96
+ meetings_count: Encuentros
97
+ orders_count: Votos
98
+ pages_count: Páginas
99
+ projects_count: Proyectos
100
+ proposals_count: Propuestas
101
+ results_count: Resultados
102
+ surveys_count: Encuestas
103
+ users_count: Participantes
104
+ votes_count: Soportes
105
+ menu:
106
+ assemblies: Asambleas
107
+ layouts:
108
+ decidim:
109
+ assemblies:
110
+ assembly:
111
+ take_part: Participa
112
+ index:
113
+ promoted_assemblies: Asambleas destacadas
114
+ no_assemblies_yet:
115
+ no_assemblies_yet: "¡Todavía no hay asambleas!"
116
+ order_by_assemblies:
117
+ assemblies:
118
+ one: "%{count} asamblea"
119
+ other: "%{count} asambleas"
120
+ promoted_assembly:
121
+ more_info: Más información
122
+ take_part: Participa
123
+ assembly_header:
124
+ assembly_menu_item: La asamblea
125
+ unfold: Desplegar
126
+ assembly_widgets:
127
+ show:
128
+ take_part: Participa