From 60d35b8494a0414f4a6a15c83c9ee7e1b6783394 Mon Sep 17 00:00:00 2001 From: Fedaya Date: Fri, 23 Jan 2026 07:56:23 +0100 Subject: [PATCH] oups forgot main folder --- .gitignore | 218 ++++++++++++++++++++++++++++++++++++++++++ .vscode/settings.json | 16 ++++ dev_requirements.txt | 2 + items.json | 1 + package-lock.json | 73 ++++++++++++++ package.json | 8 ++ requirements.txt | 4 + user.json | 1 + villes.json | 1 + 9 files changed, 324 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 dev_requirements.txt create mode 100644 items.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 requirements.txt create mode 100644 user.json create mode 100644 villes.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4ccf5f8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,218 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[codz] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py.cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +# Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +# poetry.lock +# poetry.toml + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python. +# https://pdm-project.org/en/latest/usage/project/#working-with-version-control +# pdm.lock +# pdm.toml +.pdm-python +.pdm-build/ + +# pixi +# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control. +# pixi.lock +# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one +# in the .venv directory. It is recommended not to include this directory in version control. +.pixi + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# Redis +*.rdb +*.aof +*.pid + +# RabbitMQ +mnesia/ +rabbitmq/ +rabbitmq-data/ + +# ActiveMQ +activemq-data/ + +# SageMath parsed files +*.sage.py + +# Environments +.env +.envrc +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +# .idea/ + +# Abstra +# Abstra is an AI-powered process automation framework. +# Ignore directories containing user credentials, local state, and settings. +# Learn more at https://abstra.io/docs +.abstra/ + +# Visual Studio Code +# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore +# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore +# and can be added to the global gitignore or merged into this file. However, if you prefer, +# you could uncomment the following to ignore the entire vscode folder +# .vscode/ + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc + +# Marimo +marimo/_static/ +marimo/_lsp/ +__marimo__/ + +# Streamlit +.streamlit/secrets.toml + +node_modules diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d96b10a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "[python]": { + "diffEditor.ignoreTrimWhitespace": false, + "editor.defaultColorDecorators": "never", + "editor.formatOnType": false, + "editor.wordBasedSuggestions": "off", + "editor.formatOnSave": true, + "editor.defaultFormatter": "charliermarsh.ruff", + "editor.codeActionsOnSave": { + "source.fixAll": "explicit", + "source.organizeImports": "explicit", + } + }, + "ruff.nativeServer": true, + "ruff.lineLength": 119 +} \ No newline at end of file diff --git a/dev_requirements.txt b/dev_requirements.txt new file mode 100644 index 0000000..25e1f44 --- /dev/null +++ b/dev_requirements.txt @@ -0,0 +1,2 @@ +ruff~=0.14.13 +ipython~=9.9.0 diff --git a/items.json b/items.json new file mode 100644 index 0000000..4d14a5c --- /dev/null +++ b/items.json @@ -0,0 +1 @@ +[{"model": "questionnaire.pointmanifeste", "pk": 1, "fields": {"titre": "Continuité du réseau cyclable entre communes limitrophes", "texte": "Penser et réaliser le tracé des axes cyclables comme un maillage à l’échelle du territoire, sans discontinuités aux frontières administratives ce qui devrait être facilité par le passage de la compétence voirie à l’échelle communautaire. Une coordination inter-communale garantit des itinéraires sécurisés qui assurent naturellement les trajets quotidiens des cyclistes.", "exemple": "La nouvelle piste cyclable en cours de réalisation entre Sainte Gemmes et Angers s’arrête pour l’instant à l’entrée d’Angers malgré un accident mortel Avenue Maurice Tardat il y a peu de temps.\r\n\r\nAu nord d’Angers, la voie verte permet de rejoindre Avrillé et Montreuil-Juigné depuis Saint- Serge mais son revêtement est dissuasif par temps pluvieux et les nombreuses barrières sont peu visibles de nuit et contraignent les familles à vélos.", "ordre": 1, "est_commun": true, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 2, "fields": {"titre": "Homogénéisation de la signalétique et jalonnement du réseau", "texte": "Uniformiser les panneaux, marquages au sol et repères visuels sur toute l’agglomération pour faciliter la compréhension du réseau et réduisent les incertitudes, tant du côté des cyclistes et piétons que des usagers motorisés. Une charte graphique partagée et la vérification de sa réalisation sur le terrain assure cohérence et lisibilité pour tous les usagers.\r\n\r\nInstaller un système de balisage continu (numérotation, couleur, repères kilométriques) qui guide le cycliste du point A au point B. Le jalonnement facilite la navigation, renforce le sentiment de sécurité et encourage l’usage du vélo.", "exemple": "La multiplication des revêtements pour les aménagements cyclables aux abords des zones piétonnes et dans les carrefours provoquent des conflits entre les usagers du vélo et les usagers de la marche. Ex : au pied du nouvel immeuble Métamorphose, nouveau carrefour Roi René, côté Place Kennedy, Place Molière.", "ordre": 2, "est_commun": true, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 3, "fields": {"titre": "Élaboration d’un plan vélo intégré à un plan global de déplacements", "texte": "Dans chaque commune et l’agglomération, se doter d’un plan vélo articulé avec un plan de mobilité déplacements incluant marche, covoiturage, transports en commun et véhicules motorisés. Cette approche holistique, construite en concertation avec les usagers, optimise les flux, évite les conflits d’usage et favorise les déplacements actifs. Dans la hiérarchie des voies, l’aménagement des axes secondaires doit permettre une mobilité active sécurisée en évitant qu’ils soient utilisés par les motorisés pour shunter les axes principaux.", "exemple": "Ex : Rue du pré-pigeon dans le quartier Saint Serge, Rue Chèvre dans le quartier de la Madeleine, Rue de Villesicard dans le quartier des Justices.", "ordre": 3, "est_commun": true, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 4, "fields": {"titre": "Aménagements prioritaires autour des établissements scolaires, infrastructures culturelles et sportives (rayon 1 km)", "texte": "Dans un périmètre d’un kilomètre autour de chaque établissement scolaire, infrastructures culturelles et sportives, créer des voies protégées, des zones de ralentissement et des stationnements vélos sécurisés. \r\n\r\nAux abords immédiats des écoles, fermer la rue à la circulation motorisée aux heures d’entrée-sortie de façon à améliorer la sécurité et la convivialité des groupes de parents-enfants.", "exemple": "Etendre les exemples des Rues Scolaires de l’école Dacier et de la Ville de Trélazé.", "ordre": 4, "est_commun": false, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 5, "fields": {"titre": "Éducation au partage de l’espace", "texte": "Déployer des programmes éducatifs dans les écoles et de la communication ambitieuse auprès du grand public pour sensibiliser au respect mutuel entre piétons, cyclistes, automobilistes et usagers des transports publics. \r\nLe SRAV (Savoir Rouler à Vélo) est prévu dans les programmes scolaires du cycle 3 et doit être mis en place dans les règles de qualité attendues, soit 3 sorties dans l’espace public en petits groupes. \r\nLes formations et sensibilisations pour adultes sont également à promouvoir et aider financièrement tant dans les entreprises et administrations qu’auprès du grand public. \r\nCes actions permettent que tous les usagers maîtrisent la conduite en espace partagé et constituent le socle d’une culture de mobilité sûre et inclusive.", "exemple": "", "ordre": 5, "est_commun": true, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 6, "fields": {"titre": "Intégration précoce des usagers des modes actifs dans les projets d’aménagement", "texte": "Impliquer les associations cyclistes, les usagers et leur expertise quotidienne dès la phase d’étude des projets. Cette concertation permet d’anticiper les besoins, d’ajuster les tracés, d’éviter les aménagements qui marginalisent les déplacements non motorisés ou les mettent en insécurité, ainsi que de limiter les réajustements a posteriori, souvent très coûteux.", "exemple": "", "ordre": 6, "est_commun": true, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 7, "fields": {"titre": "Prise en compte du vélo dans les aménagements temporaires liées aux travaux", "texte": "Lors de toute perturbation du trafic, prévoir des itinéraires et aménagements alternatifs sécurisés pour les cyclistes, avec signalisation adaptée et maintien de la continuité du réseau, en lien avec les maîtres d’oeuvre des travaux. Ignorer le vélo dans ces situations crée des zones à risque.", "exemple": "", "ordre": 7, "est_commun": true, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 8, "fields": {"titre": "Augmentation du budget dédié aux mobilités actives – 30 €/habitant·e / an", "texte": "Pour assurer une meilleure part modale des mobilités actives, consacrer un financement suffisant chaque année à la création, l’entretien et la sécurisation des infrastructures cyclables dans leur ensemble. Un budget tenant compte d’un montant de 30€/habitant.e/an est une pratique minimale recommandée par l’ADEME et le gouvernement dans le plan Ambition France Transports.\r\n\r\nA ceci s’ajoute le financement d’actions de sensibilisation et communication auprès du grand public et de formation auprès des publics les plus précaires, subissant de nombreux freins aux déplacements.", "exemple": "", "ordre": 8, "est_commun": true, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 9, "fields": {"titre": "Suivi, évaluation et communication des indicateurs de sécurité", "texte": "Mettre en place un tableau de bord public recensant accidents, zones critiques et progrès réalisés. La transparence des données alimente les décisions d’amélioration continue et montre l’engagement réel des élus envers la sécurité cycliste et piétonne.", "exemple": "", "ordre": 9, "est_commun": true, "ville": null}}, {"model": "questionnaire.pointmanifeste", "pk": 10, "fields": {"titre": "Point spécifique à chaque commune, à la discrétion des antennes", "texte": "Piétonniser le cœur de ville d’Angers. Réduire la place de la voiture en ville en apaisant la circulation entre les boulevards Foch, Résistance et Déportation, Carnot, Ayrault, Arago, Arnaud, Général de Gaulle et roi René, en donnant la priorité aux transports en commun, aux piétons et aux modes de déplacement actifs et en limitant l’accès au centre-ville aux seuls véhicules des riverains, des professionnels (artisans, livreurs…), des personnes en situation de handicap et des usagers des parkings.", "exemple": "", "ordre": 10, "est_commun": false, "ville": 49007}}] diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0352dab --- /dev/null +++ b/package-lock.json @@ -0,0 +1,73 @@ +{ + "name": "manifeste_velo", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "bootstrap": "5.3.*", + "bootstrap-icons": "1.13.*", + "htmx.org": "2.0.*", + "leaflet": "~1.9.4" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/bootstrap-icons": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.13.1.tgz", + "integrity": "sha512-ijombt4v6bv5CLeXvRWKy7CuM3TRTuPEuGaGKvTV5cz65rQSY8RQ2JcHt6b90cBBAC7s8fsf2EkQDldzCoXUjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT" + }, + "node_modules/htmx.org": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/htmx.org/-/htmx.org-2.0.8.tgz", + "integrity": "sha512-fm297iru0iWsNJlBrjvtN7V9zjaxd+69Oqjh4F/Vq9Wwi2kFisLcrLCiv5oBX0KLfOX/zG8AUo9ROMU5XUB44Q==", + "license": "0BSD" + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a82223c --- /dev/null +++ b/package.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "bootstrap": "5.3.*", + "bootstrap-icons": "1.13.*", + "htmx.org": "2.0.*", + "leaflet": "~1.9.4" + } +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6a9a599 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +Django~=6.0.0 +django-node-assets~=0.9.15 +daphne~=4.2.1 +django-extensions~=4.1 \ No newline at end of file diff --git a/user.json b/user.json new file mode 100644 index 0000000..6fa81b2 --- /dev/null +++ b/user.json @@ -0,0 +1 @@ +[{"model": "auth.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$1200000$qG4nk0dJBg3aR95tGWLbmW$xH+nWrxa1gfxZr73OALCJ7mQzcSdGoBrKszrSI8btnE=", "last_login": null, "is_superuser": true, "username": "admin", "first_name": "", "last_name": "", "email": "", "is_staff": true, "is_active": true, "date_joined": "2026-01-23T07:32:31.162", "groups": [], "user_permissions": []}}] diff --git a/villes.json b/villes.json new file mode 100644 index 0000000..30ec576 --- /dev/null +++ b/villes.json @@ -0,0 +1 @@ +[{"model": "questionnaire.ville", "pk": 49007, "fields": {"nom": "Angers", "slug": "angers"}}, {"model": "questionnaire.ville", "pk": 49015, "fields": {"nom": "Avrillé", "slug": "avrille"}}, {"model": "questionnaire.ville", "pk": 49020, "fields": {"nom": "Beaucouzé", "slug": "beaucouze"}}, {"model": "questionnaire.ville", "pk": 49028, "fields": {"nom": "Béhuard", "slug": "behuard"}}, {"model": "questionnaire.ville", "pk": 49035, "fields": {"nom": "Bouchemaine", "slug": "bouchemaine"}}, {"model": "questionnaire.ville", "pk": 49048, "fields": {"nom": "Briollay", "slug": "briollay"}}, {"model": "questionnaire.ville", "pk": 49055, "fields": {"nom": "Cantenay-Épinard", "slug": "cantenay-epinard"}}, {"model": "questionnaire.ville", "pk": 49129, "fields": {"nom": "Écouflant", "slug": "ecouflant"}}, {"model": "questionnaire.ville", "pk": 49130, "fields": {"nom": "Écuillé", "slug": "ecuille"}}, {"model": "questionnaire.ville", "pk": 49135, "fields": {"nom": "Feneu", "slug": "feneu"}}, {"model": "questionnaire.ville", "pk": 49200, "fields": {"nom": "Longuenée-en-Anjou", "slug": "longuenee-en-anjou"}}, {"model": "questionnaire.ville", "pk": 49214, "fields": {"nom": "Montreuil-Juigné", "slug": "montreuil-juigne"}}, {"model": "questionnaire.ville", "pk": 49223, "fields": {"nom": "Mûrs-Érigné", "slug": "murs-erigne"}}, {"model": "questionnaire.ville", "pk": 49241, "fields": {"nom": "Le Plessis-Grammoire", "slug": "le-plessis-grammoire"}}, {"model": "questionnaire.ville", "pk": 49246, "fields": {"nom": "Les Ponts-de-Cé", "slug": "les-ponts-de-ce"}}, {"model": "questionnaire.ville", "pk": 49267, "fields": {"nom": "Saint-Barthélémy-d'Anjou", "slug": "saint-barthelemy-danjou"}}, {"model": "questionnaire.ville", "pk": 49271, "fields": {"nom": "Saint-Clément-de-la-Place", "slug": "saint-clement-de-la-place"}}, {"model": "questionnaire.ville", "pk": 49278, "fields": {"nom": "Saint-Gemmes-sur-Loire", "slug": "saint-gemmes-sur-loire"}}, {"model": "questionnaire.ville", "pk": 49294, "fields": {"nom": "Saint-Lambert-la-Potherie", "slug": "saint-lambert-la-potherie"}}, {"model": "questionnaire.ville", "pk": 49298, "fields": {"nom": "Saint-Léger-de-Linière", "slug": "saint-leger-de-liniere"}}, {"model": "questionnaire.ville", "pk": 49306, "fields": {"nom": "Saint-Martin-du-Fouilloux", "slug": "saint-martin-du-fouilloux"}}, {"model": "questionnaire.ville", "pk": 49307, "fields": {"nom": "Loire-Authion", "slug": "loire-authion"}}, {"model": "questionnaire.ville", "pk": 49323, "fields": {"nom": "Verrières-en-Anjou", "slug": "verrieres-en-anjou"}}, {"model": "questionnaire.ville", "pk": 49326, "fields": {"nom": "Sarrigné", "slug": "sarrigne"}}, {"model": "questionnaire.ville", "pk": 49329, "fields": {"nom": "Savennières", "slug": "savennieres"}}, {"model": "questionnaire.ville", "pk": 49338, "fields": {"nom": "Soulaines-sur-Aubance", "slug": "soulaines-sur-aubance"}}, {"model": "questionnaire.ville", "pk": 49339, "fields": {"nom": "Soulaire-et-Bourg", "slug": "soulaire-et-bourg"}}, {"model": "questionnaire.ville", "pk": 49353, "fields": {"nom": "Trélazé", "slug": "trelaze"}}, {"model": "questionnaire.ville", "pk": 49377, "fields": {"nom": "Rives-du-Loir-en-Anjou", "slug": "rives-du-loir-en-anjou"}}]