Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ブック編集からトピック再利用で自分以外のシェアされているものを利用した時は複製ではなくリンクさせる #386

Closed
1 task
ties-makimura opened this issue Apr 21, 2021 · 3 comments · Fixed by #396
Assignees
Labels
enhancement 新機能実装またはリクエスト

Comments

@ties-makimura
Copy link

#220 と同じ問題で,大量に同じトピックが並ぶのを避ける目的

どのような問題を解決する機能追加でしょうか?

ブック編集からトピック再利用で自分以外のシェアされているものを利用すると,リンクではなく,トピックの複製がされる.

あなたが望む解決方法について書いてください

他人のを再利用した時点では,複製ではなくリンクされている状態になっていて,トピックを編集しようとするとフォークの編集画面が出る
(他人のブックをフォークした時の中にあるトピックはそういう風になっている)

再現手順

  1. 教師権限でアクセス
  2. ブックに移動
  3. ブックの編集画面に移動
  4. トピック再利用をクリック
  5. 自分以外のトピックを再利用する
  6. ブックの編集画面で再利用したトピックの編集をすると,フォークの案内が出ない
    7.トピックに移動すると,自分のトピック一覧に再利用したトピックが並んでいる

6と7は,リンクではなく複製されているなという確認

本 issue を close する条件

  • コードに実装された。

追記・備考

管理権限では再現しない.

@ties-makimura ties-makimura added the enhancement 新機能実装またはリクエスト label Apr 21, 2021
@kou029w
Copy link

kou029w commented Apr 22, 2021

インポート画面関連のトピックを複製するためのコードを取り除けばおそらく解決するかと思います。

-const connectOrCreateTopics = topics.map(async (topic) => { 
-  return connectOrCreateTopic(topic, isTopicEditable).then(({ id }) => id); 
-}); 
-const ids = await Promise.all(connectOrCreateTopics); 
+const ids = topics.map(({ id }) => id);

https://github.com/npocccties/ChibiCHiLO/blob/98a39724a01f61f741d1eb6a055f1c771477e4a4/pages/book/import/index.tsx#L35-L38
https://github.com/npocccties/ChibiCHiLO/blob/98a39724a01f61f741d1eb6a055f1c771477e4a4/pages/book/topic/import/index.tsx#L33-L36

不要:
https://github.com/npocccties/ChibiCHiLO/blob/98a39724a01f61f741d1eb6a055f1c771477e4a4/utils/topic.ts#L25-L31

@kou029w kou029w assigned kou029w and unassigned kou029w Apr 23, 2021
@knokmki612
Copy link

knokmki612 commented Apr 28, 2021

store/session.ts にconnectOrCreateTopicに渡されるisTopicEditableがあります

isTopicEditable(topic: Pick<TopicSchema, "creator">) {
return isAdministrator || topicCreateBy(topic, session?.user);
},

@knokmki612
Copy link

ここなどでuseSessionAtomからisTopicEditableが得られます

const { isBookEditable, isTopicEditable } = useSessionAtom();

ties-makimura added a commit that referenced this issue Apr 28, 2021
再利用の時点で複製されると同じトピックが増えすぎることを懸念したので対応.
今後複製か参照か選択できるような仕組みがあれば良い.

Co-authored-by: Kimiaki Kuno <knokmki612@users.noreply.github.com>
Co-authored-by: YABUKI Yukiharu <yabuki@netfort.gr.jp>
ties-makimura added a commit that referenced this issue Apr 28, 2021
feat: #386 トピック再利用時は複製ではなくリンクにする
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 新機能実装またはリクエスト
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants