Benutzergruppe 'stummgeschaltete Kategorien' aktualisiert keine Benachrichtigungen für Mitglieder

Wenn ich die stummgeschalteten Kategorien in einer Benutzergruppe aktualisiere und bei „Bestehende Benutzer aktualisieren?“ Ja sage, scheint dies keine Auswirkungen zu haben. Sehen Sie zum Beispiel diesen Benutzer, Nr. 8, der Mitglied der Gruppe Nr. 42 ist, aber viele category_user-Zeilen fehlen:

SQL-ERGEBNISSE
  • Bestätigen Sie die Gruppenzugehörigkeit von Benutzer Nr. 8 zu Nr. 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
  • Zeigen Sie die aktuellen Benachrichtigungsstufen von Benutzer Nr. 8 an
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        |                   
  • Zeigen Sie die Benachrichtigungsstufen der Gruppe Nr. 42 an (viel mehr)
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 |                   

Gibt es eine Möglichkeit, diesen Prozess „Bestehende Benutzer aktualisieren“ manuell in der Rails-Konsole auszuführen? Ich bin sehr unerfahren mit Rails und konnte es im Code nicht finden. Ich denke, es wäre wahrscheinlich gut, zu versuchen, es manuell auszuführen und zu sehen, ob das Problem im Aktualisierungsprozess liegt oder ob es darin liegt, den Aktualisierungsprozess auszulösen.

Lassen Sie mich wissen, wenn jemand Ideen oder Hilfe hat!

Danke

Zusätzliche Informationen:
Meine Website: https://forums.learnnatively.com/
Discourse-Version: 3.2.0.beta4-dev (46eec95719)

Nach weiterer Überprüfung scheint es, dass der Code nur Änderungen an Standardkategorie-Benachrichtigungen in einer Benutzergruppe aktualisiert… siehe hier für die Änderungsbehandlung und hier für das DB-Update.

Das bedeutet, dass, wenn aus irgendeinem Grund Ihr anfänglicher Update-Prozess für die Gruppe die vorhandenen Benutzerobjekte nicht aktualisiert, das erneute Speichern der Gruppe (auch mit Änderungen) nicht unbedingt die Updates für die Standardkategorie-Benachrichtigungen für die Gruppenmitglieder auslöst.

Ich bin mir nicht ganz sicher, warum mein anfänglicher Update-Prozess nicht ausgelöst wurde, aber da ich einen API-Aufruf und nicht den Admin verwendet habe, habe ich möglicherweise einen falschen Parameter ‘update_existing_users’ übergeben (ich habe einen Python ‘True’-Wert als JSON gedumpt).

Unabhängig davon ist es mir gelungen, dieses Problem zu lösen.

Lösung:

  1. Gehen Sie zur Benutzergruppenverwaltung und setzen Sie alle Kategorie-Standardwerte zurück, die bei den Benutzern noch nicht richtig aktualisiert zu sein scheinen. (Z. B. wenn Gruppenmitglieder eine Kategorie nicht richtig stummgeschaltet haben, entfernen Sie diese Kategorie aus den stummgeschalteten Kategorien. Wenn diese Kategorie früher auf ‘normal’ stand, setzen Sie sie auf ‘normal’ zurück.)
  2. Speichern Sie die Gruppe und verneinen Sie ‘Bestehende Benutzer aktualisieren’.
  3. Ändern Sie die Gruppenebenen-Benachrichtigungen zu den gewünschten Kategorie-Benachrichtigungen.
  4. Speichern Sie die Gruppe und bejahen Sie ‘Bestehende Benutzer aktualisieren’.

Voilà, es sollte jetzt gut sein!

FWIW, ich habe kein Urteil darüber, ob dieses Verhalten das richtige ist oder nicht. Es könnte jedoch wahrscheinlich dokumentiert werden :slight_smile:

1 „Gefällt mir“

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