Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Atelier Documentation technique #259

Merged
merged 16 commits into from
Feb 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## Description / Objectif / Motivation / Contexte
<!-- Pourquoi ce changement est-il important ?
Quel problème résout-il ?
Veuillez inclure un résumé des modifications et du problème associé.
Veuillez également inclure la motivation et le contexte pertinent.
Énumérez toutes les dépendances requises par ce changement.
-->

<!--- Si vous suggérez une nouvelle fonctionnalité ou un changement,
merci d'ouvrir un ticket (issue) avant -->
Ticket: #12345

## Cas d'acceptance (Comment cela a-t-il été testé ?)
<!-- ou lien https://... vers ticket avec les cas de test
Si vous corrigez un⋅e bogue, il devrait y avoir un ticket
le décrivant avec des étapes pour le reproduire -->

<!--
Veuillez décrire les tests que vous avez effectués pour vérifier vos modifications.
Fournir des instructions pour que nous puissions reproduire.
Veuillez également énumérer tous les détails pertinents de votre configuration de test.
-->

- [ ] Test A: Étant donné <!--situation--> Quand <!--action--> Alors <!--attendu-->
- [ ] Test B: Étant donné <!--situation--> Quand <!--action--> Alors <!--attendu-->

<!-- Mentionnez si il y a des tests automatisés pour ce changement 🙏 -->
<!-- Joindre des captures d'écran (le cas échéant) -->

## Type

<!--Veuillez supprimer des options qui ne sont pas pertinentes.-->
- [ ] Correction de bogue (modification non cassante qui résout un problème).
- [ ] Nouvelle fonctionnalité (changement non cassant qui ajoute une fonctionnalité).
- [ ] Changement cassant (correction qui entraînerait la/une fonctionnalité existante à ne pas fonctionner comme précédemment).
- [ ] Changement nécessitant une mise à jour de la documentation utilisteur.

## Definition du fini

- [ ] Les cas d'acceptance ci-dessus ont été vérifiés.
- [ ] Revue par au moins un⋅e relecteur⋅ice autorisé⋅e.
- [ ] Documentation(s) mise(s) à jour (utilisteur, technique, commentaires de code compris).
- [ ] Si des changements _cassants_ sont introduits, ils sont dûement décrits
et les étapes de montée de version décrites (éventuellement scriptés).
43 changes: 43 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Publish to GitHub Pages
on:
push:
branches:
#- main
#- develop
- feature/**
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: github-pages
cancel-in-progress: false
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Configure Pages
uses: actions/configure-pages@v5
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
- name: Install Antora
run: (cd src/docs && npm ci)
- name: Generate Site
run: (cd src/docs && npm run prestart)
- name: Upload Artifacts
uses: actions/upload-pages-artifact@v3
with:
path: build/site
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
145 changes: 145 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
= ESUP Stage

ESUP STAGE est la refonte de l'application pStage. L'application a été complètement réécrite pour reprendre et améliorer les grandes et fonctionnalités : produire une convention de stage et ses avenants dans le cadre d'un processus de validation adapté.

== https://esupportail.github.io/esup-stage/[→ Documentation technique Esup-Stage]

Documentation technique link:src/docs/modules/ROOT/pages/index.adoc[(source)]

ifndef::env-github[]
include::src/docs/modules/ROOT/pages/ESUP-STAGE.adoc[tag=compilation]
endif::[]
ifdef::env-github[]
== link:src/docs/modules/ROOT/pages/ESUP-STAGE.adoc#compilation[→ Compilation]
endif::[]



== Integration

* Build war

[,console]
----
[user@pc ~/git/eStage]$ mvn clean package
...
[user@pc ~/git/eStage]$ ls target/*.war
target/ROOT.war
[user@pc ~/git/eStage]$
----

* Execution devel

Cette execution passe par le fichier de configuration "src/main/resources-filtered/application.properties"

[,console]
----
[user@pc ~/git/eStage]$ mvn -Pdev clean package cargo:run
...
----

== Pré-requis

* la variable appli.data_dir dans estage.properties pointe sur le dossier d'upload du projet. Ce dossier doit contenir la structure suivante :
** `centregestion`
*** `consigne-documents`
*** `logos`
** `images`
** `signatures`

Par exemple si `appli.data_dir=/etc/eStage/uploads` on aura :

----
/etc
|_/eStage
|_/uploads
|_/centregestion
|_/consigne-documents
|_/logos
|_/images
|_/signatures
----

== CAS

Par défaut, l'application attend du serveur CAS une réponse au format JSON. Si le serveur CAS répond au format XML,
il faut ajouter la ligne suivante au fichier `estage.properties` :

[,properties]
----
cas.response_type=xml
----

== link:src/docs/modules/ROOT/pages/signature.adoc[→ Signature électronique (optionnel)]

== Procédure d'installation en environnement de dev

* ajouter un fichier src/main/resources/estage.properties basé sur le fichier src/main/resources/estage-example.properties
* dans ce fichier, paramétrer la variable `appli.admin_technique` en ajoutant votre login cas (les logins sont séparés par des ;)
* lancer la génération des classes java pour le client Docaposte avec la commande maven `-Pdev jaxb2:generate` : les classes sont générées dans `org/esup_portail/esup_stage/docaposte/gen`
* lancer le serveur avec une commande maven `-Pdev clean package cargo:run`. Le profil `dev` permet de désactiver l'installation de node, npm et du build angular. Si besoin, il suffit de commenter la partie `execution` se trouvant au niveau du profil `dev`.
* pour lancer le frontend dev :
** sans Docker : lancer la commande `ng serve --host localhost.dauphine.fr --proxy-config src/proxy.conf.json` au niveau du dossier frontend (node et npm devront être installés)
** avec Docker :
*** se positionner au niveau du dossier `frontend`
*** lancer les commandes suivantes pour initier et installer les nodes modules :
**** `docker-compose build`
**** `docker-compose run --rm --entrypoint=npm frontend ci`
*** lancer la commande suivante pour lancer le fontend en dev : `docker-compose up -d`
* aller sur l'application à l'adresse http://localhost.dauphine.fr:8080/frontend/#/ et se connecter une première fois
* ouvrir un nouvel onglet sur http://localhost.dauphine.fr:8700 (ou http://localhost.dauphine.fr:4200) pour accéder à l'application en mode angular dev
* pour se déconnecter, aller sur http://localhost.dauphine.fr:4200/logout

== Procédure d'installation

https://github.com/EsupPortail/esup-stage/wiki

== Installation de ckeditor5

* aller sur le site https://ckeditor.com/ckeditor-5/online-builder/ pour générer ckeditor5 avec des plugins personnalisés
* choisir l'éditeur "Classic" (le plugin "Source code" ne fonctionne actuellement qu'avec l'éditeur Classic)
* enlever les plugins nécessitants une license PRO
* ci-dessous la liste des plugins actuelle de l'application (* : obligatoire pour le bon fonctionnement minimal) :
** Alignement *
** Autoformat
** Base64 upload adapter *
** Block quote *
** Bold *
** Find and replace *
** Font background color *
** Font color *
** Font family *
** Font size *
** Heading *
** Highlight
** Horizontal line
** Image *
** Image caption *
** Image resize *
** Image style *
** Image toolbar *
** Image upload *
** Indent *
** Indent block *
** Italic *
** Link
** List *
** List properties *
** Media embed
** Page break *
** Paste front Office
** Remove format *
** Source editing *
** Strikethrough *
** Table *
** Table cell properties *
** Table column resize *
** Table properties *
** Table toolbar *
** Text transformation *
** To-do list
** Underline *
* à l'étape suivante, disposer comme voulu les éléments de la barre d'outils de l'éditeur
* une fois terminé, choisir la langue française et télécharger la librairie
* supprimer tout le contenu de `src/frontend/src/custom-ck5` pour y mettre celui du dossier `build/` de la librairie téléchargée
* mettre à jour ou installer si nécessaire la librairie `@ckeditor/ckeditor5-angular` et les builds `@ckeditor/ckeditor5-build-classic` ou autre correspondant au type d'éditeur choisi à la 1ère étape
Loading
Loading