Upgrade en reprenant les informations des anciens serveurs
d'authentification. Cela devrait permettre de se logguer (un peu testé),
mais cela ne marche pas encore pour les anciens votes par exemple.
Amélioration du mécanisme d'upgrade : les fonctions d'upgrade peuvent être
maintenant aussi mises ailleurs que dans les serveurs.
N'enregistre plus les données salies lorsqu'un serveur s'appelle directement
(afin d'éviter une boucle sans fin).
infos.xml qui permettent d'avoir des traductions (via gettext via intltool)
- renommé getLastDigestAndLabels en getSomeDigestAndLabels puisqu'il n'y a rien
de "Last" dans la sélection (clôt bug 216 (quoiqu'il aurait aussi fallu
modifier le texte présenté dans l'interface web))
- envoi de talkbacks en cas d'erreur dans l'html, et envoi de l'html erroné
quand on n'est pas en debug
- option pour lier une fiche personne à un compte de l'authentification
- l'email avec le mot de passe peut être personnalisé dans l'admin de
l'authentification login/password (et traduit)
- suppression de la possibilité de redéfinition des common&proxy et de la récup
via getCommonForServerRole et getProxyForServerRole. Seul les web garde ce
support
- j'ai toujours une ligne blanche au milieu de mon écran et c'est très gênant.
Auparavant, quand une personne votait ou s'abstenait, son ancien vote
n'était pas détruit. Les votes de la personne s'accumulaient donc.
Pour gagner, il suffisait donc de voter souvent...
toujours aucun et jamais tous.
Un widget SelectId a maintenant la possibilité d'avoir des ids apparaissant en
permanence.
Création d'une kind UsersSet dont dérivent les kinds ReadersSet, WritersSet,
...
Déboguage des groupes.
Refonte complète du mécanisme de mise à jour des données lors de changements
de versions.
classes :
- les groupes "All" servant pour créer le groupe système désignant tous
les utilisateurs y compris ceux non identifiés ;
- les groupes "Union", qui sont les groupes par défaut et qui contiennent
l'union de leurs membres.
- les groupes "Intersection", qui contiennent les éléments appartenant à
l'instersection de leurs membres.
- Les groupes "Delta", qui contiennent les éléments de leur premier membre
qui ne sont pas éléments des autres membres.
Les groupes "Intersection" et "Delta" ne devraient pas servir souvent mais
permettent de couvrir tous les cas théoriques.
* Modification de la méthode modify des objets afin qu'elle permette désormais
de changer la classe de l'objet modifié.
* Changement dans le tri des menus.
contenant le texte à envoyer comme message de bienvenue.
TODO: permettre de définir la langue préférée d'un utilisateur lors du
addObject. Sans ça, pas moyen de savoir dans quelle langue le message doit
être envoyé.
d'introduire des erreurs un peu partout.
Changement de la manière dont sont gérés les multiples virtualServers. La
manière précédente posait des problèmes avec certains serveurs qui pensaient
que le virtualServer localhost existait et d'autres pas. Ce nettoyage a
nécessité des changements un peu partout.
Tous les tests de non-régression n'ont pas encore été modifiés pour
fonctionner avec ce nouveau mécanisme.
Pour tous les serveurs, quand il n'y a pas encore d'administrateur système
déclaré, tout utilisateur, même non identifié est considéré comme
administrateur système.
Corrections d'erreurs lors des dernières modifications du dataflow.
Correction des fonctions getXxxForServerRole, pour qu'il soit maintenant
possible de faire :
virtualHostsProxy = getProxyForServerRole('virtualhosts')
...
import glasnost.proxy.VirtualHostsProxy
dans cet ordre.
(durée : 2,5 jours intensifs)
Ajout de la méthode markAsDirty aux objets des serveurs.
Renommé encore une méthode (mais je vais m'arrêter là, car je m'ennuies moins : je lis travailleurs...).
Corrections de quelques erreurs qui trainaient.
Bien sûr, dès le premier jour de programmation de Glasnost (et même avant), nous aurions pu écrire ce mécanisme de wrapper. Vous pouvez donc être légitimement très surpris en découvrant petit à petit que l'équipe Glasnost savait d'avance et apparemment très précisément les changements qu'il y avait à apporter. IL aurait effectivement été plus simple de vous dire dés le départ : voici le code auquel doit aboutir notre développement.
Mais c'est un complot et la vérité est ailleurs : http://seti.easter-eggs.org/
Ajout d'une méthode getPassword, afin qu'un admin puisse récupérer le mot de passe d'un utilisateur.
Changement de generate-sytem.py afin qu'il utilise getPassword au lieu de récupérer le mot de passe par email.
Correction de l'instruction ObjectSlotValue du dataflow pour qu'elle passe les tests de non régression.
Et surtout : Refonte complète du mécanisme de newThing (et importThing), afin que, par exemple, quand un serveur récupère un objet distant d'un autre serveur, l'objet soit un objet proxy, mais que les slots et kinds qu'il contient soient eux des éléments server (s'ils ne sont pas spécifiques). Cela permet à ce serveur de manipuler les slots d'un objet proxy et les récupérer dans ses propres objets sans avoir à les convertir.
Le mécanisme ci-dessus peut paraître bizarre, mais je parie un stagiaire que c'est la bonne manière de faire.