Changeset 262


Ignore:
Timestamp:
04/08/09 16:47:40 (12 years ago)
Author:
bas
Message:

closes #130

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r261 r262  
    1111     Authors: Bas van der Vlies & lucas dot eisenzimmer at t-systems-mms dot com
    1212   
    13     * email2trac require at least python version 2.4, closes #131
    14       Reported by: otto at bergerdata dot de
    15       Fixed by: Bas van der Vlies
     13   * email2trac require at least python version 2.4, closes #131
     14     Reported by: otto at bergerdata dot de
     15     Fixed by: Bas van der Vlies
     16
     17   * We can now set ticket fields for a new ticket via the 'subject' line:
     18       - Subject: <description> #?<field=value>[,<field=value>]*
     19     closes #130
     20     
     21     Requested by: Steve
     22     Implemented by: Bas van der Vlies
    1623
    17242009-01-30
  • trunk/debian/changelog

    r261 r262  
    1717   Fixed by: Bas van der Vlies
    1818
    19  -- root <root@subtrac2.rc.sara.nl>  Tue, 24 Mar 2009 15:26:08 +0100
     19 * We can now set ticket fields for a new ticket via the 'subject' line:
     20    - Subject: <description> #?<field=value>[,<field=value>]*
     21   closes #130
     22
     23   Requested by: Steve
     24   Implemented by: Bas van der Vlies
     25
     26 -- Bas van der Vlies <basv@ssara.nl>  Tue, 24 Mar 2009 15:26:08 +0100
    2027
    2128email2trac (0.70-1) stable; urgency=low
     
    2330  * New stable version
    2431
    25  -- root <root@subtrac2.rc.sara.nl>  Tue, 27 Jan 2009 15:42:32 +0100
     32 -- Bas van der Vlies <basv@sara.nl>  Tue, 27 Jan 2009 15:42:32 +0100
    2633
    2734email2trac (0.60-1) stable; urgency=low
     
    2936  *  New stable version
    3037
    31  -- root <root@subtrac2.rc.sara.nl>  Thu, 20 Nov 2008 11:29:59 +0100
     38 -- Bas van der Vlies <root@subtrac2.rc.sara.nl>  Thu, 20 Nov 2008 11:29:59 +0100
    3239
    3340email2trac (0.40-1) stable; urgency=low
     
    3542  * New Version, see ChangeLog
    3643
    37  -- root <root@subtrac2.rc.sara.nl>  Fri, 10 Oct 2008 17:24:09 +0200
     44 -- Bas van der Vlies <root@subtrac2.rc.sara.nl>  Fri, 10 Oct 2008 17:24:09 +0200
    3845
    3946email2trac (0.30-3) stable; urgency=low
     
    4249  * Reopen ticket if an email update is received
    4350
    44  -- root <root@subtrac2.rc.sara.nl>  Mon, 04 Aug 2008 16:14:12 +0200
     51 -- Bas van der Vlies <root@subtrac2.rc.sara.nl>  Mon, 04 Aug 2008 16:14:12 +0200
    4552
    4653email2trac (0.30-2) stable; urgency=low
     
    6673  * New version with a lot of improvements
    6774
    68  -- root <root@rc.sara.nl>  Mon,  4 Feb 2008 11:27:27 +0100
     75 -- Bas van der Vlies <root@rc.sara.nl>  Mon,  4 Feb 2008 11:27:27 +0100
    6976
    7077email2trac (0.10.0-2) stable; urgency=low
     
    7279  *  Added extra info to syslog when exception occurs
    7380
    74  -- root <root@rc.sara.nl>  Fri,  3 Aug 2007 09:45:26 +0200
     81 -- Bas van der Vlies <root@rc.sara.nl>  Fri,  3 Aug 2007 09:45:26 +0200
    7582
    7683email2trac (0.10.0-1) stable; urgency=low
  • trunk/email2trac.py.in

    r260 r262  
    525525                Transfrom a str of the form [<key>=<value>]+ to dict[<key>] = <value>
    526526                """
    527                 # Skip the last ':' character
    528                 #
    529                 fields = string.split(str[:-1], ',')
     527
     528                fields = string.split(str, ',')
    530529
    531530                result = dict()
    532531                for field in fields:
    533532                        try:
    534                                 index, value = string.split(field,'=')
     533                                index, value = string.split(field, '=')
    535534
    536535                                # We can not change the description of a ticket via the subject
     
    619618                try:
    620619                        id, keywords = string.split(id, '?')
     620
     621                        # Skip the last ':' character
     622                        #
     623                        keywords = keywords[:-1]
    621624                        update_fields = self.str_to_dict(keywords)
    622625
     
    766769
    767770
    768         def new_ticket(self, msg, spam):
     771        def new_ticket(self, msg, subject, spam, set_fields = None):
    769772                """
    770773                Create a new ticket
     
    787790                        tkt['summary'] = u'(No subject)'
    788791                else:
    789                         tkt['summary'] = self.email_to_unicode(msg['Subject'])
     792                        tkt['summary'] = self.email_to_unicode(subject)
    790793
    791794                self.set_reply_fields(tkt, msg)
     795
     796                if set_fields:
     797                        rest, keywords = string.split(set_fields, '?')
     798
     799                        if keywords:
     800                                update_fields = self.str_to_dict(keywords)
     801                                self.update_ticket_fields(tkt, update_fields)
    792802
    793803                # produce e-mail like header
     
    936946                        self.notification = 0
    937947
    938                 print self.get_config('components', 'tracext.google.ads.*')
    939 
    940948                # Check if  FullBlogPlugin is installed
    941949                #
     
    956964                TICKET_RE = re.compile(r"""
    957965                        (?P<blog>blog:(?P<blog_id>\w*))
    958                         |(?P<ticket_id>[#][\d]+:)
    959                         |(?P<ticket_fields>[#][\d]+\?.*?:)
     966                        |(?P<new_fields>[#][?].*)
     967                        |(?P<reply>[#][\d]+:)
     968                        |(?P<reply_fields>[#][\d]+\?.*?:)
    960969                        """, re.VERBOSE)
    961970
     
    968977                        # update ticket + fields
    969978                        #
    970                         if result.group('ticket_fields') and self.TICKET_UPDATE:
    971                                 self.ticket_update(m, result.group('ticket_fields'), spam_msg)
     979                        if result.group('reply_fields') and self.TICKET_UPDATE:
     980                                self.ticket_update(m, result.group('reply_fields'), spam_msg)
    972981
    973982                        # Update ticket
    974983                        #
    975                         elif result.group('ticket_id') and self.TICKET_UPDATE:
    976                                 self.ticket_update(m, result.group('ticket_id'), spam_msg)
     984                        elif result.group('reply') and self.TICKET_UPDATE:
     985                                self.ticket_update(m, result.group('reply'), spam_msg)
     986
     987                        # New ticket + fields
     988                        #
     989                        elif result.group('new_fields'):
     990                                self.new_ticket(m, subject[:result.start('new_fields')], spam_msg, result.group('new_fields'))
    977991
    978992                # Create ticket
    979993                #
    980994                else:
    981                         self.new_ticket(m, spam_msg)
     995                        self.new_ticket(m, subject, spam_msg)
    982996
    983997        def strip_signature(self, text):
Note: See TracChangeset for help on using the changeset viewer.