Le groupe d'utilisateurs 'catégories muettes' ne met pas à jour les notifications de catégorie des membres

Lorsque je mets à jour les catégories masquées sur un groupe d’utilisateurs et que je réponds oui à « mettre à jour les utilisateurs existants ? », cela ne semble pas se mettre à jour. Par exemple, voyez cet utilisateur, n° 8, qui est membre du groupe n° 42, mais il manque beaucoup de lignes category_user :

RÉSULTATS SQL
  • Confirmer l’appartenance de l’utilisateur n° 8 au groupe n° 42
SELECT gu.*, g.name
FROM group_users gu
JOIN groups g ON gu.group_id = g.id
WHERE user_id=8 and gu.group_id = 42;
  id  | group_id | user_id |         created_at         |         updated_at         | owner | notification_level |     first_unread_pm_at     |       name
------+----------+---------+----------------------------+----------------------------+-------+--------------------+----------------------------+-------------------
 4207 |       42 |       8 | 2023-07-03 11:36:43.828233 | 2023-07-03 11:36:43.828233 | f     |                  3 | 2023-12-29 22:52:43.371588 | japanese-learners
  • Afficher les niveaux de notification actuels de l’utilisateur n° 8
SELECT cu.*, c.name, c.parent_category_id
FROM category_users cu
JOIN categories c ON cu.category_id = c.id
WHERE cu.user_id = 8;
  id   | category_id | user_id | notification_level | last_seen_at |     name      | parent_category_id
-------+-------------+---------+--------------------+--------------+---------------+--------------------
 42289 |           1 |       8 |                  0 |              | Uncategorized |
  5981 |           5 |       8 |                  1 |              | Reading       |                  7
  7981 |           6 |       8 |                  1 |              | Watching      |                  7
   215 |           7 |       8 |                  1 |              | Japanese      |
  6981 |           9 |       8 |                  1 |              | Book Clubs    |                  5
   214 |          10 |       8 |                  0 |              | Korean        |
  2386 |          11 |       8 |                  0 |              | Reading       |                 10
  4384 |          12 |       8 |                  0 |              | Watching      |                 10
  3385 |          13 |       8 |                  0 |              | Book Clubs    |                 11
 36995 |          16 |       8 |                  0 |              | German        |

* afficher les niveaux de notification du groupe n° 42 (beaucoup plus)
```sql
SELECT gcnd.*, c.name, c.parent_category_id
FROM group_category_notification_defaults gcnd
JOIN categories c ON gcnd.category_id = c.id
WHERE group_id=42;
 id  | group_id | category_id | notification_level |     name      | parent_category_id
-----+----------+-------------+--------------------+---------------+--------------------
   1 |       42 |          10 |                  0 | Korean        |
   8 |       42 |           7 |                  1 | Japanese      |
  11 |       42 |          13 |                  0 | Book Clubs    |                 11
  12 |       42 |          11 |                  0 | Reading       |                 10
  14 |       42 |          12 |                  0 | Watching      |                 10
  26 |       42 |           9 |                  1 | Book Clubs    |                  5
  27 |       42 |           6 |                  1 | Watching      |                  7
  28 |       42 |           5 |                  1 | Reading       |                  7
  97 |       42 |          16 |                  0 | German        |
 174 |       42 |          21 |                  0 | Book Clubs    |                 18
 177 |       42 |          18 |                  0 | Reading       |                 16
 178 |       42 |          22 |                  0 | Reading       |                 17
 179 |       42 |          23 |                  0 | Watching      |                 17
 180 |       42 |          17 |                  0 | Spanish       |
 181 |       42 |          19 |                  0 | Watching      |                 16
 182 |       42 |          25 |                  0 | Book Clubs    |                 22
 367 |       42 |           1 |                  0 | Uncategorized |

Y a-t-il un moyen d’exécuter ce processus « update_existing_users » manuellement dans la console Rails ? Je ne connais pas bien Rails, donc je n’ai pas pu le trouver dans le code. Je pense qu’il serait probablement bon d’essayer de l’exécuter manuellement et de voir si le problème se situe dans le processus de mise à jour ou dans le déclenchement du processus de mise à jour.

Faites-moi savoir si quelqu’un a des idées ou de l’aide !

Merci

Informations supplémentaires :
Mon site : https://forums.learnnatively.com/
Version de Discourse : 3.2.0.beta4-dev (46eec95719)

Ainsi, après examen plus approfondi, il semble que le code ne mettra à jour que les modifications des notifications de catégorie par défaut sur un groupe d’utilisateurs… voir ici pour la gestion des modifications et ici pour la mise à jour de la base de données.

Cela signifie que si, pour une raison quelconque, votre processus de mise à jour initial du groupe ne met pas à jour les objets utilisateur existants, la réenregistrement du groupe (même avec des modifications) ne déclenche pas nécessairement les mises à jour des notifications de catégorie par défaut pour les membres du groupe.

Je ne suis pas entièrement sûr de la raison pour laquelle mon processus de mise à jour initial n’a pas été déclenché, mais comme j’ai utilisé un appel API, et non l’administrateur, j’ai peut-être soumis un paramètre ‘update_existing_users’ incorrect (j’ai dumpé en json une valeur ‘True’ de Python).

Quoi qu’il en soit, j’ai réussi à résoudre ce problème.

Solution :

  1. Accédez à l’administration du groupe d’utilisateurs, réinitialisez toutes les catégories par défaut qui ne semblent pas encore mises à jour sur les utilisateurs. (Ex : si les membres du groupe n’ont pas correctement mis en sourdine une catégorie ‘Support’, supprimez cette catégorie des catégories mises en sourdine. Si cette catégorie était auparavant dans ‘normal’, réinitialisez-la à ‘normal’)
  2. Enregistrez le groupe et dites non à ‘mettre à jour les utilisateurs existants’
  3. Changez les notifications de catégorie du groupe pour les notifications de catégorie souhaitées
  4. Enregistrez le groupe et dites oui à ‘mettre à jour les utilisateurs existants’

Et voilà, ça devrait être bon maintenant !

Quoi qu’il en soit, je n’ai aucun jugement sur le fait que ce comportement soit le bon comportement ou non. Cependant, cela pourrait probablement être documenté :slight_smile:

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.