Compare commits

..

1 commit

Author SHA1 Message Date
Jean-Marc GAILIS
f270f1cdd0 Modifications DGNum
ajout des NDD usuels ENS et DGNum pour autoriser les changements d'adresse mail

correction des svg des logos DGNum et DN

remplacement Marianne - pour l'instant à l'arrache uniquement, logo sera repris et affiné plus tard

modifs Mariannes

commenter quelques bouts de code inutiles dans l'usage DGNum de DS

Update logo-ds.svg and delete commented lines

correction logo DN pour pages d'erreur

normalianisation de DN, texte

modifs sur le fichier en anglais

modifs diverses vers version DN

Use our logo in the header

Add the logo-wide under a new name

feat: Update footer

feat: Remove mentions of faq.demarches-simplifiees.fr

feat: Replace documentation link

feat: Add analytics

feat: Remove France Services logo on procedure footer
2024-04-20 10:58:42 +02:00
3442 changed files with 31993 additions and 61316 deletions

52
.eslintrc.js Normal file
View file

@ -0,0 +1,52 @@
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
globals: {
process: true,
gon: true
},
plugins: ['prettier', 'react-hooks'],
extends: [
'eslint:recommended',
'prettier',
'plugin:react/recommended',
'plugin:react-hooks/recommended'
],
env: {
es6: true,
browser: true
},
rules: {
'prettier/prettier': 'error',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'error',
'react/prop-types': 'off',
'react/no-deprecated': 'off'
},
settings: {
react: { version: 'detect' }
},
overrides: [
{
files: ['.eslintrc.js', 'vite.config.ts', 'postcss.config.js'],
env: { node: true }
},
{
files: ['**/*.ts', '**/*.tsx'],
plugins: ['@typescript-eslint'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
'prettier'
],
rules: {
'prettier/prettier': 'error',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'error',
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-unused-vars': 'error'
}
}
]
};

1
.gitattributes vendored
View file

@ -1 +0,0 @@
*.lockb binary diff=lockb

View file

@ -10,7 +10,7 @@ on:
jobs:
linters:
name: Linters
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
services:
postgres:
image: postgis/postgis:14-3.3
@ -33,7 +33,7 @@ jobs:
js_tests:
name: JavaScript tests
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@ -51,15 +51,9 @@ jobs:
run: |
bun run test
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
unit_tests:
name: Unit tests
runs-on: ubuntu-22.04
timeout-minutes: 20
runs-on: ubuntu-latest
env:
RUBY_YJIT_ENABLE: "1"
services:
@ -81,8 +75,7 @@ jobs:
- name: Install build dependancies
# - fonts pickable by ImageMagick
# - rust for YJIT support
# - poppler-utils for pdf previews
run: sudo apt-get update && sudo apt-get install -y gsfonts rustc redis-server poppler-utils
run: sudo apt-get update && sudo apt-get install -y gsfonts rustc redis-server
- name: Setup the app runtime and dependencies
uses: ./.github/actions/ci-setup-rails
@ -107,15 +100,9 @@ jobs:
name: rspec-results-${{ github.job }}-${{ strategy.job-index }}
path: tmp/rspec_${{ github.job }}_${{ strategy.job-index }}.junit.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
system_tests:
name: System tests
runs-on: ubuntu-22.04
timeout-minutes: 20
runs-on: ubuntu-latest
env:
RUBY_YJIT_ENABLE: "1"
services:
@ -137,9 +124,6 @@ jobs:
- name: Setup the app runtime and dependencies
uses: ./.github/actions/ci-setup-rails
- name: Setup playwright
run: bunx playwright install chromium
- name: Pre-compile assets
uses: ./.github/actions/ci-setup-assets
@ -160,15 +144,10 @@ jobs:
name: rspec-results-${{ github.job }}-${{ strategy.job-index }}
path: tmp/rspec_${{ github.job }}_${{ strategy.job-index }}.junit.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
save_test_reports:
name: Save test reports
needs: [unit_tests, system_tests]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

6
.gitignore vendored
View file

@ -18,23 +18,17 @@ public/downloads
doc/*.svg
uploads/*
.byebug_history
.DS_Store
*.swp
.envrc
.env
.tool-versions
storage/
/node_modules
/yarn-error.log
yarn-debug.log*
.yarn-integrity
/.vscode
/.zed
/.idea
/public/assets
/spec/support/spec_config.local.rb
/config/initializers/config.local.rb
/coverage
# Local Netlify folder
.netlify

4
.prettierrc.js Normal file
View file

@ -0,0 +1,4 @@
module.exports = {
singleQuote: true,
trailingComma: 'none'
};

View file

@ -11,7 +11,7 @@ inherit_mode:
- Include
AllCops:
TargetRubyVersion: 3.3
TargetRubyVersion: 3.2
DisabledByDefault: true
SuggestExtensions: false
NewCops: enable
@ -23,8 +23,6 @@ AllCops:
- "bin/*"
- "node_modules/**/*"
- "vendor/**/*"
- "storage/**/*"
- "tmp/**/*"
DS/AddConcurrentIndex:
Enabled: true
@ -1177,7 +1175,7 @@ Style/FormatStringToken:
EnforcedStyle: template
Style/FrozenStringLiteralComment:
Enabled: true
Enabled: false
Style/GlobalVars:
Enabled: true
@ -1497,7 +1495,8 @@ Style/WhileUntilModifier:
Enabled: false
Style/WordArray:
Enabled: false
Enabled: true
EnforcedStyle: brackets
Style/YodaCondition:
Enabled: true

View file

@ -1 +1 @@
3.3.2
3.3.0

264
.scss-lint.yml Normal file
View file

@ -0,0 +1,264 @@
exclude:
- 'app/assets/stylesheets/reset.scss'
- 'app/assets/stylesheets/direct_uploads.scss'
- 'app/assets/stylesheets/dsfr_override.scss'
- 'app/assets/stylesheets/manager.scss'
linters:
BangFormat:
enabled: true
space_before_bang: true
space_after_bang: false
BemDepth:
enabled: false
max_elements: 1
BorderZero:
enabled: true
convention: none
# To enable later
ChainedClasses:
enabled: false
ColorKeyword:
enabled: true
# To enable later
ColorVariable:
enabled: false
Comment:
enabled: true
style: silent
DebugStatement:
enabled: true
DeclarationOrder:
enabled: true
DisableLinterReason:
enabled: false
DuplicateProperty:
enabled: true
ElsePlacement:
enabled: true
style: same_line
EmptyLineBetweenBlocks:
enabled: true
ignore_single_line_blocks: false
EmptyRule:
enabled: true
ExtendDirective:
enabled: false
FinalNewline:
enabled: true
present: true
HexLength:
enabled: true
style: long
HexNotation:
enabled: true
style: uppercase
HexValidation:
enabled: true
# To enable later
IdSelector:
enabled: false
# To enable later
ImportantRule:
enabled: false
ImportPath:
enabled: false
leading_underscore: false
filename_extension: false
Indentation:
enabled: true
allow_non_nested_indentation: false
character: space
width: 2
LeadingZero:
enabled: true
style: include_zero
MergeableSelector:
enabled: false
force_nesting: true
NameFormat:
enabled: true
allow_leading_underscore: false
convention: hyphenated_lowercase
# To enable later
NestingDepth:
enabled: false
max_depth: 3
ignore_parent_selectors: false
# To enable later
PlaceholderInExtend:
enabled: false
PrivateNamingConvention:
enabled: false
prefix: _
PropertyCount:
enabled: false
include_nested: false
max_properties: 10
PropertySortOrder:
enabled: false
ignore_unspecified: false
min_properties: 2
separate_groups: false
PropertySpelling:
enabled: true
extra_properties:
- scroll-padding
disabled_properties: []
# To enable later
PropertyUnits:
enabled: false
global: [
'ch', 'em', 'ex', 'rem', # Font-relative lengths
'cm', 'in', 'mm', 'pc', 'pt', 'px', 'q', # Absolute lengths
'vh', 'vw', 'vmin', 'vmax', # Viewport-percentage lengths
'deg', 'grad', 'rad', 'turn', # Angle
'ms', 's', # Duration
'Hz', 'kHz', # Frequency
'dpi', 'dpcm', 'dppx', # Resolution
'%'] # Other
properties: {}
PseudoElement:
enabled: false # otherwise rules on ::marker fails
# To enable later
QualifyingElement:
enabled: false
allow_element_with_attribute: false
allow_element_with_class: false
allow_element_with_id: false
# To enable later
SelectorDepth:
enabled: false
max_depth: 3
SelectorFormat:
enabled: true
# hyphenated_lowercase + any dsfr selector which are not hyphenated
convention: ^(?:fr-[^A-Z]+|[^_A-Z]+)$
Shorthand:
enabled: false
allowed_shorthands: [1, 2, 3, 4]
SingleLinePerProperty:
enabled: true
allow_single_line_rule_sets: false
SingleLinePerSelector:
enabled: true
SpaceAfterComma:
enabled: true
style: one_space
SpaceAfterComment:
enabled: true
style: one_space
allow_empty_comments: true
SpaceAfterPropertyColon:
enabled: true
style: one_space
SpaceAfterPropertyName:
enabled: true
SpaceAfterVariableColon:
enabled: true
style: one_space
SpaceAfterVariableName:
enabled: true
SpaceAroundOperator:
enabled: true
style: one_space
SpaceBeforeBrace:
enabled: true
style: space
allow_single_line_padding: false
SpaceBetweenParens:
enabled: true
spaces: 0
StringQuotes:
enabled: true
style: double_quotes
TrailingSemicolon:
enabled: true
TrailingWhitespace:
enabled: true
TrailingZero:
enabled: true
# To enable later
TransitionAll:
enabled: false
UnnecessaryMantissa:
enabled: true
UnnecessaryParentReference:
enabled: true
UrlFormat:
enabled: true
UrlQuotes:
enabled: true
VariableForProperty:
enabled: false
properties: []
VendorPrefix:
enabled: true
identifier_list: base
additional_identifiers: []
excluded_identifiers: []
ZeroUnit:
enabled: false
Compass::*:
enabled: false

View file

@ -1,30 +0,0 @@
# frozen_string_literal: true
SimpleCov.start "rails" do
enable_coverage :branch
command_name "RSpec process #{Process.pid}"
if ENV["CI"] # codecov compatibility
require 'simplecov-cobertura'
formatter SimpleCov::Formatter::CoberturaFormatter
else
formatter SimpleCov::Formatter::MultiFormatter.new([
SimpleCov::Formatter::SimpleFormatter,
SimpleCov::Formatter::HTMLFormatter
])
end
add_filter "/channels/" # not used
groups.delete("Channels")
add_filter "/lib/tasks/deployment/"
add_group "Components", "app/components"
add_group "API", ["app/graphql", "app/serializers"]
add_group "Manager", ["app/dashboards", "app/fields", "app/controllers/manager"]
add_group "Models", ["app/models", "app/validators"]
add_group "Policies", "app/policies"
add_group "Services", "app/services"
add_group "Tasks", ["app/tasks", "lib/tasks"]
end

13
Gemfile
View file

@ -1,5 +1,3 @@
# frozen_string_literal: true
source 'https://rubygems.org'
gem 'rails', '~> 7.0.8' # allows update to security fixes at any time
@ -19,7 +17,6 @@ gem 'anchored'
gem 'bcrypt'
gem 'bootsnap', '>= 1.4.4', require: false # Reduces boot times through caching; required in config/boot.rb
gem 'browser'
gem 'capybara-playwright-driver'
gem 'charlock_holmes'
gem 'chartkick'
gem 'chunky_png'
@ -29,7 +26,7 @@ gem 'deep_cloneable' # Enable deep clone of active record models
gem 'delayed_cron_job', require: false # Cron jobs
gem 'delayed_job_active_record'
gem 'delayed_job_web'
gem 'devise'
gem 'devise', git: 'https://github.com/heartcombo/devise.git', ref: "edffc79bf05d7f1c58ba50ffeda645e2e4ae0cb1" # Gestion des comptes utilisateurs, drop ref on next release: 4.9.4
gem 'devise-i18n'
gem 'devise-two-factor'
gem 'discard'
@ -40,7 +37,6 @@ gem 'flipper'
gem 'flipper-active_record'
gem 'flipper-active_support_cache_store'
gem 'flipper-ui'
gem 'front_matter_parser'
gem 'fugit'
gem 'geocoder'
gem 'geo_coord', require: "geo/coord"
@ -98,7 +94,6 @@ gem 'sidekiq'
gem 'sidekiq-cron'
gem 'skylight'
gem 'spreadsheet_architect'
gem 'string-similarity'
gem 'strong_migrations' # lint database migrations
gem 'sys-proctable'
gem 'turbo-rails'
@ -111,7 +106,7 @@ gem 'webrick', require: false
gem 'yabeda-prometheus'
gem 'yabeda-sidekiq'
gem 'zipline'
gem 'zxcvbn'
gem 'zxcvbn-ruby', require: 'zxcvbn'
group :test do
gem 'axe-core-rspec' # accessibility rspec matchers
@ -127,9 +122,6 @@ group :test do
gem 'selenium-devtools'
gem 'selenium-webdriver'
gem 'shoulda-matchers', require: false
gem 'simplecov', require: false
gem 'simplecov-cobertura', require: false
gem "test-prof"
gem 'timecop'
gem 'vcr'
gem 'webmock'
@ -147,6 +139,7 @@ group :development do
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
gem 'scss_lint', require: false
gem 'stackprof'
gem 'web-console'
end

View file

@ -6,53 +6,65 @@ GIT
json (>= 2.5)
sidekiq (~> 7.0)
GIT
remote: https://github.com/heartcombo/devise.git
revision: edffc79bf05d7f1c58ba50ffeda645e2e4ae0cb1
ref: edffc79bf05d7f1c58ba50ffeda645e2e4ae0cb1
specs:
devise (4.9.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
GEM
remote: https://rubygems.org/
specs:
aasm (5.5.0)
concurrent-ruby (~> 1.0)
acsv (0.0.1)
actioncable (7.0.8.7)
actionpack (= 7.0.8.7)
activesupport (= 7.0.8.7)
actioncable (7.0.8.1)
actionpack (= 7.0.8.1)
activesupport (= 7.0.8.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (7.0.8.7)
actionpack (= 7.0.8.7)
activejob (= 7.0.8.7)
activerecord (= 7.0.8.7)
activestorage (= 7.0.8.7)
activesupport (= 7.0.8.7)
actionmailbox (7.0.8.1)
actionpack (= 7.0.8.1)
activejob (= 7.0.8.1)
activerecord (= 7.0.8.1)
activestorage (= 7.0.8.1)
activesupport (= 7.0.8.1)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.0.8.7)
actionpack (= 7.0.8.7)
actionview (= 7.0.8.7)
activejob (= 7.0.8.7)
activesupport (= 7.0.8.7)
actionmailer (7.0.8.1)
actionpack (= 7.0.8.1)
actionview (= 7.0.8.1)
activejob (= 7.0.8.1)
activesupport (= 7.0.8.1)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.0)
actionpack (7.0.8.7)
actionview (= 7.0.8.7)
activesupport (= 7.0.8.7)
actionpack (7.0.8.1)
actionview (= 7.0.8.1)
activesupport (= 7.0.8.1)
rack (~> 2.0, >= 2.2.4)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (7.0.8.7)
actionpack (= 7.0.8.7)
activerecord (= 7.0.8.7)
activestorage (= 7.0.8.7)
activesupport (= 7.0.8.7)
actiontext (7.0.8.1)
actionpack (= 7.0.8.1)
activerecord (= 7.0.8.1)
activestorage (= 7.0.8.1)
activesupport (= 7.0.8.1)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.0.8.7)
activesupport (= 7.0.8.7)
actionview (7.0.8.1)
activesupport (= 7.0.8.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
@ -67,26 +79,26 @@ GEM
activemodel (>= 5.2.0)
activestorage (>= 5.2.0)
activesupport (>= 5.2.0)
activejob (7.0.8.7)
activesupport (= 7.0.8.7)
activejob (7.0.8.1)
activesupport (= 7.0.8.1)
globalid (>= 0.3.6)
activemodel (7.0.8.7)
activesupport (= 7.0.8.7)
activerecord (7.0.8.7)
activemodel (= 7.0.8.7)
activesupport (= 7.0.8.7)
activestorage (7.0.8.7)
actionpack (= 7.0.8.7)
activejob (= 7.0.8.7)
activerecord (= 7.0.8.7)
activesupport (= 7.0.8.7)
activemodel (7.0.8.1)
activesupport (= 7.0.8.1)
activerecord (7.0.8.1)
activemodel (= 7.0.8.1)
activesupport (= 7.0.8.1)
activestorage (7.0.8.1)
actionpack (= 7.0.8.1)
activejob (= 7.0.8.1)
activerecord (= 7.0.8.1)
activesupport (= 7.0.8.1)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activestorage-openstack (1.6.0)
fog-openstack (>= 1.0.9)
marcel
rails (>= 5.2.2)
activesupport (7.0.8.7)
activesupport (7.0.8.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@ -136,7 +148,7 @@ GEM
erubi (~> 1.4)
parser (>= 2.4)
smart_properties
bigdecimal (3.1.7)
bigdecimal (3.1.6)
bindata (2.5.0)
bindex (0.8.1)
bootsnap (1.18.3)
@ -144,7 +156,7 @@ GEM
brakeman (6.1.2)
racc
browser (5.3.1)
builder (3.3.0)
builder (3.2.4)
capybara (3.40.0)
addressable
matrix
@ -157,10 +169,6 @@ GEM
capybara-email (3.0.2)
capybara (>= 2.4, < 4.0)
mail
capybara-playwright-driver (0.5.2)
addressable
capybara
playwright-ruby-client (>= 1.16.0)
capybara-screenshot (1.0.26)
capybara (>= 1.0, < 4)
launchy
@ -171,14 +179,14 @@ GEM
marcel (~> 1.0)
nokogiri (~> 1.10, >= 1.10.4)
rubyzip (>= 1.3.0, < 3)
charlock_holmes (0.7.9)
chartkick (5.0.6)
charlock_holmes (0.7.7)
chartkick (5.0.5)
choice (0.2.0)
chunky_png (1.4.0)
clamav-client (3.2.0)
coercible (1.0.0)
descendants_tracker (~> 0.0.1)
concurrent-ruby (1.3.4)
concurrent-ruby (1.2.3)
connection_pool (2.4.1)
content_disposition (1.0.0)
crack (1.0.0)
@ -187,7 +195,6 @@ GEM
crass (1.0.6)
css_parser (1.16.0)
addressable
csv (3.3.0)
daemons (1.4.1)
date (3.3.4)
deep_cloneable (3.2.0)
@ -206,15 +213,9 @@ GEM
sinatra (>= 1.4.4)
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
devise (4.9.4)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
devise-i18n (1.12.0)
devise (>= 4.9.0)
devise-two-factor (6.0.0)
devise-two-factor (5.0.0)
activesupport (~> 7.0)
devise (~> 4.0)
railties (~> 7.0)
@ -222,7 +223,6 @@ GEM
diff-lcs (1.5.1)
discard (1.3.0)
activerecord (>= 4.2, < 8)
docile (1.4.0)
dotenv (2.8.1)
dotenv-rails (2.8.1)
dotenv (= 2.8.1)
@ -239,8 +239,8 @@ GEM
dumb_delegator (1.0.0)
email_validator (2.2.4)
activemodel
erubi (1.13.0)
et-orbi (1.2.11)
erubi (1.12.0)
et-orbi (1.2.7)
tzinfo
ethon (0.16.0)
ffi (>= 1.15.0)
@ -257,20 +257,19 @@ GEM
faraday-net_http (3.1.0)
net-http
ffi (1.16.3)
flipper (1.3.0)
flipper (1.2.2)
concurrent-ruby (< 2)
flipper-active_record (1.3.0)
flipper-active_record (1.2.2)
activerecord (>= 4.2, < 8)
flipper (~> 1.3.0)
flipper-active_support_cache_store (1.3.0)
flipper (~> 1.2.2)
flipper-active_support_cache_store (1.2.2)
activesupport (>= 4.2, < 8)
flipper (~> 1.3.0)
flipper-ui (1.3.0)
flipper (~> 1.2.2)
flipper-ui (1.2.2)
erubi (>= 1.0.0, < 2.0.0)
flipper (~> 1.3.0)
flipper (~> 1.2.2)
rack (>= 1.4, < 4)
rack-protection (>= 1.5.3, < 5.0.0)
rack-session (>= 1.0.2, < 3.0.0)
rack-protection (>= 1.5.3, <= 4.0.0)
sanitize (< 7)
fog-core (2.4.0)
builder
@ -284,9 +283,8 @@ GEM
fog-core (~> 2.1)
fog-json (>= 1.0)
formatador (1.1.0)
front_matter_parser (1.0.1)
fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11)
fugit (1.9.0)
et-orbi (~> 1, >= 1.2.7)
raabro (~> 1.4)
geo_coord (0.2.0)
geocoder (1.8.2)
@ -335,7 +333,7 @@ GEM
highline (3.0.1)
htmlentities (4.3.4)
http_accept_language (2.1.1)
i18n (1.14.6)
i18n (1.14.4)
concurrent-ruby (~> 1.0)
i18n-tasks (1.0.13)
activesupport (>= 4.0.2)
@ -357,16 +355,16 @@ GEM
invisible_captcha (2.2.0)
rails (>= 5.2)
io-console (0.7.2)
irb (1.12.0)
irb (1.11.2)
rdoc
reline (>= 0.4.2)
job-iteration (1.7.0)
job-iteration (1.4.1)
activejob (>= 5.2)
jquery-rails (4.6.0)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (2.8.2)
json (2.7.1)
json-jwt (1.16.6)
activesupport (>= 4.2)
aes_key_wrap
@ -374,15 +372,12 @@ GEM
bindata
faraday (~> 2.0)
faraday-follow_redirects
json_schemer (2.2.1)
base64
bigdecimal
json_schemer (2.1.1)
hana (~> 1.3)
regexp_parser (~> 2.0)
simpleidn (~> 0.2)
jsonapi-renderer (0.2.2)
jwt (2.8.1)
base64
jwt (2.7.1)
kaminari (1.2.2)
activesupport (>= 4.1.0)
kaminari-actionview (= 1.2.2)
@ -409,17 +404,16 @@ GEM
letter_opener (~> 1.7)
railties (>= 5.2)
rexml
listen (3.9.0)
listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.0)
lograge (0.14.0)
actionpack (>= 4)
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
logstash-event (1.2.02)
loofah (2.23.1)
loofah (2.22.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
@ -427,18 +421,17 @@ GEM
net-imap
net-pop
net-smtp
maintenance_tasks (2.10.0)
actionpack (>= 6.1)
activejob (>= 6.1)
activerecord (>= 6.1)
csv
maintenance_tasks (2.6.0)
actionpack (>= 6.0)
activejob (>= 6.0)
activerecord (>= 6.0)
job-iteration (>= 1.3.6)
railties (>= 6.1)
railties (>= 6.0)
zeitwerk (>= 2.6.2)
marcel (1.0.4)
marcel (1.0.2)
matrix (0.4.2)
memory_profiler (1.0.1)
method_source (1.1.0)
method_source (1.0.0)
mime-types (3.5.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2024.0206)
@ -446,25 +439,25 @@ GEM
rake
mini_magick (4.12.0)
mini_mime (1.1.5)
mini_portile2 (2.8.8)
minitest (5.25.4)
mini_portile2 (2.8.5)
minitest (5.22.2)
msgpack (1.7.2)
multi_json (1.15.0)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
net-http (0.4.1)
uri
net-imap (0.4.17)
net-imap (0.4.10)
date
net-protocol
net-pop (0.1.2)
net-protocol
net-protocol (0.2.2)
timeout
net-smtp (0.5.0)
net-smtp (0.4.0.1)
net-protocol
nio4r (2.7.3)
nokogiri (1.17.1)
nio4r (2.7.0)
nokogiri (1.16.2)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
openid_connect (2.3.0)
@ -481,17 +474,14 @@ GEM
validate_url
webfinger (~> 2.0)
orm_adapter (0.5.0)
parallel (1.26.3)
parallel (1.24.0)
parsby (1.1.1)
parser (3.3.6.0)
parser (3.3.0.5)
ast (~> 2.4.1)
racc
pdf-core (0.9.0)
pg (1.5.6)
phonelib (0.8.8)
playwright-ruby-client (1.46.0)
concurrent-ruby (>= 1.1.6)
mime-types (>= 3.0)
pg (1.5.4)
phonelib (0.8.7)
prawn (2.4.0)
pdf-core (~> 0.9.0)
ttfunk (~> 1.7)
@ -511,16 +501,16 @@ GEM
premailer (~> 1.7, >= 1.7.9)
prometheus-client (4.2.2)
promise.rb (0.7.4)
psych (5.2.0)
psych (5.1.2)
stringio
public_suffix (5.0.5)
puma (6.4.3)
public_suffix (5.0.4)
puma (6.4.2)
nio4r (~> 2.0)
pundit (2.3.1)
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.8.1)
rack (2.2.10)
racc (1.7.3)
rack (2.2.8.1)
rack-attack (6.7.0)
rack (>= 1.0, < 4)
rack-mini-profiler (3.3.1)
@ -537,27 +527,25 @@ GEM
rack (~> 2.2, >= 2.2.4)
rack-proxy (0.7.7)
rack
rack-session (1.0.2)
rack (< 3)
rack-test (2.1.0)
rack (>= 1.3)
rack_session_access (0.2.0)
builder (>= 2.0.0)
rack (>= 1.0.0)
rails (7.0.8.7)
actioncable (= 7.0.8.7)
actionmailbox (= 7.0.8.7)
actionmailer (= 7.0.8.7)
actionpack (= 7.0.8.7)
actiontext (= 7.0.8.7)
actionview (= 7.0.8.7)
activejob (= 7.0.8.7)
activemodel (= 7.0.8.7)
activerecord (= 7.0.8.7)
activestorage (= 7.0.8.7)
activesupport (= 7.0.8.7)
rails (7.0.8.1)
actioncable (= 7.0.8.1)
actionmailbox (= 7.0.8.1)
actionmailer (= 7.0.8.1)
actionpack (= 7.0.8.1)
actiontext (= 7.0.8.1)
actionview (= 7.0.8.1)
activejob (= 7.0.8.1)
activemodel (= 7.0.8.1)
activerecord (= 7.0.8.1)
activestorage (= 7.0.8.1)
activesupport (= 7.0.8.1)
bundler (>= 1.15.0)
railties (= 7.0.8.7)
railties (= 7.0.8.1)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@ -571,24 +559,24 @@ GEM
activesupport (>= 4.2)
choice (~> 0.2.0)
ruby-graphviz (~> 1.2)
rails-html-sanitizer (1.6.1)
rails-html-sanitizer (1.6.0)
loofah (~> 2.21)
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
rails-i18n (7.0.9)
nokogiri (~> 1.14)
rails-i18n (7.0.8)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
rails-pg-extras (5.3.1)
rails
ruby-pg-extras (= 5.3.1)
railties (7.0.8.7)
actionpack (= 7.0.8.7)
activesupport (= 7.0.8.7)
railties (7.0.8.1)
actionpack (= 7.0.8.1)
activesupport (= 7.0.8.1)
method_source
rake (>= 12.2)
thor (~> 1.0)
zeitwerk (~> 2.5)
rainbow (3.1.1)
rake (13.2.1)
rake (13.1.0)
rake-progressbar (0.0.5)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
@ -596,19 +584,19 @@ GEM
rdoc (6.6.3.1)
psych (>= 4.0.0)
redcarpet (3.6.0)
redis (5.2.0)
redis-client (>= 0.22.0)
redis-client (0.22.1)
redis (5.1.0)
redis-client (>= 0.17.0)
redis-client (0.20.0)
connection_pool
regexp_parser (2.9.2)
reline (0.5.3)
regexp_parser (2.9.0)
reline (0.4.2)
io-console (~> 0.5)
request_store (1.5.1)
rack (>= 1.4)
responders (3.1.1)
actionpack (>= 5.2)
railties (>= 5.2)
rexml (3.3.9)
rexml (3.2.6)
rodf (1.2.0)
builder (>= 3.0)
rubyzip (>= 1.0)
@ -626,50 +614,48 @@ GEM
rspec-mocks (3.13.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (6.1.2)
rspec-rails (6.1.1)
actionpack (>= 6.1)
activesupport (>= 6.1)
railties (>= 6.1)
rspec-core (~> 3.13)
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
rspec-support (~> 3.13)
rspec-core (~> 3.12)
rspec-expectations (~> 3.12)
rspec-mocks (~> 3.12)
rspec-support (~> 3.12)
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-support (3.13.1)
rspec-support (3.13.0)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (1.69.0)
rubocop (1.60.2)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.4, < 3.0)
rubocop-ast (>= 1.36.1, < 2.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.30.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.36.1)
parser (>= 3.3.1.0)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.30.0)
parser (>= 3.2.1.0)
rubocop-capybara (2.20.0)
rubocop (~> 1.41)
rubocop-factory_bot (2.25.1)
rubocop (~> 1.41)
rubocop-performance (1.21.0)
rubocop-performance (1.20.2)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rails (2.24.1)
rubocop-ast (>= 1.30.0, < 2.0)
rubocop-rails (2.23.1)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rspec (2.29.1)
rubocop-ast (>= 1.30.0, < 2.0)
rubocop-rspec (2.26.1)
rubocop (~> 1.40)
rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22)
rubocop-rspec_rails (~> 2.28)
rubocop-rspec_rails (2.28.3)
rubocop (~> 1.40)
ruby-graphviz (1.2.5)
rexml
ruby-next-core (1.0.2)
@ -687,9 +673,14 @@ GEM
nokogiri (>= 1.6.2)
rexml
xmlenc (>= 0.7.1)
sanitize (6.1.2)
sanitize (6.1.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sassc (2.4.0)
ffi (~> 1.9)
sassc-rails (2.1.2)
@ -698,34 +689,34 @@ GEM
sprockets (> 3.0)
sprockets-rails
tilt
scss_lint (0.60.0)
sass (~> 3.5, >= 3.5.5)
selectize-rails (0.12.6)
selenium-devtools (0.126.0)
selenium-devtools (0.121.0)
selenium-webdriver (~> 4.2)
selenium-webdriver (4.22.0)
selenium-webdriver (4.17.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
sentry-delayed_job (5.17.3)
sentry-delayed_job (5.16.1)
delayed_job (>= 4.0)
sentry-ruby (~> 5.17.3)
sentry-rails (5.17.3)
sentry-ruby (~> 5.16.1)
sentry-rails (5.16.1)
railties (>= 5.0)
sentry-ruby (~> 5.17.3)
sentry-ruby (5.17.3)
bigdecimal
sentry-ruby (~> 5.16.1)
sentry-ruby (5.16.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
sentry-sidekiq (5.17.3)
sentry-ruby (~> 5.17.3)
sentry-sidekiq (5.16.1)
sentry-ruby (~> 5.16.1)
sidekiq (>= 3.0)
shoulda-matchers (6.2.0)
shoulda-matchers (6.1.0)
activesupport (>= 5.2.0)
sib-api-v3-sdk (9.1.0)
addressable (~> 2.3, >= 2.3.0)
json (~> 2.1, >= 2.1.0)
typhoeus (~> 1.0, >= 1.0.1)
sidekiq (7.2.4)
sidekiq (7.2.1)
concurrent-ruby (< 2)
connection_pool (>= 2.3.0)
rack (>= 2.2.4)
@ -737,15 +728,6 @@ GEM
simple_xlsx_reader (1.0.4)
nokogiri
rubyzip
simplecov (0.22.0)
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov_json_formatter (~> 0.1)
simplecov-cobertura (2.1.0)
rexml
simplecov (~> 0.19)
simplecov-html (0.12.3)
simplecov_json_formatter (0.1.4)
simpleidn (0.2.1)
unf (~> 0.1.4)
sinatra (3.2.0)
@ -753,13 +735,13 @@ GEM
rack (~> 2.2, >= 2.2.4)
rack-protection (= 3.2.0)
tilt (~> 2.0)
skylight (6.0.4)
skylight (6.0.3)
activesupport (>= 5.2.0)
smart_properties (1.17.0)
spreadsheet_architect (5.0.0)
caxlsx (>= 3.3.0, < 4)
rodf (>= 1.0.0, < 2)
spring (4.2.1)
spring (4.1.3)
spring-commands-rspec (1.0.4)
spring (>= 0.9.1)
sprockets (4.2.1)
@ -770,9 +752,8 @@ GEM
activesupport (>= 5.2)
sprockets (>= 3.0.0)
stackprof (0.2.26)
string-similarity (2.1.0)
stringio (3.1.2)
strong_migrations (1.8.0)
stringio (3.1.0)
strong_migrations (1.7.0)
activerecord (>= 5.2)
swd (2.0.3)
activesupport (>= 3)
@ -785,14 +766,13 @@ GEM
temple (0.8.2)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
test-prof (1.3.3)
thor (1.3.2)
thor (1.3.0)
thread_safe (0.3.6)
tilt (2.3.0)
timecop (0.9.8)
timeout (0.4.1)
ttfunk (1.7.0)
turbo-rails (2.0.5)
turbo-rails (2.0.2)
actionpack (>= 6.0.0)
activejob (>= 6.0.0)
railties (>= 6.0.0)
@ -804,13 +784,13 @@ GEM
unf (0.1.4)
unf_ext
unf_ext (0.0.9.1)
unicode-display_width (2.6.0)
unicode-display_width (2.5.0)
uri (0.13.0)
validate_url (1.0.15)
activemodel (>= 3.0.0)
public_suffix
vcr (6.2.0)
view_component (3.12.1)
view_component (3.10.0)
activesupport (>= 5.2.0, < 8.0)
concurrent-ruby (~> 1.0)
method_source (~> 1.0)
@ -836,11 +816,11 @@ GEM
activesupport
faraday (~> 2.0)
faraday-follow_redirects
webmock (3.23.0)
webmock (3.20.0)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
webrick (1.8.2)
webrick (1.8.1)
websocket (1.2.10)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
@ -866,13 +846,13 @@ GEM
anyway_config (>= 1.3, < 3)
sidekiq
yabeda (~> 0.6)
zeitwerk (2.7.1)
zeitwerk (2.6.13)
zip_tricks (5.6.0)
zipline (1.5.0)
actionpack (>= 6.0, < 8.0)
content_disposition (~> 1.0)
zip_tricks (>= 4.2.1, < 6.0)
zxcvbn (0.1.11)
zxcvbn-ruby (1.2.0)
PLATFORMS
ruby
@ -898,7 +878,6 @@ DEPENDENCIES
browser
capybara
capybara-email
capybara-playwright-driver
capybara-screenshot
charlock_holmes
chartkick
@ -909,7 +888,7 @@ DEPENDENCIES
delayed_cron_job
delayed_job_active_record
delayed_job_web
devise
devise!
devise-i18n
devise-two-factor
discard
@ -921,7 +900,6 @@ DEPENDENCIES
flipper-active_record
flipper-active_support_cache_store
flipper-ui
front_matter_parser
fugit
geo_coord
geocoder
@ -989,6 +967,7 @@ DEPENDENCIES
rubocop-rspec
saml_idp
sassc-rails
scss_lint
selenium-devtools
selenium-webdriver
sentry-delayed_job
@ -1000,17 +979,13 @@ DEPENDENCIES
sidekiq
sidekiq-cron
simple_xlsx_reader
simplecov
simplecov-cobertura
skylight
spreadsheet_architect
spring
spring-commands-rspec
stackprof
string-similarity
strong_migrations
sys-proctable
test-prof
timecop
turbo-rails
typhoeus
@ -1025,7 +1000,7 @@ DEPENDENCIES
yabeda-prometheus
yabeda-sidekiq
zipline
zxcvbn
zxcvbn-ruby
BUNDLED WITH
2.5.23
2.5.4

View file

@ -1,5 +1,3 @@
# frozen_string_literal: true
# A sample Guardfile
# More info at https://github.com/guard/guard#readme

View file

@ -1,3 +1,3 @@
web: bin/rails server -p 3000
web: RAILS_QUEUE_ADAPTER=delayed_job bin/rails server -p 3000
jobs: bin/rake jobs:work
vite: bin/vite dev

View file

@ -38,8 +38,6 @@ Pour faire tourner sidekiq, vous aurez besoin de :
- redis
- lightgallery : une license a été souscrite pour soutenir le projet, mais elle n'est pas obligatoire si la librairie est utilisée dans le cadre d'une application open source.
#### Développement
- rbenv : voir https://github.com/rbenv/rbenv-installer#rbenv-installer--doctor-scripts
@ -64,7 +62,7 @@ Selenium::WebDriver::Chrome.path = "/Applications/Brave Browser.app/Contents/Mac
Webdrivers::Chromedriver.required_version = "103.0.5060.53"
```
Il est également possible de faire une installation et mise à jour automatique lors de l'exécution de `bin/update` en définissant la variable d'environnement `UPDATE_WEBDRIVER`. Les binaires seront installés dans le repertoire `~/.local/bin/` qui doit être rajouté manuellement dans le path.
Il est également possible de faire une installation et mise à jour automatique lors de l'exécution de `bin/update` en définissant la variable d'environnement `UPDATE_WEBDRIVER`. Les binaires seront installés dans le repertoire `~/.local/bin/` qui doit être rajouté manuellement dans le path.
### Création des rôles de la base de données
@ -144,7 +142,7 @@ Pour exécuter les tests de l'application, plusieurs possibilités :
- Afficher les logs js en error issus de la console du navigateur `console.error('coucou')`
JS_LOG=debug,log,error bin/rspec spec/system
JS_LOG=error bin/rspec spec/system
- Augmenter la latence lors de tests end2end pour déceler des bugs récalcitrants
@ -194,5 +192,3 @@ La compatibilité est testée par Browserstack.<br>[<img src="app/assets/images/
[![View performance data on Skylight](https://badges.skylight.io/status/zAvWTaqO0mu1.svg)](https://oss.skylight.io/app/applications/zAvWTaqO0mu1)
Nous utilisons Skylight pour suivre les performances de notre application.
Par ailleurs, nous utilisons [Yabeda](https://github.com/yabeda-rb/yabeda) pour exporter des métriques au format prometheus pour Sidekiq. L'activation se fait via la variable d'environnement `PROMETHEUS_EXPORTER_ENABLED` voir config/env.example.optional .

View file

@ -1,5 +1,3 @@
# frozen_string_literal: true
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -1,4 +1,4 @@
@import 'placeholders';
@import "placeholders";
html,
body {
@ -6,21 +6,11 @@ body {
scroll-behavior: smooth;
}
// Forces line breaks to prevent buttons from overflowing their container
input[type='submit'] {
white-space: normal;
}
.page-wrapper {
position: relative;
min-height: 100%;
}
// Wrap text in pre tag
pre {
white-space: pre-wrap;
}
// Mobile Safari doesn't bubble mouse events by default, unless:
//
// - the target element of the event is a link or a form field.
@ -38,7 +28,3 @@ pre {
.container {
@extend %container;
}
react-fragment {
display: block;
}

View file

@ -1,5 +1,5 @@
@import 'colors';
@import 'constants';
@import "colors";
@import "constants";
// floats
.pull-left {
@ -37,7 +37,7 @@
}
.text-right {
text-align: right !important;
text-align: right;
}
.text-sm {
@ -142,6 +142,7 @@
}
}
// who known
.highlighted {
background-color: var(
@ -193,29 +194,13 @@
// using $direction.key as css modifier, $direction.values to set css properties
// scale it using $steps
$directions: (
't': (
'margin-top'
),
'r': (
'margin-right'
),
'b': (
'margin-bottom'
),
'l': (
'margin-left'
),
'x': (
'margin-left',
'margin-right'
),
'y': (
'margin-top',
'margin-bottom'
),
'': (
'margin'
)
"t": ("margin-top"),
"r": ("margin-right"),
"b": ("margin-bottom"),
"l": ("margin-left"),
"x": ("margin-left", "margin-right"),
"y": ("margin-top", "margin-bottom"),
"": ("margin")
);
$steps: (0, 1, 2, 3, 4, 5, 6, 7, 8);
@ -230,29 +215,13 @@ $steps: (0, 1, 2, 3, 4, 5, 6, 7, 8);
}
$directions: (
't': (
'padding-top'
),
'r': (
'padding-right'
),
'b': (
'padding-bottom'
),
'l': (
'padding-left'
),
'x': (
'padding-left',
'padding-right'
),
'y': (
'padding-top',
'padding-bottom'
),
'': (
'padding'
)
"t": ("padding-top"),
"r": ("padding-right"),
"b": ("padding-bottom"),
"l": ("padding-left"),
"x": ("padding-left", "padding-right"),
"y": ("padding-top", "padding-bottom"),
"": ("padding")
);
$steps: (0, 1, 2, 3, 4, 5, 6, 7, 8);

View file

@ -1,26 +1,26 @@
$light-blue: #1c7ec9;
$lighter-blue: #c3d9ff;
$light-blue: #1C7EC9;
$lighter-blue: #C3D9FF;
$black: #333333;
$white: #ffffff;
$white: #FFFFFF;
$grey: #888888;
$light-grey: #f8f8f8;
$light-grey: #F8F8F8;
$dark-grey: #666666;
$border-grey: #cccccc;
$dark-red: #a10005;
$border-grey: #CCCCCC;
$dark-red: #A10005;
$medium-red: rgba(161, 0, 5, 0.9);
$light-red: #ed1c24;
$lighter-red: #f52a2a;
$background-red: #ffdfdf;
$light-red: #ED1C24;
$lighter-red: #F52A2A;
$background-red: #FFDFDF;
$green: darken(#169862, 5%);
$old-green: #15ad70;
$old-green: #15AD70;
$lighter-green: lighten($old-green, 30%);
$light-green: lighten($old-green, 25%);
$dark-green: darken($old-green, 20%);
$orange: #f28900;
$orange: #F28900;
$orange-bg: lighten($orange, 35%);
$yellow: #fef3b8;
$light-yellow: #ffffde;
$blue-france-700: #00006d;
$yellow: #FEF3B8;
$light-yellow: #FFFFDE;
$blue-france-700: #00006D;
$blue-france-500: #000091;
$blue-france-400: #7f7fc8;
$blue-france-400: #7F7FC8;
$g700: #383838;

View file

@ -1,4 +1,4 @@
@import 'constants';
@import "constants";
@mixin horizontal-padding($value) {
padding-left: $value;
@ -22,3 +22,4 @@
background-image: image-url($image-url);
}
}

View file

@ -1,6 +1,6 @@
@import 'colors';
@import 'mixins';
@import 'constants';
@import "colors";
@import "mixins";
@import "constants";
%horizontal-list {
list-style-type: none;
@ -27,8 +27,7 @@
}
}
%container {
// TODO: switch to new design with preview in two view not in two column https://github.com/betagouv/demarches-simplifiees.fr/issues/7882
%container { // TODO: switch to new design with preview in two view not in two column https://github.com/betagouv/demarches-simplifiees.fr/issues/7882
@include horizontal-padding($default-padding);
max-width: $page-width + 2 * $default-padding;
margin-left: auto;

View file

@ -11,9 +11,9 @@
trix-editor {
min-height: 10em;
background-color: #ffffff;
background-color: #FFFFFF;
}
[data-fr-theme='dark'] .trix-button-group button {
[data-fr-theme="dark"] .trix-button-group button {
background: var(--background-action-high-blue-france) !important;
}

View file

@ -1,5 +1,5 @@
@import 'constants';
@import 'colors';
@import "constants";
@import "colors";
.instructeur-wrapper {
.select-instructeurs {

View file

@ -1,5 +1,5 @@
@import 'colors';
@import 'constants';
@import "colors";
@import "constants";
#agentconnect {
.agent {
@ -10,7 +10,7 @@
}
.box {
background-color: #f2f2f9;
background-color: #F2F2F9;
padding: $default-padding;
ul {

View file

@ -1,4 +1,4 @@
@import 'placeholders';
@import "placeholders";
@keyframes fade-in-down {
0% {

View file

@ -0,0 +1,19 @@
@import "constants";
table.archive-table {
.text-right {
text-align: right;
}
.center {
text-align: center;
}
td {
padding: 3 * $default-spacer $default-spacer;
}
a.button {
background-image: none; // remove DSFR underline
}
}

View file

@ -1,5 +1,5 @@
@import 'colors';
@import 'constants';
@import "colors";
@import "constants";
.attachment-error,
.attachment-upload-error {
@ -8,7 +8,7 @@
&::before {
box-shadow: inset 2px 0 0 0 var(--border-plain-error);
height: 100%;
content: '';
content: "";
left: -0.75rem;
position: absolute;
width: 2px;
@ -26,7 +26,7 @@
}
.attachment-multiple:not(.fr-downloads-group),
.attachment-multiple.fr-downloads-group[data-controller='replace-attachment'] {
.attachment-multiple.fr-downloads-group[data-controller=replace-attachment] {
ul {
list-style-type: none;
padding-inline-start: 0;
@ -49,8 +49,9 @@
}
}
.attachment-multiple.fr-downloads-group.destroyable ul,
ul[data-file-input-reset-target='fileList'] {
list-style-type: none;
padding-inline-start: 0;
.attachment-multiple.fr-downloads-group.destroyable {
ul {
list-style-type: none;
padding-inline-start: 0;
}
}

View file

@ -1,20 +1,20 @@
@font-face {
font-family: 'Marianne';
src: url('marianne-regular.ttf');
font-family: "Marianne";
src: url("marianne-regular.ttf");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Marianne';
src: url('marianne-bold.ttf');
font-family: "Marianne";
src: url("marianne-bold.ttf");
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: 'Marianne';
src: url('marianne-thin.ttf');
font-family: "Marianne";
src: url("marianne-thin.ttf");
font-weight: 100; // weasy print n"accepte pas lighter
font-style: normal;
}
@ -25,9 +25,8 @@
@bottom-center {
font-size: 8pt;
content: counter(page) ' / ' counter(pages);
content: counter(page) " / " counter(pages);
margin-top: 17mm;
white-space: nowrap;
}
@bottom-left {
@ -42,12 +41,11 @@
flex-direction: column;
justify-content: space-between; // This will push the footer down
max-width: 21cm;
min-height: 29.7cm;
height: 29.7cm;
padding: 17mm;
margin: 0 auto;
background: #ffffff;
background: #FFFFFF;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); // Optional: for better visualization
position: relative;
}
}
@ -142,11 +140,13 @@
h2 {
margin: 0;
line-height: 8pt;
}
h3 {
font-size: 10pt; // same as text
font-weight: bold;
line-height: 4pt;
}
li p {
@ -167,31 +167,9 @@
}
}
footer {
.footer {
position: running(footer);
font-size: 7pt;
font-weight: 100;
white-space: nowrap;
@media screen {
position: absolute;
bottom: 0;
}
}
.tdc-repetition li {
margin-bottom: 5mm;
padding-left: 3mm;
dl {
display: grid;
grid-template-columns: auto 1fr;
gap: 1mm 10mm;
}
.invisible {
visibility: hidden;
height: 0;
}
}
}

View file

@ -1,4 +1,4 @@
@import 'constants';
@import "constants";
#attestation-edit {
.attestation-preview {
@ -20,7 +20,7 @@
min-height: 400px;
}
.tiptap-editor {
.editor {
// Visual zones
.header .flex-1,
h1 {
@ -63,6 +63,17 @@
li p {
margin-bottom: 0;
}
// Tags
.fr-menu__list {
max-height: 500px;
}
.fr-tag:not(.fr-menu .fr-tag) {
// style span rendered by tiptap like a button/link tag
color: var(--text-action-high-blue-france);
background-color: var(--background-action-low-blue-france);
}
}
// scss-lint:disable SelectorFormat

View file

@ -1,5 +1,5 @@
@import 'colors';
@import 'constants';
@import "colors";
@import "constants";
#attestation-template-edit {
.text-active {

View file

@ -1,7 +1,7 @@
@import 'colors';
@import 'constants';
@import 'placeholders';
@import 'mixins';
@import "colors";
@import "constants";
@import "placeholders";
@import "mixins";
#auth,
#agentconnect {
@ -48,15 +48,15 @@
}
.sign-in-form .form {
input[type='email'] {
input[type="email"] {
margin-bottom: $default-spacer;
}
input[type='password'] {
input[type="password"] {
margin-bottom: $default-spacer;
}
input[type='checkbox'] {
input[type="checkbox"] {
margin-bottom: 0;
}
}

View file

@ -1,5 +1,5 @@
@import 'colors';
@import 'constants';
@import "colors";
@import "constants";
.autosave {
position: relative;

View file

@ -0,0 +1,34 @@
@import "colors";
@import "constants";
.badge {
padding: 0 5px;
font-size: 14px;
font-weight: bold;
text-align: center;
white-space: nowrap;
border-radius: 100px;
background-color: rgba(0, 0, 0, 0.08);
vertical-align: top;
&.baseline {
vertical-align: baseline;
}
&.warning {
background-color: $orange;
color: #FFFFFF;
}
}
.badge-group {
display: flex;
.fr-badge {
margin-right: $default-spacer;
}
.fr-badge:last-child {
margin-right: 0;
}
}

View file

@ -6,8 +6,8 @@
right: -35px;
transform: rotate(45deg);
width: 150px;
background-color: #008cba;
color: #ffffff;
background-color: #008CBA;
color: #FFFFFF;
padding: 5px;
font-size: 15px;
font-weight: 700;

View file

@ -1,6 +1,6 @@
@import 'colors';
@import 'constants';
@import 'placeholders';
@import "colors";
@import "constants";
@import "placeholders";
.button {
@extend %outline;
@ -11,7 +11,7 @@
border: 1px solid $border-grey;
font-size: 14px;
line-height: 20px;
background-color: #ffffff;
background-color: #FFFFFF;
color: $black;
text-align: center;
-webkit-appearance: none;
@ -29,7 +29,7 @@
}
&.primary {
color: #ffffff;
color: #FFFFFF;
border-color: $blue-france-700;
background-color: $blue-france-700;
@ -41,10 +41,10 @@
&.secondary {
color: $blue-france-700;
border-color: $blue-france-700;
background-color: #ffffff;
background-color: #FFFFFF;
&:hover:not(:disabled) {
color: #ffffff;
color: #FFFFFF;
background: $blue-france-700;
}
}
@ -52,10 +52,10 @@
&.danger {
color: $black;
border-color: $border-grey;
background-color: #ffffff;
background-color: #FFFFFF;
&:hover:not(:disabled) {
color: #ffffff;
color: #FFFFFF;
border-color: $medium-red;
background-color: $medium-red;
@ -66,35 +66,35 @@
}
&.accepted {
color: #ffffff;
color: #FFFFFF;
border-color: $green;
background-color: $green;
&:hover:not(:disabled) {
color: $green;
background-color: #ffffff;
background-color: #FFFFFF;
}
}
&.without-continuation {
color: #ffffff;
color: #FFFFFF;
border-color: $black;
background-color: $black;
&:hover:not(:disabled) {
color: $black;
background-color: #ffffff;
background-color: #FFFFFF;
}
}
&.refused {
color: #ffffff;
color: #FFFFFF;
border-color: $dark-red;
background-color: $dark-red;
&:hover:not(:disabled) {
color: $dark-red;
background-color: #ffffff;
background-color: #FFFFFF;
}
}
@ -151,8 +151,10 @@
.dropdown-button {
white-space: nowrap;
[aria-hidden='true'].fr-ml-2v::after {
content: '';
&::after {
content: "";
margin-left: $default-spacer;
font-weight: bold;
}
&.icon-only {
@ -172,12 +174,13 @@
}
}
[data-fr-theme='dark'] .dropdown-content {
[data-fr-theme="dark"] .dropdown-content {
border: none;
background: var(--background-action-low-blue-france);
}
[data-fr-theme='dark'] .dropdown-items {
[data-fr-theme="dark"] .dropdown-items {
li {
&:not(.inactive) {
&:hover,
@ -194,7 +197,7 @@
.dropdown-content {
border: 1px solid $border-grey;
background: #ffffff;
background: #FFFFFF;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
position: absolute;
right: 0;
@ -240,57 +243,6 @@ ul.dropdown-items {
margin-bottom: 0;
}
// Apply custom styles to DSFR fr-translate component
.fr-translate__btn.fr-btn.help-btn::before {
content: none;
}
.help-content.fr-menu ul.fr-menu__list {
--text-decoration: underline;
text-align: left;
font-size: 1rem;
@media (min-width: 62em) {
font-size: 0.875rem;
padding: 0;
width: 360px;
}
}
.help-content.fr-menu ul.fr-menu__list li {
padding: 0.75rem 1rem;
@media (min-width: 62em) {
padding-right: 1rem;
padding-left: 1rem;
}
}
.help-content.fr-menu ul.fr-menu__list li:not(:last-child) {
@media (min-width: 62em) {
border-bottom: 1px solid $border-grey;
}
}
.help-content.fr-menu ul.fr-menu__list {
h1,
p {
font-size: inherit;
line-height: inherit;
}
dd {
word-break: break-word;
}
}
.help-content a[href]:hover,
.help-content a[href]:active {
@media (hover: hover) and (pointer: fine) {
--text-decoration: none;
}
}
.dropdown-items {
li {
display: flex;
@ -342,7 +294,7 @@ ul.dropdown-items {
// Make child links fill the whole clickable area
> a,
.dropdown-items-link {
.dropdown-items-link {
display: flex;
flex-grow: 1;
margin: -$default-padding;
@ -365,7 +317,7 @@ ul.dropdown-items {
}
p + h4,
p + p {
p + p, {
margin-top: $default-spacer;
}
}
@ -374,11 +326,7 @@ ul.dropdown-items {
padding: 2 * $default-spacer;
&.large {
width: 90vw;
@media (min-width: 62em) {
width: 40vw;
}
width: 340px;
}
ul {
@ -397,7 +345,3 @@ ul.dropdown-items {
content: none !important;
}
}
.back-btn {
line-height: 1.75rem;
}

View file

@ -1,7 +1,8 @@
@import 'colors';
@import 'constants';
@import "colors";
@import "constants";
[data-fr-theme='dark'] .card {
[data-fr-theme="dark"] .card {
background: none;
border: 1px solid var(--background-action-low-blue-france);
}
@ -10,7 +11,7 @@
padding: ($default-spacer * 3) ($default-spacer * 2);
border: 1px solid $border-grey;
margin-bottom: $default-spacer * 4;
background: #ffffff;
background: #FFFFFF;
.card-title {
font-weight: bold;
@ -50,7 +51,6 @@
&.no-list {
ul {
list-style: none !important;
padding-left: 0;
}
}

View file

@ -1,5 +1,5 @@
@import 'colors';
@import 'constants';
@import "colors";
@import "constants";
.fr-tile-subtitle {
min-height: 7rem;

View file

@ -1,4 +1,6 @@
@import 'colors';
@import "colors";
@import "constants";
.areas {
margin-bottom: 10px;
@ -8,49 +10,60 @@
}
}
.ds-ctrl button {
color: $dark-grey;
.form [data-react-component-value='MapEditor'] [data-reach-combobox-input] {
margin-bottom: 0;
}
&.on,
&:hover {
background-color: rgba(0, 0, 0, 0.05);
.map-style-control {
position: absolute;
bottom: 4px;
left: 10px;
img {
width: 100%;
}
button {
padding: 0;
border: none;
cursor: pointer;
> div {
position: absolute;
bottom: 5px;
left: 5px;
}
}
.map-style-panel {
z-index: 1;
padding: $default-spacer;
margin-bottom: $default-spacer;
ul {
list-style: none;
padding: $default-spacer;
padding-bottom: 0;
margin-bottom: -$default-spacer;
label {
font-size: 12px;
font-weight: normal;
}
}
}
}
.react-aria-popover {
&[data-placement='top'] {
--origin: translateY(8px);
}
.cadastres-selection-control {
z-index: 1;
position: absolute;
top: 135px;
left: 10px;
&[data-placement='bottom'] {
--origin: translateY(-8px);
}
&[data-placement='right'] {
--origin: translateX(-8px);
}
&[data-placement='left'] {
--origin: translateX(8px);
}
&[data-entering] {
animation: popover-slide 200ms;
}
&[data-exiting] {
animation: popover-slide 200ms reverse ease-in;
}
}
@keyframes popover-slide {
from {
transform: var(--origin);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
button {
&.on,
&:hover {
background-color: rgba(0, 0, 0, 0.05);
}
}
}

View file

@ -1,5 +1,5 @@
@import 'constants';
@import 'colors';
@import "constants";
@import "colors";
table.cnaf {
margin: 2 * $default-padding 0 $default-padding $default-padding;
@ -7,7 +7,7 @@ table.cnaf {
caption {
font-weight: bold;
margin-left: -$default-padding;
margin-left: - $default-padding;
margin-bottom: $default-spacer;
text-align: left;
}

View file

@ -1,4 +1,4 @@
@import 'colors';
@import "colors";
.code-block {
background-color: $black;

View file

@ -1,5 +1,5 @@
@import 'constants';
@import 'colors';
@import "constants";
@import "colors";
.code-example {
background-color: var(--background-contrast-grey);
@ -13,6 +13,7 @@
margin-right: auto;
padding: $default-padding;
}
}
pre {

View file

@ -1,4 +1,4 @@
@import 'constants';
@import "constants";
.commencer {
@media (max-width: 62em) {

Some files were not shown because too many files have changed in this diff Show more