diff --git a/conversations/migrations/0002_message_system.py b/conversations/migrations/0002_message_system.py new file mode 100644 index 0000000..b09f2d4 --- /dev/null +++ b/conversations/migrations/0002_message_system.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-07 16:49 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('conversations', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='message', + name='system', + field=models.BooleanField(default=False), + ), + ] diff --git a/conversations/models.py b/conversations/models.py index 3322d19..40741d1 100644 --- a/conversations/models.py +++ b/conversations/models.py @@ -21,6 +21,7 @@ class Message(PonyConfModel): author = models.ForeignKey(User) content = models.TextField() + system = models.BooleanField(default=False) class Meta: ordering = ['created'] @@ -103,6 +104,8 @@ class ConversationAboutTalk(Conversation): def new_message(self, message): site = self.get_site() first = self.messages.first() + if not message.system and message.author not in self.subscribers.all(): + self.subscribers.add(message.author) recipients = self.subscribers.all() data = { 'uri': site.domain + reverse('show-talk', args=[self.talk.slug]), @@ -117,8 +120,6 @@ class ConversationAboutTalk(Conversation): 'proposer_uri': site.domain + reverse('show-speaker', args=[message.author.username]) }) else: - if message.author not in self.subscribers.all(): - self.subscribers.add(message.author) subject = 'Re: [%s] Talk: %s' % (site.name, self.talk.title) template = 'message' ref = first.token diff --git a/conversations/signals.py b/conversations/signals.py index 47b2bd1..a5bcfb0 100644 --- a/conversations/signals.py +++ b/conversations/signals.py @@ -38,7 +38,7 @@ def check_talk(talk): def notify_talk_added(sender, instance, author, **kwargs): check_talk(instance) message = Message(conversation=instance.conversation, author=author, - content='The talk has been proposed.') + content='The talk has been proposed.', system=True) message.save() @@ -46,7 +46,7 @@ def notify_talk_added(sender, instance, author, **kwargs): def notify_talk_edited(sender, instance, author, **kwargs): check_talk(instance) message = Message(conversation=instance.conversation, author=author, - content='The talk has been modified.') + content='The talk has been modified.', system=True) message.save()