Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.

Ticket #2313: fix_r6567_t2313.diff

File fix_r6567_t2313.diff, 1.3 KB (added by anthonyt, 3 years ago)

fix off by one error

  • tg/decorators.py

    diff --git tg/decorators.py tg/decorators.py
    index e07deeb..820355f 100644
    def paginate(name, items_per_page=10, use_prefix=False): 
    440440                    kwargs.pop( 
    441441                            own_parameters['items_per_page'], 
    442442                            items_per_page)) 
     443 
     444            # Iterate over all of the named arguments expected by the function f 
     445            # if any of those arguments have values present in the kwargs dict, 
     446            # add the value to the positional args list, and remove it from the 
     447            # kwargs dict 
    443448            argvars = inspect.getargspec(f)[0][1:] 
    444449            if argvars: 
    445450                args = list(args) 
    def paginate(name, items_per_page=10, use_prefix=False): 
    448453                        break; 
    449454                    var = argvars[i] 
    450455                    if var in kwargs: 
    451                         args[i] = kwargs[var] 
     456                        if i+1 >= len(args): 
     457                            args.append(kwargs[var]) 
     458                        else: 
     459                            args[i+1] = kargs[var] 
    452460                        del kwargs[var] 
    453              
     461 
    454462            res = f(*args, **kwargs) 
    455463            if isinstance(res, dict) and name in res: 
    456464                additional_parameters = MultiDict()