Skip to:
再現手順:
記事を作成する
記事のカスタムフィールドを作成する
作成した記事の作成したカスタムフィールドのみを入力して保存する
期待する動作:
更新履歴が作成される
実際の動作:
更新履歴が作成されない
ここが全てのカスタムフィールドではなく、実レコードのあるカスタムフィールドを持ってくるため、ケースのような状況が起こる。https://github.com/movabletype/movabletype-addons/blob/269478082f2f57b1b13cdacf15e0e4f47690a97d/addons/Commercial.pack/lib/CustomFields/Util.pm#L627
ワークアラウンドは多分こんな感じ。検証が必要だし、もうちょっと違うやり方を考えたい。($obj->properties->{fields} の値は正しいのか、get_meta が使っている MT::Meta:roxy の __objects の値を変えなくても大丈夫なのか、ということをきちんと調査する必要がある)https://gist.github.com/miniuchi/664dd9d8f24d800108574f960ba3f28c
対応が必要な箇所:
記事
ページ
テンプレート
コンテンツデータはカスタムフィールド が無いので、おそらく対応しなくて大丈夫。
@Chieko Matsuo ご確認ありがとうございました。クローズします。
@Masahiro Iuchi 既存の記事にカスタムフィールドが新規追加された場合に、追加されたフィールドがそれぞれ更新履歴に反映されることを確認しました。
@Chieko Matsuo おねがいします!
@Reiko Sato https://movabletype.atlassian.net/browse/MTC-29584 と合わせて、下記のmerge requestでQAをお願いいたします。
https://github.com/movabletype/movabletype-addons/pull/752
全カスタムフィールドの種類で確認をお願いいたします。
記事以外にページとテンプレートでも不具合再現していたので、そちらでもご確認お願いいたします。
- 記事を作成する - 記事のカスタムフィールドを作成する - 作成した記事の作成したカスタムフィールドのみを入力して保存する
修正前後でのカスタムフィールド値の変更時におけるパフォーマンス確認をしたが、特に影響はなかった。このままQA依頼する。
環境
リポジトリのコード
core(movabletype)
9b1772ec90b02ee46f84158ab1c273f1870a21e0
変更前(movabletype-addons)
7e569dbb75eeea7ae7b7f831786bde73e17c30d7
変更後(movabletype-addons)
4cdc3ea5d471b2d1cea57be433696a2d5824dbfd
CGI
親サイト、記事のカスタムフィールド10,001件
親サイト、ページのカスタムフィールド501件
変更前のページ保存処理(__mode=save_entry, 5回更新ボタンを押下)
2.93~3.06秒
変更後のページ保存処理(__mode=save_entry, 5回更新ボタンを押下)
2.87~2.95秒
再現手順:
記事を作成する
記事のカスタムフィールドを作成する
作成した記事の作成したカスタムフィールドのみを入力して保存する
期待する動作:
更新履歴が作成される
実際の動作:
更新履歴が作成されない
ここが全てのカスタムフィールドではなく、実レコードのあるカスタムフィールドを持ってくるため、ケースのような状況が起こる。
https://github.com/movabletype/movabletype-addons/blob/269478082f2f57b1b13cdacf15e0e4f47690a97d/addons/Commercial.pack/lib/CustomFields/Util.pm#L627
ワークアラウンドは多分こんな感じ。検証が必要だし、もうちょっと違うやり方を考えたい。($obj->properties->{fields} の値は正しいのか、get_meta が使っている MT::Meta:roxy の __objects の値を変えなくても大丈夫なのか、ということをきちんと調査する必要がある)
https://gist.github.com/miniuchi/664dd9d8f24d800108574f960ba3f28c
対応が必要な箇所:
記事
ページ
テンプレート
コンテンツデータはカスタムフィールド が無いので、おそらく対応しなくて大丈夫。