データエクスプローラークエリの `group_id` 用パラメータドロップダウン

次のような指定ができると嬉しいです。

-- [params]
-- groups.id :group_id

これにより、グループのドロップダウンのパラメータ入力を取得できます。ここでは、そのようなドロップダウンが提供すると思われる group_id という名前を値に付けました。

「いいね!」 4

これも非常に役立つと思います。:+1: 既存の user_id 選択可能なパラメータのようなものですが、グループ用です。複数の値を受け入れられるとさらに良いです。:slight_smile:

「いいね!」 4

待って、何だって?

それがどのように使用されているかを示す箇所を教えていただけますか?

「いいね!」 1

以下のようなものを使用できます。

-- [params]
-- user_id :user

SELECT *
FROM posts
WHERE user_id =:user
LIMIT 5

これにより、ユーザーを入力候補から選択できるドロップダウンが表示されます。:+1:

しかし、現在、最初に実行したときにエラーが発生し、パラメータボックスが表示されませんが、ページを更新すると表示されることに気づきました。誰かに確認してもらえるか見てみます。:slight_smile:

「いいね!」 4

尋ねて(そして待って)いれば、得られるでしょう… このPR:group_listパラメータのサポートを追加しました。

以下は、この機能の使用例です。

-- [params]
-- group_list :groups

SELECT g.id,g.name
FROM groups g
WHERE g.name IN (:groups)
ORDER BY g.name ASC

これにより、UIで以下のような結果が得られるはずです。

「いいね!」 8

素晴らしいですね。:star_struck: すぐに実行に移すのが楽しみです。:rocket:

「いいね!」 3

私のトピックに返信する前に閉じられてしまいました…

新しい-- group_listパラメータタイプを単一のグループに制限する方法はありますか?既存のレポートにサブスクライブしましたが、すべて単一のグループ名を想定して書かれており、テスト中にかなりの頻度で間違いを犯しました。

開いて、それを滑らせました。:+1:

しかし、どういう意味かわかりません。問題の例を教えていただけますか?

「いいね!」 1

つまり、最初のグループに対してクエリを実行し、グループを切り替えたいときに、グループを追加してしまうということです → エラー

「いいね!」 1

おお。それは興味深いですね。私はもっとこのように使っていました。


WHERE g.name IN (:groups)

Jammy Stupid を少し隠す

WHERE g.id IN (:groups)

それでも、エラーは回避できるものの、誤って複数入れることを許してしまう可能性がありますね。:thinking:

エラーが発生する方が、リストからランダムに選択されるよりもましです :slight_smile:

「いいね!」 1

正直に言うと、今確認したのですが、group_idsとして使用したというのは夢だったのだと思います。全くうまくいきませんでした。記録から抹消します。:slight_smile: どこでその考えを得たのか全く分かりません。数日前に使ったと確信していたのですが。:derp:

「いいね!」 1

ところで、言い忘れていましたが、\n\nこれは素晴らしいです!!! :confetti_ball: ありがとうございます!!! :tada:

「いいね!」 3

いいえ、単一のグループに制限する方法はありません。私の知る限りでは。

group_list からのパラメータは、1 つ以上のアイテムが選択されている場合は配列になり、1 つのアイテムのみが選択されている場合は文字列になります。

したがって、アイテムが 1 つだけの場合は、次のようにできます。

-- [params]
-- group_list :groups

SELECT g.id,g.name
FROM groups g
WHERE g.name = :groups
ORDER BY g.name ASC

しかし、配列であるため、単一のアイテムと複数のアイテムの両方で機能するのは次のとおりです。

-- [params]
-- group_list :groups

SELECT g.id,g.name
FROM groups g
WHERE g.name IN (:groups)
ORDER BY g.name ASC

しかし、UI に「選択として 1 つのアイテムのみを受け入れる」と伝える方法はありません。

「いいね!」 1

@saradev のドキュメントはこちら Utilizing Parameters in Data Explorer Queries で、データエクスプローラーのパラメータの全リストがハイライトされています。これらには、ドロップダウンが表示される場合とされない場合があります。(GitHub のパラメータリスト)[discourse-data-explorer/lib/discourse_data_explorer/parameter.rb at 6aca7f1ae42bd7c1880e91c136ed99babc146d2e · discourse/discourse-data-explorer · GitHub]

ここにパラメータの表を示します。特定のコントロールがあるかどうかも示しています。

param dropdown available
int :white_check_mark:
bigint :white_check_mark:
boolean :white_check_mark:
null boolean :white_check_mark:
string :white_check_mark:
date
time
datetime
double :white_check_mark:
user_id :white_check_mark:
post_id
topic_id
string_list
category_id
group_id
int_list
string_list
user_list :white_check_mark:
group_list :white_check_mark:

理想的には、データエクスプローラーで使用および表示されるドロップダウンは、コアアプリと同様の外観と感触を持つべきです。これをどのように実現できるか検討しましょう。

「いいね!」 6

パラメータ入力ボックス全体を最近再設計しました。ほとんどのタイプには独自のドロップダウンボックスがあり、セマンティックなエラープロンプトによる検証もサポートされています。 :chefs_kiss:


それに固有のコントロールがあるかどうかを示す最新のパラメータの表を次に示します。

パラメータ ドロップダウン利用可能
int :white_check_mark:
bigint :white_check_mark:
boolean :white_check_mark:
null boolean :white_check_mark:
string :white_check_mark:
date :white_check_mark:
time :white_check_mark:
datetime :white_check_mark:
double :white_check_mark:
user_id :white_check_mark:
post_id
topic_id
category_id :white_check_mark:
group_id :white_check_mark:
int_list
string_list
user_list :white_check_mark:
group_list :white_check_mark:

@ganncamp この変更について知っておくと良いかもしれません :wink:

「いいね!」 9

これらのドロップダウンがどのように動作するのか説明できますか?私には、そのドロップダウンでリスト内の文字列を定義できるものを一つも設定できていません。

「いいね!」 1

@jordan-violet 返信が遅くなり申し訳ありませんが、@SaraDev が利用可能なパラメータについてまとめ、OP は Linca によって更新されました。

「いいね!」 2