mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-10-31 03:29:52 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			240 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			240 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| 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-inscription-1:/code/output/photo_authorizations .
 | |
|    sudo mv photo_authorizations/* "data/owncloud/data/Emmy/files/Autorisations de droit à l'image/Autorisations de droit à l'image 2024/"
 | |
|    sudo chown -R www-data:root "data/owncloud/data/Emmy/files/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_tfjm | sudo tee inscription_tfjm_bkp_2024.sql > /dev/null
 | |
| 
 | |
| 
 | |
| Réinitialisation effective
 | |
| """"""""""""""""""""""""""
 | |
| 
 | |
| Il est désormais possible de réinitialiser la base de données, après avoir éteint le serveur :
 | |
| 
 | |
| .. code:: bash
 | |
| 
 | |
|    sudo docker compose stop inscription
 | |
|    sudo rm -r data/inscription/media/*
 | |
|    sudo docker compose exec -u postgres postgres dropdb inscription_tfjm
 | |
|    sudo docker compose exec -u postgres postgres createdb -O inscription_tfjm inscription_tfjm
 | |
| 
 | |
| Redémarrez enfin le serveur (les migrations seront créées automatiquement)
 | |
| et créez un nouveau compte administrateur⋅rice :
 | |
| 
 | |
| .. code:: bash
 | |
| 
 | |
|    sudo docker compose up -d inscription
 | |
|    sudo docker compose exec inscription bash
 | |
|    ./manage.py createsuperuser
 | |
| 
 | |
| Vérifiez finalement le bon fonctionnement du site.
 | |
| 
 | |
| 
 | |
| Sites Django
 | |
| """"""""""""
 | |
| 
 | |
| Après avoir réinitialisé les données, il faut mettre à jour le site Django, qui permettra
 | |
| d'avoir notamment des noms de domaine correct dans les mails envoyés.
 | |
| 
 | |
| Se connecter alors sur le site réouvert, puis dans la partie « Administration », chercher la
 | |
| section « Sites » et modifier l'unique site présent. Vous pouvez ensuite effectuer les modifications
 | |
| à réaliser.
 | |
| 
 | |
| 
 | |
| 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-15T12: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 administrateurice), 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>`_.
 | |
| 
 | |
| 
 | |
| Dossier Google Drive des feuilles de notes
 | |
| """"""""""""""""""""""""""""""""""""""""""
 | |
| 
 | |
| Les tableurs Google Sheets de notes sont créés automatiquement vers le Google Drive du TFJM².
 | |
| Pour que les tableurs se créent au bon endroit, il faut modifier l'identifiant du dossier où se créent
 | |
| ces tableurs. Il faut donc se rendre dans les variables d'environnement de la plateforme, et
 | |
| modifier la variable ``NOTES_DRIVE_FOLDER_ID`` pour mettre à jour l'identifiant du dossier.
 | |
| Pour le trouver, il suffit simplement de se rendre sur Google Drive et de récupérer l'identifiant
 | |
| présent à la fin de l'URL, après ``https://drive.google.com/drive/u/X/folders/``.
 | |
| 
 | |
| Ne pas oublier de partager le dossier en écriture à l'adresse
 | |
| ``plateforme-tfjm@plateforme-tfjm.iam.gserviceaccount.com``.
 | |
| 
 | |
| 
 | |
| Anciennes listes de diffusion
 | |
| """""""""""""""""""""""""""""
 | |
| 
 | |
| Les listes Sympa doivent être fermées pour être correctement recréées. Un script permet
 | |
| de supprimer toutes les listes commençant par ``equipe``, ``orga`` ou ``jury`` :
 | |
| 
 | |
| .. code:: bash
 | |
| 
 | |
|    ./manage.py delete_old_sympa_lists
 | |
| 
 | |
| Attention : les listes closes ne sont pas supprimées. Rendez-vous sur la page
 | |
| `https://lists.tfjm.org/sympa/get_closed_lists`_ pour supprimer les listes ainsi fermées.
 | |
| 
 | |
| 
 | |
| À 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-inscription-1:/code/output/solutions .
 | |
|    sudo mv solutions/* "data/owncloud/data/Emmy/files/Solutions écrites 2024/"
 | |
|    sudo chown -R www-data:root "data/owncloud/data/Emmy/files/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.
 |