Merge "Add support for email threading by story_id"
This commit is contained in:
commit
f10fb58ab1
@ -19,9 +19,11 @@ import os
|
|||||||
import six
|
import six
|
||||||
import smtplib
|
import smtplib
|
||||||
|
|
||||||
|
from email.utils import make_msgid
|
||||||
from jinja2.exceptions import TemplateNotFound
|
from jinja2.exceptions import TemplateNotFound
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_log import log
|
from oslo_log import log
|
||||||
|
from socket import getfqdn
|
||||||
|
|
||||||
import storyboard.db.api.base as db_base
|
import storyboard.db.api.base as db_base
|
||||||
from storyboard.db.api.subscriptions import subscription_get_all_subscriber_ids
|
from storyboard.db.api.subscriptions import subscription_get_all_subscriber_ids
|
||||||
@ -265,6 +267,32 @@ class SubscriptionEmailWorker(EmailWorkerBase):
|
|||||||
sub_resource,
|
sub_resource,
|
||||||
sub_resource_id)
|
sub_resource_id)
|
||||||
|
|
||||||
|
# Set In-Reply-To message id for 'task' and 'story' resources
|
||||||
|
if resource == 'task' and method == 'DELETE':
|
||||||
|
# FIXME(pedroalvarez): Workaround the fact that the task won't be
|
||||||
|
# in the database anymore if it has been deleted.
|
||||||
|
# We should archive instead of delete to solve this.
|
||||||
|
story_id = resource_before['story_id']
|
||||||
|
created_at = self.resolve_resource_by_name(session, 'story',
|
||||||
|
story_id).created_at
|
||||||
|
elif resource == 'task':
|
||||||
|
story_id = resource_instance.story.id
|
||||||
|
created_at = resource_instance.story.created_at
|
||||||
|
elif resource == 'story':
|
||||||
|
story_id = resource_instance.id
|
||||||
|
created_at = resource_instance.created_at
|
||||||
|
|
||||||
|
if story_id and created_at:
|
||||||
|
thread_id = "<storyboard.story.%s.%s@%s>" % (
|
||||||
|
created_at.strftime("%Y%m%d%H%M"),
|
||||||
|
story_id,
|
||||||
|
getfqdn()
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
thread_id = make_msgid()
|
||||||
|
|
||||||
|
factory.add_header("In-Reply-To", thread_id)
|
||||||
|
|
||||||
# Figure out the diff between old and new.
|
# Figure out the diff between old and new.
|
||||||
before, after = self.get_changed_properties(resource_before,
|
before, after = self.get_changed_properties(resource_before,
|
||||||
resource_after)
|
resource_after)
|
||||||
|
Loading…
Reference in New Issue
Block a user