# -*- coding: utf-8 -*- # # Author: alisue # Date: 2010/11/30 # from libwaz.contrib.calls import site from libwaz.contrib.calls.backends.idcalls import IdCallsBackend from models import Thread class ThreadCallsBackend(IdCallsBackend): def autodiscover(self, instance, **kwargs): if instance.pub_state == 'draft': return super(ThreadCallsBackend, self).autodiscover(instance, **kwargs) site.register(Thread, ThreadCallsBackend)
# -*- coding: utf-8 -*- # # Author: alisue # Date: 2010/11/30 # from django.contrib.auth.models import User from libwaz.contrib.calls import site from libwaz.contrib.calls.backends import BasicCallsBackend from models import Announcement class AnnouncementCallsBackend(BasicCallsBackend): MESSAGE = u"運営からのお知らせ: %(label)s" def autodiscover(self, instance, created, **kwargs): if instance.pub_state == 'draft' or instance.sage or not created: return users = User.objects.filter(is_active=True) for user_to in users: super(AnnouncementCallsBackend, self).autodiscover(instance=instance, created=created, user_to=user_to, **kwargs) site.register(Announcement, AnnouncementCallsBackend)
# -*- coding: utf-8 -*- # # Author: alisue # Date: 2010/11/30 # from libwaz.contrib.calls import site from libwaz.contrib.calls.backends import CommentCallsBackend from models import MarkItUpComment site.register(MarkItUpComment, CommentCallsBackend)
# -*- coding: utf-8 -*- # # Author: alisue # Date: 2010/11/30 # from libwaz.contrib.calls import site from libwaz.contrib.calls.backends.idcalls import IdCallsBackend from models import Project class ProjectCallsBackend(IdCallsBackend): def autodiscover(self, instance, **kwargs): if instance.pub_state == 'draft': return super(ProjectCallsBackend, self).autodiscover(instance, **kwargs) site.register(Project, ProjectCallsBackend)
def _m2m_changed_callback(self, sender, instance, action, reverse, model, pk_set, **kwargs): if instance.pub_state == 'draft' or action != 'post_add' or model != User: return users = User.objects.filter(pk__in=pk_set) for user_to in users: self.autodiscover(instance, created=False, user_to=user_to, read=False) def _pre_delete_callback(self, sender, instance, **kwargs): u"""Called when instance is deleted. Subclass should override this method when controlling deletation of call is needed.""" url = instance.get_absolute_url() calls = Call.objects.filter(url=url) for call in calls: call.read = True call.save() def setUp(self, model): m2m_changed.connect(self._m2m_changed_callback, sender=model.owners.through) pre_delete.connect(self._pre_delete_callback, sender=model) def tearDown(self, model): m2m_changed.disconnect(self._m2m_changed_callback, sender=model.owners.through) pre_delete.disconnect(self._pre_delete_callback, sender=model) def get_message(self, call): if call.content_object.status == 'reject': message = self.REJECTED_MESSAGE else: message = self.MESSAGE return super(TaskCallsBackend, self).get_message(call, message=message) site.register(Task, TaskCallsBackend)
# -*- coding: utf-8 -*- # # Author: alisue # Date: 2010/11/30 # from libwaz.contrib.calls import site from libwaz.contrib.calls.backends import IdCallsBackend from models import Tweet site.register(Tweet, IdCallsBackend)
# # Author: alisue # Date: 2010/11/30 # from django.utils.safestring import mark_safe from libwaz.contrib.calls import site from libwaz.contrib.calls.backends import BasicCallsBackend from models import Report class ReportCallsBackend(BasicCallsBackend): MESSAGE = u"%(label)s" def autodiscover(self, instance, created, **kwargs): if not created: return users = instance.product.members().all() for user_to in users: super(ReportCallsBackend, self).autodiscover(instance, created, user_to=user_to, **kwargs) def get_message(self, call): if not call.content_object: return None kwargs = { 'product': call.content_object.product.label, 'label': self.get_label(call), } return mark_safe(u"%(product)sに対する新しいバグレポート「%(label)s」があります。確認してください" % kwargs) site.register(Report, ReportCallsBackend)
# -*- coding: utf-8 -*- # # Author: alisue # Date: 2010/11/30 # from libwaz.contrib.calls import site from libwaz.contrib.calls.backends.idcalls import IdCallsBackend from models import Event class EventCallsBackend(IdCallsBackend): def autodiscover(self, instance, **kwargs): if instance.pub_state == 'draft': return super(EventCallsBackend, self).autodiscover(instance, **kwargs) site.register(Event, EventCallsBackend)
# -*- coding: utf-8 -*- # # Author: alisue # Date: 2010/11/30 # from libwaz.contrib.calls import site from libwaz.contrib.calls.backends.idcalls import IdCallsBackend from models import Entry class EntryCallsBackend(IdCallsBackend): def autodiscover(self, instance, **kwargs): if instance.pub_state == 'draft': return super(EntryCallsBackend, self).autodiscover(instance, **kwargs) site.register(Entry, EntryCallsBackend)
# -*- coding: utf-8 -*- # # Author: alisue # Date: 2010/11/30 # from libwaz.contrib.calls import site from libwaz.contrib.calls.backends import BasicCallsBackend from models import Message class MessageCallsBackend(BasicCallsBackend): MESSAGE = u"%(user_from)sさんからメッセージ「%(label)s」が届いています" def _post_save_callback(self, *args, **kwargs): pass site.register(Message, MessageCallsBackend)