Skip to content

Commit

Permalink
Merge tag '2023-06-06-01' into feature/import-2023-06-06
Browse files Browse the repository at this point in the history
# Conflicts:
#	app/views/administrateurs/procedures/_informations.html.haml
#	db/schema.rb
  • Loading branch information
maatinito committed Aug 25, 2023
2 parents ff34231 + c85f70c commit 8243788
Show file tree
Hide file tree
Showing 35 changed files with 1,450 additions and 255 deletions.
1 change: 0 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ gem 'rails-i18n' # Locales par défaut
gem 'rake-progressbar', require: false
gem 'redcarpet'
gem 'rexml' # add missing gem due to ruby3 (https://github.com/Shopify/bootsnap/issues/325)
gem 'rgeo-geojson'
gem 'rqrcode'
gem 'saml_idp'
gem 'sanitize-url'
Expand Down
4 changes: 0 additions & 4 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -592,9 +592,6 @@ GEM
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
rexml (3.2.5)
rgeo (2.2.0)
rgeo-geojson (2.1.1)
rgeo (>= 1.0.0)
rodf (1.1.1)
builder (>= 3.0)
dry-inflector (~> 0.1)
Expand Down Expand Up @@ -918,7 +915,6 @@ DEPENDENCIES
rake-progressbar
redcarpet
rexml
rgeo-geojson
rqrcode
rspec-rails
rspec_junit_formatter
Expand Down
8 changes: 0 additions & 8 deletions app/assets/stylesheets/02_utils.scss
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,6 @@
display: none !important;
}

.visible-on-previous-hover {
visibility: hidden;
}

:hover + .visible-on-previous-hover {
visibility: visible;
}

// sizing
.width-100 {
width: 100%;
Expand Down
24 changes: 0 additions & 24 deletions app/assets/stylesheets/procedure_context.scss
Original file line number Diff line number Diff line change
Expand Up @@ -21,30 +21,6 @@ $procedure-context-breakpoint: $two-columns-breakpoint;
font-size: 12px;
}

.procedure-configuration--auto-archive {
cursor: pointer;

summary {
font-size: 20px;

// Hide the default triangle details marker
list-style: none;
// (using the non-standard way for Chrome.)
&::-webkit-details-marker {
display: none;
}
}

p {
padding-top: 8px;
font-size: 16px;
}
}

.procedure-auto-archive-title {
border-bottom: 1px dotted $blue-france-500;
}

.procedure-logos {
display: flex;
justify-content: space-around;
Expand Down
2 changes: 1 addition & 1 deletion app/assets/stylesheets/procedure_form.scss
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
.procedure-form__options-summary {
cursor: pointer;

.header-subsection {
h3 {
display: inline-block;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
en:
virus_not_analyzed: this file has not been scanned by our antivirus, download it with care
errors:
virus_infected: Virus detected, download is blocked.
corrupted_file: The file is corrupted, the download is blocked.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
fr:
virus_not_analyzed: ce fichier n’a pas été analysé par notre antivirus, téléchargez-le avec précaution
errors:
virus_infected: "Virus détecté, le téléchargement est bloqué."
corrupted_file: "Le fichier est corrompu, le téléchargement est bloqué."
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
%div{ id: dom_id(attachment, :show), class: class_names("attachment-error": error?, "fr-mb-2w": !should_display_link?) }
- if should_display_link?
= render Dsfr::DownloadComponent.new(attachment: attachment, new_tab: new_tab) do |c|
- if !attachment.virus_scanner.started?
- c.right do
= "(#{t(".virus_not_analyzed")})"
= render Dsfr::DownloadComponent.new(attachment: attachment, virus_not_analyzed: !attachment.virus_scanner.started?, new_tab: new_tab)
- else
.attachment-filename.fr-mb-1w.fr-mr-1w= attachment.filename.to_s
Expand Down
8 changes: 5 additions & 3 deletions app/components/dsfr/download_component.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
class Dsfr::DownloadComponent < ApplicationComponent
renders_one :right

attr_reader :attachment
attr_reader :html_class
attr_reader :name
attr_reader :ephemeral_link
attr_reader :virus_not_analyzed
attr_reader :new_tab

def initialize(attachment:, name: nil, url: nil, new_tab: false)
def initialize(attachment:, name: nil, url: nil, ephemeral_link: false, virus_not_analyzed: false, new_tab: false)
@attachment = attachment
@name = name || attachment.filename.to_s
@url = url
@ephemeral_link = ephemeral_link
@virus_not_analyzed = virus_not_analyzed
@new_tab = new_tab
end

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
---
en:
title: "Download file %{filename}"
ephemeral_link: This link is ephemeral and should not be shared.
virus_not_analyzed: this file has not been scanned by our antivirus, download it with care
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
---
fr:
title: "Télécharger le fichier %{filename}"
ephemeral_link: Ce lien est éphémère et ne devrait pas être partagé.
virus_not_analyzed: ce fichier n’a pas été analysé par notre antivirus, téléchargez-le avec précaution
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,11 @@
= name
%span.fr-download__detail
= helpers.download_details(attachment)
- if ephemeral_link
%span.fr-ml-2w.fr-text--xs.fr-text-mention--grey
%span.fr-icon-questionnaire-line{ "aria-hidden": "true" }
= t('.ephemeral_link')
= right
- if virus_not_analyzed
.fr-text--xs.fr-text-mention--grey
= t('.virus_not_analyzed')
6 changes: 5 additions & 1 deletion app/components/editable_champ/editable_champ_component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def html_options
end

def stimulus_controller
if !@champ.block? && @champ.fillable?
if autosave_enabled?
# This is an editable champ. Lets find what controllers it might need.
controllers = ['autosave']

Expand All @@ -45,4 +45,8 @@ def data_dependent_conditions
{}
end
end

def autosave_enabled?
!@champ.carte? && !@champ.block? && @champ.fillable?
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ fr:
enable_drop_down_other: Le champ « %{label} » comporte maintenant un choix « Autre ».
disable_drop_down_other: Le champ « %{label} » ne comporte plus de choix « Autre ».
update_carte_layers: "Les référentiels cartographiques du champ « %{label} » ont été modifiés :"
enable_update_collapsible_explanation: Le texte complementaire affichable au clique du champ « %{label} » a été ajouté.
disable_update_collapsible_explanation: Le texte complementaire affichable au clique du champ « %{label} » a été supprimée.
update_collapsible_explanation_text: Le texte complementaire affichable au clique du champ « %{label} » a été modifié. Le nouveau texte est « %{to} ».
remove_collapsible_explanation_text: Le texte complementaire affichable au clique du champ « %{label} » a été supprimée.
enable_update_collapsible_explanation: Le texte complémentaire affichable au clic du champ « %{label} » a été ajouté.
disable_update_collapsible_explanation: Le texte complémentaire affichable au clic du champ « %{label} » a été supprimé.
update_collapsible_explanation_text: Le texte complémentaire affichable au clic du champ « %{label} » a été modifié. Le nouveau texte est « %{to} ».
remove_collapsible_explanation_text: Le texte complémentaire affichable au clic du champ « %{label} » a été supprimé.
add_condition: Une condition a été ajoutée sur le champ « %{label} ». La nouvelle condition est « %{to} ».
remove_condition: La condition du champ « %{label} » a été supprimée.
update_condition: La condition du champ « %{label} » a été modifiée. La nouvelle condition est « %{to} ».
Expand All @@ -62,10 +62,10 @@ fr:
update_carte_layers: "Les référentiels cartographiques de l’annotation privée « %{label} » ont été modifiés :"
enable_drop_down_other: L’annotation privée « %{label} » comporte maintenant un choix « Autre ».
disable_drop_down_other: L’annotation privée « %{label} » ne comporte plus de choix « Autre ».
enable_collapsible_explanation: Le texte complementaire affichable au clique de l’annotation privée « %{label} » a été ajouté.
disable_collapsible_explanation: Le texte complementaire affichable au clique de l’annotation privée « %{label} » a été supprimée.
update_collapsible_explanation: Le texte complementaire affichable au clique de l’annotation privée « %{label} » a été modifié. Le nouveau texte est « %{to} ».
remove_collapsible_explanation: Le texte complementaire affichable au clique de l’annotation privée « %{label} » a été supprimée.
enable_collapsible_explanation: Le texte complémentaire affichable au clic de l’annotation privée « %{label} » a été ajouté.
disable_collapsible_explanation: Le texte complémentaire affichable au clic de l’annotation privée « %{label} » a été supprimé.
update_collapsible_explanation: Le texte complémentaire affichable au clic de l’annotation privée « %{label} » a été modifié. Le nouveau texte est « %{to} ».
remove_collapsible_explanation: Le texte complémentaire affichable au clic de l’annotation privée « %{label} » a été supprimé.
add_condition: Une condition a été ajoutée sur l’annotation privée « %{label} ». La nouvelle condition est « %{to} ».
remove_condition: La condition de l’annotation privée « %{label} » a été supprimée.
update_condition: La condition de l’annotation privée « %{label} » a été modifiée. La nouvelle condition est « %{to} ».
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@
- if type_de_champ.explication?
.cell.width-66
= form.label :collapsible_explanation_enabled, for: dom_id(type_de_champ, :collapsible_explanation_enabled) do
Afficher un texte complementaire affichable au clique
Afficher un texte complementaire affichable au clic
= form.check_box :collapsible_explanation_enabled, class: "small-margin small", id: dom_id(type_de_champ, :collapsible_explanation_enabled)
- if form.object.collapsible_explanation_enabled?
= form.label :collapsible_explanation_text, for: dom_id(type_de_champ, :collapsible_explanation_text) do
Expand Down
6 changes: 5 additions & 1 deletion app/controllers/champs/carte_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ def update
def destroy
champ = policy_scope(Champ).find(params[:champ_id])
champ.geo_areas.find(params[:id]).destroy!
champ.touch

head :no_content
end
Expand Down Expand Up @@ -80,6 +81,9 @@ def save_feature(geo_area, feature)
if feature[:properties]
geo_area.properties.merge!(feature[:properties])
end
geo_area.save
if geo_area.save
geo_area.champ.touch
true
end
end
end
16 changes: 11 additions & 5 deletions app/javascript/components/MapEditor/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ export function useFeatureCollection(
const [featureCollection, setFeatureCollection] = useState(
initialFeatureCollection
);
const refreshFeatureList = useCallback<() => void>(() => {
httpRequest(url)
.turbo()
.catch(() => null);
}, [url]);

const updateFeatureCollection = useCallback<
(callback: (features: Feature[]) => Feature[]) => void
>(
Expand All @@ -37,11 +43,9 @@ export function useFeatureCollection(
type: 'FeatureCollection',
features: callback(features)
}));
httpRequest(url)
.turbo()
.catch(() => null);
refreshFeatureList();
},
[url, setFeatureCollection]
[refreshFeatureList, setFeatureCollection]
);

const addFeatures = useCallback(
Expand Down Expand Up @@ -153,13 +157,15 @@ export function useFeatureCollection(
if (newFeatures.length > 0) {
addFeatures(newFeatures, external);
updateFeatureCollection((features) => [...features, ...newFeatures]);
} else {
refreshFeatureList();
}
} catch (error) {
console.error(error);
onError('Le polygone dessiné n’est pas valide.');
}
},
[url, updateFeatureCollection, addFeatures, onError]
[url, refreshFeatureList, updateFeatureCollection, addFeatures, onError]
);

const deleteFeatures = useCallback<DeleteFeatures>(
Expand Down
2 changes: 1 addition & 1 deletion app/javascript/controllers/geo_area_controller.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export class GeoAreaController extends ApplicationController {
}

onInput() {
this.debounce(this.updateDescription, 200);
this.debounce(this.updateDescription, 500);
}

private updateDescription(): void {
Expand Down
11 changes: 0 additions & 11 deletions app/jobs/migrations/normalize_geo_area_job.rb

This file was deleted.

18 changes: 0 additions & 18 deletions app/models/geo_area.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ def filename
scope :cadastres, -> { where(source: sources.fetch(:cadastre)) }

validates :geometry, geo_json: true, allow_nil: false
before_validation :normalize_geometry

def to_feature
{
Expand Down Expand Up @@ -230,21 +229,4 @@ def cid
properties['id']
end
end

private

def normalize_geometry
if geometry.present?
normalized_geometry = rgeo_geometry
if normalized_geometry.present?
self.geometry = RGeo::GeoJSON.encode(normalized_geometry)
end
end
end

def rgeo_geometry
RGeo::GeoJSON.decode(geometry.to_json, geo_factory: RGeo::Geographic.simple_mercator_factory)
rescue RGeo::Error::InvalidGeometry
nil
end
end
Loading

0 comments on commit 8243788

Please sign in to comment.