def render(self, context): try: # This evaluates to a ImageWithThumbsField, as long as the # user specified a valid model field. relative_source = Variable(self.source_var).resolve(context) except VariableDoesNotExist: if settings.TEMPLATE_DEBUG: raise VariableDoesNotExist("Variable '%s' does not exist." % self.source_var) else: relative_source = None try: requested_name = Variable(self.thumb_name_var).resolve(context) except VariableDoesNotExist: if settings.TEMPLATE_DEBUG: raise TemplateSyntaxError("Name argument '%s' is not a valid thumbnail." % self.thumb_name_var) else: requested_name = None if relative_source is None or requested_name is None: # Couldn't resolve the given template variable. Fail silently. thumbnail = '' else: # Spaces at the end of sizes is just not OK. requested_name = requested_name.strip() # This is typically a athumb.fields.ImageWithThumbsFieldFile object. try: # Allow the user to override the protocol in the tag. force_ssl = self.kwargs.get('force_ssl', False) # Try to detect SSL mode in the request context. Front-facing # server or proxy must be passing the correct headers for # this to work. Also, factor in force_ssl. ssl_mode = self.is_secure(context) or force_ssl # Get the URL for the thumbnail from the # ImageWithThumbsFieldFile object. try: thumbnail = relative_source.generate_url(requested_name, ssl_mode=ssl_mode) except: #import traceback #traceback.print_stack() print "ERROR: Using {% thumbnail %} tag with "\ "a regular ImageField instead of ImageWithThumbsField:", self.source_var return '' except ValueError: # This file object doesn't actually have a file. Probably # model field with a None value. thumbnail = '' # Return the thumbnail class, or put it on the context if self.context_name is None: return thumbnail # We need to get here so we don't have old values in the context # variable. context[self.context_name] = thumbnail return ''
def render(self, context): try: # This evaluates to a ImageWithThumbsField, as long as the # user specified a valid model field. relative_source = Variable(self.source_var).resolve(context) except VariableDoesNotExist: if settings.TEMPLATE_DEBUG: raise VariableDoesNotExist("Variable '%s' does not exist." % self.source_var) else: relative_source = None try: requested_name = Variable(self.thumb_name_var).resolve(context) except VariableDoesNotExist: if settings.TEMPLATE_DEBUG: raise TemplateSyntaxError("Name argument '%s' is not a valid thumbnail." % self.thumb_name_var) else: requested_name = None if relative_source is None or requested_name is None: # Couldn't resolve the given template variable. Fail silently. thumbnail = '' else: # Spaces at the end of sizes is just not OK. requested_name = requested_name.strip() # This is typically a athumb.fields.ImageWithThumbsFieldFile object. try: # Allow the user to override the protocol in the tag. force_ssl = self.kwargs.get('force_ssl', False) # Try to detect SSL mode in the request context. Front-facing # server or proxy must be passing the correct headers for # this to work. Also, factor in force_ssl. ssl_mode = self.is_secure(context) or force_ssl # Get the URL for the thumbnail from the # ImageWithThumbsFieldFile object. try: thumbnail = relative_source.generate_url(requested_name, ssl_mode=ssl_mode) except: #import traceback #traceback.print_stack() print "ERROR: Using {% thumbnail %} tag with " \ "a regular ImageField instead of ImageWithThumbsField:", self.source_var return '' except ValueError: # This file object doesn't actually have a file. Probably # model field with a None value. thumbnail = '' # Return the thumbnail class, or put it on the context if self.context_name is None: return thumbnail # We need to get here so we don't have old values in the context # variable. context[self.context_name] = thumbnail return ''
def render(self, context): original_querystring = self.original_querystring.resolve(context) if isinstance(original_querystring, QueryDict): qs = original_querystring.copy() else: qs = QueryDict(original_querystring, mutable=True) qs.pop("page", None) key = self.key val = self.value if not (key[0] == key[-1] == '"'): key = Variable(key).resolve(context) else: key = key.strip('"') if not (val[0] == val[-1] == '"'): val = Variable(val).resolve(context) else: val = val.strip('"') field_values = qs.getlist(key) if self.mode == "add": field_values.append(val) else: if val in field_values: field_values.remove(val) qs.setlist(key, field_values) output = escape(qs.urlencode()) if self.output_variable_name: context[self.output_variable_name] = output else: return output
def folding_fan(context, token): parts = token.split_contents()[1:] fan_name = None for part in parts: part = Variable(part).resolve(context) fan_name = part.strip('/') if fan_name.startswith('blog/category/'): fan_name = "whatsnew" elif fan_name == 'blog': fan_name = "whatsnew" exist = False if fan_name: p = path.join(settings.MEDIA_ROOT, 'uploads', 'fans', '{0}.png'.format(fan_name)) exist = path.exists(p) context['exist'] = exist context['image_url'] = 'media/uploads/fans/{0}.png'.format(fan_name) t = get_template("common/menus/fans.html") return t.render(Context(context))
def render(self, context): base_qs = self.base_qs.resolve(context) if isinstance(base_qs, QueryDict): qs = base_qs.copy() else: qs = QueryDict(base_qs, mutable=True) for arg in self.args: if arg.startswith("delete:"): v = arg[7:] if v in qs: del qs[v] elif arg.startswith("delete_value:"): field, value = arg[13:].split(",", 2) value = Variable(value).resolve(context) if not (field[0] == '"' and field[-1] == '"'): field = Variable(field).resolve(context) else: field = field.strip('"\'') f_list = qs.getlist(field) if value in f_list: f_list.remove(value) qs.setlist(field, f_list) else: k, v = arg.split("=", 2) qs[k] = Variable(v).resolve(context) encoded_qs = escape(qs.urlencode()) if self.as_variable: context[self.as_variable] = encoded_qs return "" else: return encoded_qs