Edgewall Software

Ticket #1791: trac.format.custom.fields.0.9.5.2.patch

File trac.format.custom.fields.0.9.5.2.patch, 2.2 KB (added by seb at tail-f.com, 5 years ago)

Patch against trac 0.9.5 to enable wiki formating of custom fields

  • ticket/api.py

    old new  
    121121                'order': int(self.config.get('ticket-custom', name + '.order', '0')), 
    122122                'label': self.config.get('ticket-custom', name + '.label') \ 
    123123                         or name.capitalize(), 
    124                 'value': self.config.get('ticket-custom', name + '.value', '') 
     124                'value': self.config.get('ticket-custom', name + '.value', ''), 
     125                'format': self.config.get('ticket-custom', name + '.format', 'plain') 
    125126            } 
    126127            if field['type'] == 'select' or field['type'] == 'radio': 
    127128                options = self.config.get('ticket-custom', name + '.options') 
  • ticket/web_ui.py

    old new  
    376376            if name in ('summary', 'reporter', 'description', 'type', 'status', 
    377377                        'resolution', 'owner'): 
    378378                field['skip'] = True 
     379            else: 
     380                if 'format' in field: 
     381                    if field['format'] == 'wiki': 
     382                        field['formatted'] = wiki_to_html(ticket.values.get(name), self.env, req, db) 
     383                    elif field['format'] == 'wiki_oneliner': 
     384                        field['formatted'] = wiki_to_oneliner(ticket.values.get(name), self.env, db, shorten=True) 
     385                    elif field['format'] == 'pre': 
     386                        field['formatted'] = wiki_to_html('{{{\n' + ticket.values.get(name) + '\n}}}', self.env, req, db) 
     387                    else: 
     388                        field['formatted'] = ticket.values.get(name) 
     389                else: 
     390                    field['formatted'] = ticket.values.get(name) 
    379391            req.hdf['ticket.fields.' + name] = field 
    380392 
    381393        req.hdf['ticket.reporter_id'] = reporter_id 
  • templates/ticket.cs

    old new  
    6464    if:fullrow && idx % 2 ?><th></th><td></td></tr><tr><?cs /if ?> 
    6565    <th id="h_<?cs var:name(field) ?>"><?cs var:field.label ?>:</th> 
    6666    <td<?cs if:fullrow ?> colspan="3"<?cs /if ?> headers="h_<?cs 
    67       var:name(field) ?>"><?cs var:ticket[name(field)] ?></td><?cs  
     67      var:name(field) ?>"><?cs var:field.formatted ?></td><?cs  
    6868    if:idx % 2 || fullrow ?></tr><tr><?cs  
    6969    elif:idx == num_fields - 1 ?><th></th><td></td><?cs 
    7070    /if ?><?cs set:idx = idx + #fullrow + 1 ?><?cs