decidim-decidim_geo 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +72 -129
  3. data/Rakefile +30 -24
  4. data/app/cells/decidim/geo/content_blocks/geo_maps/show.erb +13 -14
  5. data/app/cells/decidim/geo/content_blocks/geo_maps_cell.rb +216 -93
  6. data/app/cells/decidim/geo/content_blocks/geo_maps_settings_form_cell.rb +3 -2
  7. data/app/cells/decidim/geo/content_blocks/group_geo_maps_cell.rb +20 -0
  8. data/app/cells/decidim/geo/content_blocks/space_geo_maps_cell.rb +15 -0
  9. data/app/cells/decidim/geo/geo_collection_map/show.erb +1 -4
  10. data/app/cells/decidim/geo/geo_collection_map_cell.rb +45 -31
  11. data/app/commands/decidim/geo/admin/create_shapefile.rb +4 -7
  12. data/app/commands/decidim/geo/admin/update_geo_config.rb +27 -6
  13. data/app/commands/decidim/geo/admin/update_shapedata_taxonomy.rb +49 -0
  14. data/app/commands/decidim/geo/command.rb +1 -1
  15. data/app/controllers/decidim/geo/admin/application_controller.rb +3 -4
  16. data/app/controllers/decidim/geo/admin/geo_configs_controller.rb +37 -10
  17. data/app/controllers/decidim/geo/admin/shapefiles_controller.rb +6 -8
  18. data/app/controllers/decidim/geo/admin/taxonomies_shapedatas_controller.rb +76 -0
  19. data/app/controllers/decidim/geo/api_controller.rb +7 -0
  20. data/app/controllers/decidim/geo/application_controller.rb +1 -1
  21. data/app/controllers/decidim/geo/points_controller.rb +131 -0
  22. data/app/controllers/decidim/geo/shapefile_controller.rb +1 -3
  23. data/app/forms/decidim/geo/admin/geo_config_form.rb +20 -1
  24. data/app/forms/decidim/geo/admin/organization_config_form.rb +33 -0
  25. data/app/forms/decidim/geo/admin/shapefile_form.rb +2 -2
  26. data/app/forms/decidim/geo/admin/taxonomy_shapedata_form.rb +13 -0
  27. data/app/jobs/decidim/geo/automatic_taxonomy_job.rb +115 -0
  28. data/app/jobs/decidim/geo/update_accountability_geo_index_job.rb +48 -0
  29. data/app/jobs/decidim/geo/update_assembly_geo_index_job.rb +49 -0
  30. data/app/jobs/decidim/geo/update_debate_geo_index_job.rb +48 -0
  31. data/app/jobs/decidim/geo/update_meeting_geo_index_job.rb +50 -0
  32. data/app/jobs/decidim/geo/update_process_geo_index_job.rb +49 -0
  33. data/app/jobs/decidim/geo/update_proposal_geo_index_job.rb +48 -0
  34. data/app/models/decidim/geo/geo_config.rb +19 -11
  35. data/app/models/decidim/geo/hide_map.rb +12 -0
  36. data/app/models/decidim/geo/index.rb +39 -0
  37. data/app/models/decidim/geo/no_index.rb +16 -0
  38. data/app/models/decidim/geo/shapedata.rb +15 -4
  39. data/app/models/decidim/geo/shapefile.rb +12 -9
  40. data/app/models/decidim/geo/space_location.rb +12 -9
  41. data/app/overrides/add_assembly_map.rb +18 -0
  42. data/app/overrides/add_geo_scripts.rb +24 -0
  43. data/app/overrides/add_process_admin_location_form.rb +8 -0
  44. data/app/overrides/add_processes_map.rb +19 -0
  45. data/app/overrides/add_resource_item_map.rb +32 -0
  46. data/app/overrides/admin_accountabilities.rb +34 -0
  47. data/app/overrides/admin_assemblies.rb +10 -0
  48. data/app/overrides/admin_attrs_component.rb +33 -0
  49. data/app/overrides/hide_maps_enabled_attribute.rb +18 -0
  50. data/app/overrides/replace_accountability_map.rb +36 -0
  51. data/app/overrides/replace_default_content_block.rb +15 -0
  52. data/app/overrides/replace_default_meetings_map.rb +41 -0
  53. data/app/overrides/replace_default_proposals_map.rb +37 -0
  54. data/app/packs/entrypoints/decidim_geo.js +0 -1
  55. data/app/packs/entrypoints/decidim_geo_vendor.js +4 -0
  56. data/app/packs/entrypoints/decidim_geo_vendors.js +4 -0
  57. data/app/packs/images/decidim/geo/fullscreen.svg +10 -0
  58. data/app/packs/images/decidim/geo/geolocated.svg +17 -0
  59. data/app/packs/images/decidim/geo/not-geolocated.svg +7 -3
  60. data/app/packs/src/decidim/geo/api/countGeoDataSource.js +35 -0
  61. data/app/packs/src/decidim/geo/api/getFirstGeoDataSource.js +20 -0
  62. data/app/packs/src/decidim/geo/api/getGeoDataSource.js +72 -0
  63. data/app/packs/src/decidim/geo/api/gql.js +76 -0
  64. data/app/packs/src/decidim/geo/api/index.js +4 -51
  65. data/app/packs/src/decidim/geo/api/makeQuery.js +16 -0
  66. data/app/packs/src/decidim/geo/api/queries.js +5 -76
  67. data/app/packs/src/decidim/geo/index.js +167 -54
  68. data/app/packs/src/decidim/geo/leaflet.js +7 -0
  69. data/app/packs/src/decidim/geo/models/GeoDatasourceNode.js +190 -0
  70. data/app/packs/src/decidim/geo/models/GeoTaxonomy.js +182 -0
  71. data/app/packs/src/decidim/geo/stores/configStore.js +86 -0
  72. data/app/packs/src/decidim/geo/stores/dropdownFilterStore.js +240 -0
  73. data/app/packs/src/decidim/geo/stores/filterStore.js +218 -0
  74. data/app/packs/src/decidim/geo/stores/geoStore.js +135 -0
  75. data/app/packs/src/decidim/geo/stores/hashStore.js +34 -0
  76. data/app/packs/src/decidim/geo/stores/memoryStore.js +48 -0
  77. data/app/packs/src/decidim/geo/stores/pointCounterStore.js +46 -0
  78. data/app/packs/src/decidim/geo/stores/pointStore.js +189 -0
  79. data/app/packs/src/decidim/geo/ui/AsideToggle.js +107 -0
  80. data/app/packs/src/decidim/geo/ui/Drawer.js +205 -0
  81. data/app/packs/src/decidim/geo/ui/DrawerDetail/fallback.js +50 -17
  82. data/app/packs/src/decidim/geo/ui/DrawerDetail/meetings.js +48 -23
  83. data/app/packs/src/decidim/geo/ui/DrawerHeader.js +313 -0
  84. data/app/packs/src/decidim/geo/ui/DrawerListItem/fallback.js +94 -0
  85. data/app/packs/src/decidim/geo/ui/{DrawerMenuItem → DrawerListItem}/index.js +1 -0
  86. data/app/packs/src/decidim/geo/ui/DrawerListItem/item.js +17 -0
  87. data/app/packs/src/decidim/geo/ui/DrawerListItem/meetings.js +122 -0
  88. data/app/packs/src/decidim/geo/ui/DrawerListItem/proposals.js +89 -0
  89. data/app/packs/src/decidim/geo/ui/FilterButton.js +111 -0
  90. data/app/packs/src/decidim/geo/ui/FilterControl.js +43 -0
  91. data/app/packs/src/decidim/geo/ui/FilterModal.js +318 -0
  92. data/app/packs/src/decidim/geo/ui/FilterModalHelpText.js +71 -0
  93. data/app/packs/src/decidim/geo/ui/FilterModalOverlay.js +44 -0
  94. data/app/packs/src/decidim/geo/ui/PageNameControl.js +34 -0
  95. data/app/packs/src/decidim/geo/ui/aside.js +57 -0
  96. data/app/packs/src/decidim/geo/ui/customArrowMarker.js +25 -0
  97. data/app/packs/src/decidim/geo/ui/customMarker.js +20 -0
  98. data/app/packs/src/decidim/geo/ui/drawerHelper.js +17 -0
  99. data/app/packs/src/decidim/geo/ui/geoIcons.js +9 -0
  100. data/app/packs/src/decidim/geo/ui/index.js +10 -7
  101. data/app/packs/src/decidim/geo/ui/initMap.js +50 -10
  102. data/app/packs/src/decidim/geo/ui/loadEsri.js +29 -0
  103. data/app/packs/src/decidim/geo/ui/mobile/closeFullscreen.js +10 -0
  104. data/app/packs/src/decidim/geo/ui/mobile/openFullscreen.js +34 -0
  105. data/app/packs/src/decidim/geo/ui/mobile/registerMobile.js +47 -0
  106. data/app/packs/src/decidim/geo/ui/nodeMarker.js +18 -0
  107. data/app/packs/src/decidim/geo/ui/taxonomyDropdownItem.js +36 -0
  108. data/app/packs/src/decidim/geo/ui/taxonomyGeoLayer.js +24 -0
  109. data/app/packs/src/decidim/geo/utils/index.js +4 -2
  110. data/app/packs/src/decidim/geo/utils/saveConfig.js +1 -1
  111. data/app/packs/stylesheets/decidim/geo/_geo.scss +5 -2
  112. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_decidimGeo.scss +42 -461
  113. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_drawer_list.scss +356 -0
  114. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_filter_dropdown.scss +175 -0
  115. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_globals.scss +18 -0
  116. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_mixins.scss +52 -0
  117. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_mobile.scss +355 -0
  118. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_override.scss +107 -56
  119. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_pageName.scss +26 -0
  120. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_taxonomy_dropdown.scss +163 -0
  121. data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_zoom_controls.scss +73 -0
  122. data/app/packs/stylesheets/decidim/geo/vendor/_leaflet.scss +677 -0
  123. data/app/packs/stylesheets/decidim/geo/vendor/_leaflet_fullscreen.scss +35 -0
  124. data/app/permissions/decidim/geo/admin/permissions.rb +1 -1
  125. data/app/permissions/decidim/geo/permissions.rb +4 -1
  126. data/app/uploaders/decidim/geo/shapefile_uploader.rb +3 -2
  127. data/app/validators/geocoding_validator.rb +19 -21
  128. data/app/views/decidim/geo/admin/geo_configs/_form.html.erb +132 -35
  129. data/app/views/decidim/geo/admin/geo_configs/show.html.erb +20 -0
  130. data/app/views/decidim/geo/admin/overrides/_location_form.html.erb +27 -0
  131. data/app/views/decidim/geo/admin/shapefiles/_form.html.erb +33 -22
  132. data/app/views/decidim/geo/admin/shapefiles/index.html.erb +44 -26
  133. data/app/views/decidim/geo/admin/shapefiles/new.html.erb +17 -6
  134. data/app/views/decidim/geo/admin/taxonomies_shapedatas/_form.html.erb +10 -0
  135. data/app/views/decidim/geo/admin/taxonomies_shapedatas/edit.html.erb +11 -0
  136. data/app/views/decidim/geo/admin/taxonomies_shapedatas/index.html.erb +98 -0
  137. data/app/views/layouts/decidim/admin/geo/settings.html.erb +5 -0
  138. data/config/assets.rb +5 -4
  139. data/config/i18n-tasks.yml +418 -5
  140. data/config/locales/decidim-geo.de.yml +177 -0
  141. data/config/locales/decidim-geo.en.yml +215 -0
  142. data/config/locales/decidim-geo.fr.yml +177 -0
  143. data/config/locales/decidim-geo.pt.yml +177 -0
  144. data/db/migrate/20221019184712_add_postgis_extension_to_database.rb +3 -1
  145. data/db/migrate/20221025195520_create_decidim_geo.rb +2 -0
  146. data/db/migrate/20231013082325_create_decidim_geo_config.rb +2 -0
  147. data/db/migrate/20231206115531_add_spaces_config_to_decidim_geo_configs.rb +3 -1
  148. data/db/migrate/20240309004347_add_organization_to_shapefiles.rb +3 -1
  149. data/db/migrate/20240326052727_create_space_locations.rb +12 -11
  150. data/db/migrate/20240923091022_decidim_geo_no_indexes.rb +17 -0
  151. data/db/migrate/20240926122427_create_decidim_geo_index.rb +33 -0
  152. data/db/migrate/20241008060901_index_decidim_geo.rb +7 -0
  153. data/db/migrate/20241014122841_add_geo_config_default_filters.rb +7 -0
  154. data/db/migrate/20241016062634_add_focus_zoom_level_config.rb +7 -0
  155. data/db/migrate/20241019233857_add_vector_layer_config.rb +8 -0
  156. data/db/migrate/20250801053801_add_organization_to_geo_models.rb +26 -0
  157. data/db/migrate/20250815091407_create_geo_settings.rb +12 -0
  158. data/db/migrate/20251107143529_replace_geo_enable_with_geo_mode.rb +46 -0
  159. data/db/migrate/20251211103145_add_esri_tile.rb +6 -0
  160. data/db/migrate/20260203145259_decidim_geo_hide_map.rb +32 -0
  161. data/db/migrate/20260429112824_change_decidim_geo_index_dates_to_datetime.rb +8 -0
  162. data/db/migrate/20260515122038_migrate_decidim_scope_types_to_taxonomies.rb +157 -0
  163. data/db/migrate/20260520161309_add_shapefile_geo_config.rb +7 -0
  164. data/db/migrate/20260527085717_add_taxonomy_decidim_geo_index.rb +11 -0
  165. data/db/migrate/20260618120000_migrate_geo_mode_to_toggle.rb +56 -0
  166. data/lib/decidim/api/geo_config_type.rb +5 -6
  167. data/lib/decidim/api/geo_coordinates_type.rb +3 -12
  168. data/lib/decidim/api/geo_datasource_type.rb +19 -138
  169. data/lib/decidim/api/geo_dates_type.rb +4 -6
  170. data/lib/decidim/api/geo_query_extension.rb +15 -7
  171. data/lib/decidim/api/geo_shapedata_type.rb +3 -3
  172. data/lib/decidim/api/geo_shapefile_type.rb +7 -9
  173. data/lib/decidim/api/geo_taxonomy_api_type.rb +21 -0
  174. data/lib/decidim/api/input_filters/assembly_input_filter.rb +1 -2
  175. data/lib/decidim/api/input_filters/geo_datasource_input_filter.rb +2 -3
  176. data/lib/decidim/api/input_filters/geoencoded_input_filter.rb +0 -1
  177. data/lib/decidim/api/input_filters/has_scopeable_input_filter.rb +6 -6
  178. data/lib/decidim/api/input_filters/process_input_filter.rb +1 -2
  179. data/lib/decidim/api/input_filters/resource_type_input_filter.rb +0 -1
  180. data/lib/decidim/api/input_filters/taxonomy_input_filter.rb +12 -0
  181. data/lib/decidim/api/input_filters/time_input_filter.rb +0 -1
  182. data/lib/decidim/api/query_extension.rb +27 -283
  183. data/lib/decidim/api/shapefile_query_extention.rb +6 -3
  184. data/lib/decidim/api/shapefile_type.rb +7 -9
  185. data/lib/decidim/decidim_geo.rb +47 -15
  186. data/lib/decidim/geo/accountability/overrides/accountability_create_command_override.rb +28 -0
  187. data/lib/decidim/geo/accountability/overrides/accountability_update_command_override.rb +22 -0
  188. data/lib/decidim/geo/admin/override_create_scope_type.rb +22 -0
  189. data/lib/decidim/geo/admin/override_update_scope_command.rb +21 -0
  190. data/lib/decidim/geo/admin/override_update_scope_type.rb +21 -0
  191. data/lib/decidim/geo/admin_engine.rb +85 -0
  192. data/lib/decidim/{decidim_geo → geo}/api.rb +2 -5
  193. data/lib/decidim/geo/assembly/overrides/assembly_create_command_override.rb +28 -0
  194. data/lib/decidim/geo/assembly/overrides/assembly_update_command_override.rb +22 -0
  195. data/lib/decidim/geo/component/overrides/component_form_override.rb +23 -0
  196. data/lib/decidim/geo/component/overrides/component_hide_map_attr.rb +17 -0
  197. data/lib/decidim/geo/component/overrides/component_no_index_attr.rb +17 -0
  198. data/lib/decidim/geo/component/overrides/create_component_command_override.rb +36 -0
  199. data/lib/decidim/geo/component/overrides/update_component_command_override.rb +38 -0
  200. data/lib/decidim/geo/content_security_policy.rb +47 -0
  201. data/lib/decidim/geo/engine.rb +200 -0
  202. data/lib/decidim/geo/filters/default_filter.rb +24 -0
  203. data/lib/decidim/geo/filters/generic_filter.rb +31 -0
  204. data/lib/decidim/geo/filters/geo_query.rb +261 -0
  205. data/lib/decidim/geo/forms/geo_space_address_form.rb +47 -0
  206. data/lib/decidim/geo/generic_serializer.rb +205 -0
  207. data/lib/decidim/geo/geo.rb +46 -0
  208. data/lib/decidim/geo/geo_index_methods.rb +147 -0
  209. data/lib/decidim/geo/manifest_registry.rb +63 -0
  210. data/lib/decidim/geo/organization_geo_extensions.rb +25 -0
  211. data/lib/decidim/geo/participatory_space/overrides/has_decidim_geo_location.rb +14 -0
  212. data/lib/decidim/geo/process/overrides/participatory_process_command_override.rb +28 -0
  213. data/lib/decidim/geo/proposal/proposal_filter.rb +28 -0
  214. data/lib/decidim/geo/resource_wrapper.rb +13 -0
  215. data/lib/decidim/geo/shapefile_loader.rb +83 -0
  216. data/lib/decidim/geo/taxonomy/overrides/taxonomy_override.rb +13 -0
  217. data/lib/decidim/{decidim_geo → geo}/test/factories.rb +1 -3
  218. data/lib/decidim/geo/test/geo_configs.rb +19 -0
  219. data/lib/decidim/geo/test/geo_indexes.rb +43 -0
  220. data/lib/decidim/geo/test/shapefiles.rb +11 -0
  221. data/lib/decidim/geo/update_geo_component.rb +39 -0
  222. data/lib/decidim/geo/update_geo_index.rb +65 -0
  223. data/lib/decidim/{decidim_geo → geo}/version.rb +4 -2
  224. data/lib/tasks/decidim_geo_assign_geo_taxonomies_tasks.rake +33 -0
  225. data/lib/tasks/decidim_geo_rebuild_index.rake +27 -0
  226. data/lib/tasks/decidim_geo_termcustomizer_tasks.rake +66 -0
  227. data/lib/tasks/decidim_geo_upgrade_task.rake +16 -0
  228. data/lib/tasks/decidim_geo_webpacker_tasks.rake +9 -10
  229. metadata +248 -122
  230. data/app/commands/decidim/admin/create_scope.rb +0 -56
  231. data/app/commands/decidim/admin/create_scope_type.rb +0 -47
  232. data/app/commands/decidim/admin/update_scope.rb +0 -60
  233. data/app/commands/decidim/admin/update_scope_type.rb +0 -62
  234. data/app/controllers/decidim/admin/scopes_controller.rb +0 -115
  235. data/app/forms/decidim/admin/scope_form.rb +0 -43
  236. data/app/forms/decidim/admin/scope_type_form.rb +0 -27
  237. data/app/helpers/decidim/admin/scopes_helper.rb +0 -72
  238. data/app/jobs/decidim/geo/shp2pgsql_job.rb +0 -14
  239. data/app/models/decidim/debates/debate.rb +0 -226
  240. data/app/models/decidim/scope.rb +0 -111
  241. data/app/models/decidim/scope_type.rb +0 -26
  242. data/app/overrides/decidim/assemblies/admin/assemblies/_form/insert_location_form.html.erb.deface +0 -13
  243. data/app/overrides/decidim/assemblies/assemblies/show/insert_location.html.erb.deface +0 -7
  244. data/app/overrides/decidim/participatory_processes/admin/participatory_processes/_form/insert_location_form.html.erb.deface +0 -13
  245. data/app/overrides/decidim/participatory_processes/participatory_process_groups/show/insert_map.html.erb.deface +0 -6
  246. data/app/overrides/layouts/decidim/_assembly_header/insert_map.html.erb.deface +0 -25
  247. data/app/overrides/layouts/decidim/_process_header/insert_map.html.erb.deface +0 -22
  248. data/app/overrides/layouts/decidim/_wrapper/insert_map.html.erb.deface +0 -5
  249. data/app/overrides/remove_default_meetings_map.rb +0 -4
  250. data/app/overrides/remove_default_proposals_map.rb +0 -4
  251. data/app/packs/src/decidim/geo/models/configStore.js +0 -44
  252. data/app/packs/src/decidim/geo/models/dropdownFilterStore.js +0 -65
  253. data/app/packs/src/decidim/geo/models/filterStore.js +0 -121
  254. data/app/packs/src/decidim/geo/models/geoDatasourceNode/GeoDatasourceNode.js +0 -124
  255. data/app/packs/src/decidim/geo/models/geoDatasourceNode/index.js +0 -1
  256. data/app/packs/src/decidim/geo/models/geoScope/GeoScope.js +0 -128
  257. data/app/packs/src/decidim/geo/models/geoScope/index.js +0 -1
  258. data/app/packs/src/decidim/geo/models/geoStore.js +0 -118
  259. data/app/packs/src/decidim/geo/models/pointStore.js +0 -134
  260. data/app/packs/src/decidim/geo/models/scopeDropdownStore.js +0 -20
  261. data/app/packs/src/decidim/geo/ui/DrawerMenuItem/fallback.js +0 -45
  262. data/app/packs/src/decidim/geo/ui/DrawerMenuItem/meetings.js +0 -62
  263. data/app/packs/src/decidim/geo/ui/createCustomMarker.js +0 -14
  264. data/app/packs/src/decidim/geo/ui/createDomElement.js +0 -2
  265. data/app/packs/src/decidim/geo/ui/createDrawer.js +0 -170
  266. data/app/packs/src/decidim/geo/ui/createDrawerActions.js +0 -197
  267. data/app/packs/src/decidim/geo/ui/createFilterDropdown.js +0 -320
  268. data/app/packs/src/decidim/geo/ui/createGeoScopeLayer.js +0 -20
  269. data/app/packs/src/decidim/geo/ui/createGeoScopeMenuItem.js +0 -8
  270. data/app/packs/src/decidim/geo/ui/createNodeMarker.js +0 -9
  271. data/app/packs/src/decidim/geo/ui/createNodeMenuItem.js +0 -13
  272. data/app/views/decidim/admin/scope_types/_form.html.erb +0 -10
  273. data/app/views/decidim/admin/scope_types/index.html.erb +0 -46
  274. data/app/views/decidim/admin/scopes/_form.html.erb +0 -20
  275. data/app/views/decidim/admin/scopes/index.html.erb +0 -55
  276. data/app/views/decidim/geo/admin/geo_configs/index.html.erb +0 -8
  277. data/app/views/layouts/decidim/decidim_geo/admin/application.html.erb +0 -19
  278. data/config/locales/de.yml +0 -102
  279. data/config/locales/en.yml +0 -108
  280. data/config/locales/fr.yml +0 -102
  281. data/lib/decidim/api/geo_scope_api_type.rb +0 -26
  282. data/lib/decidim/api/input_filters/scope_input_filter.rb +0 -13
  283. data/lib/decidim/decidim_geo/admin_engine.rb +0 -69
  284. data/lib/decidim/decidim_geo/engine.rb +0 -58
  285. data/lib/decidim/decidim_geo/load_shp/app_load_shp.rb +0 -85
  286. data/lib/decidim/decidim_geo/space_location/assembly_create_command_override.rb +0 -26
  287. data/lib/decidim/decidim_geo/space_location/assembly_form_override.rb +0 -33
  288. data/lib/decidim/decidim_geo/space_location/assembly_update_command_override.rb +0 -21
  289. data/lib/decidim/decidim_geo/space_location/participatory_process_command_override.rb +0 -21
  290. data/lib/decidim/decidim_geo/space_location/participatory_process_form_override.rb +0 -33
  291. data/lib/decidim/decidim_geo/space_location/space_override.rb +0 -15
  292. /data/lib/decidim/{decidim_geo → geo}/admin.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3fff663b0c00ffc5bd8e6fca41045134fc1c3578b04afefa6adecaf675f45329
4
- data.tar.gz: 6ed0021e49f2123cf49501336b210baff24d034f24a227c2bb541fe762255722
3
+ metadata.gz: 0c8fd6ca0dfb211b54315cb9bf8043235bc6e07e3afe0a2d6de344a2b2f8f562
4
+ data.tar.gz: 8d8a3b2271838abcc31dc4dde08daf54e7f40dba71cd82e37a1b96482db1a684
5
5
  SHA512:
6
- metadata.gz: 4902ed257c74255621ba468996c4eae3b32bf369fec4f4c5d280d38ae41e47f5adf9ed628d5396cb03de427b1c73a2b36e9685cfcd936b1d4c854cf8ef963f41
7
- data.tar.gz: ebb63d912ce774156e424321bf9b28b5a38fa89f499e3e3347bf2e52d173332244fcf595ca5562079dc5a92b2da6728799aef86c749e9378a57bd8c6f765ae36
6
+ metadata.gz: 0c5150d57349ff8388972ba2bb88adfde2e348ee5db834e13bf3fcf09ffb1aa3d0577ba3f045893efb99104f7b895c26ae98abf400fae3b5050931dc5bbced37
7
+ data.tar.gz: 369c1ba4eb4bc111f43ad6d6af3cb1a9fbbcf489bba7879e5145a9d275178e17bf5ee400b8e2cac6820bbafd7e5755d321aa26be3d4e9d909fbd7b3ed29758b1
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <h1 align="center"><img src="https://github.com/octree-gva/meta/blob/main/decidim/static/header.png?raw=true" alt="Decidim - Octree Participatory democracy on a robust and open source solution" /></h1>
1
+ <h1 align="center"><img src="https://github.com/octree-gva/decidim-geo/blob/main/parners.png?raw=true" alt="Decidim - Octree Participatory democracy on a robust and open source solution" /></h1>
2
2
  <h4 align="center">
3
3
  <a href="https://octreegva.notion.site/Roadmap-Decidim-GEO-f191fcb9e220401f8135514a7bd41aab">Roadmap</a> |
4
4
  <a href="https://drive.google.com/file/d/1lfQJumDg0Ic-RZi-R3MM8frYtKN7PB_S/view?usp=sharing">Presentation</a> |
@@ -11,19 +11,6 @@
11
11
  <a href="https://meta.decidim.org">Participatory Governance (meta decidim)</a><br/><br/>
12
12
  <a href="https://matrix.to/#/+decidim:matrix.org">Decidim Community (Matrix+Element.io)</a>
13
13
  </h4>
14
- <p align="center">
15
- <a href="https://participer.lausanne.ch">
16
- <img
17
- src="https://github.com/octree-gva/meta/blob/main/decidim/static/participer_lausanne/chip.png?raw=true"
18
- alt="Lausanne Participe — Une plateforme de participation pour imaginer et réaliser ensemble" />
19
- </a>
20
- <a href="https://opencollective.com/voca">
21
- <img
22
- src="https://github.com/octree-gva/meta/blob/main/decidim/static/opencollective_chip.png?raw=true"
23
- alt="Voca – Open-Source SaaS platform for Decidim" />
24
- </a>
25
- </p>
26
-
27
14
 
28
15
  # Decidim::Geo
29
16
  Have you ever wondered to centralize all the participation in a map? Well, we do and that is the purpose of Decidim GEO.
@@ -37,10 +24,65 @@ This project is its early stage, and has it is quiet ambicious, we open CO-FUNDI
37
24
  If you are curious on how it started, [we've made some slide to present the project](https://drive.google.com/file/d/1lfQJumDg0Ic-RZi-R3MM8frYtKN7PB_S/view?usp=sharing).
38
25
 
39
26
 
40
- ## How it works?
27
+ ## Features
28
+
29
+ **Link shapes to a scope**<br />
30
+ On the admin side, you can now upload a zip shapefile in the `WGS 84` format.
31
+ Once uploaded, you can assign a scope type to the shapefile.
32
+
33
+ Example of use:
34
+ - Add a shapefile to the admin with the shapes of the city neighborhoods
35
+ - Create a scope type called "neighborhoods"
36
+ - For each neighborhood, create a scope of type "neighborhoods"
37
+ - Link related meetings, assemblies, processes, and proposals to these scopes
38
+ - See the magic: the maps now display the neighborhoods, allowing you to navigate the platform through maps.
39
+
40
+ ---
41
+
42
+ **Homepage block**<br />
43
+ In the homepage settings, you can now drag a Decidim Geo block to display a map
44
+ with all the points of the platform.
45
+ Once the Decidim Geo homepage block is active, the map will provide an entry point to
46
+ navigate through the participatory platform.
47
+
48
+ ---
49
+ **Default map center and zoom**<br />
50
+ You can now customize all Decidim Geo maps at once by defining a default center and zoom level.
51
+ This provides a better experience when loading the map, already having the right perspective to start navigating.
52
+
53
+ To update the map's center and zoom, go to the Geo tab in the administration and click on Configuration.
54
+
55
+ ---
56
+
57
+ **Custom Tiles**<br />
58
+ You can now define custom tiles to change the underlying appearance of the map.
59
+ Displaying custom tiles allows more precise control over what is viewed, and can, for example, increase map contrast for better accessibility.
60
+
61
+ ---
62
+
63
+ **Hide maps when there is nothing to show**<br />
64
+ Maps will be hidden if there is no point to show. For example, a meeting without a location won't display a map in its details.
65
+ Taxonomies that do not contain any data will also be hidden, preventing the user from filtering something when there is no data to display.
66
+
67
+ **Highlight points**<br />
68
+ We've defined some rules to highlight points displayed on the current page:
69
+
70
+ - When you are on a meeting detail page that is geolocated, the current point will be highlighted.
71
+ - When you are on a meeting page, all geolocated points will be highlighted.
72
+
73
+ Same for proposals, debates etc.
74
+
75
+ ---
76
+
77
+ **Discover points around**<br />
78
+ If you have multiple processes linked to the same geolocated scope, points will appear to suggest navigating through the area you are currently in.
79
+
80
+ Imagine the following situation:
81
+ - A participatory budget is running in the neighborhood.
82
+ - In the same neighborhood, another process is gathering projects.
83
+
84
+ From the participatory budget page, you will see all the points in the neighborhood, providing a quick overview of what is happening there.
41
85
 
42
- Postgis can load Shapefiles that can represents anything: neighbourghoods, cities, states, trees, public spaces.
43
- We use this module to map a shape to an application zone, to be able to geo-references all the participatory processes of the platform. This way we can offer better consultation experience, and open new perspective for participation.
44
86
 
45
87
  <img
46
88
  src="https://github.com/octree-gva/meta/blob/main/decidim/static/geo/admin.png?raw=true"
@@ -50,123 +92,24 @@ We use this module to map a shape to an application zone, to be able to geo-refe
50
92
  alt="Administration of the GEO space" />
51
93
 
52
94
 
53
- ## Installation
54
- This gem supports decidim version `0.26.x` and `0.27.x`.
55
-
56
- Read the [needed dependancies for `rgeo` gem](https://github.com/rgeo/rgeo?tab=readme-ov-file#dependencies). If you have `libgeos-dev`, be sure you have a postgis database with postgres > 14.0.
57
-
58
- Add this line to your application's Gemfile:
59
- ```ruby
60
- gem "decidim-decidim_geo"
61
- ```
62
-
63
- Update your database adapter to postgis adapter (already installed as dependancy of this gem):
64
- ```
65
- # config/database.yml
66
- default: &default
67
- adapter: postgis
68
- ```
69
-
70
- Update your `DATABASE_URL` environment with `postgis://`:
71
- ```
72
- DATABASE_URL="postgis://myuser:mypass@localhost/somedatabase"
73
- ```
74
-
75
- And then execute:
76
-
77
- ```bash
78
- bundle
79
- bundle exec rails decidim_geo:install:migrations
80
- bundle exec rails db:migrate
81
- ```
82
-
83
- ## Testing
84
- ```
85
- bundle exec rake test_app
86
- ```
87
-
88
- ## Local development
89
- First, you need to run an empty database with a decidim dev container which runs nothing.
90
- ```
91
- docker-compose down -v --remove-orphans
92
- docker-compose up -d
93
- ```
94
- Once created, you access the decidim container
95
- ```
96
- # Get the id of the decidim dev container
97
- docker ps --format {{.ID}} --filter=label=org.label-schema.name=decidim
98
- # f16bd5314386
99
- docker exec -it f16bd5314386 bash
100
- ```
101
- You are now in bash, run manually `docker-entrypoint`.
102
- ```
103
- # Will check your environment and do migrations if needed
104
- docker-entrypoint
105
- ```
106
- You are now ready to use your container in the way you want for development:
107
-
108
- * Run a rails server: `bundle exec rails s -b 0.0.0.0`
109
- * Have live-reload on your assets: `bin/webpack-dev-server`
110
- * Execute tasks, like `bundle exec rails g migration AddSomeColumn`
111
- * etc.
112
- ```
113
- bundle exec rails s -b 0.0.0.0 # rails server
114
- bin/webpack-dev-server
115
- etc.
116
- ```
117
-
118
- To stop everything, uses:
119
- - `docker-compose down` to stop the containers
120
- - `docker-compose down -v` to stop the containers and remove all previously saved data.
121
-
122
- ### Debugging
123
- To debug something on the container:
124
- 1. Ensure `decidim-app` is running
125
- ```bash
126
- docker ps --all
127
- # CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
128
- # f16bd5314386 decidim-geo-development-app "sleep infinity" 13 hours ago Up 13 hours 0.0.0.0:3000->3000/tcp, 0.0.0.0:3035->3035/tcp decidim-app <-------- THIS ONE
129
- # b56adf6404d8 decidim-geo-development-app "bin/webpack-dev-ser…" 54 seconds ago Up 46 seconds 0.0.0.0:3035->3035/tcp decidim-webpacker decidim-installer
130
- # bc1e912c3d8a postgis/postgis:14-3.3-alpine "docker-entrypoint.s…" 13 hours ago Up 13 hours 0.0.0.0:5432->5432/tcp decidim-module-geo-pg-1
131
- ```
132
-
133
- 2. Run `docker exec -it decidim-app bash`
134
- 3. Run
135
- - `tail -f $ROOT/log/development.log` to **access logs**
136
- - `bundle exec rails restart` to **restart rails server AND keeps webpacker running**
137
- - `cd $ROOT` to access the `development_app`
138
- - `cd $ROOT/../decidim_module_geo` to access the module directory
139
-
140
- ### FAQ
141
-
142
- **I can't see logs on the `decidim-app`?**
143
- `decidim-app` runs here in development `webpacker-dev-server` AND a puma server, on the same container.
144
- Thus, we just run both, and only one will be displayed on STDOUT. To see puma log: `docker exec decidim-app tail -f /home/app/decidim/log/development.log`
145
-
146
- **It takes for ever to pull the image?**
147
- Try to pull from docker hub before doing your install script. `docker pull hfroger/decidim:0.26.8-dev` can help.
148
-
149
- **Why must I access to `127.0.0.1` and not `localhost`?**
150
- `webpack-dev-server` run a websocket server on port 3535, and the rails server needs to connect to it.
151
- `localhost` won't make the trick, and you need to use a "real" ip, like `127.0.0.1`. [More info](https://stackoverflow.com/a/54102318)
152
-
153
- ## Contributing
154
-
155
- We are not yet ready for contributions, but we are working on a goood workflow
156
-
157
- # Why it's not on MetaDecidim?
158
- We think Decidim is already over complicated to install and setup. This module uses PosGis extensions on a postgres database, that can be hard to install. We block the proposal to metadecidim until these points are solved:
159
-
160
- - We have stable release.
161
- - We have feedbacks from participants that it is actually usefull.
162
- - We have feedbacks from Decidim's admins that this is actually improving participation.
163
- - Decidim run primarly on docker, with an updated documentation on installation. (We, at Octree is working on it for a while)
95
+ ## Documentation
96
+ You can consult our documentation on the [decidim-geo documentation website](https://octree-gva.github.io/decidim-module-geo/)
97
+
98
+ ## Contributions
99
+
100
+ New ideas are welcome on our [feedback page](https://feedback.voca.city/?tags=decidim-geo). We manage there co-financing and release planning.
101
+ For technical aspects (contributions, code, issues), take a look at our [gitlab](https://git.octree.ch/decidim/decidim-module-geo).
164
102
 
165
103
  ## License
166
104
 
167
105
  This engine is distributed under the [GNU AFFERO GENERAL PUBLIC LICENSE](LICENSE-AGPLv3.txt)
168
106
 
169
107
  <br /><br />
108
+
109
+ <h3 align="center">With the support of</h3>
170
110
  <p align="center">
171
- <img src="https://raw.githubusercontent.com/octree-gva/meta/main/decidim/static/octree_and_decidim.png" height="90" alt="Decidim Installation by Octree" />
111
+ <img
112
+ src="https://git.octree.ch/decidim/decidim-module-geo/-/raw/main/partners.png?raw=true"
113
+ alt="Lausanne Participe — Une plateforme de participation pour imaginer et réaliser ensemble" />
172
114
  </p>
115
+
data/Rakefile CHANGED
@@ -4,7 +4,10 @@ require "decidim/dev/common_rake"
4
4
 
5
5
  def install_module(path)
6
6
  Dir.chdir(path) do
7
- system("bundle exec rake decidim_geo:install:migrations")
7
+ Bundler.with_unbundled_env do
8
+ sh "bundle exec rails decidim_toggle:install:migrations"
9
+ end
10
+ system("bundle exec rails decidim:update")
8
11
  end
9
12
  end
10
13
 
@@ -21,16 +24,17 @@ end
21
24
  desc "Prepare for testing"
22
25
  task :prepare_tests do
23
26
  # Remove previous existing db, and recreate one.
24
- Dir.chdir("development_app") do
25
- system("bundle exec rake db:drop")
26
- system("bundle exec rake db:create")
27
+ Dir.chdir("spec/decidim_dummy_app") do
28
+ Bundler.with_unbundled_env do
29
+ sh "env BUNDLE_GEMFILE=#{File.expand_path("Gemfile", __dir__)} RAILS_ENV=test DISABLE_SPRING=1 bundle exec rails db:drop db:create"
30
+ end
27
31
  end
28
32
  ENV["RAILS_ENV"] = "test"
29
- databaseYml = {
33
+ database_yml = {
30
34
  "test" => {
31
35
  "adapter" => "postgis",
32
36
  "encoding" => "unicode",
33
- "host" => ENV.fetch("DATABASE_HOST", "localhost"),
37
+ "host" => ENV.fetch("DATABASE_HOST", "pg"),
34
38
  "port" => ENV.fetch("DATABASE_PORT", "5432").to_i,
35
39
  "username" => ENV.fetch("DATABASE_USERNAME", "decidim"),
36
40
  "password" => ENV.fetch("DATABASE_PASSWORD", "insecure-password"),
@@ -38,27 +42,30 @@ task :prepare_tests do
38
42
  }
39
43
  }
40
44
  config_file = File.expand_path("spec/decidim_dummy_app/config/database.yml", __dir__)
41
- File.open(config_file, "w") { |f| YAML.dump(databaseYml, f) }
45
+ File.open(config_file, "w") { |f| YAML.dump(database_yml, f) }
42
46
  Dir.chdir("spec/decidim_dummy_app") do
43
- system("bundle exec rails db:migrate")
44
- end
47
+ Bundler.with_unbundled_env do
48
+ sh "env BUNDLE_GEMFILE=#{File.expand_path("Gemfile", __dir__)} RAILS_ENV=test DISABLE_SPRING=1 bundle exec rails db:migrate"
49
+ end
50
+ end
45
51
  end
46
52
 
47
53
  desc "Generates a decidim_dummy_app app for testing"
48
54
  task :test_app do
55
+ ENV["DISABLE_SPRING"] = "true"
49
56
  Bundler.with_original_env do
50
57
  generate_decidim_app(
51
58
  "spec/decidim_dummy_app",
52
- "--app_name",
53
- "#{base_app_name}",
54
- "--path",
55
- "../..",
56
- "--skip_spring",
57
- "--demo",
58
- "--force_ssl",
59
- "false",
60
- "--locales",
61
- "en,fr,es"
59
+ "--app_name",
60
+ base_app_name.to_s,
61
+ "--path",
62
+ "../..",
63
+ "--skip_spring",
64
+ "--demo",
65
+ "--force_ssl",
66
+ "false",
67
+ "--locales",
68
+ "en,fr,es"
62
69
  )
63
70
  end
64
71
  install_module("spec/decidim_dummy_app")
@@ -77,7 +84,7 @@ task :prepare_dev do
77
84
  system("bundle exec rake db:create")
78
85
  end
79
86
  ENV["RAILS_ENV"] = "development"
80
- databaseYml = {
87
+ database_yml = {
81
88
  "development" => {
82
89
  "adapter" => "postgis",
83
90
  "encoding" => "unicode",
@@ -85,14 +92,13 @@ task :prepare_dev do
85
92
  "port" => ENV.fetch("DATABASE_PORT", "5432").to_i,
86
93
  "username" => ENV.fetch("DATABASE_USERNAME", "decidim"),
87
94
  "password" => ENV.fetch("DATABASE_PASSWORD", "insecure-password"),
88
- "database" => "#{base_app_name}_development",
95
+ "database" => "#{base_app_name}_development"
89
96
  }
90
97
  }
91
98
  config_file = File.expand_path("development_app/config/database.yml", __dir__)
92
- File.open(config_file, "w") { |f| YAML.dump(databaseYml, f) }
99
+ File.open(config_file, "w") { |f| YAML.dump(database_yml, f) }
93
100
  Dir.chdir("development_app") do
94
101
  system("bundle exec rake db:migrate")
95
- system("npm install -D webpack-dev-server")
96
102
  end
97
103
  end
98
104
 
@@ -102,7 +108,7 @@ task :development_app do
102
108
  generate_decidim_app(
103
109
  "development_app",
104
110
  "--app_name",
105
- "#{base_app_name}",
111
+ base_app_name.to_s,
106
112
  "recreate_db",
107
113
  "--path",
108
114
  "..",
@@ -1,15 +1,14 @@
1
- <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.2/dist/leaflet.css" integrity="sha256-sA+zWATbFveLLNqWO2gtiw3HL/lh1giY/Inf1BJ0z14=" crossorigin="">
2
- <script src="https://unpkg.com/leaflet@1.9.2/dist/leaflet.js" integrity="sha256-o9N1jGDZrf5tS+Ft4gbIK7mYMipq9lqpVJ91xHSyKhg=" crossorigin=""></script>
1
+ <%= content_tag :div, "",
2
+ id: "Geo#{id}",
3
+ class: [
4
+ "decidimGeo__container",
5
+ options[:container_classnames] || "",
6
+ "decidimGeo__container--" + params[:controller].split("/").last.underscore,
7
+ options[:id].present? ? "decidimGeo__container--#{options[:id].underscore}" : ""
8
+ ] do %>
9
+ <div class="decidimGeo__mobile_btn__mobile_btn">
10
+ <span><%= t("decidim.geo.mobile.open_fullscreen") %></span>
11
+ </div>
12
+ <%= insert_map %>
13
+ <% end %>
3
14
 
4
- <style>
5
- .decidimgeo__map {
6
- height: 640px;
7
- width: 100%;
8
- max-width: 100%;
9
- max-height: 100%;
10
- }
11
- </style>
12
-
13
- <%= javascript_pack_tag "decidim_geo" %>
14
-
15
- <%= insert_map %>