artemis.py
changeset 13 e155f2129514
parent 11 8bf7b97035f1
child 15 e5b03298394e
equal deleted inserted replaced
12:3336e2f6fdef 13:e155f2129514
   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 []