Verified Commit 5489096b authored by Sli's avatar Sli
Browse files

documentation: add explanation on MVT and explain project structure

parent 3a425c67
......@@ -21,6 +21,7 @@ Bienvenue sur la documentation du Sith de l'AE
:caption: Bien démarrer
start/install
start/structure
start/hello_world
start/translations
......
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="484px" height="321px" viewBox="-0.5 -0.5 484 321" content="&lt;mxfile modified=&quot;2019-08-14T00:20:54.472Z&quot; host=&quot;www.draw.io&quot; agent=&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0&quot; version=&quot;11.1.4&quot; etag=&quot;r-f8fGdaAGlBmN0G7r9L&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;GeWCfn6vZLMSGei3Csxp&quot;&gt;7ZlLc5swEIB/DZP20A5G4NhHx0nb6TSTTtJpk6MMMqgViAjhR399V0YYENhxEzt1Orl42JW0Wmk/PVa20DhefBQ4jS55QJjl2MHCQueW47inDvwqxbJQDDxUKEJBg0LVqxQ39DfRSltrcxqQrFFRcs4kTZtKnycJ8WVDh4Xg82a1KWfNXlMckpbixsesrf1BAxmV3tmV/hOhYSSNghiXdbUii3DA5zUVurDQWHAui694MSZMTV05LUW7DxtK134JkshdGug4zDDL9dAsp8+g6VlAZ/AZqs9SNeVgFHwuw9G/z5WfZ73q02wyUfXlkjUbKEPvCjMjqNBz00XbBEBjjZE1GkBjbQ3GMTF7AF3hV0vdMYIOVcvgRHTY6up2u/2r68ud6765mvxUmDr2NWFYUp5gFaRLnKY0Cd9u9axh2WlMtyN4ngREhboHxfOISnKTYl+VzmFdgi6SMdPFmgQiJFlspKm3ZhSWNuExkWIJVXQDx9VY62Xd87Q8ry2SEv2ovkCQVmK9MMO17Qpe+ND8drOMjpfl7/lhGX4QjFbTLzyk98orO1A/7ARYY9RfwfdieEODJm/IfU7e3OPl7RuJU9hIjhi6EzydUj9S5+xLoc1zzN0NPSNtXgdtxoT4uZit54MkwUjddED0Gc4y6jcnBAYtlrcg2O+9Uryrl52rYdtraVlKCypva993lQmQqkZKKNsUnpLAuFRlPBc+aWzeEouQyMbdZIcA1QLgdcx/qROrw3XWdKIrJrqHr5yuFu2G081zjbAW49Gt6pcu09CwacgdGoaKWWgZgnjiZa1aqipkmx1GyOjH9v7Kr3I7rQgtPKh4XcdgJ4T7R4Zw7+AIu68IPw1hzzURtrf65ZkI9/eL8OkzIWz/G4SdNsLoFeGnIVwiW/YD94atfrnGAJ3BfhEeHBnCe75IuK8I7x/hoYnwYDvCfaP+6X4RHrYQHovVW9GQQBIxVk8nPKBTWko3eZoKGivRIB2yAdnEOZOC/yJjzrgATcITopIuypihwoyGiVoTwBQYRmcqt4AEmo10QUyDQHXTmZlUuYu9kmSReNcpf9pLjI2Mc1PnD/VcZdCBuGMQ9JhUpXylrcXnnCeJjlCmBgKAF68OVRZ4lJHZQyjcYf/hUAwPFYpeKxSfSb6w9LNP0AjL/xoBpE/c9XY07Ejc0aEi4LQicAHnoJ51KMglZTTDkuTHuj3tYxF45qVmx7eTR4QAxOoPlOJ0qf6EQhd/AA==&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="37" y="0" width="120" height="130" rx="18" ry="18" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(38.5,28.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="116" height="72" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 116px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><div><font size="1"><b style="font-size: 14px">Modèle</b></font></div><div><b><br /></b></div><div>ORM</div><div>(Object Relational Mapping)<br /></div></div></div></foreignObject><text x="58" y="42" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="177" y="190" width="120" height="130" rx="18" ry="18" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(178.5,225.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="116" height="58" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 116px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><div><font size="1"><b style="font-size: 14px">Vue</b></font></div><div><br /></div><div>Logique de l'application<br /></div></div></div></foreignObject><text x="58" y="35" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="317" y="3" width="120" height="130" rx="18" ry="18" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(324.5,45.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="104" height="44" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 105px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><div><font size="1"><b style="font-size: 14px">Template</b></font></div><div><br /></div><div>Logique d'affichage<br /></div></div></div></foreignObject><text x="52" y="28" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 177 255 Q 127 255 107 222.5 Q 87 190 95.95 136.28" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 96.82 131.1 L 99.12 138.58 L 95.95 136.28 L 92.21 137.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 297 255 Q 337 250 362 230 Q 387 210 377.82 139.31" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 377.14 134.11 L 381.52 140.6 L 377.82 139.31 L 374.57 141.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 157 65 Q 197 65 217 97.5 Q 237 130 237 183.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 237 188.88 L 233.5 181.88 L 237 183.63 L 240.5 181.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 317 68 Q 287 68 272 94 Q 257 120 238.75 183.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 237.31 188.93 L 235.86 181.23 L 238.75 183.88 L 242.6 183.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(19.5,258.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="140" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 141px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Créer, Modifier, Supprimer</div></div></foreignObject><text x="70" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Créer, Modifier, Supprimer</text></switch></g><g transform="translate(321.5,258.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="132" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 133px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Données pour l'affichage</div></div></foreignObject><text x="66" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Données pour l'affichage</text></switch></g><g transform="translate(131.5,146.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="91" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 92px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Jeux de données</div></div></foreignObject><text x="46" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Jeux de données</text></switch></g><g transform="translate(261.5,136.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="90" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 91px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Entrée utilisateur</div></div></foreignObject><text x="45" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Entrée utilisateur</text></switch></g></g></svg>
\ No newline at end of file
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="242px" height="231px" viewBox="-0.5 -0.5 242 231" content="&lt;mxfile modified=&quot;2019-08-14T00:27:28.057Z&quot; host=&quot;www.draw.io&quot; agent=&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0&quot; version=&quot;11.1.4&quot; etag=&quot;gt_crBQUFny1nJai5fJP&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;g-8L4KHF2jWSH_7xKkuo&quot;&gt;7VjBjpswEP0arlXAJCHHJLttL5UqpWq7Rwtmg1WDkTEJ9OtrBxtwTJSsSlfRdi8IP9tjz5vnGYOHtln9ieMi/cISoF4wS2oPPXhBEPq+fCqgaYHVHLXAnpOkhfwe2JHfoMGZRiuSQGkNFIxRQQobjFmeQywsDHPOjvawZ0btVQu8BwfYxZi66A+SiNTsbtbjn4HsU3HWkWEzVgNlihN2HEDo0UNbzpho37J6C1RRZ2hp53280Nvti0MubpkQtBMOmFbatW+QFRQL0PsTjfGZsypPQM2beWhzTImAXYFj1XuUQZZYKjIqW7581WaBC6gvbs3vHJY6AZaB4I0coiegVTtDSwRpxo4Dvg2L6YBrMw7rEO87wz0N8kUzMc4Kclj5Xt0dIdHyw/z1KAkdSuSh9rbIW0f07qjxw1dkZu4w49ABebJWWUe2cpbDmPuQOBnnqvMD7+YjzhmMgzzP5GCbH/NYr/CVEblwx63JuZrbJTKyMyZKVvEY9Kxhrjkz1G3IWAptOwLzPQjHzon/zuubQrJwQrJVUt2E4qTYlaoMlIBeZxgpKUFhh6cUnP2CLaOM9+F7JpSeQZiSfS6bsTQLEt8oQRNZMta6IyNJopYZPQ72gZngRPiRTXbops9wRDPBBAdieZ39EvgBKv7/0O/PgpFs/a8iEF1PSfLiUajXBAtcCsYvMTNtnl7YeTqYuapcjHCymICTlcPJBpeg7qCnh7wotuqU18q3q8rQVmUntiv8T6FJU0ZurJMxxWVJ4hPXmAsXHkRDes+bn4omecZ082nY91BrDttWY1o1EYNpsvU06OknqUZjRcGp1m0NtG6PbTnzhtfse63p6PwedGtJX5zpKTqzM11JN1+Mb18+oSsf9C6fv5WP+6H7RuUTufIJ3+XzMvnIZv8Lph3e/8ZCj38A&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="29" y="0" width="120" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(64.5,8.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="49" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 50px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Template</div></div></foreignObject><text x="25" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Template</text></switch></g><rect x="29" y="57.5" width="120" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(78.5,66.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="21" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 22px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Vue</div></div></foreignObject><text x="11" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Vue</text></switch></g><rect x="29" y="115" width="120" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(69.5,123.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="39" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 40px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Modèle</div></div></foreignObject><text x="20" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Modèle</text></switch></g><path d="M 0 43.5 L 240 44" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(170.5,6.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="38" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 38px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Côté client</div></div></foreignObject><text x="19" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Côté client</text></switch></g><g transform="translate(169.5,68.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="41" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Côté serveur</div></div></foreignObject><text x="21" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Côté serveur</text></switch></g><path d="M 59 178 C 59 167.33 119 167.33 119 178 L 119 222 C 119 232.67 59 232.67 59 222 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 59 178 C 59 186 119 186 119 178 M 59 182 C 59 190 119 190 119 182 M 59 186 C 59 194 119 194 119 186" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(130.5,186.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="58" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 58px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Base de données</div></div></foreignObject><text x="29" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Base de données</text></switch></g><path d="M 89 51.13 L 89 36.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 89 56.38 L 85.5 49.38 L 89 51.13 L 92.5 49.38 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 89 31.12 L 92.5 38.12 L 89 36.37 L 85.5 38.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 89 108.63 L 89 93.87" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 89 113.88 L 85.5 106.88 L 89 108.63 L 92.5 106.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 89 88.62 L 92.5 95.62 L 89 93.87 L 85.5 95.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 89 163.63 L 89 151.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 89 168.88 L 85.5 161.88 L 89 163.63 L 92.5 161.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 89 146.12 L 92.5 153.12 L 89 151.37 L 85.5 153.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg>
\ No newline at end of file
La structure du projet
======================
Le principe MVT
---------------
Django est un framework suivant le modèle MVT (Model-View-Template) aussi appelé MTV (Model-Template-View).
.. figure:: mvt_circle.svg
:alt: Diagramme MVT
:align: center
Diagramme MVT
On peut ainsi voir que la Vue gère la logique d'application, le modèle gère la structure de la base de données et communique avec elle et la vue effectue la logique de l'application. Décris comme ça, cela fait penser au modèle MVC (Model-View-Controller) mais évitons de nous complexifier les choses. Disons que c'est assez proche mais qu'il y a quelques différences (déjà au niveau du nommage).
On peut également représenter le tout sous une autre forme, plus simple à comprendre et visualiser en aplatissant le diagramme. Cela représente mieux ce qui se passe.
.. figure:: mvt_flat.svg
:alt: Diagramme MVT aplati
:align: center
Diagramme MVT aplati
Cette représentation permet de se représenter les interactions sous formes de couches. Avec ça en tête, ce sera plus simple d’appréhender la manière dont est découpé le projet.
Le découpage en applications
----------------------------
| /projet
| **sith/**
| Application principale du projet.
| **accounting/**
| Ajoute un système de comptabilité.
| **api/**
| Application où mettre les endpoints publiques d'API.
| **club/**
| Contiens les modèles liés aux clubs associatifs et ajoute leur gestion.
| **com/**
| Fournis des outils de communications aux clubs (weekmail, affiches…).
| **core/**
| Application la plus importante. Contiens les principales surcouches
| liées au projet comme la gestion des droits et les templates de base.
| **counter/**
| Ajoute des comptoirs de vente pour les clubs et gère les ventes sur les lieux de vie.
| **data/**
| Contiens les fichiers statiques ajoutées par les utilisateurs.
| N'est pas suivit par Git.
| **doc/**
| Contiens la documentation du projet.
| **eboutic/**
| Ajoute le comptoir de vente en ligne. Permet d'acheter en carte bancaire.
| **election/**
| Ajoute un système d'élection permettant d'élire les représentants étudiants.
| **forum/**
| Ajoute un forum de discutions.
| **launderette/**
| Permet la gestion des laveries.
| **locale/**
| Contiens les fichiers de traduction.
| **matmat/**
| Système de recherche de membres.
| **pedagogy/**
| Contiens le guide des UVs.
| **rootplace/**
| Ajoute des outils destinés aux administrateurs.
| **static/**
| Contiens l'ensemble des fichiers statiques ajoutés par les développeurs.
| Ce dossier est généré par le framework, il est surtout utile en production.
| Ce dossier n'es pas suivit par Git.
| **stock/**
| Système de gestion des stocks.
| **subscription/**
| Ajoute la gestion des cotisations des membres.
| **trombi/**
| Permet la génération du trombinoscope des élèves en fin de cursus.
| **.coveragec**
| Configure l'outil permettant de calculer la couverture des tests sur le projet.
| **.gitignore**
| Permet de définir quels fichiers sont suivis ou non par Git.
| **.gitlab-ci.yml**
| Permet de configurer la pipeline automatique de GitLab.
| **.readthedocs.yml**
| Permet de configurer la génération de documentation sur Readthedocs.
| **.db.sqlite3**
| Base de données de développement par défaut. Est automatiquement généré
| lors de la configuration du projet en local. N'est pas suivis par Git.
| **LICENSE**
| Licence du projet.
| **LICENSE.old**
| Ancienne licence du projet.
| **manage.py**
| Permet de lancer les commandes liées au framework Django.
| **migrate.py**
| Contiens des scripts de migration à exécuter pour importer les données de l'ancien site.
| **README.rst**
| Fichier de README. À lire pour avoir des informations sur le projet.
| **requirements.txt**
| Contiens les dépendances Python du projet.
L'application principale
------------------------
| /sith
| **__init__.py**
| Permet de définir le dossier comme un package Python.
| Ce fichier est vide.
| **settings.py**
| Contiens les paramètres par défaut du projet.
| Ce fichier est versionné et fait partie intégrant de celui-ci.
| **settings_curtom.py**
| Contiens les paramètres spécifiques à l'installation courante.
| Ce fichier n'est pas versionné et surcharges les paramètres par défaut.
| **urls.py**
| Contiens les routes d'URLs racines du projet.
| On y inclus les autres fichiers d'URLs et leur namespace.
| **toolbar_debug.py**
| Contiens la configuration de la barre de debug à gauche à destination
| du site de développement.
| **et_keys/**
| Contiens la clef publique du système de paiement E-Transactions.
.. warning::
Ne pas mettre de configuration personnelle ni aucun mot de passe dans **settings.py**. Si il y a besoin de ce genre de chose, il faut le mettre dans **settings_custom.py** qui lui n'est pas versionné.
Le contenu d'une application
----------------------------
| /app1
| **__init__.py**
| Permet de définir le dossier comme un package Python.
| Ce fichier est généralement vide.
| **models.py**
| C'est là que les modèles sont définis. Ces classes définissent
| les tables dans la base de donnée.
| **views.py**
| C'est là où les vues sont définies.
| **admin.py**
| C'est là que l'on déclare quels modèles doivent apparaître
| dans l'interface du module d'administration de Django.
| **tests.py**
| Ce fichier contiens les tests fonctionnels, unitaires
| mais aussi d'intégrations qui sont lancés par la pipeline.
| **urls.py**
| On y défini les URLs de l'application et on les lies aux vues.
| **migrations/**
| Ce dossier sert à stocker les fichiers de migration de la base
| de données générées par la commande *makemigrations*.
| **templates/**
| Ce dossier ci contiens généralement des sous dossiers et sert
| à accueillir les templates. Les sous dossiers servent de namespace.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment