c2corg / v6_forum Goto Github PK
View Code? Open in Web Editor NEWForum app for c2c.org v6
Forum app for c2c.org v6
In v5 it's possible to add comments to a profile page. But it's not that relevant and often misused.
In v6, the association is OK for not having comments in the profile page. So I will simply skip this part in c2corg/v6_ui#728
Of course it would then make sense not to migrate the existing profile comments to the discourse DB.
But I guess it's OK to migrate them and simply not use them.
@arnaud-morvan what do you think?
During the forum migrating, the number of posts of each user has not been migrated.
PunBB counts only the number of posts, whereas Discourse counts the topics (the user has posted the first post of a topic) and the responses.
We can copy the PunBB user post count to discourse user response count.
Bad post ID
The forum migrating has not keep the V5 post ID but has renumbered the ID. Then, a link to a specific post will be broken (any link : in a post, in the quote header, in the topoguide, on an external site, etc).
Quote improvment
More over, the quote tag migrating has not kept the post ID.
The post ID is not managed yet in discourse, but it will have to be.
A post has already a html attribut "data-post-id" filled with the post ID.
To prepare the futur post ID managment, a quote migrating must be like this :
[quote=mollotof|2087176]
=>
[quote="mollotof, id: 2087176, post:23, topic:11892"]
The V5 forum allow single or double quotes in the pseudo. In the migrating, we can remove double quote to avoid some problems.
Problèmes avec la page de gestion d'un compte:
http://c2corgv6.demo-camptocamp.com/account
error with discourse
On peut changer le nom, mais il n'est pas pris en compte sur Discourse.
On peut changer le pseudo, mais:
a) il n'est pas pris en compte sur Discourse ;
b) il y a plus de restrictions de formatage que ce qu'impose Discourse: le point '.' et l'underscore '_', entre autres, sont interdits (= il y a un "sens interdit" quand on passe la souris sur "Enregistrer").
Rappel : pour le formatage du pseudo forum V5 en pseudo V6, c'est ici : #22 (comment)
NB : sur ma page de gestion du profil Discourse:
http://c2corgv6-discourse.demo-camptocamp.com/users/jmc2/preferences
j'ai: Nom = jmc / Pseudo = jmc2 / Courriel = user9354@localhost
tandis que sur la page de gestion du compte Camptocamp j'avais (avant modif perso):
Nom = J.Marc / Pseudo = JMarcd2 / Courriel = user9354@localhost
Il semble que lors du dernier import, Discourse n'ait pas récupéré les champs V5 pseudo topoguide (= J.Marc) et pseudo forum (=J.Marc), et ait gardé uniquement le login V5 (jmc pour moi).
The UI demo is password-protected whereas the demo discourse instance is not. Perhaps we should apply the same protection to it as well (with the same username/password)?
Use case
As the first post is not shown in guidebook document comments (discourse embed), we should create a prepending post in guidebook related topic during migration.
Post content remain to be described by the association.
The header/navigation menu should, as much as possible, be consistent with the UI site.
This type of errors arrive ramdomly when running import script.
Here, the real import do not have started yet, it appends during the settings change for the import.
I relaunch the script and all works perfectly.
$ ./import_run.sh
You are running an old version of bundler, please upgrade bundler ASAP, if you are using Discourse docker, rebuild your container.
You are running an old version of bundler, please upgrade bundler ASAP, if you are using Discourse docker, rebuild your container.
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 (2.7ms) SELECT COUNT(count_column) FROM (SELECT 1 AS count_column FROM "users" LIMIT 20) subquery_for_count
URGENT: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error. Failed to initialize site default
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 User Load (2.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = -1 LIMIT 1 [["id", -1]]
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 (2.1ms) SELECT "translation_overrides"."translation_key", "translation_overrides"."value" FROM "translation_overrides" WHERE "translation_overrides"."locale" = 'en' [["locale", :en]]
loading existing groups...
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 (0.8ms) SELECT "group_custom_fields"."group_id", "group_custom_fields"."value" FROM "group_custom_fields" WHERE "group_custom_fields"."name" = 'import_id' [["name", "import_id"]]
loading existing users...
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 (1.5ms) SELECT "user_custom_fields"."user_id", "user_custom_fields"."value" FROM "user_custom_fields" WHERE "user_custom_fields"."name" = 'import_id' [["name", "import_id"]]
loading existing categories...
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 (1.0ms) SELECT "category_custom_fields"."category_id", "category_custom_fields"."value" FROM "category_custom_fields" WHERE "category_custom_fields"."name" = 'import_id' [["name", "import_id"]]
loading existing posts...
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 (0.9ms) SELECT "post_custom_fields"."post_id", "post_custom_fields"."value" FROM "post_custom_fields" WHERE "post_custom_fields"."name" = 'import_id' [["name", "import_id"]]
loading existing posts2...
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 (2.1ms) SELECT "posts"."id", "posts"."user_id", "posts"."topic_id", "posts"."post_number" FROM "posts" WHERE ("posts"."deleted_at" IS NULL)
loading existing topics...
Failed to report error: EXECABORT Transaction discarded because of previous errors. 0 (4.1ms) SELECT posts.id, posts.topic_id, posts.post_number, topics.slug FROM "posts" INNER JOIN "topics" ON "topics"."id" = "posts"."topic_id" AND ("topics"."deleted_at" IS NULL) WHERE ("posts"."deleted_at" IS NULL)
/home/amorvan/gempath/ruby/2.1.0/gems/redis-3.2.2/lib/redis/pipeline.rb:79:in `finish': EXECABORT Transaction discarded because of previous errors. (Redis::CommandError)
from /home/amorvan/gempath/ruby/2.1.0/gems/redis-3.2.2/lib/redis/client.rb:150:in `block in call_pipeline'
from /home/amorvan/gempath/ruby/2.1.0/gems/redis-3.2.2/lib/redis/client.rb:280:in `with_reconnect'
from /home/amorvan/gempath/ruby/2.1.0/gems/redis-3.2.2/lib/redis/client.rb:148:in `call_pipeline'
from /home/amorvan/gempath/ruby/2.1.0/gems/redis-3.2.2/lib/redis.rb:2245:in `block in multi'
from /home/amorvan/gempath/ruby/2.1.0/gems/redis-3.2.2/lib/redis.rb:57:in `block in synchronize'
from /usr/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
from /home/amorvan/gempath/ruby/2.1.0/gems/redis-3.2.2/lib/redis.rb:57:in `synchronize'
from /home/amorvan/gempath/ruby/2.1.0/gems/redis-3.2.2/lib/redis.rb:2237:in `multi'
from /home/amorvan/gempath/ruby/2.1.0/gems/message_bus-2.0.0.beta.2/lib/message_bus/redis/reliable_pub_sub.rb:92:in `publish'
from /home/amorvan/gempath/ruby/2.1.0/gems/message_bus-2.0.0.beta.2/lib/message_bus.rb:218:in `publish'
from /home/amorvan/c2corgv6/discourse/lib/site_setting_extension.rb:322:in `notify_changed!'
from /home/amorvan/c2corgv6/discourse/lib/site_settings/db_provider.rb:7:in `block in initialize'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:446:in `instance_exec'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:446:in `block in make_lambda'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:263:in `call'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:263:in `block in simple'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:506:in `call'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:506:in `block in call'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:506:in `each'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:506:in `call'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
from /home/amorvan/gempath/ruby/2.1.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778:in `_run_commit_callbacks'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/transactions.rb:314:in `committed!'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:89:in `commit_records'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:153:in `commit'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:175:in `commit_transaction'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:194:in `within_new_transaction'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/transactions.rb:220:in `transaction'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/transactions.rb:348:in `with_transaction_returning_status'
from /home/amorvan/gempath/ruby/2.1.0/gems/activerecord-4.2.5/lib/active_record/transactions.rb:291:in `save!'
from /home/amorvan/c2corgv6/discourse/lib/site_settings/db_provider.rb:40:in `save'
from /home/amorvan/c2corgv6/discourse/lib/site_setting_extension.rb:315:in `add_override!'
from /home/amorvan/c2corgv6/discourse/lib/site_setting_extension.rb:466:in `block in setup_methods'
from /home/amorvan/c2corgv6/discourse/lib/site_setting_extension.rb:364:in `set'
from /home/amorvan/c2corgv6/discourse/script/import_scripts/base.rb:92:in `block in reset_site_settings'
from /home/amorvan/c2corgv6/discourse/script/import_scripts/base.rb:90:in `each'
from /home/amorvan/c2corgv6/discourse/script/import_scripts/base.rb:90:in `reset_site_settings'
from /home/amorvan/c2corgv6/discourse/script/import_scripts/base.rb:61:in `ensure in perform'
from /home/amorvan/c2corgv6/discourse/script/import_scripts/base.rb:61:in `perform'
from script/import_scripts/punbb.rb:499:in `<main>'
Abonnements : ils ont désormais théoriquement migré, mais à vérifier pour ceux qui sont concernés (ce n'est pas mon cas).
NB : j'ai l'impression qu'on est par défaut également abonné à tous les sujets qu'on a créés (abonné sur Discourse = mode "Surveiller") ; c'est un peu lourd, à supprimer si possible.
Error is on the Beta server of C2C-asso : https://forum.demov6.camptocamp.org/
On v5, my ID is "herve74", my name "Hervé Sergeraert" and my forum pseudo "Lutin"
On Discourse, my pseudo becomes herve741 (instead of Lutin), the name is herve74 (instead of "Hervé Sergeraert").
On Beta server topoguide, the ID's are correct and not coherent with Discourse
I have no clue how to change them on Discourse, fields can't be changed.
Is it a migration issue ?
In discourse, the pseudo is the login, and is limited to 20 alphanum characters (without space, accents, ...).
But in V5, the pseudo is not the login, and can be longer than 20 char, with space en accents.
Then, in the test forum, in a post the poster name is the V5 login instead of V5 pseudo.
The solution is to change the field showed as poster name (anywhere it is visible in discourse) : use the complete name instead of login/pseudo.
The migrating must set the complete name with the V5 forum pseudo.
The V5 topoguide name is lost (or a field is added).
Images fraichement insérées : un script automatique (de redimensionnement des images ?) semble modifier a posteriori les balises et du coup fait disparaitre l'affichage des images (pourtant visibles lors de la mise en ligne).
When c2corg/v6_ui#587 is merged, the URL for SSO and logout should be changed to /auth-sso
and /auth-sso?logout
in the configuration.
@arnaud-morvan : voici comme convenu des exemples de liens internes "à la main" qui sont cassés sur la beta.
Une redirection sera-t-elle possible ?
Sur la V5, il y a 3 types de liens internes postés à la main :
De plus, ces liens peuvent avoir ou non un titre, soit 6 acs au final.
Voici 3 exemples montrant comment de tels liens ont migré vers la beta V6 ; pour l'exemple 3), j'ai choisi un lien avec titre
V5 : le post http://www.camptocamp.org/forums/viewtopic.php?pid=2213482#p2213482
contient un lien cliquable vers la discussion http://www.camptocamp.org/forums/viewtopic.php?id=296126
Ce lien a été automatiquement réduit à l'édition en : #t296126
V6 : le post http://forum.demov6.camptocamp.org/t/sorties-trail/171737/11
contient juste la chaîne #t296126
non cliquable, et inutilisable car ne renvoyant pas à une ID discourse.
V5 : le post http://www.camptocamp.org/forums/viewtopic.php?pid=2052476#p2052476
contient un lien cliquable vers le message http://www.camptocamp.org/forums/viewtopic.php?pid=2052393#p2052393 d'une autre discussion.
Ce lien a été automatiquement réduit à l'édition en : #p2052393
V6 : le post http://forum.demov6.camptocamp.org/t/ce-que-vous-avez-appris-aujourdhui/138040/436
contient juste la chaîne #p2052393
non cliquable, et inutilisable car ne renvoyant pas à une ID discourse.
V5 : le post http://www.camptocamp.org/forums/viewtopic.php?pid=2165395#p2165395
contient un lien cliquable (avec titre "démontré dans ce sujet") vers le message http://www.camptocamp.org/forums/viewtopic.php?pid=2163770#p2163770 de la même discussion.
Ce lien a été automatiquement réduit à l'édition en [url=#p2163770]démontré dans ce sujet[/url]
V6 : le post http://forum.demov6.camptocamp.org/t/nanga-parbat-hiver-2016-eli-revol-pour-relever-le-defi-avec-dautres/161239/849 contient cette fois un lien cliquable avec titre, mais le lien dirige vers quelque chose de bizarre (et n'atteint donc pas le bon message) :
http://forum.demov6.camptocamp.org/t/nanga-parbat-hiver-2016-eli-revol-pour-relever-le-defi-avec-dautres/161239/848#p2163770
alors que le bon message devrait être celui-ci :
http://forum.demov6.camptocamp.org/t/nanga-parbat-hiver-2016-eli-revol-pour-relever-le-defi-avec-dautres/161239/764
NB : ces liens internes "à la main", pas très fréquents sur les forums publics, sont très nombreux dans nos forums privés de modération.
The data which stores that an user is suscribed to a topic, has not been migrated.
This data must be migrated as "watching" level of the topic survey (higher level).
2 soucis lorsque la citation pointe vers une autre discussion (comme pour la migration, à une nuance près cf le lien d'échec) :
on récupère le message source via le bouton '->', mais les 2 liens vers ce message, avec nom de la discussion mère, sont bugués ; exemple : http://c2corgv6-discourse.demo-camptocamp.com/t/test-citations/169440/2 (lien http://c2corgv6-demo.gis.internal/t/test-liens/169436/4 ouvrant une page d'échec de connexion) ;
l'auteur du message source n'apparait pas toujours, même avec le bouton 'v', pour le connaitre il faut en général revenir au message source.
A first import of the v5 data was conducted. It took a long time ~10 days and there are many issues.
The data was imported in a dedicated instance of Discourse and then dumped and imported in the Docker instance of Discourse.
Issues:
localhost:3000
;Note:
Voici le résultat de nos premiers tests quant à la dernière version du forum (suite à la migration complète du 30 mai).
Je suis incapable de savoir ce qui incombe à la SA, et ce qui incombe aux développeurs de l'association ; mais Bubu saura faire le tri.
a) Séparation des messages : les séparateurs entre les différents messages d'une discussion sont à peine visibles : utiliser des cadres, ou des couleurs de fond ?
b) Accès au menu : sur desktop, on aimerait une barre ou une colonne gauche (éventuellement repliables), et pas seulement le petit damier en haut à droite ; et ce sur toutes les pages, pas seulement l'accueil.
c) Largeur d'écran : le texte n'utilise qu'une partie trop étroite de l'écran (1/3 sur 1920/1080).
d) [résolu] Boutons pour créer un message : cliquer sur "répondre" pour ouvrir la fenêtre d'édition : OK ; mais cliquer ensuite sur "répondre" pour valider, ce n'est pas logique... cependant on n'y peut rien, car il n'y a qu'un champ pour définir ces 2 intitulés.
e) [résolu] Boutons pour créer une discussion : cliquer sur "créer votre sujet" pour ouvrir la fenêtre d'édition : OK ; mais cliquer ensuite sur "créer un sujet" pour valider, ce n'est pas logique non plus ; et là il y a 2 champs séparés ; on pourrait renommer le premier bouton "créer un sujet" et le second "envoyez votre sujet".
f) Affichage de la datation d'un message : actuellement c'est du style 8h, 13j, janv. '13 : inutilisable ! d'autant que tous les messages "proches" ont ainsi la même datation...
Or date + heure (à la minute près) existent (on les obtient en passant la souris sur la datation, ou en cliquant dessus) : il faudrait remplacer l'actuelle datation par cette date + heure (à la minute près) ; avec si possible en lieu et place de la date du jour (resp. de la veille), "aujourd'hui" (resp. "hier") ; bref... comme sur la V5 !
g) [résolu] Catégories et forums : on aimerait une page où tout cela apparait structuré comme dans l'index des forums de la V5... seul moyen d'avoir une vue globale de l'architecture du site, de se familiariser avec les forums existants... et de les retrouver facilement !
Actuellement, trouver le bon forum sur la V6 sans connaitre son nom est une gageure...
h) Utilisation avec un smartphone : très délicate, car boutons trop petits, fenêtres de saisie trop minces (à la création : 2 lignes 1/2 ; à l'édition : 1 ligne 1/2) , ouvertures intempestives pendant qu'on écrit etc.
A vérifier par Bubu, car perso je n'ai pas de smartphone...
Voici le résultat de nos premiers tests quant à la dernière version du forum (suite à la migration complète du 30 mai).
Je suis incapable de savoir ce qui incombe à la SA, et ce qui incombe aux développeurs de l'association ; mais Bubu saura faire le tri.
a) Comptes : cf issue #25 Page account
b) Invités : les posts d'invités de la V5 se retrouvent tous sous le même compte 'system', mais désormais le pseudo V5 de ces invités apparait en début de message sous la forme "Posted as guest by pseudo:" ; c'est la bonne solution, mais il faudrait traduire en français.
c) ID : les discussions sont repérées par un n° d'ordre qui n'est pas l'ID de la V5 ; et les messages de chaque discussion sont repérés par le n° de la discussion mère et un n° d'ordre dans cette discussion.
On perd ainsi tous les liens V5 pointant sur une discussion ou un message, que ce soit depuis le forum, le topoguide ou depuis un site extérieur.
Ce grave problème, repéré dès la première version du forum de test, n'a pas été réglé.
d) Citations : les citations, totales ou partielles, des messages V5 sont bien conservées. Et désormais on peut remonter au message source, très gros progrès ! Quant au pseudo cité, c'est celui de la V5 (ce qui est une bonne chose, ça marque le contexte).
Reste 2 soucis lorsque la citation pointe vers une autre discussion :
Sinon un bug pour les citations précédées d'une ligne vierge, les balises [ quote ] et [ /quote ] sont alors visibles et non interprétées ; exemple : http://c2corgv6-discourse.demo-camptocamp.com/t/beau-grimpeur-a-espace-vertical/70977/28
e) Perte des IP des messages : il semble ne pas y avoir de solution, on s'en passera.
f) Mise en forme : comme Discourse accepte une bonne partie du BBCode, la mise en forme des messages est assez bien conservée (y compris les smileys).
Il y a néanmoins une grosse perte : les images et vidéos insérées ne sont plus intégrées, elle deviennent juste des liens cliquables.
Visiblement, la syntaxe [ img=url ][ /img ] ne passe plus (i.e. celle utilisée depuis quelques temps via le bouton Img), alors que celle-ci : [ img ]url[ /img ] fonctionne encore ; et bien sûr le code d'insertion d'une image du topoguide dans le forum ne fonctionne plus.
Perte aussi du code (balise [ c ]), des spoilers (balise [ spoiler ]) et des couleurs (balise [ color ]), mais moins embêtant.
Autre gros problème : un '+' en début de phrase est automatiquement remplacé par une puce, et donc tous les plussoiements "+ 1" sont cassés !
g) Abonnements : ils ont désormais théoriquement migré, mais à vérifier pour ceux qui sont concernés (ce n'est pas mon cas).
NB : j'ai l'impression qu'on est par défaut également abonné à tous les sujets qu'on a créés (abonné sur Discourse = mode "Surveiller") ; c'est un peu lourd, à supprimer si possible.
h) Compteur de posts par membre : désormais OK (visible seulement par les modos)
i) Forums privés : ils n'apparaissent pas dans les catégories ; mais les discussions de ces forums sont bien présentes ! A corriger, car pour l'instant c'est ingérable (on ne sait pas où aller, ni même où on est...)
j) Exhaustivité de la migration : j'ai l'impression qu'il manque plein de discussions ! peut-être la moitié...
Par exemple, dans le forum "discussions escalade", pour le mois de septembre 2014, 60 discussions pour la V5, seulement 25 pour la V6...
ID : les discussions sont repérées par un n° d'ordre qui n'est pas l'ID de la V5 ; et les messages de chaque discussion sont repérés par le n° de la discussion mère et un n° d'ordre dans cette discussion.
On perd ainsi tous les liens V5 pointant sur une discussion ou un message, que ce soit depuis le forum, le topoguide ou depuis un site extérieur.
Ce grave problème, repéré dès la première version du forum de test, n'a pas été réglé.
There seems to be no way to post in Discourse without having an account.
However, when logged in, it is possible to switch to an anonymous
mode.
See https://meta.discourse.org/t/how-will-anonymous-posting-mode-work/25370
It is not useful to remove unsupported BBcode tag. Today, only the [video] tags are removed.
The post parser will be improved by the assoce to support [video] tags and others V5 tags.
If you want to improve the parser, the V5 post parser is here :
https://github.com/c2corg/camptocamp.org/blob/master/web/forums/include/parser.php#L997
The sub functions are defined in the same file.
@ginold said in issue c2corg/v6_ui#461
I have created 2 different styles for the menu on discourse forum page.
One with menu on the top, like on ubuntu.discrouse :
http://c2corgv6-discourse.demo-camptocamp.com/?preview-style=1e6de3bd-3b54-41f3-966c-b9b1c93d4648And the second which is more c2corg.v6-like, but I stopped going further because I dont' know how to import CSS classes and SVG icons into discourse, so any glitches are normal.
http://c2corgv6-discourse.demo-camptocamp.com/?preview-style=7d20cade-645c-46d8-8956-de59416683efI would stick to the first one, it is much more easily maintainable.
BTW how to import generated links if I don't want to hardcode them? like the URLs of the links in the menus with request.static_url....
In V5 forum topoguide images are inserted in posts using :
[img=1479113831_1579162882.jpg 821742 inline]un couché de soleil de malade[/img]
Note api image proxy, already permit this :
[img]https://api.demov6.camptocamp.org/images/proxy/815721?size=SI[/img]
Voici le résultat de nos premiers tests quant à la dernière version du forum (suite à la migration complète du 30 mai).
Je suis incapable de savoir ce qui incombe à la SA, et ce qui incombe aux développeurs de l'association ; mais Bubu saura faire le tri.
a) ID non utilisée : l'ID des discussions et des messages est invisible, et pas utilisée pour le repérage.
Du coup après déplacement d'un message, les liens vers ce message sont obsolètes ; ils renvoient malgré tout au message via un lien de redirection apparaissant là où était l'ancien message, mais c'est difficile de s'y retrouver, et ces redirections vont vite polluer les discussions.
C'est également le cas pour les citations vers des messages déplacés : passage par un lien de redirection.
b) Messages déplacés : ils sont rangés par ordre de déplacement, et non par ordre chronologique (et le premier message déplacé se retrouve soit en tête d'une nouvelle discussion, soit en queue d'une discussion existante). D'où perte de sens de la discussion réceptacle !
c) URL floues : un lien vers un message donné montre plusieurs messages consécutifs, difficile de savoir lequel était pointé.
Et pour connaitre l'url d'un message défilant, visible dans le champ url du navigateur, c'est approximativement celle du message en haut de page, mais à condition d'avoir stoppé le défilement quelques secondes.
Pour avoir l'url précise d'un message, il faut cliquer sur la date ou sur le bouton "partager", afin d'ouvrir un cadre (d'où on peut voir le n° de message et copier l'url complète) : peu ergonomique.
Du coup lorsqu'on met un lien interne vers un message, pas sûr que le lecteur comprenne quel est le message visé. Un minimum serait qu'un lien interne positionne le message visé exactement en haut de page (comme c'est le cas actuellement sur la V5), ou alors que le message pointé soit colorisé.
d) Recherche inefficace : on peut juste chercher par mot(s) clef(s) sur l'ensemble du forum.
Il y a bien un bouton "Options", mais il est inerte.
Par ailleurs il semble que la recherche ne renvoie pas plus de 50 réponses (mais c'est peut-être configurable en mode admin ?)
Il faudrait trouver des plugins permettant de retrouver au moins les options de recherche de la V5 : filtre par forum, recherche sur titre et/ou corps du message, réponse par discussion ou message.
Autre point déroutant par rapport à la V5 : c'est une recherche approchée (comme Google) et non exacte, ce qui a ses avantages lorsqu'on n'est pas certain de ce qu'on cherche, mais devient pénible quand on obtient trop de réponses parasites.
e) Pas d'IP de messages : juste l'IP de la dernière connexion du membre, inopérante pour un suivi par les modos.
D'un autre côté, le suivi par IP aujourd'hui devient difficile (trop d'IP changeantes, ou partagées (sur smartphone)), donc pas si grave.
f) Retour arrière dynamique : un retour arrière recharge la page, ce qui ralentit et ne ramène pas forcément à l'endroit de la page où on était.
Cela rend la navigation vraiment difficile.
Et le risque est élevé qu'une fausse manip lors de la saisie d'un message fasse perdre le message sans espoir de récupération (alors qu'avec un retour statique, i.e. sans rechargement, on retrouve la fenêtre d'édition avec le texte déjà tapé).
g) Images fraichement insérées : un script automatique (de redimensionnement des images ?) semble modifier a posteriori les balises et du coup fait disparaitre l'affichage des images (pourtant visibles lors de la mise en ligne).
h) Smileys intempestifs : la ponctuation ':' précédée d'un espace (comme il se doit !) génère un smiley... on ne peut donc pas mettre d'espace avant ':', ou alors il faut bricoler (aller à la ligne, écrire, remonter et ajouter la ponctuation).
i) Plussoiement : il est devenu impossible, car un '+' en début de ligne se transforme en puce, on ne peut donc pas écrire '+ 1'.
j) Liens internes : ils sont corrects, mais automatiquement transformés en une sorte de citation, ça alourdit inutilement la lecture ; exemple : http://c2corgv6-discourse.demo-camptocamp.com/t/test-liens/169436/7
k) Citations :
2 soucis lorsque la citation pointe vers une autre discussion (comme pour la migration, à une nuance près cf le lien d'échec) :
l) Avatars : la saisie d'un avatar ne fonctionne plus : l'image se télécharge, mais "sauvegarder les modifications" ne sauvegarde rien.
m) Modération des pseudos : les modérateurs peuvent théoriquement modifier un pseudo, mais ça ne fonctionne pas : message "il y a une erreur lors du chargement de votre pseudo".
At least the discourse page header will be customized to show the logo and the navigation bar/menu (if possible the same header than in UI).
les posts d'invités de la V5 se retrouvent tous sous le même compte 'system', mais désormais le pseudo V5 de ces invités apparait en début de message sous la forme "Posted as guest by pseudo:" ; c'est la bonne solution, mais il faudrait traduire en français.
The login and logout processes should be as integrated as possible.
A topic was open on discourse to get advices on the available possiblities:
https://meta.discourse.org/t/sso-login-from-main-site-backend/37933
See c2corg/v6_ui#219
Exhaustivité de la migration : j'ai l'impression qu'il manque plein de discussions ! peut-être la moitié...
Par exemple, dans le forum "discussions escalade", pour le mois de septembre 2014, 60 discussions pour la V5, seulement 25 pour la V6...
With the current state of the migration tool, old messages posted as guest are affected to user "System" (the guest poster pseudo is no longer displayed).
The solution suggested by @gberaudo seems OK for the association: prefix those messages by some mention like Posted as guest by <pseudo>
.
Nice to have: use a localized prefix depending on the language of the discussion (perhaps it can be detected by figure the main forum original category which are "it", "de", etc. in v5, default would be "fr").
As for now the login/logout and username sync does not work between the UI demo instance and the Discourse demo instance.
@gberaudo I have probably missed some config but I am not sure what I should do. Is there a doc somewhere?
Here is a request to get duplicated topics from discourse:
SELECT *
FROM (
SELECT
id,
title,
category_id,
count(id) OVER (PARTITION BY title) AS duplicate_count
FROM topics
WHERE deleted_at IS NULL AND category_id = 28
ORDER BY title
) AS qualified_topics
WHERE duplicate_count > 1
And the result is :
id;title;category;duplicate_count
68518;"107473_fr";28;2
68519;"107473_fr";28;2
68572;"107568_fr";28;2
68573;"107568_fr";28;2
71686;"115858_it";28;2
71685;"115858_it";28;2
74256;"124815_fr";28;2
74258;"124815_fr";28;2
74264;"124833_fr";28;2
74265;"124833_fr";28;2
74447;"125133_fr";28;2
74446;"125133_fr";28;2
83419;"142778_fr";28;2
85247;"142778_fr";28;2
82130;"145334_fr";28;2
82131;"145334_fr";28;2
82612;"146737_fr";28;2
82613;"146737_fr";28;2
83495;"151802_fr";28;2
83496;"151802_fr";28;2
83800;"152872_fr";28;2
83799;"152872_fr";28;2
84607;"156577_fr";28;2
84601;"156577_fr";28;2
85264;"159707_fr";28;2
85265;"159707_fr";28;2
85390;"160425_fr";28;2
85391;"160425_fr";28;2
87099;"168267_fr";28;2
87095;"168267_fr";28;2
87132;"168465_fr";28;2
87133;"168465_fr";28;2
125475;"172603_fr";28;2
125474;"172603_fr";28;2
88685;"173359_fr";28;2
88684;"173359_fr";28;2
90254;"180051_fr";28;2
90253;"180051_fr";28;2
90365;"180737_fr";28;2
90366;"180737_fr";28;2
91241;"185039_fr";28;2
91243;"185039_fr";28;2
92990;"191342_fr";28;2
92989;"191342_fr";28;2
94742;"196377_fr";28;2
94741;"196377_fr";28;2
94636;"196693_fr";28;2
94634;"196693_fr";28;2
95145;"198934_fr";28;2
95148;"198934_fr";28;2
95726;"201693_it";28;2
95727;"201693_it";28;2
95752;"201793_fr";28;2
95753;"201793_fr";28;2
96017;"203039_fr";28;2
96016;"203039_fr";28;2
96518;"205375_fr";28;2
96517;"205375_fr";28;2
98009;"212069_fr";28;2
98008;"212069_fr";28;2
98426;"214174_fr";28;2
98425;"214174_fr";28;2
98897;"216884_fr";28;2
98896;"216884_fr";28;2
99453;"219065_fr";28;2
99454;"219065_fr";28;2
101176;"225687_fr";28;2
101177;"225687_fr";28;2
125582;"227527_fr";28;2
125583;"227527_fr";28;2
101556;"227717_fr";28;2
101557;"227717_fr";28;2
102154;"231117_fr";28;2
102155;"231117_fr";28;2
102278;"231728_fr";28;2
102279;"231728_fr";28;2
103168;"236558_fr";28;3
103170;"236558_fr";28;3
103169;"236558_fr";28;3
103987;"240950_fr";28;2
103988;"240950_fr";28;2
105112;"244345_fr";28;2
105113;"244345_fr";28;2
106739;"250866_fr";28;2
106738;"250866_fr";28;2
124769;"254412_fr";28;2
124768;"254412_fr";28;2
108228;"259349_it";28;2
108227;"259349_it";28;2
108351;"260326_fr";28;2
108350;"260326_fr";28;2
108582;"261673_fr";28;2
108581;"261673_fr";28;2
108959;"264340_fr";28;2
108960;"264340_fr";28;2
109103;"265219_fr";28;2
109102;"265219_fr";28;2
109188;"265508_fr";28;2
109186;"265508_fr";28;2
110014;"270443_fr";28;2
110013;"270443_fr";28;2
110850;"275414_fr";28;2
110852;"275414_fr";28;2
111390;"277684_fr";28;2
111391;"277684_fr";28;2
112834;"285057_fr";28;2
112872;"285057_fr";28;2
113005;"285906_fr";28;2
113006;"285906_fr";28;2
113474;"289203_fr";28;2
113475;"289203_fr";28;2
113574;"290037_fr";28;2
113573;"290037_fr";28;2
114094;"294418_fr";28;2
114095;"294418_fr";28;2
115033;"301260_fr";28;2
115034;"301260_fr";28;2
115196;"302192_fr";28;2
115195;"302192_fr";28;2
115542;"304597_fr";28;2
115543;"304597_fr";28;2
115704;"305377_fr";28;2
115705;"305377_fr";28;2
116064;"307384_fr";28;2
116082;"307384_fr";28;2
116405;"309181_fr";28;2
116406;"309181_fr";28;2
116479;"309663_fr";28;2
116478;"309663_fr";28;2
117748;"316284_fr";28;2
117749;"316284_fr";28;2
118237;"319016_it";28;2
118236;"319016_it";28;2
118328;"319811_fr";28;2
118329;"319811_fr";28;2
118475;"320921_fr";28;2
118474;"320921_fr";28;2
119586;"327166_fr";28;2
119585;"327166_fr";28;2
119931;"329591_fr";28;2
119930;"329591_fr";28;2
120636;"334641_fr";28;2
120635;"334641_fr";28;2
121120;"337755_fr";28;2
121121;"337755_fr";28;2
123139;"350407_fr";28;2
123138;"350407_fr";28;2
123473;"352528_fr";28;2
123474;"352528_fr";28;2
125087;"362577_fr";28;2
125086;"362577_fr";28;2
126060;"371295_fr";28;2
126059;"371295_fr";28;2
126251;"372296_fr";28;2
126252;"372296_fr";28;2
127336;"379331_fr";28;2
127335;"379331_fr";28;2
127366;"379579_fr";28;2
127365;"379579_fr";28;2
127757;"381844_fr";28;2
127758;"381844_fr";28;2
128752;"387226_it";28;2
128753;"387226_it";28;2
128821;"387681_fr";28;2
128822;"387681_fr";28;2
128892;"388063_it";28;2
128891;"388063_it";28;2
129121;"389412_fr";28;2
129122;"389412_fr";28;2
129525;"392479_fr";28;2
129523;"392479_fr";28;2
129606;"393106_it";28;2
129607;"393106_it";28;2
129873;"395721_fr";28;2
129874;"395721_fr";28;2
129927;"396367_fr";28;2
129929;"396367_fr";28;2
131350;"408034_it";28;2
131349;"408034_it";28;2
132544;"419115_fr";28;2
132543;"419115_fr";28;2
132598;"419539_fr";28;2
132599;"419539_fr";28;2
133198;"424431_fr";28;2
133202;"424431_fr";28;2
133858;"430205_fr";28;2
133856;"430205_fr";28;2
134355;"433766_fr";28;2
134356;"433766_fr";28;2
134579;"435458_fr";28;2
134581;"435458_fr";28;2
134701;"436560_fr";28;2
134702;"436560_fr";28;2
135183;"440545_fr";28;2
135184;"440545_fr";28;2
135641;"444649_it";28;2
135642;"444649_it";28;2
135835;"446672_fr";28;2
135834;"446672_fr";28;2
137315;"461050_fr";28;2
137316;"461050_fr";28;2
137398;"461901_fr";28;2
137397;"461901_fr";28;2
138293;"468453_fr";28;2
138292;"468453_fr";28;2
138397;"469324_fr";28;2
138398;"469324_fr";28;2
138528;"470005_fr";28;2
138531;"470005_fr";28;2
140580;"487153_fr";28;2
140579;"487153_fr";28;2
141147;"491447_fr";28;2
141145;"491447_fr";28;2
141300;"492975_fr";28;2
141299;"492975_fr";28;2
141525;"494976_fr";28;2
141526;"494976_fr";28;2
141903;"499727_fr";28;2
141902;"499727_fr";28;2
142111;"502096_fr";28;2
142110;"502096_fr";28;2
142676;"508300_fr";28;2
142674;"508300_fr";28;2
142851;"510527_fr";28;2
142850;"510527_fr";28;2
143225;"514805_fr";28;2
143226;"514805_fr";28;2
143744;"521791_fr";28;2
143745;"521791_fr";28;2
143888;"523791_fr";28;2
143889;"523791_fr";28;2
144172;"527345_fr";28;2
144177;"527345_fr";28;2
144365;"529018_fr";28;2
144366;"529018_fr";28;2
144582;"531174_fr";28;2
144581;"531174_fr";28;2
144579;"531443_fr";28;2
144578;"531443_fr";28;2
145147;"536656_fr";28;2
145148;"536656_fr";28;2
125649;"53800_fr";28;2
125651;"53800_fr";28;2
147946;"565667_fr";28;2
147957;"565667_fr";28;2
100782;"56956_fr";28;2
100783;"56956_fr";28;2
149912;"584018_it";28;2
149914;"584018_it";28;2
114980;"99080_fr";28;2
114981;"99080_fr";28;2
71779;"Itinerario";28;2
71780;"Itinerario";28;2
Discourse does not store the IP address for each post. Only the last IP address used by an user, and the regsiter IP (but unused in V6 ?), are stored.
But the French law requires that the IP address must be stored during one year.
Moreover, it is useful for moderators, despite the common IPs, the redistributed IPs, and the TOR IPs.
IP features will evolve in discourse :
Sure long term we should store ip addresses of all logged on sessions and allow admins to log off particular sessions selectively or get info about them.
https://meta.discourse.org/t/store-more-than-one-ip-address-per-user/24155/4
Then, it is better to migrate the V5 post IP address in a new column in post table, and to improve discourse to save the V6 post IP, waiting for new features.
Mise en forme : comme Discourse accepte une bonne partie du BBCode, la mise en forme des messages est assez bien conservée (y compris les smileys).
Il y a néanmoins une grosse perte : les images et vidéos insérées ne sont plus intégrées, elle deviennent juste des liens cliquables.
Visiblement, la syntaxe [ img=url ][ /img ] ne passe plus (i.e. celle utilisée depuis quelques temps via le bouton Img), alors que celle-ci : [ img ]url[ /img ] fonctionne encore ; et bien sûr le code d'insertion d'une image du topoguide dans le forum ne fonctionne plus.
Perte aussi du code (balise [ c ]), des spoilers (balise [ spoiler ]) et des couleurs (balise [ color ]), mais moins embêtant.
Autre gros problème : un '+' en début de phrase est automatiquement remplacé par une puce, et donc tous les plussoiements "+ 1" sont cassés !
Logging out in discourse now works as expected (logged out in UI as well).
I notice that when clicking the "Log out" button in Discourse, the auth page is briefly displayed before being redirected to Discourse main page. Would it be possible to skip the auth page?
Sur la V5, il y avait un seul profil, accessible en cliquant sur le pseudo topoguide depuis le topoguide, ou sur le pseudo forum depuis le forum ; ce profil contenait des liens vers les contributions au topoguide et vers les messages du forum, et était éditable pour y ajouter textes et photos.
Sur la V6, il y a 2 profils différents :
(*) Plus précisément, un clic gauche ne donne qu'un pop-up résumé ; pour le profil complet : clic droit + ouverture dans un nouvel onglet.
On souhaiterait donc garder ces 2 profils, qui sont complémentaires, mais en y ajoutant 2 liens :
-un lien vers le profil forum dans le profil topoguide ;
-un lien vers le profil topoguide dans le profil forum.
NB : pour le profil topoguide, il y a dans le bloc Informations une ligne Pseudo forum: *** ; on pourrait rendre ce pseudo cliquable, ouvrant ainsi le profil forum.
Pour mieux comprendre, voici, sur la beta V6 :
-mon profil topoguide : http://www.demov6.camptocamp.org/profiles/9354/fr
-mon profil forum : http://forum.demov6.camptocamp.org/users/JeanMarc/summary
The username and login_name fields are not unique in v5 as can be shown by the following 2 requests:
select id, username from app_users_private_data where username in (select username from app_users_private_data group by username having count(username) >= 2) order by username;
-> 42 results
select id, login_name from app_users_private_data where login_name in (select login_name from app_users_private_data group by login_name having count(*) >= 2) order by login_name;
-> 48 results
It is essential that the v5 database be fixed so that we can import in the topoguide and in Discourse
robustly and consistently.@fbunoz, could you please have a look to this?
In addition, due to restrictions in the Discourse forum usernames, we cannot use the username
field (forum name) as-is. The problem is that normalizing the username may result in non-unique usernames. @fbunoz, would it be possible to include a normalized and unique column in the dumps? In addition, a few weeks before the final migration could users be prevented to change their forum pseudo?
discourse_username
column to v5 dump with a normalized and unique pseudo name;Forums privés : ils n'apparaissent pas dans les catégories ; mais les discussions de ces forums sont bien présentes ! A corriger, car pour l'instant c'est ingérable (on ne sait pas où aller, ni même où on est...)
les citations, totales ou partielles, des messages V5 sont bien conservées. Et désormais on peut remonter au message source, très gros progrès ! Quant au pseudo cité, c'est celui de la V5 (ce qui est une bonne chose, ça marque le contexte).
Reste 2 soucis lorsque la citation pointe vers une autre discussion :
on récupère le message source via le bouton '->', mais les 2 liens vers ce message, avec nom de la discussion mère, sont bugués ; exemple : http://c2corgv6-discourse.demo-camptocamp.com/t/circonstances-de-lavalanche-au-chaberton-de-mars-2014/142312 (lien http://localhost:3000/t/deces-dun-skieur-du-queyras-dans-une-avalanche-au-chaberton/142102/3 ouvrant une page d'échec de connexion) ;
l'auteur du message source n'apparait pas toujours, même avec le bouton 'v', pour le connaitre il faut en général revenir au message source.
Sinon un bug pour les citations précédées d'une ligne vierge, les balises [ quote ] et [ /quote ] sont alors visibles et non interprétées ; exemple : http://c2corgv6-discourse.demo-camptocamp.com/t/beau-grimpeur-a-espace-vertical/70977/28
Discourse is used for instance to show avatar and MP indicator in UI app (it means that the user must be also authenticated in Discourse when browsing the UI).
Je n'ai fait aucun test sur smartphone (je n'en ai pas !) mais catherine, de l'Association, en a fait beaucoup.
Elle les a rapportés dans le google doc ci-dessous (en lecture seule mais ouvert aux commentaires).
Je n'ai pas le temps d'en faire une synthèse, mais si jamais vous y voyez des problèmes qui relèvent de la SA, il est peut-être encore temps d'y remédier.
https://docs.google.com/document/d/1QO-EW_rrNLv2qxJrZjaXfFK_tul321olPjrC18YJ-4M/edit?usp=drive_web
If Discourse is installer in a Docker container, where would the images uploaded in the posts and the users avatars be stored? They must be saved in a permanent storage, unlike a Docker container.
Does Discourse support S3 storages for instance?
Could you add localization FR,IT,DE,ES for discourse ?
I don't know if localization is defined on user level or forum level. It's seem theye have per-user-locale site setting.
For C2C association test it's better french is enable.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.