decidim 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim might be problematic. Click here for more details.

Files changed (360) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.json +2 -1
  3. data/Gemfile.lock +121 -112
  4. data/README.md +28 -10
  5. data/Rakefile +1 -1
  6. data/decidim-admin/README.md +1 -1
  7. data/decidim-admin/app/assets/stylesheets/decidim/admin/_sidebar.scss +30 -1
  8. data/decidim-admin/app/assets/stylesheets/decidim/admin/_tables.scss +3 -0
  9. data/decidim-admin/app/assets/stylesheets/decidim/admin/application.scss +3 -0
  10. data/decidim-admin/app/commands/decidim/admin/create_participatory_process.rb +4 -1
  11. data/decidim-admin/app/commands/decidim/admin/create_participatory_process_admin.rb +26 -7
  12. data/decidim-admin/app/commands/decidim/admin/create_participatory_process_group.rb +54 -0
  13. data/decidim-admin/app/commands/decidim/admin/create_participatory_process_step.rb +0 -1
  14. data/decidim-admin/app/commands/decidim/admin/destroy_participatory_process_step.rb +3 -1
  15. data/decidim-admin/app/commands/decidim/admin/hide_resource.rb +37 -0
  16. data/decidim-admin/app/commands/decidim/admin/reorder_participatory_process_steps.rb +1 -0
  17. data/decidim-admin/app/commands/decidim/admin/unreport_resource.rb +33 -0
  18. data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +4 -2
  19. data/decidim-admin/app/commands/decidim/admin/update_participatory_process_group.rb +57 -0
  20. data/decidim-admin/app/commands/decidim/admin/update_participatory_process_step.rb +1 -2
  21. data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +4 -0
  22. data/decidim-admin/app/controllers/decidim/admin/categories_controller.rb +1 -1
  23. data/decidim-admin/app/controllers/decidim/admin/feature_permissions_controller.rb +2 -2
  24. data/decidim-admin/{lib → app/controllers}/decidim/admin/features/base_controller.rb +0 -0
  25. data/decidim-admin/app/controllers/decidim/admin/moderations_controller.rb +64 -0
  26. data/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
  27. data/decidim-admin/app/controllers/decidim/admin/participatory_process_groups_controller.rb +86 -0
  28. data/decidim-admin/app/controllers/decidim/admin/participatory_process_publications_controller.rb +1 -1
  29. data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_activations_controller.rb +1 -1
  30. data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_ordering_controller.rb +1 -1
  31. data/decidim-admin/app/controllers/decidim/admin/participatory_process_steps_controller.rb +1 -1
  32. data/decidim-admin/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +3 -3
  33. data/decidim-admin/app/controllers/decidim/admin/participatory_processes_controller.rb +3 -2
  34. data/decidim-admin/app/forms/decidim/admin/organization_form.rb +1 -0
  35. data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +12 -1
  36. data/decidim-admin/app/forms/decidim/admin/participatory_process_group_form.rb +23 -0
  37. data/decidim-admin/app/forms/decidim/admin/participatory_process_step_form.rb +0 -1
  38. data/decidim-admin/app/forms/decidim/admin/participatory_process_user_role_form.rb +5 -1
  39. data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
  40. data/decidim-admin/app/helpers/decidim/admin/process_groups_for_select_helper.rb +20 -0
  41. data/decidim-admin/app/helpers/decidim/admin/processes_for_select_helper.rb +22 -0
  42. data/decidim-admin/app/models/decidim/admin/abilities/admin_user.rb +2 -0
  43. data/decidim-admin/app/models/decidim/admin/abilities/participatory_process_admin.rb +4 -0
  44. data/decidim-admin/app/models/decidim/admin/participatory_process_user_role.rb +1 -1
  45. data/decidim-admin/app/queries/decidim/admin/process_admins.rb +43 -0
  46. data/decidim-admin/app/views/decidim/admin/moderations/index.html.erb +65 -0
  47. data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +4 -0
  48. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/_form.html.erb +17 -0
  49. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/edit.html.erb +13 -0
  50. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/index.html.erb +38 -0
  51. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/new.html.erb +11 -0
  52. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/show.html.erb +23 -0
  53. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_form.html.erb +0 -4
  54. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/show.html.erb +4 -5
  55. data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +27 -24
  56. data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +10 -1
  57. data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +15 -1
  58. data/decidim-admin/app/views/layouts/decidim/admin/_header.html.erb +1 -0
  59. data/decidim-admin/app/views/layouts/decidim/admin/_language_chooser.html.erb +14 -0
  60. data/decidim-admin/app/views/layouts/decidim/admin/_sidebar.html.erb +2 -0
  61. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +5 -0
  62. data/decidim-admin/config/i18n-tasks.yml +3 -1
  63. data/decidim-admin/config/locales/ca.yml +83 -3
  64. data/decidim-admin/config/locales/en.yml +81 -1
  65. data/decidim-admin/config/locales/es.yml +81 -1
  66. data/decidim-admin/config/locales/eu.yml +340 -1
  67. data/decidim-admin/config/locales/fi.yml +464 -0
  68. data/decidim-admin/config/routes.rb +8 -0
  69. data/decidim-admin/db/seeds.rb +1 -1
  70. data/decidim-admin/lib/decidim/admin/engine.rb +1 -0
  71. data/decidim-admin/spec/commands/create_participatory_process_admin_spec.rb +10 -4
  72. data/decidim-admin/spec/commands/create_participatory_process_spec.rb +6 -1
  73. data/decidim-admin/spec/commands/hide_resource_spec.rb +41 -0
  74. data/decidim-admin/spec/commands/unreport_resource_spec.rb +42 -0
  75. data/decidim-admin/spec/commands/update_organization_spec.rb +1 -0
  76. data/decidim-admin/spec/features/admin_invite_spec.rb +1 -0
  77. data/decidim-admin/spec/features/admin_manages_feature_permissions_spec.rb +1 -1
  78. data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +1 -1
  79. data/decidim-admin/spec/features/admin_manages_participatory_process_groups_spec.rb +107 -0
  80. data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +5 -0
  81. data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +11 -4
  82. data/decidim-admin/spec/forms/organization_form_spec.rb +2 -0
  83. data/decidim-admin/spec/forms/participatory_process_group_form_spec.rb +86 -0
  84. data/decidim-admin/spec/forms/participatory_process_step_form_spec.rb +0 -10
  85. data/decidim-admin/spec/forms/participatory_process_user_role_form_spec.rb +4 -0
  86. data/decidim-admin/spec/models/abilities/admin_user_spec.rb +3 -2
  87. data/decidim-admin/spec/models/abilities/participatory_process_admin_spec.rb +7 -0
  88. data/decidim-admin/spec/queries/process_admins_spec.rb +23 -0
  89. data/decidim-admin/spec/shared/manage_process_admins_examples.rb +2 -0
  90. data/decidim-admin/spec/shared/manage_process_steps_examples.rb +0 -10
  91. data/decidim-api/decidim-api.gemspec +1 -1
  92. data/decidim-budgets/app/commands/decidim/budgets/add_line_item.rb +9 -1
  93. data/decidim-budgets/app/controllers/decidim/budgets/admin/projects_controller.rb +13 -1
  94. data/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb +5 -1
  95. data/decidim-budgets/app/models/decidim/budgets/order.rb +3 -0
  96. data/decidim-budgets/app/models/decidim/budgets/project.rb +9 -1
  97. data/decidim-budgets/app/services/decidim/budgets/project_search.rb +0 -5
  98. data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +5 -3
  99. data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +9 -0
  100. data/decidim-budgets/app/views/decidim/budgets/line_items/update_budget.js.erb +1 -0
  101. data/decidim-budgets/app/views/decidim/budgets/projects/_filters.html.erb +2 -2
  102. data/decidim-budgets/app/views/decidim/budgets/projects/_filters_small_view.html.erb +18 -0
  103. data/decidim-budgets/app/views/decidim/budgets/projects/_project.html.erb +17 -2
  104. data/decidim-budgets/app/views/decidim/budgets/projects/_project_budget_button.html.erb +2 -2
  105. data/decidim-budgets/app/views/decidim/budgets/projects/_tags.html.erb +1 -1
  106. data/decidim-budgets/app/views/decidim/budgets/projects/index.html.erb +2 -1
  107. data/decidim-budgets/app/views/decidim/budgets/projects/show.html.erb +7 -1
  108. data/decidim-budgets/config/i18n-tasks.yml +1 -0
  109. data/decidim-budgets/config/locales/ca.yml +18 -3
  110. data/decidim-budgets/config/locales/en.yml +15 -0
  111. data/decidim-budgets/config/locales/es.yml +17 -2
  112. data/decidim-budgets/config/locales/eu.yml +97 -1
  113. data/decidim-budgets/config/locales/fi.yml +123 -0
  114. data/decidim-budgets/db/migrate/20170215132708_add_reference_to_projects.rb +7 -0
  115. data/decidim-budgets/lib/decidim/budgets/feature.rb +4 -2
  116. data/decidim-budgets/lib/decidim/budgets/seeds/Exampledocument.pdf +0 -0
  117. data/decidim-budgets/lib/decidim/budgets/seeds/city.jpeg +0 -0
  118. data/decidim-budgets/lib/decidim/budgets/test/factories.rb +21 -1
  119. data/decidim-budgets/spec/commands/add_line_item_spec.rb +10 -1
  120. data/decidim-budgets/spec/features/comments_spec.rb +10 -0
  121. data/decidim-budgets/spec/features/orders_spec.rb +47 -3
  122. data/decidim-budgets/spec/models/project_spec.rb +16 -1
  123. data/decidim-budgets/spec/services/project_search_spec.rb +9 -0
  124. data/decidim-budgets/spec/shared/admin_shared_context.rb +1 -1
  125. data/decidim-budgets/spec/shared/manage_projects_examples.rb +22 -0
  126. data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
  127. data/decidim-comments/app/commands/decidim/comments/create_comment.rb +9 -1
  128. data/decidim-comments/app/frontend/application/icon.component.jsx +1 -1
  129. data/decidim-comments/app/frontend/comments/add_comment_form.component.jsx +11 -10
  130. data/decidim-comments/app/frontend/comments/add_comment_form.component.test.jsx +5 -5
  131. data/decidim-comments/app/frontend/comments/comment.component.jsx +91 -1
  132. data/decidim-comments/app/frontend/comments/comment.component.test.jsx +18 -0
  133. data/decidim-comments/app/frontend/comments/comment_data.fragment.graphql +2 -0
  134. data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +4 -5
  135. data/decidim-comments/app/frontend/comments/comments.query.graphql +1 -0
  136. data/decidim-comments/app/mailers/decidim/comments/comment_notification_mailer.rb +8 -0
  137. data/decidim-comments/app/models/decidim/comments/abilities/admin_user.rb +25 -0
  138. data/decidim-comments/app/models/decidim/comments/abilities/process_admin_user.rb +33 -0
  139. data/decidim-comments/app/models/decidim/comments/comment.rb +7 -1
  140. data/decidim-comments/app/models/decidim/comments/comment_vote.rb +3 -1
  141. data/decidim-comments/app/queries/decidim/comments/sorted_comments.rb +1 -0
  142. data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/comment_created.html.erb +1 -1
  143. data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/reply_created.html.erb +1 -1
  144. data/decidim-comments/config/locales/ca.yml +11 -0
  145. data/decidim-comments/config/locales/en.yml +12 -2
  146. data/decidim-comments/config/locales/es.yml +11 -0
  147. data/decidim-comments/config/locales/eu.yml +38 -1
  148. data/decidim-comments/config/locales/fi.yml +66 -0
  149. data/decidim-comments/lib/decidim/comments.rb +2 -0
  150. data/decidim-comments/lib/decidim/comments/admin.rb +9 -0
  151. data/decidim-comments/lib/decidim/comments/admin_engine.rb +22 -0
  152. data/decidim-comments/lib/decidim/comments/api/comment_type.rb +12 -0
  153. data/decidim-comments/lib/decidim/comments/commentable.rb +0 -2
  154. data/decidim-comments/lib/decidim/comments/engine.rb +1 -0
  155. data/decidim-comments/lib/decidim/comments/test/factories.rb +3 -0
  156. data/decidim-comments/spec/commands/create_comment_spec.rb +11 -0
  157. data/decidim-comments/spec/features/admin_manages_comments_spec.rb +23 -0
  158. data/decidim-comments/spec/features/comments_spec.rb +5 -173
  159. data/decidim-comments/spec/features/process_admin_manages_comments_spec.rb +24 -0
  160. data/decidim-comments/spec/features/report_comment_spec.rb +20 -0
  161. data/decidim-comments/spec/models/abilities/admin_user_spec.rb +20 -0
  162. data/decidim-comments/spec/models/abilities/process_admin_user_spec.rb +21 -0
  163. data/decidim-comments/spec/models/comment_spec.rb +1 -0
  164. data/decidim-comments/spec/queries/sorted_comments_spec.rb +11 -0
  165. data/decidim-comments/spec/shared/admin_shared_context.rb +11 -0
  166. data/decidim-comments/spec/types/comment_type_spec.rb +19 -0
  167. data/decidim-dev/config/locales/ca.yml +1 -1
  168. data/decidim-dev/config/locales/en.yml +1 -1
  169. data/decidim-dev/config/locales/es.yml +1 -1
  170. data/decidim-dev/config/locales/eu.yml +1 -1
  171. data/decidim-dev/config/locales/fi.yml +5 -0
  172. data/decidim-dev/decidim-dev.gemspec +3 -1
  173. data/decidim-dev/lib/decidim/dev/test/base_spec_helper.rb +1 -28
  174. data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +11 -0
  175. data/{decidim-meetings/spec/support → decidim-dev/lib/decidim/dev/test/rspec_support}/geocoder.rb +5 -1
  176. data/decidim-dev/lib/decidim/dev/test/rspec_support/html_matchers.rb +6 -0
  177. data/decidim-dev/lib/decidim/dev/test/rspec_support/i18n.rb +3 -0
  178. data/decidim-dev/lib/decidim/dev/test/rspec_support/webmock.rb +2 -0
  179. data/decidim-dev/lib/decidim/dev/test/spec_helper.rb +37 -0
  180. data/decidim-dev/lib/generators/decidim/dummy_generator.rb +5 -0
  181. data/decidim-dev/lib/generators/decidim/templates/autoprefixer.yml +8 -0
  182. data/decidim-dev/lib/generators/decidim/templates/autoprefixer_initializer.rb +16 -0
  183. data/decidim-meetings/app/commands/decidim/meetings/admin/create_meeting.rb +6 -17
  184. data/decidim-meetings/app/commands/decidim/meetings/admin/update_meeting.rb +6 -7
  185. data/decidim-meetings/app/controllers/decidim/meetings/application_controller.rb +1 -0
  186. data/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb +14 -9
  187. data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +12 -1
  188. data/decidim-meetings/app/helpers/decidim/meetings/admin/application_helper.rb +1 -1
  189. data/decidim-meetings/app/helpers/decidim/meetings/application_helper.rb +2 -1
  190. data/decidim-meetings/app/helpers/decidim/meetings/map_helper.rb +10 -32
  191. data/decidim-meetings/app/models/decidim/meetings/meeting.rb +2 -1
  192. data/decidim-meetings/app/services/decidim/meetings/meeting_search.rb +0 -5
  193. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +5 -3
  194. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +5 -3
  195. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters_small_view.html.erb +1 -1
  196. data/decidim-meetings/app/views/decidim/meetings/meetings/_meetings.html.erb +11 -1
  197. data/decidim-meetings/app/views/decidim/meetings/meetings/_tags.html.erb +1 -1
  198. data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +27 -32
  199. data/decidim-meetings/app/views/decidim/meetings/meetings/index.js.erb +2 -2
  200. data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +2 -15
  201. data/decidim-meetings/config/i18n-tasks.yml +1 -1
  202. data/decidim-meetings/config/locales/ca.yml +18 -3
  203. data/decidim-meetings/config/locales/en.yml +20 -3
  204. data/decidim-meetings/config/locales/es.yml +18 -3
  205. data/decidim-meetings/config/locales/eu.yml +75 -1
  206. data/decidim-meetings/config/locales/fi.yml +98 -0
  207. data/decidim-meetings/db/migrate/20170215132546_add_reference_to_meetings.rb +7 -0
  208. data/decidim-meetings/decidim-meetings.gemspec +0 -2
  209. data/decidim-meetings/lib/decidim/meetings/admin_engine.rb +0 -26
  210. data/decidim-meetings/lib/decidim/meetings/list_engine.rb +1 -9
  211. data/decidim-meetings/spec/commands/create_meeting_spec.rb +6 -14
  212. data/decidim-meetings/spec/commands/update_meeting_spec.rb +10 -29
  213. data/decidim-meetings/spec/features/explore_meetings_spec.rb +37 -13
  214. data/decidim-meetings/spec/forms/meeting_form_spec.rb +15 -1
  215. data/decidim-meetings/spec/models/meeting_spec.rb +1 -0
  216. data/decidim-meetings/spec/services/meeting_search_spec.rb +9 -0
  217. data/decidim-meetings/spec/shared/admin_shared_context.rb +1 -1
  218. data/decidim-meetings/spec/shared/manage_meetings_examples.rb +97 -1
  219. data/decidim-meetings/spec/spec_helper.rb +0 -5
  220. data/decidim-pages/app/commands/decidim/pages/admin/update_page.rb +1 -4
  221. data/decidim-pages/app/commands/decidim/pages/create_page.rb +1 -4
  222. data/decidim-pages/app/forms/decidim/pages/admin/page_form.rb +0 -3
  223. data/decidim-pages/app/models/decidim/pages/page.rb +8 -12
  224. data/decidim-pages/app/views/decidim/pages/admin/pages/_form.html.erb +0 -1
  225. data/decidim-pages/app/views/decidim/pages/application/show.html.erb +0 -1
  226. data/decidim-pages/config/locales/ca.yml +0 -1
  227. data/decidim-pages/config/locales/en.yml +0 -1
  228. data/decidim-pages/config/locales/es.yml +0 -1
  229. data/decidim-pages/config/locales/eu.yml +14 -1
  230. data/decidim-pages/config/locales/fi.yml +22 -0
  231. data/decidim-pages/db/migrate/20170220091402_remove_page_feature_titles.rb +5 -0
  232. data/decidim-pages/lib/decidim/pages/engine.rb +1 -0
  233. data/decidim-pages/lib/decidim/pages/feature.rb +4 -1
  234. data/decidim-pages/spec/commands/create_page_spec.rb +1 -2
  235. data/decidim-pages/spec/commands/update_page_spec.rb +0 -1
  236. data/decidim-pages/spec/factories.rb +6 -1
  237. data/decidim-pages/spec/features/admin_spec.rb +1 -17
  238. data/decidim-pages/spec/features/comments_spec.rb +10 -0
  239. data/decidim-pages/spec/features/page_show_spec.rb +1 -10
  240. data/decidim-pages/spec/forms/page_form_spec.rb +0 -21
  241. data/decidim-pages/spec/models/page_spec.rb +2 -4
  242. data/decidim-proposals/app/commands/decidim/proposals/admin/create_proposal.rb +4 -1
  243. data/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb +4 -1
  244. data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +4 -0
  245. data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +12 -6
  246. data/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb +13 -2
  247. data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +13 -2
  248. data/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb +3 -0
  249. data/decidim-proposals/app/helpers/decidim/proposals/map_helper.rb +19 -0
  250. data/decidim-proposals/app/helpers/decidim/proposals/proposal_order_helper.rb +16 -0
  251. data/decidim-proposals/app/models/decidim/proposals/abilities/admin_user.rb +2 -0
  252. data/decidim-proposals/app/models/decidim/proposals/abilities/current_user.rb +3 -0
  253. data/decidim-proposals/app/models/decidim/proposals/abilities/process_admin_user.rb +2 -1
  254. data/decidim-proposals/app/models/decidim/proposals/proposal.rb +12 -3
  255. data/decidim-proposals/app/services/decidim/proposals/proposal_search.rb +0 -5
  256. data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +1 -1
  257. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/_form.html.erb +8 -2
  258. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/index.html.erb +12 -14
  259. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +2 -2
  260. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +1 -1
  261. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposals.html.erb +1 -1
  262. data/decidim-proposals/app/views/decidim/proposals/proposals/_tags.html.erb +1 -1
  263. data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +27 -0
  264. data/decidim-proposals/app/views/decidim/proposals/proposals/new.html.erb +8 -2
  265. data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +18 -1
  266. data/decidim-proposals/config/i18n-tasks.yml +3 -1
  267. data/decidim-proposals/config/locales/ca.yml +11 -8
  268. data/decidim-proposals/config/locales/en.yml +9 -6
  269. data/decidim-proposals/config/locales/es.yml +14 -11
  270. data/decidim-proposals/config/locales/eu.yml +119 -1
  271. data/decidim-proposals/config/locales/fi.yml +143 -0
  272. data/decidim-proposals/db/migrate/20170215113152_create_proposal_reports.rb +14 -0
  273. data/decidim-proposals/db/migrate/20170215131720_add_report_count_to_proposals.rb +5 -0
  274. data/decidim-proposals/db/migrate/20170215132030_add_reference_to_proposals.rb +7 -0
  275. data/decidim-proposals/db/migrate/20170220152416_add_hidden_at_to_proposals.rb +5 -0
  276. data/decidim-proposals/db/migrate/20170228105156_add_geolocalization_fields_to_proposals.rb +7 -0
  277. data/decidim-proposals/db/migrate/20170307085300_migrate_proposal_reports_data_to_reports.rb +26 -0
  278. data/decidim-proposals/decidim-proposals.gemspec +1 -1
  279. data/decidim-proposals/lib/decidim/proposals/feature.rb +4 -3
  280. data/decidim-proposals/lib/decidim/proposals/test/factories.rb +8 -0
  281. data/decidim-proposals/spec/features/admin_manages_proposals_spec.rb +3 -0
  282. data/decidim-proposals/spec/features/comments_spec.rb +11 -0
  283. data/decidim-proposals/spec/features/process_admin_manages_proposals_spec.rb +3 -0
  284. data/decidim-proposals/spec/features/proposals_spec.rb +98 -15
  285. data/decidim-proposals/spec/features/report_proposal_spec.rb +19 -0
  286. data/decidim-proposals/spec/helpers/proposal_order_helper_spec.rb +30 -0
  287. data/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb +2 -0
  288. data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +9 -0
  289. data/decidim-proposals/spec/shared/create_proposal_examples.rb +29 -2
  290. data/decidim-proposals/spec/shared/manage_proposals_examples.rb +95 -26
  291. data/decidim-proposals/spec/shared/proposal_form_examples.rb +29 -1
  292. data/decidim-results/app/forms/decidim/results/admin/result_form.rb +9 -1
  293. data/decidim-results/app/models/decidim/results/result.rb +2 -1
  294. data/decidim-results/app/services/decidim/results/result_search.rb +0 -5
  295. data/decidim-results/app/views/decidim/results/admin/results/_form.html.erb +5 -3
  296. data/decidim-results/app/views/decidim/results/results/_filters.html.erb +2 -2
  297. data/decidim-results/app/views/decidim/results/results/_filters_small_view.html.erb +18 -0
  298. data/decidim-results/app/views/decidim/results/results/_tags.html.erb +1 -1
  299. data/decidim-results/app/views/decidim/results/results/index.html.erb +1 -0
  300. data/decidim-results/app/views/decidim/results/results/show.html.erb +1 -0
  301. data/decidim-results/config/i18n-tasks.yml +2 -0
  302. data/decidim-results/config/locales/ca.yml +15 -2
  303. data/decidim-results/config/locales/en.yml +15 -2
  304. data/decidim-results/config/locales/es.yml +15 -2
  305. data/decidim-results/config/locales/eu.yml +57 -1
  306. data/decidim-results/config/locales/fi.yml +77 -0
  307. data/decidim-results/db/migrate/20170215132624_add_reference_to_results.rb +7 -0
  308. data/decidim-results/lib/decidim/results/test/factories.rb +6 -0
  309. data/decidim-results/spec/features/comments_spec.rb +10 -0
  310. data/decidim-results/spec/features/explore_results_spec.rb +27 -0
  311. data/decidim-results/spec/models/result_spec.rb +1 -0
  312. data/decidim-results/spec/services/result_search_spec.rb +9 -0
  313. data/decidim-results/spec/shared/admin_shared_context.rb +1 -1
  314. data/decidim-system/README.md +45 -8
  315. data/decidim-system/app/commands/decidim/system/register_organization.rb +3 -0
  316. data/decidim-system/app/commands/decidim/system/update_organization.rb +2 -0
  317. data/decidim-system/app/controllers/decidim/system/application_controller.rb +2 -0
  318. data/decidim-system/app/forms/decidim/system/register_organization_form.rb +1 -0
  319. data/decidim-system/app/forms/decidim/system/update_organization_form.rb +18 -0
  320. data/decidim-system/app/views/decidim/system/organizations/edit.html.erb +10 -0
  321. data/decidim-system/app/views/decidim/system/organizations/new.html.erb +33 -19
  322. data/decidim-system/config/locales/ca.yml +3 -0
  323. data/decidim-system/config/locales/en.yml +3 -0
  324. data/decidim-system/config/locales/es.yml +3 -0
  325. data/decidim-system/config/locales/eu.yml +3 -0
  326. data/decidim-system/config/locales/fi.yml +68 -0
  327. data/decidim-system/db/seeds.rb +1 -1
  328. data/decidim-system/decidim-system.gemspec +1 -1
  329. data/decidim-system/lib/decidim/system/engine.rb +1 -0
  330. data/decidim-system/spec/commands/decidim/system/register_organization_spec.rb +3 -0
  331. data/decidim-system/spec/commands/decidim/system/update_organization_spec.rb +53 -0
  332. data/decidim-system/spec/features/organizations_spec.rb +5 -0
  333. data/docs/analytics.md +23 -0
  334. data/docs/how_to_create_a_plugin.md +3 -1
  335. data/lib/generators/decidim/app_generator.rb +4 -0
  336. data/lib/generators/decidim/demo_generator.rb +1 -1
  337. data/lib/generators/decidim/install_generator.rb +8 -1
  338. data/lib/generators/decidim/review_app_generator.rb +53 -0
  339. data/lib/generators/decidim/templates/Gemfile.erb +1 -5
  340. data/lib/generators/decidim/templates/app.json.erb +1 -1
  341. data/lib/generators/decidim/templates/carrierwave.rb +2 -2
  342. data/lib/generators/decidim/templates/decidim_controller.rb.erb +5 -0
  343. data/lib/generators/decidim/templates/initializer.rb +4 -0
  344. data/package.json +4 -4
  345. data/yarn.lock +106 -165
  346. metadata +100 -54
  347. data/decidim-meetings/app/assets/config/decidim_meetings_manifest.js +0 -2
  348. data/decidim-meetings/app/assets/javascripts/decidim/meetings/map.js.es6.erb +0 -97
  349. data/decidim-meetings/app/assets/stylesheets/decidim/meetings/map.css +0 -3
  350. data/decidim-meetings/app/services/decidim/meetings/static_map_generator.rb +0 -50
  351. data/decidim-meetings/app/views/decidim/meetings/meetings/_address_details.html.erb +0 -5
  352. data/decidim-meetings/spec/controllers/meetings_controller_spec.rb +0 -41
  353. data/decidim-meetings/spec/services/static_map_generator_spec.rb +0 -33
  354. data/decidim-meetings/vendor/assets/javascripts/leaflet-svg-icon.js +0 -179
  355. data/decidim-meetings/vendor/assets/javascripts/leaflet-tilelayer-here.js +0 -166
  356. data/decidim-meetings/vendor/assets/javascripts/leaflet.js +0 -9
  357. data/decidim-meetings/vendor/assets/javascripts/leaflet.markercluster.js +0 -7
  358. data/decidim-meetings/vendor/assets/stylesheets/MarkerCluster.Default.css +0 -60
  359. data/decidim-meetings/vendor/assets/stylesheets/MarkerCluster.css +0 -14
  360. data/decidim-meetings/vendor/assets/stylesheets/leaflet.css +0 -624
@@ -2,4 +2,4 @@ ca:
2
2
  decidim:
3
3
  resource_links:
4
4
  test_link:
5
- dummy: Element fictici relacionat
5
+ dummy_resource_dummy: Fictici relacionat
@@ -2,4 +2,4 @@ en:
2
2
  decidim:
3
3
  resource_links:
4
4
  test_link:
5
- dummy: Related dummy
5
+ dummy_resource_dummy: Related dummy
@@ -2,4 +2,4 @@ es:
2
2
  decidim:
3
3
  resource_links:
4
4
  test_link:
5
- dummy: Ficticio relacionado
5
+ dummy_resource_dummy: Ficticio relacionado
@@ -2,4 +2,4 @@ eu:
2
2
  decidim:
3
3
  resource_links:
4
4
  test_link:
5
- dummy: Related gezurrezko
5
+ dummy_resource_dummy: Honekin lotutako ????
@@ -0,0 +1,5 @@
1
+ fi:
2
+ decidim:
3
+ resource_links:
4
+ test_link:
5
+ dummy_resource_dummy: Liittyvät dummy
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency "rspec-rails", "~> 3.5"
23
23
  s.add_dependency "rspec-repeat", "~> 1.0.2"
24
24
  s.add_dependency "byebug"
25
- s.add_dependency "wisper-rspec"
25
+ s.add_dependency "wisper-rspec", "~> 0.0.3"
26
26
  s.add_dependency "listen", "~> 3.1.0"
27
27
  s.add_dependency "launchy"
28
28
  s.add_dependency "i18n-tasks", "0.9.12"
@@ -34,4 +34,6 @@ Gem::Specification.new do |s|
34
34
  s.add_dependency "rubocop", "~> 0.47"
35
35
  s.add_dependency "db-query-matchers", "~> 0.7.0"
36
36
  s.add_dependency "letter_opener_web", "~> 1.3.0"
37
+ s.add_dependency "rspec-html-matchers", "~> 0.9.1"
38
+ s.add_dependency "webmock", "~> 2.3.2"
37
39
  end
@@ -29,7 +29,6 @@ require "rails"
29
29
  require "active_support/core_ext/string"
30
30
  require "decidim/core"
31
31
  require "decidim/core/test"
32
-
33
32
  require "#{File.dirname(__FILE__)}/rspec_support/feature.rb"
34
33
 
35
34
  begin
@@ -40,36 +39,10 @@ rescue LoadError
40
39
  exit(-1)
41
40
  end
42
41
 
43
- require "rails-controller-testing"
44
- require "rspec/rails"
45
- require "factory_girl_rails"
46
- require "database_cleaner"
47
- require "byebug"
48
- require "cancan/matchers"
49
- require "rectify/rspec"
50
- require "wisper/rspec/stub_wisper_publisher"
51
- require "db-query-matchers"
52
-
53
42
  # Requires supporting files with custom matchers and macros, etc,
54
43
  # in ./support/ and its subdirectories.
55
- Dir["#{File.dirname(__FILE__)}/rspec_support/**/*.rb"].each { |f| require f }
56
44
  Dir["#{engine_spec_dir}/support/**/*.rb"].each { |f| require f }
57
45
  Dir["#{engine_spec_dir}/shared/**/*.rb"].each { |f| require f }
58
46
 
59
- RSpec.configure do |config|
60
- config.color = true
61
- config.fail_fast = ENV["FAIL_FAST"] || false
62
- config.infer_spec_type_from_file_location!
63
- config.mock_with :rspec
64
- config.raise_errors_for_deprecations!
65
-
66
- # If you're not using ActiveRecord, or you'd prefer not to run each of your
67
- # examples within a transaction, comment the following line or assign false
68
- # instead of true.
69
- config.use_transactional_fixtures = false
70
-
71
- config.include TranslationHelpers
72
- config.include Rectify::RSpec::Helpers
73
- end
74
-
47
+ require_relative "spec_helper"
75
48
  require_relative "i18n_spec"
@@ -17,10 +17,15 @@ module Decidim
17
17
  class DummyResource < ActiveRecord::Base
18
18
  include HasFeature
19
19
  include Resourceable
20
+ include Reportable
20
21
  include Authorable
21
22
  include Decidim::Comments::Commentable
22
23
 
23
24
  feature_manifest_name "dummy"
25
+
26
+ def reported_content
27
+ title
28
+ end
24
29
  end
25
30
 
26
31
  class DummyResourcesController < ActionController::Base
@@ -30,6 +35,8 @@ module Decidim
30
35
  def show
31
36
  @commentable = DummyResource.find(params[:id])
32
37
  render inline: %{
38
+ <%= display_flash_messages %>
39
+ <div class="reveal" id="loginModal" data-reveal></div>
33
40
  <%= javascript_include_tag 'application' %>
34
41
  <%= inline_comments_for(@commentable) %>
35
42
  }
@@ -66,6 +73,10 @@ RSpec.configure do |config|
66
73
  unless ActiveRecord::Base.connection.data_source_exists?("decidim_dummy_resources")
67
74
  ActiveRecord::Migration.create_table :decidim_dummy_resources do |t|
68
75
  t.string :title
76
+ t.text :address
77
+ t.float :latitude
78
+ t.float :longitude
79
+
69
80
  t.references :decidim_feature, index: true
70
81
  t.references :decidim_author, index: true
71
82
 
@@ -1,7 +1,11 @@
1
1
  RSpec.configure do |config|
2
2
  config.before(:each) do
3
3
  # Set geocoder configuration in test mode
4
- Decidim.geocoder = nil
4
+ Decidim.geocoder = {
5
+ static_map_url: "http://www.example.org",
6
+ here_app_id: '1234',
7
+ here_app_code: '5678'
8
+ }
5
9
  Geocoder.configure(lookup: :test)
6
10
  end
7
11
  end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ require "rspec-html-matchers"
3
+
4
+ RSpec.configure do |config|
5
+ config.include RSpecHtmlMatchers
6
+ end
@@ -5,6 +5,9 @@ RSpec.configure do |config|
5
5
  end
6
6
 
7
7
  config.around(:each) do |example|
8
+ I18n.available_locales = %w{en ca es}
9
+ Decidim.available_locales = %w{en ca es}
10
+
8
11
  previous_locale = I18n.locale
9
12
  example.run
10
13
  I18n.locale = previous_locale
@@ -0,0 +1,2 @@
1
+ require "webmock/rspec"
2
+ WebMock.allow_net_connect!
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+ ENV["RAILS_ENV"] ||= "test"
3
+
4
+ require "rails"
5
+ require "active_support/core_ext/string"
6
+ require "decidim/core"
7
+ require "decidim/core/test"
8
+
9
+ require "rails-controller-testing"
10
+ require "rspec/rails"
11
+ require "factory_girl_rails"
12
+ require "database_cleaner"
13
+ require "byebug"
14
+ require "cancan/matchers"
15
+ require "rectify/rspec"
16
+ require "wisper/rspec/stub_wisper_publisher"
17
+ require "db-query-matchers"
18
+
19
+ # Requires supporting files with custom matchers and macros, etc,
20
+ # in ./support/ and its subdirectories.
21
+ Dir["#{File.dirname(__FILE__)}/rspec_support/**/*.rb"].each { |f| require f }
22
+
23
+ RSpec.configure do |config|
24
+ config.color = true
25
+ config.fail_fast = ENV["FAIL_FAST"] || false
26
+ config.infer_spec_type_from_file_location!
27
+ config.mock_with :rspec
28
+ config.raise_errors_for_deprecations!
29
+
30
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
31
+ # examples within a transaction, comment the following line or assign false
32
+ # instead of true.
33
+ config.use_transactional_fixtures = false
34
+
35
+ config.include TranslationHelpers
36
+ config.include Rectify::RSpec::Helpers
37
+ end
@@ -51,6 +51,11 @@ module Decidim
51
51
 
52
52
  def decidim_dev
53
53
  template "decidim_dev.rb", "#{dummy_path}/config/initializers/decidim_dev.rb"
54
+
55
+ # TODO: Remove these after PhantomJS updates WebKit version (see YML and
56
+ # initializer comments)
57
+ template "autoprefixer.yml", "#{dummy_path}/config/autoprefixer.yml"
58
+ template "autoprefixer_initializer.rb", "#{dummy_path}/config/initializers/autoprefixer.rb"
54
59
  end
55
60
 
56
61
  private
@@ -0,0 +1,8 @@
1
+ # Loading the autoprefixer for WebKit browsers during tests will cause some
2
+ # tests to fail since parts of the UI are rendered differently. This is due to
3
+ # WebKit version used in PhantomJS that does not render some of the modern CSS
4
+ # features the same way as expected by the Foundation framework. For example,
5
+ # some elements are overlapping other elements which causes the elements to be
6
+ # inaccessible during the specific tests.
7
+ browsers:
8
+ - "Firefox > 2"
@@ -0,0 +1,16 @@
1
+ module AutoprefixerRails
2
+ class Sprockets
3
+ self.singleton_class.send(:alias_method, :call_original, :call)
4
+
5
+ def self.call(input)
6
+ filename = input[:name]
7
+
8
+ # Disable autoprefixer for the graphiql-rails gem's assets because it
9
+ # breaks some of the API tests when the '-webkit' prefixes are applied to
10
+ # its CSS.
11
+ return if filename.match(/^graphiql\/.*/)
12
+
13
+ self.call_original(input)
14
+ end
15
+ end
16
+ end
@@ -15,17 +15,14 @@ module Decidim
15
15
  def call
16
16
  return broadcast(:invalid) if @form.invalid?
17
17
 
18
- build_meeting
19
- return broadcast(:invalid) if Decidim.geocoder.present? && !geocode_meeting
20
- create_meeting
21
-
22
- broadcast(:ok)
18
+ create_meeting!
19
+ broadcast(:ok, @meeting)
23
20
  end
24
21
 
25
22
  private
26
23
 
27
- def build_meeting
28
- @meeting = Meeting.new(
24
+ def create_meeting!
25
+ @meeting = Meeting.create!(
29
26
  scope: @form.scope,
30
27
  category: @form.category,
31
28
  title: @form.title,
@@ -33,21 +30,13 @@ module Decidim
33
30
  end_time: @form.end_time,
34
31
  start_time: @form.start_time,
35
32
  address: @form.address,
33
+ latitude: @form.latitude,
34
+ longitude: @form.longitude,
36
35
  location: @form.location,
37
36
  location_hints: @form.location_hints,
38
37
  feature: @form.current_feature
39
38
  )
40
39
  end
41
-
42
- def geocode_meeting
43
- result = @meeting.geocode
44
- @form.errors.add :address, :invalid unless result
45
- result
46
- end
47
-
48
- def create_meeting
49
- @meeting.save!
50
- end
51
40
  end
52
41
  end
53
42
  end
@@ -20,17 +20,14 @@ module Decidim
20
20
  def call
21
21
  return broadcast(:invalid) if @form.invalid?
22
22
 
23
- change_meeting
24
- return broadcast(:invalid) if Decidim.geocoder.present? && @meeting.address_changed? && !geocode_meeting
25
- update_meeting
26
-
27
- broadcast(:ok)
23
+ update_meeting!
24
+ broadcast(:ok, @meeting)
28
25
  end
29
26
 
30
27
  private
31
28
 
32
- def change_meeting
33
- @meeting.assign_attributes(
29
+ def update_meeting!
30
+ @meeting.update_attributes!(
34
31
  scope: @form.scope,
35
32
  category: @form.category,
36
33
  title: @form.title,
@@ -38,6 +35,8 @@ module Decidim
38
35
  end_time: @form.end_time,
39
36
  start_time: @form.start_time,
40
37
  address: @form.address,
38
+ latitude: @form.latitude,
39
+ longitude: @form.longitude,
41
40
  location: @form.location,
42
41
  location_hints: @form.location_hints
43
42
  )
@@ -8,6 +8,7 @@ module Decidim
8
8
  # Note that it inherits from `Decidim::Components::BaseController`, which
9
9
  # override its layout and provide all kinds of useful methods.
10
10
  class ApplicationController < Decidim::Features::BaseController
11
+ helper Decidim::Meetings::ApplicationHelper
11
12
  end
12
13
  end
13
14
  end
@@ -8,15 +8,24 @@ module Decidim
8
8
 
9
9
  helper_method :meetings, :geocoded_meetings, :meeting
10
10
 
11
- def index; end
12
-
13
- def static_map
14
- @meeting = Meeting.where(feature: current_feature).find(params[:id])
15
- send_data StaticMapGenerator.new(@meeting).data, type: "image/jpeg", disposition: "inline"
11
+ def index
12
+ if search.results.empty? && params.dig("filter", "date") != "past"
13
+ @past_meetings = search_klass.new(search_params.merge(date: "past"))
14
+ unless @past_meetings.results.empty?
15
+ params[:filter] ||= {}
16
+ params[:filter][:date] = "past"
17
+ @forced_past_meetings = true
18
+ @search = @past_meetings
19
+ end
20
+ end
16
21
  end
17
22
 
18
23
  private
19
24
 
25
+ def meeting
26
+ @meeting ||= Meeting.where(feature: current_feature).find(params[:id])
27
+ end
28
+
20
29
  def meetings
21
30
  @meetings ||= search.results.page(params[:page]).per(12)
22
31
  end
@@ -25,10 +34,6 @@ module Decidim
25
34
  @geocoded_meetings ||= search.results.select(&:geocoded?)
26
35
  end
27
36
 
28
- def meeting
29
- @meeting ||= Meeting.where(feature: current_feature).find(params[:id])
30
- end
31
-
32
37
  def search_klass
33
38
  MeetingSearch
34
39
  end
@@ -11,6 +11,8 @@ module Decidim
11
11
  translatable_attribute :location, String
12
12
  translatable_attribute :location_hints, String
13
13
  attribute :address, String
14
+ attribute :latitude, Float
15
+ attribute :longitude, Float
14
16
  attribute :start_time, Decidim::Attributes::TimeWithZone
15
17
  attribute :end_time, Decidim::Attributes::TimeWithZone
16
18
  attribute :decidim_scope_id, Integer
@@ -20,6 +22,7 @@ module Decidim
20
22
  validates :description, translatable_presence: true
21
23
  validates :location, translatable_presence: true
22
24
  validates :address, presence: true
25
+ validates :address, geocoding: true, if: -> { Decidim.geocoder.present? }
23
26
  validates :start_time, presence: true, date: { before: :end_time }
24
27
  validates :end_time, presence: true, date: { after: :start_time }
25
28
 
@@ -27,15 +30,23 @@ module Decidim
27
30
  validates :scope, presence: true, if: ->(form) { form.decidim_scope_id.present? }
28
31
  validates :category, presence: true, if: ->(form) { form.decidim_category_id.present? }
29
32
 
33
+ def process_scope
34
+ current_feature.participatory_process.scope
35
+ end
36
+
30
37
  def scope
31
38
  return unless current_feature
32
- @scope ||= current_feature.scopes.where(id: decidim_scope_id).first
39
+ @scope ||= process_scope || current_feature.scopes.where(id: decidim_scope_id).first
33
40
  end
34
41
 
35
42
  def category
36
43
  return unless current_feature
37
44
  @category ||= current_feature.categories.where(id: decidim_category_id).first
38
45
  end
46
+
47
+ def feature
48
+ current_feature
49
+ end
39
50
  end
40
51
  end
41
52
  end
@@ -5,7 +5,7 @@ module Decidim
5
5
  # Custom helpers, scoped to the meetings admin engine.
6
6
  #
7
7
  module ApplicationHelper
8
- include MapHelper
8
+ include Decidim::MapHelper
9
9
  end
10
10
  end
11
11
  end
@@ -5,7 +5,8 @@ module Decidim
5
5
  #
6
6
  module ApplicationHelper
7
7
  include PaginateHelper
8
- include MapHelper
8
+ include Decidim::MapHelper
9
+ include Decidim::Meetings::MapHelper
9
10
  end
10
11
  end
11
12
  end
@@ -1,45 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
  module Decidim
3
3
  module Meetings
4
- # This helper include some methods for rendering meetings static and dynamic maps.
4
+ # This helper include some methods for rendering meetings dynamic maps.
5
5
  module MapHelper
6
- # Renders a link to openstreetmaps with the meeting latitude and longitude.
7
- # The link's content is a static map image.
8
- #
9
- # meeting - A Decidim::Meetings::Meeting object
10
- # options - An optional hash of options (default: { zoom: 17 })
11
- # * zoom: A number to represent the zoom value of the map
12
- def static_map_link(meeting, options = {})
13
- if meeting.geocoded?
14
- zoom = options[:zoom] || 17
15
- latitude = meeting.latitude
16
- longitude = meeting.longitude
17
-
18
- map_url = "https://www.openstreetmap.org/?mlat=#{latitude}&mlon=#{longitude}#map=#{zoom}/#{latitude}/#{longitude}"
19
-
20
- link_to map_url, target: "_blank" do
21
- image_tag decidim_meetings.static_map_meeting_path(feature_id: meeting.feature,
22
- participatory_process_id: meeting.feature.participatory_process,
23
- id: meeting)
24
- end
25
- end
26
- end
27
-
28
6
  # Serialize a collection of geocoded meetings to be used by the dynamic map component
29
7
  #
30
8
  # geocoded_meetings - A collection of geocoded meetings
31
9
  def meetings_data_for_map(geocoded_meetings)
32
10
  geocoded_meetings.map do |meeting|
33
11
  meeting.slice(:latitude, :longitude, :address).merge(title: translated_attribute(meeting.title),
34
- description: translated_attribute(meeting.description),
35
- startTimeDay: l(meeting.start_time, format: "%d"),
36
- startTimeMonth: l(meeting.start_time, format: "%B"),
37
- startTimeYear: l(meeting.start_time, format: "%Y"),
38
- startTime: "#{meeting.start_time.strftime("%H:%M")} - #{meeting.end_time.strftime("%H:%M")}",
39
- icon: icon("meetings", width: 40, height: 70, remove_icon_class: true),
40
- location: translated_attribute(meeting.location),
41
- locationHints: translated_attribute(meeting.location_hints),
42
- link: meeting_path(meeting))
12
+ description: translated_attribute(meeting.description),
13
+ startTimeDay: l(meeting.start_time, format: "%d"),
14
+ startTimeMonth: l(meeting.start_time, format: "%B"),
15
+ startTimeYear: l(meeting.start_time, format: "%Y"),
16
+ startTime: "#{meeting.start_time.strftime("%H:%M")} - #{meeting.end_time.strftime("%H:%M")}",
17
+ icon: icon("meetings", width: 40, height: 70, remove_icon_class: true),
18
+ location: translated_attribute(meeting.location),
19
+ locationHints: translated_attribute(meeting.location_hints),
20
+ link: meeting_path(meeting))
43
21
  end
44
22
  end
45
23
  end