Edgewall Software

Ticket #880: patch-followrenames-r1014.diff

File patch-followrenames-r1014.diff, 5.5 KB (added by pkou <pkou at ua.fm>, 8 years ago)

Patch for the changes

  • scripts/trac-admin

     
    349349        self.db_execsql("UPDATE ticket SET component='%s' WHERE component='%s'" 
    350350                        % (newname,name), cursor) 
    351351        cnx.commit() 
     352        if self.__env.get_config('ticket', 'default_component') == name: 
     353            self.__env.set_config('ticket', 'default_component', newname) 
     354            self.__env.save_config() 
    352355 
    353356    def _do_component_remove(self, name): 
    354357        cnx = self.db_open() 
     
    359362            raise Exception("No such component '%s'" % name) 
    360363        data = self.db_execsql("DELETE FROM component WHERE name='%s'" 
    361364                               % (name)) 
     365        data = self.db_execsql("UPDATE ticket SET component = '' WHERE component = '%s'" % name) 
     366        if self.__env.get_config('ticket', 'default_component') == name: 
     367            self.__env.set_config('ticket', 'default_component', '') 
     368            self.__env.save_config() 
    362369 
    363370    def _do_component_set_owner(self, name, owner): 
    364371        cnx = self.db_open() 
     
    783790            raise Exception, "No such value '%s'" % name 
    784791        data = self.db_execsql("UPDATE enum SET name='%(newname)s'"  
    785792                               " WHERE type='%(type)s' AND name='%(name)s'" % d) 
     793        if self.__env.get_config('ticket', 'default_' + type) == name: 
     794            self.__env.set_config('ticket', 'default_' + type, newname) 
     795            self.__env.save_config() 
     796        data = self.db_execsql("UPDATE ticket SET %(type)s='%(newname)s'" 
     797                               " WHERE %(type)s='%(name)s'" % d) 
    786798 
    787799    def _do_enum_remove(self, type, name): 
    788800        data = self.db_execsql("SELECT name FROM enum"  
     
    791803            raise Exception, "No such value '%s'" % name 
    792804        data = self.db_execsql("DELETE FROM enum WHERE type='%s' AND name='%s'" 
    793805                               % (type, name)) 
     806        if self.__env.get_config('ticket', 'default_' + type) == name: 
     807            self.__env.set_config('ticket', 'default_' + type, '') 
     808            self.__env.save_config() 
     809        newname = self.__env.get_config('ticket', 'default_' + type) 
     810        d = {'name':name, 'newname':newname, 'type':type} 
     811        data = self.db_execsql("UPDATE ticket SET %(type)s='%(newname)s'" 
     812                               " WHERE %(type)s='%(name)s'" % d) 
    794813 
    795814 
    796815    ## Milestone 
     
    876895            raise Exception, "No such %s '%s'" % (type, name) 
    877896        data = self.db_execsql("UPDATE %(type)s SET name='%(newname)s'"  
    878897                               " WHERE name='%(name)s'" % d) 
     898        data = self.db_execsql("UPDATE ticket SET %(type)s='%(newname)s'" 
     899                               " WHERE %(type)s='%(name)s'" % d) 
     900        if self.__env.get_config('ticket', 'default_' + type) == name: 
     901            self.__env.set_config('ticket', 'default_' + type, newname) 
     902            self.__env.save_config() 
    879903 
    880904    def _do_mile_ver_add(self, type, name): 
    881905        sql = ("INSERT INTO %(type)s('name', 'time') " 
     
    891915            raise Exception, "No such %s '%s'" % (type, name) 
    892916        data = self.db_execsql("DELETE FROM %(type)s"  
    893917                               " WHERE name='%(name)s'" % d) 
     918        data = self.db_execsql("UPDATE ticket SET %(type)s=''" 
     919                               " WHERE %(type)s='%(name)s'" % d) 
     920        if self.__env.get_config('ticket', 'default_' + type) == name: 
     921            self.__env.set_config('ticket', 'default_' + type, '') 
     922            self.__env.save_config() 
    894923 
    895924    def _do_mile_ver_time(self, type, name, t): 
    896925        d = {'name':name, 'type':type} 
  • trac/Milestone.py

     
    166166                                      'milestone %s' % (id, target)) 
    167167                    cursor.execute ('UPDATE ticket SET milestone = %s ' 
    168168                                    'WHERE milestone = %s', target, id) 
     169                    if self.env.get_config('ticket', 'default_milestone') == id: 
     170                        self.env.set_config('ticket', 'default_milestone', target) 
     171                        self.env.save_config() 
    169172                else: 
    170173                    self.env.log.info('Resetting milestone field of all ' 
    171174                                      'tickets associated with milestone %s' 
    172175                                      % id) 
    173176                    cursor.execute ('UPDATE ticket SET milestone = NULL ' 
    174177                                    'WHERE milestone = %s', id) 
     178                    if self.env.get_config('ticket', 'default_milestone') == id: 
     179                        self.env.set_config('ticket', 'default_milestone', '') 
     180                        self.env.save_config() 
    175181            self.env.log.debug('Deleting milestone %s' % id) 
    176182            cursor.execute("DELETE FROM milestone WHERE name = %s", id) 
    177183            self.db.commit() 
     
    192198                           "descr = %s WHERE name = %s", 
    193199                           name, date, descr, id) 
    194200            self.db.commit() 
     201            if self.env.get_config('ticket', 'default_milestone') == id: 
     202                self.env.set_config('ticket', 'default_milestone', name) 
     203                self.env.save_config() 
     204 
    195205            self.req.redirect(self.env.href.milestone(name)) 
    196206        else: 
    197207            self.req.redirect(self.env.href.milestone(id))