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.
- checksums.yaml +4 -4
- data/README.md +72 -129
- data/Rakefile +30 -24
- data/app/cells/decidim/geo/content_blocks/geo_maps/show.erb +13 -14
- data/app/cells/decidim/geo/content_blocks/geo_maps_cell.rb +216 -93
- data/app/cells/decidim/geo/content_blocks/geo_maps_settings_form_cell.rb +3 -2
- data/app/cells/decidim/geo/content_blocks/group_geo_maps_cell.rb +20 -0
- data/app/cells/decidim/geo/content_blocks/space_geo_maps_cell.rb +15 -0
- data/app/cells/decidim/geo/geo_collection_map/show.erb +1 -4
- data/app/cells/decidim/geo/geo_collection_map_cell.rb +45 -31
- data/app/commands/decidim/geo/admin/create_shapefile.rb +4 -7
- data/app/commands/decidim/geo/admin/update_geo_config.rb +27 -6
- data/app/commands/decidim/geo/admin/update_shapedata_taxonomy.rb +49 -0
- data/app/commands/decidim/geo/command.rb +1 -1
- data/app/controllers/decidim/geo/admin/application_controller.rb +3 -4
- data/app/controllers/decidim/geo/admin/geo_configs_controller.rb +37 -10
- data/app/controllers/decidim/geo/admin/shapefiles_controller.rb +6 -8
- data/app/controllers/decidim/geo/admin/taxonomies_shapedatas_controller.rb +76 -0
- data/app/controllers/decidim/geo/api_controller.rb +7 -0
- data/app/controllers/decidim/geo/application_controller.rb +1 -1
- data/app/controllers/decidim/geo/points_controller.rb +131 -0
- data/app/controllers/decidim/geo/shapefile_controller.rb +1 -3
- data/app/forms/decidim/geo/admin/geo_config_form.rb +20 -1
- data/app/forms/decidim/geo/admin/organization_config_form.rb +33 -0
- data/app/forms/decidim/geo/admin/shapefile_form.rb +2 -2
- data/app/forms/decidim/geo/admin/taxonomy_shapedata_form.rb +13 -0
- data/app/jobs/decidim/geo/automatic_taxonomy_job.rb +115 -0
- data/app/jobs/decidim/geo/update_accountability_geo_index_job.rb +48 -0
- data/app/jobs/decidim/geo/update_assembly_geo_index_job.rb +49 -0
- data/app/jobs/decidim/geo/update_debate_geo_index_job.rb +48 -0
- data/app/jobs/decidim/geo/update_meeting_geo_index_job.rb +50 -0
- data/app/jobs/decidim/geo/update_process_geo_index_job.rb +49 -0
- data/app/jobs/decidim/geo/update_proposal_geo_index_job.rb +48 -0
- data/app/models/decidim/geo/geo_config.rb +19 -11
- data/app/models/decidim/geo/hide_map.rb +12 -0
- data/app/models/decidim/geo/index.rb +39 -0
- data/app/models/decidim/geo/no_index.rb +16 -0
- data/app/models/decidim/geo/shapedata.rb +15 -4
- data/app/models/decidim/geo/shapefile.rb +12 -9
- data/app/models/decidim/geo/space_location.rb +12 -9
- data/app/overrides/add_assembly_map.rb +18 -0
- data/app/overrides/add_geo_scripts.rb +24 -0
- data/app/overrides/add_process_admin_location_form.rb +8 -0
- data/app/overrides/add_processes_map.rb +19 -0
- data/app/overrides/add_resource_item_map.rb +32 -0
- data/app/overrides/admin_accountabilities.rb +34 -0
- data/app/overrides/admin_assemblies.rb +10 -0
- data/app/overrides/admin_attrs_component.rb +33 -0
- data/app/overrides/hide_maps_enabled_attribute.rb +18 -0
- data/app/overrides/replace_accountability_map.rb +36 -0
- data/app/overrides/replace_default_content_block.rb +15 -0
- data/app/overrides/replace_default_meetings_map.rb +41 -0
- data/app/overrides/replace_default_proposals_map.rb +37 -0
- data/app/packs/entrypoints/decidim_geo.js +0 -1
- data/app/packs/entrypoints/decidim_geo_vendor.js +4 -0
- data/app/packs/entrypoints/decidim_geo_vendors.js +4 -0
- data/app/packs/images/decidim/geo/fullscreen.svg +10 -0
- data/app/packs/images/decidim/geo/geolocated.svg +17 -0
- data/app/packs/images/decidim/geo/not-geolocated.svg +7 -3
- data/app/packs/src/decidim/geo/api/countGeoDataSource.js +35 -0
- data/app/packs/src/decidim/geo/api/getFirstGeoDataSource.js +20 -0
- data/app/packs/src/decidim/geo/api/getGeoDataSource.js +72 -0
- data/app/packs/src/decidim/geo/api/gql.js +76 -0
- data/app/packs/src/decidim/geo/api/index.js +4 -51
- data/app/packs/src/decidim/geo/api/makeQuery.js +16 -0
- data/app/packs/src/decidim/geo/api/queries.js +5 -76
- data/app/packs/src/decidim/geo/index.js +167 -54
- data/app/packs/src/decidim/geo/leaflet.js +7 -0
- data/app/packs/src/decidim/geo/models/GeoDatasourceNode.js +190 -0
- data/app/packs/src/decidim/geo/models/GeoTaxonomy.js +182 -0
- data/app/packs/src/decidim/geo/stores/configStore.js +86 -0
- data/app/packs/src/decidim/geo/stores/dropdownFilterStore.js +240 -0
- data/app/packs/src/decidim/geo/stores/filterStore.js +218 -0
- data/app/packs/src/decidim/geo/stores/geoStore.js +135 -0
- data/app/packs/src/decidim/geo/stores/hashStore.js +34 -0
- data/app/packs/src/decidim/geo/stores/memoryStore.js +48 -0
- data/app/packs/src/decidim/geo/stores/pointCounterStore.js +46 -0
- data/app/packs/src/decidim/geo/stores/pointStore.js +189 -0
- data/app/packs/src/decidim/geo/ui/AsideToggle.js +107 -0
- data/app/packs/src/decidim/geo/ui/Drawer.js +205 -0
- data/app/packs/src/decidim/geo/ui/DrawerDetail/fallback.js +50 -17
- data/app/packs/src/decidim/geo/ui/DrawerDetail/meetings.js +48 -23
- data/app/packs/src/decidim/geo/ui/DrawerHeader.js +313 -0
- data/app/packs/src/decidim/geo/ui/DrawerListItem/fallback.js +94 -0
- data/app/packs/src/decidim/geo/ui/{DrawerMenuItem → DrawerListItem}/index.js +1 -0
- data/app/packs/src/decidim/geo/ui/DrawerListItem/item.js +17 -0
- data/app/packs/src/decidim/geo/ui/DrawerListItem/meetings.js +122 -0
- data/app/packs/src/decidim/geo/ui/DrawerListItem/proposals.js +89 -0
- data/app/packs/src/decidim/geo/ui/FilterButton.js +111 -0
- data/app/packs/src/decidim/geo/ui/FilterControl.js +43 -0
- data/app/packs/src/decidim/geo/ui/FilterModal.js +318 -0
- data/app/packs/src/decidim/geo/ui/FilterModalHelpText.js +71 -0
- data/app/packs/src/decidim/geo/ui/FilterModalOverlay.js +44 -0
- data/app/packs/src/decidim/geo/ui/PageNameControl.js +34 -0
- data/app/packs/src/decidim/geo/ui/aside.js +57 -0
- data/app/packs/src/decidim/geo/ui/customArrowMarker.js +25 -0
- data/app/packs/src/decidim/geo/ui/customMarker.js +20 -0
- data/app/packs/src/decidim/geo/ui/drawerHelper.js +17 -0
- data/app/packs/src/decidim/geo/ui/geoIcons.js +9 -0
- data/app/packs/src/decidim/geo/ui/index.js +10 -7
- data/app/packs/src/decidim/geo/ui/initMap.js +50 -10
- data/app/packs/src/decidim/geo/ui/loadEsri.js +29 -0
- data/app/packs/src/decidim/geo/ui/mobile/closeFullscreen.js +10 -0
- data/app/packs/src/decidim/geo/ui/mobile/openFullscreen.js +34 -0
- data/app/packs/src/decidim/geo/ui/mobile/registerMobile.js +47 -0
- data/app/packs/src/decidim/geo/ui/nodeMarker.js +18 -0
- data/app/packs/src/decidim/geo/ui/taxonomyDropdownItem.js +36 -0
- data/app/packs/src/decidim/geo/ui/taxonomyGeoLayer.js +24 -0
- data/app/packs/src/decidim/geo/utils/index.js +4 -2
- data/app/packs/src/decidim/geo/utils/saveConfig.js +1 -1
- data/app/packs/stylesheets/decidim/geo/_geo.scss +5 -2
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_decidimGeo.scss +42 -461
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_drawer_list.scss +356 -0
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_filter_dropdown.scss +175 -0
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_globals.scss +18 -0
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_mixins.scss +52 -0
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_mobile.scss +355 -0
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_override.scss +107 -56
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_pageName.scss +26 -0
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_taxonomy_dropdown.scss +163 -0
- data/app/packs/stylesheets/decidim/geo/geo/_decidim_geo_zoom_controls.scss +73 -0
- data/app/packs/stylesheets/decidim/geo/vendor/_leaflet.scss +677 -0
- data/app/packs/stylesheets/decidim/geo/vendor/_leaflet_fullscreen.scss +35 -0
- data/app/permissions/decidim/geo/admin/permissions.rb +1 -1
- data/app/permissions/decidim/geo/permissions.rb +4 -1
- data/app/uploaders/decidim/geo/shapefile_uploader.rb +3 -2
- data/app/validators/geocoding_validator.rb +19 -21
- data/app/views/decidim/geo/admin/geo_configs/_form.html.erb +132 -35
- data/app/views/decidim/geo/admin/geo_configs/show.html.erb +20 -0
- data/app/views/decidim/geo/admin/overrides/_location_form.html.erb +27 -0
- data/app/views/decidim/geo/admin/shapefiles/_form.html.erb +33 -22
- data/app/views/decidim/geo/admin/shapefiles/index.html.erb +44 -26
- data/app/views/decidim/geo/admin/shapefiles/new.html.erb +17 -6
- data/app/views/decidim/geo/admin/taxonomies_shapedatas/_form.html.erb +10 -0
- data/app/views/decidim/geo/admin/taxonomies_shapedatas/edit.html.erb +11 -0
- data/app/views/decidim/geo/admin/taxonomies_shapedatas/index.html.erb +98 -0
- data/app/views/layouts/decidim/admin/geo/settings.html.erb +5 -0
- data/config/assets.rb +5 -4
- data/config/i18n-tasks.yml +418 -5
- data/config/locales/decidim-geo.de.yml +177 -0
- data/config/locales/decidim-geo.en.yml +215 -0
- data/config/locales/decidim-geo.fr.yml +177 -0
- data/config/locales/decidim-geo.pt.yml +177 -0
- data/db/migrate/20221019184712_add_postgis_extension_to_database.rb +3 -1
- data/db/migrate/20221025195520_create_decidim_geo.rb +2 -0
- data/db/migrate/20231013082325_create_decidim_geo_config.rb +2 -0
- data/db/migrate/20231206115531_add_spaces_config_to_decidim_geo_configs.rb +3 -1
- data/db/migrate/20240309004347_add_organization_to_shapefiles.rb +3 -1
- data/db/migrate/20240326052727_create_space_locations.rb +12 -11
- data/db/migrate/20240923091022_decidim_geo_no_indexes.rb +17 -0
- data/db/migrate/20240926122427_create_decidim_geo_index.rb +33 -0
- data/db/migrate/20241008060901_index_decidim_geo.rb +7 -0
- data/db/migrate/20241014122841_add_geo_config_default_filters.rb +7 -0
- data/db/migrate/20241016062634_add_focus_zoom_level_config.rb +7 -0
- data/db/migrate/20241019233857_add_vector_layer_config.rb +8 -0
- data/db/migrate/20250801053801_add_organization_to_geo_models.rb +26 -0
- data/db/migrate/20250815091407_create_geo_settings.rb +12 -0
- data/db/migrate/20251107143529_replace_geo_enable_with_geo_mode.rb +46 -0
- data/db/migrate/20251211103145_add_esri_tile.rb +6 -0
- data/db/migrate/20260203145259_decidim_geo_hide_map.rb +32 -0
- data/db/migrate/20260429112824_change_decidim_geo_index_dates_to_datetime.rb +8 -0
- data/db/migrate/20260515122038_migrate_decidim_scope_types_to_taxonomies.rb +157 -0
- data/db/migrate/20260520161309_add_shapefile_geo_config.rb +7 -0
- data/db/migrate/20260527085717_add_taxonomy_decidim_geo_index.rb +11 -0
- data/db/migrate/20260618120000_migrate_geo_mode_to_toggle.rb +56 -0
- data/lib/decidim/api/geo_config_type.rb +5 -6
- data/lib/decidim/api/geo_coordinates_type.rb +3 -12
- data/lib/decidim/api/geo_datasource_type.rb +19 -138
- data/lib/decidim/api/geo_dates_type.rb +4 -6
- data/lib/decidim/api/geo_query_extension.rb +15 -7
- data/lib/decidim/api/geo_shapedata_type.rb +3 -3
- data/lib/decidim/api/geo_shapefile_type.rb +7 -9
- data/lib/decidim/api/geo_taxonomy_api_type.rb +21 -0
- data/lib/decidim/api/input_filters/assembly_input_filter.rb +1 -2
- data/lib/decidim/api/input_filters/geo_datasource_input_filter.rb +2 -3
- data/lib/decidim/api/input_filters/geoencoded_input_filter.rb +0 -1
- data/lib/decidim/api/input_filters/has_scopeable_input_filter.rb +6 -6
- data/lib/decidim/api/input_filters/process_input_filter.rb +1 -2
- data/lib/decidim/api/input_filters/resource_type_input_filter.rb +0 -1
- data/lib/decidim/api/input_filters/taxonomy_input_filter.rb +12 -0
- data/lib/decidim/api/input_filters/time_input_filter.rb +0 -1
- data/lib/decidim/api/query_extension.rb +27 -283
- data/lib/decidim/api/shapefile_query_extention.rb +6 -3
- data/lib/decidim/api/shapefile_type.rb +7 -9
- data/lib/decidim/decidim_geo.rb +47 -15
- data/lib/decidim/geo/accountability/overrides/accountability_create_command_override.rb +28 -0
- data/lib/decidim/geo/accountability/overrides/accountability_update_command_override.rb +22 -0
- data/lib/decidim/geo/admin/override_create_scope_type.rb +22 -0
- data/lib/decidim/geo/admin/override_update_scope_command.rb +21 -0
- data/lib/decidim/geo/admin/override_update_scope_type.rb +21 -0
- data/lib/decidim/geo/admin_engine.rb +85 -0
- data/lib/decidim/{decidim_geo → geo}/api.rb +2 -5
- data/lib/decidim/geo/assembly/overrides/assembly_create_command_override.rb +28 -0
- data/lib/decidim/geo/assembly/overrides/assembly_update_command_override.rb +22 -0
- data/lib/decidim/geo/component/overrides/component_form_override.rb +23 -0
- data/lib/decidim/geo/component/overrides/component_hide_map_attr.rb +17 -0
- data/lib/decidim/geo/component/overrides/component_no_index_attr.rb +17 -0
- data/lib/decidim/geo/component/overrides/create_component_command_override.rb +36 -0
- data/lib/decidim/geo/component/overrides/update_component_command_override.rb +38 -0
- data/lib/decidim/geo/content_security_policy.rb +47 -0
- data/lib/decidim/geo/engine.rb +200 -0
- data/lib/decidim/geo/filters/default_filter.rb +24 -0
- data/lib/decidim/geo/filters/generic_filter.rb +31 -0
- data/lib/decidim/geo/filters/geo_query.rb +261 -0
- data/lib/decidim/geo/forms/geo_space_address_form.rb +47 -0
- data/lib/decidim/geo/generic_serializer.rb +205 -0
- data/lib/decidim/geo/geo.rb +46 -0
- data/lib/decidim/geo/geo_index_methods.rb +147 -0
- data/lib/decidim/geo/manifest_registry.rb +63 -0
- data/lib/decidim/geo/organization_geo_extensions.rb +25 -0
- data/lib/decidim/geo/participatory_space/overrides/has_decidim_geo_location.rb +14 -0
- data/lib/decidim/geo/process/overrides/participatory_process_command_override.rb +28 -0
- data/lib/decidim/geo/proposal/proposal_filter.rb +28 -0
- data/lib/decidim/geo/resource_wrapper.rb +13 -0
- data/lib/decidim/geo/shapefile_loader.rb +83 -0
- data/lib/decidim/geo/taxonomy/overrides/taxonomy_override.rb +13 -0
- data/lib/decidim/{decidim_geo → geo}/test/factories.rb +1 -3
- data/lib/decidim/geo/test/geo_configs.rb +19 -0
- data/lib/decidim/geo/test/geo_indexes.rb +43 -0
- data/lib/decidim/geo/test/shapefiles.rb +11 -0
- data/lib/decidim/geo/update_geo_component.rb +39 -0
- data/lib/decidim/geo/update_geo_index.rb +65 -0
- data/lib/decidim/{decidim_geo → geo}/version.rb +4 -2
- data/lib/tasks/decidim_geo_assign_geo_taxonomies_tasks.rake +33 -0
- data/lib/tasks/decidim_geo_rebuild_index.rake +27 -0
- data/lib/tasks/decidim_geo_termcustomizer_tasks.rake +66 -0
- data/lib/tasks/decidim_geo_upgrade_task.rake +16 -0
- data/lib/tasks/decidim_geo_webpacker_tasks.rake +9 -10
- metadata +248 -122
- data/app/commands/decidim/admin/create_scope.rb +0 -56
- data/app/commands/decidim/admin/create_scope_type.rb +0 -47
- data/app/commands/decidim/admin/update_scope.rb +0 -60
- data/app/commands/decidim/admin/update_scope_type.rb +0 -62
- data/app/controllers/decidim/admin/scopes_controller.rb +0 -115
- data/app/forms/decidim/admin/scope_form.rb +0 -43
- data/app/forms/decidim/admin/scope_type_form.rb +0 -27
- data/app/helpers/decidim/admin/scopes_helper.rb +0 -72
- data/app/jobs/decidim/geo/shp2pgsql_job.rb +0 -14
- data/app/models/decidim/debates/debate.rb +0 -226
- data/app/models/decidim/scope.rb +0 -111
- data/app/models/decidim/scope_type.rb +0 -26
- data/app/overrides/decidim/assemblies/admin/assemblies/_form/insert_location_form.html.erb.deface +0 -13
- data/app/overrides/decidim/assemblies/assemblies/show/insert_location.html.erb.deface +0 -7
- data/app/overrides/decidim/participatory_processes/admin/participatory_processes/_form/insert_location_form.html.erb.deface +0 -13
- data/app/overrides/decidim/participatory_processes/participatory_process_groups/show/insert_map.html.erb.deface +0 -6
- data/app/overrides/layouts/decidim/_assembly_header/insert_map.html.erb.deface +0 -25
- data/app/overrides/layouts/decidim/_process_header/insert_map.html.erb.deface +0 -22
- data/app/overrides/layouts/decidim/_wrapper/insert_map.html.erb.deface +0 -5
- data/app/overrides/remove_default_meetings_map.rb +0 -4
- data/app/overrides/remove_default_proposals_map.rb +0 -4
- data/app/packs/src/decidim/geo/models/configStore.js +0 -44
- data/app/packs/src/decidim/geo/models/dropdownFilterStore.js +0 -65
- data/app/packs/src/decidim/geo/models/filterStore.js +0 -121
- data/app/packs/src/decidim/geo/models/geoDatasourceNode/GeoDatasourceNode.js +0 -124
- data/app/packs/src/decidim/geo/models/geoDatasourceNode/index.js +0 -1
- data/app/packs/src/decidim/geo/models/geoScope/GeoScope.js +0 -128
- data/app/packs/src/decidim/geo/models/geoScope/index.js +0 -1
- data/app/packs/src/decidim/geo/models/geoStore.js +0 -118
- data/app/packs/src/decidim/geo/models/pointStore.js +0 -134
- data/app/packs/src/decidim/geo/models/scopeDropdownStore.js +0 -20
- data/app/packs/src/decidim/geo/ui/DrawerMenuItem/fallback.js +0 -45
- data/app/packs/src/decidim/geo/ui/DrawerMenuItem/meetings.js +0 -62
- data/app/packs/src/decidim/geo/ui/createCustomMarker.js +0 -14
- data/app/packs/src/decidim/geo/ui/createDomElement.js +0 -2
- data/app/packs/src/decidim/geo/ui/createDrawer.js +0 -170
- data/app/packs/src/decidim/geo/ui/createDrawerActions.js +0 -197
- data/app/packs/src/decidim/geo/ui/createFilterDropdown.js +0 -320
- data/app/packs/src/decidim/geo/ui/createGeoScopeLayer.js +0 -20
- data/app/packs/src/decidim/geo/ui/createGeoScopeMenuItem.js +0 -8
- data/app/packs/src/decidim/geo/ui/createNodeMarker.js +0 -9
- data/app/packs/src/decidim/geo/ui/createNodeMenuItem.js +0 -13
- data/app/views/decidim/admin/scope_types/_form.html.erb +0 -10
- data/app/views/decidim/admin/scope_types/index.html.erb +0 -46
- data/app/views/decidim/admin/scopes/_form.html.erb +0 -20
- data/app/views/decidim/admin/scopes/index.html.erb +0 -55
- data/app/views/decidim/geo/admin/geo_configs/index.html.erb +0 -8
- data/app/views/layouts/decidim/decidim_geo/admin/application.html.erb +0 -19
- data/config/locales/de.yml +0 -102
- data/config/locales/en.yml +0 -108
- data/config/locales/fr.yml +0 -102
- data/lib/decidim/api/geo_scope_api_type.rb +0 -26
- data/lib/decidim/api/input_filters/scope_input_filter.rb +0 -13
- data/lib/decidim/decidim_geo/admin_engine.rb +0 -69
- data/lib/decidim/decidim_geo/engine.rb +0 -58
- data/lib/decidim/decidim_geo/load_shp/app_load_shp.rb +0 -85
- data/lib/decidim/decidim_geo/space_location/assembly_create_command_override.rb +0 -26
- data/lib/decidim/decidim_geo/space_location/assembly_form_override.rb +0 -33
- data/lib/decidim/decidim_geo/space_location/assembly_update_command_override.rb +0 -21
- data/lib/decidim/decidim_geo/space_location/participatory_process_command_override.rb +0 -21
- data/lib/decidim/decidim_geo/space_location/participatory_process_form_override.rb +0 -33
- data/lib/decidim/decidim_geo/space_location/space_override.rb +0 -15
- /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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0c8fd6ca0dfb211b54315cb9bf8043235bc6e07e3afe0a2d6de344a2b2f8f562
|
|
4
|
+
data.tar.gz: 8d8a3b2271838abcc31dc4dde08daf54e7f40dba71cd82e37a1b96482db1a684
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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/
|
|
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
|
-
##
|
|
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
|
-
##
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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("
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
33
|
+
database_yml = {
|
|
30
34
|
"test" => {
|
|
31
35
|
"adapter" => "postgis",
|
|
32
36
|
"encoding" => "unicode",
|
|
33
|
-
"host" => ENV.fetch("DATABASE_HOST", "
|
|
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(
|
|
45
|
+
File.open(config_file, "w") { |f| YAML.dump(database_yml, f) }
|
|
42
46
|
Dir.chdir("spec/decidim_dummy_app") do
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
111
|
+
base_app_name.to_s,
|
|
106
112
|
"recreate_db",
|
|
107
113
|
"--path",
|
|
108
114
|
"..",
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 %>
|