Git Product home page Git Product logo

v6_forum's People

Contributors

arnaud-morvan avatar gberaudo avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

arnaud-morvan

v6_forum's Issues

No need for comments in profile pages

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?

Forum migrating : the number of user responses is always 0

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.

Forum migrating : bad post ID and quote infos improvement

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.

Account page

Problèmes avec la page de gestion d'un compte:
http://c2corgv6.demo-camptocamp.com/account

  1. Impossible de modifier l'adresse email:

error with discourse

  1. On peut changer le nom, mais il n'est pas pris en compte sur Discourse.

  2. 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).

Protecting the demo forum with a password?

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)?

Create a first post for guidebook related topics

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.

Redis errors when running import script

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

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.

Wrong ID's on Discourse on Beta test server

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"
capture1

On Discourse, my pseudo becomes herve741 (instead of Lutin), the name is herve74 (instead of "Hervé Sergeraert").
capture2

On Beta server topoguide, the ID's are correct and not coherent with Discourse
capture3

I have no clue how to change them on Discourse, fields can't be changed.
Is it a migration issue ?

Forum migrating : bad use of V5 pseudo

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

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).

Migration des liens internes au forum postés "à la main"

@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 :

  1. lien vers une autre discussion
  2. lien vers un message d'une autre discussion
  3. lien vers un message de la même discussion

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

  1. 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.

  2. 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.

  3. 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.

Citations

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.

Issues with first full import

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:

  • Quoted posts images are using hard coded urls localhost:3000;
  • Categories seem to create a post whose id conflicts with v5 ones (see one-one rule for post ids);
  • Many quotes could not be rewritten (a small fraction could be due to the failing one-one rule, but must are failing for unknown reason) There should be a log of all quote rewritting;
  • The comment category is not removed from main page (only its parent category);
  • Admins and modos (forum) are not migrated;
  • The synchro from UI to Discourse does not work (and the change is saved in the UI anyway!!!).

Note:

  • Ideally, the Docker and standalone instances should be of the same version (stable 1.5.2);

[tests alpha 1] Ergonomie V6

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.

3) Ergonomie V6

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...

[tests alpha 1] Migration V5 -> V6

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.

1) Migration V5 -> V6

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...

Liens entre les discussions

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é.

Menu on discourse forum

@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-b9b1c93d4648

And 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-de59416683ef

I 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....

Navigation et Edition V6

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.

2) Navigation et Edition V6

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".

Posts d'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.

Seamless SSO

The login and logout processes should be as integrated as possible.

  • logging into the UI logs the user in the forum (the forum cookie is set);
  • logging out of the UI logs the user out of the forum;
  • logging out of the forum logs out of the UI.

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

Exhaustivité de la migration

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...

Forum migrating : names of guest posters

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").

Configure Discourse with the demo instance

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?

Duplicated guidebook related topics

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

Forum migrating : the post IP address has not been migrated

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

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 !

Logout

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?

Profil topoguide & Profil forum

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 :

  • le profil topoguide, accessible en cliquant sur le pseudo topoguide depuis le topoguide, reprend le concept du profil V5 (éditable), mais sans les messages du forum ;
  • le profil forum, accessible en cliquant (*) sur le pseudo forum depuis le forum, n'est pas éditable, il est généré automatiquement par discourse, et comprend plein de choses intéressantes sur les messages postés dans le forum (y compris les messages privés), mais il est totalement dissocié du topoguide.

(*) 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

Duplicated usernames and login_names in v5

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?

  • the fields should be made unique (maybe by suffixing older accounts);
  • unique constraints should be added to the user table.

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?

  • add a discourse_username column to v5 dump with a normalized and unique pseudo name;
  • block forum pseudo change in Discourse a few weeks before the final migration.

Forums privés

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...)

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 :

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

External use of Discourse

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).

Storage of uploaded images and avatar

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?

Localization for discourse

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.