[ckan-changes] [ckan/ckan] 2ca617: [#3196] Common request object for Flask and Pylons

GitHub noreply at github.com
Wed Jan 4 19:18:41 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/ckan/ckan
  Commit: 2ca6171a0610b71e63ea76f1dae2f45df04f548a
      https://github.com/ckan/ckan/commit/2ca6171a0610b71e63ea76f1dae2f45df04f548a
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M ckan/common.py
    M ckan/tests/test_common.py

  Log Message:
  -----------
  [#3196] Common request object for Flask and Pylons

A new CKAN Request object based on Werkzeug's LocalProxy that will forward
to Flask or Pylons own request objects depending on the output of
`_get_request` (which essentially calls `is_flask_request`), and at the
same time provide all objects methods to be able to interact with them
transparently.

We don't use LocalProxy directly so we can handle the special case of
accessing query string parameters via `request.params` on Flask (which
uses `request.args`). All new Flask-only code should use `args` but for
backwards compatibility we will support `params` for a while.


  Commit: 5337b1e4b6dc669fbad9b40678c149cdd230bc8d
      https://github.com/ckan/ckan/commit/5337b1e4b6dc669fbad9b40678c149cdd230bc8d
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-10 (Wed, 10 Aug 2016)

  Changed paths:
    M ckan/common.py

  Log Message:
  -----------
  Better request check and params property


  Commit: 4d2425450b1fa2cda063ba0e02b5b9a40eeae271
      https://github.com/ckan/ckan/commit/4d2425450b1fa2cda063ba0e02b5b9a40eeae271
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-10 (Wed, 10 Aug 2016)

  Changed paths:
    M ckan/common.py

  Log Message:
  -----------
  [#3196] Simplify request params property


  Commit: c087a72d77daf0f5c7068477231c649af8eecce9
      https://github.com/ckan/ckan/commit/c087a72d77daf0f5c7068477231c649af8eecce9
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-11 (Thu, 11 Aug 2016)

  Changed paths:
    M ckan/controllers/feed.py
    M ckan/controllers/group.py
    M ckan/controllers/home.py
    M ckan/controllers/package.py
    M ckan/controllers/user.py
    M ckan/lib/base.py
    M ckan/lib/helpers.py

  Log Message:
  -----------
  [#3196] Remove usages of g outside templates


  Commit: eab36be298ddb1ae39347468fbe13bad9c3b086b
      https://github.com/ckan/ckan/commit/eab36be298ddb1ae39347468fbe13bad9c3b086b
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-11 (Thu, 11 Aug 2016)

  Changed paths:
    M ckan/common.py

  Log Message:
  -----------
  [#3196] Replace Pylons' g and c with a proxy

To either Flask's `g` or Pylons `c` depending on who serves the request.

Pylons' `g` is no longer used.


  Commit: 4112496f601ec2331a2bf414617341639ff06145
      https://github.com/ckan/ckan/commit/4112496f601ec2331a2bf414617341639ff06145
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-11 (Thu, 11 Aug 2016)

  Changed paths:
    M ckan/controllers/error.py
    M ckan/lib/maintain.py
    M ckan/lib/plugins.py
    M ckanext/test_tag_vocab_plugin.py

  Log Message:
  -----------
  [#3196] Remove direct c imports from Pylons


  Commit: bfb1ca715c99b3f7bded9d90402fe511c00ae76f
      https://github.com/ckan/ckan/commit/bfb1ca715c99b3f7bded9d90402fe511c00ae76f
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-11 (Thu, 11 Aug 2016)

  Changed paths:
    M ckan/authz.py
    M ckan/config/middleware/flask_app.py
    M ckan/logic/__init__.py

  Log Message:
  -----------
  [#3196] Fall back to app_globals on Flask g

If a property is not found on `g`, check CKAN's own `app_globals`,
where stuff like `g.site_title` is kept.

The default behaviour for Flask's `g` is to raise an AttributeError if
a missing property is accessed. We have kept this behaviour here and
handled a couple of cases where `c` was accessed outside of a request.
This can be reverted to returning an empty string if necessary.


  Commit: 9f1d70b3068bd7401b4d4e48b66ccf496f11c5b1
      https://github.com/ckan/ckan/commit/9f1d70b3068bd7401b4d4e48b66ccf496f11c5b1
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-11 (Thu, 11 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Expose `c` as an alias of `g` in templates

In templates rendered by Flask, for backwards compatibility


  Commit: c5cbcca7d90b8697f468b71b191e0167a9343dd7
      https://github.com/ckan/ckan/commit/c5cbcca7d90b8697f468b71b191e0167a9343dd7
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-12 (Fri, 12 Aug 2016)

  Changed paths:
    M ckan/tests/test_common.py

  Log Message:
  -----------
  [#3196] Add some tests for common context object


  Commit: 7b0cbd6a9979ed91d935f0dc8748ef1974f5505f
      https://github.com/ckan/ckan/commit/7b0cbd6a9979ed91d935f0dc8748ef1974f5505f
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-12 (Fri, 12 Aug 2016)

  Changed paths:
    M ckan/controllers/group.py
    M ckan/controllers/home.py
    M ckan/controllers/package.py
    M ckan/lib/base.py
    M ckan/lib/maintain.py
    M ckan/lib/plugins.py

  Log Message:
  -----------
  [#3196] Remove context related functions from maintain module

`deprecate_context_item` was a bit of a hack, messing with the
underlying object internal methods and hasn't really been used in ages.
It was hard to make work with the current common context object, so it
makes sense to get rid of it.

`defer_context_item` wasn't used anywhere


  Commit: ee12473902f1e29fbbf7dd0d18fce011192860d0
      https://github.com/ckan/ckan/commit/ee12473902f1e29fbbf7dd0d18fce011192860d0
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-16 (Tue, 16 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/config/routing.py
    A ckan/views/__init__.py
    A ckan/views/api.py

  Log Message:
  -----------
  [#3196] Register core blueprints on the Flask app

Automatically go through the `views` folder and register all instances
of Flask's Blueprint. This is done by inspecting all modules on the
folder for the relevant members.

As an example, a new api blueprint has been added, which for now only
handles the root request (`/api`).

See
https://github.com/ckan/ckan/wiki/Migration-from-Pylons-to-Flask#flask-views-blueprints-and-routing
for details on how we will use Blueprints


  Commit: 3f4553024508e2bcbb7aa099db25b5c7083b3bde
      https://github.com/ckan/ckan/commit/3f4553024508e2bcbb7aa099db25b5c7083b3bde
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-16 (Tue, 16 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/plugins/interfaces.py
    M ckan/tests/config/test_middleware.py

  Log Message:
  -----------
  [#3196] Allow extensions to register their blueprints

Extensions can use the IBlueprint interface to register their own
blueprints. The main use case we have for it now is to register custom
routes, but it will also be used to register template folders, resources
etc.

Routes registered from plugins are flagged as such so theu can be
prioritized by the AppDispatcher middleware:

Flask Extension > Pylons Extension > Flask Core > Pylons Core

To do this we use a custom class for the Werkzeug rules used by Flask.

Updated the AppDispatcher tests and the test routing plugin.

All credit for these changes goes to @brook


  Commit: 7c9ca60080f4032a958c6323d20abb9dcbc035f7
      https://github.com/ckan/ckan/commit/7c9ca60080f4032a958c6323d20abb9dcbc035f7
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-16 (Tue, 16 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Make helper functions (`h`) available to Flask templates

Tests incoming


  Commit: ea5382bfb82fc3dce4f4db04fc3618bc1b6a96d0
      https://github.com/ckan/ckan/commit/ea5382bfb82fc3dce4f4db04fc3618bc1b6a96d0
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-16 (Tue, 16 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Add template directory, register Jinja2 extensions

We are registering the same ones as in Pylons, we might want to clean
them up.


  Commit: fb24f718ae6adc4398a43805071c1aa727ac7f1f
      https://github.com/ckan/ckan/commit/fb24f718ae6adc4398a43805071c1aa727ac7f1f
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/tests/config/test_middleware.py
    M dev-requirements.txt

  Log Message:
  -----------
  [#3196] Add DebugToolbar to the Flask stack

Similarly to Django debug toolbar, it offers a lot of really useful
information when debugging.

https://flask-debugtoolbar.readthedocs.io

It requires SECRET_KEY to be set up, which we will need for the sessions
anyway. As with the repoze.who auth token, we fall back to
`beaker.session.secret` if it's not present.


  Commit: f3f6fb07828fd88701a4bfc218f4bd674fac576d
      https://github.com/ckan/ckan/commit/f3f6fb07828fd88701a4bfc218f4bd674fac576d
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/tests/helpers.py
    M test-core.ini

  Log Message:
  -----------
  [#3196] Add a new testing config option

Flask behaves differently if TESTING is True, eg not capturing
exceptions when serving a page, which is the behaviour we have in the
Pylons tests.


  Commit: a887c04550873cb0d2acdf0af9537cc34ce06887
      https://github.com/ckan/ckan/commit/a887c04550873cb0d2acdf0af9537cc34ce06887
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M CHANGELOG.rst
    M ckan/__init__.py
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/i18n/ar/LC_MESSAGES/ckan.mo
    M ckan/i18n/bg/LC_MESSAGES/ckan.mo
    M ckan/i18n/ca/LC_MESSAGES/ckan.mo
    M ckan/i18n/cs_CZ/LC_MESSAGES/ckan.mo
    M ckan/i18n/da_DK/LC_MESSAGES/ckan.mo
    M ckan/i18n/de/LC_MESSAGES/ckan.mo
    M ckan/i18n/el/LC_MESSAGES/ckan.mo
    M ckan/i18n/en_AU/LC_MESSAGES/ckan.mo
    M ckan/i18n/en_GB/LC_MESSAGES/ckan.mo
    M ckan/i18n/es/LC_MESSAGES/ckan.mo
    M ckan/i18n/es_AR/LC_MESSAGES/ckan.mo
    M ckan/i18n/fa_IR/LC_MESSAGES/ckan.mo
    M ckan/i18n/fi/LC_MESSAGES/ckan.mo
    M ckan/i18n/fi/LC_MESSAGES/ckan.po
    M ckan/i18n/fr/LC_MESSAGES/ckan.mo
    M ckan/i18n/he/LC_MESSAGES/ckan.mo
    M ckan/i18n/hr/LC_MESSAGES/ckan.mo
    M ckan/i18n/hu/LC_MESSAGES/ckan.mo
    M ckan/i18n/id/LC_MESSAGES/ckan.mo
    M ckan/i18n/is/LC_MESSAGES/ckan.mo
    M ckan/i18n/is/LC_MESSAGES/ckan.po
    M ckan/i18n/it/LC_MESSAGES/ckan.mo
    M ckan/i18n/ja/LC_MESSAGES/ckan.mo
    M ckan/i18n/km/LC_MESSAGES/ckan.mo
    M ckan/i18n/ko_KR/LC_MESSAGES/ckan.mo
    M ckan/i18n/lt/LC_MESSAGES/ckan.mo
    M ckan/i18n/lv/LC_MESSAGES/ckan.mo
    M ckan/i18n/mn_MN/LC_MESSAGES/ckan.mo
    M ckan/i18n/ne/LC_MESSAGES/ckan.po
    M ckan/i18n/nl/LC_MESSAGES/ckan.mo
    M ckan/i18n/nl/LC_MESSAGES/ckan.po
    M ckan/i18n/no/LC_MESSAGES/ckan.mo
    M ckan/i18n/no/LC_MESSAGES/ckan.po
    M ckan/i18n/pl/LC_MESSAGES/ckan.mo
    M ckan/i18n/pt_BR/LC_MESSAGES/ckan.mo
    M ckan/i18n/pt_PT/LC_MESSAGES/ckan.mo
    M ckan/i18n/pt_PT/LC_MESSAGES/ckan.po
    M ckan/i18n/ro/LC_MESSAGES/ckan.mo
    M ckan/i18n/ru/LC_MESSAGES/ckan.mo
    M ckan/i18n/sk/LC_MESSAGES/ckan.mo
    M ckan/i18n/sl/LC_MESSAGES/ckan.mo
    M ckan/i18n/sq/LC_MESSAGES/ckan.mo
    M ckan/i18n/sr/LC_MESSAGES/ckan.mo
    M ckan/i18n/sr_Latn/LC_MESSAGES/ckan.mo
    M ckan/i18n/sv/LC_MESSAGES/ckan.mo
    M ckan/i18n/th/LC_MESSAGES/ckan.mo
    A ckan/i18n/tl/LC_MESSAGES/ckan.mo
    A ckan/i18n/tl/LC_MESSAGES/ckan.po
    M ckan/i18n/tr/LC_MESSAGES/ckan.mo
    M ckan/i18n/uk_UA/LC_MESSAGES/ckan.mo
    M ckan/i18n/uk_UA/LC_MESSAGES/ckan.po
    M ckan/i18n/vi/LC_MESSAGES/ckan.mo
    M ckan/i18n/zh_CN/LC_MESSAGES/ckan.mo
    M ckan/i18n/zh_CN/LC_MESSAGES/ckan.po
    M ckan/i18n/zh_TW/LC_MESSAGES/ckan.mo
    M ckan/lib/cli.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/mailer.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/public/base/css/main.css
    M ckan/public/base/less/module.less
    M ckan/tests/controllers/test_package.py
    M ckan/tests/lib/test_mailer.py
    M ckan/tests/logic/action/test_get.py
    M ckan/tests/logic/action/test_update.py
    M ckanext/reclineview/plugin.py
    M ckanext/reclineview/theme/public/css/recline.css
    M ckanext/reclineview/theme/public/recline_view.js
    M ckanext/reclineview/theme/public/resource.config
    R ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/bootstrap.js
    R ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/css/bootstrap-responsive.css
    R ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/css/bootstrap.css
    R ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/img/glyphicons-halflings-white.png
    R ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/img/glyphicons-halflings.png
    A ckanext/reclineview/theme/public/vendor/bootstrap/3.2.0/css/bootstrap-theme.css
    A ckanext/reclineview/theme/public/vendor/bootstrap/3.2.0/css/bootstrap.css
    A ckanext/reclineview/theme/public/vendor/bootstrap/3.2.0/fonts/glyphicons-halflings-regular.eot
    A ckanext/reclineview/theme/public/vendor/bootstrap/3.2.0/fonts/glyphicons-halflings-regular.svg
    A ckanext/reclineview/theme/public/vendor/bootstrap/3.2.0/fonts/glyphicons-halflings-regular.ttf
    A ckanext/reclineview/theme/public/vendor/bootstrap/3.2.0/fonts/glyphicons-halflings-regular.woff
    A ckanext/reclineview/theme/public/vendor/bootstrap/3.2.0/js/bootstrap.js
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster-src.js
    A ckanext/reclineview/theme/public/vendor/recline/flot.css
    A ckanext/reclineview/theme/public/vendor/recline/map.css
    M ckanext/reclineview/theme/public/vendor/recline/recline.js
    A ckanext/reclineview/theme/public/vendor/recline/slickgrid.css
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/MIT-LICENSE.txt
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/README.txt
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/images/calendar.gif
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/images/sort-asc.gif
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/images/sort-desc.gif
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/jquery-ui-1.8.16.custom.js
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/jquery-ui-1.8.16.custom.min.js
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/jquery.event.drag-2.0.js
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/jquery.event.drag-2.0.min.js
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/plugins/slick.rowmovemanager.js
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/plugins/slick.rowselectionmodel.js
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/slick.grid.css
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/slick.grid.js
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/slick.grid.min.css
    R ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/slick.grid.min.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/MIT-LICENSE.txt
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/README.md
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/controls/slick.columnpicker.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/controls/slick.columnpicker.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/controls/slick.pager.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/controls/slick.pager.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_222222_256x240.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_2e83ff_256x240.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_454545_256x240.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_888888_256x240.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_cd0a0a_256x240.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/jquery-ui-1.8.16.custom.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/actions.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/ajax-loader-small.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/arrow_redo.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/arrow_right_peppermint.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/arrow_right_spearmint.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/arrow_undo.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/bullet_blue.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/bullet_star.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/bullet_toggle_minus.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/bullet_toggle_plus.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/calendar.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/collapse.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/comment_yellow.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/down.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/drag-handle.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/editor-helper-bg.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/expand.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/header-bg.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/header-columns-bg.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/header-columns-over-bg.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/help.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/info.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/listview.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/pencil.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/row-over-bg.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/sort-asc.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/sort-asc.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/sort-desc.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/sort-desc.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/stripes.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/tag_red.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/tick.png
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/user_identity.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/user_identity_plus.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/jquery-1.7.min.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/jquery-ui-1.8.16.custom.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/jquery.event.drag-2.2.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/jquery.event.drop-2.2.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.autotooltips.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.cellcopymanager.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.cellrangedecorator.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.cellrangeselector.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.cellselectionmodel.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.checkboxselectcolumn.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.headerbuttons.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.headerbuttons.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.headermenu.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.headermenu.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.rowmovemanager.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/plugins/slick.rowselectionmodel.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick-default-theme.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick.core.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick.dataview.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick.editors.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick.formatters.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick.grid.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick.grid.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick.groupitemmetadataprovider.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.2/slick.remotemodel.js
    A ckanext/reclineview/theme/public/vendor/timeline/LICENSE
    A ckanext/reclineview/theme/public/vendor/timeline/README
    M ckanext/reclineview/theme/templates/recline_view.html
    M doc/maintaining/configuration.rst
    M doc/maintaining/data-viewer.rst
    M doc/maintaining/installing/install-from-package.rst

  Log Message:
  -----------
  Merge branch 'master' into 3196-blueprints-and-templates


  Commit: 663b9995567ed4402c199f41cd3afd38d98faf7e
      https://github.com/ckan/ckan/commit/663b9995567ed4402c199f41cd3afd38d98faf7e
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/tests/config/test_middleware.py
    M ckan/tests/helpers.py
    M dev-requirements.txt
    M test-core.ini

  Log Message:
  -----------
  Merge branch '3196-flask-debug-and-testing' into 3196-blueprints-and-templates

Conflicts:
	ckan/config/middleware/flask_app.py


  Commit: b92edd63b4f8f8cb876264900490fa490c394c74
      https://github.com/ckan/ckan/commit/b92edd63b4f8f8cb876264900490fa490c394c74
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    A ckanext/example_flask_iblueprint/__init__.py
    A ckanext/example_flask_iblueprint/plugin.py
    A ckanext/example_flask_iblueprint/templates/about.html
    A ckanext/example_flask_iblueprint/templates/about_base.html
    A ckanext/example_flask_iblueprint/tests/__init__.py
    A ckanext/example_flask_iblueprint/tests/test_routes.py

  Log Message:
  -----------
  [#3196] Add IBlueprint example

Showint how to register custom routes and how these affect ones on core.
Also tests helpers on templates.


  Commit: f7196efdbdcb674c98da5013f2bbabd6f7f00535
      https://github.com/ckan/ckan/commit/f7196efdbdcb674c98da5013f2bbabd6f7f00535
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M ckan/views/api.py

  Log Message:
  -----------
  [#3196] Add missing url rule in api view


  Commit: d1a8f24599c43a63c039a671f9696e5575248745
      https://github.com/ckan/ckan/commit/d1a8f24599c43a63c039a671f9696e5575248745
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-18 (Thu, 18 Aug 2016)

  Changed paths:
    M setup.py

  Log Message:
  -----------
  [#3196] Add missing plugin definition in setup.py


  Commit: ffa526c817792cf9f96447bf90bb05af468b4713
      https://github.com/ckan/ckan/commit/ffa526c817792cf9f96447bf90bb05af468b4713
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-19 (Fri, 19 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/tests/config/test_middleware.py

  Log Message:
  -----------
  [#3196] Add Fanstatic middleware to Flask

Hopefully just temporarily until we can replace it with something
better. This will be tested further on went the url_for stuff is
avaiable as well.

Changed wrong reference in a test


  Commit: ed747496ee61eb1fdca2bf77fa28af600b8a4f58
      https://github.com/ckan/ckan/commit/ed747496ee61eb1fdca2bf77fa28af600b8a4f58
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-22 (Mon, 22 Aug 2016)

  Changed paths:
    M ckan/lib/helpers.py
    M ckan/tests/controllers/test_tags.py
    M ckan/tests/controllers/test_util.py

  Log Message:
  -----------
  [#3194] Ensure that relative redirects use the host on ckan.site_url

Conflicts:
	ckan/lib/helpers.py


  Commit: 53490115ce2c98e6e9bd0a45342e7943df4713dc
      https://github.com/ckan/ckan/commit/53490115ce2c98e6e9bd0a45342e7943df4713dc
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-22 (Mon, 22 Aug 2016)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  [#3194] Support both Flask and Pylons redirects


  Commit: bddd7b5298e2724114278b309333fcc5c0378cd8
      https://github.com/ckan/ckan/commit/bddd7b5298e2724114278b309333fcc5c0378cd8
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/controllers/api.py
    M ckan/lib/base.py
    M ckan/tests/controllers/test_package.py
    M ckan/views/__init__.py

  Log Message:
  -----------
  [#3196] Move user identify logic to a separate module

So it can be reused by Flask requests handlers and Pylons base
controllers


  Commit: ac207b1691d45976b2d637edecf84394219c76db
      https://github.com/ckan/ckan/commit/ac207b1691d45976b2d637edecf84394219c76db
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/tests/config/test_middleware.py

  Log Message:
  -----------
  [#3194] Call indentify_user logic on all Flask requests

Using a Flask before_request handler. Added tests.

All credit goes to @brew


  Commit: 1683727fce578d05e0c581adbe0d22ea489673fd
      https://github.com/ckan/ckan/commit/1683727fce578d05e0c581adbe0d22ea489673fd
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/lib/base.py
    M ckan/tests/lib/test_base.py
    M ckan/views/__init__.py

  Log Message:
  -----------
  [#3196] CORS headers added to Flask responses.

The method to set CORS headers moved to `views` module and CKAN core
refactored to import and use it.

Original commit by @brew (77a436eb)


  Commit: 15d16bc2b11c4eb0cbe459352f356d945b6f5077
      https://github.com/ckan/ckan/commit/15d16bc2b11c4eb0cbe459352f356d945b6f5077
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Add request timer for Flask requests

Times between before_request and after_request and outputs to log level
info


  Commit: 6cbe198f3f3333a9ef845b7e06ce1e3595b8ddf0
      https://github.com/ckan/ckan/commit/6cbe198f3f3333a9ef845b7e06ce1e3595b8ddf0
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/lib/base.py
    M ckan/views/__init__.py

  Log Message:
  -----------
  [#3196] Move session cookie check to views module

Used by both base.py and Flask after_request handler.


  Commit: 889978b2d0f62523e673f881bc913baf115f7a31
      https://github.com/ckan/ckan/commit/889978b2d0f62523e673f881bc913baf115f7a31
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Ensure app_globals is up to date for each Flask request


  Commit: 9de80d10f2a36e6188051038e8c9ef36551b07c1
      https://github.com/ckan/ckan/commit/9de80d10f2a36e6188051038e8c9ef36551b07c1
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/views/__init__.py

  Log Message:
  -----------
  [#3196] Remove debugger call, return response object


  Commit: b13e8aca0df9e161ed60adb99a8eb4a5ec31fc26
      https://github.com/ckan/ckan/commit/b13e8aca0df9e161ed60adb99a8eb4a5ec31fc26
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/views/__init__.py

  Log Message:
  -----------
  [#3194] g is not dict


  Commit: 9b0be760e64809457c99b622bcef813ce4c20684
      https://github.com/ckan/ckan/commit/9b0be760e64809457c99b622bcef813ce4c20684
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/controllers/util.py
    M ckan/lib/base.py
    M ckan/tests/helpers.py
    M ckan/tests/legacy/functional/test_user.py
    M ckanext/datapusher/plugin.py
    M ckanext/example_igroupform/tests/test_controllers.py

  Log Message:
  -----------
  Merge branch '3194-fix-redirects' into 3196-common-requests-code


  Commit: a802c130fe2b01478c6dbfcb1ffb29c6e235960b
      https://github.com/ckan/ckan/commit/a802c130fe2b01478c6dbfcb1ffb29c6e235960b
  Author: amercader <amercadero at gmail.com>
  Date:   2016-08-23 (Tue, 23 Aug 2016)

  Changed paths:
    M ckan/views/__init__.py

  Log Message:
  -----------
  [#3196] Fix string literals


  Commit: 7180a9edbdb74ec40f5e6f934c9d8a37dfe2e2ab
      https://github.com/ckan/ckan/commit/7180a9edbdb74ec40f5e6f934c9d8a37dfe2e2ab
  Author: amercader <amercadero at gmail.com>
  Date:   2016-09-15 (Thu, 15 Sep 2016)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/config/middleware/flask_app.py
    M ckan/config/routing.py
    M ckan/controllers/feed.py
    M ckan/i18n/zh_CN/LC_MESSAGES/ckan.po
    M ckan/lib/render.py
    M ckan/lib/search/__init__.py
    R ckan/lib/search/sql.py
    M ckan/public/base/vendor/moment-with-locales.js
    M ckan/tests/controllers/test_feed.py
    R ckan/tests/legacy/lib/test_simple_search.py
    M ckanext/datapusher/cli.py
    M ckanext/example_theme/custom_config_setting/plugin.py
    M ckanext/example_theme/custom_emails/tests.py
    M ckanext/reclineview/plugin.py
    M ckanext/reclineview/theme/templates/recline_view.html
    M doc/contributing/architecture.rst
    M doc/contributing/test.rst
    A doc/images/architecture.png
    A doc/images/architecture.svg
    M doc/maintaining/configuration.rst

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-requests-code

Conflicts:
	ckan/config/middleware/flask_app.py


  Commit: fd39a58e54a2f2f2a63c336f78a9750fcd50be53
      https://github.com/ckan/ckan/commit/fd39a58e54a2f2f2a63c336f78a9750fcd50be53
  Author: amercader <amercadero at gmail.com>
  Date:   2016-09-15 (Thu, 15 Sep 2016)

  Changed paths:
    M ckan/controllers/feed.py

  Log Message:
  -----------
  [#3196] Fix bad merge conflict


  Commit: 87d9da0a47f31a30bfb21cd4d4353ecac718df46
      https://github.com/ckan/ckan/commit/87d9da0a47f31a30bfb21cd4d4353ecac718df46
  Author: amercader <amercadero at gmail.com>
  Date:   2016-09-28 (Wed, 28 Sep 2016)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/config/environment.py
    M ckan/config/resource_formats.json
    R ckan/config/solr/schema-1.2.xml
    R ckan/config/solr/schema-1.3.xml
    R ckan/config/solr/schema-1.4.xml
    R ckan/config/solr/schema-2.0.xml
    M ckan/config/solr/schema.xml
    A ckan/config/supervisor-ckan-worker.conf
    M ckan/lib/celery_app.py
    M ckan/lib/cli.py
    M ckan/lib/formatters.py
    A ckan/lib/jobs.py
    M ckan/lib/plugins.py
    A ckan/lib/redis.py
    M ckan/lib/search/__init__.py
    M ckan/lib/search/index.py
    M ckan/lib/search/query.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/get.py
    M ckan/logic/auth/delete.py
    M ckan/logic/auth/get.py
    M ckan/logic/schema.py
    A ckan/migration/versions/085_adjust_activity_timestamps.py
    M ckan/model/activity.py
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    M ckan/tests/config/test_environment.py
    M ckan/tests/helpers.py
    M ckan/tests/lib/test_cli.py
    A ckan/tests/lib/test_jobs.py
    M ckan/tests/logic/action/test_delete.py
    M ckan/tests/logic/action/test_get.py
    M ckan/tests/test_coding_standards.py
    A ckanext/example_ipermissionlabels/__init__.py
    A ckanext/example_ipermissionlabels/plugin.py
    A ckanext/example_ipermissionlabels/tests/__init__.py
    A ckanext/example_ipermissionlabels/tests/test_example_ipermissionlabels.py
    M doc/api/index.rst
    M doc/contributing/architecture.rst
    M doc/contributing/test.rst
    M doc/extensions/best-practices.rst
    M doc/extensions/custom-config-settings.rst
    M doc/extensions/plugins-toolkit.rst
    M doc/maintaining/authorization.rst
    M doc/maintaining/background-tasks.rst
    M doc/maintaining/configuration.rst
    M doc/maintaining/installing/deployment.rst
    M doc/maintaining/installing/install-from-package.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/paster.rst
    M doc/theming/best-practices.rst
    M doc/theming/javascript.rst
    M doc/theming/templates.rst
    M requirements.in
    M requirements.txt
    M setup.py
    M test-core.ini

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-requests-code

Conflicts:
	ckan/plugins/interfaces.py


  Commit: 8e38f42aaf70199f9756ba55f8118e13941499d5
      https://github.com/ckan/ckan/commit/8e38f42aaf70199f9756ba55f8118e13941499d5
  Author: amercader <amercadero at gmail.com>
  Date:   2016-09-28 (Wed, 28 Sep 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M ckan/plugins/interfaces.py

  Log Message:
  -----------
  [#3196] Add IMiddleware hooks to Flask stack

Clarify what app will you get on the interface docstrings

Conflicts:
	ckan/config/middleware/flask_app.py
	ckan/plugins/interfaces.py


  Commit: f4217002fe752934e8cdde9079015185b1d48d90
      https://github.com/ckan/ckan/commit/f4217002fe752934e8cdde9079015185b1d48d90
  Author: amercader <amercadero at gmail.com>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Remove builtin timer

It is available on the Flask Debug toolbar


  Commit: 82d1ced11251fa0d9cee2078ecc775d2c7cc5009
      https://github.com/ckan/ckan/commit/82d1ced11251fa0d9cee2078ecc775d2c7cc5009
  Author: amercader <amercadero at gmail.com>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Improve blueprint rules detection

Avoid detecting rules from blueprints that start with the same string
(eg `user` and `users`). Better list creation.


  Commit: ee5047de95c9908c0792944b7e63ac46984fee25
      https://github.com/ckan/ckan/commit/ee5047de95c9908c0792944b7e63ac46984fee25
  Author: amercader <amercadero at gmail.com>
  Date:   2016-11-14 (Mon, 14 Nov 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Move handlers to module level functions


  Commit: 93dc635c90b96693da096ae06c57b9d123b79c37
      https://github.com/ckan/ckan/commit/93dc635c90b96693da096ae06c57b9d123b79c37
  Author: amercader <amercadero at gmail.com>
  Date:   2016-11-14 (Mon, 14 Nov 2016)

  Changed paths:
    M ckan/config/middleware/flask_app.py

  Log Message:
  -----------
  [#3196] Simplify add core blueprint function as per @TkTech advice


  Commit: 2180b83f093dcb112c9580d988ae1a4e6497ceec
      https://github.com/ckan/ckan/commit/2180b83f093dcb112c9580d988ae1a4e6497ceec
  Author: amercader <amercadero at gmail.com>
  Date:   2016-11-14 (Mon, 14 Nov 2016)

  Changed paths:
    M .gitattributes
    M CHANGELOG.rst
    M ckan/config/routing.py
    M ckan/controllers/feed.py
    M ckan/controllers/template.py
    M ckan/i18n/ar/LC_MESSAGES/ckan.mo
    M ckan/i18n/ar/LC_MESSAGES/ckan.po
    M ckan/i18n/bg/LC_MESSAGES/ckan.mo
    M ckan/i18n/bg/LC_MESSAGES/ckan.po
    M ckan/i18n/ca/LC_MESSAGES/ckan.mo
    M ckan/i18n/ca/LC_MESSAGES/ckan.po
    M ckan/i18n/ckan.pot
    M ckan/i18n/cs_CZ/LC_MESSAGES/ckan.mo
    M ckan/i18n/cs_CZ/LC_MESSAGES/ckan.po
    M ckan/i18n/da_DK/LC_MESSAGES/ckan.mo
    M ckan/i18n/da_DK/LC_MESSAGES/ckan.po
    M ckan/i18n/de/LC_MESSAGES/ckan.mo
    M ckan/i18n/de/LC_MESSAGES/ckan.po
    M ckan/i18n/el/LC_MESSAGES/ckan.mo
    M ckan/i18n/el/LC_MESSAGES/ckan.po
    M ckan/i18n/en_AU/LC_MESSAGES/ckan.mo
    M ckan/i18n/en_AU/LC_MESSAGES/ckan.po
    M ckan/i18n/en_GB/LC_MESSAGES/ckan.mo
    M ckan/i18n/en_GB/LC_MESSAGES/ckan.po
    M ckan/i18n/es/LC_MESSAGES/ckan.mo
    M ckan/i18n/es/LC_MESSAGES/ckan.po
    M ckan/i18n/es_AR/LC_MESSAGES/ckan.mo
    M ckan/i18n/es_AR/LC_MESSAGES/ckan.po
    M ckan/i18n/fa_IR/LC_MESSAGES/ckan.mo
    M ckan/i18n/fa_IR/LC_MESSAGES/ckan.po
    M ckan/i18n/fi/LC_MESSAGES/ckan.mo
    M ckan/i18n/fi/LC_MESSAGES/ckan.po
    M ckan/i18n/fr/LC_MESSAGES/ckan.mo
    M ckan/i18n/fr/LC_MESSAGES/ckan.po
    M ckan/i18n/he/LC_MESSAGES/ckan.mo
    M ckan/i18n/he/LC_MESSAGES/ckan.po
    M ckan/i18n/hr/LC_MESSAGES/ckan.mo
    M ckan/i18n/hr/LC_MESSAGES/ckan.po
    M ckan/i18n/hu/LC_MESSAGES/ckan.mo
    M ckan/i18n/hu/LC_MESSAGES/ckan.po
    M ckan/i18n/id/LC_MESSAGES/ckan.mo
    M ckan/i18n/id/LC_MESSAGES/ckan.po
    M ckan/i18n/is/LC_MESSAGES/ckan.mo
    M ckan/i18n/is/LC_MESSAGES/ckan.po
    M ckan/i18n/it/LC_MESSAGES/ckan.mo
    M ckan/i18n/it/LC_MESSAGES/ckan.po
    M ckan/i18n/ja/LC_MESSAGES/ckan.mo
    M ckan/i18n/ja/LC_MESSAGES/ckan.po
    M ckan/i18n/km/LC_MESSAGES/ckan.mo
    M ckan/i18n/km/LC_MESSAGES/ckan.po
    M ckan/i18n/ko_KR/LC_MESSAGES/ckan.mo
    M ckan/i18n/ko_KR/LC_MESSAGES/ckan.po
    M ckan/i18n/lt/LC_MESSAGES/ckan.mo
    M ckan/i18n/lt/LC_MESSAGES/ckan.po
    M ckan/i18n/lv/LC_MESSAGES/ckan.mo
    M ckan/i18n/lv/LC_MESSAGES/ckan.po
    M ckan/i18n/mn_MN/LC_MESSAGES/ckan.mo
    M ckan/i18n/mn_MN/LC_MESSAGES/ckan.po
    M ckan/i18n/ne/LC_MESSAGES/ckan.mo
    M ckan/i18n/ne/LC_MESSAGES/ckan.po
    M ckan/i18n/nl/LC_MESSAGES/ckan.mo
    M ckan/i18n/nl/LC_MESSAGES/ckan.po
    M ckan/i18n/no/LC_MESSAGES/ckan.mo
    M ckan/i18n/no/LC_MESSAGES/ckan.po
    M ckan/i18n/pl/LC_MESSAGES/ckan.mo
    M ckan/i18n/pl/LC_MESSAGES/ckan.po
    M ckan/i18n/pt_BR/LC_MESSAGES/ckan.mo
    M ckan/i18n/pt_BR/LC_MESSAGES/ckan.po
    M ckan/i18n/pt_PT/LC_MESSAGES/ckan.mo
    M ckan/i18n/pt_PT/LC_MESSAGES/ckan.po
    M ckan/i18n/ro/LC_MESSAGES/ckan.mo
    M ckan/i18n/ro/LC_MESSAGES/ckan.po
    M ckan/i18n/ru/LC_MESSAGES/ckan.mo
    M ckan/i18n/ru/LC_MESSAGES/ckan.po
    M ckan/i18n/sk/LC_MESSAGES/ckan.mo
    M ckan/i18n/sk/LC_MESSAGES/ckan.po
    M ckan/i18n/sl/LC_MESSAGES/ckan.mo
    M ckan/i18n/sl/LC_MESSAGES/ckan.po
    M ckan/i18n/sq/LC_MESSAGES/ckan.mo
    M ckan/i18n/sq/LC_MESSAGES/ckan.po
    M ckan/i18n/sr/LC_MESSAGES/ckan.mo
    M ckan/i18n/sr/LC_MESSAGES/ckan.po
    M ckan/i18n/sr_Latn/LC_MESSAGES/ckan.mo
    M ckan/i18n/sr_Latn/LC_MESSAGES/ckan.po
    M ckan/i18n/sv/LC_MESSAGES/ckan.mo
    M ckan/i18n/sv/LC_MESSAGES/ckan.po
    M ckan/i18n/th/LC_MESSAGES/ckan.mo
    M ckan/i18n/th/LC_MESSAGES/ckan.po
    M ckan/i18n/tl/LC_MESSAGES/ckan.mo
    M ckan/i18n/tl/LC_MESSAGES/ckan.po
    M ckan/i18n/tr/LC_MESSAGES/ckan.mo
    M ckan/i18n/tr/LC_MESSAGES/ckan.po
    M ckan/i18n/uk_UA/LC_MESSAGES/ckan.mo
    M ckan/i18n/uk_UA/LC_MESSAGES/ckan.po
    M ckan/i18n/vi/LC_MESSAGES/ckan.mo
    M ckan/i18n/vi/LC_MESSAGES/ckan.po
    M ckan/i18n/zh_CN/LC_MESSAGES/ckan.mo
    M ckan/i18n/zh_CN/LC_MESSAGES/ckan.po
    M ckan/i18n/zh_TW/LC_MESSAGES/ckan.mo
    M ckan/i18n/zh_TW/LC_MESSAGES/ckan.po
    M ckan/lib/cli.py
    M ckan/lib/dictization/__init__.py
    M ckan/lib/helpers.py
    M ckan/lib/i18n.py
    M ckan/lib/uploader.py
    M ckan/logic/action/create.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/pastertemplates/template/setup.cfg_tmpl
    M ckan/plugins/interfaces.py
    R ckan/public/robots.txt
    R ckan/templates/ajax_snippets/api_info.html
    M ckan/templates/organization/snippets/organization_item.html
    M ckan/templates/organization/snippets/organization_list.html
    M ckan/templates/package/resource_read.html
    R ckan/templates/package/snippets/data_api_button.html
    A ckan/templates/robots.txt
    M ckan/templates/user/dashboard_organizations.html
    M ckan/tests/controllers/test_feed.py
    A ckan/tests/controllers/test_template.py
    M ckan/tests/logic/action/test_create.py
    M ckan/tests/logic/action/test_delete.py
    M ckan/tests/logic/action/test_get.py
    M ckan/tests/logic/action/test_update.py
    M ckan/tests/test_coding_standards.py
    A ckan/tests/test_robots_txt.py
    M ckanext/datastore/plugin.py
    A ckanext/datastore/templates/ajax_snippets/api_info.html
    A ckanext/datastore/templates/package/resource_read.html
    A ckanext/datastore/templates/package/snippets/data_api_button.html
    M ckanext/reclineview/theme/public/recline_view.js
    M contrib/docker/solr/Dockerfile
    M doc/api/index.rst
    M doc/contributing/release-process.rst
    M doc/maintaining/configuration.rst
    M doc/maintaining/datastore.rst
    M doc/maintaining/index.rst
    M doc/maintaining/installing/install-from-package.rst
    M doc/maintaining/installing/install-from-source.rst
    A doc/maintaining/installing/postgres.rst
    A doc/maintaining/installing/solr.rst
    R doc/maintaining/solr-multicore.rst
    M doc/maintaining/upgrading/index.rst
    A doc/maintaining/upgrading/upgrade-postgres.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-requests-code


  Commit: 9bbe0fc764c2f8b7e0a8af3bb272f48890167b13
      https://github.com/ckan/ckan/commit/9bbe0fc764c2f8b7e0a8af3bb272f48890167b13
  Author: amercader <amercadero at gmail.com>
  Date:   2016-11-15 (Tue, 15 Nov 2016)

  Changed paths:
    M ckan/views/api.py

  Log Message:
  -----------
  [#3196] Remove comments and improve docstrings on api blueprint


  Commit: 535f1b4e01584224399a4cf6b45c499cd03f9553
      https://github.com/ckan/ckan/commit/535f1b4e01584224399a4cf6b45c499cd03f9553
  Author: amercader <amercadero at gmail.com>
  Date:   2016-11-29 (Tue, 29 Nov 2016)

  Changed paths:
    M Dockerfile
    M ckan/common.py
    M ckan/config/environment.py
    M ckan/config/middleware/__init__.py
    M ckan/controllers/api.py
    M ckan/controllers/feed.py
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/controllers/user.py
    M ckan/i18n/check_po_files.py
    M ckan/lib/auth_tkt.py
    M ckan/lib/base.py
    M ckan/lib/celery_app.py
    M ckan/lib/cli.py
    M ckan/lib/helpers.py
    M ckan/lib/i18n.py
    M ckan/lib/munge.py
    M ckan/lib/search/common.py
    M ckan/logic/__init__.py
    M ckan/logic/action/create.py
    M ckan/model/core.py
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit_sphinx_extension.py
    M ckan/tests/controllers/test_user.py
    M ckan/tests/helpers.py
    M ckan/tests/legacy/logic/test_tag_vocab.py
    M ckan/tests/legacy/test_coding_standards.py
    A ckan/tests/lib/_i18n_build_js_translations/ckanext-test_js_translations.pot
    A ckan/tests/lib/_i18n_build_js_translations/de/LC_MESSAGES/ckanext-test_js_translations.po
    M ckan/tests/lib/test_cli.py
    A ckan/tests/lib/test_i18n.py
    M ckan/tests/logic/action/test_create.py
    M ckan/tests/logic/action/test_update.py
    M ckan/tests/logic/auth/test_update.py
    M ckan/tests/logic/test_validators.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/set_permissions.sql
    M ckanext/datastore/tests/test_configure.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/example_idatasetform/plugin_v1.py
    M ckanext/example_idatasetform/plugin_v2.py
    M ckanext/example_idatasetform/plugin_v4.py
    M ckanext/example_igroupform/plugin.py
    M contrib/docker/my_init.d/50_configure
    M contrib/docker/postgresql/Dockerfile
    M dev-requirements.txt
    M doc/contributing/release-process.rst
    M doc/contributing/string-i18n.rst
    M doc/extensions/translating-extensions.rst
    M doc/maintaining/paster.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-requests-code


  Commit: 4a5d82c3b303fb165f8ed3184a56ac78d108fdf7
      https://github.com/ckan/ckan/commit/4a5d82c3b303fb165f8ed3184a56ac78d108fdf7
  Author: amercader <amercadero at gmail.com>
  Date:   2016-11-29 (Tue, 29 Nov 2016)

  Changed paths:
    M ckan/common.py

  Log Message:
  -----------
  Pep 8


  Commit: 21a2b18472cb07d00657fc4c8432a936df047046
      https://github.com/ckan/ckan/commit/21a2b18472cb07d00657fc4c8432a936df047046
  Author: amercader <amercadero at gmail.com>
  Date:   2016-12-06 (Tue, 06 Dec 2016)

  Changed paths:
    M ckan/config/environment.py
    M ckan/config/routing.py
    M ckan/lib/i18n.py
    M ckan/lib/jobs.py
    M ckan/logic/schema.py
    A ckan/public/base/i18n/.gitignore
    R ckan/public/base/i18n/bg.js
    R ckan/public/base/i18n/ca.js
    R ckan/public/base/i18n/cs_CZ.js
    R ckan/public/base/i18n/de.js
    R ckan/public/base/i18n/el.js
    R ckan/public/base/i18n/es.js
    R ckan/public/base/i18n/fi.js
    R ckan/public/base/i18n/fr.js
    R ckan/public/base/i18n/hu.js
    R ckan/public/base/i18n/it.js
    R ckan/public/base/i18n/lt.js
    R ckan/public/base/i18n/lv.js
    R ckan/public/base/i18n/nl.js
    R ckan/public/base/i18n/no.js
    R ckan/public/base/i18n/pl.js
    R ckan/public/base/i18n/pt_BR.js
    R ckan/public/base/i18n/ro.js
    R ckan/public/base/i18n/ru.js
    R ckan/public/base/i18n/sk.js
    R ckan/public/base/i18n/sl.js
    R ckan/public/base/i18n/sq.js
    R ckan/public/base/i18n/sr.js
    R ckan/public/base/i18n/sr_Latn.js
    R ckan/public/base/i18n/sv.js
    R ckan/public/base/i18n/zh_TW.js
    M ckan/public/base/javascript/i18n.js
    M ckan/public/base/javascript/module.js
    M ckan/public/base/javascript/modules/activity-stream.js
    M ckan/public/base/javascript/modules/api-info.js
    M ckan/public/base/javascript/modules/autocomplete.js
    M ckan/public/base/javascript/modules/basic-form.js
    M ckan/public/base/javascript/modules/confirm-action.js
    M ckan/public/base/javascript/modules/custom-fields.js
    M ckan/public/base/javascript/modules/dashboard.js
    M ckan/public/base/javascript/modules/dataset-visibility.js
    M ckan/public/base/javascript/modules/follow.js
    M ckan/public/base/javascript/modules/image-upload.js
    M ckan/public/base/javascript/modules/media-grid.js
    M ckan/public/base/javascript/modules/popover-context.js
    M ckan/public/base/javascript/modules/resource-form.js
    M ckan/public/base/javascript/modules/resource-reorder.js
    M ckan/public/base/javascript/modules/resource-upload-field.js
    M ckan/public/base/javascript/modules/resource-view-embed.js
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/javascript/modules/resource-view-reorder.js
    M ckan/public/base/javascript/modules/slug-preview.js
    M ckan/public/base/javascript/modules/table-selectable-rows.js
    M ckan/public/base/javascript/modules/table-toggle-more.js
    M ckan/public/base/test/index.html
    A ckan/public/base/test/spec/i18n.spec.js
    M ckan/public/base/test/spec/module.spec.js
    M ckan/public/base/test/spec/modules/confirm-action.spec.js
    M ckan/public/base/test/spec/sandbox.spec.js
    M ckan/templates/admin/config.html
    M ckan/templates/group/member_new.html
    M ckan/templates/group/members.html
    M ckan/templates/group/snippets/group_form.html
    M ckan/templates/organization/member_new.html
    M ckan/templates/organization/members.html
    M ckan/templates/organization/snippets/organization_form.html
    M ckan/templates/package/snippets/package_form.html
    M ckan/templates/package/snippets/resource_form.html
    M ckan/templates/user/edit_user_form.html
    M ckanext/datapusher/tests/test.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/example_theme/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    M ckanext/example_theme/v17_popover/fanstatic/example_theme_popover.js
    M ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    M ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.js
    M ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.js
    M ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.js
    M ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    M ckanext/reclineview/theme/public/recline_view.js
    M ckanext/stats/public/ckanext/stats/javascript/modules/plot.js
    M ckanext/textview/theme/public/text_view.js
    M doc/api/index.rst
    M doc/contributing/frontend/index.rst
    M doc/contributing/frontend/javascript-module-tutorial.rst
    M doc/contributing/frontend/templating.rst
    M doc/contributing/javascript.rst
    M doc/contributing/string-i18n.rst
    M doc/extensions/translating-extensions.rst
    M doc/theming/javascript-module-objects-and-methods.rst
    M doc/user-guide.rst
    M setup.cfg

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-requests-code


  Commit: e5c2ad2baa533245c19dfdd9bf955af687002b30
      https://github.com/ckan/ckan/commit/e5c2ad2baa533245c19dfdd9bf955af687002b30
  Author: amercader <amercadero at gmail.com>
  Date:   2016-12-12 (Mon, 12 Dec 2016)

  Changed paths:
    M ckan/lib/cli.py
    M ckan/logic/action/get.py
    M ckan/model/__init__.py
    M ckan/public/base/javascript/main.js
    M ckan/tests/logic/action/test_get.py
    M ckanext/datastore/logic/action.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-requests-code


  Commit: 47d878e82678f24e7af0aff6773c396c32dd72b0
      https://github.com/ckan/ckan/commit/47d878e82678f24e7af0aff6773c396c32dd72b0
  Author: amercader <amercadero at gmail.com>
  Date:   2017-01-03 (Tue, 03 Jan 2017)

  Changed paths:
    M ckan/controllers/group.py
    M ckan/lib/helpers.py
    M ckan/logic/auth/create.py
    M ckan/model/system_info.py
    M ckan/tests/legacy/functional/api/test_activity.py
    M ckan/tests/lib/test_helpers.py
    M ckan/tests/lib/test_jobs.py
    M ckanext/datastore/controller.py
    M doc/extensions/tutorial.rst
    M doc/maintaining/configuration.rst

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-requests-code


  Commit: fbe614dc3ba83ec91b9fbadf9f7f887ebc0b43d6
      https://github.com/ckan/ckan/commit/fbe614dc3ba83ec91b9fbadf9f7f887ebc0b43d6
  Author: amercader <amercadero at gmail.com>
  Date:   2017-01-04 (Wed, 04 Jan 2017)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/lib/i18n.py
    M ckan/logic/action/update.py
    M ckan/model/dashboard.py
    M ckan/public/base/images/background-tag-ie7.png
    M ckan/public/base/images/background-tag.png
    M ckan/public/base/images/background-tile.png
    M ckan/public/base/images/bg.png
    M ckan/public/base/images/breadcrumb-slash-ie7.png
    M ckan/public/base/images/ckan-logo-footer.png
    M ckan/public/base/images/ckan-logo.png
    M ckan/public/base/images/dashboard-followee-related.png
    M ckan/public/base/images/dotted.png
    M ckan/public/base/images/editing.png
    M ckan/public/base/images/full-width-nav-right.png
    M ckan/public/base/images/icon-search-27x26.png
    M ckan/public/base/images/nav-active.png
    M ckan/public/base/images/nav.png
    M ckan/public/base/images/od_80x15_blue.png
    M ckan/public/base/images/placeholder-200x125.png
    M ckan/public/base/images/placeholder-420x220.png
    M ckan/public/base/images/placeholder-680x400.png
    M ckan/public/base/images/placeholder-application.png
    M ckan/public/base/images/placeholder-group.png
    M ckan/public/base/images/placeholder-image.png
    M ckan/public/base/images/placeholder-organization.png
    M ckan/public/base/images/sprite-ckan-icons.png
    M ckan/public/base/images/sprite-resource-icons.png
    M ckan/public/base/images/table-seperator.png
    M ckan/public/base/vendor/bootstrap/img/glyphicons-halflings-white.png
    M ckan/public/base/vendor/bootstrap/img/glyphicons-halflings.png
    M ckan/public/base/vendor/select2/select2.png
    M ckan/public/base/vendor/select2/select2x2.png
    M ckan/tests/lib/_i18n_build_js_translations/de/LC_MESSAGES/ckanext-test_js_translations.po
    M ckan/tests/lib/test_base.py
    M ckan/views/__init__.py
    M ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    M ckanext/imageview/plugin.py
    M ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers-2x.png
    M ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers.png
    M ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon-2x.png
    M ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-shadow.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_222222_256x240.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_2e83ff_256x240.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_454545_256x240.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_888888_256x240.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/css/smoothness/images/ui-icons_cd0a0a_256x240.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/arrow_redo.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/arrow_right_peppermint.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/arrow_right_spearmint.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/arrow_undo.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/bullet_blue.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/bullet_star.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/drag-handle.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/help.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/sort-asc.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/sort-desc.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/stripes.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/tag_red.png
    M ckanext/reclineview/theme/public/vendor/slickgrid/2.2/images/tick.png
    M ckanext/reclineview/theme/public/vendor/timeline/css/timeline.png
    M ckanext/reclineview/theme/public/vendor/timeline/css/timeline at 2x.png
    M doc/_static/ckanlogo.png
    M doc/images/9.png
    M doc/images/add_dataset_1.jpg
    M doc/images/add_dataset_2.jpg
    M doc/images/add_dataset_3.jpg
    M doc/images/architecture.png
    M doc/images/ckan_importing_diagram.png
    M doc/images/create_organization.jpg
    M doc/images/custom-css.png
    M doc/images/custom_config_fields.png
    M doc/images/customize_look_and_feel.jpg
    M doc/images/debug-footer.png
    M doc/images/edit_dataset.jpg
    M doc/images/example_theme_javascript_popover.png
    M doc/images/example_theme_overlapping_popovers.png
    M doc/images/exploring_datasets.jpg
    M doc/images/extra-public-dir.png
    M doc/images/html_and_css.png
    M doc/images/image_view.png
    M doc/images/manage_news_feed.jpg
    M doc/images/manage_organization.jpg
    M doc/images/manage_user_profile.jpg
    M doc/images/manage_users.jpg
    M doc/images/manage_views.png
    M doc/images/more-custom-css.png
    M doc/images/most-popular-groups-custom-snippet.png
    M doc/images/most-popular-groups-snippet.png
    M doc/images/most-popular-groups.png
    M doc/images/move_dataset_between_organizations.jpg
    M doc/images/popular-dataset.png
    M doc/images/popular-resource.png
    M doc/images/recently-changed-packages-activity-stream.png
    M doc/images/recline_graph_view.png
    M doc/images/recline_grid_view.png
    M doc/images/recline_map_view.png
    M doc/images/recline_view.png
    M doc/images/register_account.jpg
    M doc/images/search_the_site.jpg
    M doc/images/sort-datasets-by-popularity.png
    M doc/images/text_view.png
    M doc/images/views_overview.png
    M doc/images/webpage_view.png
    M doc/maintaining/configuration.rst
    M doc/maintaining/data-viewer.rst

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-requests-code


  Commit: 471bea5ddafd21539c07f93c73d8466f26a7e7b1
      https://github.com/ckan/ckan/commit/471bea5ddafd21539c07f93c73d8466f26a7e7b1
  Author: amercader <amercadero at gmail.com>
  Date:   2017-01-04 (Wed, 04 Jan 2017)

  Changed paths:
    M ckan/views/__init__.py

  Log Message:
  -----------
  [#3378] Change order of debug statement

Otherwise if there is a unicode error it won't get caught before
decoding


  Commit: 87691cc283e06f36489374a0b70a3da3acfeb4e8
      https://github.com/ckan/ckan/commit/87691cc283e06f36489374a0b70a3da3acfeb4e8
  Author: amercader <amercadero at gmail.com>
  Date:   2017-01-04 (Wed, 04 Jan 2017)

  Changed paths:
    M ckan/views/__init__.py

  Log Message:
  -----------
  Prefix literals


  Commit: 47f4edd6ae20e3a9877afc99217b5b807c7cf862
      https://github.com/ckan/ckan/commit/47f4edd6ae20e3a9877afc99217b5b807c7cf862
  Author: Tyler Kennedy <tk at tkte.ch>
  Date:   2017-01-04 (Wed, 04 Jan 2017)

  Changed paths:
    M ckan/authz.py
    M ckan/common.py
    M ckan/config/middleware/flask_app.py
    M ckan/config/routing.py
    M ckan/controllers/api.py
    M ckan/controllers/error.py
    M ckan/controllers/feed.py
    M ckan/controllers/group.py
    M ckan/controllers/home.py
    M ckan/controllers/package.py
    M ckan/controllers/user.py
    M ckan/lib/base.py
    M ckan/lib/helpers.py
    M ckan/lib/maintain.py
    M ckan/lib/plugins.py
    M ckan/logic/__init__.py
    M ckan/plugins/interfaces.py
    M ckan/tests/config/test_middleware.py
    M ckan/tests/controllers/test_package.py
    M ckan/tests/helpers.py
    M ckan/tests/lib/test_base.py
    M ckan/tests/test_common.py
    A ckan/views/__init__.py
    A ckan/views/api.py
    A ckanext/example_flask_iblueprint/__init__.py
    A ckanext/example_flask_iblueprint/plugin.py
    A ckanext/example_flask_iblueprint/templates/about.html
    A ckanext/example_flask_iblueprint/templates/about_base.html
    A ckanext/example_flask_iblueprint/tests/__init__.py
    A ckanext/example_flask_iblueprint/tests/test_routes.py
    M ckanext/test_tag_vocab_plugin.py
    M dev-requirements.txt
    M setup.py
    M test-core.ini

  Log Message:
  -----------
  Merge pull request #3212 from ckan/3196-common-requests-code

[#3196] Common requests code for Flask and Pylons


Compare: https://github.com/ckan/ckan/compare/97da20e7affa...47f4edd6ae20


More information about the ckan-changes mailing list