Changeset 3344

Show
Ignore:
Timestamp:
03/11/08 18:23:37 (10 months ago)
Author:
rharkins
Message:

Fixed ticket #2719, which now means that checklists will update the database
for changed checkboxes.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • checklistplugin/0.11/trac_checklist/macros.py

    r3338 r3344  
    66 
    77from trac.wiki.macros import WikiMacroBase 
    8 from trac.wiki.formatter import Formatter 
     8from trac.wiki.formatter import Formatter, extract_link 
    99from trac.util.html import Markup 
    1010from trac.core import ExtensionPoint 
     
    3434        text = '\n'.join(lines) 
    3535        context = flags.get('context', formatter.req.path_info) 
     36        # There MUST be an easier way... 
     37        link = extract_link(formatter.env, formatter.context, context) 
     38        if link is not None: 
     39            for op in link.generate(): 
     40                self.log.debug('HERE >>>>>>>>>>>>>> ', str(op)) 
     41                if isinstance(op, tuple): 
     42                    if op[0] == 'a': 
     43                        for name, value in op[1]: 
     44                            if name == 'href': 
     45                                context = value 
     46                                break 
    3647        section = flags.get('section') 
    3748        if section: 
     
    8091        return ''.join(( 
    8192            '<INPUT type="hidden" name="__fields__" value=%r>' % str(field), 
     93            '<INPUT type="hidden" name=%r value=%r>' % 
     94                ('old:' + str(field), checked and 'on' or ''), 
    8295            '<INPUT type="checkbox" name=%r' % str(field), 
    8396                checked and ' checked' or '', 
  • checklistplugin/0.11/trac_checklist/updater.py

    r3338 r3344  
    6464            for name in set(fields): 
    6565                value = bool(args.get(name)) and 'on' or '' 
    66                 self.updateField(context, name, value, who) 
     66                oldvalue = bool(args.get('old:' + name)) and 'on' or '' 
     67                if value != oldvalue: 
     68                    self.updateField(context, name, value, who) 
    6769        except Exception, e: 
    6870            code = getattr(e, '__http_status__', 500)