Ticket #5641: custom_enum.diff
| File custom_enum.diff, 2.2 KB (added by Colin Guthrie, 19 months ago) |
|---|
-
ticket/api.py
old new 168 168 } 169 169 if field['type'] == 'select' or field['type'] == 'radio': 170 170 field['options'] = config.getlist(name + '.options', sep='|') 171 if len(field['options']) == 1 and field['options'][0].startswith('enum:'): 172 enum_name = field['options'][0].split(':')[1] 173 db = self.env.get_db_cnx() 174 cursor = db.cursor() 175 cursor.execute("SELECT name,value FROM enum WHERE type=%s " 176 "ORDER BY " + db.cast('value', 'int'), 177 (enum_name,)) 178 field['options'].pop() 179 for name,value in cursor: 180 field['options'].append(name) 171 181 if '' in field['options']: 172 182 field['optional'] = True 173 183 field['options'].remove('') -
ticket/model.py
old new 318 318 class AbstractEnum(object): 319 319 type = None 320 320 ticket_col = None 321 custom = False 321 322 322 323 def __init__(self, env, name=None, db=None): 323 324 if not self.ticket_col: … … 400 401 (self.name, self.value, self.type, self._old_name)) 401 402 if self.name != self._old_name: 402 403 # Update tickets 403 cursor.execute("UPDATE ticket SET %s=%%s WHERE %s=%%s" % 404 (self.ticket_col, self.ticket_col), 405 (self.name, self._old_name)) 404 if self.custom: 405 cursor.execute("UPDATE ticket_custom SET value=%s " 406 "WHERE name=%s AND value=%s", 407 (self.name, self.ticket_col, self._old_name)) 408 else: 409 cursor.execute("UPDATE ticket SET %s=%%s WHERE %s=%%s" % 410 (self.ticket_col, self.ticket_col), 411 (self.name, self._old_name)) 406 412 407 413 if handle_ta: 408 414 db.commit()
