Changeset 597


Ignore:
Timestamp:
05/04/12 10:15:51 (12 years ago)
Author:
bas
Message:

renamed function set_reply_fields to set_cc_fields. So we can use it in ticket_update and resolved a bug that reporter email address was not stripped from CC fields, see #293

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/email2trac.py.in

    r595 r597  
    390390                   
    391391
    392     def set_reply_fields(self, ticket, message):
     392    def set_cc_fields(self, ticket, message, update=False):
    393393        """
    394394        Set all the right fields for a new ticket
    395395        """
    396         self.logger.debug('function set_reply_fields')
    397 
    398         ## Only use name or email adress
    399         #
    400         ticket['reporter'] = self.author
     396        self.logger.debug('function set_cc_fields')
    401397
    402398
     
    418414            #for n,e in to_addrs:
    419415            #   to_list.append(e)
    420                
    421             ## Always Remove reporter email address from cc-list
    422             #
    423             try:
    424                 cc_addrs.remove((self.author, self.email_addr))
    425             except ValueError, detail:
    426                 pass
     416
     417            if update:
     418                self.logger.debug("\tupdate cc-fields")
    427419
    428420            for name,addr in cc_addrs:
     
    431423                #
    432424                if addr == self.trac_smtp_from:
    433                     self.logger.debug("Skipping %s mail address for CC-field" %(addr))
     425                    self.logger.debug("\tSkipping %s email address for CC-field, same as smtp_from address in trac.ini " %(addr))
    434426                    continue
    435427
    436                 if email_cc:
    437                     email_cc = '%s, %s' %(email_cc, addr)
     428                ## Alwyas remove reporter email address
     429                #
     430                elif addr == self.email_addr:
     431                    self.logger.debug("\tSkipping reporter email address for CC-field")
     432                    continue
     433
    438434                else:
    439                     email_cc = addr
     435                    if email_cc:
     436                        email_cc = '%s, %s' %(email_cc, addr)
     437                    else:
     438                        email_cc = addr
    440439
    441440            if email_cc:
    442                 self.logger.debug('set_reply_fields: %s' %email_cc)
    443 
     441                self.logger.debug('\tCC fields: %s' %email_cc)
    444442                ticket['cc'] = self.email_to_unicode(email_cc)
    445443
     
    962960            self.id = int(id[1:])
    963961
    964         self.logger.debug("ticket_update id %s" %id)
     962        self.logger.debug("\tticket id: %s" %id)
    965963
    966964        ## When is the change committed
     
    10091007        elif self.parameters.email_triggers_workflow:
    10101008
    1011             self.logger.debug('email triggers workflow pre trac 0.11')
     1009            self.logger.debug('\temail triggers workflow pre trac 0.11')
    10121010
    10131011            if tkt['status'] in ['closed']:
     
    10161014
    10171015        else:
    1018             self.logger.debug('email triggers workflow disabled')
     1016            self.logger.debug('\temail triggers workflow disabled')
    10191017
    10201018        ## Must we update some ticket fields properties via subject line
     
    10231021            self.update_ticket_fields(tkt, update_fields)
    10241022
     1023
    10251024        message_parts = self.get_message_parts(m)
    10261025        message_parts = self.unique_attachment_names(message_parts)
    10271026
    1028         ## Must we update some ticket fields properties via body_text
     1027        ## Must we update some ticket fields properties via inline comments
     1028        # in body_text
    10291029        #
    10301030        if self.properties:
    10311031                self.update_ticket_fields(tkt, self.properties)
     1032
     1033        ## Must we update the CC ticket field
     1034        #
     1035        self.set_cc_fields(tkt, m, update=True)
    10321036
    10331037        if self.parameters.email_header:
     
    10481052                    body_text = '%s\\%s' %(error_with_attachments, body_text)
    10491053
    1050                 self.logger.debug('tkt.save_changes(%s, %d)' %(self.author, cnum))
     1054                self.logger.debug('\ttkt.save_changes(%s, %d)' %(self.author, cnum))
    10511055                tkt.save_changes(self.author, body_text, when, None, str(cnum))
    10521056           
     
    11921196        tkt = Ticket(self.env)
    11931197
    1194         self.set_reply_fields(tkt, msg)
     1198        ## self.author can be email address of an username
     1199        #
     1200        tkt['reporter'] = self.author
     1201
     1202        self.set_cc_fields(tkt, msg)
    11951203
    11961204        self.set_ticket_fields(tkt)
Note: See TracChangeset for help on using the changeset viewer.