こんにちは、@leonardo さん。私も Add user to group through User Custom Field で問題が発生しています。
プラグインはインストール済みです。
カスタムユーザーフィールドは、2つのドロップダウンオプション(Teacher、Parent)で設定しました。
そこで、Teacher を Teacher グループに追加し、Parent を Parent グループに追加する、繰り返し可能なオートメーションを作成しました。
1分ごとに実行されるように設定しています。
何か考えはありますか?
leonardo
(Leonardo Mosquera)
2022 年 10 月 8 日午前 12:13
2
こんにちは、アンディ!
ホストされているお客様からも、Add user to group through User Custom Field の自動化を正確に設定する方法について質問がありました。UXが現状あまり親切でないことは認めますので、より広いエコシステムのために、一般的な回答をここに記載します。改善に向けて取り組んでいますので、ご容赦ください。
Add user to group through User Custom Field 自動化スクリプトの設定方法
まず、Customize → User Fields からユーザーフィールドを作成します(上記の議論ではドロップダウンタイプ)。次に、UserCustomField名 (フィールドの「テンプレート」であるUserField名とは異なります)を見つけ、そのフィールド名を自動化スクリプトに指定します。
データモデルの関連部分を解き明かすと、Admin → Customize → User Fields ビューには UserField レコード(つまり「ユーザーフィールドテンプレート」)のリストが表示されます。ここにレコードを作成すると、ユーザーは後でサインアップ時またはプロフィールからその値を選択できるようになります。その値は、特定のユーザーIDにリンクされた新しい UserCustomField レコード(つまり「ユーザーフィールドインスタンス」、または「ユーザーの実際のユーザーフィールド」)として保存され、このレコードには user_field_#{user_field_id} という合成名が構築されます。
つまり、新しいUserFieldの名前が Another UserField であると仮定します。
(サイトの /admin/customize/user_fields.json からこのJSONビューを確認できます)
UserField の name を持つレコードを探し、そのIDを確認します。そして、user_field_NUMBER にそのIDを追加して、UserCustomFieldsが取る name 値を取得します。これがスクリプトの User Custom Field 値で設定する必要があるものです。
この混乱についてお詫びします。UXを改善するまでの暫定的な指示となります。
「いいね!」 4
こんにちは @team
自動化プラグインをインストールしましたが、信頼レベル間の昇格に対するトリガーがあることがわかりました。降格、特にTL3からTL2へのアクションをトリガーする方法はありますか?
よろしくお願いします、Dan
「いいね!」 1
@leonardo さん、ありがとうございます!
確認のためですが:
UserField の name を持つレコードを探し、その ID を確認して、user_field_NUMBER に追加して、UserCustomFields が取得する name 値を取得します。これは、スクリプトの User Custom Field 値で設定する必要があるものです。
user_field_NUMBER のどこに追加すればよいですか?
これは、Discourse でプラグインを設定したときの私の画面です。
これはカスタムフィールドからのデータです。
これをテストして、機能するかどうか確認します。サポートありがとうございました!
leonardo
(Leonardo Mosquera)
2022 年 10 月 11 日午後 6:12
5
その出力にはIDが1のユーザーフィールドが1つしか存在しないため、現在設定されている「1」ではなく、「user_field_1」に「User Custom Field Name」フィールドを設定する必要があります。
本日現在、残念ながらこのトリガーは明示的に降格をチェックし、実行を回避します。昇格にのみ機能します。
cooked
end
def handle_user_promoted(user_id, new_trust_level, old_trust_level)
trigger = DiscourseAutomation::Triggerable::USER_PROMOTED
user = User.find_by(id: user_id)
return if user.blank?
# don't want to do anything if the user is demoted. this should probably
# be a separate event in core
return if new_trust_level < old_trust_level
DiscourseAutomation::Automation.where(trigger: trigger, enabled: true).find_each do |automation|
trust_level_code_all = DiscourseAutomation::Triggerable::USER_PROMOTED_TRUST_LEVEL_CHOICES.first[:id]
restricted_group_id = automation.trigger_field('restricted_group')['value']
trust_level_transition = automation.trigger_field('trust_level_transition')['value']
trust_level_transition = trust_level_transition || trust_level_code_all
next if restricted_group_id.present? && !GroupUser.exists?(user_id: user_id, group_id: restricted_group_id)
「いいね!」 3
@leonardo 、ありがとうございます。TL3からTL2への追加は大変な作業になりますでしょうか?この件について、誰に依頼するのが最適か分かりません。これは唯一自動的に発生する降格であり、これに基づいてプラグインで対応できると非常に便利です。
「いいね!」 1
pinano
(Fernando Arroyo)
2023 年 7 月 14 日午前 11:35
7
こんにちは @danieljohnkennedy さん、TL降格の通知の回避策は何か見つかりましたか?もしそうなら、どちらの方向に向かえばよいか教えていただけますか?よろしくお願いします!