decidim-core 0.24.3 → 0.25.0.rc4

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

Potentially problematic release.


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

Files changed (768) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/activity_cell.rb +8 -0
  3. data/app/cells/decidim/announcement/show.erb +1 -1
  4. data/app/cells/decidim/author/comments.erb +2 -2
  5. data/app/cells/decidim/author/profile_inline.erb +3 -3
  6. data/app/cells/decidim/author_cell.rb +2 -1
  7. data/app/cells/decidim/coauthorships_cell.rb +2 -2
  8. data/app/cells/decidim/content_blocks/cta_cell.rb +1 -1
  9. data/app/cells/decidim/content_blocks/hero_cell.rb +1 -1
  10. data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +1 -1
  11. data/app/cells/decidim/content_blocks/how_to_participate/show.erb +4 -4
  12. data/app/cells/decidim/content_blocks/stats/show.erb +8 -3
  13. data/app/cells/decidim/content_blocks/sub_hero/show.erb +1 -1
  14. data/app/cells/decidim/content_blocks/sub_hero_cell.rb +10 -0
  15. data/app/cells/decidim/{date → date_range}/show.erb +0 -0
  16. data/app/cells/decidim/{date_cell.rb → date_range_cell.rb} +1 -1
  17. data/app/cells/decidim/endorsement_buttons/select_identity_button.erb +0 -1
  18. data/app/cells/decidim/flag_modal/show.erb +11 -8
  19. data/app/cells/decidim/newsletter_templates/basic_only_text/show.erb +2 -2
  20. data/app/cells/decidim/newsletter_templates/image_text_cta/show.erb +2 -2
  21. data/app/cells/decidim/newsletter_templates/image_text_cta_cell.rb +2 -2
  22. data/app/cells/decidim/notifications/show.erb +0 -2
  23. data/app/cells/decidim/profile/invalid.erb +9 -0
  24. data/app/cells/decidim/profile_cell.rb +4 -5
  25. data/app/cells/decidim/public_participation/show.erb +4 -0
  26. data/app/cells/decidim/public_participation_cell.rb +12 -0
  27. data/app/cells/decidim/represent_user_group/show.erb +0 -1
  28. data/app/cells/decidim/statistic/homepage.erb +9 -0
  29. data/app/cells/decidim/statistic/show.erb +9 -0
  30. data/app/cells/decidim/statistic_cell.rb +22 -0
  31. data/app/cells/decidim/statistics/show.erb +19 -0
  32. data/app/cells/decidim/statistics_cell.rb +36 -0
  33. data/app/cells/decidim/user_activity/show.erb +0 -1
  34. data/app/cells/decidim/user_conversation/conversation_header.erb +2 -2
  35. data/app/cells/decidim/user_conversation/messages.erb +1 -1
  36. data/app/cells/decidim/user_conversation_cell.rb +11 -2
  37. data/app/cells/decidim/user_conversations/add_conversation_users.erb +0 -1
  38. data/app/cells/decidim/user_conversations/conversation_item.erb +1 -1
  39. data/app/cells/decidim/user_conversations/show.erb +0 -1
  40. data/app/cells/decidim/user_conversations_cell.rb +10 -2
  41. data/app/cells/decidim/user_profile/unlinked_user_data.erb +3 -3
  42. data/app/cells/decidim/user_profile/user_data.erb +3 -3
  43. data/app/cells/decidim/user_profile_cell.rb +2 -1
  44. data/app/cells/decidim/version_author/show.erb +4 -4
  45. data/app/cells/decidim/version_author_cell.rb +11 -0
  46. data/app/cells/decidim/versions_list_item/show.erb +1 -1
  47. data/app/commands/decidim/attachment_attributes_methods.rb +18 -0
  48. data/app/commands/decidim/attachment_methods.rb +2 -1
  49. data/app/commands/decidim/create_follow.rb +4 -1
  50. data/app/commands/decidim/create_omniauth_registration.rb +6 -1
  51. data/app/commands/decidim/destroy_account.rb +1 -1
  52. data/app/commands/decidim/gallery_methods.rb +2 -1
  53. data/app/commands/decidim/messaging/start_conversation.rb +2 -2
  54. data/app/commands/decidim/multiple_attachments_methods.rb +2 -1
  55. data/app/commands/decidim/update_account.rb +6 -2
  56. data/app/commands/decidim/update_user_group.rb +1 -2
  57. data/app/controllers/concerns/decidim/amendments_controller.rb +1 -0
  58. data/app/controllers/concerns/decidim/force_authentication.rb +0 -1
  59. data/app/controllers/concerns/decidim/impersonate_users.rb +12 -4
  60. data/app/controllers/concerns/decidim/needs_permission.rb +1 -0
  61. data/app/controllers/decidim/account_controller.rb +2 -2
  62. data/app/controllers/decidim/application_controller.rb +2 -0
  63. data/app/controllers/decidim/data_portability_controller.rb +2 -14
  64. data/app/controllers/decidim/doorkeeper/credentials_controller.rb +1 -1
  65. data/app/controllers/decidim/free_resource_authorization_modals_controller.rb +33 -0
  66. data/app/controllers/decidim/links_controller.rb +42 -0
  67. data/app/controllers/decidim/messaging/conversations_controller.rb +5 -2
  68. data/app/controllers/decidim/open_data_controller.rb +3 -9
  69. data/app/controllers/decidim/profiles_controller.rb +1 -7
  70. data/app/controllers/decidim/timeouts_controller.rb +10 -5
  71. data/app/controllers/decidim/user_activities_controller.rb +1 -0
  72. data/app/forms/decidim/account_form.rb +2 -1
  73. data/app/forms/decidim/messaging/conversation_form.rb +1 -1
  74. data/app/forms/decidim/notifications_settings_form.rb +3 -14
  75. data/app/forms/url_validator.rb +2 -0
  76. data/app/helpers/concerns/decidim/flash_helper_extensions.rb +5 -2
  77. data/app/helpers/decidim/action_authorization_helper.rb +7 -2
  78. data/app/helpers/decidim/amendments_helper.rb +0 -10
  79. data/app/helpers/decidim/attachments_helper.rb +1 -1
  80. data/app/helpers/decidim/check_boxes_tree_helper.rb +28 -10
  81. data/app/helpers/decidim/decidim_form_helper.rb +0 -4
  82. data/app/helpers/decidim/external_domain_helper.rb +13 -0
  83. data/app/helpers/decidim/layout_helper.rb +30 -8
  84. data/app/helpers/decidim/map_helper.rb +4 -3
  85. data/app/helpers/decidim/menu_helper.rb +4 -2
  86. data/app/helpers/decidim/user_group_helper.rb +22 -0
  87. data/app/jobs/decidim/application_job.rb +5 -0
  88. data/app/jobs/decidim/data_portability_export_job.rb +1 -2
  89. data/app/jobs/decidim/export_job.rb +1 -1
  90. data/app/jobs/decidim/export_participatory_space_job.rb +1 -1
  91. data/app/jobs/decidim/machine_translation_fields_job.rb +1 -1
  92. data/app/jobs/decidim/machine_translation_resource_job.rb +10 -6
  93. data/app/jobs/decidim/machine_translation_save_job.rb +1 -1
  94. data/app/jobs/decidim/open_data_job.rb +2 -2
  95. data/app/mailers/decidim/application_mailer.rb +1 -1
  96. data/app/mailers/decidim/reported_mailer.rb +1 -1
  97. data/app/models/decidim/attachment.rb +18 -11
  98. data/app/models/decidim/authorization.rb +3 -5
  99. data/app/models/decidim/content_block.rb +30 -44
  100. data/app/models/decidim/content_block_attachment.rb +35 -0
  101. data/app/models/decidim/impersonation_log.rb +8 -0
  102. data/app/models/decidim/messaging/conversation.rb +2 -0
  103. data/app/models/decidim/messaging/message.rb +2 -0
  104. data/app/models/decidim/messaging/participation.rb +2 -0
  105. data/app/models/decidim/messaging/receipt.rb +2 -0
  106. data/app/models/decidim/oauth_application.rb +2 -2
  107. data/app/models/decidim/organization.rb +16 -20
  108. data/app/models/decidim/user.rb +16 -12
  109. data/app/models/decidim/user_base_entity.rb +2 -2
  110. data/app/models/decidim/user_group.rb +20 -1
  111. data/app/packs/entrypoints/decidim_conference_diploma.js +2 -0
  112. data/app/packs/entrypoints/decidim_conference_diploma.scss +1 -0
  113. data/app/packs/entrypoints/decidim_core.js +69 -0
  114. data/app/packs/entrypoints/decidim_core.scss +1 -0
  115. data/app/packs/entrypoints/decidim_email.js +1 -0
  116. data/app/packs/entrypoints/decidim_email.scss +1 -0
  117. data/app/packs/entrypoints/decidim_geocoding_provider_here.js +1 -0
  118. data/app/packs/entrypoints/decidim_geocoding_provider_photon.js +1 -0
  119. data/app/packs/entrypoints/decidim_map.js +1 -0
  120. data/app/packs/entrypoints/decidim_map.scss +1 -0
  121. data/app/packs/entrypoints/decidim_map_provider_default.js +2 -0
  122. data/app/packs/entrypoints/decidim_map_provider_here.js +2 -0
  123. data/app/packs/entrypoints/decidim_widget.js +1 -0
  124. data/app/{assets → packs}/fonts/decidim/Roboto-Regular.eot +0 -0
  125. data/app/{assets → packs}/fonts/decidim/Roboto-Regular.svg +0 -0
  126. data/app/{assets → packs}/fonts/decidim/Roboto-Regular.ttf +0 -0
  127. data/app/{assets → packs}/fonts/decidim/Roboto-Regular.woff +0 -0
  128. data/app/{assets → packs}/fonts/decidim/Roboto-Regular.woff2 +0 -0
  129. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.eot +0 -0
  130. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.svg +0 -0
  131. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.ttf +0 -0
  132. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.woff +0 -0
  133. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.woff2 +0 -0
  134. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.eot +0 -0
  135. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.svg +0 -0
  136. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.ttf +0 -0
  137. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.woff +0 -0
  138. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.woff2 +0 -0
  139. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.eot +0 -0
  140. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.svg +0 -0
  141. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.ttf +0 -0
  142. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.woff +0 -0
  143. data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.woff2 +0 -0
  144. data/app/{assets → packs}/images/decidim/avatar-multiuser.png +0 -0
  145. data/app/{assets → packs}/images/decidim/brands/google.svg +0 -0
  146. data/app/{assets → packs}/images/decidim/cc-badge.png +0 -0
  147. data/app/{assets → packs}/images/decidim/decidim-logo.svg +0 -0
  148. data/app/{assets → packs}/images/decidim/default-avatar.svg +0 -0
  149. data/app/{assets/images/decidim/gamification/badges/followers.svg → packs/images/decidim/gamification/badges/decidim_gamification_badges_followers.svg} +0 -0
  150. data/app/{assets/images/decidim/gamification/badges/invitations.svg → packs/images/decidim/gamification/badges/decidim_gamification_badges_invitations.svg} +0 -0
  151. data/app/{assets → packs}/images/decidim/icons.svg +0 -0
  152. data/app/{assets → packs}/images/decidim/pattern.png +0 -0
  153. data/app/{assets → packs}/images/decidim/placeholder.jpg +0 -0
  154. data/app/packs/images/decidim/vendor/leaflet/layers-2x.png +0 -0
  155. data/app/packs/images/decidim/vendor/leaflet/layers.png +0 -0
  156. data/app/packs/images/decidim/vendor/leaflet/marker-icon-2x.png +0 -0
  157. data/app/packs/images/decidim/vendor/leaflet/marker-icon.png +0 -0
  158. data/app/packs/images/decidim/vendor/leaflet/marker-shadow.png +0 -0
  159. data/app/packs/images/decidim/vendor/social-share-button/delicious.svg +13 -0
  160. data/app/packs/images/decidim/vendor/social-share-button/douban.svg +8 -0
  161. data/app/packs/images/decidim/vendor/social-share-button/email.svg +8 -0
  162. data/app/packs/images/decidim/vendor/social-share-button/facebook.svg +8 -0
  163. data/app/packs/images/decidim/vendor/social-share-button/google_bookmark.svg +8 -0
  164. data/app/packs/images/decidim/vendor/social-share-button/google_plus.svg +10 -0
  165. data/app/packs/images/decidim/vendor/social-share-button/hacker_news.svg +69 -0
  166. data/app/packs/images/decidim/vendor/social-share-button/linkedin.svg +8 -0
  167. data/app/packs/images/decidim/vendor/social-share-button/odnoklassniki.svg +1 -0
  168. data/app/packs/images/decidim/vendor/social-share-button/pinterest.svg +8 -0
  169. data/app/packs/images/decidim/vendor/social-share-button/qq.svg +8 -0
  170. data/app/packs/images/decidim/vendor/social-share-button/reddit.svg +6 -0
  171. data/app/packs/images/decidim/vendor/social-share-button/telegram.svg +12 -0
  172. data/app/packs/images/decidim/vendor/social-share-button/tumblr.svg +8 -0
  173. data/app/packs/images/decidim/vendor/social-share-button/twitter.svg +8 -0
  174. data/app/packs/images/decidim/vendor/social-share-button/vkontakte.svg +23 -0
  175. data/app/packs/images/decidim/vendor/social-share-button/wechat.svg +8 -0
  176. data/app/packs/images/decidim/vendor/social-share-button/weibo.svg +10 -0
  177. data/app/packs/images/decidim/vendor/social-share-button/whatsapp.svg +10 -0
  178. data/app/packs/images/decidim/vendor/social-share-button/xing.svg +79 -0
  179. data/app/{assets/javascripts/decidim/account_form.js.es6 → packs/src/decidim/account_form.js} +0 -0
  180. data/app/{assets/javascripts/decidim/ajax_modals.js.es6 → packs/src/decidim/ajax_modals.js} +0 -0
  181. data/app/packs/src/decidim/append_elements.js +6 -0
  182. data/app/{assets/javascripts/decidim/append_redirect_url_to_modals.js.es6 → packs/src/decidim/append_redirect_url_to_modals.js} +0 -1
  183. data/app/packs/src/decidim/callout.js +16 -0
  184. data/app/packs/src/decidim/check_boxes_tree.js +185 -0
  185. data/app/packs/src/decidim/clipboard.js +119 -0
  186. data/app/packs/src/decidim/conferences.js +15 -0
  187. data/app/packs/src/decidim/configuration.js +17 -0
  188. data/app/packs/src/decidim/confirm.js +171 -0
  189. data/app/{assets/javascripts/decidim/conversations.js.es6 → packs/src/decidim/conversations.js} +2 -2
  190. data/app/packs/src/decidim/data_picker.js +272 -0
  191. data/app/packs/src/decidim/decidim_application.js +0 -0
  192. data/app/packs/src/decidim/delayed.js +23 -0
  193. data/app/{assets/javascripts/decidim/diff_mode_dropdown.js.es6 → packs/src/decidim/diff_mode_dropdown.js} +0 -0
  194. data/app/packs/src/decidim/dropdowns_menus.js +29 -0
  195. data/app/packs/src/decidim/editor/attribute_diff.js +28 -0
  196. data/app/packs/src/decidim/editor/history_override.js +110 -0
  197. data/app/packs/src/decidim/editor/linebreak_module.js +183 -0
  198. data/app/packs/src/decidim/editor/modified_backspace_offset1.js +96 -0
  199. data/app/packs/src/decidim/editor/modified_backspace_offset_any.js +46 -0
  200. data/app/packs/src/decidim/editor/modified_enter.js +116 -0
  201. data/app/packs/src/decidim/editor.js +72 -0
  202. data/app/packs/src/decidim/external_domain_warning.js +33 -0
  203. data/app/packs/src/decidim/external_link.js +61 -0
  204. data/app/{assets/javascripts/decidim/floating_help.js.es6 → packs/src/decidim/floating_help.js} +0 -0
  205. data/app/packs/src/decidim/form_datepicker.js +21 -0
  206. data/app/{assets/javascripts → packs/src}/decidim/form_filter.component.test.js +8 -9
  207. data/app/packs/src/decidim/form_filter.component_for_testing.js +7 -0
  208. data/app/packs/src/decidim/form_filter.js +319 -0
  209. data/app/packs/src/decidim/form_validator.js +56 -0
  210. data/app/packs/src/decidim/foundation-datepicker/js/locales/foundation-datepicker.lb.js +13 -0
  211. data/app/packs/src/decidim/foundation_datepicker_locales.js +67 -0
  212. data/app/{assets/javascripts/decidim/gallery.js.es6 → packs/src/decidim/gallery.js} +0 -0
  213. data/app/packs/src/decidim/geocoding/attach_input.js +127 -0
  214. data/app/packs/src/decidim/geocoding/coordinate_input.js +21 -0
  215. data/app/packs/src/decidim/geocoding/format_address.js +27 -0
  216. data/app/packs/src/decidim/geocoding/provider/here.js +101 -0
  217. data/app/packs/src/decidim/geocoding/provider/photon.js +71 -0
  218. data/app/packs/src/decidim/geocoding.js +54 -0
  219. data/app/packs/src/decidim/history.js +44 -0
  220. data/app/packs/src/decidim/icon.js +46 -0
  221. data/app/{assets/javascripts/decidim/identity_selector_dialog.js.es6 → packs/src/decidim/identity_selector_dialog.js} +2 -3
  222. data/app/packs/src/decidim/impersonation.js +23 -0
  223. data/app/packs/src/decidim/index.js +69 -0
  224. data/app/packs/src/decidim/input_autojump.js +38 -0
  225. data/app/packs/src/decidim/input_character_counter.js +121 -0
  226. data/app/packs/src/decidim/input_emoji.js +33 -0
  227. data/app/{assets/javascripts/decidim/input_hashtags.js.es6 → packs/src/decidim/input_hashtags.js} +2 -1
  228. data/app/{assets/javascripts/decidim/input_mentions.js.es6 → packs/src/decidim/input_mentions.js} +5 -3
  229. data/app/{assets/javascripts/decidim/input_multiple_mentions.js.es6 → packs/src/decidim/input_multiple_mentions.js} +4 -3
  230. data/app/{assets/javascripts/decidim/input_tags.js.es6 → packs/src/decidim/input_tags.js} +1 -1
  231. data/app/packs/src/decidim/map/controller/drag_marker.js +50 -0
  232. data/app/packs/src/decidim/map/controller/markers.js +75 -0
  233. data/app/packs/src/decidim/map/controller/static.js +44 -0
  234. data/app/packs/src/decidim/map/controller.js +78 -0
  235. data/app/packs/src/decidim/map/controller_registry.js +17 -0
  236. data/app/packs/src/decidim/map/factory.js +44 -0
  237. data/app/packs/src/decidim/map/icon.js +31 -0
  238. data/app/packs/src/decidim/map/integration/forms.js +29 -0
  239. data/app/packs/src/decidim/map/legacy.js +80 -0
  240. data/app/packs/src/decidim/map/provider/default.js +12 -0
  241. data/app/packs/src/decidim/map/provider/here.js +13 -0
  242. data/app/packs/src/decidim/map.js +37 -0
  243. data/app/{assets/javascripts/decidim/notifications.js.es6 → packs/src/decidim/notifications.js} +0 -0
  244. data/app/{assets/javascripts/decidim/represent_user_group.js.es6 → packs/src/decidim/represent_user_group.js} +0 -0
  245. data/app/{assets/javascripts/decidim/responsive_horizontal_tabs.js.es6 → packs/src/decidim/responsive_horizontal_tabs.js} +0 -0
  246. data/app/packs/src/decidim/results_listing.js +41 -0
  247. data/app/packs/src/decidim/security/selfxss_warning.js +16 -0
  248. data/app/packs/src/decidim/session_timeouter.js +133 -0
  249. data/app/{assets/javascripts/decidim/slug_form.js.es6 → packs/src/decidim/slug_form.js} +0 -0
  250. data/app/{assets/javascripts → packs/src}/decidim/start_conversation_dialog.js +1 -1
  251. data/app/{assets/javascripts/decidim/tooltip_keep_on_hover.js.es6 → packs/src/decidim/tooltip_keep_on_hover.js} +0 -0
  252. data/app/{assets/javascripts/decidim/user_registrations.js.es6 → packs/src/decidim/user_registrations.js} +0 -0
  253. data/app/packs/src/decidim/vendor/foundation-datepicker.js +1431 -0
  254. data/app/packs/src/decidim/vendor/jquery-tmpl.js +488 -0
  255. data/{vendor/assets/javascripts → app/packs/src/decidim/vendor}/leaflet-tilelayer-here.js +1 -0
  256. data/{vendor/assets/javascripts → app/packs/src/decidim/vendor}/modernizr.js +3 -1
  257. data/{vendor/assets/javascripts → app/packs/src/decidim/vendor}/tribute.js +2 -0
  258. data/app/{assets/javascripts/decidim/vizzs/areachart.js.es6 → packs/src/decidim/vizzs/areachart.js} +4 -3
  259. data/app/{assets/javascripts/decidim/vizzs/linechart.js.es6 → packs/src/decidim/vizzs/linechart.js} +3 -3
  260. data/app/{assets/javascripts/decidim/vizzs/metrics.js.es6 → packs/src/decidim/vizzs/metrics.js} +3 -3
  261. data/app/packs/src/decidim/vizzs/renders.js +9 -0
  262. data/app/{assets/javascripts/decidim/vizzs/rowchart.js.es6 → packs/src/decidim/vizzs/rowchart.js} +3 -3
  263. data/app/packs/src/decidim/vizzs.js +1 -0
  264. data/app/{assets/javascripts/decidim/widget.js.es6 → packs/src/decidim/widget.js} +0 -0
  265. data/app/{assets → packs}/stylesheets/decidim/_decidim-settings.scss +2 -0
  266. data/app/packs/stylesheets/decidim/_decidim.scss +19 -0
  267. data/app/{assets/stylesheets/decidim/editor.scss → packs/stylesheets/decidim/_editor.scss} +3 -3
  268. data/app/{assets → packs}/stylesheets/decidim/_properties.scss +0 -0
  269. data/app/{assets → packs}/stylesheets/decidim/_variables.scss +2 -2
  270. data/app/packs/stylesheets/decidim/application.scss +9 -0
  271. data/app/{assets/stylesheets/decidim/conference-diploma.css.scss → packs/stylesheets/decidim/conference-diploma.scss} +8 -8
  272. data/app/packs/stylesheets/decidim/decidim_application.scss +7 -0
  273. data/app/{assets → packs}/stylesheets/decidim/email.scss +1 -1
  274. data/app/{assets → packs}/stylesheets/decidim/extras/_add_comments.scss +0 -0
  275. data/app/{assets → packs}/stylesheets/decidim/extras/_announcement.scss +0 -0
  276. data/app/{assets → packs}/stylesheets/decidim/extras/_collection-sort-controls.scss +0 -0
  277. data/app/{assets → packs}/stylesheets/decidim/extras/_embed.scss +0 -0
  278. data/app/{assets → packs}/stylesheets/decidim/extras/_external-links.scss +16 -0
  279. data/app/packs/stylesheets/decidim/extras/_extras.scss +16 -0
  280. data/app/{assets → packs}/stylesheets/decidim/extras/_impersonation-bar.scss +0 -0
  281. data/app/{assets → packs}/stylesheets/decidim/extras/_label-required.scss +0 -0
  282. data/app/{assets → packs}/stylesheets/decidim/extras/_leaflet.scss +0 -0
  283. data/app/{assets → packs}/stylesheets/decidim/extras/_meeting-registrations.scss +5 -0
  284. data/app/{assets → packs}/stylesheets/decidim/extras/_proposal_form.scss +0 -0
  285. data/app/{assets → packs}/stylesheets/decidim/extras/_quill.scss +0 -0
  286. data/app/{assets → packs}/stylesheets/decidim/extras/_reference.scss +0 -0
  287. data/app/{assets → packs}/stylesheets/decidim/extras/_results-per-page.scss +0 -0
  288. data/app/{assets → packs}/stylesheets/decidim/extras/_social_icons_mini.scss +0 -0
  289. data/app/{assets/stylesheets/decidim/extras/_social_share.css.scss → packs/stylesheets/decidim/extras/_social_share.scss} +6 -3
  290. data/app/{assets → packs}/stylesheets/decidim/extras/_status-labels.scss +0 -0
  291. data/app/{assets → packs}/stylesheets/decidim/layouts/_highlighted_banner.scss +0 -0
  292. data/app/{assets → packs}/stylesheets/decidim/layouts/_home.scss +35 -46
  293. data/app/packs/stylesheets/decidim/layouts/_layouts.scss +5 -0
  294. data/app/{assets → packs}/stylesheets/decidim/layouts/_logo.scss +0 -0
  295. data/app/{assets → packs}/stylesheets/decidim/layouts/_user.scss +0 -0
  296. data/app/{assets → packs}/stylesheets/decidim/layouts/_view.scss +0 -0
  297. data/app/packs/stylesheets/decidim/map.scss +3 -0
  298. data/app/{assets → packs}/stylesheets/decidim/modules/_address.scss +0 -0
  299. data/app/{assets → packs}/stylesheets/decidim/modules/_author-avatar.scss +1 -1
  300. data/app/{assets → packs}/stylesheets/decidim/modules/_badges.scss +0 -0
  301. data/app/{assets → packs}/stylesheets/decidim/modules/_block-banner.scss +0 -0
  302. data/app/{assets → packs}/stylesheets/decidim/modules/_buttons.scss +1 -1
  303. data/app/{assets → packs}/stylesheets/decidim/modules/_callout.scss +0 -0
  304. data/app/{assets → packs}/stylesheets/decidim/modules/_card-grid.scss +0 -0
  305. data/app/{assets → packs}/stylesheets/decidim/modules/_cards.scss +8 -8
  306. data/app/{assets → packs}/stylesheets/decidim/modules/_collapsible-list.scss +0 -0
  307. data/app/{assets → packs}/stylesheets/decidim/modules/_comments.scss +46 -12
  308. data/app/{assets → packs}/stylesheets/decidim/modules/_conference-diploma.scss +9 -9
  309. data/app/{assets → packs}/stylesheets/decidim/modules/_conference-media.scss +3 -1
  310. data/app/{assets → packs}/stylesheets/decidim/modules/_conference-nav.scss +0 -0
  311. data/app/{assets → packs}/stylesheets/decidim/modules/_conference-programme.scss +0 -0
  312. data/app/{assets → packs}/stylesheets/decidim/modules/_conference-registration.scss +0 -0
  313. data/app/{assets → packs}/stylesheets/decidim/modules/_conference-speaker.scss +0 -0
  314. data/app/{assets → packs}/stylesheets/decidim/modules/_confirm.scss +0 -0
  315. data/app/{assets → packs}/stylesheets/decidim/modules/_conversation.scss +6 -1
  316. data/app/{assets → packs}/stylesheets/decidim/modules/_cookie-bar.scss +0 -0
  317. data/app/{assets → packs}/stylesheets/decidim/modules/_data-picker.scss +0 -0
  318. data/app/{assets → packs}/stylesheets/decidim/modules/_datepicker.scss +0 -0
  319. data/app/{assets → packs}/stylesheets/decidim/modules/_definition-data.scss +0 -0
  320. data/app/{assets → packs}/stylesheets/decidim/modules/_docs-manager.scss +0 -0
  321. data/app/{assets → packs}/stylesheets/decidim/modules/_extra.scss +0 -0
  322. data/app/{assets → packs}/stylesheets/decidim/modules/_filter-tags.scss +0 -0
  323. data/app/{assets → packs}/stylesheets/decidim/modules/_filters.scss +1 -1
  324. data/app/{assets → packs}/stylesheets/decidim/modules/_fingerprint.scss +0 -0
  325. data/app/{assets → packs}/stylesheets/decidim/modules/_flag.scss +0 -0
  326. data/app/{assets → packs}/stylesheets/decidim/modules/_floating-helper.scss +2 -2
  327. data/app/{assets → packs}/stylesheets/decidim/modules/_footer.scss +0 -0
  328. data/app/{assets → packs}/stylesheets/decidim/modules/_forms.scss +18 -1
  329. data/app/{assets → packs}/stylesheets/decidim/modules/_help.scss +0 -0
  330. data/app/{assets → packs}/stylesheets/decidim/modules/_horizontal-tabs.scss +1 -1
  331. data/app/{assets → packs}/stylesheets/decidim/modules/_hover-section.scss +0 -0
  332. data/app/{assets → packs}/stylesheets/decidim/modules/_icons.scss +0 -0
  333. data/app/{assets → packs}/stylesheets/decidim/modules/_inline-filters.scss +1 -1
  334. data/app/{assets → packs}/stylesheets/decidim/modules/_input-gallery.scss +0 -0
  335. data/app/{assets → packs}/stylesheets/decidim/modules/_input-mentions.scss +1 -1
  336. data/app/{assets → packs}/stylesheets/decidim/modules/_input-multiple-mentions.scss +1 -1
  337. data/app/{assets → packs}/stylesheets/decidim/modules/_input-tags.scss +2 -2
  338. data/app/{assets → packs}/stylesheets/decidim/modules/_layout.scss +0 -0
  339. data/app/{assets → packs}/stylesheets/decidim/modules/_list-docs.scss +0 -0
  340. data/app/{assets → packs}/stylesheets/decidim/modules/_list-request.scss +1 -1
  341. data/app/{assets → packs}/stylesheets/decidim/modules/_loading-spinner.scss +0 -0
  342. data/app/{assets → packs}/stylesheets/decidim/modules/_main-container.scss +0 -0
  343. data/app/{assets → packs}/stylesheets/decidim/modules/_map.scss +1 -1
  344. data/app/{assets → packs}/stylesheets/decidim/modules/_margins.scss +0 -0
  345. data/app/{assets → packs}/stylesheets/decidim/modules/_messages.scss +0 -0
  346. data/app/packs/stylesheets/decidim/modules/_modules.scss +92 -0
  347. data/app/{assets → packs}/stylesheets/decidim/modules/_navbar.scss +3 -3
  348. data/app/{assets → packs}/stylesheets/decidim/modules/_notification.scss +0 -0
  349. data/app/{assets → packs}/stylesheets/decidim/modules/_omnipresent_banner.scss +0 -0
  350. data/app/{assets → packs}/stylesheets/decidim/modules/_opinion-toggle.scss +0 -0
  351. data/app/{assets → packs}/stylesheets/decidim/modules/_order-by.scss +0 -4
  352. data/app/{assets → packs}/stylesheets/decidim/modules/_pagination.scss +0 -0
  353. data/app/{assets → packs}/stylesheets/decidim/modules/_process-header.scss +0 -0
  354. data/app/{assets → packs}/stylesheets/decidim/modules/_process-info.scss +0 -0
  355. data/app/{assets → packs}/stylesheets/decidim/modules/_process-nav.scss +3 -3
  356. data/app/{assets → packs}/stylesheets/decidim/modules/_process-phase.scss +1 -1
  357. data/app/{assets → packs}/stylesheets/decidim/modules/_progress-bar.scss +0 -0
  358. data/app/{assets → packs}/stylesheets/decidim/modules/_reference.scss +0 -0
  359. data/app/{assets → packs}/stylesheets/decidim/modules/_reveal.scss +15 -0
  360. data/app/{assets → packs}/stylesheets/decidim/modules/_share.scss +0 -0
  361. data/app/{assets → packs}/stylesheets/decidim/modules/_signup.scss +0 -0
  362. data/app/{assets → packs}/stylesheets/decidim/modules/_space-stats.scss +0 -0
  363. data/app/{assets → packs}/stylesheets/decidim/modules/_static-pages.scss +0 -0
  364. data/app/packs/stylesheets/decidim/modules/_statistics.scss +53 -0
  365. data/app/{assets → packs}/stylesheets/decidim/modules/_status-labels.scss +0 -0
  366. data/app/{assets → packs}/stylesheets/decidim/modules/_sticky.scss +0 -0
  367. data/app/{assets → packs}/stylesheets/decidim/modules/_tags.scss +0 -0
  368. data/app/{assets → packs}/stylesheets/decidim/modules/_timeline.scss +2 -2
  369. data/app/{assets → packs}/stylesheets/decidim/modules/_title-action.scss +0 -0
  370. data/app/packs/stylesheets/decidim/modules/_toggle.scss +9 -0
  371. data/app/{assets → packs}/stylesheets/decidim/modules/_typography.scss +5 -4
  372. data/app/{assets → packs}/stylesheets/decidim/modules/_user-form.scss +0 -0
  373. data/app/{assets → packs}/stylesheets/decidim/modules/_versions.scss +0 -0
  374. data/app/{assets → packs}/stylesheets/decidim/modules/_video.scss +0 -0
  375. data/app/{assets → packs}/stylesheets/decidim/modules/_wizard-steps.scss +0 -0
  376. data/app/packs/stylesheets/decidim/plugins/MarkerCluster.Default.scss +67 -0
  377. data/app/packs/stylesheets/decidim/plugins/MarkerCluster.scss +15 -0
  378. data/app/packs/stylesheets/decidim/plugins/leaflet.scss +700 -0
  379. data/app/packs/stylesheets/decidim/utils/_fontface.scss +29 -0
  380. data/app/{assets → packs}/stylesheets/decidim/utils/_helpers.scss +13 -0
  381. data/app/{assets → packs}/stylesheets/decidim/utils/_keyframes.scss +0 -0
  382. data/app/{assets → packs}/stylesheets/decidim/utils/_mixins.scss +5 -5
  383. data/app/{assets → packs}/stylesheets/decidim/utils/_settings.scss +10 -4
  384. data/app/{assets → packs}/stylesheets/decidim/utils/_toggle-expand.scss +0 -0
  385. data/app/packs/stylesheets/decidim/vendor/_social_share_button.scss +129 -0
  386. data/app/{assets → packs}/stylesheets/decidim/vizzs/_areachart.scss +0 -0
  387. data/app/{assets → packs}/stylesheets/decidim/vizzs/_chart-tooltip.scss +0 -0
  388. data/app/{assets → packs}/stylesheets/decidim/vizzs/_linechart.scss +1 -1
  389. data/app/{assets → packs}/stylesheets/decidim/vizzs/_orgchart.scss +0 -0
  390. data/app/{assets → packs}/stylesheets/decidim/vizzs/_rowchart.scss +1 -1
  391. data/app/packs/stylesheets/decidim/vizzs/_vizzs.scss +5 -0
  392. data/app/packs/stylesheets/decidim/vizzs.scss +8 -0
  393. data/app/{assets → packs}/stylesheets/foundation-overrides/components/_button-group.scss +3 -1
  394. data/app/presenters/decidim/attachment_presenter.rb +1 -6
  395. data/app/presenters/decidim/home_stats_presenter.rb +6 -35
  396. data/app/presenters/decidim/menu_item_presenter.rb +12 -12
  397. data/app/presenters/decidim/menu_presenter.rb +2 -3
  398. data/app/presenters/decidim/nil_presenter.rb +1 -1
  399. data/app/presenters/decidim/official_author_presenter.rb +1 -1
  400. data/app/presenters/decidim/resource_presenter.rb +32 -0
  401. data/app/presenters/decidim/stats_presenter.rb +32 -0
  402. data/app/presenters/decidim/user_group_presenter.rb +0 -2
  403. data/app/presenters/decidim/user_presenter.rb +14 -2
  404. data/app/queries/decidim/metric_manage.rb +3 -3
  405. data/app/queries/decidim/similar_emendations.rb +1 -1
  406. data/app/queries/decidim/stats_users_count.rb +1 -2
  407. data/app/serializers/decidim/exporters/participatory_space_components_serializer.rb +2 -1
  408. data/app/serializers/decidim/exporters/serializer.rb +29 -0
  409. data/app/services/decidim/action_authorizer.rb +3 -2
  410. data/app/services/decidim/activity_search.rb +46 -1
  411. data/app/services/decidim/data_portability_exporter.rb +1 -1
  412. data/app/services/decidim/log/diff_changeset_calculator.rb +7 -2
  413. data/app/services/decidim/zip_stream/writer.rb +39 -0
  414. data/app/uploaders/decidim/application_uploader.rb +68 -27
  415. data/app/uploaders/decidim/attachment_uploader.rb +11 -57
  416. data/app/uploaders/decidim/avatar_uploader.rb +8 -14
  417. data/app/uploaders/decidim/cw/application_uploader.rb +77 -0
  418. data/app/uploaders/decidim/cw/attachment_uploader.rb +56 -0
  419. data/app/uploaders/decidim/cw/avatar_uploader.rb +24 -0
  420. data/app/uploaders/decidim/cw/banner_image_uploader.rb +7 -0
  421. data/app/uploaders/decidim/{data_portability_uploader.rb → cw/data_portability_uploader.rb} +1 -1
  422. data/app/uploaders/decidim/cw/downloader.rb +9 -0
  423. data/app/uploaders/decidim/cw/hero_image_uploader.rb +10 -0
  424. data/app/uploaders/decidim/cw/homepage_image_uploader.rb +14 -0
  425. data/app/uploaders/decidim/cw/image_uploader.rb +78 -0
  426. data/app/uploaders/decidim/cw/newsletter_template_image_uploader.rb +38 -0
  427. data/app/uploaders/decidim/cw/oauth_application_logo_uploader.rb +10 -0
  428. data/app/uploaders/decidim/cw/official_image_footer_uploader.rb +10 -0
  429. data/app/uploaders/decidim/cw/official_image_header_uploader.rb +10 -0
  430. data/app/uploaders/decidim/{open_data_uploader.rb → cw/open_data_uploader.rb} +1 -1
  431. data/app/uploaders/decidim/cw/organization_favicon_uploader.rb +18 -0
  432. data/app/uploaders/decidim/cw/organization_logo_uploader.rb +10 -0
  433. data/app/uploaders/decidim/cw/record_image_uploader.rb +15 -0
  434. data/app/uploaders/decidim/hero_image_uploader.rb +3 -1
  435. data/app/uploaders/decidim/homepage_image_uploader.rb +2 -2
  436. data/app/uploaders/decidim/image_uploader.rb +11 -47
  437. data/app/uploaders/decidim/newsletter_template_image_uploader.rb +3 -1
  438. data/app/uploaders/decidim/oauth_application_logo_uploader.rb +3 -1
  439. data/app/uploaders/decidim/official_image_footer_uploader.rb +3 -1
  440. data/app/uploaders/decidim/official_image_header_uploader.rb +3 -1
  441. data/app/uploaders/decidim/organization_favicon_uploader.rb +3 -3
  442. data/app/uploaders/decidim/organization_logo_uploader.rb +2 -2
  443. data/app/validators/organization_present_validator.rb +15 -0
  444. data/app/validators/uploader_content_type_validator.rb +2 -4
  445. data/app/validators/uploader_image_dimensions_validator.rb +49 -0
  446. data/app/views/decidim/account/show.html.erb +9 -1
  447. data/app/views/decidim/amendments/edit_draft.html.erb +1 -1
  448. data/app/views/decidim/amendments/new.html.erb +1 -1
  449. data/app/views/decidim/application/_attachments.html.erb +2 -2
  450. data/app/views/decidim/application/_collection.html.erb +8 -2
  451. data/app/views/decidim/application/_document.html.erb +2 -2
  452. data/app/views/decidim/application/_documents.html.erb +5 -3
  453. data/app/views/decidim/application/_photos.html.erb +1 -1
  454. data/app/views/decidim/block_user_mailer/notify.html.erb +4 -4
  455. data/app/views/decidim/doorkeeper/authorizations/new.html.erb +1 -1
  456. data/app/views/decidim/export_mailer/data_portability_export.html.erb +7 -2
  457. data/app/views/decidim/export_mailer/export.html.erb +3 -1
  458. data/app/views/decidim/homepage/show.html.erb +1 -0
  459. data/app/views/decidim/last_activities/index.html.erb +0 -2
  460. data/app/views/decidim/links/_modal.html.erb +22 -0
  461. data/app/views/decidim/links/_warning.html.erb +4 -0
  462. data/app/views/decidim/links/new.html.erb +22 -0
  463. data/app/views/decidim/links/new.js.erb +8 -0
  464. data/app/views/decidim/messaging/conversation_mailer/comanagers_new_conversation.html.erb +5 -5
  465. data/app/views/decidim/messaging/conversation_mailer/comanagers_new_message.html.erb +5 -5
  466. data/app/views/decidim/messaging/conversation_mailer/new_conversation.html.erb +4 -4
  467. data/app/views/decidim/messaging/conversation_mailer/new_group_conversation.html.erb +5 -5
  468. data/app/views/decidim/messaging/conversation_mailer/new_group_message.html.erb +5 -5
  469. data/app/views/decidim/messaging/conversation_mailer/new_message.html.erb +4 -4
  470. data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +0 -1
  471. data/app/views/decidim/messaging/conversations/_conversation.html.erb +2 -2
  472. data/app/views/decidim/messaging/conversations/_messages.html.erb +1 -1
  473. data/app/views/decidim/messaging/conversations/_new_conversation_button.html.erb +0 -1
  474. data/app/views/decidim/messaging/conversations/_reply.html.erb +3 -2
  475. data/app/views/decidim/messaging/conversations/_show.html.erb +9 -7
  476. data/app/views/decidim/messaging/conversations/_start.html.erb +3 -2
  477. data/app/views/decidim/newsletters_opt_in_mailer/notify.html.erb +6 -6
  478. data/app/views/decidim/notification_mailer/event_received.html.erb +24 -7
  479. data/app/views/decidim/pages/_standalone.html.erb +8 -10
  480. data/app/views/decidim/reported_mailer/hide.html.erb +3 -3
  481. data/app/views/decidim/reported_mailer/report.html.erb +3 -3
  482. data/app/views/decidim/searches/index.html.erb +0 -2
  483. data/app/views/decidim/shared/_extended_navigation_bar.html.erb +3 -3
  484. data/app/views/decidim/shared/_orders.html.erb +6 -6
  485. data/app/views/decidim/shared/_results_per_page.html.erb +6 -6
  486. data/app/views/decidim/shared/_share_modal.html.erb +13 -4
  487. data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +7 -4
  488. data/app/views/decidim/shared/participatory_space_filters/_show.html.erb +8 -6
  489. data/app/views/decidim/user_report_mailer/notify.html.erb +4 -4
  490. data/app/views/devise/mailer/confirmation_instructions.html.erb +4 -3
  491. data/app/views/devise/mailer/invitation_instructions.html.erb +5 -5
  492. data/app/views/devise/mailer/invite_admin.html.erb +5 -5
  493. data/app/views/devise/mailer/invite_collaborator.html.erb +5 -5
  494. data/app/views/devise/mailer/invite_private_user.html.erb +5 -5
  495. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +6 -5
  496. data/app/views/devise/mailer/password_change.html.erb +2 -2
  497. data/app/views/devise/mailer/reset_password_instructions.html.erb +6 -5
  498. data/app/views/devise/mailer/unlock_instructions.html.erb +4 -4
  499. data/app/views/layouts/decidim/_application.html.erb +3 -2
  500. data/app/views/layouts/decidim/_cookie_warning.html.erb +1 -1
  501. data/app/views/layouts/decidim/_cors.html.erb +8 -0
  502. data/app/views/layouts/decidim/_head.html.erb +2 -4
  503. data/app/views/layouts/decidim/_impersonation_warning.html.erb +0 -1
  504. data/app/views/layouts/decidim/_js_configuration.html.erb +3 -2
  505. data/app/views/layouts/decidim/_language_chooser.html.erb +5 -5
  506. data/app/views/layouts/decidim/_logo.html.erb +2 -2
  507. data/app/views/layouts/decidim/_mailer_logo.html.erb +6 -2
  508. data/app/views/layouts/decidim/_main_footer.html.erb +2 -2
  509. data/app/views/layouts/decidim/_mini_footer.html.erb +2 -2
  510. data/app/views/layouts/decidim/_timeout_modal.html.erb +4 -3
  511. data/app/views/layouts/decidim/_user_menu.html.erb +6 -6
  512. data/app/views/layouts/decidim/_wrapper.html.erb +65 -60
  513. data/app/views/layouts/decidim/mailer.html.erb +3 -3
  514. data/app/views/layouts/decidim/newsletter_base.html.erb +1 -1
  515. data/app/views/layouts/decidim/widget.html.erb +4 -3
  516. data/config/assets.rb +16 -0
  517. data/config/initializers/devise.rb +1 -1
  518. data/config/locales/ar.yml +2 -18
  519. data/config/locales/bg.yml +2 -18
  520. data/config/locales/ca.yml +38 -18
  521. data/config/locales/cs.yml +40 -18
  522. data/config/locales/de.yml +25 -18
  523. data/config/locales/el.yml +2 -18
  524. data/config/locales/en.yml +41 -19
  525. data/config/locales/eo.yml +0 -2
  526. data/config/locales/es-MX.yml +25 -18
  527. data/config/locales/es-PY.yml +25 -18
  528. data/config/locales/es.yml +25 -18
  529. data/config/locales/eu.yml +2 -17
  530. data/config/locales/fi-plain.yml +40 -18
  531. data/config/locales/fi.yml +41 -19
  532. data/config/locales/fr-CA.yml +20 -18
  533. data/config/locales/fr-LU.yml +1676 -0
  534. data/config/locales/fr.yml +20 -18
  535. data/config/locales/gl.yml +36 -17
  536. data/config/locales/hu.yml +2 -18
  537. data/config/locales/id-ID.yml +2 -17
  538. data/config/locales/is-IS.yml +0 -7
  539. data/config/locales/it.yml +59 -19
  540. data/config/locales/ja.yml +132 -27
  541. data/config/locales/lb-LU.yml +1 -0
  542. data/config/locales/lv.yml +2 -17
  543. data/config/locales/nl.yml +32 -18
  544. data/config/locales/no.yml +2 -18
  545. data/config/locales/pl.yml +42 -33
  546. data/config/locales/pt-BR.yml +480 -20
  547. data/config/locales/pt.yml +2 -18
  548. data/config/locales/ro-RO.yml +40 -18
  549. data/config/locales/ru.yml +2 -15
  550. data/config/locales/sk.yml +2 -18
  551. data/config/locales/sl.yml +0 -3
  552. data/config/locales/sv.yml +25 -18
  553. data/config/locales/tr-TR.yml +2 -18
  554. data/config/locales/uk.yml +2 -14
  555. data/config/locales/zh-CN.yml +2 -18
  556. data/config/routes.rb +7 -0
  557. data/db/migrate/20170605162500_add_hierarchy_to_scopes.rb +1 -1
  558. data/db/migrate/20180810092428_move_organization_fields_to_hero_content_block.rb +5 -4
  559. data/db/migrate/20210210114657_add_external_domain_whitelist_to_organization.rb +15 -0
  560. data/db/migrate/20210309190009_create_active_storage_tables.active_storage.rb +29 -0
  561. data/db/migrate/20210407190753_allow_null_organization_logo_column_in_oauth_applications_table.rb +7 -0
  562. data/db/migrate/20210412120115_add_enable_participatory_space_filters_to_organization.rb +7 -0
  563. data/db/migrate/20210419165805_create_decidim_content_block_attachments.rb +10 -0
  564. data/db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb +45 -0
  565. data/db/seeds.rb +10 -3
  566. data/lib/decidim/action_authorization.rb +1 -1
  567. data/lib/decidim/api/functions/category_list.rb +31 -0
  568. data/lib/decidim/api/input_filters/category_input_filter.rb +18 -0
  569. data/lib/decidim/api/interfaces/categories_container_interface.rb +19 -0
  570. data/lib/decidim/carrier_wave_migrator_service.rb +295 -0
  571. data/lib/decidim/core/api.rb +3 -0
  572. data/lib/decidim/core/engine.rb +65 -56
  573. data/lib/decidim/core/test/factories.rb +2 -0
  574. data/lib/decidim/core/test/shared_examples/admin_log_presenter_examples.rb +3 -1
  575. data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +2 -2
  576. data/lib/decidim/core/test/shared_examples/assembly_announcements_examples.rb +34 -0
  577. data/lib/decidim/core/test/shared_examples/categories_container_examples.rb +22 -0
  578. data/lib/decidim/core/test/shared_examples/comments_examples.rb +240 -7
  579. data/lib/decidim/core/test/shared_examples/comments_reports_examples.rb +68 -0
  580. data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +3 -3
  581. data/lib/decidim/core/test/shared_examples/has_attachments.rb +2 -2
  582. data/lib/decidim/core/test/shared_examples/logo_email.rb +3 -2
  583. data/lib/decidim/core/test/shared_examples/manage_component_share_tokens.rb +1 -1
  584. data/lib/decidim/core/test/shared_examples/map_examples.rb +28 -11
  585. data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +1 -0
  586. data/lib/decidim/core/test/shared_examples/share_link_examples.rb +50 -0
  587. data/lib/decidim/core/test.rb +4 -0
  588. data/lib/decidim/core/version.rb +1 -1
  589. data/lib/decidim/core.rb +28 -9
  590. data/lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb +1 -0
  591. data/lib/decidim/diffy_extension.rb +1 -1
  592. data/lib/decidim/events/email_event.rb +12 -0
  593. data/lib/decidim/exporters/csv.rb +1 -1
  594. data/lib/decidim/exporters/excel.rb +24 -20
  595. data/lib/decidim/exporters/json.rb +1 -1
  596. data/lib/decidim/file_validator_humanizer.rb +3 -2
  597. data/lib/decidim/filter_form_builder.rb +2 -2
  598. data/lib/decidim/fingerprintable.rb +2 -2
  599. data/lib/decidim/form_builder.rb +26 -20
  600. data/lib/decidim/gamification/badge.rb +1 -1
  601. data/lib/decidim/has_upload_validations.rb +37 -4
  602. data/lib/decidim/map/dynamic_map.rb +2 -2
  603. data/lib/decidim/map/provider/autocomplete/here.rb +1 -1
  604. data/lib/decidim/map/provider/autocomplete/osm.rb +1 -1
  605. data/lib/decidim/map/provider/dynamic_map/here.rb +1 -1
  606. data/lib/decidim/menu.rb +64 -1
  607. data/lib/decidim/menu_item.rb +5 -2
  608. data/lib/decidim/middleware/current_organization.rb +57 -0
  609. data/lib/decidim/middleware/strip_x_forwarded_host.rb +16 -0
  610. data/lib/decidim/participable.rb +41 -33
  611. data/lib/decidim/rails.rb +21 -0
  612. data/lib/decidim/resource_manifest.rb +13 -0
  613. data/lib/decidim/resourceable.rb +8 -0
  614. data/lib/decidim/searchable.rb +1 -1
  615. data/lib/decidim/traceable.rb +2 -3
  616. data/lib/decidim/translatable_resource.rb +1 -1
  617. data/lib/decidim/view_model.rb +1 -0
  618. data/lib/decidim/webpacker/configuration.rb +89 -0
  619. data/lib/decidim/webpacker/postcss.config.js +16 -0
  620. data/lib/decidim/webpacker/runner.rb +24 -0
  621. data/lib/decidim/webpacker/webpack/base.js +6 -0
  622. data/lib/decidim/webpacker/webpack/custom.js +97 -0
  623. data/lib/decidim/webpacker/webpack/development.js +7 -0
  624. data/lib/decidim/webpacker/webpack/production.js +7 -0
  625. data/lib/decidim/webpacker/webpack/test.js +7 -0
  626. data/lib/decidim/webpacker/webpacker.yml +65 -0
  627. data/lib/decidim/webpacker.rb +32 -0
  628. data/lib/gem_overrides/rails/tasks/yarn.rake +9 -0
  629. data/lib/gem_overrides/webpacker/runner.rb +9 -0
  630. data/lib/tasks/decidim_active_storage_migration_tasks.rake +43 -0
  631. data/lib/tasks/decidim_data_portability_tasks.rake +13 -67
  632. data/lib/tasks/decidim_tasks.rake +1 -1
  633. data/lib/tasks/decidim_webpacker_tasks.rake +194 -0
  634. metadata +413 -430
  635. data/app/assets/config/decidim_core_manifest.js +0 -25
  636. data/app/assets/javascripts/decidim/append_elements.js.es6 +0 -8
  637. data/app/assets/javascripts/decidim/assets.js.erb +0 -5
  638. data/app/assets/javascripts/decidim/callout.js.es6 +0 -18
  639. data/app/assets/javascripts/decidim/check_boxes_tree.js.es6 +0 -190
  640. data/app/assets/javascripts/decidim/conferences.js.es6 +0 -16
  641. data/app/assets/javascripts/decidim/configuration.js.es6 +0 -23
  642. data/app/assets/javascripts/decidim/confirm.js.es6 +0 -179
  643. data/app/assets/javascripts/decidim/core/bundle.js +0 -2
  644. data/app/assets/javascripts/decidim/core/bundle.js.map +0 -1
  645. data/app/assets/javascripts/decidim/core/extrapoly.js +0 -6
  646. data/app/assets/javascripts/decidim/data_picker.js.es6 +0 -273
  647. data/app/assets/javascripts/decidim/delayed.js.es6 +0 -26
  648. data/app/assets/javascripts/decidim/dropdowns_menus.js.es6 +0 -32
  649. data/app/assets/javascripts/decidim/editor/history_override.js.es6 +0 -117
  650. data/app/assets/javascripts/decidim/editor/linebreak_module.js.es6 +0 -187
  651. data/app/assets/javascripts/decidim/editor/modified_backspace_offset1.js.es6 +0 -98
  652. data/app/assets/javascripts/decidim/editor/modified_backspace_offset_any.js.es6 +0 -48
  653. data/app/assets/javascripts/decidim/editor/modified_backspace_utils.js.es6 +0 -31
  654. data/app/assets/javascripts/decidim/editor/modified_enter.js.es6 +0 -123
  655. data/app/assets/javascripts/decidim/editor.js.es6 +0 -83
  656. data/app/assets/javascripts/decidim/external_link.js.es6 +0 -69
  657. data/app/assets/javascripts/decidim/filters.js.es6 +0 -16
  658. data/app/assets/javascripts/decidim/form_filter.component.js.es6 +0 -315
  659. data/app/assets/javascripts/decidim/form_validator.es6 +0 -61
  660. data/app/assets/javascripts/decidim/foundation.js.es6 +0 -28
  661. data/app/assets/javascripts/decidim/geocoding/attach_input.js.es6 +0 -143
  662. data/app/assets/javascripts/decidim/geocoding/format_address.js.es6 +0 -29
  663. data/app/assets/javascripts/decidim/geocoding/provider/here.js.es6 +0 -107
  664. data/app/assets/javascripts/decidim/geocoding/provider/photon.js.es6 +0 -77
  665. data/app/assets/javascripts/decidim/geocoding.js.es6 +0 -60
  666. data/app/assets/javascripts/decidim/history.js.es6 +0 -53
  667. data/app/assets/javascripts/decidim/icon.js.es6 +0 -42
  668. data/app/assets/javascripts/decidim/impersonation.js.es6 +0 -16
  669. data/app/assets/javascripts/decidim/input_character_counter.js.es6 +0 -120
  670. data/app/assets/javascripts/decidim/map/controller/markers.js.es6 +0 -95
  671. data/app/assets/javascripts/decidim/map/controller/static.es6 +0 -48
  672. data/app/assets/javascripts/decidim/map/controller.js.es6 +0 -92
  673. data/app/assets/javascripts/decidim/map/factory.js.es6 +0 -51
  674. data/app/assets/javascripts/decidim/map/icon.js.es6 +0 -31
  675. data/app/assets/javascripts/decidim/map/legacy.js.es6 +0 -87
  676. data/app/assets/javascripts/decidim/map/provider/default.js.es6 +0 -22
  677. data/app/assets/javascripts/decidim/map/provider/here.js.es6 +0 -22
  678. data/app/assets/javascripts/decidim/map.js.es6 +0 -46
  679. data/app/assets/javascripts/decidim/orders.js.es6 +0 -9
  680. data/app/assets/javascripts/decidim/results_listing.js.es6 +0 -44
  681. data/app/assets/javascripts/decidim/security/selfxss_warning.js.es6 +0 -19
  682. data/app/assets/javascripts/decidim/session_timeouter.js.es6 +0 -78
  683. data/app/assets/javascripts/decidim/social_share.js +0 -2
  684. data/app/assets/javascripts/decidim/vizzs/renders.js.es6 +0 -11
  685. data/app/assets/javascripts/decidim/vizzs.js.es6 +0 -1
  686. data/app/assets/javascripts/decidim.js.es6 +0 -82
  687. data/app/assets/stylesheets/decidim/_decidim.scss +0 -19
  688. data/app/assets/stylesheets/decidim/application.scss.erb +0 -10
  689. data/app/assets/stylesheets/decidim/extras/_extras.scss +0 -17
  690. data/app/assets/stylesheets/decidim/extras/_process_stats.scss +0 -45
  691. data/app/assets/stylesheets/decidim/layouts/_layouts.scss +0 -5
  692. data/app/assets/stylesheets/decidim/map.css +0 -5
  693. data/app/assets/stylesheets/decidim/modules/_modules.scss +0 -92
  694. data/app/assets/stylesheets/decidim/modules/_toggle.scss +0 -9
  695. data/app/assets/stylesheets/decidim/utils/_fontface.scss +0 -39
  696. data/app/assets/stylesheets/decidim/vizzs/_vizzs.scss +0 -5
  697. data/app/assets/stylesheets/decidim/vizzs.scss +0 -8
  698. data/app/frontend/entry.ts +0 -1
  699. data/app/middleware/decidim/current_organization.rb +0 -55
  700. data/app/middleware/decidim/strip_x_forwarded_host.rb +0 -14
  701. data/app/services/decidim/zip_stream/zip_stream_writer.rb +0 -56
  702. data/config/locales/ja-JP.yml +0 -1587
  703. data/lib/decidim/messaging.rb +0 -9
  704. data/vendor/assets/javascripts/appendAround.js +0 -41
  705. data/vendor/assets/javascripts/d3.js +0 -17813
  706. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ar.js +0 -16
  707. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.bg.js +0 -14
  708. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ca.js +0 -16
  709. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.cs.js +0 -14
  710. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.da.js +0 -14
  711. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.de.js +0 -14
  712. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.el.js +0 -14
  713. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.eo.js +0 -17
  714. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.es-MX.js +0 -15
  715. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.es-PY.js +0 -15
  716. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.es.js +0 -15
  717. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.et.js +0 -18
  718. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.eu.js +0 -15
  719. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fi-pl.js +0 -14
  720. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fi.js +0 -14
  721. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fr-CA.js +0 -16
  722. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fr.js +0 -16
  723. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ga.js +0 -15
  724. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.gl.js +0 -12
  725. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.hr.js +0 -13
  726. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.hu.js +0 -16
  727. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.id.js +0 -13
  728. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.is.js +0 -14
  729. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.it.js +0 -14
  730. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ja.js +0 -16
  731. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ko.js +0 -18
  732. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.lt.js +0 -16
  733. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.lv.js +0 -17
  734. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.mt.js +0 -15
  735. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.nl.js +0 -14
  736. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.no.js +0 -13
  737. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.pl.js +0 -15
  738. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.pt-BR.js +0 -14
  739. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.pt.js +0 -17
  740. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ro.js +0 -15
  741. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ru.js +0 -16
  742. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sk.js +0 -14
  743. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sl.js +0 -14
  744. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sr.js +0 -16
  745. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sv.js +0 -14
  746. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.tr.js +0 -14
  747. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.uk.js +0 -16
  748. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.vi.js +0 -14
  749. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-CN.js +0 -14
  750. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-TW.js +0 -14
  751. data/vendor/assets/javascripts/form_datepicker.js.es6 +0 -24
  752. data/vendor/assets/javascripts/foundation-datepicker.js +0 -1425
  753. data/vendor/assets/javascripts/leaflet-svg-icon.js +0 -179
  754. data/vendor/assets/javascripts/leaflet.js +0 -9
  755. data/vendor/assets/javascripts/leaflet.markercluster.js +0 -7
  756. data/vendor/assets/javascripts/morphdom.js +0 -688
  757. data/vendor/assets/javascripts/quill.min.js +0 -8
  758. data/vendor/assets/javascripts/quill.min.js.map +0 -1
  759. data/vendor/assets/javascripts/svg4everybody.min.js +0 -1
  760. data/vendor/assets/javascripts/tagsinput.js +0 -683
  761. data/vendor/assets/stylesheets/MarkerCluster.Default.css +0 -60
  762. data/vendor/assets/stylesheets/MarkerCluster.css +0 -14
  763. data/vendor/assets/stylesheets/leaflet.css +0 -624
  764. data/vendor/assets/stylesheets/quill.bubble.css +0 -952
  765. data/vendor/assets/stylesheets/quill.core.css +0 -397
  766. data/vendor/assets/stylesheets/quill.snow.css +0 -945
  767. data/vendor/assets/stylesheets/tagsinput.css +0 -55
  768. data/vendor/assets/stylesheets/tribute.css +0 -27
@@ -8,6 +8,8 @@ module Decidim
8
8
  # a group or a one-to-one conversation.
9
9
  #
10
10
  class Conversation < ApplicationRecord
11
+ self.table_name = "decidim_messaging_conversations"
12
+
11
13
  include Decidim::DataPortability
12
14
 
13
15
  has_many :participations, foreign_key: :decidim_conversation_id,
@@ -8,6 +8,8 @@ module Decidim
8
8
  # message, namely, the interlocutors of the sender in the conversation.
9
9
  #
10
10
  class Message < ApplicationRecord
11
+ self.table_name = "decidim_messaging_messages"
12
+
11
13
  include Decidim::FriendlyDates
12
14
 
13
15
  belongs_to :sender,
@@ -6,6 +6,8 @@ module Decidim
6
6
  # Holds a many-to-many relationship between conversations and their participants
7
7
  #
8
8
  class Participation < ApplicationRecord
9
+ self.table_name = "decidim_messaging_participations"
10
+
9
11
  belongs_to :conversation,
10
12
  foreign_key: :decidim_conversation_id,
11
13
  class_name: "Decidim::Messaging::Conversation",
@@ -8,6 +8,8 @@ module Decidim
8
8
  # example, the read/unread status, the deleted/undeleted status, and so on.
9
9
  #
10
10
  class Receipt < ApplicationRecord
11
+ self.table_name = "decidim_messaging_receipts"
12
+
11
13
  belongs_to :recipient, foreign_key: "decidim_recipient_id", class_name: "Decidim::User"
12
14
  belongs_to :message, foreign_key: "decidim_message_id", class_name: "Decidim::Messaging::Message"
13
15
 
@@ -8,8 +8,8 @@ module Decidim
8
8
 
9
9
  belongs_to :organization, foreign_key: "decidim_organization_id", class_name: "Decidim::Organization", inverse_of: :oauth_applications
10
10
 
11
- validates_upload :organization_logo
12
- mount_uploader :organization_logo, OAuthApplicationLogoUploader
11
+ has_one_attached :organization_logo
12
+ validates_upload :organization_logo, uploader: OAuthApplicationLogoUploader
13
13
 
14
14
  def owner
15
15
  organization
@@ -29,6 +29,7 @@ module Decidim
29
29
  has_many :admins, -> { where(admin: true) }, foreign_key: "decidim_organization_id", class_name: "Decidim::User"
30
30
  has_many :users_with_any_role, -> { where.not(roles: []) }, foreign_key: "decidim_organization_id", class_name: "Decidim::User"
31
31
  has_many :users, foreign_key: "decidim_organization_id", class_name: "Decidim::User", dependent: :destroy
32
+ has_many :user_entities, foreign_key: "decidim_organization_id", class_name: "Decidim::UserBaseEntity", dependent: :destroy
32
33
  has_many :oauth_applications, foreign_key: "decidim_organization_id", class_name: "Decidim::OAuthApplication", inverse_of: :organization, dependent: :destroy
33
34
  has_many :hashtags, foreign_key: "decidim_organization_id", class_name: "Decidim::Hashtag", dependent: :destroy
34
35
 
@@ -45,20 +46,22 @@ module Decidim
45
46
  validates :time_zone, presence: true, time_zone: true
46
47
  validates :default_locale, inclusion: { in: :available_locales }
47
48
 
48
- validates_upload :official_img_header
49
- mount_uploader :official_img_header, Decidim::OfficialImageHeaderUploader
49
+ has_one_attached :official_img_header
50
+ validates_upload :official_img_header, uploader: Decidim::OfficialImageHeaderUploader
50
51
 
51
- validates_upload :official_img_footer
52
- mount_uploader :official_img_footer, Decidim::OfficialImageFooterUploader
52
+ has_one_attached :official_img_footer
53
+ validates_upload :official_img_footer, uploader: Decidim::OfficialImageFooterUploader
53
54
 
54
- validates_upload :logo
55
- mount_uploader :logo, Decidim::OrganizationLogoUploader
55
+ has_one_attached :logo
56
+ validates_upload :logo, uploader: Decidim::OrganizationLogoUploader
56
57
 
57
- validates_upload :favicon
58
- mount_uploader :favicon, Decidim::OrganizationFaviconUploader
58
+ has_one_attached :favicon
59
+ validates_upload :favicon, uploader: Decidim::OrganizationFaviconUploader
59
60
 
60
- validates_upload :highlighted_content_banner_image
61
- mount_uploader :highlighted_content_banner_image, ImageUploader
61
+ has_one_attached :highlighted_content_banner_image
62
+ validates_upload :highlighted_content_banner_image, uploader: Decidim::ImageUploader
63
+
64
+ has_one_attached :open_data_file
62
65
 
63
66
  def self.log_presenter_class_for(_log)
64
67
  Decidim::AdminLog::OrganizationPresenter
@@ -121,13 +124,6 @@ module Decidim
121
124
  !users_registration_mode_disabled?
122
125
  end
123
126
 
124
- def open_data_file
125
- @open_data_file ||= OpenDataUploader.new(self).tap do |uploader|
126
- uploader.retrieve_from_store! open_data_file_path
127
- uploader.cache! open_data_file_path
128
- end
129
- end
130
-
131
127
  def open_data_file_path
132
128
  "#{host}-open-data.zip"
133
129
  end
@@ -174,9 +170,9 @@ module Decidim
174
170
  Decidim::OmniauthProvider.extract_provider_key(key)
175
171
  end.compact.uniq
176
172
 
177
- Hash[tenant_enabled_providers_keys.map do |key|
178
- [key, omniauth_provider_settings(key)]
179
- end]
173
+ tenant_enabled_providers_keys.index_with do |key|
174
+ omniauth_provider_settings(key)
175
+ end
180
176
  end
181
177
 
182
178
  def omniauth_provider_settings(provider)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "devise/models/decidim_validatable"
4
- require_dependency "devise/models/decidim_newsletterable"
3
+ require "devise/models/decidim_validatable"
4
+ require "devise/models/decidim_newsletterable"
5
5
  require "valid_email2"
6
6
 
7
7
  module Decidim
@@ -22,11 +22,12 @@ module Decidim
22
22
  end
23
23
 
24
24
  devise :invitable, :database_authenticatable, :registerable, :confirmable, :timeoutable,
25
- :recoverable, :rememberable, :trackable, :lockable,
25
+ :recoverable, :trackable, :lockable,
26
26
  :decidim_validatable, :decidim_newsletterable,
27
27
  :omniauthable, omniauth_providers: Decidim::OmniauthProvider.available.keys,
28
28
  request_keys: [:env], reset_password_keys: [:decidim_organization_id, :email],
29
29
  confirmation_keys: [:decidim_organization_id, :email]
30
+ devise :rememberable if Decidim.enable_remember_me
30
31
 
31
32
  has_many :identities, foreign_key: "decidim_user_id", class_name: "Decidim::Identity", dependent: :destroy
32
33
  has_many :memberships, class_name: "Decidim::UserGroupMembership", foreign_key: :decidim_user_id, dependent: :destroy
@@ -49,7 +50,10 @@ module Decidim
49
50
 
50
51
  validate :all_roles_are_valid
51
52
 
52
- mount_uploader :avatar, Decidim::AvatarUploader
53
+ has_one_attached :avatar
54
+ validates_upload :avatar, uploader: Decidim::AvatarUploader
55
+
56
+ has_one_attached :data_portability_file
53
57
 
54
58
  scope :not_deleted, -> { where(deleted_at: nil) }
55
59
 
@@ -229,14 +233,6 @@ module Decidim
229
233
  extended_data["user_name"] || name
230
234
  end
231
235
 
232
- # Caches a Decidim::DataPortabilityUploader with the retrieved file.
233
- def data_portability_file(filename)
234
- @data_portability_file ||= DataPortabilityUploader.new(self).tap do |uploader|
235
- uploader.retrieve_from_store!(filename)
236
- uploader.cache!(filename)
237
- end
238
- end
239
-
240
236
  # return the groups where this user has been accepted
241
237
  def accepted_user_groups
242
238
  UserGroups::AcceptedUserGroups.for(self)
@@ -256,6 +252,14 @@ module Decidim
256
252
  save!
257
253
  end
258
254
 
255
+ ransacker :invitation_accepted_at do
256
+ Arel.sql(%{("decidim_users"."invitation_accepted_at")::text})
257
+ end
258
+
259
+ ransacker :last_sign_in_at do
260
+ Arel.sql(%{("decidim_users"."last_sign_in_at")::text})
261
+ end
262
+
259
263
  protected
260
264
 
261
265
  # Overrides devise email required validation.
@@ -20,8 +20,8 @@ module Decidim
20
20
  # Regex for name & nickname format validations
21
21
  REGEXP_NAME = /\A(?!.*[<>?%&\^*#@()\[\]=+:;"{}\\|])/.freeze
22
22
 
23
- validates_avatar
24
- mount_uploader :avatar, Decidim::AvatarUploader
23
+ has_one_attached :avatar
24
+ validates_avatar :avatar, uploader: Decidim::AvatarUploader
25
25
 
26
26
  validates :name, format: { with: REGEXP_NAME }
27
27
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "devise/models/decidim_validatable"
3
+ require "devise/models/decidim_validatable"
4
4
  require "valid_email2"
5
5
 
6
6
  module Decidim
@@ -10,6 +10,7 @@ module Decidim
10
10
  include Decidim::DataPortability
11
11
  include Decidim::ActsAsAuthor
12
12
  include Decidim::UserReportable
13
+ include Decidim::Searchable
13
14
 
14
15
  has_many :memberships, class_name: "Decidim::UserGroupMembership", foreign_key: :decidim_user_group_id, dependent: :destroy
15
16
  has_many :users, through: :memberships, class_name: "Decidim::User", foreign_key: :decidim_user_id
@@ -25,6 +26,9 @@ module Decidim
25
26
  validate :correct_state
26
27
  validate :unique_document_number, if: :has_document_number?
27
28
 
29
+ has_one_attached :avatar
30
+ validates_upload :avatar, uploader: Decidim::AvatarUploader
31
+
28
32
  devise :confirmable, :decidim_validatable, confirmation_keys: [:decidim_organization_id, :email]
29
33
 
30
34
  scope :verified, -> { where.not("extended_data->>'verified_at' IS ?", nil) }
@@ -32,6 +36,16 @@ module Decidim
32
36
  scope :rejected, -> { where.not("extended_data->>'rejected_at' IS ?", nil) }
33
37
  scope :pending, -> { where("extended_data->>'rejected_at' IS ? AND extended_data->>'verified_at' IS ?", nil, nil) }
34
38
 
39
+ searchable_fields(
40
+ {
41
+ organization_id: :decidim_organization_id,
42
+ A: :name,
43
+ datetime: :created_at
44
+ },
45
+ index_on_create: ->(user_group) { !user_group.deleted? },
46
+ index_on_update: ->(user_group) { !user_group.deleted? }
47
+ )
48
+
35
49
  def self.with_document_number(organization, number)
36
50
  where(decidim_organization_id: organization.id)
37
51
  .where("extended_data->>'document_number' = ?", number)
@@ -66,6 +80,11 @@ module Decidim
66
80
  verified_at.blank? && rejected_at.blank?
67
81
  end
68
82
 
83
+ # Check if the group has been deleted or not
84
+ def deleted?
85
+ deleted_at.present?
86
+ end
87
+
69
88
  def self.user_collection(user)
70
89
  user.user_groups
71
90
  end
@@ -0,0 +1,2 @@
1
+ // CSS
2
+ import "entrypoints/decidim_conference_diploma.scss"
@@ -0,0 +1 @@
1
+ @import "stylesheets/decidim/conference-diploma.scss";
@@ -0,0 +1,69 @@
1
+ /* eslint no-unused-vars: 0 */
2
+ /* eslint id-length: ["error", { "exceptions": ["$"] }] */
3
+
4
+ import $ from "jquery"
5
+ import Quill from "quill"
6
+ import Rails from "@rails/ujs"
7
+
8
+ import "core-js/stable";
9
+ import "regenerator-runtime/runtime";
10
+ import morphdom from "morphdom"
11
+ // Export variable to make it available in .js.erb templates
12
+ window.morphdom = morphdom
13
+ import "src/decidim/vendor/foundation-datepicker"
14
+ import "src/decidim/foundation_datepicker_locales"
15
+ import "src/decidim/vendor/modernizr"
16
+ import "social-share-button"
17
+
18
+ import "src/decidim/input_tags"
19
+ import "src/decidim/input_hashtags"
20
+ import "src/decidim/input_mentions"
21
+ import "src/decidim/input_multiple_mentions"
22
+ import "src/decidim/input_character_counter"
23
+ import "src/decidim/input_autojump"
24
+ import "src/decidim/index"
25
+ import "src/decidim/history"
26
+ import "src/decidim/callout"
27
+ import "src/decidim/clipboard"
28
+ import "src/decidim/append_elements"
29
+ import "src/decidim/user_registrations"
30
+ import "src/decidim/account_form"
31
+ import "src/decidim/data_picker"
32
+ import "src/decidim/dropdowns_menus"
33
+ import "src/decidim/append_redirect_url_to_modals"
34
+ import "src/decidim/form_validator"
35
+ import "src/decidim/ajax_modals"
36
+ import "src/decidim/conferences"
37
+ import "src/decidim/tooltip_keep_on_hover"
38
+ import "src/decidim/diff_mode_dropdown"
39
+ import "src/decidim/conversations"
40
+ import "src/decidim/delayed"
41
+ import "src/decidim/icon"
42
+ import "src/decidim/vizzs"
43
+ import "src/decidim/responsive_horizontal_tabs"
44
+ import "src/decidim/security/selfxss_warning"
45
+ import "src/decidim/session_timeouter"
46
+ import "src/decidim/configuration"
47
+ import "src/decidim/floating_help"
48
+ import "src/decidim/confirm"
49
+ import "src/decidim/comments/comments"
50
+ import "src/decidim/results_listing"
51
+ import "src/decidim/represent_user_group"
52
+ import "src/decidim/impersonation"
53
+ import "src/decidim/start_conversation_dialog"
54
+ import "src/decidim/notifications"
55
+ import "src/decidim/identity_selector_dialog"
56
+ import "src/decidim/gallery"
57
+
58
+ // CSS
59
+ import "entrypoints/decidim_core.scss"
60
+
61
+ // Import from the Rails instance application
62
+ import "src/decidim/decidim_application"
63
+
64
+ // Images
65
+ require.context("../images", true)
66
+
67
+ // This needs to be loaded after confirm dialog to bind properly
68
+ Rails.start()
69
+
@@ -0,0 +1 @@
1
+ @import "stylesheets/decidim/application.scss";
@@ -0,0 +1 @@
1
+ import "entrypoints/decidim_email.scss";
@@ -0,0 +1 @@
1
+ @import "stylesheets/decidim/email.scss";
@@ -0,0 +1 @@
1
+ import "src/decidim/geocoding/provider/here"
@@ -0,0 +1 @@
1
+ import "src/decidim/geocoding/provider/photon"
@@ -0,0 +1 @@
1
+ import "entrypoints/decidim_map.scss";
@@ -0,0 +1 @@
1
+ @import "stylesheets/decidim/map.scss";
@@ -0,0 +1,2 @@
1
+ import "src/decidim/map/provider/default"
2
+ import "src/decidim/map"
@@ -0,0 +1,2 @@
1
+ import "src/decidim/map/provider/here"
2
+ import "src/decidim/map"
@@ -0,0 +1 @@
1
+ import "src/decidim/widget"
File without changes
File without changes
File without changes
@@ -0,0 +1,13 @@
1
+ <svg width="256px" height="256px" viewBox="1899 111 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>Delicious</desc>
3
+ <defs></defs>
4
+ <g id="delicious" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(1899.000000, 111.000000)">
5
+ <rect id="bg" fill="#0076E8" x="0" y="0" width="256" height="256" rx="40"></rect>
6
+ <g id="Group" transform="translate(128.000000, 129.000000) rotate(90.000000) translate(-128.000000, -129.000000) translate(38.000000, 39.000000)">
7
+ <polygon id="Shape" fill="#FFFFFF" points="0.239990234 90.0551489 90.0155647 90.0551489 90.0155647 179.830723 0.239990234 179.830723 0.239990234 90.0551489"></polygon>
8
+ <polygon id="Shape-Copy" fill-opacity="0.0656136775" fill="#000000" points="0.239990234 0.169276596 90.0079051 0.169276596 90.0079051 89.9528936 0.240373213 89.9528936 0.240373213 0.169276596"></polygon>
9
+ <polygon id="Shape-Copy-2" fill-opacity="0.0656136775" fill="#000000" points="90 90 179.767915 90 179.767915 179.783617 90.000383 179.783617 90.000383 90"></polygon>
10
+ <polygon id="Shape" fill="#FFFFFF" points="89.9961702 0.169276596 179.764085 0.169276596 179.764085 89.9528936 89.9965532 89.9528936 89.9965532 0.169276596"></polygon>
11
+ </g>
12
+ </g>
13
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="256px" height="256px" viewBox="1271 111 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>Douban</desc>
3
+ <defs></defs>
4
+ <g id="douban" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(1271.000000, 111.000000)">
5
+ <rect id="bg" fill="#20982D" x="0" y="0" width="256" height="256" rx="40"></rect>
6
+ <path d="M209.287755,62.5836735 L47.8571429,62.5836735 L47.8571429,46 L209.270408,46 L209.270408,62.5836735 L209.287755,62.5836735 Z M213,209.095918 L43,209.095918 L43,192.304082 L93.8438776,192.304082 C87.6163265,178.6 81.0244898,166.769388 74.1030612,156.812245 L87.1653061,148.329592 L64.2673469,148.329592 L64.2673469,82.0642857 L193.432653,82.0642857 L193.432653,148.329592 L169.407143,148.329592 L182.469388,157.003061 C176.293878,170.707143 169.87551,182.468367 163.196939,192.304082 L213,192.304082 L213,209.095918 L213,209.095918 Z M175.322449,131.641837 L175.322449,99.1336735 L82.3081633,99.1336735 L82.3081633,131.641837 L175.322449,131.641837 L175.322449,131.641837 Z M166.25,148.329592 L90.5132653,148.329592 C98.6489796,162.033673 106.056122,176.691837 112.734694,192.321429 L143.646939,192.321429 C153.118367,177.472449 160.664286,162.796939 166.25,148.329592 L166.25,148.329592 Z" id="Shape" fill="#FFFFFF"></path>
7
+ </g>
8
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="256px" height="256px" viewBox="3781 111 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>Email</desc>
3
+ <defs></defs>
4
+ <g id="email" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(3781.000000, 111.000000)">
5
+ <rect id="bg" fill="#A56EE3" x="0" y="0" width="256" height="256" rx="40"></rect>
6
+ <path d="M218,102.602679 L218,182.357143 C218,186.776786 216.426339,190.560268 213.279018,193.707589 C210.131696,196.854911 206.348214,198.428571 201.928571,198.428571 L54.0714286,198.428571 C49.6517857,198.428571 45.8683036,196.854911 42.7209821,193.707589 C39.5736607,190.560268 38,186.776786 38,182.357143 L38,102.602679 C40.9464286,105.883929 44.328125,108.796875 48.1450893,111.341518 C72.3861607,127.814732 89.0267857,139.366071 98.0669643,145.995536 C101.883929,148.808036 104.981027,151.001116 107.358259,152.574777 C109.735491,154.148438 112.899554,155.75558 116.850446,157.396205 C120.801339,159.03683 124.484375,159.857143 127.899554,159.857143 L128.100446,159.857143 C131.515625,159.857143 135.198661,159.03683 139.149554,157.396205 C143.100446,155.75558 146.264509,154.148438 148.641741,152.574777 C151.018973,151.001116 154.116071,148.808036 157.933036,145.995536 C169.316964,137.758929 185.991071,126.207589 207.955357,111.341518 C211.772321,108.729911 215.120536,105.816964 218,102.602679 L218,102.602679 Z M218,73.0714286 C218,78.3616071 216.359375,83.4174107 213.078125,88.2388393 C209.796875,93.0602679 205.712054,97.1785714 200.823661,100.59375 C175.645089,118.071429 159.975446,128.953125 153.814732,133.238839 C153.145089,133.707589 151.722098,134.728795 149.545759,136.302455 C147.36942,137.876116 145.561384,139.148438 144.121652,140.11942 C142.68192,141.090402 140.940848,142.178571 138.898438,143.383929 C136.856027,144.589286 134.930804,145.493304 133.122768,146.095982 C131.314732,146.698661 129.640625,147 128.100446,147 L127.899554,147 C126.359375,147 124.685268,146.698661 122.877232,146.095982 C121.069196,145.493304 119.143973,144.589286 117.101562,143.383929 C115.059152,142.178571 113.31808,141.090402 111.878348,140.11942 C110.438616,139.148438 108.63058,137.876116 106.454241,136.302455 C104.277902,134.728795 102.854911,133.707589 102.185268,133.238839 C96.0915179,128.953125 87.3191964,122.842634 75.8683036,114.907366 C64.4174107,106.972098 57.5535714,102.200893 55.2767857,100.59375 C51.125,97.78125 47.2075893,93.9140625 43.5245536,88.9921875 C39.8415179,84.0703125 38,79.5 38,75.28125 C38,70.0580357 39.3895089,65.7053571 42.1685268,62.2232143 C44.9475446,58.7410714 48.9151786,57 54.0714286,57 L201.928571,57 C206.28125,57 210.047991,58.5736607 213.228795,61.7209821 C216.409598,64.8683036 218,68.6517857 218,73.0714286 L218,73.0714286 Z" id="Shape" fill="#FFFFFF"></path>
7
+ </g>
8
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="256px" height="256px" viewBox="312 111 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>Facebook</desc>
3
+ <defs></defs>
4
+ <g id="facebook" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(312.000000, 111.000000)">
5
+ <rect id="bg" fill="#2760D8" x="0" y="0" width="256" height="256" rx="40"></rect>
6
+ <path d="M185.230769,37.5865385 L185.230769,72.4903846 L164.473558,72.4903846 C156.893429,72.4903846 151.78125,74.0769231 149.137019,77.25 C146.492788,80.4230769 145.170673,85.1826923 145.170673,91.5288462 L145.170673,116.516827 L183.908654,116.516827 L178.752404,155.651442 L145.170673,155.651442 L145.170673,256 L104.713942,256 L104.713942,155.651442 L71,155.651442 L71,116.516827 L104.713942,116.516827 L104.713942,87.6947115 C104.713942,71.3004808 109.297276,58.5861378 118.463942,49.5516827 C127.630609,40.5172276 139.838141,36 155.086538,36 C168.043269,36 178.091346,36.5288462 185.230769,37.5865385 L185.230769,37.5865385 Z" id="Shape" fill="#FFFFFF"></path>
7
+ </g>
8
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="256px" height="256px" viewBox="1585 111 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>Google</desc>
3
+ <defs></defs>
4
+ <g id="google" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(1585.000000, 111.000000)">
5
+ <rect id="bg" fill="#3E82F7" x="0" y="0" width="256" height="256" rx="40"></rect>
6
+ <path d="M129.853821,114.697674 L216.564784,114.697674 C217.521595,120.039867 218,125.142857 218,130.006645 C218,147.30897 214.372093,162.757475 207.116279,176.352159 C199.860465,189.946844 189.51495,200.571429 176.079734,208.225914 C162.644518,215.880399 147.23588,219.707641 129.853821,219.707641 C117.335548,219.707641 105.415282,217.295681 94.0930233,212.471761 C82.7707641,207.647841 73.0033223,201.129568 64.7906977,192.916944 C56.5780731,184.704319 50.0598007,174.936877 45.2358804,163.614618 C40.4119601,152.292359 38,140.372093 38,127.853821 C38,115.335548 40.4119601,103.415282 45.2358804,92.0930233 C50.0598007,80.7707641 56.5780731,71.0033223 64.7906977,62.7906977 C73.0033223,54.5780731 82.7707641,48.0598007 94.0930233,43.2358804 C105.415282,38.4119601 117.335548,36 129.853821,36 C153.774086,36 174.305648,44.013289 191.448505,60.0398671 L166.451827,84.0797342 C156.644518,74.5913621 144.445183,69.8471761 129.853821,69.8471761 C119.568106,69.8471761 110.059801,72.4385382 101.328904,77.6212625 C92.5980066,82.8039867 85.6810631,89.8405316 80.5780731,98.730897 C75.4750831,107.621262 72.923588,117.328904 72.923588,127.853821 C72.923588,138.378738 75.4750831,148.086379 80.5780731,156.976744 C85.6810631,165.86711 92.5980066,172.903654 101.328904,178.086379 C110.059801,183.269103 119.568106,185.860465 129.853821,185.860465 C136.790698,185.860465 143.169435,184.903654 148.990033,182.990033 C154.810631,181.076412 159.594684,178.684385 163.342193,175.813953 C167.089701,172.943522 170.358804,169.674419 173.149502,166.006645 C175.940199,162.33887 177.993355,158.870432 179.30897,155.601329 C180.624585,152.332226 181.521595,149.222591 182,146.272425 L129.853821,146.272425 L129.853821,114.697674 L129.853821,114.697674 Z" id="Shape" fill="#FFFFFF"></path>
7
+ </g>
8
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="256px" height="256px" viewBox="631 111 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>Google+</desc>
3
+ <defs></defs>
4
+ <g id="google-plus" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(631.000000, 111.000000)">
5
+ <rect id="bg" fill="#F04500" x="0" y="0" width="256" height="256" rx="40"></rect>
6
+ <g transform="translate(28.000000, 64.000000)" id="Shape" fill="#FFFFFF">
7
+ <path d="M124.739583,65.1041667 C124.739583,77.1412037 122.222222,87.8616898 117.1875,97.265625 C112.152778,106.66956 104.976852,114.019097 95.6597222,119.314236 C86.3425926,124.609375 75.6655093,127.256944 63.6284722,127.256944 C55.005787,127.256944 46.7592593,125.578704 38.8888889,122.222222 C31.0185185,118.865741 24.2476852,114.351852 18.5763889,108.680556 C12.9050926,103.009259 8.3912037,96.2384259 5.03472222,88.3680556 C1.67824074,80.4976852 0,72.2511574 0,63.6284722 C0,55.005787 1.67824074,46.7592593 5.03472222,38.8888889 C8.3912037,31.0185185 12.9050926,24.2476852 18.5763889,18.5763889 C24.2476852,12.9050926 31.0185185,8.3912037 38.8888889,5.03472222 C46.7592593,1.67824074 55.005787,0 63.6284722,0 C80.1793981,0 94.3865741,5.55555556 106.25,16.6666667 L88.9756944,33.2465278 C82.2048611,26.7071759 73.755787,23.4375 63.6284722,23.4375 C56.5104167,23.4375 49.927662,25.2314815 43.8802083,28.8194444 C37.8327546,32.4074074 33.0439815,37.2829861 29.5138889,43.4461806 C25.9837963,49.609375 24.21875,56.3368056 24.21875,63.6284722 C24.21875,70.9201389 25.9837963,77.6475694 29.5138889,83.8107639 C33.0439815,89.9739583 37.8327546,94.849537 43.8802083,98.4375 C49.927662,102.025463 56.5104167,103.819444 63.6284722,103.819444 C68.431713,103.819444 72.8443287,103.153935 76.8663194,101.822917 C80.8883102,100.491898 84.2013889,98.828125 86.8055556,96.8315972 C89.4097222,94.8350694 91.6811343,92.5636574 93.6197917,90.0173611 C95.5584491,87.4710648 96.9762731,85.0694444 97.8732639,82.8125 C98.7702546,80.5555556 99.3923611,78.4143519 99.7395833,76.3888889 L63.6284722,76.3888889 L63.6284722,54.5138889 L123.697917,54.5138889 C124.392361,58.1597222 124.739583,61.6898148 124.739583,65.1041667 L124.739583,65.1041667 Z M200,54.5138889 L200,72.7430556 L181.857639,72.7430556 L181.857639,90.8854167 L163.628472,90.8854167 L163.628472,72.7430556 L145.486111,72.7430556 L145.486111,54.5138889 L163.628472,54.5138889 L163.628472,36.3715278 L181.857639,36.3715278 L181.857639,54.5138889 L200,54.5138889 L200,54.5138889 Z"></path>
8
+ </g>
9
+ </g>
10
+ </svg>
@@ -0,0 +1,69 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ width="256px"
11
+ height="256px"
12
+ viewBox="-2 111 256 256"
13
+ version="1.1"
14
+ id="svg3192"
15
+ inkscape:version="0.48.5 r10040"
16
+ sodipodi:docname="hacker_news.svg">
17
+ <metadata
18
+ id="metadata3203">
19
+ <rdf:RDF>
20
+ <cc:Work
21
+ rdf:about="">
22
+ <dc:format>image/svg+xml</dc:format>
23
+ <dc:type
24
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25
+ <dc:title />
26
+ </cc:Work>
27
+ </rdf:RDF>
28
+ </metadata>
29
+ <sodipodi:namedview
30
+ pagecolor="#ffffff"
31
+ bordercolor="#666666"
32
+ borderopacity="1"
33
+ objecttolerance="10"
34
+ gridtolerance="10"
35
+ guidetolerance="10"
36
+ inkscape:pageopacity="0"
37
+ inkscape:pageshadow="2"
38
+ inkscape:window-width="1920"
39
+ inkscape:window-height="1149"
40
+ id="namedview3201"
41
+ showgrid="false"
42
+ inkscape:zoom="2.9981327"
43
+ inkscape:cx="183.89957"
44
+ inkscape:cy="150.68414"
45
+ inkscape:window-x="0"
46
+ inkscape:window-y="0"
47
+ inkscape:window-maximized="1"
48
+ inkscape:current-layer="svg3192" />
49
+ <defs
50
+ id="defs3196" />
51
+ <g
52
+ id="hacker_news"
53
+ transform="translate(-2,111)"
54
+ style="fill:none;stroke:none">
55
+ <rect
56
+ id="bg"
57
+ x="0"
58
+ y="0"
59
+ width="256"
60
+ height="256"
61
+ rx="40"
62
+ style="fill:#ff6500" />
63
+ <path
64
+ style="fill:#ffffff;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
65
+ d="m 73.349057,62.544811 44.044813,82.016509 0,54.00943 16.98113,0.059 0,-53.06607 44.10377,-83.018869 -18.98585,0.05896 -33.07783,66.096699 -32.959901,-66.155659 z"
66
+ id="path3087"
67
+ inkscape:connector-curvature="0" />
68
+ </g>
69
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="256px" height="256px" viewBox="2841 111 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>LinkedIn</desc>
3
+ <defs></defs>
4
+ <g id="linkedin" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(2841.000000, 111.000000)">
5
+ <rect id="bg" fill="#007CCB" x="0" y="0" width="256" height="256" rx="40"></rect>
6
+ <path d="M78.8984375,96.8984375 L78.8984375,213.03125 L40.2265625,213.03125 L40.2265625,96.8984375 L78.8984375,96.8984375 L78.8984375,96.8984375 Z M81.359375,61.0390625 C81.4375,66.7421875 79.4648438,71.5078125 75.4414062,75.3359375 C71.4179688,79.1640625 66.125,81.078125 59.5625,81.078125 L59.328125,81.078125 C52.921875,81.078125 47.765625,79.1640625 43.859375,75.3359375 C39.953125,71.5078125 38,66.7421875 38,61.0390625 C38,55.2578125 40.0117188,50.4726562 44.0351562,46.6835938 C48.0585938,42.8945312 53.3125,41 59.796875,41 C66.28125,41 71.4765625,42.8945312 75.3828125,46.6835938 C79.2890625,50.4726562 81.28125,55.2578125 81.359375,61.0390625 L81.359375,61.0390625 Z M218,146.46875 L218,213.03125 L179.445312,213.03125 L179.445312,150.921875 C179.445312,142.71875 177.863281,136.292969 174.699219,131.644531 C171.535156,126.996094 166.59375,124.671875 159.875,124.671875 C154.953125,124.671875 150.832031,126.019531 147.511719,128.714844 C144.191406,131.410156 141.710938,134.75 140.070312,138.734375 C139.210938,141.078125 138.78125,144.242188 138.78125,148.226563 L138.78125,213.03125 L100.226562,213.03125 C100.382812,181.859375 100.460938,156.585938 100.460938,137.210938 C100.460938,117.835938 100.421875,106.273438 100.34375,102.523438 L100.226562,96.8984375 L138.78125,96.8984375 L138.78125,113.773438 L138.546875,113.773438 C140.109375,111.273438 141.710938,109.085938 143.351562,107.210938 C144.992188,105.335938 147.199219,103.304688 149.972656,101.117188 C152.746094,98.9296875 156.144531,97.2304688 160.167969,96.0195313 C164.191406,94.8085938 168.664062,94.203125 173.585938,94.203125 C186.945312,94.203125 197.6875,98.6367188 205.8125,107.503906 C213.9375,116.371094 218,129.359375 218,146.46875 L218,146.46875 Z" id="Shape" fill="#FFFFFF"></path>
7
+ </g>
8
+ </svg>