Bug(バグ) #871
完了
Daily news is not sent to the default setting members (デイリー・ニュース受信設定を一度もしていないメンバー宛てにデイリー・ニュースが配信されない)
Rimpei Ogawa さんが14年以上前に追加.
14年以上前に更新.
説明
デイリー・ニュース受信設定を一度もしていないメンバー宛てにデイリー・ニュースが配信されない。
「設定変更 > メール設定 > デイリー・ニュース」フォームのデフォルト値は「毎日送信する」となっているが、このフォームの「送信」ボタンを一度も押していないメンバーに対してはデイリー・ニュースが配信されない。
デイリー・ニュース配信タスク側では MemberConfig にデータがない場合は配信を行わない実装となっているために、フォームのデフォルト値と違う挙動となってしまっている。
修正内容¶
修正内容を記入
関連するチケット
2 (0件未完了 — 2件完了)
- ステータス を Pending Fixing(修正待ち) から Accepted(着手) に変更
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 担当者 を Yuki Yamashita にセット
以下のように修正しました。
if (null !== $dailyNewsConfig && 0 === (int)$dailyNewsConfig)
{
continue;
}
if (1 === (int)$dailyNewsConfig && !$this->isDailyNewsDay())
{
continue;
}
- 対象バージョン を OpenPNE 3.5.2 にセット
- 対象バージョン を OpenPNE 3.5.2 から OpenPNE 3.5.1 に変更
動作確認しました。
設定変更を実施しなくてもデイリーメールが受信されることを確認。
また、ユーザー側にて各設定を切り替え、./symfony openpne:send-daily-newsを実行し確認した。
- 送信しない → デイリーメール送信されない
- 週2回送信する (月,木) → デイリーメール送信されない(2010/03/26金曜日にテスト実施のため)
- 毎日送信する → デイリーメール送信される
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
このコードからは設定値が空の場合にどの値が設定されたものと見なして処理をするのかどうかが判別しにくいです(マジックナンバーを使わざるを得ない部分であることも影響しているとは思いますが)。
コードの重複を防ぐ意味では、 config/member_config.yml の Default の値を用いるようにするのがベストだと思いますが、変更がかなり大きくなりそうで影響範囲も大きいので、とりあえず sfConfig::get() や SnsConfigTable::get() や opConfig::get() と同様に Member::getConfig() や MemberConfigTable::retrieveByNameAndMemberId() でも引数にデフォルト値を指定できるようにしてはどうでしょうか。
- ステータス を Rejected(差し戻し) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
Member::getConfig() にデフォルト値を許す件についてはこのチケットでは対応しない方針にしたいと思います。
他の形式にエクスポート: Atom
PDF