Compare commits

..

8 Commits

Author SHA1 Message Date
39064633ed add CI workflow to build and push MkDocs Docker image
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-06-30 17:35:13 +02:00
e769a9dd70 prepare an image to build the doc 2025-06-30 16:25:59 +02:00
96a7cbe954 set up mkdocs 2025-06-30 14:38:38 +02:00
9fcc601730 REstore build for admin
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-30 13:11:30 +02:00
5e009e19c8 Add idea file for python project 2025-06-30 12:32:15 +02:00
f531de0351 Merge pull request 'Update documentation for gender to use GenderEntity in generation of docs' (#10) from docgen-gender-documentation into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #10
2024-11-25 17:29:47 +00:00
f556e446fa Add a not about deprecation of person's gender key
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2024-11-25 17:28:53 +00:00
6c748eb1fe Update documentation for gender to use GenderEntity in generation of docs
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2024-11-25 17:01:05 +00:00
128 changed files with 1354 additions and 117 deletions

View File

@@ -0,0 +1,94 @@
name: Build and Push MkDocs Docker Image
on:
push:
branches:
- main
- master
paths:
- 'Dockerfile'
- 'user/**'
- 'admin/**'
- '.gitea/workflows/**'
workflow_dispatch:
jobs:
build-and-push:
runs-on: cth-ubuntu-latest
env:
REGISTRY: ${{ vars.REGISTRY }}
IMAGE: ${{ vars.IMAGE }}
IMAGE_NAME: ${{ env.REGISTRY }}/${{ IMAGE }}:${{ github.sha }}
KUBE_CA: ${{ vars.KUBE_CA }}
KUBE_SERVER: ${{ vars.KUBE_SERVER }}
REGISTRY_USERNAME: ${{ vars.REGISTRY_USERNAME }}
NAMESPACE: ${{ vars.NAMESPACE }}
DEPLOYMENT_NAME: ${{ vars.DEPLOYMENT_NAME }}
CONTAINER: ${{ vars.CONTAINER }}
steps:
- name: Checkout code
uses: https://github.com/actions/checkout@v4
- name: Set up Docker Buildx
uses: https://github.com/docker/setup-buildx-action@v3
- name: Log in to Docker registry
uses: https://github.com/docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Build and push
id: build-push
uses: https://github.com/docker/build-push-action@v5
with:
context: .
file: documentation.Dockerfile
push: true
tags: '${{ env.IMAGE_NAME }}'
- name: Install kubectl
run: |
curl -LO "https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
- name: Set up kubeconfig
env:
KUBE_SERVER: ${{ env.KUBE_SERVER }} # e.g. https://<API_ENDPOINT>
KUBE_CA: ${{ env.KUBE_CA }} # base64 encoded, or fetched via kubectl config view
KUBE_TOKEN: ${{ secrets.KUBE_TOKEN }} # Token generated via 'kubectl create token'
run: |
mkdir -p ~/.kube
cat <<EOF > ~/.kube/config
apiVersion: v1
kind: Config
clusters:
- name: default-cluster
cluster:
server: "$KUBE_SERVER"
certificate-authority-data: "$KUBE_CA"
contexts:
- name: default-context
context:
cluster: default-cluster
user: gitea-actions
current-context: default-context
users:
- name: gitea-actions
user:
token: "$KUBE_TOKEN"
EOF
- name: Patch Deployment Image
env:
NAMESPACE: ${{ env.NAMESPACE }}
DEPLOYMENT: ${{ env.DEPLOYMENT_NAME }}
CONTAINER: ${{ env.CONTAINER }}
run: |
echo "deploy new tag: $TAG_IMAGE"
env
kubectl -n ${NAMESPACE} set image deployment/${DEPLOYMENT} ${CONTAINER}=${IMAGE_NAME}

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
build/*
*-manual.pdf
.venv/

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

17
.idea/manuals.iml generated Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.10 (manuals)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TemplatesService">
<option name="TEMPLATE_FOLDERS">
<list>
<option value="$MODULE_DIR$/pandoc/cl/templates" />
</list>
</option>
</component>
</module>

6
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.10 (manuals)" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/manuals.iml" filepath="$PROJECT_DIR$/.idea/manuals.iml" />
</modules>
</component>
</project>

9
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pandoc/cl" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pandoc/template" vcs="Git" />
</component>
</project>

23
Dockerfile Normal file
View File

@@ -0,0 +1,23 @@
# -------- Stage 1: Build the documentation using mkdocs --------
FROM python:3.13-slim AS builder
WORKDIR /build
# Install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY user/ user/
COPY admin/ admin/
RUN ls
RUN cd user && mkdocs build --clean && cd ..
RUN cd admin && mkdocs build --clean && cd ..
# -------- Stage 2: Serve the built documentation with nginx --------
FROM nginx:alpine
# Copy the built site from the builder stage
COPY --from=builder /build/admin/site /usr/share/nginx/html/admin
COPY --from=builder /build/user/site /usr/share/nginx/html/user

1
admin/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
site/*

View File

@@ -1,4 +1,3 @@
# Génération de documents
L'administrateur fonctionnel prépare la génération des documents.
@@ -139,9 +138,9 @@ Les options disponibles dépendent du contexte.
Par exemple, pour un courrier généré dans un contexte "parcours", l'utilisateur pourra choisir un usager du parcours pour un courrier; l'administrateur indiquera qu'il s'agira du "destinataire" du courrier. Tandis que pour un formulaire officiel, l'administrateur configurera un "demandeur" et "co-demandeur", et ce sont ces libellés qui s'afficheront.
## Variables par contexte
## Variables par contexte
### Pour tous les contextes { #sec:gendoc:champs-documents }
### Pour tous les contextes { #sec:gendoc-champs-documents }
#### Variables
@@ -470,6 +469,12 @@ Seul le champ `comment` est donc disponible.
* `id` (texte): identifiant
* `title` (texte): le titre du résultat
### GenderEntity (Genre)
* `label` (texte): label du genre;
* `id` (int): identifiant (utile pour des comparaisons);
* `genderTranslation` (texte): utilisation grammaticale;
### Household (Ménage)
@@ -538,7 +543,7 @@ La composition du ménage entre deux dates. Cette entité associe une `Household
* `birthdate` (Date)
* `age`: (int) age de la personne;
* `deathdate` (Date)
* `gender` (texte): genre (texte traduit);
* `genderEntity` (GenderEntity): Genre;
* `maritalStatus` (texte): représentation textuelle de l'état civil;
* `maritalStatusDate` (Date): date à la quelle le statut de l'état civil a été mis à jour;
* `maritalStatusComment` (Comment): Commentaire sur l'état civil (avec la date de la dernière mise à jour)
@@ -553,6 +558,9 @@ La composition du ménage entre deux dates. Cette entité associe une `Household
* `address` (Adresse): l'adresse actuelle
* `resources` (PersonResource): les personnes ressources, ajoutées depuis le dossier de l'usager.
**Note**: La clé `gender` est dépréciée. Merci d'utiliser `GenderEntity`.
#### variant `household`
* `household` (Household): le ménage actuel de l'usager;

3
admin/docs/index.md Normal file
View File

@@ -0,0 +1,3 @@
# Documentation administrateur
En construction.

43
admin/mkdocs.yml Normal file
View File

@@ -0,0 +1,43 @@
---
site_name: "Manuel admnistrateur Chill"
site_url: https://manuel.chill.social/admin
repo_url: https://gitea.champs-libres.be/Chill-project/manuals
repo_name: Chill-project/manuals
theme:
name: material
features:
- content.code.copy
- content.code.select
- content.code.annotate
nav:
- Accueil: index.md
- Génération de document: generation-documents.md
markdown_extensions:
- markdown_include.include
# code layout
- pymdownx.highlight:
anchor_linenums: true
line_spans: __span
pygments_lang_class: true
use_pygments: true
linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences
# admonition
- admonition
- pymdownx.details
- pymdownx.superfences
# use emojis
- attr_list
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
# footnotes
- footnotes
# https://squidfunk.github.io/mkdocs-material/reference/formatting/?h=key#adding-keyboard-keys
- pymdownx.critic
- pymdownx.caret
- pymdownx.keys
- pymdownx.mark
- pymdownx.tilde

View File

@@ -1,92 +0,0 @@
# Fonctionnalités de l'interface d'administration de Chill
## Gestion des utilisateurs
L'interface d'administration permet de créer des utilisateurs, de modifier leurs mots de passe et de les suspendre.
Elle permet également de définir des groupes de permissions: une fois associés aux utilisateurs, cela leur confère des droits spécifiques.
## Gestion des "centres", des "services" et des permissions
L'interface permet de configurer les différents "centres" (entité liée aux droits de visualisation des usagers), et services (autre entités qui intervient dans la gestion des accès).
## Gestion des référentiels
Différents référentiels sont gérés depuis l'interface d'administration:
### Langues et pays
- la liste des langues;
- la liste des pays;
### Localisation
- la liste des types de localisations et des localisations;
Ces localisations interviennent notamment dans la localisation des rendez-vous, des échanges, et des parcours.
### Usager
- la liste des civilités;
- la liste des états matrimoniaux
- les types de personnes ressources;
### Ménage
- les positions dans le ménage (habituellement, trois positions sont configurées: "Enfant dans le ménage", "Enfant hors ménage" et "Adulte dans le ménage")
- la liste des compositions de ménage;
- la liste des relations de filiation;
### Parcours d'accompagnement
- la liste des "origines" des parcours;
- la liste des "motifs de clôture"
### Accompagnement social
- la liste des problématiques sociales;
- la liste des actions d'accompagnement, de leurs objectifs et résultats;
### Annuaire de tiers
- la liste de catégories de tiers;
### Documents
- les catégories de documents (pour les documents enregistrés dans les parcours d'accompagnement et les dossiers d'usager)
- les gabarits de génération de documents
### Échanges
- la liste des types d'échange, et de leurs catégories
Pour chaque type d'échange, il est possible de configurer la liste des champs du formulaire. Les champs suivants peuvent donc être invisibles, optionnels (visibles mais peuvent être laissés sans valeur) ou obligatoire (visible, **et** une valeur est requise):
- le champ "référent de l'échange";
- le champ date (lorsqu'il est désactivé, la date de création correspond à la date de l'échange);
- le champ lieu;
- le champ "tiers", "usagers concernés", "tiers non-professionnels", "tms";
- le champ "durée de l'échange";
- le champ "durée de déplacement";
- le champ "présence de l'usager";
- le champ "sujets"
- le champ "commentaire" et "commentaire privé"
- le champ "Entrant / sortant"
- le champ "documents"
- le champ "problématiques sociales" et "actions liées"
- la liste des sujets utilisables dans les échanges, et leurs catégories;
- la liste des éléments dans le champ "présence aux échanges";
### Rendez-vous
- la liste des motifs d'annulation
### Budget
- la liste des charges et des ressources
### Évènements
- la liste des types d'événements et, pour chaque événement, les rôles et statuts disponibles.

View File

@@ -4,7 +4,8 @@ set -e
# enter the current directory
cd "$(dirname $0)"
export PANDOC_DIR="/pandoc/cl"
export PANDOC_DIR="$(pwd)/pandoc/cl"
export OUTPUT_DIR="$(pwd)"
if [ -z $1 ]; then
@@ -51,7 +52,6 @@ if [ $kind = 'user' ]; then
# exports_household.md
elif [ $kind = 'admin' ]; then
export files="
possibilities.md
start.md
generation-documents.md
"
@@ -60,23 +60,22 @@ else
exit 1;
fi
cd $kind
export PDF_TEMPLATE="$(pwd)/eisvogel.latex"
cd $kind/docs
export ARGS="
--from markdown
--number-sections
--resource-path ./.
--metadata-file ./metadata.yaml
`#--lua-filter "../${PANDOC_DIR}/format-link.lua`
"
export PDF_TEMPLATE="./../pandoc/template/eisvogel.tex"
export LATEX_ARGS="
--metadata=footer-left:$(date +%d-%m-%Y)
--template "${PDF_TEMPLATE}"
--lua-filter "../${PANDOC_DIR}/boxes.lua"
--template ${PDF_TEMPLATE}
--lua-filter "${PANDOC_DIR}/boxes.lua"
"
if [ $target = "latex" ]; then
pandoc $ARGS $LATEX_ARGS \
--to latex \
@@ -85,18 +84,7 @@ elif [ $target = "pdf" ]; then
pandoc $ARGS $LATEX_ARGS \
--to pdf \
--pdf-engine xelatex \
-o "./../$kind-manual.pdf" \
-o "${OUTPUT_DIR}/$kind-manual.pdf" \
$files
elif [ $target = "html" ]; then
# check target directory exists
if [ ! -d "./../build/html" ]; then
echo "create build/html directory"
mkdir -p "./../build/html"
fi
pandoc $ARGS \
--to html \
-o ./../build/html/index.html \
$files
fi

1037
eisvogel.latex Normal file

File diff suppressed because it is too large Load Diff

3
requirements.txt Normal file
View File

@@ -0,0 +1,3 @@
mkdocs
markdown-include
mkdocs-material

2
user/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
site/*

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