public function podiumReport($post = null)
    {
        try {
            if (empty($post)) {
                throw new Exception('Reported post missing');
            }
            $logged = User::loggedId();
            $this->sender_id = $logged;
            $this->topic = Yii::t('podium/view', 'Complaint about the post #{id}', ['id' => $post->id]);
            if (Podium::getInstance()->podiumConfig->get('use_wysiwyg') == '0') {
                $this->content .= "\n\n---\n"
                            . '[' . Yii::t('podium/view', 'Direct link to this post') . '](' . Url::to(['forum/show', 'id' => $post->id]) . ')'
                            . "\n\n---\n"
                            . '**' . Yii::t('podium/view', 'Post contents') . '**'
                            . $post->content;
            } else {
                $this->content .= '<hr>'
                            . Html::a(Yii::t('podium/view', 'Direct link to this post'), ['forum/show', 'id' => $post->id])
                            . '<hr>'
                            . '<p>' . Yii::t('podium/view', 'Post contents') . '</p>'
                            . '<blockquote>' . $post->content . '</blockquote>';
            }
            $this->sender_status = self::STATUS_DELETED;
            if (!$this->save()) {
                throw new Exception('Saving complaint error!');
            }

            $receivers = [];
            $mods = $post->forum->mods;
            $stamp = time();
            foreach ($mods as $mod) {
                if ($mod != $logged) {
                    $receivers[] = [$this->id, $mod, self::STATUS_NEW, $stamp, $stamp];
                }
            }
            if (empty($receivers)) {
                throw new Exception('No one to send report to');
            }
            if (!Podium::getInstance()->db->createCommand()->batchInsert(
                    MessageReceiver::tableName(),
                    ['message_id', 'receiver_id', 'receiver_status', 'created_at', 'updated_at'],
                    $receivers
                )->execute()) {
                throw new Exception('Reports saving error!');
            }

            Podium::getInstance()->podiumCache->delete('user.newmessages');
            Log::info('Post reported', $post->id, __METHOD__);
            return true;
        } catch (Exception $e) {
            Log::error($e->getMessage(), null, __METHOD__);
        }
        return false;
    }