def render(self, context): if not self.var_args or not self.var_asname: return '' if isinstance( self.var_args, list ): args =[] for attr in self.var_args: num = retrieve_value ( attr, context, 0 ) try: num = int(num) except: num = 0 args += [ num ] try: ret = number_intervals( *args ) except: raise template.TemplateSyntaxError, \ 'Wrong Arguments for intervals: %s' % ','.join( args ) else: kwargs = {} args = args_split_list( self.var_args, single_no_list = True ) for k, value in args.iteritems(): try: num = int( retrieve_value( value, context, 0 ) ) except: num = 0 kwargs[k] = num try: ret = number_intervals(**kwargs) except: raise template.TemplateSyntaxError, \ 'Wrong Arguments for intervals (keybased): %s' % kwargs context[self.var_asname] = ret return ''
def render(self, context): # try to get "request" gets = None try: req = template.Variable("request").resolve(context) gets = req.GET except: try: gets = template.Variable("GET").resolve(context) except: raise args = args_split_list( self.var_args, single_no_list = True ) real_gets = {} if gets and 'fresh' not in self.opts: for getkey in gets.keys(): real_gets[str(getkey)] = gets[getkey] gets = real_gets for k in args.keys(): if k.startswith('!'): if k[1:] in gets.keys(): del gets[k[1:]] continue elif k.startswith('?'): if k[1:] not in gets.keys(): continue gets[k[1:]] = retrieve_values( args[k], context, True ) else: gets[ k ] = retrieve_values( args[k], context, True ) # @todo URIENCODE. gets_str = '' for get in gets.keys(): if not gets_str: if gets[get]: gets_str = '?%s=%s' % (get, gets[get]) else: gets_str = '?%s=' % get else: if gets[get]: gets_str += '&%s=%s' % (get, gets[get]) else: gets_str += '&%s=' % get if '?' in self.opts: if gets_str == '': gets_str = '?' else: gets_str = gets_str + '&' if 'plain' in self.opts: if gets_str.startswith('?') or gets_str.startswith('&'): return gets_str[1:] return gets_str
def render(self, context): if not self.args or not self.name or not self.list_object: raise template.TemplateSyntaxError, "You need arguments for pagination." return '' list_object = retrieve_value( self.list_object, context, None ) if list_object is None: raise template.TemplateSyntaxError, "No List object to paginate." kwargs = {} args = args_split_list( self.args, single_no_list = True ) for k, value in args.iteritems(): try: num = int( retrieve_value( value, context, 0 ) ) except: num = 0 kwargs[k] = num try: ret = Pagination( list_object, **kwargs ) except Exception, e: print e raise template.TemplateSyntaxError, \ 'Wrong Arguments for intervals (keybased): %s (nested exception: %s)' % (kwargs, e)