プロジェクト

全般

プロフィール

Enhancement(機能追加・改善) #1591

support to the sorting order change of the community categories (コミュニティカテゴリのソート順を変更できるようにする)

Masato Nagasawa13年以上前に追加. 約7年前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
対象バージョン:
開始日:
2010-09-14
期日:
進捗率:

0%


説明

Overview (概要)

ナビゲーションなどの用に、コミュニティカテゴリもjsによってソート順の変更を行えるようにする。


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #1528: A community category is sorted not in order of column sort_order of table community_category but in order of ID. (コミュニティカテゴリがテーブルcommunity_categoryのカラムsort_orderではなく、ID順にソートされる) Fixed(完了) 2010-08-25
関連している OpenPNE 3 - Bug(バグ) #1859: The community category is not considered a sort of parent categories (コミュニティカテゴリが大カテゴリのソートを考慮していない) Won't fix(対応せず) 2010-12-21
関連している OpenPNE 3 - Bug(バグ) #1796: 2系から3系へアップデートでコミュニティカテゴリの管理画面でのソート順の対処がされていない [3.6系限定] Fixed(完了) 2010-11-17
関連している OpenPNE 3 - Backport(バックポート) #2977: support to the sorting order change of the community categories (コミュニティカテゴリのソート順を変更できるようにする) Fixed(完了) 2010-09-14
関連している OpenPNE 3 - Bug(バグ) #3678: コミュニティカテゴリの大分類がcommunity_categoryのsort_orderでソートされない Fixed(完了) 2014-08-19

関係しているリビジョン

リビジョン 3b882346 (差分)
Masato Nagasawa13年以上前に追加

fixed supported sortable of the community category (fixes #1591)

リビジョン 9b81fb9e (差分)
Masato Nagasawa約12年前に追加

fixed supported sortable of the community category (fixes #1591)

履歴

#1 Masato Nagasawa13年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Masato Nagasawa にセット

#2 Masato Nagasawa13年以上前に更新

このテストを行っている際に、「ユーザー画面で大カテゴリのソート順を考慮して小カテゴリを表示していない」問題が見つかりました。
この件については #1859 で対応を行います。

#3 Masato Nagasawa13年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 3b8823462b2a4dd29fb2b54109a69569dba81fe3 で適用されました。

#4 Masato Nagasawa13年以上前に更新

以下のテストを行っています。

区分1 区分2 期待結果
カテゴリ追加 大カテゴリを追加 一番下に追加される
カテゴリ追加 小カテゴリを追加 一番下に追加される
カテゴリ追加 大カテゴリが複数存在する状態で、
小カテゴリを追加
一番下に追加される
カテゴリ削除 3件存在する大カテゴリから、一番上を削除 削除したカテゴリ以外の順序に変更がない
カテゴリ削除 3件存在する小カテゴリから、一番上を削除 削除したカテゴリ以外の順序に変更がない
カテゴリ削除 大カテゴリが複数存在する状態で、
3件存在する小カテゴリから、一番上を削除
削除したカテゴリ以外の順序に変更がない
カテゴリ移動 2件存在する大カテゴリで、上下を逆にし、ページをリロード 1. 上下が逆になっている
2. 小カテゴリの順番が大カテゴリと一致している(リアルタイムには反映されない)
3. ユーザー画面のサークル作成ページのプルダウンで、大カテゴリの順に小カテゴリが並んでいる
カテゴリ移動 2件存在する小カテゴリで、上下を逆にし、ページをリロード 上下が逆になっている(ユーザー画面でも確認)
カテゴリ移動 3件存在する大カテゴリで、一番上と一番下を逆にし、ページをリロード 一番上と一番下が逆になっている(ユーザー画面でも確認)
カテゴリ移動 3件存在する小カテゴリで、一番上と一番下を逆にし、ページをリロード 一番上と一番下が逆になっている(ユーザー画面でも確認)
カテゴリ移動 大カテゴリが複数存在する状態で、
2件存在する小カテゴリで、上下を逆にし、ページをリロード
上下が逆になっている(ユーザー画面でも確認)

#5 Masato Nagasawa13年以上前に更新

  • 題名コミュニティカテゴリのソート順を変更できるようにする から support to the sorting order change of the community categories (コミュニティカテゴリのソート順を変更できるようにする) に変更

#6 Shouta Kashiwagi約12年前に更新

  • 対象バージョンOpenPNE 3.7.0 から 252 に変更

#7 Yuma Sakata約12年前に更新

  • 対象バージョン252 から OpenPNE 3.8beta1 に変更

#8 Masato Nagasawa約12年前に更新

更新履歴 9b81fb9edc73633f112d7e5803d46fa6be0ca583 で適用されました。

#9 Yuya Watanabe約12年前に更新

メモ

  • lft が 1 のときにそのノードがルートであるか?

根拠は Symfony の NestedSet でそう定義されているということで問題なし.()

lib/model/doctrine/CommunityCategoryTable.class.php

 25   public function getAllRootsQuery($sort = true)
 26   {
 27     $q = $this->createQuery()->where('lft = 1');
 28     if ($sort)
 29     {
 30       $q->orderBy('sort_order');
 31     }
 32 
 33     return $q;
 34   }

lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Node/NestedSet.php

 866     /**
 867      * determines if node is root
 868      *
 869      * @return bool            
 870      */
 871     public function isRoot()
 872     {
 873         return ($this->getLeftValue() == 1);
 874     }

  • 子供とする根拠がNestedSetと違う

Symfony の NestedSet と同様の実装をしたほうが良い.

lib/model/doctrine/CommunityCategoryTable.class.php

 41   public function getAllChildrenQuery($sort = true)
 42   {
 43     $q = $this->createQuery()->where('lft > 1');
 44     if ($sort)
 45     {
 46       $q->orderBy('sort_order');
 47     }
 48 
 49     return $q;
 50   }

lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Node/NestedSet.php

  56     /**
  57      * test if node has children
  58      *
  59      * @return bool            
  60      */
  61     public function hasChildren()
  62     {
  63         return (($this->getRightValue() - $this->getLeftValue()) > 1);
  64     }

そのたまだ色々ありそう

#10 Yuya Watanabe約12年前に更新

  • 対象バージョンOpenPNE 3.8beta1 から OpenPNE 3.8.x に変更

#11 Yuya Watanabe約12年前に更新

  • 対象バージョンOpenPNE 3.8.x から OpenPNE 3.8RC1 に変更

#12 Yuya Watanabe約12年前に更新

ドラッグアンドドロップで移動できるようにはなったが,保存されていないように見える.
追記: 手元の環境でソースを変更していただけでした.問題無いです.

#13 Yuya Watanabe約12年前に更新

  • 対象バージョンOpenPNE 3.8RC1 から OpenPNE 3.9.0-old に変更

#14 Yuya Watanabe約12年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

差し戻し理由

  • 子供とする根拠がNestedSetと違う

Symfony の NestedSet と同様の実装をしたほうが良い.

lib/model/doctrine/CommunityCategoryTable.class.php

 41   public function getAllChildrenQuery($sort = true)
 42   {
 43     $q = $this->createQuery()->where('lft > 1');
 44     if ($sort)
 45     {
 46       $q->orderBy('sort_order');
 47     }
 48 
 49     return $q;
 50   }

lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Node/NestedSet.php

  56     /**
  57      * test if node has children
  58      *
  59      * @return bool            
  60      */
  61     public function hasChildren()
  62     {
  63         return (($this->getRightValue() - $this->getLeftValue()) > 1);
  64     }

#15 Yuya Watanabe約12年前に更新

  • 担当者Masato Nagasawa から Shouta Kashiwagi に変更

#16 Yuya Watanabe約12年前に更新

note-14 の内容は #1859 での指摘内容だったため,本チケットは問題無いとしてテスト待ちに変更します.

#17 Shouta Kashiwagi約12年前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更
  • 進捗率50 から 0 に変更

#18 Shouta Kashiwagi約12年前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

#19 Yuya Watanabe約12年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#20 isao sano約7年前に更新

  • ステータスPending Testing(テスト待ち) から Won't fix(対応せず) に変更
  • 進捗率70 から 0 に変更

OpenPNE 3.8RC1 にて対応済みであったため、対応せずとします。

#21 Shinichi Urabeほぼ7年前に更新

  • 関連している Bug(バグ) #3678: コミュニティカテゴリの大分類がcommunity_categoryのsort_orderでソートされない を追加

他の形式にエクスポート: Atom PDF