decidim-core 0.10.1 → 0.11.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (269) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -11
  3. data/app/assets/images/decidim/icons.svg +25 -6
  4. data/app/assets/javascripts/decidim/account_form.js.es6 +8 -8
  5. data/app/assets/javascripts/decidim/append_elements.js.es6 +1 -1
  6. data/app/assets/javascripts/decidim/append_redirect_url_to_modals.js.es6 +5 -5
  7. data/app/assets/javascripts/decidim/data_picker.js.es6 +10 -10
  8. data/app/assets/javascripts/decidim/editor.js.es6 +37 -22
  9. data/app/assets/javascripts/decidim/filters.js.es6 +1 -1
  10. data/app/assets/javascripts/decidim/form_filter.component.js.es6 +15 -15
  11. data/app/assets/javascripts/decidim/form_filter.component.test.js +29 -29
  12. data/app/assets/javascripts/decidim/impersonation.js.es6 +3 -3
  13. data/app/assets/javascripts/decidim/input_mentions.js.es6 +100 -0
  14. data/app/assets/javascripts/decidim/input_tags.js.es6 +12 -0
  15. data/app/assets/javascripts/decidim/{map.js.es6.erb → map.js.es6} +9 -9
  16. data/app/assets/javascripts/decidim/notifications.js.es6 +10 -10
  17. data/app/assets/javascripts/decidim/orders.js.es6 +5 -5
  18. data/app/assets/javascripts/decidim/user_registrations.js.es6 +4 -4
  19. data/app/assets/javascripts/decidim/widget.js.es6 +1 -1
  20. data/app/assets/javascripts/decidim.js.es6 +10 -0
  21. data/app/assets/stylesheets/decidim/application.scss.erb +1 -1
  22. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +39 -0
  23. data/app/assets/stylesheets/decidim/modules/_cards.scss +158 -3
  24. data/app/assets/stylesheets/decidim/modules/_definition-data.scss +6 -0
  25. data/app/assets/stylesheets/decidim/modules/_extra.scss +1 -3
  26. data/app/assets/stylesheets/decidim/modules/_icons.scss +14 -6
  27. data/app/assets/stylesheets/decidim/modules/_inline-filters.scss +61 -0
  28. data/app/assets/stylesheets/decidim/modules/_input-mentions.scss +124 -0
  29. data/app/assets/stylesheets/decidim/modules/_input-tags.scss +55 -0
  30. data/app/assets/stylesheets/decidim/modules/_modules.scss +3 -0
  31. data/app/assets/stylesheets/decidim/modules/_status-labels.scss +4 -0
  32. data/app/assets/stylesheets/decidim/modules/_typography.scss +16 -0
  33. data/app/assets/stylesheets/decidim/utils/_helpers.scss +29 -0
  34. data/app/assets/stylesheets/decidim/utils/_mixins.scss +6 -0
  35. data/app/cells/decidim/author_box/show.erb +10 -0
  36. data/app/cells/decidim/author_box_cell.rb +21 -0
  37. data/app/cells/decidim/card/show.erb +17 -0
  38. data/app/cells/decidim/card_cell.rb +29 -0
  39. data/app/cells/decidim/profile/profile_inline.erb +21 -0
  40. data/app/cells/decidim/profile/show.erb +13 -0
  41. data/app/cells/decidim/profile_cell.rb +17 -0
  42. data/app/commands/decidim/create_omniauth_registration.rb +3 -2
  43. data/app/commands/decidim/create_report.rb +1 -1
  44. data/app/commands/decidim/invite_user.rb +2 -0
  45. data/app/constraints/decidim/current_component.rb +41 -0
  46. data/app/controllers/concerns/decidim/action_authorization.rb +3 -3
  47. data/app/controllers/concerns/decidim/devise_controllers.rb +2 -1
  48. data/app/controllers/concerns/decidim/filter_resource.rb +1 -1
  49. data/app/controllers/concerns/decidim/form_factory.rb +1 -1
  50. data/app/controllers/concerns/decidim/impersonate_users.rb +6 -2
  51. data/app/controllers/concerns/decidim/needs_authorization.rb +2 -2
  52. data/app/controllers/concerns/decidim/participatory_space_context.rb +15 -0
  53. data/app/controllers/concerns/decidim/settings.rb +5 -5
  54. data/app/controllers/decidim/application_controller.rb +2 -1
  55. data/app/controllers/decidim/{features → components}/base_controller.rb +16 -8
  56. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +3 -1
  57. data/app/controllers/decidim/devise/registrations_controller.rb +1 -3
  58. data/app/controllers/decidim/doorkeeper/authorizations_controller.rb +16 -0
  59. data/app/controllers/decidim/doorkeeper/credentials_controller.rb +46 -0
  60. data/app/controllers/decidim/doorkeeper/token_info_controller.rb +9 -0
  61. data/app/controllers/decidim/doorkeeper/tokens_controller.rb +9 -0
  62. data/app/controllers/decidim/widgets_controller.rb +1 -1
  63. data/app/forms/decidim/follow_form.rb +1 -1
  64. data/app/forms/decidim/form.rb +1 -1
  65. data/app/forms/decidim/omniauth_registration_form.rb +1 -0
  66. data/app/forms/decidim/registration_form.rb +5 -5
  67. data/app/helpers/decidim/card_helper.rb +16 -0
  68. data/app/helpers/decidim/component_path_helper.rb +36 -0
  69. data/app/helpers/decidim/icon_helper.rb +7 -7
  70. data/app/helpers/decidim/messaging/conversation_helper.rb +4 -3
  71. data/app/helpers/decidim/paginate_helper.rb +1 -1
  72. data/app/helpers/decidim/resource_helper.rb +2 -2
  73. data/app/jobs/decidim/export_job.rb +3 -3
  74. data/app/mailers/decidim/messaging/conversation_mailer.rb +0 -2
  75. data/app/middleware/decidim/current_organization.rb +2 -2
  76. data/app/models/decidim/abilities/admin_ability.rb +1 -1
  77. data/app/models/decidim/abilities/everyone_ability.rb +1 -1
  78. data/app/models/decidim/abilities/participatory_process_admin_ability.rb +2 -2
  79. data/app/models/decidim/abilities/participatory_process_collaborator_ability.rb +2 -2
  80. data/app/models/decidim/action_log.rb +7 -5
  81. data/app/models/decidim/area.rb +7 -0
  82. data/app/models/decidim/authorization.rb +14 -0
  83. data/app/models/decidim/{feature.rb → component.rb} +15 -15
  84. data/app/models/decidim/moderation.rb +1 -1
  85. data/app/models/decidim/oauth_application.rb +24 -0
  86. data/app/models/decidim/organization.rb +5 -0
  87. data/app/models/decidim/participatory_space_link.rb +20 -0
  88. data/app/models/decidim/participatory_space_private_user.rb +19 -0
  89. data/app/models/decidim/user.rb +7 -0
  90. data/app/presenters/decidim/admin_log/area_presenter.rb +38 -0
  91. data/app/presenters/decidim/admin_log/{feature_presenter.rb → component_presenter.rb} +5 -5
  92. data/app/presenters/decidim/admin_log/newsletter_resource_presenter.rb +1 -1
  93. data/app/presenters/decidim/admin_log/oauth_application_presenter.rb +50 -0
  94. data/app/presenters/decidim/admin_log/oauth_application_resource_presenter.rb +18 -0
  95. data/app/presenters/decidim/home_stats_presenter.rb +7 -7
  96. data/app/presenters/decidim/log/value_types/area_presenter.rb +1 -1
  97. data/app/presenters/decidim/log/value_types/area_type_presenter.rb +28 -0
  98. data/app/presenters/decidim/log/value_types/currency_presenter.rb +20 -0
  99. data/app/presenters/decidim/log/value_types/scope_presenter.rb +1 -1
  100. data/app/presenters/decidim/log/value_types/scope_type_presenter.rb +1 -1
  101. data/app/presenters/decidim/resource_locator_presenter.rb +3 -3
  102. data/app/services/decidim/action_authorizer.rb +9 -9
  103. data/app/services/decidim/action_logger.rb +9 -7
  104. data/app/services/decidim/email_notification_generator.rb +1 -1
  105. data/app/services/decidim/notification_generator_for_recipient.rb +1 -1
  106. data/app/services/decidim/resource_search.rb +8 -8
  107. data/app/services/decidim/settings_change.rb +5 -5
  108. data/app/services/decidim/static_map_generator.rb +1 -1
  109. data/app/types/decidim/core/attachment_type.rb +14 -0
  110. data/app/types/decidim/core/category_type.rb +16 -0
  111. data/app/types/decidim/core/coordinates_type.rb +19 -0
  112. data/app/types/decidim/core/scope_api_type.rb +16 -0
  113. data/app/uploaders/decidim/oauth_application_logo_uploader.rb +9 -0
  114. data/app/validators/geocoding_validator.rb +2 -2
  115. data/app/views/decidim/account/delete.html.erb +7 -7
  116. data/app/views/decidim/application/_collection.html.erb +1 -1
  117. data/app/views/decidim/application/_document.html.erb +1 -1
  118. data/app/views/decidim/application/_photos.html.erb +1 -1
  119. data/app/views/decidim/devise/invitations/edit.html.erb +1 -1
  120. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +1 -1
  121. data/app/views/decidim/devise/registrations/new.html.erb +1 -1
  122. data/app/views/decidim/devise/sessions/new.html.erb +2 -2
  123. data/app/views/decidim/devise/shared/_omniauth_buttons.html.erb +1 -1
  124. data/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb +1 -1
  125. data/app/views/decidim/doorkeeper/authorizations/new.html.erb +58 -0
  126. data/app/views/decidim/messaging/conversations/_show.html.erb +1 -1
  127. data/app/views/decidim/messaging/conversations/index.html.erb +1 -1
  128. data/app/views/decidim/notifications/index.html.erb +1 -1
  129. data/app/views/decidim/notifications_settings/show.html.erb +2 -2
  130. data/app/views/decidim/own_user_groups/index.html.erb +3 -3
  131. data/app/views/decidim/scopes/_scopes_picker_input.html.erb +4 -4
  132. data/app/views/decidim/scopes/picker.html.erb +3 -3
  133. data/app/views/decidim/shared/_action_authorization_modal.html.erb +1 -1
  134. data/app/views/decidim/shared/_author.html.erb +1 -1
  135. data/app/views/decidim/shared/_author_reference.html.erb +1 -12
  136. data/app/views/decidim/shared/{_feature_announcement.html.erb → _component_announcement.html.erb} +2 -2
  137. data/app/views/decidim/shared/_embed_modal.html.erb +1 -1
  138. data/app/views/decidim/shared/_flag_modal.html.erb +5 -5
  139. data/app/views/decidim/shared/_login_modal.html.erb +3 -3
  140. data/app/views/decidim/shared/_private_participatory_space.html.erb +5 -0
  141. data/app/views/decidim/shared/_share_modal.html.erb +1 -1
  142. data/app/views/decidim/shared/_tags.html.erb +1 -1
  143. data/app/views/decidim/shared/_version_author.html.erb +1 -1
  144. data/app/views/decidim/widgets/_data_picker.html.erb +4 -4
  145. data/app/views/devise/mailer/confirmation_instructions.html.erb +3 -3
  146. data/app/views/devise/mailer/invite_private_user.html.erb +17 -0
  147. data/app/views/devise/mailer/invite_private_user.text.erb +15 -0
  148. data/app/views/devise/mailer/password_change.html.erb +2 -2
  149. data/app/views/devise/mailer/reset_password_instructions.html.erb +5 -5
  150. data/app/views/kaminari/decidim/_first_page.html.erb +2 -3
  151. data/app/views/kaminari/decidim/_gap.html.erb +2 -3
  152. data/app/views/kaminari/decidim/_last_page.html.erb +2 -3
  153. data/app/views/kaminari/decidim/_next_page.html.erb +2 -3
  154. data/app/views/kaminari/decidim/_page.html.erb +2 -3
  155. data/app/views/kaminari/decidim/_paginator.html.erb +1 -2
  156. data/app/views/kaminari/decidim/_prev_page.html.erb +2 -3
  157. data/app/views/layouts/decidim/_application.html.erb +4 -4
  158. data/app/views/layouts/decidim/_component_authorization_modals.html.erb +5 -0
  159. data/app/views/layouts/decidim/_cookie_warning.html.erb +2 -2
  160. data/app/views/layouts/decidim/_head.html.erb +4 -4
  161. data/app/views/layouts/decidim/_impersonation_warning.html.erb +4 -4
  162. data/app/views/layouts/decidim/_language_chooser.html.erb +1 -1
  163. data/app/views/layouts/decidim/_social_media_links.html.erb +5 -5
  164. data/app/views/layouts/decidim/_wrapper.html.erb +5 -5
  165. data/app/views/layouts/decidim/mailer.html.erb +1 -1
  166. data/app/views/layouts/decidim/widget.html.erb +5 -5
  167. data/app/views/pages/home/_hero.html.erb +1 -1
  168. data/app/views/pages/home.html.erb +6 -6
  169. data/config/locales/ca.yml +66 -27
  170. data/config/locales/en.yml +69 -30
  171. data/config/locales/es.yml +66 -27
  172. data/config/locales/eu.yml +69 -30
  173. data/config/locales/fi.yml +69 -30
  174. data/config/locales/fr.yml +85 -46
  175. data/config/locales/gl.yml +69 -30
  176. data/config/locales/it.yml +69 -30
  177. data/config/locales/nl.yml +122 -83
  178. data/config/locales/pl.yml +69 -30
  179. data/config/locales/pt-BR.yml +69 -30
  180. data/config/locales/pt.yml +69 -30
  181. data/config/locales/ru.yml +0 -7
  182. data/config/locales/sv.yml +69 -30
  183. data/config/locales/uk.yml +0 -13
  184. data/config/routes.rb +8 -0
  185. data/db/migrate/20180206183235_create_participatory_space_private_users.rb +15 -0
  186. data/db/migrate/20180221101934_fix_nickname_index.rb +5 -6
  187. data/db/migrate/20180226140756_add_version_to_action_logs.rb +5 -1
  188. data/db/migrate/20180227131727_create_participatory_space_links.rb +12 -0
  189. data/db/migrate/20180305132906_rename_features_to_components.rb +13 -0
  190. data/db/migrate/20180308113207_doorkeeper_models.rb +85 -0
  191. data/db/migrate/20180314085339_rename_maximum_votes_per_proposal_to_threshold_per_proposal.rb +2 -2
  192. data/db/migrate/{20180326075746_change_event_name_and_class_to_rename_to_publish_proposal_event.rb → 20180323102631_change_event_name_and_class_to_rename_to_publish_proposal_event.rb} +0 -0
  193. data/db/seeds.rb +12 -2
  194. data/lib/decidim/api/attachable_interface.rb +13 -0
  195. data/lib/decidim/api/authorable_interface.rb +13 -0
  196. data/lib/decidim/api/categorizable_interface.rb +13 -0
  197. data/lib/decidim/api/participatory_space_interface.rb +4 -4
  198. data/lib/decidim/api/scopable_interface.rb +13 -0
  199. data/lib/decidim/authorable.rb +8 -0
  200. data/lib/decidim/{feature_manifest.rb → component_manifest.rb} +24 -21
  201. data/lib/decidim/{feature_validator.rb → component_validator.rb} +6 -6
  202. data/lib/decidim/{features → components}/export_manifest.rb +4 -4
  203. data/lib/decidim/components/namer.rb +35 -0
  204. data/lib/decidim/components.rb +9 -0
  205. data/lib/decidim/content_parsers/user_parser.rb +1 -1
  206. data/lib/decidim/core/api.rb +13 -0
  207. data/lib/decidim/core/engine.rb +76 -3
  208. data/lib/decidim/core/test/factories.rb +43 -10
  209. data/lib/decidim/core/test/shared_examples/announcements_examples.rb +9 -9
  210. data/lib/decidim/core/test/shared_examples/attachable_interface_examples.rb +16 -0
  211. data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +33 -0
  212. data/lib/decidim/core/test/shared_examples/categorizable_interface_examples.rb +19 -0
  213. data/lib/decidim/core/test/shared_examples/comments_examples.rb +3 -3
  214. data/lib/decidim/core/test/shared_examples/follows_examples.rb +1 -1
  215. data/lib/decidim/core/test/shared_examples/has_component.rb +21 -0
  216. data/lib/decidim/core/test/shared_examples/has_reference.rb +2 -2
  217. data/lib/decidim/core/test/shared_examples/localised_email.rb +1 -1
  218. data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +1 -1
  219. data/lib/decidim/core/test/shared_examples/reportable.rb +8 -6
  220. data/lib/decidim/core/test/shared_examples/reports_examples.rb +1 -1
  221. data/lib/decidim/core/test/shared_examples/scopable_interface_examples.rb +19 -0
  222. data/lib/decidim/core/test/shared_examples/scope_helper_examples.rb +8 -3
  223. data/lib/decidim/core/test/shared_examples/simple_event.rb +1 -1
  224. data/lib/decidim/core/test/shared_examples/user_localised_email_examples.rb +1 -1
  225. data/lib/decidim/core/test.rb +1 -1
  226. data/lib/decidim/core/version.rb +1 -1
  227. data/lib/decidim/core.rb +35 -37
  228. data/lib/decidim/events/base_event.rb +5 -5
  229. data/lib/decidim/events/simple_event.rb +8 -8
  230. data/lib/decidim/form_builder.rb +48 -3
  231. data/lib/decidim/has_attachment_collections.rb +1 -1
  232. data/lib/decidim/has_attachments.rb +1 -1
  233. data/lib/decidim/has_category.rb +2 -2
  234. data/lib/decidim/has_component.rb +23 -0
  235. data/lib/decidim/has_private_users.rb +26 -0
  236. data/lib/decidim/has_reference.rb +3 -3
  237. data/lib/decidim/page_finder.rb +1 -1
  238. data/lib/decidim/participatory_space_manifest.rb +3 -3
  239. data/lib/decidim/participatory_space_resourceable.rb +80 -0
  240. data/lib/decidim/publicable.rb +2 -2
  241. data/lib/decidim/query_extensions.rb +2 -2
  242. data/lib/decidim/rectify_ext.rb +32 -0
  243. data/lib/decidim/reportable.rb +1 -1
  244. data/lib/decidim/resource_manifest.rb +13 -13
  245. data/lib/decidim/resourceable.rb +8 -8
  246. data/lib/decidim/scopable.rb +1 -1
  247. data/lib/decidim/{scopable_feature.rb → scopable_component.rb} +1 -1
  248. data/lib/decidim/settings_manifest.rb +1 -1
  249. data/lib/decidim/stats_registry.rb +1 -1
  250. data/lib/decidim/view_model.rb +9 -0
  251. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fr.js +4 -1
  252. data/vendor/assets/javascripts/form_datepicker.js.es6 +10 -10
  253. data/vendor/assets/javascripts/quill.min.js +2 -2
  254. data/vendor/assets/javascripts/quill.min.js.map +1 -1
  255. data/vendor/assets/javascripts/tagsinput.js +683 -0
  256. data/vendor/assets/javascripts/tribute.js +1607 -0
  257. data/vendor/assets/stylesheets/quill.bubble.css +30 -16
  258. data/vendor/assets/stylesheets/quill.core.css +19 -9
  259. data/vendor/assets/stylesheets/quill.snow.css +30 -16
  260. data/vendor/assets/stylesheets/tagsinput.css +55 -0
  261. data/vendor/assets/stylesheets/tribute.css +27 -0
  262. metadata +164 -27
  263. data/app/constraints/decidim/current_feature.rb +0 -41
  264. data/app/helpers/decidim/feature_path_helper.rb +0 -36
  265. data/app/views/layouts/decidim/_feature_authorization_modals.html.erb +0 -5
  266. data/lib/decidim/core/test/shared_examples/has_feature.rb +0 -21
  267. data/lib/decidim/features/namer.rb +0 -35
  268. data/lib/decidim/features.rb +0 -9
  269. data/lib/decidim/has_feature.rb +0 -23
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-04-17 00:00:00.000000000 Z
13
+ date: 2018-04-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -68,6 +68,34 @@ dependencies:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
70
  version: '1.1'
71
+ - !ruby/object:Gem::Dependency
72
+ name: cells-erb
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: 0.1.0
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: 0.1.0
85
+ - !ruby/object:Gem::Dependency
86
+ name: cells-rails
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: 0.0.8
92
+ type: :runtime
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: 0.0.8
71
99
  - !ruby/object:Gem::Dependency
72
100
  name: date_validator
73
101
  requirement: !ruby/object:Gem::Requirement
@@ -110,6 +138,34 @@ dependencies:
110
138
  - - "~>"
111
139
  - !ruby/object:Gem::Version
112
140
  version: '1.2'
141
+ - !ruby/object:Gem::Dependency
142
+ name: doorkeeper
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '4.3'
148
+ type: :runtime
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '4.3'
155
+ - !ruby/object:Gem::Dependency
156
+ name: doorkeeper-i18n
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '4.0'
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '4.0'
113
169
  - !ruby/object:Gem::Dependency
114
170
  name: file_validators
115
171
  requirement: !ruby/object:Gem::Requirement
@@ -214,6 +270,26 @@ dependencies:
214
270
  - - "~>"
215
271
  - !ruby/object:Gem::Version
216
272
  version: '4.3'
273
+ - !ruby/object:Gem::Dependency
274
+ name: loofah
275
+ requirement: !ruby/object:Gem::Requirement
276
+ requirements:
277
+ - - "~>"
278
+ - !ruby/object:Gem::Version
279
+ version: '2.0'
280
+ - - ">="
281
+ - !ruby/object:Gem::Version
282
+ version: 2.2.1
283
+ type: :runtime
284
+ prerelease: false
285
+ version_requirements: !ruby/object:Gem::Requirement
286
+ requirements:
287
+ - - "~>"
288
+ - !ruby/object:Gem::Version
289
+ version: '2.0'
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: 2.2.1
217
293
  - !ruby/object:Gem::Dependency
218
294
  name: mini_magick
219
295
  requirement: !ruby/object:Gem::Requirement
@@ -338,14 +414,20 @@ dependencies:
338
414
  requirements:
339
415
  - - "~>"
340
416
  - !ruby/object:Gem::Version
341
- version: 5.1.5
417
+ version: '5.1'
418
+ - - "<"
419
+ - !ruby/object:Gem::Version
420
+ version: 5.2.x
342
421
  type: :runtime
343
422
  prerelease: false
344
423
  version_requirements: !ruby/object:Gem::Requirement
345
424
  requirements:
346
425
  - - "~>"
347
426
  - !ruby/object:Gem::Version
348
- version: 5.1.5
427
+ version: '5.1'
428
+ - - "<"
429
+ - !ruby/object:Gem::Version
430
+ version: 5.2.x
349
431
  - !ruby/object:Gem::Dependency
350
432
  name: rails-i18n
351
433
  requirement: !ruby/object:Gem::Requirement
@@ -506,28 +588,28 @@ dependencies:
506
588
  requirements:
507
589
  - - '='
508
590
  - !ruby/object:Gem::Version
509
- version: 0.10.1
591
+ version: 0.11.0.pre1
510
592
  type: :runtime
511
593
  prerelease: false
512
594
  version_requirements: !ruby/object:Gem::Requirement
513
595
  requirements:
514
596
  - - '='
515
597
  - !ruby/object:Gem::Version
516
- version: 0.10.1
598
+ version: 0.11.0.pre1
517
599
  - !ruby/object:Gem::Dependency
518
600
  name: decidim-dev
519
601
  requirement: !ruby/object:Gem::Requirement
520
602
  requirements:
521
603
  - - '='
522
604
  - !ruby/object:Gem::Version
523
- version: 0.10.1
605
+ version: 0.11.0.pre1
524
606
  type: :development
525
607
  prerelease: false
526
608
  version_requirements: !ruby/object:Gem::Requirement
527
609
  requirements:
528
610
  - - '='
529
611
  - !ruby/object:Gem::Version
530
- version: 0.10.1
612
+ version: 0.11.0.pre1
531
613
  description: Adds core features so other engines can hook into the framework.
532
614
  email:
533
615
  - josepjaume@gmail.com
@@ -571,7 +653,9 @@ files:
571
653
  - app/assets/javascripts/decidim/foundation.js.es6
572
654
  - app/assets/javascripts/decidim/history.js.es6
573
655
  - app/assets/javascripts/decidim/impersonation.js.es6
574
- - app/assets/javascripts/decidim/map.js.es6.erb
656
+ - app/assets/javascripts/decidim/input_mentions.js.es6
657
+ - app/assets/javascripts/decidim/input_tags.js.es6
658
+ - app/assets/javascripts/decidim/map.js.es6
575
659
  - app/assets/javascripts/decidim/notifications.js.es6
576
660
  - app/assets/javascripts/decidim/orders.js.es6
577
661
  - app/assets/javascripts/decidim/slug_form.js.es6
@@ -625,6 +709,9 @@ files:
625
709
  - app/assets/stylesheets/decidim/modules/_forms.scss
626
710
  - app/assets/stylesheets/decidim/modules/_help.scss
627
711
  - app/assets/stylesheets/decidim/modules/_icons.scss
712
+ - app/assets/stylesheets/decidim/modules/_inline-filters.scss
713
+ - app/assets/stylesheets/decidim/modules/_input-mentions.scss
714
+ - app/assets/stylesheets/decidim/modules/_input-tags.scss
628
715
  - app/assets/stylesheets/decidim/modules/_layout.scss
629
716
  - app/assets/stylesheets/decidim/modules/_list-docs.scss
630
717
  - app/assets/stylesheets/decidim/modules/_main-container.scss
@@ -661,6 +748,13 @@ files:
661
748
  - app/assets/stylesheets/decidim/utils/_mixins.scss
662
749
  - app/assets/stylesheets/decidim/utils/_settings.scss
663
750
  - app/assets/stylesheets/decidim/utils/_toggle-expand.scss
751
+ - app/cells/decidim/author_box/show.erb
752
+ - app/cells/decidim/author_box_cell.rb
753
+ - app/cells/decidim/card/show.erb
754
+ - app/cells/decidim/card_cell.rb
755
+ - app/cells/decidim/profile/profile_inline.erb
756
+ - app/cells/decidim/profile/show.erb
757
+ - app/cells/decidim/profile_cell.rb
664
758
  - app/commands/decidim/create_follow.rb
665
759
  - app/commands/decidim/create_omniauth_registration.rb
666
760
  - app/commands/decidim/create_registration.rb
@@ -674,7 +768,7 @@ files:
674
768
  - app/commands/decidim/unsubscribe_settings.rb
675
769
  - app/commands/decidim/update_account.rb
676
770
  - app/commands/decidim/update_notifications_settings.rb
677
- - app/constraints/decidim/current_feature.rb
771
+ - app/constraints/decidim/current_component.rb
678
772
  - app/controllers/concerns/decidim/action_authorization.rb
679
773
  - app/controllers/concerns/decidim/devise_controllers.rb
680
774
  - app/controllers/concerns/decidim/filter_resource.rb
@@ -690,6 +784,7 @@ files:
690
784
  - app/controllers/concerns/decidim/user_profile.rb
691
785
  - app/controllers/decidim/account_controller.rb
692
786
  - app/controllers/decidim/application_controller.rb
787
+ - app/controllers/decidim/components/base_controller.rb
693
788
  - app/controllers/decidim/cookie_policy_controller.rb
694
789
  - app/controllers/decidim/devise/confirmations_controller.rb
695
790
  - app/controllers/decidim/devise/invitations_controller.rb
@@ -697,8 +792,11 @@ files:
697
792
  - app/controllers/decidim/devise/passwords_controller.rb
698
793
  - app/controllers/decidim/devise/registrations_controller.rb
699
794
  - app/controllers/decidim/devise/sessions_controller.rb
795
+ - app/controllers/decidim/doorkeeper/authorizations_controller.rb
796
+ - app/controllers/decidim/doorkeeper/credentials_controller.rb
797
+ - app/controllers/decidim/doorkeeper/token_info_controller.rb
798
+ - app/controllers/decidim/doorkeeper/tokens_controller.rb
700
799
  - app/controllers/decidim/errors_controller.rb
701
- - app/controllers/decidim/features/base_controller.rb
702
800
  - app/controllers/decidim/follows_controller.rb
703
801
  - app/controllers/decidim/locales_controller.rb
704
802
  - app/controllers/decidim/messaging/conversations_controller.rb
@@ -731,10 +829,11 @@ files:
731
829
  - app/helpers/decidim/aria_selected_link_to_helper.rb
732
830
  - app/helpers/decidim/attachments_helper.rb
733
831
  - app/helpers/decidim/authorization_form_helper.rb
832
+ - app/helpers/decidim/card_helper.rb
833
+ - app/helpers/decidim/component_path_helper.rb
734
834
  - app/helpers/decidim/cookies_helper.rb
735
835
  - app/helpers/decidim/cta_button_helper.rb
736
836
  - app/helpers/decidim/decidim_form_helper.rb
737
- - app/helpers/decidim/feature_path_helper.rb
738
837
  - app/helpers/decidim/filters_helper.rb
739
838
  - app/helpers/decidim/humanize_booleans_helper.rb
740
839
  - app/helpers/decidim/icon_helper.rb
@@ -790,7 +889,7 @@ files:
790
889
  - app/models/decidim/authorization.rb
791
890
  - app/models/decidim/categorization.rb
792
891
  - app/models/decidim/category.rb
793
- - app/models/decidim/feature.rb
892
+ - app/models/decidim/component.rb
794
893
  - app/models/decidim/follow.rb
795
894
  - app/models/decidim/identity.rb
796
895
  - app/models/decidim/impersonation_log.rb
@@ -801,8 +900,11 @@ files:
801
900
  - app/models/decidim/moderation.rb
802
901
  - app/models/decidim/newsletter.rb
803
902
  - app/models/decidim/notification.rb
903
+ - app/models/decidim/oauth_application.rb
804
904
  - app/models/decidim/organization.rb
805
905
  - app/models/decidim/participatory_process_user_role.rb
906
+ - app/models/decidim/participatory_space_link.rb
907
+ - app/models/decidim/participatory_space_private_user.rb
806
908
  - app/models/decidim/report.rb
807
909
  - app/models/decidim/resource_link.rb
808
910
  - app/models/decidim/scope.rb
@@ -811,10 +913,13 @@ files:
811
913
  - app/models/decidim/user.rb
812
914
  - app/models/decidim/user_group.rb
813
915
  - app/models/decidim/user_group_membership.rb
814
- - app/presenters/decidim/admin_log/feature_presenter.rb
916
+ - app/presenters/decidim/admin_log/area_presenter.rb
917
+ - app/presenters/decidim/admin_log/component_presenter.rb
815
918
  - app/presenters/decidim/admin_log/moderation_presenter.rb
816
919
  - app/presenters/decidim/admin_log/newsletter_presenter.rb
817
920
  - app/presenters/decidim/admin_log/newsletter_resource_presenter.rb
921
+ - app/presenters/decidim/admin_log/oauth_application_presenter.rb
922
+ - app/presenters/decidim/admin_log/oauth_application_resource_presenter.rb
818
923
  - app/presenters/decidim/admin_log/organization_presenter.rb
819
924
  - app/presenters/decidim/admin_log/scope_presenter.rb
820
925
  - app/presenters/decidim/admin_log/static_page_presenter.rb
@@ -832,6 +937,8 @@ files:
832
937
  - app/presenters/decidim/log/space_presenter.rb
833
938
  - app/presenters/decidim/log/user_presenter.rb
834
939
  - app/presenters/decidim/log/value_types/area_presenter.rb
940
+ - app/presenters/decidim/log/value_types/area_type_presenter.rb
941
+ - app/presenters/decidim/log/value_types/currency_presenter.rb
835
942
  - app/presenters/decidim/log/value_types/date_presenter.rb
836
943
  - app/presenters/decidim/log/value_types/default_presenter.rb
837
944
  - app/presenters/decidim/log/value_types/locale_presenter.rb
@@ -858,13 +965,17 @@ files:
858
965
  - app/services/decidim/settings_change.rb
859
966
  - app/services/decidim/static_map_generator.rb
860
967
  - app/services/decidim/traceability.rb
968
+ - app/types/decidim/core/attachment_type.rb
969
+ - app/types/decidim/core/category_type.rb
861
970
  - app/types/decidim/core/component_type.rb
971
+ - app/types/decidim/core/coordinates_type.rb
862
972
  - app/types/decidim/core/date_time_type.rb
863
973
  - app/types/decidim/core/date_type.rb
864
974
  - app/types/decidim/core/decidim_type.rb
865
975
  - app/types/decidim/core/localized_string_type.rb
866
976
  - app/types/decidim/core/organization_type.rb
867
977
  - app/types/decidim/core/participatory_space_type.rb
978
+ - app/types/decidim/core/scope_api_type.rb
868
979
  - app/types/decidim/core/session_type.rb
869
980
  - app/types/decidim/core/statistic_type.rb
870
981
  - app/types/decidim/core/translated_field_type.rb
@@ -877,6 +988,7 @@ files:
877
988
  - app/uploaders/decidim/hero_image_uploader.rb
878
989
  - app/uploaders/decidim/homepage_image_uploader.rb
879
990
  - app/uploaders/decidim/image_uploader.rb
991
+ - app/uploaders/decidim/oauth_application_logo_uploader.rb
880
992
  - app/uploaders/decidim/official_image_footer_uploader.rb
881
993
  - app/uploaders/decidim/official_image_header_uploader.rb
882
994
  - app/uploaders/decidim/organization_favicon_uploader.rb
@@ -904,6 +1016,7 @@ files:
904
1016
  - app/views/decidim/devise/shared/_links.html.erb
905
1017
  - app/views/decidim/devise/shared/_omniauth_buttons.html.erb
906
1018
  - app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb
1019
+ - app/views/decidim/doorkeeper/authorizations/new.html.erb
907
1020
  - app/views/decidim/errors/internal_server_error.html.erb
908
1021
  - app/views/decidim/errors/not_found.html.erb
909
1022
  - app/views/decidim/export_mailer/export.html.erb
@@ -939,12 +1052,13 @@ files:
939
1052
  - app/views/decidim/shared/_author.html.erb
940
1053
  - app/views/decidim/shared/_author_reference.html.erb
941
1054
  - app/views/decidim/shared/_comments.html.erb
1055
+ - app/views/decidim/shared/_component_announcement.html.erb
942
1056
  - app/views/decidim/shared/_embed_modal.html.erb
943
- - app/views/decidim/shared/_feature_announcement.html.erb
944
1057
  - app/views/decidim/shared/_flag_modal.html.erb
945
1058
  - app/views/decidim/shared/_follow_button.html.erb
946
1059
  - app/views/decidim/shared/_login_modal.html.erb
947
1060
  - app/views/decidim/shared/_orders.html.erb
1061
+ - app/views/decidim/shared/_private_participatory_space.html.erb
948
1062
  - app/views/decidim/shared/_results_per_page.html.erb
949
1063
  - app/views/decidim/shared/_share_modal.html.erb
950
1064
  - app/views/decidim/shared/_static_map.html.erb
@@ -959,6 +1073,8 @@ files:
959
1073
  - app/views/devise/mailer/invite_admin.text.erb
960
1074
  - app/views/devise/mailer/invite_collaborator.html.erb
961
1075
  - app/views/devise/mailer/invite_collaborator.text.erb
1076
+ - app/views/devise/mailer/invite_private_user.html.erb
1077
+ - app/views/devise/mailer/invite_private_user.text.erb
962
1078
  - app/views/devise/mailer/organization_admin_invitation_instructions.html.erb
963
1079
  - app/views/devise/mailer/organization_admin_invitation_instructions.text.erb
964
1080
  - app/views/devise/mailer/password_change.html.erb
@@ -971,8 +1087,8 @@ files:
971
1087
  - app/views/kaminari/decidim/_paginator.html.erb
972
1088
  - app/views/kaminari/decidim/_prev_page.html.erb
973
1089
  - app/views/layouts/decidim/_application.html.erb
1090
+ - app/views/layouts/decidim/_component_authorization_modals.html.erb
974
1091
  - app/views/layouts/decidim/_cookie_warning.html.erb
975
- - app/views/layouts/decidim/_feature_authorization_modals.html.erb
976
1092
  - app/views/layouts/decidim/_head.html.erb
977
1093
  - app/views/layouts/decidim/_head_extra.html.erb
978
1094
  - app/views/layouts/decidim/_impersonation_warning.html.erb
@@ -1101,23 +1217,36 @@ files:
1101
1217
  - db/migrate/20180125063433_add_highlighted_content_banner_to_decidim_organizations.rb
1102
1218
  - db/migrate/20180130093153_add_action_log.rb
1103
1219
  - db/migrate/20180206143340_fix_reference_for_all_resources.rb
1220
+ - db/migrate/20180206183235_create_participatory_space_private_users.rb
1104
1221
  - db/migrate/20180215104821_create_decidim_area_types.rb
1105
1222
  - db/migrate/20180215104945_create_decidim_areas.rb
1106
1223
  - db/migrate/20180221101934_fix_nickname_index.rb
1107
1224
  - db/migrate/20180226140756_add_version_to_action_logs.rb
1225
+ - db/migrate/20180227131727_create_participatory_space_links.rb
1226
+ - db/migrate/20180305132906_rename_features_to_components.rb
1227
+ - db/migrate/20180308113207_doorkeeper_models.rb
1108
1228
  - db/migrate/20180314085339_rename_maximum_votes_per_proposal_to_threshold_per_proposal.rb
1109
- - db/migrate/20180326075746_change_event_name_and_class_to_rename_to_publish_proposal_event.rb
1229
+ - db/migrate/20180323102631_change_event_name_and_class_to_rename_to_publish_proposal_event.rb
1110
1230
  - db/seeds.rb
1111
1231
  - db/seeds/homepage_image.jpg
1112
1232
  - lib/decidim/abilities.rb
1113
1233
  - lib/decidim/abilities/participatory_process_role_ability.rb
1234
+ - lib/decidim/api/attachable_interface.rb
1114
1235
  - lib/decidim/api/author_interface.rb
1236
+ - lib/decidim/api/authorable_interface.rb
1237
+ - lib/decidim/api/categorizable_interface.rb
1115
1238
  - lib/decidim/api/component_interface.rb
1116
1239
  - lib/decidim/api/participatory_space_interface.rb
1240
+ - lib/decidim/api/scopable_interface.rb
1117
1241
  - lib/decidim/attributes.rb
1118
1242
  - lib/decidim/attributes/time_with_zone.rb
1119
1243
  - lib/decidim/authorable.rb
1120
1244
  - lib/decidim/authorization_form_builder.rb
1245
+ - lib/decidim/component_manifest.rb
1246
+ - lib/decidim/component_validator.rb
1247
+ - lib/decidim/components.rb
1248
+ - lib/decidim/components/export_manifest.rb
1249
+ - lib/decidim/components/namer.rb
1121
1250
  - lib/decidim/content_parsers.rb
1122
1251
  - lib/decidim/content_parsers/base_parser.rb
1123
1252
  - lib/decidim/content_parsers/user_parser.rb
@@ -1126,11 +1255,15 @@ files:
1126
1255
  - lib/decidim/content_renderers/base_renderer.rb
1127
1256
  - lib/decidim/content_renderers/user_renderer.rb
1128
1257
  - lib/decidim/core.rb
1258
+ - lib/decidim/core/api.rb
1129
1259
  - lib/decidim/core/engine.rb
1130
1260
  - lib/decidim/core/test.rb
1131
1261
  - lib/decidim/core/test/factories.rb
1132
1262
  - lib/decidim/core/test/shared_examples/announcements_examples.rb
1263
+ - lib/decidim/core/test/shared_examples/attachable_interface_examples.rb
1133
1264
  - lib/decidim/core/test/shared_examples/authorable.rb
1265
+ - lib/decidim/core/test/shared_examples/authorable_interface_examples.rb
1266
+ - lib/decidim/core/test/shared_examples/categorizable_interface_examples.rb
1134
1267
  - lib/decidim/core/test/shared_examples/comments_examples.rb
1135
1268
  - lib/decidim/core/test/shared_examples/component_type.rb
1136
1269
  - lib/decidim/core/test/shared_examples/errors.rb
@@ -1138,7 +1271,7 @@ files:
1138
1271
  - lib/decidim/core/test/shared_examples/has_attachment_collections.rb
1139
1272
  - lib/decidim/core/test/shared_examples/has_attachments.rb
1140
1273
  - lib/decidim/core/test/shared_examples/has_category.rb
1141
- - lib/decidim/core/test/shared_examples/has_feature.rb
1274
+ - lib/decidim/core/test/shared_examples/has_component.rb
1142
1275
  - lib/decidim/core/test/shared_examples/has_reference.rb
1143
1276
  - lib/decidim/core/test/shared_examples/has_scope.rb
1144
1277
  - lib/decidim/core/test/shared_examples/localised_email.rb
@@ -1147,6 +1280,7 @@ files:
1147
1280
  - lib/decidim/core/test/shared_examples/publicable.rb
1148
1281
  - lib/decidim/core/test/shared_examples/reportable.rb
1149
1282
  - lib/decidim/core/test/shared_examples/reports_examples.rb
1283
+ - lib/decidim/core/test/shared_examples/scopable_interface_examples.rb
1150
1284
  - lib/decidim/core/test/shared_examples/scope_helper_examples.rb
1151
1285
  - lib/decidim/core/test/shared_examples/simple_event.rb
1152
1286
  - lib/decidim/core/test/shared_examples/user_localised_email_examples.rb
@@ -1166,11 +1300,6 @@ files:
1166
1300
  - lib/decidim/exporters/json.rb
1167
1301
  - lib/decidim/exporters/serializer.rb
1168
1302
  - lib/decidim/faker/localized.rb
1169
- - lib/decidim/feature_manifest.rb
1170
- - lib/decidim/feature_validator.rb
1171
- - lib/decidim/features.rb
1172
- - lib/decidim/features/export_manifest.rb
1173
- - lib/decidim/features/namer.rb
1174
1303
  - lib/decidim/file_zipper.rb
1175
1304
  - lib/decidim/filter_form_builder.rb
1176
1305
  - lib/decidim/followable.rb
@@ -1179,7 +1308,8 @@ files:
1179
1308
  - lib/decidim/has_attachment_collections.rb
1180
1309
  - lib/decidim/has_attachments.rb
1181
1310
  - lib/decidim/has_category.rb
1182
- - lib/decidim/has_feature.rb
1311
+ - lib/decidim/has_component.rb
1312
+ - lib/decidim/has_private_users.rb
1183
1313
  - lib/decidim/has_reference.rb
1184
1314
  - lib/decidim/has_settings.rb
1185
1315
  - lib/decidim/loggable.rb
@@ -1194,18 +1324,21 @@ files:
1194
1324
  - lib/decidim/participable.rb
1195
1325
  - lib/decidim/participatory_space_context_manifest.rb
1196
1326
  - lib/decidim/participatory_space_manifest.rb
1327
+ - lib/decidim/participatory_space_resourceable.rb
1197
1328
  - lib/decidim/publicable.rb
1198
1329
  - lib/decidim/query_extensions.rb
1330
+ - lib/decidim/rectify_ext.rb
1199
1331
  - lib/decidim/reportable.rb
1200
1332
  - lib/decidim/resource_manifest.rb
1201
1333
  - lib/decidim/resourceable.rb
1202
1334
  - lib/decidim/scopable.rb
1203
- - lib/decidim/scopable_feature.rb
1335
+ - lib/decidim/scopable_component.rb
1204
1336
  - lib/decidim/settings_manifest.rb
1205
1337
  - lib/decidim/stats_registry.rb
1206
1338
  - lib/decidim/traceable.rb
1207
1339
  - lib/decidim/translatable_attributes.rb
1208
1340
  - lib/decidim/view_hooks.rb
1341
+ - lib/decidim/view_model.rb
1209
1342
  - lib/devise/models/decidim_validatable.rb
1210
1343
  - lib/tasks/decidim_tasks.rake
1211
1344
  - vendor/assets/javascripts/appendAround.js
@@ -1233,12 +1366,16 @@ files:
1233
1366
  - vendor/assets/javascripts/quill.min.js
1234
1367
  - vendor/assets/javascripts/quill.min.js.map
1235
1368
  - vendor/assets/javascripts/svg4everybody.min.js
1369
+ - vendor/assets/javascripts/tagsinput.js
1370
+ - vendor/assets/javascripts/tribute.js
1236
1371
  - vendor/assets/stylesheets/MarkerCluster.Default.css
1237
1372
  - vendor/assets/stylesheets/MarkerCluster.css
1238
1373
  - vendor/assets/stylesheets/leaflet.css
1239
1374
  - vendor/assets/stylesheets/quill.bubble.css
1240
1375
  - vendor/assets/stylesheets/quill.core.css
1241
1376
  - vendor/assets/stylesheets/quill.snow.css
1377
+ - vendor/assets/stylesheets/tagsinput.css
1378
+ - vendor/assets/stylesheets/tribute.css
1242
1379
  homepage: https://github.com/decidim/decidim
1243
1380
  licenses:
1244
1381
  - AGPL-3.0
@@ -1254,9 +1391,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1254
1391
  version: '0'
1255
1392
  required_rubygems_version: !ruby/object:Gem::Requirement
1256
1393
  requirements:
1257
- - - ">="
1394
+ - - ">"
1258
1395
  - !ruby/object:Gem::Version
1259
- version: '0'
1396
+ version: 1.3.1
1260
1397
  requirements: []
1261
1398
  rubyforge_project:
1262
1399
  rubygems_version: 2.7.3
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- # This class infers the current feature we're scoped to by looking at the
5
- # request parameters and injects it into the environment.
6
- class CurrentFeature
7
- # Public: Initializes the class.
8
- #
9
- # manifest - The manifest of the feature to check against.
10
- def initialize(manifest)
11
- @manifest = manifest
12
- end
13
-
14
- # Public: Matches the request against a feature and injects it into the
15
- # environment.
16
- #
17
- # request - The request that holds the current feature relevant information.
18
- #
19
- # Returns a true if the request matched, false otherwise
20
- def matches?(request)
21
- env = request.env
22
-
23
- @participatory_space = env["decidim.current_participatory_space"]
24
- return false unless @participatory_space
25
-
26
- current_feature(env, request.params) ? true : false
27
- end
28
-
29
- private
30
-
31
- def current_feature(env, params)
32
- env["decidim.current_feature"] ||= detect_current_feature(params)
33
- end
34
-
35
- def detect_current_feature(params)
36
- @participatory_space.features.find do |feature|
37
- params["feature_id"] == feature.id.to_s && feature.manifest_name == @manifest.name.to_s
38
- end
39
- end
40
- end
41
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- # A helper to get the root path for a feature.
5
- module FeaturePathHelper
6
- # Returns the defined root path for a given feature.
7
- #
8
- # feature - the Feature we want to find the root path for.
9
- #
10
- # Returns a relative url.
11
- def main_feature_path(feature)
12
- current_params = try(:params) || {}
13
- EngineRouter.main_proxy(feature).root_path(locale: current_params[:locale])
14
- end
15
-
16
- # Returns the defined root url for a given feature.
17
- #
18
- # feature - the Feature we want to find the root path for.
19
- #
20
- # Returns an absolute url.
21
- def main_feature_url(feature)
22
- current_params = try(:params) || {}
23
- EngineRouter.main_proxy(feature).root_url(locale: current_params[:locale])
24
- end
25
-
26
- # Returns the defined admin root path for a given feature.
27
- #
28
- # feature - the Feature we want to find the root path for.
29
- #
30
- # Returns a relative url.
31
- def manage_feature_path(feature)
32
- current_params = try(:params) || {}
33
- EngineRouter.admin_proxy(feature).root_path(locale: current_params[:locale])
34
- end
35
- end
36
- end
@@ -1,5 +0,0 @@
1
- <% if try(:current_feature) %>
2
- <% current_feature.manifest.actions.each do |action| %>
3
- <%= action_authorization_modal(action) %>
4
- <% end %>
5
- <% end %>
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- shared_examples_for "has feature" do
6
- context "without a feature" do
7
- before do
8
- subject.feature = nil
9
- end
10
-
11
- it { is_expected.not_to be_valid }
12
- end
13
-
14
- context "without a valid feature" do
15
- before do
16
- subject.feature = build(:feature, manifest_name: "foo-bar")
17
- end
18
-
19
- it { is_expected.not_to be_valid }
20
- end
21
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Features
5
- # This class automatically names features for the given organization.
6
- # In order to do so, it uses the i18n keys of the feature, fallback to English,
7
- # searching for the key `"decidim.features.<feature name>.name"`
8
- #
9
- # This is intended to be used from the feature seeds section.
10
- #
11
- # Examples:
12
- #
13
- # Decidim::Feature.create!(
14
- # participatory_space: process,
15
- # name: Decidim::Feature::Namer.new(organization.available_locales, :my_feature_name).i18n_name
16
- # manifest_name: :my_feature_name
17
- # )
18
- class Namer
19
- def initialize(locales, feature_name)
20
- @locales = locales
21
- @feature_name = feature_name
22
- end
23
-
24
- def i18n_name
25
- locales.inject({}) do |names, locale|
26
- names.update(locale => I18n.t("decidim.features.#{feature_name}.name", locale: locale))
27
- end
28
- end
29
-
30
- private
31
-
32
- attr_reader :locales, :feature_name
33
- end
34
- end
35
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- # This module contains all logic related to decidim's Features, the main
5
- # building block to extend functionalities in a participatory process.
6
- module Features
7
- autoload :BaseController, "decidim/features/base_controller"
8
- end
9
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "active_support/concern"
4
- require "decidim/feature_validator"
5
-
6
- module Decidim
7
- # A concern with the features needed when you want a model to have a feature.
8
- module HasFeature
9
- extend ActiveSupport::Concern
10
-
11
- included do
12
- belongs_to :feature, foreign_key: "decidim_feature_id", class_name: "Decidim::Feature"
13
- delegate :organization, to: :feature, allow_nil: true
14
- delegate :participatory_space, to: :feature, allow_nil: true
15
- end
16
-
17
- class_methods do
18
- def feature_manifest_name(manifest_name)
19
- validates :feature, feature: { manifest: manifest_name || name.demodulize.pluralize.downcase }
20
- end
21
- end
22
- end
23
- end