Ticket #2463: add_required_fields_inclde_new_ticket.patch
| File add_required_fields_inclde_new_ticket.patch, 3.2 KB (added by Mark Mc Mahon <mark.mcmahon@…>, 17 months ago) |
|---|
-
trac/ticket/api.py
213 213 """Default resolution for resolving (closing) tickets 214 214 (''since 0.11'').""") 215 215 216 required_fields = Option('ticket', 'required_fields', '', 217 """Required fields for issues 218 (''since 0.13'').""") 219 216 220 def __init__(self): 217 221 self.log.debug('action controllers for ticket workflow: %r' % 218 222 [c.__class__.__name__ for c in self.action_controllers]) -
trac/ticket/default_workflow.py
74 74 else: 75 75 attributes['permissions'] = [a.strip() for a in 76 76 attributes['permissions'].split(',')] 77 # If no required_fields are specified, then all fields are conditional 78 if 'required_fields' not in attributes: 79 attributes['required_fields'] = [] 80 else: 81 attributes['required_fields'] = [ 82 a.strip() for a in attributes['required_fields'].split(',')] 83 77 84 # Normalize the oldstates 78 85 attributes['oldstates'] = [x.strip() for x in 79 86 attributes['oldstates'].split(',')] -
trac/ticket/web_ui.py
1129 1129 add_warning(req, _("Tickets must contain a summary.")) 1130 1130 valid = False 1131 1131 1132 action = req.args.get('action', None) 1133 if action == 'leave': 1134 action = ticket.values['status'] 1135 1136 required_fields = TicketSystem(self.env).required_fields.split(',') 1137 required_fields = [rf.strip() for rf in required_fields] 1138 if action not in (None, 'leave', 'new'): 1139 # todo - add required fields for 'new', which are the default 1140 # required fields 1141 controllers = list( 1142 self._get_action_controllers(req, ticket, action)) 1143 if controllers: 1144 action_config = controllers[0].actions.get(action, {}) 1145 required_fields = action_config.get('required_fields', []) 1146 1147 if 'description' in required_fields: 1148 required_fields.remove('description') 1149 if not ticket['description']: 1150 add_warning(req, _( 1151 'Description field is a required field', 1152 field = 'description')) 1153 valid = False 1154 1132 1155 # Always validate for known values 1133 1156 for field in ticket.fields: 1157 1158 if field['name'] in required_fields and not field['value']: 1159 add_warning(req, _('"%(field)s" is a required field', 1160 field = field['name'])) 1161 valid = False 1162 1134 1163 if 'options' not in field: 1135 1164 continue 1136 1165 if field['name'] == 'status':
