Compare commits
8 Commits
add-featur
...
39064633ed
Author | SHA1 | Date | |
---|---|---|---|
39064633ed
|
|||
e769a9dd70
|
|||
96a7cbe954
|
|||
9fcc601730
|
|||
5e009e19c8
|
|||
f531de0351 | |||
f556e446fa | |||
6c748eb1fe |
94
.gitea/workflows/build-and-push-mkdocs-docker-image.yml
Normal file
94
.gitea/workflows/build-and-push-mkdocs-docker-image.yml
Normal 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
1
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
build/*
|
||||
*-manual.pdf
|
||||
.venv/
|
||||
|
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal 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
|
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal 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
17
.idea/manuals.iml
generated
Normal 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
6
.idea/misc.xml
generated
Normal 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
8
.idea/modules.xml
generated
Normal 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
9
.idea/vcs.xml
generated
Normal 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
23
Dockerfile
Normal 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
1
admin/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
site/*
|
@@ -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
3
admin/docs/index.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Documentation administrateur
|
||||
|
||||
En construction.
|
43
admin/mkdocs.yml
Normal file
43
admin/mkdocs.yml
Normal 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
|
@@ -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.
|
@@ -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
1037
eisvogel.latex
Normal file
File diff suppressed because it is too large
Load Diff
Submodule pandoc/template updated: 04e329698d...62377f36a0
3
requirements.txt
Normal file
3
requirements.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
mkdocs
|
||||
markdown-include
|
||||
mkdocs-material
|
2
user/.gitignore
vendored
Normal file
2
user/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
site/*
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user