mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-03-24 22:51:11 +00:00
Another tables and doc
This commit is contained in:
parent
bd7e6b8ad4
commit
b293904525
@ -20,9 +20,9 @@ class WrappedListView(ProtectQuerysetMixin, LoginRequiredMixin, MultiTableMixin,
|
||||
Display all Wrapped, and classify by year
|
||||
"""
|
||||
model = Wrapped
|
||||
tables =[
|
||||
lambda data: WrappedTable(data, prefix="public-"),
|
||||
lambda data: WrappedTable(data, prefix="personnal-"),
|
||||
tables = [
|
||||
lambda data: WrappedTable(data, prefix="public-"),
|
||||
lambda data: WrappedTable(data, prefix="personnal-"),
|
||||
]
|
||||
template_name = 'wrapped/wrapped_list.html'
|
||||
extra_context = {'title': _("List of wrapped")}
|
||||
|
118
docs/_static/img/graphs/wrapped.svg
vendored
Normal file
118
docs/_static/img/graphs/wrapped.svg
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.43.0 (0)
|
||||
-->
|
||||
<!-- Title: model_graph Pages: 1 -->
|
||||
<svg width="319pt" height="245pt"
|
||||
viewBox="0.00 0.00 319.00 245.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 241)">
|
||||
<title>model_graph</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-241 315,-241 315,4 -4,4"/>
|
||||
<!-- wrapped_models_Bde -->
|
||||
<g id="node1" class="node">
|
||||
<title>wrapped_models_Bde</title>
|
||||
<polygon fill="white" stroke="transparent" points="8,-4 8,-79 158,-79 158,-4 8,-4"/>
|
||||
<polygon fill="#1b563f" stroke="transparent" points="9,-56.5 9,-77.5 157,-77.5 157,-56.5 9,-56.5"/>
|
||||
<text text-anchor="start" x="52" y="-65.5" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="62" y="-65.5" font-family="Roboto" font-weight="bold" font-size="10.00" fill="white">    Bde    </text>
|
||||
<text text-anchor="start" x="11" y="-49.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="21" y="-49.1" font-family="Roboto" font-weight="bold" font-size="8.00">id</text>
|
||||
<text text-anchor="start" x="31" y="-49.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="77" y="-49.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="87" y="-49.1" font-family="Roboto" font-weight="bold" font-size="8.00">AutoField</text>
|
||||
<text text-anchor="start" x="131" y="-49.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="11" y="-36.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="21" y="-36.1" font-family="Roboto" font-size="8.00">date_end</text>
|
||||
<text text-anchor="start" x="60" y="-36.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="77" y="-36.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="87" y="-36.1" font-family="Roboto" font-size="8.00">DateTimeField</text>
|
||||
<text text-anchor="start" x="145" y="-36.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="11" y="-23.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="21" y="-23.1" font-family="Roboto" font-size="8.00">date_start</text>
|
||||
<text text-anchor="start" x="63" y="-23.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="77" y="-23.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="87" y="-23.1" font-family="Roboto" font-size="8.00">DateTimeField</text>
|
||||
<text text-anchor="start" x="145" y="-23.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="11" y="-10.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="21" y="-10.1" font-family="Roboto" font-size="8.00">name</text>
|
||||
<text text-anchor="start" x="45" y="-10.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="77" y="-10.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="87" y="-10.1" font-family="Roboto" font-size="8.00">CharField</text>
|
||||
<text text-anchor="start" x="125" y="-10.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<polygon fill="none" stroke="black" points="8,-4 8,-79 158,-79 158,-4 8,-4"/>
|
||||
</g>
|
||||
<!-- wrapped_models_Wrapped -->
|
||||
<g id="node2" class="node">
|
||||
<title>wrapped_models_Wrapped</title>
|
||||
<polygon fill="white" stroke="transparent" points="67,-132 67,-233 231,-233 231,-132 67,-132"/>
|
||||
<polygon fill="#1b563f" stroke="transparent" points="68,-210.5 68,-231.5 230,-231.5 230,-210.5 68,-210.5"/>
|
||||
<text text-anchor="start" x="103" y="-219.5" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="113" y="-219.5" font-family="Roboto" font-weight="bold" font-size="10.00" fill="white">    Wrapped    </text>
|
||||
<text text-anchor="start" x="70" y="-203.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="80" y="-203.1" font-family="Roboto" font-weight="bold" font-size="8.00">id</text>
|
||||
<text text-anchor="start" x="90" y="-203.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="137" y="-203.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="147" y="-203.1" font-family="Roboto" font-weight="bold" font-size="8.00">AutoField</text>
|
||||
<text text-anchor="start" x="191" y="-203.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="70" y="-190.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="80" y="-190.1" font-family="Roboto" font-weight="bold" font-size="8.00">bde</text>
|
||||
<text text-anchor="start" x="98" y="-190.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="137" y="-190.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="147" y="-190.1" font-family="Roboto" font-weight="bold" font-size="8.00">ForeignKey (id)</text>
|
||||
<text text-anchor="start" x="218" y="-190.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="70" y="-177.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="80" y="-177.1" font-family="Roboto" font-weight="bold" font-size="8.00">note</text>
|
||||
<text text-anchor="start" x="101" y="-177.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="137" y="-177.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="147" y="-177.1" font-family="Roboto" font-weight="bold" font-size="8.00">ForeignKey (id)</text>
|
||||
<text text-anchor="start" x="218" y="-177.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="70" y="-164.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="80" y="-164.1" font-family="Roboto" font-size="8.00">data_json</text>
|
||||
<text text-anchor="start" x="120" y="-164.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="137" y="-164.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="147" y="-164.1" font-family="Roboto" font-size="8.00">TextField</text>
|
||||
<text text-anchor="start" x="182" y="-164.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="70" y="-151.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="80" y="-151.1" font-family="Roboto" font-size="8.00">generated</text>
|
||||
<text text-anchor="start" x="123" y="-151.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="137" y="-151.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="147" y="-151.1" font-family="Roboto" font-size="8.00">BooleanField</text>
|
||||
<text text-anchor="start" x="200" y="-151.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="70" y="-138.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="80" y="-138.1" font-family="Roboto" font-size="8.00">public</text>
|
||||
<text text-anchor="start" x="105" y="-138.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="137" y="-138.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<text text-anchor="start" x="147" y="-138.1" font-family="Roboto" font-size="8.00">BooleanField</text>
|
||||
<text text-anchor="start" x="200" y="-138.1" font-family="Roboto" font-size="8.00">    </text>
|
||||
<polygon fill="none" stroke="black" points="67,-132 67,-233 231,-233 231,-132 67,-132"/>
|
||||
</g>
|
||||
<!-- wrapped_models_Wrapped->wrapped_models_Bde -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>wrapped_models_Wrapped->wrapped_models_Bde</title>
|
||||
<path fill="none" stroke="black" d="M119.99,-120.4C114,-107.79 107.84,-94.82 102.31,-83.16"/>
|
||||
<ellipse fill="black" stroke="black" cx="121.77" cy="-124.15" rx="4" ry="4"/>
|
||||
<text text-anchor="middle" x="132" y="-103.6" font-family="Roboto" font-size="8.00"> bde (+)</text>
|
||||
</g>
|
||||
<!-- note_models_notes_Note -->
|
||||
<g id="node3" class="node">
|
||||
<title>note_models_notes_Note</title>
|
||||
<polygon fill="white" stroke="transparent" points="192,-31 192,-52 240,-52 240,-31 192,-31"/>
|
||||
<polygon fill="#1b563f" stroke="transparent" points="192,-30.5 192,-51.5 240,-51.5 240,-30.5 192,-30.5"/>
|
||||
<text text-anchor="start" x="196.5" y="-38.9" font-family="Roboto" font-size="8.00">  </text>
|
||||
<text text-anchor="start" x="201.5" y="-38.9" font-family="Roboto" font-size="12.00" fill="white">Note</text>
|
||||
<text text-anchor="start" x="230.5" y="-38.9" font-family="Roboto" font-size="8.00">  </text>
|
||||
</g>
|
||||
<!-- wrapped_models_Wrapped->note_models_notes_Note -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>wrapped_models_Wrapped->note_models_notes_Note</title>
|
||||
<path fill="none" stroke="black" d="M178.48,-120.33C189.12,-98.27 200.3,-75.07 207.66,-59.8"/>
|
||||
<ellipse fill="black" stroke="black" cx="176.64" cy="-124.16" rx="4" ry="4"/>
|
||||
<text text-anchor="middle" x="204.5" y="-103.6" font-family="Roboto" font-size="8.00"> note (+)</text>
|
||||
</g>
|
||||
<!-- \n\n\n -->
|
||||
<g id="node4" class="node">
|
||||
<title>\n\n\n</title>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.7 KiB |
@ -14,6 +14,7 @@ Applications de la Note Kfet 2020
|
||||
logs
|
||||
treasury
|
||||
wei
|
||||
wrapped
|
||||
|
||||
La Note Kfet 2020 est un projet Django, décomposé en applications.
|
||||
Certaines applications sont développées uniquement pour ce projet, et sont indispensables,
|
||||
@ -69,4 +70,6 @@ Applications facultatives
|
||||
Interface de gestion pour les trésorièr⋅es, émission de factures, remises de chèque, statistiques...
|
||||
* `WEI <wei>`_ :
|
||||
Interface de gestion du WEI.
|
||||
* `Wrapped <wrapped>`_ :
|
||||
Récapitulatif personnalisé annuel de statitiques globales et personnelles.
|
||||
|
||||
|
108
docs/apps/wrapped.rst
Normal file
108
docs/apps/wrapped.rst
Normal file
@ -0,0 +1,108 @@
|
||||
Wrapped
|
||||
=======
|
||||
|
||||
Cette application montre les statistiques annuelles des utilisateur·ice·s et/ou des clubs.
|
||||
|
||||
Modèles
|
||||
-------
|
||||
|
||||
Bde
|
||||
~~~
|
||||
|
||||
Le modèle ``Bde`` contient des informations relatifs à un BDE :
|
||||
|
||||
* ``name`` : ``CharField``, nom du BDE.
|
||||
* ``date_start`` : ``DateField``, date de prise de fonction du bureau BDE considéré.
|
||||
* ``date_end`` : ``DateField``, date de démission du bureau BDE considéré.
|
||||
|
||||
Wrapped
|
||||
~~~~~~~
|
||||
|
||||
Contient les informations sur un wrapped :
|
||||
|
||||
* ``generated`` : ``BooleanField``, indique si le wrapped a été généré ou non.
|
||||
* ``public`` : ``BooleanField``, indique si le wrapped est visible de tous les utilisateur·ice·s ou non.
|
||||
* ``bde`` : ``ForeignKey(Bde)``, BDE auquel le wrapped correspond.
|
||||
* ``note`` : ``ForeignKey(Note)``, note à laquelle le wrapped correspond.
|
||||
* ``data_json`` : ``TextField``, diverses statistique concernant les notes durant le mandat BDE
|
||||
considéré ou sur la NoteKfet dans sa globalité.
|
||||
|
||||
Graphe des modèles
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. image:: ../_static/img/graphs/wrapped.svg
|
||||
:width: 960
|
||||
:alt: Graphe des modèles de l'application Wrapped
|
||||
|
||||
Fonctionnement
|
||||
--------------
|
||||
|
||||
Création d'un BDE
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Seul un⋅e respo info peut créer un BDE. Pour cela, se rendre dans l'onglet « Admin »., puis « BDE » et
|
||||
enfin « + Ajouter BDE ». Iel doit renseigner, les dates de début et de fin du bureau BDE ainsi que le
|
||||
nom de la liste.
|
||||
|
||||
Génération des wrappeds
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Seul un·e respo info peut générer des wrappeds. Pour une utilisation annuelle classique, iel exécute la
|
||||
commande :
|
||||
|
||||
``./manage.py generate_wrapped -b "bde_name" -u adh -c active``
|
||||
|
||||
Pour une utilisation plus technique de cette commande se référer à sa documentation
|
||||
|
||||
``./manage.py help generate_wrapped``
|
||||
|
||||
Le script prend une dizaine de minutes pour générer tous les wrappeds.
|
||||
|
||||
Créer ses propres wrappeds
|
||||
--------------------------
|
||||
|
||||
Cette section est plus technique et s'addresse plutôt à des respos infos en cours de mandat qui voudrai
|
||||
faire les wrappeds de leur propre BDE.
|
||||
|
||||
Contenu
|
||||
~~~~~~~
|
||||
|
||||
Il est fortement conseillé de bien réfléchir à ce que l'on souhaite mettre sur un wrapped, plusieurs
|
||||
critères sont à prendre compte :
|
||||
|
||||
* compréhension, est-ce que la donnée fait sens auprès des utilisateur·ice·s.
|
||||
* pertinence, est-ce que la donnée fonctionne pour un grand nombre d'utilisateur.
|
||||
* faisabilité, est-ce que le temps de calcul est suffisament rapide.
|
||||
* complexité, est-ce que c'est trop compliqué à coder.
|
||||
|
||||
Script
|
||||
~~~~~~
|
||||
|
||||
Le script *generate_wrapped* fonctionne de la manière suivante :
|
||||
|
||||
* ``convert_to_note`` : en fonction des arguments d'entrée, il récupére toutes les notes dont le·s
|
||||
wrapped·s va/vont être généré·s
|
||||
ou regénéré·s.
|
||||
* ``global_data`` : le script génére ensuite des statistiques globales qui concernent pas qu'une seule
|
||||
note (nombre de soirée, classement, etc).
|
||||
* ``unique_data`` : le script génére les statitiques uniques à chaque note, et rajoute des données
|
||||
globales si nécessaire, pour chaque note on souhaite avoir un json avec toutes les données qui
|
||||
seront dans le wrapped.
|
||||
* ``make_wrapped`` : enfin, le cas échéant, pour chaque bde, et pour chaque note, le wrapped est crée
|
||||
ou modifié, et enregistré, s'il est crée il est par défault non public.
|
||||
|
||||
Seules les fonctions ``global_data`` et ``unique_data`` sont à modifier, pour implementer un nouveau
|
||||
BDE.
|
||||
|
||||
Template
|
||||
~~~~~~~~
|
||||
|
||||
Il y a au moins deux templates a écrire pour chaque bde :
|
||||
|
||||
* ``templates/wrapped/{bde_id}/wrapped_view_club.html``: le template pour les wrappeds des clubs
|
||||
* ``templates/wrapped/{bde_id}/wrapped_view_user.html``: le template pour les wrappeds des
|
||||
utilisateur·ice·s
|
||||
|
||||
Il est conseillé de suivre la même arborescence pour les fichiers statics (fonts personnalisées,
|
||||
images, css, etc). De même, il est conseillé de créé un fichier
|
||||
``templates/wrapped/{bde_id}/wrapped_base.html`` et d'étendre cette template.
|
Loading…
x
Reference in New Issue
Block a user