Exemplo n.º 1
0
    def format_static(self,
                      path,
                      locale=None,
                      parameterize=False,
                      fingerprint=None):
        """Format a static document url."""

        params = self.params_pod()
        path = utils.safe_format(path, **params)

        if parameterize:
            path = self.parameterize(path)

        params = {}

        if fingerprint:
            params['fingerprint'] = fingerprint

        locale_alias = self._locale_or_alias(locale)
        if locale_alias:
            params['locale'] = locale_alias

        if params:
            path = utils.safe_format(path, **params)

        return self.strip_double_slash(path)
Exemplo n.º 2
0
    def format_static(self, path, locale=None, parameterize=False):
        """Format a static document url."""

        params = self.params_pod()
        path = utils.safe_format(path, **params)

        if parameterize:
            path = self.parameterize(path)

        params['locale'] = self._locale_or_alias(locale)
        if params['locale']:
            path = utils.safe_format(path, **params)

        return self.strip_double_slash(path)
Exemplo n.º 3
0
 def gettext(__context, __string, **variables):
     """Gettext and do replacement."""
     value = __context.call(func, __string)
     value = utils.safe_format(value, **variables)
     if __context.eval_ctx.autoescape:
         value = jinja2.utils.Markup(value)
     return value
Exemplo n.º 4
0
Arquivo: routes.py Projeto: uxder/grow
    def _dynamic_paths(path, options):
        """Use the path to format using the options to determine all paths."""
        path = RouteTrie.clean_path(path)
        possible_paths = set([path])

        # Check for string formatting.
        if not options or '{' not in path:
            return possible_paths

        for key in options:
            for option in options[key]:
                format_keys = {key: option}
                new_paths = []
                for possible_path in possible_paths:
                    new_paths.append(utils.safe_format(possible_path, **format_keys))
                possible_paths = possible_paths.union(new_paths)

        paths = set()

        # Don't include paths that still have format symbols.
        for possible_path in possible_paths:
            if '{' not in possible_path:
                paths.add(possible_path)

        if not paths:
            raise MissingOptionError(path)

        return paths
Exemplo n.º 5
0
    def format_view(self, doc, path, parameterize=False):
        """Format a URL path using the doc information for views."""
        path = '' if path is None else path

        # Most params should always be replaced.
        params = self.params_pod()
        params['base'] = doc.base
        params['category'] = doc.category
        params['collection'] = structures.AttributeDict(
            base_path=doc.collection_base_path,
            basename=doc.collection.basename,
            root=doc.collection.root)
        params['parent'] = doc.parent if doc.parent else utils.DummyDict()
        params['slug'] = doc.slug

        if isinstance(doc.date, datetime.datetime):
            params['date'] = doc.date.date()
        else:
            params['date'] = doc.date

        if '|lower' in path:
            for key, value in params.items():
                if isinstance(value, basestring):
                    params['{}|lower'.format(key)] = value.lower()

        path = utils.safe_format(path, **params)

        if parameterize:
            path = self.parameterize(path)

        return self.strip_double_slash(path)
Exemplo n.º 6
0
 def ngettext(__context, __singular, __plural, __num, **variables):
     """Gettext and do replacement."""
     variables.setdefault('num', __num)
     value = __context.call(func, __singular, __plural, __num)
     value = utils.safe_format(value, **variables)
     if __context.eval_ctx.autoescape:
         value = jinja2.utils.Markup(value)
     return value
Exemplo n.º 7
0
    def format_pod(self, path, parameterize=False):
        """Format a URL path using the pod information."""
        path = '' if path is None else path

        params = self.params_pod()
        path = utils.safe_format(path, **params)

        if parameterize:
            path = self.parameterize(path)

        return self.strip_double_slash(path)
Exemplo n.º 8
0
    def format_doc(self, doc, path, locale=None, parameterize=False):
        """Format a URL path using the doc information."""
        path = '' if path is None else path

        # Most params should always be replaced.
        params = self.params_pod()
        params.update(self.params_doc(path, doc))
        params = self.params_lower(path, params)

        path = utils.safe_format(path, **params)

        if parameterize:
            path = self.parameterize(path)

        params = {}

        if locale is None:
            locale = doc.locale
        params['locale'] = self._locale_or_alias(locale)

        path = utils.safe_format(path, **params)
        path = self.strip_double_slash(path)
        return self.trailing_slash(doc, path)
Exemplo n.º 9
0
    def format_view(self, doc, path, parameterize=False):
        """Format a URL path using the doc information for views."""
        path = '' if path is None else path

        # Most params should always be replaced.
        params = self.params_pod()
        params.update(self.params_doc(path, doc))
        params = self.params_lower(path, params)

        path = utils.safe_format(path, **params)

        if parameterize:
            path = self.parameterize(path)

        return self.strip_double_slash(path)