Edgewall Software

Ticket #2876: t2876-r6286-enum_order-a.diff

File t2876-r6286-enum_order-a.diff, 1.4 KB (added by osimons, 12 months ago)

Reorder + delete default setting from trac.ini if that option is deleted (strictly not needed). Added some tests.

  • trac/ticket/tests/model.py

     
    311311 
    312312    def test_priority_delete(self): 
    313313        prio = Priority(self.env, 'major') 
     314        self.assertEqual('3', prio.value) 
    314315        prio.delete() 
    315316        self.assertEqual(False, prio.exists) 
    316317        self.assertRaises(TracError, Priority, self.env, 'major') 
     318        prio = Priority(self.env, 'minor') 
     319        self.assertEqual('3', prio.value) 
    317320 
    318321    def test_ticket_type_update(self): 
    319322        tkttype = Type(self.env, 'task') 
  • trac/ticket/model.py

     
    371371        self.env.log.info('Deleting %s %s' % (self.type, self.name)) 
    372372        cursor.execute("DELETE FROM enum WHERE type=%s AND value=%s", 
    373373                       (self.type, self._old_value)) 
     374        cursor.execute("UPDATE enum set value=value-1 where " 
     375                       "type=%s and value>%s", (self.type, self._old_value)) 
     376        if self.env.config.get('ticket', 'default_%s' % self.type) == self.name: 
     377            self.env.config.set('ticket', 'default_%s' % self.type, '') 
     378            self.env.config.save() 
    374379 
    375380        if handle_ta: 
    376381            db.commit()