decidim-core 0.29.5 → 0.30.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 (595) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/activity/show.erb +6 -6
  3. data/app/cells/decidim/address/show.erb +3 -3
  4. data/app/cells/decidim/amendable/amend_button_card/show.erb +6 -4
  5. data/app/cells/decidim/amendable/amend_button_card_cell.rb +8 -0
  6. data/app/cells/decidim/amendable/amendments/show.erb +1 -1
  7. data/app/cells/decidim/amendable/promote_button_card/show.erb +2 -0
  8. data/app/cells/decidim/author/flag.erb +6 -0
  9. data/app/cells/decidim/author/flag_user.erb +14 -0
  10. data/app/cells/decidim/author/show.erb +4 -2
  11. data/app/cells/decidim/author_cell.rb +1 -1
  12. data/app/cells/decidim/card_l/extra_data.erb +1 -0
  13. data/app/cells/decidim/card_metadata_cell.rb +9 -16
  14. data/app/cells/decidim/comments_button_cell.rb +14 -2
  15. data/app/cells/decidim/content_blocks/highlighted_elements_cell.rb +2 -0
  16. data/app/cells/decidim/content_blocks/highlighted_elements_with_cell_for_list_cell.rb +1 -1
  17. data/app/cells/decidim/content_blocks/participatory_space_extra_data/extra_data.erb +2 -2
  18. data/app/cells/decidim/content_blocks/participatory_space_main_data/title.erb +2 -11
  19. data/app/cells/decidim/endorsement_block/show.erb +0 -1
  20. data/app/cells/decidim/endorsement_block_cell.rb +6 -0
  21. data/app/cells/decidim/endorsement_buttons/button_content.erb +1 -1
  22. data/app/cells/decidim/endorsement_buttons/select_identity_button.erb +1 -1
  23. data/app/cells/decidim/endorsement_buttons/show.erb +7 -7
  24. data/app/cells/decidim/endorsement_buttons/verification_modal.erb +4 -2
  25. data/app/cells/decidim/endorsers_list/empty.erb +3 -0
  26. data/app/cells/decidim/endorsers_list/full.erb +17 -5
  27. data/app/cells/decidim/endorsers_list/show.erb +19 -10
  28. data/app/cells/decidim/endorsers_list_cell.rb +19 -6
  29. data/app/cells/decidim/flag_modal/flag_user.erb +34 -0
  30. data/app/cells/decidim/flag_modal/show.erb +52 -0
  31. data/app/cells/decidim/flag_modal_cell.rb +56 -0
  32. data/app/cells/decidim/follow_button/show.erb +1 -2
  33. data/app/cells/decidim/follow_button_cell.rb +5 -0
  34. data/app/cells/decidim/footer_topics/show.erb +2 -2
  35. data/app/cells/decidim/group_admins/show.erb +1 -3
  36. data/app/cells/decidim/group_members/show.erb +2 -6
  37. data/app/cells/decidim/images_panel/show.erb +2 -5
  38. data/app/cells/decidim/map/show.erb +3 -0
  39. data/app/cells/decidim/map/template.erb +14 -0
  40. data/app/cells/decidim/map_cell.rb +39 -0
  41. data/app/cells/decidim/notification_actions/buttons_cell.rb +1 -1
  42. data/app/cells/decidim/onboarding_action_message/show.erb +15 -0
  43. data/app/cells/decidim/onboarding_action_message_cell.rb +81 -0
  44. data/app/cells/decidim/participatory_space_dropdown_metadata/metadata.erb +4 -4
  45. data/app/cells/decidim/participatory_space_dropdown_metadata/show.erb +3 -5
  46. data/app/cells/decidim/participatory_space_private_user/show.erb +23 -0
  47. data/app/cells/decidim/participatory_space_private_user_cell.rb +21 -0
  48. data/app/cells/decidim/profile_actions/show.erb +1 -1
  49. data/app/cells/decidim/profile_sidebar/show.erb +167 -0
  50. data/app/cells/decidim/profile_sidebar_cell.rb +68 -0
  51. data/app/cells/decidim/progress_bar/show.erb +2 -2
  52. data/app/cells/decidim/report_button/already_reported_modal.erb +2 -2
  53. data/app/cells/decidim/report_button/flag_modal.erb +36 -24
  54. data/app/cells/decidim/report_button_cell.rb +9 -2
  55. data/app/cells/decidim/resource_history/show.erb +20 -0
  56. data/app/cells/decidim/resource_history_cell.rb +66 -0
  57. data/app/cells/decidim/resource_types_filter/show.erb +1 -1
  58. data/app/cells/decidim/resource_types_filter_cell.rb +6 -6
  59. data/app/cells/decidim/share_button_cell.rb +0 -4
  60. data/app/cells/decidim/share_widget/modal.erb +26 -0
  61. data/app/cells/decidim/share_widget/show.erb +2 -0
  62. data/app/cells/decidim/share_widget_cell.rb +20 -0
  63. data/app/cells/decidim/tags/show.erb +7 -4
  64. data/app/cells/decidim/tags_cell.rb +11 -72
  65. data/app/cells/decidim/upload_modal/files.erb +4 -4
  66. data/app/cells/decidim/upload_modal_cell.rb +3 -5
  67. data/app/cells/decidim/user_activity/show.erb +1 -1
  68. data/app/commands/decidim/amendable/accept.rb +1 -2
  69. data/app/commands/decidim/amendable/create_draft.rb +2 -2
  70. data/app/commands/decidim/create_ephemeral_user.rb +52 -0
  71. data/app/commands/decidim/create_omniauth_registration.rb +21 -17
  72. data/app/commands/decidim/create_report.rb +8 -11
  73. data/app/commands/decidim/create_user_group.rb +6 -2
  74. data/app/commands/decidim/destroy_ephemeral_user.rb +47 -0
  75. data/app/commands/decidim/invite_user.rb +1 -1
  76. data/app/commands/decidim/search.rb +0 -14
  77. data/app/commands/decidim/update_account.rb +11 -3
  78. data/app/commands/decidim/update_notifications_settings.rb +1 -0
  79. data/app/commands/decidim/update_resources_taxonomies.rb +67 -0
  80. data/app/commands/decidim/update_user_group.rb +7 -1
  81. data/app/constraints/decidim/current_component.rb +1 -1
  82. data/app/controllers/concerns/decidim/ajax_permission_handler.rb +21 -0
  83. data/app/controllers/concerns/decidim/devise_authentication_methods.rb +3 -6
  84. data/app/controllers/concerns/decidim/devise_controllers.rb +2 -0
  85. data/app/controllers/concerns/decidim/disable_redirection_to_external_host.rb +1 -1
  86. data/app/controllers/concerns/decidim/ephemeral_session_checker.rb +87 -0
  87. data/app/controllers/concerns/decidim/filter_resource.rb +4 -2
  88. data/app/controllers/concerns/decidim/has_members_page.rb +25 -0
  89. data/app/controllers/concerns/decidim/locale_switcher.rb +2 -2
  90. data/app/controllers/concerns/decidim/needs_password_change.rb +0 -1
  91. data/app/controllers/concerns/decidim/needs_permission.rb +2 -1
  92. data/app/controllers/concerns/decidim/needs_tos_accepted.rb +4 -5
  93. data/app/controllers/concerns/decidim/onboarding_action_methods.rb +52 -0
  94. data/app/controllers/concerns/decidim/participatory_space_context.rb +1 -4
  95. data/app/controllers/decidim/amendments_controller.rb +3 -3
  96. data/app/controllers/decidim/application_controller.rb +9 -0
  97. data/app/controllers/decidim/authorization_modals_controller.rb +8 -2
  98. data/app/controllers/decidim/components/base_controller.rb +3 -7
  99. data/app/controllers/decidim/devise/confirmations_controller.rb +4 -0
  100. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +8 -1
  101. data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
  102. data/app/controllers/decidim/devise/sessions_controller.rb +2 -0
  103. data/app/controllers/decidim/download_your_data_controller.rb +33 -2
  104. data/app/controllers/decidim/editor_images_controller.rb +1 -11
  105. data/app/controllers/decidim/follows_controller.rb +1 -1
  106. data/app/controllers/decidim/geolocation_controller.rb +19 -0
  107. data/app/controllers/decidim/homepage_controller.rb +0 -1
  108. data/app/controllers/decidim/open_data_controller.rb +33 -8
  109. data/app/controllers/decidim/profiles_controller.rb +2 -2
  110. data/app/controllers/decidim/reports_controller.rb +2 -7
  111. data/app/controllers/decidim/user_activities_controller.rb +1 -1
  112. data/app/controllers/decidim/user_conversations_controller.rb +1 -11
  113. data/app/events/decidim/soft_delete_resource_event.rb +15 -0
  114. data/app/forms/decidim/account_form.rb +2 -5
  115. data/app/forms/decidim/amendable/form.rb +4 -2
  116. data/app/forms/decidim/ephemeral_user_form.rb +22 -0
  117. data/app/forms/decidim/notifications_settings_form.rb +1 -0
  118. data/app/forms/decidim/omniauth_registration_form.rb +15 -2
  119. data/app/forms/decidim/registration_form.rb +1 -1
  120. data/app/helpers/concerns/decidim/flash_helper_extensions.rb +17 -2
  121. data/app/helpers/decidim/action_authorization_helper.rb +75 -14
  122. data/app/helpers/decidim/amendments_helper.rb +1 -11
  123. data/app/helpers/decidim/application_helper.rb +6 -2
  124. data/app/helpers/decidim/breadcrumb_helper.rb +6 -0
  125. data/app/helpers/decidim/cache_helper.rb +1 -1
  126. data/app/helpers/decidim/check_boxes_tree_helper.rb +25 -53
  127. data/app/helpers/decidim/decidim_form_helper.rb +0 -44
  128. data/app/helpers/decidim/endorsable_helper.rb +0 -10
  129. data/app/helpers/decidim/filters_helper.rb +0 -25
  130. data/app/helpers/decidim/layout_helper.rb +6 -6
  131. data/app/helpers/decidim/menu_helper.rb +2 -2
  132. data/app/helpers/decidim/messaging/conversation_helper.rb +2 -3
  133. data/app/helpers/decidim/meta_tags_helper.rb +32 -23
  134. data/app/helpers/decidim/modal_helper.rb +23 -0
  135. data/app/helpers/decidim/omniauth_helper.rb +5 -5
  136. data/app/helpers/decidim/onboarding_action_helper.rb +13 -0
  137. data/app/helpers/decidim/orders_helper.rb +1 -2
  138. data/app/helpers/decidim/paginate_helper.rb +1 -1
  139. data/app/helpers/decidim/participatory_space_helpers.rb +1 -1
  140. data/app/helpers/decidim/passwords_helper.rb +2 -2
  141. data/app/helpers/decidim/taxonomies_helper.rb +40 -0
  142. data/app/helpers/decidim/tooltip_helper.rb +1 -4
  143. data/app/jobs/decidim/download_your_data_export_job.rb +2 -19
  144. data/app/jobs/decidim/event_publisher_job.rb +18 -9
  145. data/app/jobs/decidim/export_job.rb +5 -1
  146. data/app/jobs/decidim/export_participatory_space_job.rb +4 -1
  147. data/app/jobs/decidim/open_data_job.rb +4 -4
  148. data/app/mailers/decidim/export_mailer.rb +7 -12
  149. data/app/mailers/decidim/notifications_digest_mailer.rb +1 -7
  150. data/app/mailers/decidim/reported_mailer.rb +2 -18
  151. data/app/models/decidim/action_log.rb +20 -1
  152. data/app/models/decidim/category.rb +4 -0
  153. data/app/models/decidim/component.rb +25 -3
  154. data/app/models/decidim/metric.rb +2 -1
  155. data/app/models/decidim/moderation.rb +16 -0
  156. data/app/models/decidim/newsletter.rb +12 -8
  157. data/app/models/decidim/organization.rb +7 -3
  158. data/app/models/decidim/participatory_space_private_user.rb +20 -0
  159. data/app/models/decidim/private_export.rb +24 -0
  160. data/app/models/decidim/push_notification_message.rb +1 -1
  161. data/app/models/decidim/report.rb +1 -1
  162. data/app/models/decidim/scope.rb +4 -0
  163. data/app/models/decidim/share_token.rb +36 -10
  164. data/app/models/decidim/taxonomization.rb +23 -0
  165. data/app/models/decidim/taxonomy.rb +139 -0
  166. data/app/models/decidim/taxonomy_filter.rb +130 -0
  167. data/app/models/decidim/taxonomy_filter_item.rb +33 -0
  168. data/app/models/decidim/user.rb +13 -23
  169. data/app/models/decidim/user_base_entity.rb +12 -4
  170. data/app/models/decidim/user_moderation.rb +9 -0
  171. data/app/models/decidim/user_report.rb +4 -0
  172. data/app/packs/entrypoints/decidim_core.js +1 -0
  173. data/app/packs/entrypoints/decidim_geocoding.js +2 -0
  174. data/app/packs/images/decidim/brands/facebook.svg +10 -0
  175. data/app/packs/images/decidim/brands/google.svg +7 -1
  176. data/app/packs/images/decidim/brands/twitter-x.svg +3 -0
  177. data/app/packs/images/decidim/default-avatar.svg +1 -1
  178. data/app/packs/src/decidim/callout.js +8 -13
  179. data/app/packs/src/decidim/check_boxes_tree.js +0 -1
  180. data/app/packs/src/decidim/clipboard.js +18 -9
  181. data/app/packs/src/decidim/datepicker/datepicker_functions.js +3 -3
  182. data/app/packs/src/decidim/datepicker/generate_datepicker.js +0 -2
  183. data/app/packs/src/decidim/datepicker/generate_timepicker.js +0 -2
  184. data/app/packs/src/decidim/decidim_application.js +1 -0
  185. data/app/packs/src/decidim/direct_uploads/upload_field.js +4 -3
  186. data/app/packs/src/decidim/direct_uploads/upload_modal.js +9 -8
  187. data/app/packs/src/decidim/editor/common/suggestion.js +1 -11
  188. data/app/packs/src/decidim/geocoding/reverse_geocoding.js +60 -0
  189. data/app/packs/src/decidim/index.js +9 -5
  190. data/app/packs/src/decidim/input_character_counter.js +1 -1
  191. data/app/packs/src/decidim/map/provider/here.js +1 -1
  192. data/app/packs/src/decidim/onboarding_pending_action.js +24 -0
  193. data/app/packs/src/decidim/sticky_footer.js +29 -0
  194. data/app/packs/src/decidim/sticky_header.js +6 -31
  195. data/app/packs/src/decidim/user_registrations.js +13 -0
  196. data/app/packs/src/decidim/vendor/leaflet-tilelayer-here.js +212 -0
  197. data/app/packs/stylesheets/decidim/_accordion.scss +30 -0
  198. data/app/packs/stylesheets/decidim/_activity.scss +4 -4
  199. data/app/packs/stylesheets/decidim/_buttons.scss +19 -0
  200. data/app/packs/stylesheets/decidim/_cards.scss +0 -4
  201. data/app/packs/stylesheets/decidim/_content_blocks.scss +0 -4
  202. data/app/packs/stylesheets/decidim/_dropdown.scss +1 -1
  203. data/app/packs/stylesheets/decidim/_endorsers_list.scss +26 -20
  204. data/app/packs/stylesheets/decidim/_filters.scss +1 -1
  205. data/app/packs/stylesheets/decidim/_forms.scss +2 -2
  206. data/app/packs/stylesheets/decidim/_header.scss +39 -70
  207. data/app/packs/stylesheets/decidim/_layout.scss +34 -4
  208. data/app/packs/stylesheets/decidim/_login.scss +53 -6
  209. data/app/packs/stylesheets/decidim/_modal.scss +47 -1
  210. data/app/packs/stylesheets/decidim/_modal_tos_refuse.scss +4 -0
  211. data/app/packs/stylesheets/decidim/_modal_update.scss +1 -5
  212. data/app/packs/stylesheets/decidim/_participatory_spaces.scss +46 -0
  213. data/app/packs/stylesheets/decidim/_profile.scss +1 -1
  214. data/app/packs/stylesheets/decidim/_success_image.scss +64 -0
  215. data/app/packs/stylesheets/decidim/_tribute.scss +36 -0
  216. data/app/packs/stylesheets/decidim/application.scss +1 -1
  217. data/app/packs/stylesheets/decidim/geocoding_addons.scss +5 -0
  218. data/app/packs/stylesheets/decidim/map.scss +7 -10
  219. data/app/packs/stylesheets/decidim/resource_history.scss +31 -0
  220. data/app/permissions/decidim/default_permissions.rb +0 -2
  221. data/app/permissions/decidim/permissions.rb +9 -15
  222. data/app/presenters/decidim/admin_log/base_user_presenter.rb +67 -0
  223. data/app/presenters/decidim/admin_log/component_presenter.rb +32 -3
  224. data/app/presenters/decidim/admin_log/moderation_presenter.rb +30 -3
  225. data/app/presenters/decidim/admin_log/share_token_presenter.rb +39 -0
  226. data/app/presenters/decidim/admin_log/taxonomy_filter_presenter.rb +57 -0
  227. data/app/presenters/decidim/admin_log/taxonomy_presenter.rb +48 -0
  228. data/app/presenters/decidim/admin_log/user_group_presenter.rb +6 -6
  229. data/app/presenters/decidim/admin_log/user_presenter.rb +4 -18
  230. data/app/presenters/decidim/log/user_presenter.rb +0 -1
  231. data/app/presenters/decidim/log/value_types/date_presenter.rb +1 -0
  232. data/app/presenters/decidim/log/value_types/taxonomy_presenter.rb +29 -0
  233. data/app/presenters/decidim/notification_to_mailer_presenter.rb +3 -7
  234. data/app/presenters/decidim/participatory_space_private_user_presenter.rb +50 -0
  235. data/app/presenters/decidim/taxonomy_filter_presenter.rb +19 -0
  236. data/app/presenters/decidim/taxonomy_presenter.rb +14 -0
  237. data/app/presenters/decidim/user_presenter.rb +1 -1
  238. data/app/queries/decidim/last_activity.rb +0 -25
  239. data/app/queries/decidim/metrics/blocked_users_metric_manage.rb +2 -2
  240. data/app/queries/decidim/metrics/users_metric_manage.rb +2 -2
  241. data/app/queries/decidim/public_activities.rb +1 -12
  242. data/app/queries/decidim/stats_users_count.rb +2 -2
  243. data/app/resolvers/decidim/meta_image_url_resolver.rb +128 -0
  244. data/app/serializers/decidim/exporters/open_data_blocked_user_serializer.rb +25 -0
  245. data/app/serializers/decidim/exporters/open_data_metric_serializer.rb +22 -0
  246. data/app/serializers/decidim/exporters/open_data_moderation_serializer.rb +30 -0
  247. data/app/serializers/decidim/exporters/open_data_taxonomy_serializer.rb +30 -0
  248. data/app/serializers/decidim/exporters/open_data_user_group_serializer.rb +38 -0
  249. data/app/serializers/decidim/exporters/open_data_user_serializer.rb +39 -0
  250. data/app/serializers/decidim/exporters/participatory_space_serializer.rb +104 -0
  251. data/app/serializers/decidim/exporters/serializer.rb +25 -0
  252. data/app/serializers/decidim/schema_org_breadcrumb_list_serializer.rb +52 -0
  253. data/app/services/decidim/action_authorizer.rb +32 -3
  254. data/app/services/decidim/base_diff_renderer.rb +1 -3
  255. data/app/services/decidim/download_your_data_exporter.rb +58 -24
  256. data/app/services/decidim/onboarding_manager.rb +272 -0
  257. data/app/services/decidim/open_data_exporter.rb +139 -13
  258. data/app/services/decidim/static_map_generator.rb +1 -1
  259. data/app/services/decidim/traceability.rb +13 -0
  260. data/app/uploaders/decidim/application_uploader.rb +1 -1
  261. data/app/validators/etiquette_validator.rb +9 -2
  262. data/app/validators/passthru_validator.rb +1 -1
  263. data/app/validators/translated_etiquette_validator.rb +32 -0
  264. data/app/views/decidim/account/_password_fields.html.erb +2 -2
  265. data/app/views/decidim/application/_accordion_section.html.erb +14 -0
  266. data/app/views/decidim/application/_collection.html.erb +30 -18
  267. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +5 -1
  268. data/app/views/decidim/devise/omniauth_registrations/new_tos_fields.html.erb +29 -0
  269. data/app/views/decidim/devise/registrations/new.html.erb +10 -22
  270. data/app/views/decidim/devise/sessions/new.html.erb +24 -29
  271. data/app/views/decidim/devise/shared/_omniauth_buttons.html.erb +2 -4
  272. data/app/views/decidim/devise/shared/_tos_fields.html.erb +16 -0
  273. data/app/views/decidim/download_your_data/_export.html.erb +15 -0
  274. data/app/views/decidim/download_your_data/show.html.erb +51 -5
  275. data/app/views/decidim/endorsements/update_buttons_and_counters.js.erb +16 -19
  276. data/app/views/decidim/errors/internal_server_error.html.erb +1 -1
  277. data/app/views/decidim/errors/not_found.html.erb +1 -1
  278. data/app/views/decidim/export_mailer/download_your_data_export.html.erb +2 -2
  279. data/app/views/decidim/export_mailer/export.html.erb +5 -1
  280. data/app/views/decidim/last_activities/index.html.erb +1 -1
  281. data/app/views/decidim/messaging/conversations/_reply_form.html.erb +2 -1
  282. data/app/views/decidim/messaging/conversations/_start.html.erb +1 -1
  283. data/app/views/decidim/newsletters/unsubscribe.html.erb +4 -16
  284. data/app/views/decidim/notifications_settings/show.html.erb +22 -0
  285. data/app/views/decidim/open_data/_how_to_open_accordion_section.html.erb +15 -0
  286. data/app/views/decidim/open_data/index.html.erb +108 -0
  287. data/app/views/decidim/pages/show.html.erb +2 -1
  288. data/app/views/decidim/participatory_space_private_users/_participatory_space_private_user.html.erb +1 -0
  289. data/app/views/decidim/reported_mailer/hide.html.erb +9 -0
  290. data/app/views/decidim/reported_mailer/report.html.erb +1 -1
  291. data/app/views/decidim/searches/_count.html.erb +1 -1
  292. data/app/views/decidim/searches/_filters.html.erb +39 -76
  293. data/app/views/decidim/shared/_component_announcement.html.erb +1 -1
  294. data/app/views/decidim/shared/_confirm_modal.html.erb +5 -3
  295. data/app/views/decidim/shared/_filters.html.erb +4 -6
  296. data/app/views/decidim/shared/_login_modal.html.erb +26 -20
  297. data/app/views/decidim/shared/_orders.html.erb +2 -2
  298. data/app/views/decidim/shared/_resource_actions.html.erb +21 -0
  299. data/app/views/decidim/shared/_results_per_page.html.erb +1 -1
  300. data/app/views/decidim/shared/filters/_check_boxes_tree.html.erb +1 -2
  301. data/app/views/decidim/shared/filters/_collection.html.erb +1 -1
  302. data/app/views/decidim/shared/filters/_dropdown_label.html.erb +7 -4
  303. data/app/views/kaminari/decidim/_page.html.erb +1 -1
  304. data/app/views/kaminari/decidim/_paginator.html.erb +1 -1
  305. data/app/views/layouts/decidim/_application.html.erb +0 -1
  306. data/app/views/layouts/decidim/_logo.html.erb +2 -2
  307. data/app/views/layouts/decidim/_logo_mobile.html.erb +1 -1
  308. data/app/views/layouts/decidim/_meta_tags_config.html.erb +6 -11
  309. data/app/views/layouts/decidim/_schema_org_breadcrumb_list.html.erb +3 -0
  310. data/app/views/layouts/decidim/_wrapper.html.erb +15 -9
  311. data/app/views/layouts/decidim/footer/_main.html.erb +1 -1
  312. data/app/views/layouts/decidim/footer/_main_intro.html.erb +1 -1
  313. data/app/views/layouts/decidim/footer/_main_legal.html.erb +1 -1
  314. data/app/views/layouts/decidim/footer/_main_links.html.erb +1 -1
  315. data/app/views/layouts/decidim/footer/_mini.html.erb +2 -2
  316. data/app/views/layouts/decidim/header/_close_ephemeral_session.html.erb +25 -0
  317. data/app/views/layouts/decidim/header/_main.html.erb +14 -10
  318. data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +0 -6
  319. data/app/views/layouts/decidim/header/_main_links_dropdown.html.erb +0 -2
  320. data/app/views/layouts/decidim/header/_main_links_mobile_account.html.erb +1 -1
  321. data/app/views/layouts/decidim/header/_menu_breadcrumb_items.html.erb +2 -0
  322. data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_desktop.html.erb +11 -5
  323. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +5 -5
  324. data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +1 -1
  325. data/app/views/layouts/decidim/shared/_layout_item.html.erb +1 -1
  326. data/config/assets.rb +2 -1
  327. data/config/locales/ar.yml +38 -74
  328. data/config/locales/bg-BG.yml +2 -2
  329. data/config/locales/bg.yml +38 -74
  330. data/config/locales/bs-BA.yml +0 -2
  331. data/config/locales/ca.yml +374 -130
  332. data/config/locales/cs.yml +379 -116
  333. data/config/locales/de.yml +370 -132
  334. data/config/locales/el.yml +26 -58
  335. data/config/locales/en.yml +354 -110
  336. data/config/locales/eo.yml +0 -4
  337. data/config/locales/es-MX.yml +368 -127
  338. data/config/locales/es-PY.yml +373 -132
  339. data/config/locales/es.yml +374 -130
  340. data/config/locales/eu.yml +461 -215
  341. data/config/locales/fi-plain.yml +367 -130
  342. data/config/locales/fi.yml +372 -132
  343. data/config/locales/fr-CA.yml +180 -125
  344. data/config/locales/fr-LU.yml +3 -3
  345. data/config/locales/fr.yml +180 -122
  346. data/config/locales/ga-IE.yml +4 -25
  347. data/config/locales/gl.yml +23 -58
  348. data/config/locales/hu.yml +35 -62
  349. data/config/locales/id-ID.yml +24 -57
  350. data/config/locales/is-IS.yml +6 -25
  351. data/config/locales/it.yml +39 -218
  352. data/config/locales/ja.yml +235 -140
  353. data/config/locales/lb-LU.yml +2 -2
  354. data/config/locales/lb.yml +31 -76
  355. data/config/locales/lt.yml +29 -64
  356. data/config/locales/lv.yml +24 -58
  357. data/config/locales/nl.yml +26 -75
  358. data/config/locales/no.yml +26 -70
  359. data/config/locales/pl.yml +35 -72
  360. data/config/locales/pt-BR.yml +44 -63
  361. data/config/locales/pt.yml +26 -70
  362. data/config/locales/ro-RO.yml +118 -183
  363. data/config/locales/ru.yml +16 -43
  364. data/config/locales/sk-SK.yml +3 -3
  365. data/config/locales/sk.yml +27 -72
  366. data/config/locales/sl.yml +0 -4
  367. data/config/locales/sr-CS.yml +0 -2
  368. data/config/locales/sv.yml +141 -133
  369. data/config/locales/tr-TR.yml +32 -75
  370. data/config/locales/uk.yml +8 -29
  371. data/config/locales/zh-CN.yml +24 -68
  372. data/config/locales/zh-TW.yml +28 -62
  373. data/config/routes.rb +4 -10
  374. data/db/migrate/20171212103803_create_unique_nicknames.rb +1 -1
  375. data/db/migrate/20180221101934_fix_nickname_index.rb +1 -1
  376. data/db/migrate/20180706104107_add_nickname_to_managed_users.rb +1 -1
  377. data/db/migrate/20181001124950_move_users_groups_to_users_table.rb +1 -1
  378. data/db/migrate/20181025082245_add_timestamps_to_components.rb +2 -0
  379. data/db/migrate/20190412131728_fix_user_names.rb +1 -1
  380. data/db/migrate/20240628111905_add_visible_to_components.rb +7 -0
  381. data/db/migrate/20240704115429_create_decidim_taxonomies.rb +23 -0
  382. data/db/migrate/20240717093514_add_registered_only_to_decidim_share_tokens.rb +7 -0
  383. data/db/migrate/20240722215500_change_object_changes_on_versions.rb +39 -0
  384. data/db/migrate/20240806065417_create_decidim_taxonomy_filters.rb +23 -0
  385. data/db/migrate/20240822161348_add_deleted_at_to_decidim_components.rb +8 -0
  386. data/db/migrate/20240906162524_add_part_of_to_taxonomies.rb +26 -0
  387. data/db/migrate/20241001135825_add_role_to_participatory_space_private_users.rb +7 -0
  388. data/db/migrate/20241001140408_add_published_to_participatory_space_private_users.rb +7 -0
  389. data/db/migrate/20241022002600_create_private_exports.rb +18 -0
  390. data/db/migrate/20241028114430_add_component_counter_to_taxonomy_filters.rb +7 -0
  391. data/db/migrate/20241111104357_add_names_and_space_boolean_to_taxonomy_filters.rb +9 -0
  392. data/db/migrate/20241127093708_add_taxonomy_to_metrics.rb +7 -0
  393. data/db/migrate/20241204121445_add_participatory_space_manifests_from_taxonomy_filters.rb +9 -0
  394. data/decidim-core.gemspec +14 -17
  395. data/lib/decidim/action_authorization.rb +3 -2
  396. data/lib/decidim/amendable.rb +1 -1
  397. data/lib/decidim/api/input_filters/category_input_filter.rb +5 -3
  398. data/lib/decidim/api/input_filters/component_input_filter.rb +33 -20
  399. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +53 -44
  400. data/lib/decidim/api/input_sorts/component_input_sort.rb +15 -13
  401. data/lib/decidim/api/input_sorts/user_entity_input_sort.rb +4 -4
  402. data/lib/decidim/api/interfaces/author_interface.rb +3 -2
  403. data/lib/decidim/api/interfaces/coauthorable_interface.rb +5 -5
  404. data/lib/decidim/api/interfaces/endorsable_interface.rb +2 -2
  405. data/lib/decidim/api/interfaces/participatory_space_interface.rb +5 -10
  406. data/lib/decidim/api/interfaces/taxonomizable_interface.rb +13 -0
  407. data/lib/decidim/api/types/amendment_type.rb +5 -7
  408. data/lib/decidim/api/types/area_api_type.rb +3 -3
  409. data/lib/decidim/api/types/attachment_type.rb +3 -3
  410. data/lib/decidim/api/types/category_type.rb +2 -2
  411. data/lib/decidim/api/types/decidim_type.rb +5 -1
  412. data/lib/decidim/api/types/fingerprint_type.rb +1 -1
  413. data/lib/decidim/api/types/localized_string_type.rb +1 -1
  414. data/lib/decidim/api/types/metric_history_type.rb +2 -0
  415. data/lib/decidim/api/types/metric_type.rb +1 -1
  416. data/lib/decidim/api/types/organization_type.rb +5 -0
  417. data/lib/decidim/api/types/participatory_space_link_type.rb +2 -2
  418. data/lib/decidim/api/types/participatory_space_manifest_type.rb +1 -1
  419. data/lib/decidim/api/types/quantifiable_translated_field_type.rb +1 -1
  420. data/lib/decidim/api/types/scope_api_type.rb +2 -3
  421. data/lib/decidim/api/types/session_type.rb +1 -2
  422. data/lib/decidim/api/types/taxonomy_type.rb +15 -0
  423. data/lib/decidim/api/types/trace_version_type.rb +2 -2
  424. data/lib/decidim/api/types/translated_field_type.rb +3 -5
  425. data/lib/decidim/api/types/user_group_type.rb +7 -20
  426. data/lib/decidim/api/types/user_type.rb +7 -20
  427. data/lib/decidim/asset_router/storage.rb +6 -11
  428. data/lib/decidim/assets/tailwind/tailwind.config.js.erb +3 -3
  429. data/lib/decidim/attachment_attributes.rb +1 -1
  430. data/lib/decidim/attribute_encryptor.rb +1 -1
  431. data/lib/decidim/attribute_object/nested_validator.rb +1 -1
  432. data/lib/decidim/attributes/integer_with_units.rb +27 -0
  433. data/lib/decidim/attributes/time_with_zone.rb +1 -5
  434. data/lib/decidim/attributes.rb +2 -0
  435. data/lib/decidim/authorization_form_builder.rb +0 -7
  436. data/lib/decidim/coauthorable.rb +1 -1
  437. data/lib/decidim/command.rb +3 -3
  438. data/lib/decidim/commands/destroy_resource.rb +5 -1
  439. data/lib/decidim/commands/resource_handler.rb +2 -2
  440. data/lib/decidim/commands/restore_resource.rb +45 -0
  441. data/lib/decidim/commands/soft_delete_resource.rb +63 -0
  442. data/lib/decidim/component_manifest.rb +7 -0
  443. data/lib/decidim/content_parsers/blob_parser.rb +8 -10
  444. data/lib/decidim/content_parsers/user_parser.rb +1 -1
  445. data/lib/decidim/core/api.rb +2 -0
  446. data/lib/decidim/core/engine.rb +21 -7
  447. data/lib/decidim/core/menu.rb +0 -5
  448. data/lib/decidim/core/seeds.rb +42 -2
  449. data/lib/decidim/core/test/factories.rb +107 -4
  450. data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +85 -0
  451. data/lib/decidim/core/test/shared_examples/announcements_examples.rb +0 -4
  452. data/lib/decidim/core/test/shared_examples/comments_examples.rb +393 -38
  453. data/lib/decidim/core/test/shared_examples/components_controller_hide_shared_examples.rb +11 -0
  454. data/lib/decidim/core/test/shared_examples/components_controller_reorder_shared_examples.rb +21 -0
  455. data/lib/decidim/core/test/shared_examples/download_open_data_shared_context.rb +36 -0
  456. data/lib/decidim/core/test/shared_examples/download_open_data_shared_examples.rb +45 -0
  457. data/lib/decidim/core/test/shared_examples/download_your_data_shared_examples.rb +17 -0
  458. data/lib/decidim/core/test/shared_examples/etiquette_validator_examples.rb +25 -0
  459. data/lib/decidim/core/test/shared_examples/follows_examples.rb +43 -0
  460. data/lib/decidim/core/test/shared_examples/has_taxonomies.rb +94 -0
  461. data/lib/decidim/core/test/shared_examples/manage_share_tokens_examples.rb +237 -0
  462. data/lib/decidim/core/test/shared_examples/map_examples.rb +2 -0
  463. data/lib/decidim/core/test/shared_examples/open_data_exporter_examples.rb +102 -0
  464. data/lib/decidim/core/test/shared_examples/participatory_space_members_page_examples.rb +46 -0
  465. data/lib/decidim/core/test/shared_examples/participatory_space_search_examples.rb +98 -0
  466. data/lib/decidim/core/test/shared_examples/permissions.rb +7 -7
  467. data/lib/decidim/core/test/shared_examples/preview_with_share_token_examples.rb +94 -0
  468. data/lib/decidim/core/test/shared_examples/reports_examples.rb +15 -53
  469. data/lib/decidim/core/test/shared_examples/resource_endorsed_event_examples.rb +2 -2
  470. data/lib/decidim/core/test/shared_examples/resource_search_examples.rb +75 -69
  471. data/lib/decidim/core/test/shared_examples/searchable_resources_shared_context.rb +1 -1
  472. data/lib/decidim/core/test/shared_examples/simple_event.rb +33 -19
  473. data/lib/decidim/core/test/shared_examples/social_share_examples.rb +7 -14
  474. data/lib/decidim/core/test/shared_examples/softdeleteable_components_examples.rb +173 -0
  475. data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +54 -8
  476. data/lib/decidim/core/test/shared_examples/taxonomizable_interface_examples.rb +20 -0
  477. data/lib/decidim/core/test/shared_examples/taxonomizable_resource_examples.rb +37 -0
  478. data/lib/decidim/core/test/shared_examples/taxonomy_settings.rb +49 -0
  479. data/lib/decidim/core/test/shared_examples/translated_event_examples.rb +1 -1
  480. data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +0 -26
  481. data/lib/decidim/core/test/shared_examples/versions_controller_examples.rb +2 -28
  482. data/lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb +1 -1
  483. data/lib/decidim/core/test.rb +9 -5
  484. data/lib/decidim/core/version.rb +1 -1
  485. data/lib/decidim/core.rb +58 -0
  486. data/lib/decidim/download_your_data_serializers/download_your_data_identity_serializer.rb +0 -4
  487. data/lib/decidim/download_your_data_serializers/download_your_data_participatory_space_private_user_serializer.rb +3 -1
  488. data/lib/decidim/download_your_data_serializers/download_your_data_report_serializer.rb +2 -1
  489. data/lib/decidim/download_your_data_serializers/download_your_data_user_serializer.rb +6 -7
  490. data/lib/decidim/download_your_data_serializers.rb +19 -0
  491. data/lib/decidim/exporters/csv.rb +6 -0
  492. data/lib/decidim/exporters/export_manifest.rb +14 -0
  493. data/lib/decidim/exporters/pdf.rb +26 -22
  494. data/lib/decidim/filter_form_builder.rb +12 -15
  495. data/lib/decidim/form_builder.rb +6 -143
  496. data/lib/decidim/has_category.rb +5 -1
  497. data/lib/decidim/has_private_users.rb +4 -0
  498. data/lib/decidim/has_taxonomy_settings.rb +47 -0
  499. data/lib/decidim/has_upload_validations.rb +1 -1
  500. data/lib/decidim/legacy_form_builder.rb +118 -0
  501. data/lib/decidim/maintenance/import_models/application_record.rb +93 -0
  502. data/lib/decidim/maintenance/import_models/area.rb +82 -0
  503. data/lib/decidim/maintenance/import_models/area_type.rb +12 -0
  504. data/lib/decidim/maintenance/import_models/assembly_type.rb +49 -0
  505. data/lib/decidim/maintenance/import_models/categorization.rb +14 -0
  506. data/lib/decidim/maintenance/import_models/category.rb +107 -0
  507. data/lib/decidim/maintenance/import_models/participatory_process_type.rb +21 -0
  508. data/lib/decidim/maintenance/import_models/scope.rb +163 -0
  509. data/lib/decidim/maintenance/import_models.rb +19 -0
  510. data/lib/decidim/maintenance/taxonomy_importer.rb +132 -0
  511. data/lib/decidim/maintenance/taxonomy_plan.rb +78 -0
  512. data/lib/decidim/maintenance.rb +12 -0
  513. data/lib/decidim/map/autocomplete.rb +52 -8
  514. data/lib/decidim/map/dynamic_map.rb +1 -1
  515. data/lib/decidim/map/provider/dynamic_map/here.rb +40 -1
  516. data/lib/decidim/map/provider/geocoding/here.rb +9 -3
  517. data/lib/decidim/map/provider/static_map/here.rb +0 -34
  518. data/lib/decidim/map.rb +3 -6
  519. data/lib/decidim/moderation_tools.rb +16 -19
  520. data/lib/decidim/newsletter_encryptor.rb +1 -1
  521. data/lib/decidim/nicknamizable.rb +9 -6
  522. data/lib/decidim/paddable.rb +1 -1
  523. data/lib/decidim/participable.rb +10 -10
  524. data/lib/decidim/participatory_space_user.rb +10 -0
  525. data/lib/decidim/private_download_helper.rb +15 -0
  526. data/lib/decidim/record_encryptor.rb +51 -46
  527. data/lib/decidim/reportable.rb +2 -6
  528. data/lib/decidim/resourceable.rb +16 -0
  529. data/lib/decidim/seeds.rb +18 -20
  530. data/lib/decidim/settings_manifest.rb +34 -1
  531. data/lib/decidim/soft_deletable.rb +17 -0
  532. data/lib/decidim/taxonomizable.rb +72 -0
  533. data/lib/decidim/translatable_attributes.rb +1 -5
  534. data/lib/decidim/view_model.rb +0 -1
  535. data/lib/tasks/decidim_download_your_data_tasks.rake +2 -4
  536. data/lib/tasks/decidim_procfile.rake +6 -0
  537. data/lib/tasks/decidim_tasks.rake +1 -0
  538. data/lib/tasks/decidim_taxonomies.rake +155 -0
  539. data/lib/tasks/upgrade/{decidim_fix_categorization.rake → clean.rake} +25 -18
  540. data/lib/tasks/upgrade/decidim_active_storage_migration_tasks.rake +1 -1
  541. data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +20 -23
  542. data/lib/tasks/upgrade/migrations.rake +91 -0
  543. metadata +201 -113
  544. data/app/cells/decidim/amendable/amenders_list/show.erb +0 -0
  545. data/app/cells/decidim/content_blocks/base/content.erb +0 -0
  546. data/app/cells/decidim/endorsers_list/full_endorsers_list.erb +0 -3
  547. data/app/cells/decidim/endorsers_list_button/content.erb +0 -1
  548. data/app/cells/decidim/endorsers_list_button_cell.rb +0 -15
  549. data/app/cells/decidim/report_user_button/already_reported_modal.erb +0 -11
  550. data/app/cells/decidim/report_user_button/flag_modal.erb +0 -47
  551. data/app/cells/decidim/report_user_button/show.erb +0 -2
  552. data/app/cells/decidim/report_user_button_cell.rb +0 -59
  553. data/app/cells/decidim/scopes_picker/scope_picker_prompt.erb +0 -3
  554. data/app/cells/decidim/scopes_picker/scope_picker_values.erb +0 -5
  555. data/app/cells/decidim/scopes_picker/show.erb +0 -14
  556. data/app/cells/decidim/scopes_picker_cell.rb +0 -92
  557. data/app/commands/decidim/update_user_interests.rb +0 -41
  558. data/app/controllers/decidim/scopes_controller.rb +0 -84
  559. data/app/controllers/decidim/user_interests_controller.rb +0 -30
  560. data/app/forms/decidim/user_interest_scope_form.rb +0 -25
  561. data/app/forms/decidim/user_interests_form.rb +0 -17
  562. data/app/helpers/decidim/categories_helper.rb +0 -26
  563. data/app/helpers/decidim/scopes_helper.rb +0 -105
  564. data/app/jobs/decidim/hide_child_resources_job.rb +0 -24
  565. data/app/packs/images/decidim/vendor/leaflet/layers-2x.png +0 -0
  566. data/app/packs/images/decidim/vendor/leaflet/layers.png +0 -0
  567. data/app/packs/images/decidim/vendor/leaflet/marker-icon-2x.png +0 -0
  568. data/app/packs/images/decidim/vendor/leaflet/marker-icon.png +0 -0
  569. data/app/packs/images/decidim/vendor/leaflet/marker-shadow.png +0 -0
  570. data/app/packs/src/decidim/dropdown_menu.js +0 -18
  571. data/app/packs/stylesheets/decidim/_hashtags.scss +0 -5
  572. data/app/packs/stylesheets/decidim/legacy/MarkerCluster.Default.scss +0 -67
  573. data/app/packs/stylesheets/decidim/legacy/MarkerCluster.scss +0 -18
  574. data/app/packs/stylesheets/decidim/legacy/leaflet.scss +0 -705
  575. data/app/validators/scope_belongs_to_component_validator.rb +0 -16
  576. data/app/views/decidim/account/_user_groups.html.erb +0 -0
  577. data/app/views/decidim/reported_mailer/hidden_automatically.html.erb +0 -25
  578. data/app/views/decidim/reported_mailer/hidden_manually.html.erb +0 -25
  579. data/app/views/decidim/scopes/_scopes_picker_input.html.erb +0 -19
  580. data/app/views/decidim/scopes/picker.html.erb +0 -53
  581. data/app/views/decidim/shared/_comments.html.erb +0 -0
  582. data/app/views/decidim/shared/_share_modal.html.erb +0 -26
  583. data/app/views/decidim/shared/_tags.html.erb +0 -1
  584. data/app/views/decidim/user_interests/_areas.html.erb +0 -14
  585. data/app/views/decidim/user_interests/_scopes.html.erb +0 -22
  586. data/app/views/decidim/user_interests/show.html.erb +0 -22
  587. data/config/initializers/foundation_rails_helper.rb +0 -4
  588. data/config/locales/ca-IT.yml +0 -2146
  589. data/lib/decidim/core/test/shared_examples/has_category.rb +0 -38
  590. data/lib/decidim/core/test/shared_examples/has_scope.rb +0 -11
  591. data/lib/decidim/core/test/shared_examples/manage_component_share_tokens.rb +0 -83
  592. data/lib/decidim/core/test/shared_examples/preview_component_with_share_token_examples.rb +0 -49
  593. data/lib/decidim/core/test/shared_examples/scope_helper_examples.rb +0 -93
  594. data/lib/decidim/seven_zip_wrapper.rb +0 -29
  595. data/lib/tasks/upgrade/clean_hidden_resources.rake +0 -33
@@ -9,11 +9,11 @@ module Decidim
9
9
 
10
10
  field :endorsements, [Decidim::Core::AuthorInterface, { null: true }], "The endorsements of this object.", null: false
11
11
 
12
+ field :endorsements_count, Integer, description: "The total amount of endorsements the object has received", null: true
13
+
12
14
  def endorsements
13
15
  object.endorsements.map(&:normalized_author)
14
16
  end
15
-
16
- field :endorsements_count, Integer, description: "The total amount of endorsements the object has received", null: true
17
17
  end
18
18
  end
19
19
  end
@@ -8,11 +8,13 @@ module Decidim
8
8
  description "The interface that all participatory spaces should implement."
9
9
 
10
10
  field :id, GraphQL::Types::ID, "The participatory space's unique ID", null: false
11
-
11
+ field :components, [ComponentInterface, { null: true }], null: true, description: "Lists the components this space contains." do
12
+ argument :filter, ComponentInputFilter, "Provides several methods to filter the results", required: false
13
+ argument :order, ComponentInputSort, "Provides several methods to order the results", required: false
14
+ end
15
+ field :stats, [Decidim::Core::StatisticType, { null: true }], "The statistics collection of this participatory space", null: true
12
16
  field :title, TranslatedFieldType, "The graphql_name of this participatory space.", null: false
13
-
14
17
  field :type, String, description: "The participatory space class name. i.e. Decidim::ParticipatoryProcess", null: false
15
-
16
18
  field :manifest, Decidim::Core::ParticipatorySpaceManifestType, description: "The manifest information for the participatory space.", null: false
17
19
 
18
20
  def type
@@ -23,17 +25,10 @@ module Decidim
23
25
  ParticipatorySpaceManifestPresenter.new(object.manifest, object.organization)
24
26
  end
25
27
 
26
- field :components, [ComponentInterface, { null: true }], null: true, description: "Lists the components this space contains." do
27
- argument :filter, ComponentInputFilter, "Provides several methods to filter the results", required: false
28
- argument :order, ComponentInputSort, "Provides several methods to order the results", required: false
29
- end
30
-
31
28
  def components(filter: {}, order: {})
32
29
  ComponentList.new.call(object, { filter:, order: }, context)
33
30
  end
34
31
 
35
- field :stats, [Decidim::Core::StatisticType, { null: true }], null: true
36
-
37
32
  def stats
38
33
  return if object.respond_to?(:show_statistics) && !object.show_statistics
39
34
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Core
5
+ # This interface represents a categorizable object.
6
+ module TaxonomizableInterface
7
+ include Decidim::Api::Types::BaseInterface
8
+ description "An interface that can be used in taxonomizable objects."
9
+
10
+ field :taxonomies, [Decidim::Core::TaxonomyType], "The object's taxonomies", null: true
11
+ end
12
+ end
13
+ end
@@ -5,15 +5,13 @@ module Decidim
5
5
  class AmendmentType < Decidim::Api::Types::BaseObject
6
6
  description "An amendment"
7
7
 
8
- field :id, GraphQL::Types::ID, "The id of this amendment", null: false
9
- field :state, GraphQL::Types::String, "The status of this amendment", null: false
10
- field :amender, Decidim::Core::AuthorInterface, "The author of this amendment", null: false
11
-
12
- field :amendable_type, GraphQL::Types::String, method: :decidim_amendable_type, description: "Type of the amendable object", null: false
13
- field :emendation_type, GraphQL::Types::String, method: :decidim_emendation_type, description: "Type of the emendation object", null: false
14
-
15
8
  field :amendable, AmendableEntityInterface, "The original amended resource (currently, a proposal only)", null: false
9
+ field :amendable_type, GraphQL::Types::String, method: :decidim_amendable_type, description: "Type of the amendable object", null: false
10
+ field :amender, Decidim::Core::AuthorInterface, "The author of this amendment", null: false
16
11
  field :emendation, AmendableEntityInterface, "The emendation (currently, a proposal only)", null: false
12
+ field :emendation_type, GraphQL::Types::String, method: :decidim_emendation_type, description: "Type of the emendation object", null: false
13
+ field :id, GraphQL::Types::ID, "The id of this amendment", null: false
14
+ field :state, GraphQL::Types::String, "The status of this amendment", null: false
17
15
  end
18
16
  end
19
17
  end
@@ -3,14 +3,14 @@
3
3
  module Decidim
4
4
  module Core
5
5
  class AreaApiType < Decidim::Api::Types::BaseObject
6
+ implements Decidim::Core::TimestampsInterface
7
+
6
8
  graphql_name "Area"
7
9
  description "An area."
8
10
 
11
+ field :area_type, Decidim::Core::AreaTypeType, "The area type of this area", null: true
9
12
  field :id, GraphQL::Types::ID, "Internal ID for this area", null: false
10
13
  field :name, Decidim::Core::TranslatedFieldType, "The graphql_name of this area.", null: false
11
- field :area_type, Decidim::Core::AreaTypeType, "The area type of this area", null: true
12
- field :created_at, Decidim::Core::DateTimeType, "The time this assembly was created", null: false
13
- field :updated_at, Decidim::Core::DateTimeType, "The time this assembly was updated", null: false
14
14
  end
15
15
  end
16
16
  end
@@ -5,11 +5,11 @@ module Decidim
5
5
  class AttachmentType < Decidim::Api::Types::BaseObject
6
6
  description "A file attachment"
7
7
 
8
- field :title, Decidim::Core::TranslatedFieldType, "The title of this attachment.", null: false
9
8
  field :description, Decidim::Core::TranslatedFieldType, "The description of this attachment.", null: false
10
- field :url, GraphQL::Types::String, "The url of this attachment", null: false
11
- field :type, GraphQL::Types::String, "The type of this attachment", method: :file_type, null: false
12
9
  field :thumbnail, GraphQL::Types::String, "A thumbnail of this attachment, if it is an image.", method: :thumbnail_url, null: true
10
+ field :title, Decidim::Core::TranslatedFieldType, "The title of this attachment.", null: false
11
+ field :type, GraphQL::Types::String, "The type of this attachment", method: :file_type, null: false
12
+ field :url, GraphQL::Types::String, "The url of this attachment", null: false
13
13
  end
14
14
  end
15
15
  end
@@ -5,10 +5,10 @@ module Decidim
5
5
  class CategoryType < Decidim::Api::Types::BaseObject
6
6
  description "A category that can be applied to other resources."
7
7
 
8
- field :id, GraphQL::Types::ID, null: false
8
+ field :id, GraphQL::Types::ID, "The id for this category", null: false
9
9
  field :name, Decidim::Core::TranslatedFieldType, "The name of this category.", null: false
10
- field :subcategories, [Decidim::Core::CategoryType, { null: true }], "Subcategories of this category.", null: false
11
10
  field :parent, Decidim::Core::CategoryType, "This category's parent category.", null: true
11
+ field :subcategories, [Decidim::Core::CategoryType, { null: true }], "Subcategories of this category.", null: false
12
12
  end
13
13
  end
14
14
  end
@@ -6,8 +6,12 @@ module Decidim
6
6
  class DecidimType < Decidim::Api::Types::BaseObject
7
7
  description "Decidim's framework-related properties."
8
8
 
9
- field :version, GraphQL::Types::String, "The current decidim's version of this deployment.", null: false
10
9
  field :application_name, GraphQL::Types::String, "The current installation's name.", null: false
10
+ field :version, GraphQL::Types::String, "The current decidim's version of this deployment.", null: true
11
+
12
+ def version
13
+ object.version if Decidim::Api.disclose_system_version
14
+ end
11
15
  end
12
16
  end
13
17
  end
@@ -5,8 +5,8 @@ module Decidim
5
5
  class FingerprintType < Decidim::Api::Types::BaseObject
6
6
  description "A fingerprint object"
7
7
 
8
- field :value, GraphQL::Types::String, "The the hash value for the fingerprint", null: false
9
8
  field :source, GraphQL::Types::String, description: "Returns the source String (usually a json) from which the fingerprint is generated.", null: false
9
+ field :value, GraphQL::Types::String, "The the hash value for the fingerprint", null: false
10
10
  end
11
11
  end
12
12
  end
@@ -7,8 +7,8 @@ module Decidim
7
7
  description "Represents a particular translation of a LocalizedStringType"
8
8
 
9
9
  field :locale, GraphQL::Types::String, "The standard locale of this translation.", null: false
10
- field :text, GraphQL::Types::String, "The content of this translation.", null: true
11
10
  field :machine_translated, GraphQL::Types::Boolean, "Whether this string is machine translated or not.", null: false
11
+ field :text, GraphQL::Types::String, "The content of this translation.", null: true
12
12
 
13
13
  def machine_translated
14
14
  if object.respond_to?(:machine_translated)
@@ -3,6 +3,8 @@
3
3
  module Decidim
4
4
  module Core
5
5
  class MetricHistoryType < Decidim::Api::Types::BaseObject
6
+ description "A metric history"
7
+
6
8
  field :key, GraphQL::Types::String, "The key value", null: false
7
9
  field :value, GraphQL::Types::Int, "The value for each key", null: false
8
10
 
@@ -5,9 +5,9 @@ module Decidim
5
5
  class MetricType < Decidim::Api::Types::BaseObject
6
6
  description "Metric data"
7
7
 
8
- field :name, GraphQL::Types::String, "The graphql_name of the metric", null: false
9
8
  field :count, GraphQL::Types::Int, "The last value of the metric", null: false
10
9
  field :history, [MetricHistoryType, { null: true }], "The historic values for this metric", null: false
10
+ field :name, GraphQL::Types::String, "The graphql_name of the metric", null: false
11
11
  end
12
12
  end
13
13
  end
@@ -6,12 +6,17 @@ module Decidim
6
6
  description "The current organization"
7
7
 
8
8
  field :name, Decidim::Core::TranslatedFieldType, "The name of the current organization", null: true
9
+ field :taxonomies, [Decidim::Core::TaxonomyType, { null: true }], "The taxonomies associated to this organization", null: true
9
10
 
10
11
  field :stats, [Core::StatisticType, { null: true }], description: "The statistics associated to this object", null: true
11
12
 
12
13
  def stats
13
14
  Decidim.stats.with_context(object)
14
15
  end
16
+
17
+ def taxonomies
18
+ object.taxonomies.roots
19
+ end
15
20
  end
16
21
  end
17
22
  end
@@ -5,11 +5,11 @@ module Decidim
5
5
  class ParticipatorySpaceLinkType < Decidim::Api::Types::BaseObject
6
6
  description "A link representation between participatory spaces"
7
7
 
8
- field :id, GraphQL::Types::ID, "The id of this participatory space link", null: false
9
8
  field :from_type, GraphQL::Types::String, "The origin participatory space type for this participatory space link", null: false
10
- field :to_type, GraphQL::Types::String, "The destination participatory space type for this participatory space link", null: false
9
+ field :id, GraphQL::Types::ID, "The id of this participatory space link", null: false
11
10
  field :name, GraphQL::Types::String, "The name (purpose) of this participatory space link", null: false
12
11
  field :participatory_space, ParticipatorySpaceInterface, description: "The linked participatory space (polymorphic)", null: false
12
+ field :to_type, GraphQL::Types::String, "The destination participatory space type for this participatory space link", null: false
13
13
 
14
14
  def participatory_space
15
15
  manifest_name = object.name.partition("included_").last
@@ -5,8 +5,8 @@ module Decidim
5
5
  class ParticipatorySpaceManifestType < Decidim::Api::Types::BaseObject
6
6
  description "A participatory manifest"
7
7
 
8
- field :name, GraphQL::Types::String, "The name of the manifest", null: false
9
8
  field :human_name, Decidim::Core::QuantifiableTranslatedFieldType, "The human readable name for the manifest", null: false
9
+ field :name, GraphQL::Types::String, "The name of the manifest", null: false
10
10
 
11
11
  def human_name
12
12
  {
@@ -5,8 +5,8 @@ module Decidim
5
5
  class QuantifiableTranslatedFieldType < Decidim::Api::Types::BaseObject
6
6
  description "A quantifiable translated field with singular and plural formats"
7
7
 
8
- field :single, Decidim::Core::TranslatedFieldType, "The singular format.", null: false
9
8
  field :plural, Decidim::Core::TranslatedFieldType, "The plural format.", null: false
9
+ field :single, Decidim::Core::TranslatedFieldType, "The singular format.", null: false
10
10
  end
11
11
  end
12
12
  end
@@ -6,10 +6,9 @@ module Decidim
6
6
  graphql_name "Scope"
7
7
  description "A scope"
8
8
 
9
- field :id, GraphQL::Types::ID, null: false
10
- field :name, Decidim::Core::TranslatedFieldType, "The graphql_name of this scope.", null: false
11
-
12
9
  field :children, [Decidim::Core::ScopeApiType, { null: true }], "Descendants of this scope", null: false
10
+ field :id, GraphQL::Types::ID, "The Id for this scope", null: false
11
+ field :name, Decidim::Core::TranslatedFieldType, "The graphql_name of this scope.", null: false
13
12
  field :parent, Decidim::Core::ScopeApiType, "This scope's parent scope.", null: true
14
13
  end
15
14
  end
@@ -7,13 +7,12 @@ module Decidim
7
7
  description "The current session"
8
8
 
9
9
  field :user, UserType, "The current user", null: true
10
+ field :verified_user_groups, [UserGroupType], "The current user verified user groups", null: false
10
11
 
11
12
  def user
12
13
  object
13
14
  end
14
15
 
15
- field :verified_user_groups, [UserGroupType], "The current user verified user groups", null: false
16
-
17
16
  def verified_user_groups
18
17
  Decidim::UserGroups::ManageableUserGroups.for(object).verified
19
18
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Core
5
+ class TaxonomyType < Decidim::Api::Types::BaseObject
6
+ description "A taxonomy that can be applied to other resources."
7
+
8
+ field :children, [Decidim::Core::TaxonomyType], "The children of this taxonomy.", null: false
9
+ field :id, GraphQL::Types::ID, "The id of this taxonomy.", null: false
10
+ field :is_root, Boolean, "Whether this taxonomy is a root taxonomy (root taxonomies have no parents).", null: false, method: :root?
11
+ field :name, Decidim::Core::TranslatedFieldType, "The name of this taxonomy.", null: false
12
+ field :parent, Decidim::Core::TaxonomyType, "The parent of this taxonomy.", null: true
13
+ end
14
+ end
15
+ end
@@ -5,15 +5,15 @@ module Decidim
5
5
  class TraceVersionType < Decidim::Api::Types::BaseObject
6
6
  description "A trace version type"
7
7
 
8
- field :id, GraphQL::Types::ID, "The ID of the version", null: false
8
+ field :changeset, GraphQL::Types::JSON, description: "Object with the changes in this version", null: true
9
9
  field :created_at, Decidim::Core::DateTimeType, description: "The date and time this version was created", null: true
10
10
  field :editor, Decidim::Core::AuthorInterface, description: "The editor/author of this version", null: true
11
+ field :id, GraphQL::Types::ID, "The ID of the version", null: false
11
12
 
12
13
  def editor
13
14
  author = Decidim.traceability.version_editor(object)
14
15
  author if author.is_a?(Decidim::User) || author.is_a?(Decidim::UserGroup)
15
16
  end
16
- field :changeset, GraphQL::Types::JSON, description: "Object with the changes in this version", null: true
17
17
 
18
18
  delegate :changeset, to: :object
19
19
  end
@@ -7,14 +7,12 @@ module Decidim
7
7
  description "A translated field"
8
8
 
9
9
  field :locales, [GraphQL::Types::String, { null: true }], description: "Lists all the locales in which this translation is available", null: true
10
-
11
- field :translations, [LocalizedStringType, { null: true }], description: "All the localized strings for this translation.", null: false do
12
- argument :locales, [GraphQL::Types::String], description: "A list of locales to scope the translations to.", required: false
13
- end
14
-
15
10
  field :translation, GraphQL::Types::String, description: "Returns a single translation given a locale.", null: true do
16
11
  argument :locale, GraphQL::Types::String, "A locale to search for", required: true
17
12
  end
13
+ field :translations, [LocalizedStringType, { null: true }], description: "All the localized strings for this translation.", null: false do
14
+ argument :locales, [GraphQL::Types::String], description: "A list of locales to scope the translations to.", required: false
15
+ end
18
16
 
19
17
  def locales
20
18
  (defined_translations.keys + machine_translations.keys).uniq
@@ -8,54 +8,41 @@ module Decidim
8
8
 
9
9
  implements Decidim::Core::AuthorInterface
10
10
 
11
+ field :avatar_url, GraphQL::Types::String, "The user's avatar url", null: false
12
+ field :badge, GraphQL::Types::String, "A badge for the user group", null: false
13
+ field :deleted, GraphQL::Types::Boolean, "Whether the user group's has been deleted or not", null: false
11
14
  field :id, GraphQL::Types::ID, "The user group's id", null: false
12
-
15
+ field :members, [Decidim::Core::UserType, { null: true }], "Members of this group", null: false, method: :accepted_users
16
+ field :members_count, GraphQL::Types::Int, "Number of members in this group", null: false
13
17
  field :name, GraphQL::Types::String, "The user group's name", null: false
14
-
15
18
  field :nickname, GraphQL::Types::String, "The user group nickname", null: false
19
+ field :organization_name, Decidim::Core::TranslatedFieldType, "The user group's organization name", null: false
20
+ field :profile_path, GraphQL::Types::String, "The user group's profile url", null: false
16
21
 
17
22
  def nickname
18
23
  object.presenter.nickname
19
24
  end
20
25
 
21
- field :avatar_url, GraphQL::Types::String, "The user's avatar url", null: false
22
-
23
26
  def avatar_url
24
27
  object.presenter.avatar_url
25
28
  end
26
29
 
27
- field :profile_path, GraphQL::Types::String, "The user group's profile url", null: false
28
-
29
30
  def profile_path
30
31
  object.presenter.profile_path
31
32
  end
32
33
 
33
- field :organization_name, Decidim::Core::TranslatedFieldType, "The user group's organization name", null: false
34
-
35
34
  def organization_name
36
35
  object.organization.name
37
36
  end
38
37
 
39
- field :deleted, GraphQL::Types::Boolean, "Whether the user group's has been deleted or not", null: false
40
-
41
38
  def deleted
42
39
  object.presenter.deleted?
43
40
  end
44
41
 
45
- field :badge, GraphQL::Types::String, "A badge for the user group", null: false
46
-
47
42
  def badge
48
43
  object.presenter.badge
49
44
  end
50
45
 
51
- field :members, [Decidim::Core::UserType, { null: true }], "Members of this group", null: false
52
-
53
- def members
54
- object.accepted_users
55
- end
56
-
57
- field :members_count, GraphQL::Types::Int, "Number of members in this group", null: false
58
-
59
46
  def members_count
60
47
  object.accepted_memberships.count
61
48
  end
@@ -8,28 +8,19 @@ module Decidim
8
8
 
9
9
  implements Decidim::Core::AuthorInterface
10
10
 
11
- field :id, GraphQL::Types::ID, "The user's id", null: false
12
-
13
- field :name, GraphQL::Types::String, "The user's name", null: false
14
-
15
- field :nickname, GraphQL::Types::String, "The user's nickname", null: false
16
-
17
11
  field :avatar_url, GraphQL::Types::String, "The user's avatar url", null: false
18
-
19
- field :profile_path, GraphQL::Types::String, "The user's profile url", null: false
20
-
12
+ field :badge, GraphQL::Types::String, "A badge for the user group", null: false
13
+ field :deleted, GraphQL::Types::Boolean, "Whether the user's account has been deleted or not", null: false
21
14
  field :direct_messages_enabled, GraphQL::Types::String,
22
15
  null: false,
23
16
  description: ["If the user making the request is logged in, it will return whether this recipient accepts a conversation or not.",
24
17
  " It will return false for non-logged requests."].join
25
-
18
+ field :groups, [Decidim::Core::UserGroupType, { null: true }], "Groups where this user belongs", null: false, method: :accepted_user_groups
19
+ field :id, GraphQL::Types::ID, "The user's id", null: false
20
+ field :name, GraphQL::Types::String, "The user's name", null: false
21
+ field :nickname, GraphQL::Types::String, "The user's nickname", null: false
26
22
  field :organization_name, Decidim::Core::TranslatedFieldType, "The user's organization name", null: false
27
-
28
- field :deleted, GraphQL::Types::Boolean, "Whether the user's account has been deleted or not", null: false
29
-
30
- field :badge, GraphQL::Types::String, "A badge for the user group", null: false
31
-
32
- field :groups, [Decidim::Core::UserGroupType, { null: true }], "Groups where this user belongs", null: false
23
+ field :profile_path, GraphQL::Types::String, "The user's profile url", null: false
33
24
 
34
25
  def nickname
35
26
  object.presenter.nickname
@@ -59,10 +50,6 @@ module Decidim
59
50
  object.presenter.badge
60
51
  end
61
52
 
62
- def groups
63
- object.accepted_user_groups
64
- end
65
-
66
53
  def self.authorized?(object, context)
67
54
  super && object.confirmed? && !object.blocked? && !object.deleted?
68
55
  end
@@ -52,13 +52,8 @@ module Decidim
52
52
  when ActiveStorage::Blob
53
53
  blob_url(**)
54
54
  else # ActiveStorage::VariantWithRecord, ActiveStorage::Variant
55
- if blob && blob.attachments.any?
56
- ensure_current_host(blob.attachments.first&.record, **)
57
- representation_url(**)
58
- else
59
- ensure_current_host(nil, **)
60
- representation_url(**, only_path: true)
61
- end
55
+ ensure_current_host(nil, **)
56
+ representation_url(**)
62
57
  end
63
58
  end
64
59
 
@@ -164,7 +159,7 @@ module Decidim
164
159
  return unless blob
165
160
 
166
161
  if options[:only_path] || remote? || !asset_url_available?
167
- routes.rails_blob_url(blob, **default_options.merge(options))
162
+ routes.rails_blob_url(blob, **default_options, **options)
168
163
  else
169
164
  blob.url(**options)
170
165
  end
@@ -189,7 +184,7 @@ module Decidim
189
184
  if options[:host]
190
185
  rails_representation_url(**options)
191
186
  else
192
- representation_url(**options.merge(only_path: true))
187
+ representation_url(**options, only_path: true)
193
188
  end
194
189
  end
195
190
 
@@ -212,10 +207,10 @@ module Decidim
212
207
  # @param options The options for building the URL
213
208
  # @return [String, nil] The converted representation URL or `nil` if the
214
209
  # asset is not defined.
215
- def rails_representation_url(**options)
210
+ def rails_representation_url(**)
216
211
  return unless asset
217
212
 
218
- representation_url = routes.rails_representation_url(asset, **default_options.merge(options))
213
+ representation_url = routes.rails_representation_url(asset, **default_options, **)
219
214
 
220
215
  variation = asset.try(:variation)
221
216
  return representation_url unless variation
@@ -5,7 +5,7 @@
5
5
  // https://docs.decidim.org/en/develop/customize/styles
6
6
  //
7
7
 
8
- const { inherit, current, transparent, white, neutral } = require("tailwindcss/colors")
8
+ const { inherit, current, transparent, white } = require("tailwindcss/colors")
9
9
 
10
10
  const withOpacity =
11
11
  (variable) =>
@@ -33,7 +33,6 @@ module.exports = {
33
33
  current,
34
34
  transparent,
35
35
  white,
36
- neutral,
37
36
  primary: withOpacity("--primary-rgb"),
38
37
  secondary: withOpacity("--secondary-rgb"),
39
38
  tertiary: withOpacity("--tertiary-rgb"),
@@ -52,7 +51,8 @@ module.exports = {
52
51
  DEFAULT: "#F3F4F7",
53
52
  2: "#FAFBFC",
54
53
  3: "#EFEFEF",
55
- 4: "#E4EEFF99" // 60% opacity
54
+ 4: "#E4EEFF99", // 60% opacity
55
+ 5: "#E9E9E9"
56
56
  }
57
57
  },
58
58
  container: {
@@ -28,7 +28,7 @@ module Decidim
28
28
  # Returns nothing.
29
29
  def attachments_attribute(name)
30
30
  attribute name, Array[Integer]
31
- attribute "add_#{name}".to_sym, Array
31
+ attribute :"add_#{name}", Array
32
32
 
33
33
  # Define the getter method that fetches the attachment records based on
34
34
  # their types. For Strings and Integers, assumes they are IDs and will
@@ -21,7 +21,7 @@ module Decidim
21
21
  def self.cryptor
22
22
  @cryptor ||= begin
23
23
  key = ActiveSupport::KeyGenerator.new("attribute").generate_key(
24
- Rails.application.secrets.secret_key_base, ActiveSupport::MessageEncryptor.key_len
24
+ Rails.application.secret_key_base, ActiveSupport::MessageEncryptor.key_len
25
25
  )
26
26
  ActiveSupport::MessageEncryptor.new(key)
27
27
  end
@@ -7,7 +7,7 @@ module Decidim
7
7
  value = value.values if value.is_a?(Hash)
8
8
  return unless Array(value).reject { |r| valid_object?(r) }.any?
9
9
 
10
- record.errors.add(attribute, :invalid, **options.merge(value:))
10
+ record.errors.add(attribute, :invalid, **options, value:)
11
11
  end
12
12
 
13
13
  private
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Attributes
5
+ # Custom attributes value to represent an Integer with units.
6
+ class IntegerWithUnits < ActiveModel::Type::Value
7
+ def type
8
+ :"decidim/attributes/integer_with_units"
9
+ end
10
+
11
+ def cast(value)
12
+ return nil if value.nil?
13
+
14
+ case value
15
+ when ::Hash
16
+ [value["0"].to_i.abs, value["1"].to_s]
17
+ when ::Array
18
+ return value if value.size != 2
19
+
20
+ [value[0].to_i.abs, value[1].to_s]
21
+ else
22
+ value
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -23,11 +23,7 @@ module Decidim
23
23
  def cast_value(value)
24
24
  return value unless value.is_a?(String)
25
25
 
26
- if Date._iso8601(value).present?
27
- Time.zone.iso8601(value)
28
- else
29
- Time.zone.strptime(value, I18n.t("time.formats.decidim_short"))
30
- end
26
+ Time.zone.strptime(value, I18n.t("time.formats.decidim_short"))
31
27
  rescue ArgumentError
32
28
  fallback = super
33
29
  return fallback unless fallback.is_a?(Time)
@@ -13,6 +13,7 @@ module Decidim
13
13
  autoload :Model, "decidim/attributes/model"
14
14
  autoload :Symbol, "decidim/attributes/symbol"
15
15
  autoload :Integer, "decidim/attributes/integer"
16
+ autoload :IntegerWithUnits, "decidim/attributes/integer_with_units"
16
17
 
17
18
  # Base types
18
19
  ActiveModel::Type.register(:array, Decidim::Attributes::Array)
@@ -30,6 +31,7 @@ module Decidim
30
31
  ActiveModel::Type.register(:"decidim/attributes/clean_string", Decidim::Attributes::CleanString)
31
32
  ActiveModel::Type.register(:"decidim/attributes/rich_text", Decidim::Attributes::RichText)
32
33
  ActiveModel::Type.register(:"decidim/attributes/blob", Decidim::Attributes::Blob)
34
+ ActiveModel::Type.register(:"decidim/attributes/integer_with_units", Decidim::Attributes::IntegerWithUnits)
33
35
 
34
36
  ActiveModel::Type.register(:integer, Decidim::Attributes::Integer)
35
37
  end
@@ -37,7 +37,6 @@ module Decidim
37
37
 
38
38
  def input_field(name, type)
39
39
  return hidden_field(name) if name.to_s == "handler_name"
40
- return scopes_selector if name.to_s == "scope_id"
41
40
 
42
41
  case type
43
42
  when :date, :datetime, :time, :"decidim/attributes/localized_date"
@@ -47,12 +46,6 @@ module Decidim
47
46
  end
48
47
  end
49
48
 
50
- def scopes_selector
51
- return if object.user.blank?
52
-
53
- collection_select :scope_id, object.user.organization.scopes, :id, ->(scope) { translated_attribute(scope.name) }
54
- end
55
-
56
49
  def find_input_type(name)
57
50
  value_type = object.class.attribute_types[name]
58
51
 
@@ -70,7 +70,7 @@ module Decidim
70
70
  def reload(options = nil)
71
71
  remove_instance_variable(:@authors) if defined?(@authors)
72
72
  remove_instance_variable(:@notifiable_identities) if defined?(@notifiable_identities)
73
- super(options)
73
+ super
74
74
  end
75
75
 
76
76
  # Returns all the authors of a coauthorable.