2017-12-03 3 views
0

デフォルトエディタ/モデレータグループ+ユーザがスーパーユーザである場合は...Wagtailすべての権限を持っているにもかかわらず、ダッシュボードに表示されない「Moderationを待っているページ」

審査のために提出されたページは、wagtailダッシュボードの下に表示されませんか?

私はMODのために提出されたページを緩和することができるように必要なもの

.....私はその後、私はサイコロを管理者に行っていないし、そこに、まだ一つ一つのオプションを追加した権限を見逃しているかもしれないと思いました承認?

例:

my_page = self.index.add_child(instance=my_page_instance) 
    my_page.unpublish() 
    my_page.save_revision(submitted_for_moderation=True) 
    if not send_notification(my_page.get_latest_revision().id, 'submitted', None): 
     print("Failed to send notification + email for mod approval") 

答えて

1

問題は、あなたがプログラム的に改訂を作成する際、ユーザーの記録を提供しなければならないということである。

私はプログラム的に次の操作を行って、節度のためのビューを作成からページを送信save_revisionメソッド呼び出しと一緒に使用します。これは任意のユーザーレコードにすることができます。

例:

from django.contrib.auth.models import User 

some_admin_user = User.objects.all().first() # or request.user if you are doing this where you can access the current request 
my_page.save_revision(submitted_for_moderation=True, user=some_admin_user) 

理由

ホームビューの節度を必要とする任意のリビジョンを選択関連のページとユーザーを発生させるPagesForModerationPanel。ユーザーが新しいリビジョンに渡されなかった場合は、リビジョンが返されないため、リビジョンが管理者に表示されません。ユーザーが保存リビジョンに提出されなかったときにエラーがスローされた場合、それは潜在的なバグとしてこれを提出する価値があるかもしれませんadmin/views/home.py

self.page_revisions_for_moderation = (user_perms.revisions_for_moderation() 
              .select_related('page', 'user').order_by('-created_at')) 

を参照してくださいコードは、それはおそらくよりよいだろう。

+0

request.user.pkを渡してもエラーが発生します。基数10のint()には無効なリテラルが返されます: 'get_username'。奇妙なことに、これは明らかにdjango \ templates \ base.htmlに現れているように見えます。現在の= current [bit]は現在の 'None'のために添字につけられていません – Overflow2341313

+0

あなたは単にrequest.userを渡す必要があるかもしれません - ユーザーオブジェクトのrequest.user.pkは、ユーザーの主キーであり、オブジェクトではありません。 –

+0

@ Overflow2341313まだあなたのために働いていないと聞いて申し訳ありませんが、他に何が間違っているのか分かりません。 –

関連する問題