API inscriptions + infos développeurs

This commit is contained in:
Emmanuel Viennet 2024-08-15 21:30:35 +02:00
parent 8528217d5f
commit 75eacf1e73
7 changed files with 145 additions and 7 deletions

View File

@ -76,7 +76,8 @@ Les templates suivants sont les plus utilisés pour les pages:
- `sco_page.j2` page standard dans un formsemestre: avec sidebar et barre de - `sco_page.j2` page standard dans un formsemestre: avec sidebar et barre de
menu du semestre. Le contenu de la variable `content` est placé comme HTML menu du semestre. Le contenu de la variable `content` est placé comme HTML
brut (*safe*) dans la partie contenu. brut (*safe*) dans la partie contenu. Passer `sco=ScoData(formsemestre=formsemestre)`
en argument au template.
- `sco_page_dept.j2` page dans un département (avec sidebar) mais sans formsemestre (pas de - `sco_page_dept.j2` page dans un département (avec sidebar) mais sans formsemestre (pas de
barre de menu) barre de menu)
@ -99,7 +100,67 @@ Pour mémoire, l'appel d'un template dans une vue se fait ainsi:
render_template( "votre_template.j2", render_template( "votre_template.j2",
title="Changer de référentiel de compétences", title="Changer de référentiel de compétences",
autre_variable=... autre_variable=...
) )
```
### Passage des anciennes pages ScoDoc 7 aux templates Jinja
Les anciennes pages étaient générées en python selon la structure:
```py
html_sco_header.sco_header(
cssstyles=["css/....css"],
javascripts=[
"js/....js",
],
page_title="titre de la page",
)
... contenu ...
html_sco_header.sco_footer()
```
La migration la plus simple consiste à utilise `sco_page.j2`:
```py
render_template(
"sco_page.j2",
content=contenu,
title="titre de la page",
cssstyles=["..."],
javascripts=["..."],
)
```
Mais si on souhaite générer le contenu dans un template, cela prendra la forme:
```jinja-html
{% extends "sco_page.j2" %}
{% block title %}
...titre...
{% endblock title %}
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="{{scu.STATIC_DIR}}/css/un_style_scodoc.css">
<style>
... styles locaux ...
</style>
{% endblock styles %}
{% block app_content %}
<div class="pageContent">
<h2>titre page</h2>
... contenu ...
</div>
{% endblock %}
{% block scripts %}
{{ super() }}
<script src="{{scu.STATIC_DIR}}/js/un_script_scodoc.js"></script>
<script>
... script js local ...
</script>
{% endblock %}
``` ```

View File

@ -112,7 +112,7 @@ bibliothèques, ou autres expériences de ce genre, vous pouvez le récréer ain
Puis soit vous installez les versions "officielles" (testées) Puis soit vous installez les versions "officielles" (testées)
```bash ```bash
pip install -r requirements-3.9.txt pip install -r requirements-3.11.txt
``` ```
Soit vous prenez les versions les plus à jour disponibles. Une façon rapide de Soit vous prenez les versions les plus à jour disponibles. Une façon rapide de
@ -134,7 +134,7 @@ Enfin, pour mettre à jour les paquets pip, il faut dégeler les versions (unpin
puis upgrader et re-générer le fichier, comme suit: puis upgrader et re-générer le fichier, comme suit:
```bash ```bash
cp requirements-3.11.txt requirements.text cp requirements-3.11.txt requirements.txt
sed -i 's/[~=]=/>=/' requirements.txt sed -i 's/[~=]=/>=/' requirements.txt
pip install -U -r requirements.txt pip install -U -r requirements.txt
pip freeze > requirements-new.txt pip freeze > requirements-new.txt

View File

@ -309,6 +309,8 @@ permet de rechercher une entrée à partir du résultat attendu.
| [formsemestre_edit](#formsemestre_edit) | POST | EditFormSemestre | | [formsemestre_edit](#formsemestre_edit) | POST | EditFormSemestre |
| [formsemestre_edt](#formsemestre_edt-query) | GET | ScoView | | [formsemestre_edt](#formsemestre_edt-query) | GET | ScoView |
| [formsemestre_etat_evaluations](#formsemestre_etat_evaluations) | GET | ScoView | | [formsemestre_etat_evaluations](#formsemestre_etat_evaluations) | GET | ScoView |
| [formsemestre_etud_desinscrit](#formsemestre_etud_desinscrit) | POST | EtudInscrit |
| [formsemestre_etud_inscrit](#formsemestre_etud_inscrit) | POST | EtudInscrit |
| [formsemestre_etudiants](#formsemestre_etudiants-query) | GET | ScoView | | [formsemestre_etudiants](#formsemestre_etudiants-query) | GET | ScoView |
| [formsemestre_get](#formsemestre_get) | GET | ScoView | | [formsemestre_get](#formsemestre_get) | GET | ScoView |
| [formsemestre_partitions](#formsemestre_partitions) | GET | ScoView | | [formsemestre_partitions](#formsemestre_partitions) | GET | ScoView |
@ -346,6 +348,8 @@ permet de rechercher une entrée à partir du résultat attendu.
| [logo_get_local_dept_by_acronym](#logo_get_local_dept_by_acronym) | GET | ScoSuperAdmin | | [logo_get_local_dept_by_acronym](#logo_get_local_dept_by_acronym) | GET | ScoSuperAdmin |
| [logo_get_local_dept_by_id](#logo_get_local_dept_by_id) | GET | ScoSuperAdmin | | [logo_get_local_dept_by_id](#logo_get_local_dept_by_id) | GET | ScoSuperAdmin |
| [logo_list_globals](#logo_list_globals) | GET | ScoSuperAdmin | | [logo_list_globals](#logo_list_globals) | GET | ScoSuperAdmin |
| [moduleimpl_etud_desinscrit](#moduleimpl_etud_desinscrit) | POST | ScoView |
| [moduleimpl_etud_inscrit](#moduleimpl_etud_inscrit) | POST | ScoView |
| [moduleimpl_evaluations](#moduleimpl_evaluations) | GET | ScoView | | [moduleimpl_evaluations](#moduleimpl_evaluations) | GET | ScoView |
| [moduleimpl_inscriptions](#moduleimpl_inscriptions) | GET | ScoView | | [moduleimpl_inscriptions](#moduleimpl_inscriptions) | GET | ScoView |
| [moduleimpl_notes](#moduleimpl_notes) | GET | ScoView | | [moduleimpl_notes](#moduleimpl_notes) | GET | ScoView |
@ -1332,6 +1336,25 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [formsemestre_etat_evaluations.json](./samples/sample_formsemestre_etat_evaluations.json.md) * **Exemple de résultat:** [formsemestre_etat_evaluations.json](./samples/sample_formsemestre_etat_evaluations.json.md)
#### **`formsemestre_etud_desinscrit`**
* **Route:** `/ScoDoc/api/formsemestre/<int:formsemestre_id>/etudid/<int:etudid>/desinscrit`
* **Méthode:** `POST`
* **Permission:** `EtudInscrit`
* **Description:** Désinscrit l'étudiant de ce formsemestre et TOUS ses modules
#### **`formsemestre_etud_inscrit`**
* **Route:** `/ScoDoc/api/formsemestre/<int:formsemestre_id>/etudid/<int:etudid>/inscrit`
* **Méthode:** `POST`
* **Permission:** `EtudInscrit`
* **Description:** Inscrit l'étudiant à ce formsemestre et TOUS ses modules STANDARDS
(donc sauf les modules bonus sport).
#### **`formsemestre_etudiants(-query)`** #### **`formsemestre_etudiants(-query)`**
* **Routes:** * **Routes:**
@ -1979,6 +2002,26 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
### API Moduleimpl ### API Moduleimpl
#### **`moduleimpl_etud_desinscrit`**
* **Route:** `/ScoDoc/api/moduleimpl/<int:moduleimpl_id>/etudid/<int:etudid>/desinscrit`
* **Méthode:** `POST`
* **Permission:** `ScoView`
* **Description:** Désinscrit l'étudiant de ce moduleimpl.
* **Exemple de résultat:** [moduleimpl_etud_desinscrit.json](./samples/sample_moduleimpl_etud_desinscrit.json.md)
#### **`moduleimpl_etud_inscrit`**
* **Route:** `/ScoDoc/api/moduleimpl/<int:moduleimpl_id>/etudid/<int:etudid>/inscrit`
* **Méthode:** `POST`
* **Permission:** `ScoView`
* **Description:** Inscrit l'étudiant à ce moduleimpl.
* **Exemple de résultat:** [moduleimpl_etud_inscrit.json](./samples/sample_moduleimpl_etud_inscrit.json.md)
#### **`moduleimpl_inscriptions`** #### **`moduleimpl_inscriptions`**
* **Route:** `/ScoDoc/api/moduleimpl/<int:moduleimpl_id>/inscriptions` * **Route:** `/ScoDoc/api/moduleimpl/<int:moduleimpl_id>/inscriptions`
@ -2189,6 +2232,9 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
Voir exemples d'utilisation de l'API en Python, dans `tests/api/`. Voir exemples d'utilisation de l'API en Python, dans `tests/api/`.
!!! info
Cette page a été générée par la commande `flask gen-api-doc`, et les exemples de résultats
sont créés par `tools/test_api.sh --make-samples`.
!!! note "Voir aussi" !!! note "Voir aussi"

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 442 KiB

View File

@ -0,0 +1,9 @@
### moduleimpl_etud_desinscrit
#### POST /moduleimpl/1/etudid/2/desinscrit
```json
{
"status": "ok"
}
```

View File

@ -0,0 +1,11 @@
### moduleimpl_etud_inscription
#### POST /moduleimpl/1/etudid/2/inscription
```json
{
"etudid": 2,
"id": 22,
"moduleimpl_id": 1
}
```

View File

@ -0,0 +1,11 @@
### moduleimpl_etud_inscrit
#### POST /moduleimpl/1/etudid/2/inscrit
```json
{
"etudid": 2,
"id": 22,
"moduleimpl_id": 1
}
```