kawaz.core.personas.activities.profile のソースコード
from django.contrib.contenttypes.models import ContentType
from activities.mediator import ActivityMediator
from .persona import PersonaActivityMediatorBase
[ドキュメント]class ProfileActivityMediator(PersonaActivityMediatorBase):
[ドキュメント] def alter(self, instance, activity, **kwargs):
if activity and activity.status in ('created', 'updated'):
# あるユーザーのプロフィールが更新、作成されたとき
# そのActivityをプロフィールについてではなく、
# そのプロフィールの持ち主のユーザーに所属させる
ct = ContentType.objects.get_for_model(instance.user)
activity.content_type = ct
activity.object_id = instance.user.pk
if activity.status == 'updated':
activity.status = 'profile_updated'
elif activity.status == 'created':
# プロフィールが作成されたとき、activatedステータスを発行する
activity.status = 'activated'
# snapshotはPersonaのものになるため
# Profileの情報を取り出せない
# そのため、フラグをremarksに設定していない
return activity
# 削除イベントでは通知しない
return None
[ドキュメント]class AccountActivityMediator(PersonaActivityMediatorBase):
[ドキュメント] def alter(self, instance, activity, **kwargs):
if activity and activity.status == 'created':
# プロフィールに新しくサービスアカウントが作成されたとき
# このActivityをユーザーの物にしてしまう
# また、ステータスも`account_added`に変える
# remarksには付いたアカウントのPKを入れる
target = instance.profile.user
ct = ContentType.objects.get_for_model(instance.profile.user)
activity.content_type = ct
activity.object_id = instance.profile.user.pk
activity.status = 'account_added'
activity.remarks = str(instance.pk)
return activity