AtCoderNoviSteps icon indicating copy to clipboard operation
AtCoderNoviSteps copied to clipboard

管理画面でタグを追加・編集ができるようにしましょう

Open prettyhappycatty opened this issue 2 years ago • 6 comments

Description / 説明

  • 管理画面でデータを変更できるようにしましょう
    • [ ] タグの有効無効切り替え
    • [ ] 問題(task_id)へのタグ付与/削除
    • [ ] 問題(task_id)の追加またはインポート(ボタンを押したら、AtcoderProblemsのAPIから新しいのを取得、みたいな)

Motivation / 動機

  • 本運用では、タスクの追加やタグの付与の運用をどうするかそろそろ考えたい
  • 開発効率を考えた時にそろそろ欲しい

Other notes / その他

  • mantainance/ ・・以下は、ADMIN権限があるユーザしかアクセスできない
    • tags
      • / タグ一覧の表示(テーブル型)
      • /{tag_id} タグの属性を修正できる
    • tasks
      • / タスク一覧の表示(テーブル型) 
        • ソート機能が欲しい?
        • 表示していないタグと、表示されるタグとどちらも表示すると良さそう。
        • インポートボタンはこの画面に用意する?
      • /{task_id} 問題の編集ができる。主に難易度・タグの付与ができる。(一般ユーザに表示されないタグも付与できる)

prettyhappycatty avatar Dec 12 '23 01:12 prettyhappycatty

ありがとうございます!!

アプリでデータの更新・修正ができるようにしたいですね!!!

KATO-Hiro avatar Dec 12 '23 03:12 KATO-Hiro

@KATO-Hiro Othersに管理画面のイメージを書きました。 最初はこんな感じでいかがでしょうか?

(Othersに想定仕様を書くのはいかがでしょうか?)

prettyhappycatty avatar Dec 13 '23 12:12 prettyhappycatty

@prettyhappycatty 管理画面のイメージを用意していただき、ありがとうございます!!!

adminアカウントのみに制限する意図をより明確にするために、(protected)/mantainanceか(auth)/mantainanceのようなディレクトリを用意するのはいかがでしょうか? (フレームワークの機能で、(xxx)の内容はURLに表示されませんが、他のページとは明確に区別することができるようです)

もう一つ考えているのは、既存の問題ページやタグページでadminアカウントのみ編集ボタンを表示・押すことができるようにするという方法です。例えば、Trelloのように編集用のボタンを押すと更新用の画面出てきて、入力後に元のページが操作できるイメージです。

メリット: 現在用意しているページをそのまま利用できるメリットはありそうです。 デメリット: 複数のページに分散されるため、一括管理にはやや向いていない? + 既存のUIがやや複雑になる可能性がある。

Othersの想定仕様、とてもいいですね!!

KATO-Hiro avatar Dec 13 '23 13:12 KATO-Hiro

@KATO-Hiro カッコ便利ですね!! カッコをつけると権限がかかってしまうわけではなく、管理用の見た目だけで、処理は必要という認識で大丈夫でしょうか。

既存の問題ページやタグページでadminアカウントのみ編集ボタンを表示・押すことができるようにするという方法です。

明確にメンテナンス用のページであることがわかる方が良いと思います。 自分のだけに影響があるページと、全体に影響があるページが近くにあると間違えそうです、、、

また、ページをそのまま利用、という点では、Componentに入っている内容が、ある程度共通化した内容なのかなと考えています。似たUIをいくつも書かずに実装できるのではと思って見ています。

prettyhappycatty avatar Dec 14 '23 14:12 prettyhappycatty

@prettyhappycatty

カッコをつけると権限がかかってしまうわけではなく、管理用の見た目だけで、処理は必要という認識で大丈夫でしょうか。

おっしゃる通りです。

明確にメンテナンス用のページであることがわかる方が良いと思います。 操作ミスを防ぐ観点からも、admin(メンテナンス)ページを用意したほうが良さそうですね.

例えば、(admin)/mantainanceとすると、admin権限であることを明示的に示せるようと思いますが、いかがでしょうか?

Componentに入っている内容が、ある程度共通化した内容なのかなと考えています。似たUIをいくつも書かずに実装できるのではと思って見ています。

なるべく抽象化・共通化しているつもりですので、ほぼそのまま流用できるといいなと思っています。

KATO-Hiro avatar Dec 15 '23 03:12 KATO-Hiro

  • サイドバーを実装しようとしたコード
    • 現在利用しているUIコンポーネントだと、折りたたみがサポートされていないため導入を一旦pending
<!-- See: -->
<!-- https://github.com/themesberg/flowbite-svelte-admin-dashboard/blob/main/src/routes/(sidebar)/%2Blayout.svelte -->
<!-- <div class="overflow-hidden md:flex">
  <Sidebar {isAdmin} />
  <div class="relative h-full w-full overflow-auto">
  </div>
</div> -->

KATO-Hiro avatar Mar 01 '24 23:03 KATO-Hiro