summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 604e6ab)
raw | patch | inline | side by side (parent: 604e6ab)
author | schlatterbeck <schlatterbeck@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
Wed, 4 Aug 2010 10:01:23 +0000 (10:01 +0000) | ||
committer | schlatterbeck <schlatterbeck@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
Wed, 4 Aug 2010 10:01:23 +0000 (10:01 +0000) |
http://thread.gmane.org/gmane.comp.bug-tracking.roundup.user/10169
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/roundup/trunk@4511 57a73879-2fb5-44c3-a270-3262357dd7e2
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/roundup/trunk@4511 57a73879-2fb5-44c3-a270-3262357dd7e2
CHANGES.txt | patch | blob | history | |
roundup/configuration.py | patch | blob | history | |
roundup/mailgw.py | patch | blob | history | |
test/test_mailgw.py | patch | blob | history |
diff --git a/CHANGES.txt b/CHANGES.txt
index 06cb7c754aefe40c95c18569995fb9c49fb6287d..e87e499f9344e5104a3b6305717164da0350c375 100644 (file)
--- a/CHANGES.txt
+++ b/CHANGES.txt
- allow trackers to override the classes used to render properties in
templating per issue2550659 (thanks Ezio Melotti)
+- new mailgw configuration item "subject_updates_title": If set to "no"
+ a changed subject in a reply to an issue will not update the issue
+ title with the changed subject. Thanks to Arkadiusz Kita and Peter
+ Funk for requesting the feature and discussing the implementation.
+ http://thread.gmane.org/gmane.comp.bug-tracking.roundup.user/10169
Fixed:
index 3ad193d7dba9dd7fc48374e0120544dbbe842058..f010842a488114a7dde5a0cd6a0a2bb33094f5d5 100644 (file)
--- a/roundup/configuration.py
+++ b/roundup/configuration.py
"will match an issue for the interval after the issue's\n"
"creation or last activity. The interval is a standard\n"
"Roundup interval."),
+ (BooleanOption, "subject_updates_title", "yes",
+ "Update issue title if incoming subject of email is different.\n"
+ "Setting this to \"no\" will ignore the title part of"
+ " the subject\nof incoming email messages.\n"),
(RegExpOption, "refwd_re", "(\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W)+",
"Regular expression matching a single reply or forward\n"
"prefix prepended by the mailer. This is explicitly\n"
diff --git a/roundup/mailgw.py b/roundup/mailgw.py
index 61f3cdfa8ba95aa38f87550eb4de888ed1791bc2..38b3e370e217d66706a6416973b65269649fbc2c 100644 (file)
--- a/roundup/mailgw.py
+++ b/roundup/mailgw.py
if (title and properties.has_key('title') and not
issue_props.has_key('title')):
issue_props['title'] = title
+ if (nodeid and properties.has_key('title') and not
+ config['MAILGW_SUBJECT_UPDATES_TITLE']):
+ issue_props['title'] = cl.get(nodeid,'title')
#
# handle message-id and in-reply-to
diff --git a/test/test_mailgw.py b/test/test_mailgw.py
index 295d06a1e3a64d8b8fc76a1c777ebca06ea48d3a..b4a8f95c56514bf4760af55a120660b86370298b 100644 (file)
--- a/test/test_mailgw.py
+++ b/test/test_mailgw.py
nosy: +john, mary
status: unread -> chatting
+_______________________________________________________________________
+Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+<http://tracker.example/cgi-bin/roundup.cgi/bugs/issue1>
+_______________________________________________________________________
+''')
+
+ def testFollowupNoSubjectChange(self):
+ self.db.config.MAILGW_SUBJECT_UPDATES_TITLE = 'no'
+ self.doNewIssue()
+
+ self._handle_mail('''Content-Type: text/plain;
+ charset="iso-8859-1"
+From: richard <richard@test.test>
+To: issue_tracker@your.tracker.email.domain.example
+Message-Id: <followup_dummy_id>
+In-Reply-To: <dummy_test_message_id>
+Subject: [issue1] Wrzlbrmft... [assignedto=mary; nosy=+john]
+
+This is a followup
+''')
+ l = self.db.issue.get('1', 'nosy')
+ l.sort()
+ self.assertEqual(l, [self.chef_id, self.richard_id, self.mary_id,
+ self.john_id])
+
+ self.compareMessages(self._get_mail(),
+'''FROM: roundup-admin@your.tracker.email.domain.example
+TO: chef@bork.bork.bork, john@test.test, mary@test.test
+Content-Type: text/plain; charset="utf-8"
+Subject: [issue1] Testing...
+To: chef@bork.bork.bork, john@test.test, mary@test.test
+From: richard <issue_tracker@your.tracker.email.domain.example>
+Reply-To: Roundup issue tracker
+ <issue_tracker@your.tracker.email.domain.example>
+MIME-Version: 1.0
+Message-Id: <followup_dummy_id>
+In-Reply-To: <dummy_test_message_id>
+X-Roundup-Name: Roundup issue tracker
+X-Roundup-Loop: hello
+X-Roundup-Issue-Status: chatting
+Content-Transfer-Encoding: quoted-printable
+
+
+richard <richard@test.test> added the comment:
+
+This is a followup
+
+----------
+assignedto: -> mary
+nosy: +john, mary
+status: unread -> chatting
+
+_______________________________________________________________________
+Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+<http://tracker.example/cgi-bin/roundup.cgi/bugs/issue1>
+_______________________________________________________________________
+''')
+ self.assertEqual(self.db.issue.get('1','title'), 'Testing...')
+
+ def testFollowupExplicitSubjectChange(self):
+ self.doNewIssue()
+
+ self._handle_mail('''Content-Type: text/plain;
+ charset="iso-8859-1"
+From: richard <richard@test.test>
+To: issue_tracker@your.tracker.email.domain.example
+Message-Id: <followup_dummy_id>
+In-Reply-To: <dummy_test_message_id>
+Subject: [issue1] Wrzlbrmft... [assignedto=mary; nosy=+john; title=new title]
+
+This is a followup
+''')
+ l = self.db.issue.get('1', 'nosy')
+ l.sort()
+ self.assertEqual(l, [self.chef_id, self.richard_id, self.mary_id,
+ self.john_id])
+
+ self.compareMessages(self._get_mail(),
+'''FROM: roundup-admin@your.tracker.email.domain.example
+TO: chef@bork.bork.bork, john@test.test, mary@test.test
+Content-Type: text/plain; charset="utf-8"
+Subject: [issue1] new title
+To: chef@bork.bork.bork, john@test.test, mary@test.test
+From: richard <issue_tracker@your.tracker.email.domain.example>
+Reply-To: Roundup issue tracker
+ <issue_tracker@your.tracker.email.domain.example>
+MIME-Version: 1.0
+Message-Id: <followup_dummy_id>
+In-Reply-To: <dummy_test_message_id>
+X-Roundup-Name: Roundup issue tracker
+X-Roundup-Loop: hello
+X-Roundup-Issue-Status: chatting
+Content-Transfer-Encoding: quoted-printable
+
+
+richard <richard@test.test> added the comment:
+
+This is a followup
+
+----------
+assignedto: -> mary
+nosy: +john, mary
+status: unread -> chatting
+title: Testing... -> new title
+
_______________________________________________________________________
Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
<http://tracker.example/cgi-bin/roundup.cgi/bugs/issue1>