diff --git a/ckan/controllers/home.py b/ckan/controllers/home.py index be0a97b2625..882868bc457 100644 --- a/ckan/controllers/home.py +++ b/ckan/controllers/home.py @@ -8,7 +8,7 @@ from ckan.lib.base import * from ckan.lib.helpers import url_for -CACHE_PARAMETER = '__cache' +CACHE_PARAMETERS = ['__cache','__no_cache__'] class HomeController(BaseController): repo = model.repo @@ -41,7 +41,7 @@ def index(self): data_dict = { 'q':'*:*', 'facet.field':g.facets, - 'rows':10, + 'rows':4, 'start':0, 'sort':'views_recent desc', 'fq': 'capacity:"public"' diff --git a/ckan/controllers/package.py b/ckan/controllers/package.py index 3549174a7f6..2ad2f9046c2 100644 --- a/ckan/controllers/package.py +++ b/ckan/controllers/package.py @@ -22,7 +22,7 @@ import ckan.rating import ckan.misc import ckan.lib.accept as accept -from home import CACHE_PARAMETER +from home import CACHE_PARAMETERS from ckan.lib.plugins import lookup_package_plugin @@ -450,7 +450,7 @@ def new(self, data=None, errors=None, error_summary=None): return self._save_new(context) data = data or clean_dict(unflatten(tuplize_dict(parse_params( - request.params, ignore_keys=[CACHE_PARAMETER])))) + request.params, ignore_keys=CACHE_PARAMETERS)))) c.resources_json = json.dumps(data.get('resources',[])) errors = errors or {} diff --git a/ckan/controllers/user.py b/ckan/controllers/user.py index c1b81dc3070..32edcf09ebf 100644 --- a/ckan/controllers/user.py +++ b/ckan/controllers/user.py @@ -286,7 +286,8 @@ def login(self): g.openid_enabled = False if not c.user: - c.login_handler = h.url_for(self._get_repoze_handler('login_handler_path')) + came_from = request.params.get('came_from', '') + c.login_handler = h.url_for(self._get_repoze_handler('login_handler_path'), came_from=came_from) return render('user/login.html') else: return render('user/logout_first.html') @@ -295,6 +296,7 @@ def logged_in(self): # we need to set the language via a redirect lang = session.pop('lang', None) session.save() + came_from = request.params.get('came_from', '') if c.user: context = {'model': model, 'user': c.user} @@ -304,13 +306,15 @@ def logged_in(self): user_dict = get_action('user_show')(context,data_dict) h.flash_success(_("%s is now logged in") % user_dict['display_name']) + if came_from: + return h.redirect_to(str(came_from)) return self.me(locale=lang) else: err = _('Login failed. Bad username or password.') if g.openid_enabled: err += _(' (Or if using OpenID, it hasn\'t been associated with a user account.)') h.flash_error(err) - h.redirect_to(locale=lang, controller='user', action='login') + h.redirect_to(locale=lang, controller='user', action='login', came_from=came_from) def logout(self): # save our language in the session so we don't lose it diff --git a/ckan/lib/jinja_tags.py b/ckan/lib/jinja_tags.py index c65e3baf10d..80f27afc706 100644 --- a/ckan/lib/jinja_tags.py +++ b/ckan/lib/jinja_tags.py @@ -6,6 +6,11 @@ class BaseExtension(Extension): + ''' Base class for creating custom jinja2 tags. + parse expects a tag of the format + {% tag_name args, kw %} + after parsing it will call _call(args, kw) which must be defined. ''' + def parse(self, parser): stream = parser.stream tag = stream.next() @@ -37,7 +42,7 @@ class SnippetExtension(BaseExtension): {% snippet [, =].. %} - This is mostly magic.. + see lib.helpers.snippet() for more details. ''' tags = set(['snippet']) @@ -50,7 +55,10 @@ def _call(cls, args, kwargs): class UrlForExtension(BaseExtension): ''' Custom url_for tag + {% url_for %} + + see lib.helpers.url_for() for more details. ''' tags = set(['url_for']) @@ -62,7 +70,10 @@ def _call(cls, args, kwargs): class LinkForExtension(BaseExtension): ''' Custom link_for tag - {% url_for %} + + {% link_for %} + + see lib.helpers.nav_link() for more details. ''' tags = set(['link_for']) diff --git a/ckan/templates/home/index.html b/ckan/templates/home/index.html index 3209643190d..f09999cd3a1 100644 --- a/ckan/templates/home/index.html +++ b/ckan/templates/home/index.html @@ -40,7 +40,7 @@

{{ _("This is a featured section") }}

-