Exemplo n.º 1
0
    def render(self, context):
        try:
            source = self.src.resolve(context)
        except VariableDoesNotExist:
            return None

        if self.version_prefix:
            version_prefix = self.version_prefix
        else:
            try:
                version_prefix = self.version_prefix_var.resolve(context)
            except VariableDoesNotExist:
                return None

        try:
            version_path = _get_version_path(_url_to_path(str(source)), version_prefix)
            if not os.path.isfile(os.path.join(MEDIA_ROOT, version_path)):
                # create version
                version_path = _version_generator(_url_to_path(str(source)), version_prefix)
            elif os.path.getmtime(os.path.join(MEDIA_ROOT, _url_to_path(str(source)))) > os.path.getmtime(os.path.join(MEDIA_ROOT, version_path)):
                # recreate version if original image was updated
                version_path = _version_generator(_url_to_path(str(source)), version_prefix, force=True)
            return _path_to_url(version_path)
        except Exception:
            logger.exception("Version error")
            return u""
Exemplo n.º 2
0
def versions(request):
    """
    Show all Versions for an Image according to ADMIN_VERSIONS.
    """

    # QUERY / PATH CHECK
    query = request.GET
    path = _get_path(query.get('dir', ''))
    filename = _get_file(query.get('dir', ''), query.get('filename', ''))
    if path is None or filename is None:
        msg = _('Directory/File does not exist.')
        request.user.message_set.create(message=msg)
        return HttpResponseRedirect(reverse("fb_browse"))
    abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path)

    return render_to_response('filebrowser/versions.html', {
        'original': _path_to_url(os.path.join(DIRECTORY, path, filename)),
        'query': query,
        'title': _(u'Versions for "%s"') % filename,
        'settings_var': _get_settings_var(),
        'breadcrumbs': _get_breadcrumbs(query, path, _(u'Versions for "%s"') % filename),
    }, context_instance=Context(request))