equal
deleted
inserted
replaced
107 if not id: |
107 if not id: |
108 msg.add_header('Message-Id', "<%s-0-artemis@%s>" % (issue_id, socket.gethostname())) |
108 msg.add_header('Message-Id', "<%s-0-artemis@%s>" % (issue_id, socket.gethostname())) |
109 else: |
109 else: |
110 msg.add_header('Message-Id', "<%s-%s-artemis@%s>" % (issue_id, _random_id(), socket.gethostname())) |
110 msg.add_header('Message-Id', "<%s-%s-artemis@%s>" % (issue_id, _random_id(), socket.gethostname())) |
111 msg.add_header('References', mbox[(comment < len(mbox) and comment) or 0]['Message-Id']) |
111 msg.add_header('References', mbox[(comment < len(mbox) and comment) or 0]['Message-Id']) |
|
112 msg.add_header('In-Reply-To', mbox[(comment < len(mbox) and comment) or 0]['Message-Id']) |
112 mbox.add(msg) |
113 mbox.add(msg) |
113 mbox.close() |
114 mbox.close() |
114 |
115 |
115 # If adding issue, add the new mailbox to the repository |
116 # If adding issue, add the new mailbox to the repository |
116 if not id: |
117 if not id: |
163 _pretty_list(list(set([property for property, value in properties]))), |
164 _pretty_list(list(set([property for property, value in properties]))), |
164 properties_text) |
165 properties_text) |
165 msg = mailbox.mboxMessage(properties_text) |
166 msg = mailbox.mboxMessage(properties_text) |
166 msg.add_header('Message-Id', "<%s-%s-artemis@%s>" % (id, _random_id(), socket.gethostname())) |
167 msg.add_header('Message-Id', "<%s-%s-artemis@%s>" % (id, _random_id(), socket.gethostname())) |
167 msg.add_header('References', mbox[0]['Message-Id']) |
168 msg.add_header('References', mbox[0]['Message-Id']) |
|
169 msg.add_header('In-Reply-To', mbox[0]['Message-Id']) |
168 msg.set_from('artemis', True) |
170 msg.set_from('artemis', True) |
169 mbox.add(msg) |
171 mbox.add(msg) |
170 mbox.flush() |
172 mbox.flush() |
171 |
173 |
172 # Show updated message |
174 # Show updated message |
220 messages = {} |
222 messages = {} |
221 children = {} |
223 children = {} |
222 for i in xrange(len(mbox)): |
224 for i in xrange(len(mbox)): |
223 m = mbox[i] |
225 m = mbox[i] |
224 messages[m['Message-Id']] = (i,m) |
226 messages[m['Message-Id']] = (i,m) |
225 children.setdefault(m['References'], []).append(m['Message-Id']) |
227 children.setdefault(m['In-Reply-To'], []).append(m['Message-Id']) |
226 children[None] = [] # Safeguard against infinte loop on empty Message-Id |
228 children[None] = [] # Safeguard against infinte loop on empty Message-Id |
227 |
229 |
228 # Iterate over children |
230 # Iterate over children |
229 id = msg['Message-Id'] |
231 id = msg['Message-Id'] |
230 id_stack = (id in children and map(lambda x: (x, 1), reversed(children[id]))) or [] |
232 id_stack = (id in children and map(lambda x: (x, 1), reversed(children[id]))) or [] |