Changeset 202 for trunk/email2trac.py.in
- Timestamp:
- 05/27/08 22:43:52 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/email2trac.py.in
r201 r202 478 478 return result 479 479 480 def update_ticket_fields(self, ticket, user_dict ):481 482 This will update the ticket fields when supplied via483 the subject mail line. It will only update the ticket484 field:480 def update_ticket_fields(self, ticket, user_dict, use_default=None): 481 """ 482 This will update the ticket fields. It will check if the 483 given fields are known and if the right values are specified 484 It will only update the ticket field value: 485 485 - If the field is known 486 - If the value supplied is valid for the ticket field 487 - Else we skip it and no error is given 486 - If the value supplied is valid for the ticket field. 487 If not then there are two options: 488 1) Skip the value (use_default=None) 489 2) Set default value for field (use_default=1) 488 490 """ 489 491 … … 504 506 # 505 507 for field,value in user_dict.items(): 506 if self.DEBUG >= 5:507 print 'user field : %s=%s' %(field,value)508 if self.DEBUG >= 10: 509 print 'user_field\t %s = %s' %(field,value) 508 510 509 511 if sys_dict.has_key(field): 510 if self.DEBUG >= 5:511 print 'sys field : ', sys_dict[field]512 512 513 513 # Check if value is an allowed system option, if TypeError then … … 517 517 if value in sys_dict[field]: 518 518 ticket[field] = value 519 else: 520 # Must we set a default if value is not allowed 521 # 522 if use_default: 523 value = self.get_config('ticket', 'default_%s' %(field) ) 524 ticket[field] = value 519 525 520 526 except TypeError: 521 527 ticket[field] = value 528 529 if self.DEBUG >= 10: 530 print 'ticket_field\t %s = %s' %(field, ticket[field]) 522 531 523 532 def ticket_update(self, m): … … 527 536 creating a new one. 528 537 """ 538 global DRY_RUN 539 529 540 if not m['Subject']: 530 541 return False … … 603 614 return True 604 615 605 def new_ticket(self, msg, component): 616 def set_ticket_fields(self, ticket): 617 """ 618 set the ticket fields to value specified 619 - /etc/email2trac.conf with <prefix>_<field> 620 - trac default values, trac.ini 621 """ 622 user_dict = dict() 623 624 for field in ticket.fields: 625 626 name = field['name'] 627 628 # default trac value 629 # 630 value = self.get_config('ticket', 'default_%s' %(name) ) 631 if self.DEBUG > 10: 632 print 'trac.ini name %s = %s' %(name, value) 633 634 prefix = settings['ticket_prefix'] 635 try: 636 value = settings['%s_%s' %(prefix, name)] 637 if self.DEBUG > 10: 638 print 'email2trac.conf %s = %s ' %(name, value) 639 640 except KeyError, detail: 641 pass 642 643 if self.DEBUG: 644 print 'user_dict[%s] = %s' %(name, value) 645 646 user_dict[name] = value 647 648 self.update_ticket_fields(ticket, user_dict, use_default=1) 649 650 # Set status ticket 651 #` 652 ticket['status'] = 'new' 653 654 655 656 def new_ticket(self, msg): 606 657 """ 607 658 Create a new ticket 608 659 """ 609 660 tkt = Ticket(self.env) 610 tkt['status'] = 'new' 661 662 self.set_ticket_fields(tkt) 611 663 612 664 # Some defaults 613 665 # 614 tkt['milestone'] = self.get_config('ticket', 'default_milestone') 615 tkt['priority'] = self.get_config('ticket', 'default_priority') 616 tkt['severity'] = self.get_config('ticket', 'default_severity') 617 tkt['version'] = self.get_config('ticket', 'default_version') 618 619 tkt['type'] = self.get_config('ticket', 'default_type') 666 #tkt['status'] = 'new' 667 #tkt['milestone'] = self.get_config('ticket', 'default_milestone') 668 #tkt['priority'] = self.get_config('ticket', 'default_priority') 669 #tkt['severity'] = self.get_config('ticket', 'default_severity') 670 #tkt['version'] = self.get_config('ticket', 'default_version') 671 #tkt['type'] = self.get_config('ticket', 'default_type') 672 673 # Old style setting for component, will be removed 674 # 620 675 if settings.has_key('component'): 621 676 tkt['component'] = settings['component'] 622 else:623 tkt['component'] = self.get_config('ticket', 'default_component')624 tkt['component'] = component625 677 626 678 if not msg['Subject']: … … 629 681 tkt['summary'] = self.email_to_unicode(msg['Subject']) 630 682 631 632 # Set default owner for component, HvB633 # Is not necessary, because if component is set. The trac code634 # will find the owner:635 #636 # self.set_owner(tkt)637 683 638 684 self.set_reply_fields(tkt, msg) … … 686 732 687 733 if self.notification: 688 self.notify(tkt, True) 689 #self.notify(tkt, False) 734 if DRY_RUN: 735 print 'DRY_RUN: self.notify(tkt, True)' 736 else: 737 self.notify(tkt, True) 738 #self.notify(tkt, False) 690 739 691 740 def parse(self, fp): … … 710 759 # If component is true then we drop the message drop message 711 760 # 712 component = self.spam(m) 713 if component == True: 761 if self.spam(m) == True: 714 762 return False 715 763 … … 726 774 return True 727 775 728 self.new_ticket(m , component)776 self.new_ticket(m) 729 777 730 778 def strip_signature(self, text): … … 1049 1097 # Default config file 1050 1098 # 1099 global DRY_RUN 1100 1051 1101 configfile = '@email2trac_conf@' 1052 1102 project = '' 1053 1103 component = '' 1104 ticket_prefix = 'default' 1105 1054 1106 ENABLE_SYSLOG = 0 1055 1107 1056 SHORT_OPT = ''chf:np:' 1057 LONG_OPT = ['component=', 'dry-run', 'help', 'file=', 'project='] 1058 1059 global DRY_RUN 1060 1108 SHORT_OPT = 'chf:np:t:' 1109 LONG_OPT = ['component=', 'dry-run', 'help', 'file=', 'project=', 'ticket_prefix='] 1110 1061 1111 try: 1062 1112 opts, args = getopt.getopt(sys.argv[1:], SHORT_OPT, LONG_OPT) … … 1079 1129 elif opt in ['-p', '--project']: 1080 1130 project_name = value 1131 elif opt in ['-t', '--ticket_prefix']: 1132 ticket_prefix = value 1081 1133 1082 1134 settings = ReadConfig(configfile, project_name) … … 1088 1140 if component: 1089 1141 settings['component'] = component 1142 1143 # The default prefix for ticket values in email2trac.conf 1144 # 1145 settings['ticket_prefix'] = ticket_prefix 1090 1146 1091 1147 if settings.has_key('trac_version'):
Note: See TracChangeset
for help on using the changeset viewer.