Table des matières

WebNeL

WebNeL est une application web développée en Python/Django dont le but est, dans le futur, de remplacer intégralement l'héritage PHP de Ryzom Core. Cette application utilise Django 2 et Python 3.

2017-10-06 21:29:53 @YannK Donc on peut créer un dépôt WebNeL et y développer le site Django
2017-10-06 21:30:17 @YannK On fera un commit de type rm -Rf * à un moment sur le web hérité de RCD en php à ce moment :)
2017-10-06 21:30:21 TychoBrahe pourquoi garder NeL dans le nom ? :o
2017-10-06 21:30:40 * YannK aime bien le nom NeL, car cela fait référence au moteur de jeu

Développement

Le code source de WebNeL est disponible sur le dépôt GitLab. Ce développement s'effectue en quatre grandes étapes.

Modélisation de la base de données 
Cette étape consiste à créer les modèles Django de manière à ce que ces derniers utilisent directement la base de données déjà présente.
(20% ) 20%20%Priority: 1

Chaque base de données utilise une app Django séparé. Pour créer une app à partir de la base de donnée, il faut :

  1. Créer l'app : python manage.py startapp nom_de_la_db.
  2. Générer le modèle de base : python manage.py inspectdb --database nom_de_la_db >nom_de_la_db/models.py.
  3. Nettoyer le modèle précédemment généré :
    1. Vérifier la présence d'une clé primaire pour chaque modèle et que cette dernière soit cohérente.
    2. Vérifier que les champs vides ou nuls disposent bien de blank=True et, si nécessaire, null=True.
    3. Spécifier des valeurs par défaut lorsque nécessaire.
    4. Modifier les noms de champs de manière à avoir quelque chose de propre et cohérent.
    5. Identifier les clé étrangères et autres relations puis modifier les champs en conséquence.
    6. Vérifier la clause ON DELETE de chaque relation.
    7. Identifier et intégrer les choix multiples.
    8. Corriger les fautes d'orthographe de grammaire.
    9. Ordonner les modèles.
    10. Remplacer les commentaires par défaut par de vrais commentaires.

Création des applications 
Lors de cette étape, les modèles précédemment créés sont utilisés pour véritablement créer l'application web. Les fonctionnalités doivent êtres exactement les mêmes que celles de l'application PHP. Les composants utilisant ces applications seront clairement identifiés dans les commentaires de chaque vues.
(0% ) 0%Priority: 2

La mise en production 
WebNeL est alors mis en production simultanément avec l'application PHP. Les URL sont progressivement mises à jour de manière à ce qu'à terme seul WebNeL soit utilisé. Une veille des journaux d'erreurs et d'accès est faite de manière à détecter tout problème.
(0% ) 0%Priority: 3

Restructuration, nettoyage 
L'application PHP est enlevée de la production et supprimée du dépôt. WebNeL est modifié de manière à activer les migrations Django et à ce que ce dernier prenne la main sur la base de données au lieux de simplement l'utiliser. Les modèles peuvent alors être modifiés de manière à assainir la base et ajouter de nouvelles fonctionnalités.
(0% ) 0%Priority: 4

Documentation

Glorf | nel.users → pour la connexion en jeu
Glorf | ams_users → pour la connexion à l'AMS, les comptes ne sont pas nécessairemment les mêmes (par ex un joueur lambda n'a en théorie pas le droit de se co à l'administration des différents comptes)
Glorf | neltool → c'est le très très très vén,érable outil en PHP pour gérer les shard sans se co au serveur
Glorf | localiser un user, voir l'état des différents services, etc
Shepeng | d'après deed la base kring est utile
Shepeng | créée pourle ring, mais unepartie des fonctionnalitées ayant été intégrées dans le serveur de base, elle est devenue nécessaire si j'ai bien compris

Dates par défaut

MySQL a la mauvaise idée d'utiliser la valeur 0000-00-00 par défaut lorsqu’une date n'est pas renseignée. Ceci pose des problèmes avec Python/Django. Ce problème est à étudier afin d'en tirer la meilleur solution possible.