mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-10-31 15:40:01 +01:00 
			
		
		
		
	Add documentation for year transitioning
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
		
							
								
								
									
										194
									
								
								docs/dev/transition.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										194
									
								
								docs/dev/transition.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,194 @@ | ||||
| Transition d'années | ||||
| =================== | ||||
|  | ||||
| Entre deux sessions du TFJM², certaines opérations doivent être effectuées chaque année, | ||||
| afin de réinitialiser les données et de passer à l'année suivante. | ||||
|  | ||||
| Réinitialisation de la base de données | ||||
| -------------------------------------- | ||||
|  | ||||
| Conservation des autorisations de droit à l'image | ||||
| """"""""""""""""""""""""""""""""""""""""""""""""" | ||||
|  | ||||
| La base de données du TFJM² est supprimée chaque année, avant chaque tournoi. Il n'y a | ||||
| pas de conservation de données personnelles à l'exception des autorisations de droit | ||||
| à l'image qui doivent être conservées pour des raisons légales pendant 5 ans. | ||||
|  | ||||
| Elles doivent alors être stockées sur Owncloud. Pour cela, il faut commencer par créer | ||||
| un dossier dans Owncloud, qui stockera lesdites autorisations. | ||||
|  | ||||
| Rendez-vous ensuite dans le conteneur Docker et exécuter le script : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    ./manage.py export_photo_authorizations | ||||
|  | ||||
| Cela a pour effet de générer un dossier dans ``output/photo_authorizations``, qui contient | ||||
| un dossier par équipe avec les différentes autorisations de droit à l'image. | ||||
|  | ||||
| Il faut maintenant récupérer ce dossier. Sortir du conteneur, et exécuter dans ``/srv/TFJM`` : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    sudo docker cp tfjm_plateforme_1:/code/output/photo_authorizations . | ||||
|    sudo mv photo_authorizations/* "data/owncloud/files/Emmy/Autorisations de droit à l'image/Autorisations de droit à l'image 2024/" | ||||
|    sudo chown -R www-data:root "data/owncloud/files/Emmy/Autorisations de droit à l'image/Autorisations de droit à l'image 2024" | ||||
|    sudo rmdir photo_authorizations | ||||
|  | ||||
| Il faut enfin réactualiser Owncloud. Exécuter en tant que www-data : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    sudo docker compose exec -u www-data cloud php occ files:scan Emmy | ||||
|  | ||||
| Vérifiez enfin que les fichiers sont bien accessibles dans l'interface Web. | ||||
| Ne pas oublier enfin de partager le dossier. | ||||
|  | ||||
|  | ||||
| Sauvegarde de secours | ||||
| """"""""""""""""""""" | ||||
|  | ||||
| Si les données doivent être supprimées, il peut être utile de réaliser une sauvegarde à conserver | ||||
| quelques mois. | ||||
|  | ||||
| .. danger:: | ||||
|  | ||||
|    Cette sauvegarde ne doit être faite qu'à des fins utiles et supprimée dès que plus nécessaire. | ||||
|  | ||||
| Sauvegardez alors le dossier ``/srv/TFJM/data/inscription/media`` et exportez la base de données : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    sudo cp -r data/inscription/media data/inscription/media-2024 | ||||
|    sudo docker compose exec -u postgres postgres pg_dump inscription | sudo tee inscription_bkp_2024.sql | ||||
|  | ||||
|  | ||||
| Réinitialisation effective | ||||
| """""""""""""""""""""""""" | ||||
|  | ||||
| Il est désormais possible de réinitialiser la base de données. Rendez-vous dans le conteneur de | ||||
| la plateforme, et exécutez : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    rm -r media/* | ||||
|    ./manage.py reset_db | ||||
|  | ||||
| Créez enfin un nouveau compte administrateur⋅rice : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    ./manage.py createsuperuser | ||||
|  | ||||
|  | ||||
| Nouveaux paramètres pour la nouvelle année | ||||
| ------------------------------------------ | ||||
|  | ||||
| Certains paramètres doivent être modifiés pour prendre en compte la nouvelle année. | ||||
|  | ||||
| Dates d'inscription | ||||
| """"""""""""""""""" | ||||
|  | ||||
| Les inscriptions sont permises uniquement entre l'ouverture et la fermeture, afin d'éviter | ||||
| d'avoir des personnes s'inscrivant en dehors du TFJM². | ||||
|  | ||||
| Pour cela, dans votre projet local, rendez-vous dans ``tfjm/settings.py`` et cherchez | ||||
| le paramètre ``REGISTRATION_DATES`` (pour le TFJM²). Modifiez alors les sous-paramètres | ||||
| ``open`` et ``close`` pour définir les dates pendant lesquelles les inscriptions des | ||||
| participant⋅es sont permises pour cette nouvelle année. Elles doivent être au format ISO. | ||||
|  | ||||
| Exemple pour l'année 2025 où les inscriptions ouvrent au 8 janvier midi pour fermer | ||||
| le 2 mars à 22h : | ||||
|  | ||||
| .. code:: python | ||||
|  | ||||
|     REGISTRATION_DATES = dict( | ||||
|         open=datetime.fromisoformat("2025-01-08T12:00:00+0100"), | ||||
|         close=datetime.fromisoformat("2025-03-02T22:00:00+0100"), | ||||
|     ) | ||||
|  | ||||
| Il faudra ensuite commiter la modification et redémarrer le serveur pour que la modification | ||||
| prenne effet. | ||||
|  | ||||
|  | ||||
| Noms des problèmes | ||||
| """""""""""""""""" | ||||
|  | ||||
| Toujours dans la configuration dans ``tfjm/settings.py``, la liste des problèmes doit être | ||||
| modifiée pour que leurs noms s'affichent correctement lors du tirage au sort. | ||||
|  | ||||
| Cherchez le paramètre ``PROBLEMS`` et mettez alors à jour la liste, dans l'ordre, des noms | ||||
| des problèmes. | ||||
|  | ||||
| À nouveau, il est nécessaire de commiter la modification et redémarrer le serveur. | ||||
|  | ||||
|  | ||||
| Paramètres des tournois | ||||
| """"""""""""""""""""""" | ||||
|  | ||||
| Il faut enfin paramétrer les différentes dates des tournois. | ||||
|  | ||||
| Pour cela, connectez-vous sur la plateforme (avec un compte administrateur⋅rice), et dans l'onglet | ||||
| « Tournois », vous pouvez créer les différents tournois avec les différentes dates pour chaque tournoi. | ||||
| Plus d'information sur les différents paramètres dans la `section concernée | ||||
| <../orga.html#creer-un-tournoi>`_ | ||||
|  | ||||
|  | ||||
| À la fin du tournoi | ||||
| ------------------- | ||||
|  | ||||
| Lorsque le tournoi est terminé, il faut récupérer les informations à stocker de façon pérenne, | ||||
| notamment les solutions des équipes, les résultats ainsi que les autorisation de droit à l'image | ||||
| comme indiqué précédemment. | ||||
|  | ||||
| Conservation des autorisations de droit à l'image | ||||
| """"""""""""""""""""""""""""""""""""""""""""""""" | ||||
|  | ||||
| Se référer à la section plus haut. | ||||
|  | ||||
|  | ||||
| Conservation des solutions des équipes | ||||
| """""""""""""""""""""""""""""""""""""" | ||||
|  | ||||
| Le processus est très similaire à la conservation des autorisations de droit à l'image. | ||||
| Il faut d'abord, dans le conteneur, lancer le script dédié pour récupérer les solutions | ||||
| dans ``/code/output/solutions`` : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    ./manage.py export_solutions | ||||
|  | ||||
| On sort du conteneur et on récupère les solutions pour les déplacer dans Owncloud : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    sudo docker cp tfjm_plateforme_1:/code/output/solutions . | ||||
|    sudo mv solutions/* "data/owncloud/files/Emmy/Solutions écrites 2024/" | ||||
|    sudo chown -R www-data:root "data/owncloud/files/Emmy/Solutions écrites 2024" | ||||
|    sudo rmdir solutions | ||||
|  | ||||
| Il faut enfin réactualiser Owncloud. Exécuter en tant que www-data : | ||||
|  | ||||
| .. code:: bash | ||||
|  | ||||
|    sudo docker compose exec -u www-data cloud php occ files:scan Emmy | ||||
|  | ||||
| Vérifiez enfin que les fichiers sont bien accessibles dans l'interface Web. | ||||
| Ne pas oublier enfin de partager le dossier. | ||||
|  | ||||
|  | ||||
| Génération de la page de résultats Wordpress | ||||
| """""""""""""""""""""""""""""""""""""""""""" | ||||
|  | ||||
| Pour finir, il est possible de récupérer les notes pour chaque tournoi afin de générer | ||||
| la page Wordpress dans la section *Éditions précédentes*. | ||||
|  | ||||
| Il suffit de lancer le script ``./manage.py export_results``, qui donne le texte brut pour | ||||
| Wordpress à ajouter sur la page de l'édition qui vient de se terminer dans l'onglet | ||||
| *Éditions précédentes*. | ||||
|  | ||||
| Pensez à bien inclure sur cette page le lien vers les problèmes de l'année, ainsi que le | ||||
| lien vers le dossier partagé dans le Owncloud concernant les solutions des équipes. | ||||
|  | ||||
| Assurez-vous de mettre à jour la page *Éditions précédentes* afin d'inclure le lien vers | ||||
| la page nouvellement créée. | ||||
		Reference in New Issue
	
	Block a user