[ckan-changes] [ckan/ckan] 38551a: Don't a 500 when printing the validation errors.

GitHub noreply at github.com
Tue Jun 27 10:05:35 UTC 2017


  Branch: refs/heads/3196-common-url_for
  Home:   https://github.com/ckan/ckan
  Commit: 38551aa7ad977725339a225ea3b737e7f0f79ff9
      https://github.com/ckan/ckan/commit/38551aa7ad977725339a225ea3b737e7f0f79ff9
  Author: Carl Lange <carl at flax.ie>
  Date:   2016-05-18 (Wed, 18 May 2016)

  Changed paths:
    M ckan/logic/action/create.py
    M ckan/logic/action/update.py

  Log Message:
  -----------
  Don't a 500 when printing the validation errors.

If there's no 'resources' key, or the error is on a different resource,
just prints the base error_dict.


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

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M requirements.in
    M requirements.txt

  Log Message:
  -----------
  [#3196] Add Flask-babel requirement, hook into Flask middleware


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

  Changed paths:
    M ckan/common.py
    M ckan/plugins/toolkit.py

  Log Message:
  -----------
  [#3196] Common translation functions for Flask and Pylons

Wrappers in ckan.common for `_` and `ungettext`. Flask-babel provides
the `gettext` and `ngettext` functions but they really use the unicode
versions internally so they are consitent with the current behaviour. We
ketp the `u...` names.


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

  Changed paths:
    M ckan/lib/base.py
    M ckan/logic/action/__init__.py
    M ckan/logic/auth/delete.py
    M ckan/logic/auth/get.py
    M doc/contributing/string-i18n.rst

  Log Message:
  -----------
  [#3196] Consolidate i18n imports, update docs


  Commit: c5665cd1458701eabbf462694ac546fc44701f1d
      https://github.com/ckan/ckan/commit/c5665cd1458701eabbf462694ac546fc44701f1d
  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-i18n

Conflicts:
	ckan/config/middleware/flask_app.py


  Commit: 050bc795d2f863042c42fa831b86788298430657
      https://github.com/ckan/ckan/commit/050bc795d2f863042c42fa831b86788298430657
  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: d898c12f9cf2a797a11e41cae2f5be3f49956db5
      https://github.com/ckan/ckan/commit/d898c12f9cf2a797a11e41cae2f5be3f49956db5
  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-i18n

Conflicts:
	ckan/plugins/interfaces.py
	requirements.txt


  Commit: db1bfd6ffdf7ecd301ac875c411618a6e8a4e371
      https://github.com/ckan/ckan/commit/db1bfd6ffdf7ecd301ac875c411618a6e8a4e371
  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: d3426abfb4ca0f9677c77434a2894890b4b940ef
      https://github.com/ckan/ckan/commit/d3426abfb4ca0f9677c77434a2894890b4b940ef
  Author: amercader <amercadero at gmail.com>
  Date:   2017-01-05 (Thu, 05 Jan 2017)

  Changed paths:
    M .gitattributes
    M CHANGELOG.rst
    M Dockerfile
    M ckan/config/deployment.ini_tmpl
    M ckan/config/environment.py
    M ckan/config/middleware/__init__.py
    M ckan/config/middleware/flask_app.py
    M ckan/config/routing.py
    M ckan/controllers/api.py
    M ckan/controllers/feed.py
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/controllers/template.py
    M ckan/controllers/user.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/check_po_files.py
    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/auth_tkt.py
    M ckan/lib/base.py
    M ckan/lib/celery_app.py
    M ckan/lib/cli.py
    M ckan/lib/dictization/__init__.py
    M ckan/lib/helpers.py
    M ckan/lib/i18n.py
    M ckan/lib/jobs.py
    M ckan/lib/munge.py
    M ckan/lib/search/common.py
    M ckan/lib/uploader.py
    M ckan/logic/__init__.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/logic/auth/create.py
    M ckan/logic/schema.py
    M ckan/model/__init__.py
    M ckan/model/core.py
    M ckan/model/dashboard.py
    M ckan/model/system_info.py
    M ckan/pastertemplates/template/setup.cfg_tmpl
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit_sphinx_extension.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/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/javascript/i18n.js
    M ckan/public/base/javascript/main.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/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
    R ckan/public/robots.txt
    M ckan/templates/admin/config.html
    R ckan/templates/ajax_snippets/api_info.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/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
    M ckan/templates/package/snippets/package_form.html
    M ckan/templates/package/snippets/resource_form.html
    A ckan/templates/robots.txt
    M ckan/templates/user/dashboard_organizations.html
    M ckan/templates/user/edit_user_form.html
    M ckan/tests/controllers/test_feed.py
    A ckan/tests/controllers/test_template.py
    M ckan/tests/controllers/test_user.py
    M ckan/tests/helpers.py
    M ckan/tests/legacy/functional/api/test_activity.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_base.py
    M ckan/tests/lib/test_cli.py
    M ckan/tests/lib/test_helpers.py
    A ckan/tests/lib/test_i18n.py
    M ckan/tests/lib/test_jobs.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/logic/auth/test_update.py
    M ckan/tests/logic/test_validators.py
    M ckan/tests/test_coding_standards.py
    A ckan/tests/test_robots_txt.py
    M ckan/views/__init__.py
    M ckan/views/api.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/set_permissions.sql
    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/datastore/tests/test_configure.py
    M ckanext/datastore/tests/test_create.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 ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    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/imageview/plugin.py
    M ckanext/reclineview/theme/public/recline_view.js
    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 ckanext/stats/public/ckanext/stats/javascript/modules/plot.js
    M ckanext/textview/theme/public/text_view.js
    M contrib/docker/my_init.d/50_configure
    M contrib/docker/postgresql/Dockerfile
    M contrib/docker/solr/Dockerfile
    M dev-requirements.txt
    M doc/_static/ckanlogo.png
    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/release-process.rst
    M doc/contributing/string-i18n.rst
    M doc/extensions/translating-extensions.rst
    M doc/extensions/tutorial.rst
    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
    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
    M doc/maintaining/paster.rst
    R doc/maintaining/solr-multicore.rst
    M doc/maintaining/upgrading/index.rst
    A doc/maintaining/upgrading/upgrade-postgres.rst
    M doc/theming/javascript-module-objects-and-methods.rst
    M doc/user-guide.rst
    M requirements.in
    M requirements.txt
    M setup.cfg
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-i18n


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

  Changed paths:
    M .circleci-matrix.yml
    A .travis.yml
    M CHANGELOG.rst
    M Dockerfile
    M ckan/ckan_nose_plugin.py
    M ckan/controllers/admin.py
    M ckan/i18n/fr/LC_MESSAGES/ckan.mo
    M ckan/i18n/fr/LC_MESSAGES/ckan.po
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/email_notifications.py
    M ckan/lib/helpers.py
    M ckan/lib/jobs.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/logic/schema.py
    A ckan/pastertemplates/template/ckanext/+project_shortname+/i18n/+dot+gitignore
    M ckan/public/base/javascript/modules/image-upload.js
    M ckan/templates/admin/config.html
    M ckan/templates/macros/autoform.html
    M ckan/templates/user/dashboard_organizations.html
    M ckan/tests/legacy/logic/test_action.py
    M ckan/tests/lib/test_jobs.py
    M ckan/tests/logic/action/test_create.py
    M ckan/tests/logic/action/test_delete.py
    M ckan/tests/logic/action/test_update.py
    M ckanext/datastore/controller.py
    A ckanext/datastore/writer.py
    A contrib/docker/ckan-entrypoint.sh
    M contrib/docker/docker-cloud.yml
    M contrib/docker/docker-compose.yml
    M contrib/docker/solr/Dockerfile
    M doc/maintaining/datastore.rst

  Log Message:
  -----------
  Merge branch 'master' into 3196-i18n


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

  Changed paths:
    M ckan/common.py

  Log Message:
  -----------
  PEP8


  Commit: 5b675ebd2a6fea8519776babfe0a1e7e1da560ca
      https://github.com/ckan/ckan/commit/5b675ebd2a6fea8519776babfe0a1e7e1da560ca
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-14 (Tue, 14 Feb 2017)

  Changed paths:
    M ckan/tests/legacy/test_coding_standards.py
    M ckan/tests/test_coding_standards.py
    A ckanext/datastore/backend.py
    M ckanext/datastore/interfaces.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_unit.py

  Log Message:
  -----------
  Cleaning of datastore's plugin.py


  Commit: 8c5039037c182bd8a5c17729efb55206da5dc407
      https://github.com/ckan/ckan/commit/8c5039037c182bd8a5c17729efb55206da5dc407
  Author: Ian Ward <ian at excess.org>
  Date:   2017-02-17 (Fri, 17 Feb 2017)

  Changed paths:
    A ckanext/datatablesview/__init__.py
    A ckanext/datatablesview/controller.py
    A ckanext/datatablesview/plugin.py
    A ckanext/datatablesview/templates/datatables/datatables_view.html
    M setup.py

  Log Message:
  -----------
  [#3444] datatables resource view


  Commit: 388e646c36e8ff444e7996500b95b7de56d5eb8e
      https://github.com/ckan/ckan/commit/388e646c36e8ff444e7996500b95b7de56d5eb8e
  Author: Ian Ward <ian at excess.org>
  Date:   2017-02-17 (Fri, 17 Feb 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] enable responsive and column vis extensions


  Commit: cc1d30481f0aac57c01a8f685676c18073746983
      https://github.com/ckan/ckan/commit/cc1d30481f0aac57c01a8f685676c18073746983
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-21 (Tue, 21 Feb 2017)

  Changed paths:
    M ckan/logic/action/create.py
    M ckan/model/resource.py
    M ckan/model/user.py
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/resources.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/templates/package/snippets/resources_list.html
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_delete.py

  Log Message:
  -----------
  conflict with master


  Commit: f72dbd67e82bd58c073b04cb1c9195de8c6b0645
      https://github.com/ckan/ckan/commit/f72dbd67e82bd58c073b04cb1c9195de8c6b0645
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-21 (Tue, 21 Feb 2017)

  Changed paths:
    R ckanext/datastore/backend.py
    A ckanext/datastore/backend/__init__.py
    A ckanext/datastore/backend/postgres.py
    M ckanext/datastore/interfaces.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_unit.py

  Log Message:
  -----------
  get active backend using write_url


  Commit: d166caa3147977506c4c131bfb7a58bb22298259
      https://github.com/ckan/ckan/commit/d166caa3147977506c4c131bfb7a58bb22298259
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-21 (Tue, 21 Feb 2017)

  Changed paths:
    M ckan/templates/group/members.html
    M ckan/templates/organization/members.html

  Log Message:
  -----------
  Merge branch 'master' into datastore-abstraction-layer


  Commit: 750596fb88efebe660257b0f25bc392a2795dcac
      https://github.com/ckan/ckan/commit/750596fb88efebe660257b0f25bc392a2795dcac
  Author: Ian Ward <ian at excess.org>
  Date:   2017-02-26 (Sun, 26 Feb 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] datatables: add missing _id column


  Commit: 52b4e410f23c95305bb78eb0be43553f3b437ede
      https://github.com/ckan/ckan/commit/52b4e410f23c95305bb78eb0be43553f3b437ede
  Author: Ian Ward <ian at excess.org>
  Date:   2017-02-26 (Sun, 26 Feb 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] datatables: add fixed _id column and header


  Commit: cf03eac39ee68dbff36a882524e4edbc85e346f8
      https://github.com/ckan/ckan/commit/cf03eac39ee68dbff36a882524e4edbc85e346f8
  Author: Ian Ward <ian at excess.org>
  Date:   2017-02-26 (Sun, 26 Feb 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] datatables: restore result length controls


  Commit: e9b701b3fe93b68b8dc72b3e1200bf68257f5251
      https://github.com/ckan/ckan/commit/e9b701b3fe93b68b8dc72b3e1200bf68257f5251
  Author: Ian Ward <ian at excess.org>
  Date:   2017-02-26 (Sun, 26 Feb 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] show counts at top and bottom


  Commit: 1defebc76cffaca5ade98b95110616dad401cbdc
      https://github.com/ckan/ckan/commit/1defebc76cffaca5ade98b95110616dad401cbdc
  Author: Ian Ward <ian at excess.org>
  Date:   2017-02-26 (Sun, 26 Feb 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] add copy, excel export, print buttons


  Commit: 603d48c015784cff320294059c56fcb4ca11db67
      https://github.com/ckan/ckan/commit/603d48c015784cff320294059c56fcb4ca11db67
  Author: Ian Ward <ian at excess.org>
  Date:   2017-02-26 (Sun, 26 Feb 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] add keys extension


  Commit: 9932117a562f26ed254568a156d05c8a95e9df39
      https://github.com/ckan/ckan/commit/9932117a562f26ed254568a156d05c8a95e9df39
  Author: Yan <yan.rudenko at linkdigital.com.au>
  Date:   2017-02-26 (Sun, 26 Feb 2017)

  Changed paths:
    M ckan/logic/action/update.py

  Log Message:
  -----------
  [#3457]Create new resource view if resource format changed


  Commit: 6b9db91143f0ae0efb79a741be6ffc9b6abf690a
      https://github.com/ckan/ckan/commit/6b9db91143f0ae0efb79a741be6ffc9b6abf690a
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M ckanext/datastore/backend/__init__.py
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  cleaning in actions


  Commit: 335ab318bf8f160d9180840dd252bceb8bf98f4a
      https://github.com/ckan/ckan/commit/335ab318bf8f160d9180840dd252bceb8bf98f4a
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M CHANGELOG.rst
    M ckan/common.py
    M ckan/config/middleware/flask_app.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/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/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/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/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/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/lib/base.py
    A ckan/templates/tests/flash_messages.html
    A ckan/tests/config/test_sessions.py
    M ckan/tests/legacy/lib/test_i18n.py
    M ckanext/datapusher/logic/action.py
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into datastore-abstraction-layer


  Commit: 5976fec87c38dbf3ee0c3858213be5351f53d00c
      https://github.com/ckan/ckan/commit/5976fec87c38dbf3ee0c3858213be5351f53d00c
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M ckanext/datastore/backend/__init__.py
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_unit.py

  Log Message:
  -----------
  cleaning in actions


  Commit: f37a60d4ca0cf20f3a323c84bdc83732463480ba
      https://github.com/ckan/ckan/commit/f37a60d4ca0cf20f3a323c84bdc83732463480ba
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-28 (Tue, 28 Feb 2017)

  Changed paths:
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/cli.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datapusher/tests/test_interfaces.py
    M ckanext/datastore/backend/__init__.py
    M ckanext/datastore/backend/postgres.py
    R ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_db.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_info.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py

  Log Message:
  -----------
  removed db.py


  Commit: b502cab92635b65f208bda95b5b7eacc0b5cc1c7
      https://github.com/ckan/ckan/commit/b502cab92635b65f208bda95b5b7eacc0b5cc1c7
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-28 (Tue, 28 Feb 2017)

  Changed paths:
    M ckanext/datastore/backend/__init__.py
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/logic/action.py

  Log Message:
  -----------
  removed datastore_info from abstract methods


  Commit: 08e1da455fe1d97bbfb60dd31020dc94a1ca7104
      https://github.com/ckan/ckan/commit/08e1da455fe1d97bbfb60dd31020dc94a1ca7104
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-28 (Tue, 28 Feb 2017)

  Changed paths:
    M ckanext/datastore/tests/test_unit.py

  Log Message:
  -----------
  pep8


  Commit: d1732728b6ec68ff9dce68cd5b43f04119458c83
      https://github.com/ckan/ckan/commit/d1732728b6ec68ff9dce68cd5b43f04119458c83
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-02-28 (Tue, 28 Feb 2017)

  Changed paths:
    M ckan/config/middleware/pylons_app.py
    M ckan/lib/celery_app.py
    A ckan/tests/lib/test_celery_app.py

  Log Message:
  -----------
  Merge branch 'master' into datastore-abstraction-layer


  Commit: 612379064c293b96e03df856856ac60fa0dc1693
      https://github.com/ckan/ckan/commit/612379064c293b96e03df856856ac60fa0dc1693
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-03-02 (Thu, 02 Mar 2017)

  Changed paths:
    M ckan/controllers/user.py
    M ckan/tests/controllers/test_user.py

  Log Message:
  -----------
  Merge branch 'master' into datastore-abstraction-layer


  Commit: eef9925899e716df53df70c49edbf1634facee4b
      https://github.com/ckan/ckan/commit/eef9925899e716df53df70c49edbf1634facee4b
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-03-02 (Thu, 02 Mar 2017)

  Changed paths:
    M ckanext/datastore/backend/__init__.py
    M ckanext/datastore/interfaces.py

  Log Message:
  -----------
  some documentation


  Commit: 65c2bb665a3174badb3605556f152211031ab462
      https://github.com/ckan/ckan/commit/65c2bb665a3174badb3605556f152211031ab462
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-03-03 (Fri, 03 Mar 2017)

  Changed paths:
    M ckanext/datastore/backend/__init__.py
    A ckanext/datastore/backend/example.py
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  added example of implementation


  Commit: bb0ae3936c195de39e8ea9c2f63aae38088a2b0e
      https://github.com/ckan/ckan/commit/bb0ae3936c195de39e8ea9c2f63aae38088a2b0e
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-04 (Sat, 04 Mar 2017)

  Changed paths:
    M ckanext/datatablesview/plugin.py
    A ckanext/datatablesview/templates/datatables/datatables_form.html

  Log Message:
  -----------
  [#3444] responsve feature checkbox


  Commit: 5961185856ababfffbd739411860c19c72c93228
      https://github.com/ckan/ckan/commit/5961185856ababfffbd739411860c19c72c93228
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-05 (Sun, 05 Mar 2017)

  Changed paths:
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  [#3467] separate total calculation + include_total param


  Commit: eecd7f4f300ea34fb3be1c5093144b4c2279e81f
      https://github.com/ckan/ckan/commit/eecd7f4f300ea34fb3be1c5093144b4c2279e81f
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-05 (Sun, 05 Mar 2017)

  Changed paths:
    M ckanext/datastore/helpers.py

  Log Message:
  -----------
  [#3444] faster datastore_dictionary helper


  Commit: b094bd5df2b810441bd268679f736d3f4968e33a
      https://github.com/ckan/ckan/commit/b094bd5df2b810441bd268679f736d3f4968e33a
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-05 (Sun, 05 Mar 2017)

  Changed paths:
    M ckanext/datatablesview/controller.py
    M ckanext/datatablesview/plugin.py
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] working view filters


  Commit: e185dd7170c47162aa71ce827f2ade06dcb0fac1
      https://github.com/ckan/ckan/commit/e185dd7170c47162aa71ce827f2ade06dcb0fac1
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-03-06 (Mon, 06 Mar 2017)

  Changed paths:
    M ckanext/datastore/backend/__init__.py
    M ckanext/datastore/backend/example.py

  Log Message:
  -----------
  updates in documentation


  Commit: 13ff28f9bbce98606f9ea623247820c4c0c32680
      https://github.com/ckan/ckan/commit/13ff28f9bbce98606f9ea623247820c4c0c32680
  Author: Yan <yan.rudneko at linkdigital.com.au>
  Date:   2017-03-06 (Mon, 06 Mar 2017)

  Changed paths:
    M ckan/logic/action/get.py
    M ckan/public/base/less/search.less
    M ckan/templates/snippets/search_form.html
    M ckan/tests/logic/action/test_get.py

  Log Message:
  -----------
  [#2938] Odd feature in sorting organization by packages


  Commit: 464f8697c878ea5cd13517e63c464a0a8ce4ceaa
      https://github.com/ckan/ckan/commit/464f8697c878ea5cd13517e63c464a0a8ce4ceaa
  Author: Yan <yan.rudneko at linkdigital.com.au>
  Date:   2017-03-07 (Tue, 07 Mar 2017)

  Changed paths:
    M ckan/tests/logic/action/test_get.py

  Log Message:
  -----------
  fix Pep8 problem in tests


  Commit: 99acbff9ccecfeedc07e0d0e14e89914c2cbcb79
      https://github.com/ckan/ckan/commit/99acbff9ccecfeedc07e0d0e14e89914c2cbcb79
  Author: Yan <yan.rudneko at linkdigital.com.au>
  Date:   2017-03-07 (Tue, 07 Mar 2017)

  Changed paths:
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/media.less

  Log Message:
  -----------
  [#3471] Fix for small issues and Create dataset page and Dashboard tabs


  Commit: 6e11e61df13d8083e594566f45da3a076f93d53c
      https://github.com/ckan/ckan/commit/6e11e61df13d8083e594566f45da3a076f93d53c
  Author: amercader <amercadero at gmail.com>
  Date:   2017-03-08 (Wed, 08 Mar 2017)

  Changed paths:
    A .editorconfig
    M CHANGELOG.rst
    M ckan/common.py
    M ckan/config/environment.py
    M ckan/config/middleware/flask_app.py
    M ckan/config/middleware/pylons_app.py
    M ckan/config/routing.py
    M ckan/controllers/user.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/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/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/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/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/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/lib/activity_streams.py
    M ckan/lib/base.py
    M ckan/lib/celery_app.py
    M ckan/lib/dictization/__init__.py
    M ckan/lib/fanstatic_resources.py
    M ckan/lib/helpers.py
    M ckan/lib/jinja_extensions.py
    M ckan/lib/plugins.py
    M ckan/logic/action/create.py
    M ckan/logic/action/get.py
    M ckan/logic/validators.py
    M ckan/model/resource.py
    M ckan/model/user.py
    M ckan/pastertemplates/template/bin/travis-run.sh_tmpl
    M ckan/plugins/interfaces.py
    M ckan/public/base/css/fuchsia.css
    M ckan/public/base/css/green.css
    M ckan/public/base/css/main.css
    M ckan/public/base/css/maroon.css
    M ckan/public/base/css/red.css
    M ckan/public/base/javascript/client.js
    M ckan/public/base/javascript/main.js
    M ckan/public/base/javascript/modules/basic-form.js
    M ckan/public/base/javascript/modules/custom-fields.js
    M ckan/public/base/javascript/modules/follow.js
    M ckan/public/base/javascript/modules/image-upload.js
    M ckan/public/base/javascript/modules/resource-reorder.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/test/spec/modules/custom-fields.spec.js
    M ckan/public/base/vendor/bootstrap/less/tests/css-tests.html
    M ckan/public/base/vendor/bootstrap/less/tests/navbar-fixed-top.html
    M ckan/public/base/vendor/bootstrap/less/tests/navbar-static-top.html
    M ckan/public/base/vendor/bootstrap/less/tests/navbar.html
    R ckan/public/base/vendor/font-awesome/css/font-awesome-ie7.css
    R ckan/public/base/vendor/font-awesome/css/font-awesome-ie7.min.css
    M ckan/public/base/vendor/font-awesome/css/font-awesome.css
    M ckan/public/base/vendor/font-awesome/css/font-awesome.min.css
    R ckan/public/base/vendor/font-awesome/font/FontAwesome.otf
    R ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.eot
    R ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.svg
    R ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.ttf
    R ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.woff
    A ckan/public/base/vendor/font-awesome/fonts/FontAwesome.otf
    A ckan/public/base/vendor/font-awesome/fonts/fontawesome-webfont.eot
    A ckan/public/base/vendor/font-awesome/fonts/fontawesome-webfont.svg
    A ckan/public/base/vendor/font-awesome/fonts/fontawesome-webfont.ttf
    A ckan/public/base/vendor/font-awesome/fonts/fontawesome-webfont.woff
    R ckan/public/base/vendor/font-awesome/less/bootstrap.less
    A ckan/public/base/vendor/font-awesome/less/bordered-pulled.less
    M ckan/public/base/vendor/font-awesome/less/core.less
    M ckan/public/base/vendor/font-awesome/less/extras.less
    A ckan/public/base/vendor/font-awesome/less/fixed-width.less
    R ckan/public/base/vendor/font-awesome/less/font-awesome-ie7.less
    M ckan/public/base/vendor/font-awesome/less/font-awesome.less
    M ckan/public/base/vendor/font-awesome/less/icons.less
    A ckan/public/base/vendor/font-awesome/less/larger.less
    A ckan/public/base/vendor/font-awesome/less/list.less
    M ckan/public/base/vendor/font-awesome/less/mixins.less
    M ckan/public/base/vendor/font-awesome/less/path.less
    A ckan/public/base/vendor/font-awesome/less/rotated-flipped.less
    A ckan/public/base/vendor/font-awesome/less/spinning.less
    A ckan/public/base/vendor/font-awesome/less/stacked.less
    M ckan/public/base/vendor/font-awesome/less/variables.less
    M ckan/public/base/vendor/resource.config
    M ckan/templates/admin/config.html
    M ckan/templates/admin/index.html
    M ckan/templates/admin/trash.html
    M ckan/templates/dataviewer/snippets/data_preview.html
    M ckan/templates/dataviewer/snippets/no_preview.html
    M ckan/templates/development/primer.html
    M ckan/templates/development/snippets/actions.html
    M ckan/templates/development/snippets/facet.html
    M ckan/templates/development/snippets/list.html
    M ckan/templates/development/snippets/module.html
    M ckan/templates/development/snippets/nav.html
    M ckan/templates/development/snippets/page_header.html
    M ckan/templates/development/snippets/simple-input.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/index.html
    M ckan/templates/group/member_new.html
    M ckan/templates/group/members.html
    M ckan/templates/group/snippets/helper.html
    M ckan/templates/header.html
    M ckan/templates/home/snippets/search.html
    M ckan/templates/macros/form.html
    M ckan/templates/organization/bulk_process.html
    M ckan/templates/organization/edit_base.html
    M ckan/templates/organization/index.html
    M ckan/templates/organization/member_new.html
    M ckan/templates/organization/members.html
    M ckan/templates/organization/read.html
    M ckan/templates/organization/snippets/help.html
    M ckan/templates/organization/snippets/helper.html
    M ckan/templates/organization/snippets/info.html
    M ckan/templates/package/base_form_page.html
    M ckan/templates/package/edit_base.html
    M ckan/templates/package/edit_view.html
    M ckan/templates/package/new_resource_not_draft.html
    M ckan/templates/package/new_view.html
    M ckan/templates/package/read.html
    M ckan/templates/package/resource_data.html
    M ckan/templates/package/resource_edit_base.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/resource_views.html
    M ckan/templates/package/resources.html
    M ckan/templates/package/search.html
    M ckan/templates/package/snippets/package_basic_fields.html
    M ckan/templates/package/snippets/resource_form.html
    M ckan/templates/package/snippets/resource_help.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/templates/package/snippets/resource_view.html
    M ckan/templates/package/snippets/resource_views_list.html
    M ckan/templates/package/snippets/resource_views_list_item.html
    M ckan/templates/package/snippets/resources.html
    M ckan/templates/package/snippets/resources_list.html
    M ckan/templates/package/snippets/view_form_filters.html
    M ckan/templates/package/snippets/view_help.html
    M ckan/templates/package/view_edit_base.html
    M ckan/templates/revision/read.html
    M ckan/templates/snippets/activity_item.html
    M ckan/templates/snippets/datapusher_status.html
    M ckan/templates/snippets/disqus_trackback.html
    M ckan/templates/snippets/facet_list.html
    M ckan/templates/snippets/follow_button.html
    M ckan/templates/snippets/home_breadcrumb_item.html
    M ckan/templates/snippets/license.html
    M ckan/templates/snippets/organization.html
    M ckan/templates/snippets/package_item.html
    M ckan/templates/snippets/search_form.html
    M ckan/templates/snippets/simple_search.html
    M ckan/templates/snippets/social.html
    M ckan/templates/snippets/subscribe.html
    M ckan/templates/tag/index.html
    A ckan/templates/tests/flash_messages.html
    M ckan/templates/user/dashboard_datasets.html
    M ckan/templates/user/dashboard_groups.html
    M ckan/templates/user/dashboard_organizations.html
    M ckan/templates/user/edit.html
    M ckan/templates/user/snippets/followee_dropdown.html
    M ckan/templates/user/snippets/user_search.html
    A ckan/tests/config/test_sessions.py
    M ckan/tests/controllers/test_user.py
    M ckan/tests/legacy/lib/test_i18n.py
    A ckan/tests/lib/test_celery_app.py
    M ckan/tests/logic/action/test_create.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/templates/package/snippets/data_api_button.html
    M ckanext/datastore/tests/test_delete.py
    M ckanext/example_iconfigurer/plugin.py
    M ckanext/example_iconfigurer/tests/test_example_iconfigurer.py
    M ckanext/example_theme/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    M ckanext/example_theme/v17_popover/templates/snippets/package_item.html
    M ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    M ckanext/example_theme/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    M ckanext/example_theme/v18_snippet_api/templates/snippets/package_item.html
    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/example_theme/v21_custom_jquery_plugin/templates/snippets/package_item.html
    M ckanext/imageview/plugin.py
    M ckanext/reclineview/plugin.py
    M ckanext/stats/templates/ckanext/stats/index.html
    M ckanext/textview/plugin.py
    M doc/_templates/footer.html
    M doc/images/exploring_datasets.jpg
    M doc/user-guide.rst
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-i18n


  Commit: 20c4b4180e9ba9a6c2fffe14a80dd8d5d3304ff7
      https://github.com/ckan/ckan/commit/20c4b4180e9ba9a6c2fffe14a80dd8d5d3304ff7
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-10 (Fri, 10 Mar 2017)

  Changed paths:
    M ckanext/datatablesview/controller.py
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] working user filters


  Commit: 8c01947fd4606afd68a086081f7ac18456cdcf65
      https://github.com/ckan/ckan/commit/8c01947fd4606afd68a086081f7ac18456cdcf65
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-10 (Fri, 10 Mar 2017)

  Changed paths:
    M ckanext/datatablesview/controller.py
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] multi-column sort


  Commit: 0cc5c734d78e0ee835b96711407ce0793088f6d0
      https://github.com/ckan/ckan/commit/0cc5c734d78e0ee835b96711407ce0793088f6d0
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-17 (Fri, 17 Mar 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] bootstrap-flavoured


  Commit: 7b41a1f1cbcb9b039581e9f12aad938c230833e2
      https://github.com/ckan/ckan/commit/7b41a1f1cbcb9b039581e9f12aad938c230833e2
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-24 (Fri, 24 Mar 2017)

  Changed paths:
    A .editorconfig
    M CHANGELOG.rst
    M ckan/common.py
    M ckan/config/environment.py
    M ckan/config/middleware/flask_app.py
    M ckan/config/middleware/pylons_app.py
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/controllers/user.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/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/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/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/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/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/lib/base.py
    M ckan/lib/celery_app.py
    M ckan/lib/dictization/__init__.py
    M ckan/lib/fanstatic_resources.py
    M ckan/lib/jinja_extensions.py
    M ckan/lib/mailer.py
    M ckan/logic/action/create.py
    M ckan/logic/action/get.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/model/activity.py
    M ckan/model/resource.py
    M ckan/model/user.py
    M ckan/pastertemplates/template/bin/travis-run.sh_tmpl
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/templates/group/members.html
    M ckan/templates/organization/index.html
    M ckan/templates/organization/members.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/resources.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/templates/package/snippets/resources_list.html
    A ckan/templates/tests/flash_messages.html
    A ckan/tests/config/test_sessions.py
    M ckan/tests/controllers/test_user.py
    M ckan/tests/legacy/lib/test_i18n.py
    A ckan/tests/lib/test_celery_app.py
    M ckan/tests/logic/action/test_create.py
    M ckan/tests/logic/action/test_get.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_delete.py
    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 doc/images/exploring_datasets.jpg
    M doc/maintaining/installing/install-from-source.rst
    M doc/user-guide.rst
    M setup.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into 3444-datatables-view


  Commit: 208782cac98d12451568d1f6462826de030ec586
      https://github.com/ckan/ckan/commit/208782cac98d12451568d1f6462826de030ec586
  Author: amercader <amercadero at gmail.com>
  Date:   2017-03-28 (Tue, 28 Mar 2017)

  Changed paths:
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/lib/mailer.py
    M ckan/logic/action/get.py
    M ckan/logic/schema.py
    M ckan/model/activity.py
    M ckan/templates/organization/index.html
    R ckan/templates/package/resource_data.html
    M ckan/templates/package/resource_edit_base.html
    M ckan/tests/logic/action/test_get.py
    M ckanext/datapusher/plugin.py
    A ckanext/datapusher/templates/datapusher/resource_data.html
    A ckanext/datapusher/templates/package/resource_edit_base.html
    M ckanext/datastore/controller.py
    M ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    A ckanext/datastore/templates/datastore/dictionary.html
    A ckanext/datastore/templates/package/resource_edit_base.html
    M ckanext/datastore/templates/package/resource_read.html
    M doc/maintaining/installing/install-from-source.rst

  Log Message:
  -----------
  Merge branch 'master' into 3196-i18n


  Commit: 3499339c762dbab7ee1f0525cc401581595b2118
      https://github.com/ckan/ckan/commit/3499339c762dbab7ee1f0525cc401581595b2118
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-28 (Tue, 28 Mar 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] colvis text: Hide/Unhide Buttons


  Commit: 3041c609209360bd8425d85d357a2224ca33b627
      https://github.com/ckan/ckan/commit/3041c609209360bd8425d85d357a2224ca33b627
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-28 (Tue, 28 Mar 2017)

  Changed paths:
    M ckanext/datatablesview/plugin.py
    M ckanext/datatablesview/templates/datatables/datatables_form.html
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] export buttons option


  Commit: 33d0c15a9989e259dd96def21589110799f25e06
      https://github.com/ckan/ckan/commit/33d0c15a9989e259dd96def21589110799f25e06
  Author: Ian Ward <ian at excess.org>
  Date:   2017-03-28 (Tue, 28 Mar 2017)

  Changed paths:
    M ckanext/datatablesview/controller.py
    M ckanext/datatablesview/plugin.py
    M ckanext/datatablesview/templates/datatables/datatables_form.html
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] view edit: select columns to include


  Commit: be86832e3c865208223174cedd35c595d3c2ce70
      https://github.com/ckan/ckan/commit/be86832e3c865208223174cedd35c595d3c2ce70
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-03 (Mon, 03 Apr 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] scrollX incompatible with responsive


  Commit: a97b0fbdbb5525a4f5439ba85064bb3affe3348e
      https://github.com/ckan/ckan/commit/a97b0fbdbb5525a4f5439ba85064bb3affe3348e
  Author: Jinfei Fan <fanjinfei at hotmail.com>
  Date:   2017-04-05 (Wed, 05 Apr 2017)

  Changed paths:
    M ckan/controllers/user.py
    M ckan/templates/user/edit_user_form.html
    M ckan/tests/controllers/test_user.py

  Log Message:
  -----------
  do not allow to modify exsiting username


  Commit: f42789db64b08e9c0c8628e61c7a7ed2ff924a74
      https://github.com/ckan/ckan/commit/f42789db64b08e9c0c8628e61c7a7ed2ff924a74
  Author: Jinfei Fan <fanjinfei at hotmail.com>
  Date:   2017-04-06 (Thu, 06 Apr 2017)

  Changed paths:
    M ckan/logic/validators.py
    M ckan/tests/logic/action/test_update.py

  Log Message:
  -----------
  fix username validator


  Commit: 2348866cb80fb8fc3517a398ca91a3a2b5ec88d0
      https://github.com/ckan/ckan/commit/2348866cb80fb8fc3517a398ca91a3a2b5ec88d0
  Author: Jinfei Fan <fanjinfei at hotmail.com>
  Date:   2017-04-06 (Thu, 06 Apr 2017)

  Changed paths:
    M ckan/logic/action/update.py

  Log Message:
  -----------
  fix doc


  Commit: 07f96e257966b98f378773f45589b5eb173ac244
      https://github.com/ckan/ckan/commit/07f96e257966b98f378773f45589b5eb173ac244
  Author: Jinfei Fan <fanjinfei at hotmail.com>
  Date:   2017-04-06 (Thu, 06 Apr 2017)

  Changed paths:
    M ckan/controllers/user.py
    M ckan/tests/controllers/test_user.py

  Log Message:
  -----------
  fix tests


  Commit: 6ae3b536916ca5e45d2b701c2c6e5012f4a2462b
      https://github.com/ckan/ckan/commit/6ae3b536916ca5e45d2b701c2c6e5012f4a2462b
  Author: Jinfei Fan <fanjinfei at hotmail.com>
  Date:   2017-04-07 (Fri, 07 Apr 2017)

  Changed paths:
    M ckan/controllers/user.py
    M ckan/logic/validators.py
    M ckan/templates/user/perform_reset.html

  Log Message:
  -----------
  allow invited user to change username


  Commit: 3348a32c3f7c6f95e3da92a71bb3750f87d81a8c
      https://github.com/ckan/ckan/commit/3348a32c3f7c6f95e3da92a71bb3750f87d81a8c
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-07 (Fri, 07 Apr 2017)

  Changed paths:
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py

  Log Message:
  -----------
  [#3428] replace db._get_engine with db.get_(read|write)_engine


  Commit: ce33d8ef481ae30e0950807246f1930eb13eaa6b
      https://github.com/ckan/ckan/commit/ce33d8ef481ae30e0950807246f1930eb13eaa6b
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-07 (Fri, 07 Apr 2017)

  Changed paths:
    M ckanext/datapusher/tests/test_interfaces.py

  Log Message:
  -----------
  [#3428] one more db._get_engine replacement


  Commit: 5fa93799e74c866263907a9efda33d83140c0b77
      https://github.com/ckan/ckan/commit/5fa93799e74c866263907a9efda33d83140c0b77
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-07 (Fri, 07 Apr 2017)

  Changed paths:
    M ckanext/datapusher/tests/test.py

  Log Message:
  -----------
  [#3428] one more db._get_engine replacement


  Commit: 856ae968ae870129a43d679bab88c4a0d3878095
      https://github.com/ckan/ckan/commit/856ae968ae870129a43d679bab88c4a0d3878095
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-07 (Fri, 07 Apr 2017)

  Changed paths:
    A ckan/lib/lazyjson.py
    M ckanext/datastore/db.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_search.py
    M requirements.in
    M requirements.txt

  Log Message:
  -----------
  [#3523] use postgresql row_to_json + LazyJSONObject


  Commit: a553c1d380ea08419600c7feff4ed12d889d6b8c
      https://github.com/ckan/ckan/commit/a553c1d380ea08419600c7feff4ed12d889d6b8c
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-07 (Fri, 07 Apr 2017)

  Changed paths:
    M ckanext/datastore/controller.py
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/writer.py

  Log Message:
  -----------
  [#3523] datastore_search records_format param, update dump


  Commit: d7ab29e6d3a6633f88d5a64d087b4ab48ac222c6
      https://github.com/ckan/ckan/commit/d7ab29e6d3a6633f88d5a64d087b4ab48ac222c6
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-08 (Sat, 08 Apr 2017)

  Changed paths:
    M ckanext/datastore/controller.py

  Log Message:
  -----------
  [#3523] dump doesnt need totals


  Commit: e485af674f7638d512491e27db6407f396ee4396
      https://github.com/ckan/ckan/commit/e485af674f7638d512491e27db6407f396ee4396
  Author: amercader <amercadero at gmail.com>
  Date:   2017-04-10 (Mon, 10 Apr 2017)

  Changed paths:
    M README.rst
    M ckan/config/deployment.ini_tmpl
    M ckan/config/middleware/flask_app.py
    M ckan/lib/cli.py
    M ckan/logic/__init__.py
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    M ckan/templates/package/resource_read.html
    M ckan/tests/legacy/ckantestplugins.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/cli.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datapusher/templates/datapusher/resource_data.html
    M ckanext/datapusher/tests/test_action.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/set_permissions.sql
    A ckanext/datastore/tests/test_chained_action.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/writer.py
    M ckanext/reclineview/theme/public/recline_view.js
    M ckanext/reclineview/theme/public/resource.config
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers-2x.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon-2x.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-shadow.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet-src.js
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.css
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/layers-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/layers.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-icon-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-icon.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-shadow.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet-src.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet.js
    M dev-requirements.txt
    M doc/contributing/test.rst
    M doc/extensions/plugin-interfaces.rst
    M doc/maintaining/configuration.rst
    M doc/maintaining/installing/index.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-i18n


  Commit: 79bcdd4455922f9f0580ef0a7f5975ac44bfcad0
      https://github.com/ckan/ckan/commit/79bcdd4455922f9f0580ef0a7f5975ac44bfcad0
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-04-10 (Mon, 10 Apr 2017)

  Changed paths:
    M README.rst
    M ckan/config/deployment.ini_tmpl
    M ckan/config/middleware/flask_app.py
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/lib/cli.py
    M ckan/lib/mailer.py
    M ckan/logic/__init__.py
    M ckan/logic/action/get.py
    M ckan/logic/schema.py
    M ckan/model/activity.py
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    M ckan/templates/organization/index.html
    R ckan/templates/package/resource_data.html
    M ckan/templates/package/resource_edit_base.html
    M ckan/templates/package/resource_read.html
    M ckan/tests/legacy/ckantestplugins.py
    M ckan/tests/logic/action/test_get.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/cli.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datapusher/plugin.py
    A ckanext/datapusher/templates/datapusher/resource_data.html
    A ckanext/datapusher/templates/package/resource_edit_base.html
    M ckanext/datapusher/tests/test_action.py
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/set_permissions.sql
    A ckanext/datastore/templates/datastore/dictionary.html
    A ckanext/datastore/templates/package/resource_edit_base.html
    M ckanext/datastore/templates/package/resource_read.html
    A ckanext/datastore/tests/test_chained_action.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/writer.py
    M ckanext/reclineview/theme/public/recline_view.js
    M ckanext/reclineview/theme/public/resource.config
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers-2x.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon-2x.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-shadow.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet-src.js
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.css
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/layers-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/layers.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-icon-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-icon.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-shadow.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet-src.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet.js
    M dev-requirements.txt
    M doc/contributing/test.rst
    M doc/extensions/plugin-interfaces.rst
    M doc/maintaining/configuration.rst
    M doc/maintaining/installing/index.rst
    M doc/maintaining/installing/install-from-source.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  merge master


  Commit: c821dddba5593a6373b83daca422b1c3827ce301
      https://github.com/ckan/ckan/commit/c821dddba5593a6373b83daca422b1c3827ce301
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-04-10 (Mon, 10 Apr 2017)

  Changed paths:
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datapusher/tests/test_action.py
    M ckanext/datastore/backend/__init__.py
    R ckanext/datastore/backend/example.py
    A ckanext/datastore/backend/example_sqlite.py
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/interfaces.py
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  fixes for tests


  Commit: 5e0d3c6b8e4d48d7c7f6c066a145d5a268359ad8
      https://github.com/ckan/ckan/commit/5e0d3c6b8e4d48d7c7f6c066a145d5a268359ad8
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-04-10 (Mon, 10 Apr 2017)

  Changed paths:
    M ckan/tests/test_coding_standards.py
    M ckanext/datastore/backend/example_sqlite.py
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  string literals use `u` prefix


  Commit: a1f412cef648bcff9ed0af19bf3a00185c64904d
      https://github.com/ckan/ckan/commit/a1f412cef648bcff9ed0af19bf3a00185c64904d
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-04-11 (Tue, 11 Apr 2017)

  Changed paths:
    M ckan/tests/test_coding_standards.py
    M ckanext/datastore/backend/__init__.py

  Log Message:
  -----------
  do not ignore new files in pep8 checks


  Commit: 0b877d52d48311fd126d5dee32f6e96cafcfc9bf
      https://github.com/ckan/ckan/commit/0b877d52d48311fd126d5dee32f6e96cafcfc9bf
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-15 (Sat, 15 Apr 2017)

  Changed paths:
    M ckanext/datastore/db.py

  Log Message:
  -----------
  [#3523] copy to: support where params


  Commit: fac5d80429992c4e91a5a8d3d14949fdee21523a
      https://github.com/ckan/ckan/commit/fac5d80429992c4e91a5a8d3d14949fdee21523a
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-15 (Sat, 15 Apr 2017)

  Changed paths:
    M ckanext/datastore/db.py

  Log Message:
  -----------
  [#3523] faster default records_format=objects output


  Commit: f51610ae78e39b2faff6de271941b0940ae88b03
      https://github.com/ckan/ckan/commit/f51610ae78e39b2faff6de271941b0940ae88b03
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-15 (Sat, 15 Apr 2017)

  Changed paths:
    M ckan/lib/lazyjson.py
    M ckanext/datastore/db.py
    M ckanext/datastore/tests/test_dump.py

  Log Message:
  -----------
  [#3523] faster default dump records_format=lists output


  Commit: d7011c652db925483590d87e82608eaccc365e6f
      https://github.com/ckan/ckan/commit/d7011c652db925483590d87e82608eaccc365e6f
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-21 (Fri, 21 Apr 2017)

  Changed paths:
    M ckanext/datastore/db.py

  Log Message:
  -----------
  [#3523] faster offset for records_format=lists


  Commit: e43478cae108431690d608130efa9bfdcc78f6fa
      https://github.com/ckan/ckan/commit/e43478cae108431690d608130efa9bfdcc78f6fa
  Author: Ian Ward <ian at excess.org>
  Date:   2017-04-21 (Fri, 21 Apr 2017)

  Changed paths:
    M ckanext/datastore/controller.py

  Log Message:
  -----------
  [#3523] trade some memory for >2x speedup when dumping csv


  Commit: b70167487b1ff9007d7dfe340e299058dc1acc47
      https://github.com/ckan/ckan/commit/b70167487b1ff9007d7dfe340e299058dc1acc47
  Author: Ian Ward <ian at excess.org>
  Date:   2017-05-05 (Fri, 05 May 2017)

  Changed paths:
    A ckanext/datatablesview/public/datatablesview.js
    A ckanext/datatablesview/public/resource.config
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap-theme.css
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap-theme.css.map
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap.css
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap.css.map
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/js/bootstrap.js
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/js/npm.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.bootstrap.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.dataTables.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.foundation.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.jqueryui.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.semanticui.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/common.scss
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/mixins.scss
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.bootstrap.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.colVis.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.flash.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.foundation.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.html5.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.jqueryui.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.print.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.semanticui.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/dataTables.buttons.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/swf/flashExport.swf
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.bootstrap.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.foundation.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.jqueryui.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.semanticui.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/jquery.dataTables.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/jquery.dataTables_themeroller.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_asc.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_asc_disabled.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_both.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_desc.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_desc_disabled.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.bootstrap.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.foundation.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.jqueryui.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.semanticui.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/jquery.dataTables.js
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.dataTables.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.foundation.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/js/dataTables.fixedColumns.js
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.dataTables.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.foundation.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/js/dataTables.fixedHeader.js
    A ckanext/datatablesview/public/vendor/JSZip-3.1.3/jszip.js
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.bootstrap.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.dataTables.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.foundation.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.jqueryui.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.semanticui.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/js/dataTables.keyTable.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.bootstrap.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.dataTables.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.foundation.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.jqueryui.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/dataTables.responsive.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.bootstrap.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.foundation.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.jqueryui.js
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.bootstrap.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.dataTables.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.foundation.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.jqueryui.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.semanticui.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/js/dataTables.select.js
    A ckanext/datatablesview/public/vendor/datatables.css
    A ckanext/datatablesview/public/vendor/datatables.js

  Log Message:
  -----------
  [#3444] include vendor js+css


  Commit: f4ef570d996fa4127e7fde58fbd0303ad1ac8ced
      https://github.com/ckan/ckan/commit/f4ef570d996fa4127e7fde58fbd0303ad1ac8ced
  Author: Ian Ward <ian at excess.org>
  Date:   2017-05-05 (Fri, 05 May 2017)

  Changed paths:
    M ckanext/datatablesview/controller.py
    M ckanext/datatablesview/plugin.py
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] move DataTables options to data-attributes


  Commit: d2595a11796021b2630f4320f499a765a0458de3
      https://github.com/ckan/ckan/commit/d2595a11796021b2630f4320f499a765a0458de3
  Author: Ian Ward <ian at excess.org>
  Date:   2017-05-05 (Fri, 05 May 2017)

  Changed paths:
    M README.rst
    M ckan/config/deployment.ini_tmpl
    M ckan/config/middleware/flask_app.py
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/lib/cli.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/logic/__init__.py
    M ckan/logic/auth/update.py
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    M ckan/templates/organization/members.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/tests/controllers/test_group.py
    M ckan/tests/legacy/ckantestplugins.py
    M ckan/tests/lib/navl/test_dictization_functions.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/cli.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datapusher/templates/datapusher/resource_data.html
    M ckanext/datapusher/tests/test_action.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/set_permissions.sql
    A ckanext/datastore/tests/test_chained_action.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/writer.py
    M ckanext/reclineview/theme/public/recline_view.js
    M ckanext/reclineview/theme/public/resource.config
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers-2x.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon-2x.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-shadow.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet-src.js
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.css
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/layers-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/layers.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-icon-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-icon.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-shadow.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet-src.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet.js
    M contrib/docker/docker-compose.yml
    M dev-requirements.txt
    M doc/conf.py
    M doc/contributing/test.rst
    M doc/extensions/plugin-interfaces.rst
    M doc/maintaining/configuration.rst
    M doc/maintaining/installing/index.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/installing/solr.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into 3444-datatables-view


  Commit: 937dae73d9ed16d3f7ef4bf5e94b3ed09724de9a
      https://github.com/ckan/ckan/commit/937dae73d9ed16d3f7ef4bf5e94b3ed09724de9a
  Author: Mikko Nieminen <mikko.nieminen at gofore.com>
  Date:   2017-05-09 (Tue, 09 May 2017)

  Changed paths:
    M ckan/templates/group/about.html
    M ckan/templates/group/edit.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/read.html
    M ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_item.html
    M ckan/templates/group/snippets/info.html

  Log Message:
  -----------
  Add localization support for group templates


  Commit: bc2e6e4b7785172fc244094e135a24e01d39e62d
      https://github.com/ckan/ckan/commit/bc2e6e4b7785172fc244094e135a24e01d39e62d
  Author: Mikko Nieminen <mikko.nieminen at gofore.com>
  Date:   2017-05-09 (Tue, 09 May 2017)

  Changed paths:
    M ckan/templates/group/snippets/group_item.html

  Log Message:
  -----------
  Add localization support to group_item template View-link


  Commit: 759113acd3f2480197e0fd33c8de4fd521fda178
      https://github.com/ckan/ckan/commit/759113acd3f2480197e0fd33c8de4fd521fda178
  Author: Mikko Nieminen <mikko.nieminen at gofore.com>
  Date:   2017-05-12 (Fri, 12 May 2017)

  Changed paths:
    M ckan/templates/group/snippets/group_item.html

  Log Message:
  -----------
  Fix failing group tests


  Commit: b77c6faba4b32638d1f0f0a78356f5cd9f3bbb4b
      https://github.com/ckan/ckan/commit/b77c6faba4b32638d1f0f0a78356f5cd9f3bbb4b
  Author: Mikko Nieminen <mikko.nieminen at gofore.com>
  Date:   2017-05-12 (Fri, 12 May 2017)

  Changed paths:
    M ckan/templates/group/about.html
    M ckan/templates/group/edit.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/read.html
    M ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/info.html

  Log Message:
  -----------
  Improve conditionals in templates between translated and display_name


  Commit: 2c2615f362559d05df986621f9c899d6ffcf8ac3
      https://github.com/ckan/ckan/commit/2c2615f362559d05df986621f9c899d6ffcf8ac3
  Author: amercader <amercadero at gmail.com>
  Date:   2017-05-12 (Fri, 12 May 2017)

  Changed paths:
    M ckan/config/middleware/__init__.py
    M ckan/config/middleware/common_middleware.py
    M ckan/config/middleware/flask_app.py
    M ckan/config/middleware/pylons_app.py
    M ckan/tests/config/test_middleware.py
    M ckan/tests/lib/test_i18n.py

  Log Message:
  -----------
  [#3196] Handle i18n on incoming requests before app dispatching

The I18nMiddleware strips the locale part of the incoming request URL
(eg '/sk/about' -> '/about'). Right now this was only done after the app
dipatching was done, so when querying the Flask mapper if it could
handle such a request it also returned False (Pylons worked only because
we have the infamous "catch-all" rule).

This handling of the environ needs to be done before the mappers are
called, so I've moved the relevant logic out of its own middleware and
into the main AskAppDispatchMiddleware to simplify things and make it
more explicit.

Added a test that covers translated / untranslated strings for Flask /
Pylons.


  Commit: 7f2310920735cc81200431cfb70eaa25e4a8b364
      https://github.com/ckan/ckan/commit/7f2310920735cc81200431cfb70eaa25e4a8b364
  Author: amercader <amercadero at gmail.com>
  Date:   2017-05-12 (Fri, 12 May 2017)

  Changed paths:
    M ckan/config/middleware/flask_app.py
    M requirements.in
    M requirements.txt

  Log Message:
  -----------
  [#3196] Upgrade Flask-babel to 0.11.2

To support custom domains


  Commit: 77b54c0927bce6f2124aea8e66372f8a24824f18
      https://github.com/ckan/ckan/commit/77b54c0927bce6f2124aea8e66372f8a24824f18
  Author: amercader <amercadero at gmail.com>
  Date:   2017-05-12 (Fri, 12 May 2017)

  Changed paths:
    M bin/travis-install-dependencies
    M circle.yml
    M ckan/controllers/group.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/lib/navl/validators.py
    M ckan/logic/auth/update.py
    M ckan/templates/organization/members.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/tests/controllers/test_group.py
    M ckan/tests/helpers.py
    M ckan/tests/lib/navl/test_dictization_functions.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datapusher/tests/test_interfaces.py
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/helpers.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py
    M contrib/docker/docker-compose.yml
    M doc/conf.py
    M doc/maintaining/datastore.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/installing/solr.rst
    A requirement-setuptools.txt
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-i18n


  Commit: 67e9c5303ed113c33616393a8cff1a38e375132d
      https://github.com/ckan/ckan/commit/67e9c5303ed113c33616393a8cff1a38e375132d
  Author: Ian Ward <ian at excess.org>
  Date:   2017-05-14 (Sun, 14 May 2017)

  Changed paths:
    M bin/travis-install-dependencies
    M circle.yml
    M ckan/controllers/group.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/lib/navl/validators.py
    M ckan/logic/auth/update.py
    M ckan/templates/organization/members.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/tests/controllers/test_group.py
    M ckan/tests/helpers.py
    M ckan/tests/lib/navl/test_dictization_functions.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/helpers.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_delete.py
    M contrib/docker/docker-compose.yml
    M doc/conf.py
    M doc/maintaining/datastore.rst
    M doc/maintaining/installing/index.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/installing/solr.rst
    A requirement-setuptools.txt
    M setup.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into 3523-datastore-search-performance


  Commit: 16cc532b7c560b709a13a110e186e7dd48bf036a
      https://github.com/ckan/ckan/commit/16cc532b7c560b709a13a110e186e7dd48bf036a
  Author: Mikko Nieminen <mikko.nieminen at gofore.com>
  Date:   2017-05-15 (Mon, 15 May 2017)

  Changed paths:
    M ckan/controllers/group.py

  Log Message:
  -----------
  Add include_extras to group index group_list call to display localized fields in group search


  Commit: 32c5883a8f7338be2e37bea08a54a9b84258bd86
      https://github.com/ckan/ckan/commit/32c5883a8f7338be2e37bea08a54a9b84258bd86
  Author: David Read <david.read at hackneyworkshop.com>
  Date:   2017-05-15 (Mon, 15 May 2017)

  Changed paths:
    M doc/maintaining/installing/install-from-source.rst

  Log Message:
  -----------
  #3544 Fix info about packaging - 16.04 not supported yet for those.


  Commit: 9b435319c4242cd37ac0d6bf3d3e02bdc929c4ba
      https://github.com/ckan/ckan/commit/9b435319c4242cd37ac0d6bf3d3e02bdc929c4ba
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-05-16 (Tue, 16 May 2017)

  Changed paths:
    M doc/maintaining/installing/install-from-source.rst

  Log Message:
  -----------
  Merge pull request #3563 from ckan/fix-doc-packages

#3544 Fix info about packaging - 16.04 not supported yet for those.


  Commit: 222d207dc6d1632cbf0f9e75b2c49194287d4b80
      https://github.com/ckan/ckan/commit/222d207dc6d1632cbf0f9e75b2c49194287d4b80
  Author: Jinfei Fan <fanjinfei at hotmail.com>
  Date:   2017-05-16 (Tue, 16 May 2017)

  Changed paths:
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  apply triggers to an existing datastore resource


  Commit: cf48e035e8f103b80739caa96128d787ff487121
      https://github.com/ckan/ckan/commit/cf48e035e8f103b80739caa96128d787ff487121
  Author: Jinfei Fan <fanjinfei at hotmail.com>
  Date:   2017-05-16 (Tue, 16 May 2017)

  Changed paths:
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  rename API


  Commit: 59bf205bfa6d789bc8f22febeed124e31063ab3b
      https://github.com/ckan/ckan/commit/59bf205bfa6d789bc8f22febeed124e31063ab3b
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-05-18 (Thu, 18 May 2017)

  Changed paths:
    A ckan/lib/lazyjson.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/writer.py
    M requirements.in
    M requirements.txt

  Log Message:
  -----------
  Merge pull request #3523 from ckan/3523-datastore-search-performance

datastore dump + search performance


  Commit: 782c9a5a7bb69e9d34a20ee8567ac6d95a720c65
      https://github.com/ckan/ckan/commit/782c9a5a7bb69e9d34a20ee8567ac6d95a720c65
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-05-18 (Thu, 18 May 2017)

  Changed paths:
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  Merge pull request #3565 from fanjinfei/core_master

apply triggers to existing datastore resource


  Commit: c58a16d5c19150f53badabf794cb1d6cd8d983e6
      https://github.com/ckan/ckan/commit/c58a16d5c19150f53badabf794cb1d6cd8d983e6
  Author: Konstantin Sivakov <tino097 at gmail.com>
  Date:   2017-05-18 (Thu, 18 May 2017)

  Changed paths:
    M ckan/logic/schema.py
    M ckan/logic/validators.py

  Log Message:
  -----------
  email validation for user input


  Commit: 79b4f171ca85c58f8cc8e942a3b80f2618a64d76
      https://github.com/ckan/ckan/commit/79b4f171ca85c58f8cc8e942a3b80f2618a64d76
  Author: Konstantin Sivakov <tino097 at gmail.com>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M ckan/logic/validators.py

  Log Message:
  -----------
  fix code by review notes


  Commit: 58f69c3980d50168149ebe2a20bfdacb75991ae3
      https://github.com/ckan/ckan/commit/58f69c3980d50168149ebe2a20bfdacb75991ae3
  Author: Yan <yan.rudenko at linkdigital.com.au>
  Date:   2017-05-22 (Mon, 22 May 2017)

  Changed paths:
    M ckan/logic/action/get.py

  Log Message:
  -----------
  Fix for checking


  Commit: 9e4599b468d2c96a37a6d1f58d285d0494fae5c0
      https://github.com/ckan/ckan/commit/9e4599b468d2c96a37a6d1f58d285d0494fae5c0
  Author: Florian Brucker <florian.brucker at it.karlsruhe.de>
  Date:   2017-05-22 (Mon, 22 May 2017)

  Changed paths:
    M ckan/public/base/javascript/modules/resource-view-filters.js

  Log Message:
  -----------
  [#3570] Fix syntax error in resource-view-filters JS module


  Commit: 9ac463bb2afb52f7055b8539cc9b3208122d1dfb
      https://github.com/ckan/ckan/commit/9ac463bb2afb52f7055b8539cc9b3208122d1dfb
  Author: Yan <yan.rudenko at linkdigital.com.au>
  Date:   2017-05-22 (Mon, 22 May 2017)

  Changed paths:
    M ckan/logic/action/update.py
    M ckan/tests/logic/action/test_update.py

  Log Message:
  -----------
  Added test and modification to logic


  Commit: fb33436ef488165a3db31e01ea80a74516e20c11
      https://github.com/ckan/ckan/commit/fb33436ef488165a3db31e01ea80a74516e20c11
  Author: Yan <yan.rudenko at linkdigital.com.au>
  Date:   2017-05-22 (Mon, 22 May 2017)

  Changed paths:
    M .circleci-matrix.yml
    A .editorconfig
    A .travis.yml
    M CHANGELOG.rst
    M Dockerfile
    M README.rst
    M bin/travis-install-dependencies
    M circle.yml
    M ckan/authz.py
    M ckan/ckan_nose_plugin.py
    M ckan/common.py
    M ckan/config/deployment.ini_tmpl
    M ckan/config/environment.py
    M ckan/config/middleware/flask_app.py
    M ckan/config/middleware/pylons_app.py
    M ckan/config/routing.py
    M ckan/controllers/admin.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/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/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/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/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/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/lib/activity_streams.py
    M ckan/lib/base.py
    M ckan/lib/celery_app.py
    M ckan/lib/cli.py
    M ckan/lib/dictization/__init__.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/email_notifications.py
    M ckan/lib/fanstatic_resources.py
    M ckan/lib/helpers.py
    M ckan/lib/i18n.py
    M ckan/lib/jinja_extensions.py
    M ckan/lib/jobs.py
    A ckan/lib/lazyjson.py
    M ckan/lib/mailer.py
    M ckan/lib/maintain.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/lib/navl/validators.py
    M ckan/lib/plugins.py
    M ckan/logic/__init__.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/logic/auth/update.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/model/activity.py
    M ckan/model/dashboard.py
    M ckan/model/resource.py
    M ckan/model/system_info.py
    M ckan/model/user.py
    M ckan/pastertemplates/template/bin/travis-run.sh_tmpl
    A ckan/pastertemplates/template/ckanext/+project_shortname+/i18n/+dot+gitignore
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    M ckan/public/base/css/fuchsia.css
    M ckan/public/base/css/green.css
    M ckan/public/base/css/main.css
    M ckan/public/base/css/maroon.css
    M ckan/public/base/css/red.css
    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/javascript/client.js
    M ckan/public/base/javascript/main.js
    M ckan/public/base/javascript/modules/basic-form.js
    M ckan/public/base/javascript/modules/custom-fields.js
    M ckan/public/base/javascript/modules/follow.js
    M ckan/public/base/javascript/modules/image-upload.js
    M ckan/public/base/javascript/modules/resource-reorder.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/test/spec/modules/custom-fields.spec.js
    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/bootstrap/less/tests/css-tests.html
    M ckan/public/base/vendor/bootstrap/less/tests/navbar-fixed-top.html
    M ckan/public/base/vendor/bootstrap/less/tests/navbar-static-top.html
    M ckan/public/base/vendor/bootstrap/less/tests/navbar.html
    R ckan/public/base/vendor/font-awesome/css/font-awesome-ie7.css
    R ckan/public/base/vendor/font-awesome/css/font-awesome-ie7.min.css
    M ckan/public/base/vendor/font-awesome/css/font-awesome.css
    M ckan/public/base/vendor/font-awesome/css/font-awesome.min.css
    R ckan/public/base/vendor/font-awesome/font/FontAwesome.otf
    R ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.eot
    R ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.svg
    R ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.ttf
    R ckan/public/base/vendor/font-awesome/font/fontawesome-webfont.woff
    A ckan/public/base/vendor/font-awesome/fonts/FontAwesome.otf
    A ckan/public/base/vendor/font-awesome/fonts/fontawesome-webfont.eot
    A ckan/public/base/vendor/font-awesome/fonts/fontawesome-webfont.svg
    A ckan/public/base/vendor/font-awesome/fonts/fontawesome-webfont.ttf
    A ckan/public/base/vendor/font-awesome/fonts/fontawesome-webfont.woff
    R ckan/public/base/vendor/font-awesome/less/bootstrap.less
    A ckan/public/base/vendor/font-awesome/less/bordered-pulled.less
    M ckan/public/base/vendor/font-awesome/less/core.less
    M ckan/public/base/vendor/font-awesome/less/extras.less
    A ckan/public/base/vendor/font-awesome/less/fixed-width.less
    R ckan/public/base/vendor/font-awesome/less/font-awesome-ie7.less
    M ckan/public/base/vendor/font-awesome/less/font-awesome.less
    M ckan/public/base/vendor/font-awesome/less/icons.less
    A ckan/public/base/vendor/font-awesome/less/larger.less
    A ckan/public/base/vendor/font-awesome/less/list.less
    M ckan/public/base/vendor/font-awesome/less/mixins.less
    M ckan/public/base/vendor/font-awesome/less/path.less
    A ckan/public/base/vendor/font-awesome/less/rotated-flipped.less
    A ckan/public/base/vendor/font-awesome/less/spinning.less
    A ckan/public/base/vendor/font-awesome/less/stacked.less
    M ckan/public/base/vendor/font-awesome/less/variables.less
    M ckan/public/base/vendor/resource.config
    M ckan/public/base/vendor/select2/select2.png
    M ckan/public/base/vendor/select2/select2x2.png
    M ckan/templates/admin/config.html
    M ckan/templates/admin/index.html
    M ckan/templates/admin/trash.html
    M ckan/templates/dataviewer/snippets/data_preview.html
    M ckan/templates/dataviewer/snippets/no_preview.html
    M ckan/templates/development/primer.html
    M ckan/templates/development/snippets/actions.html
    M ckan/templates/development/snippets/facet.html
    M ckan/templates/development/snippets/list.html
    M ckan/templates/development/snippets/module.html
    M ckan/templates/development/snippets/nav.html
    M ckan/templates/development/snippets/page_header.html
    M ckan/templates/development/snippets/simple-input.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/index.html
    M ckan/templates/group/member_new.html
    M ckan/templates/group/members.html
    M ckan/templates/group/snippets/helper.html
    M ckan/templates/header.html
    M ckan/templates/home/snippets/search.html
    M ckan/templates/macros/autoform.html
    M ckan/templates/macros/form.html
    M ckan/templates/organization/bulk_process.html
    M ckan/templates/organization/edit_base.html
    M ckan/templates/organization/index.html
    M ckan/templates/organization/member_new.html
    M ckan/templates/organization/members.html
    M ckan/templates/organization/read.html
    M ckan/templates/organization/snippets/help.html
    M ckan/templates/organization/snippets/helper.html
    M ckan/templates/organization/snippets/info.html
    M ckan/templates/package/base_form_page.html
    M ckan/templates/package/edit_base.html
    M ckan/templates/package/edit_view.html
    M ckan/templates/package/new_resource_not_draft.html
    M ckan/templates/package/new_view.html
    M ckan/templates/package/read.html
    R ckan/templates/package/resource_data.html
    M ckan/templates/package/resource_edit_base.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/resource_views.html
    M ckan/templates/package/resources.html
    M ckan/templates/package/search.html
    M ckan/templates/package/snippets/package_basic_fields.html
    M ckan/templates/package/snippets/resource_form.html
    M ckan/templates/package/snippets/resource_help.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/templates/package/snippets/resource_view.html
    M ckan/templates/package/snippets/resource_views_list.html
    M ckan/templates/package/snippets/resource_views_list_item.html
    M ckan/templates/package/snippets/resources.html
    M ckan/templates/package/snippets/resources_list.html
    M ckan/templates/package/snippets/view_form_filters.html
    M ckan/templates/package/snippets/view_help.html
    M ckan/templates/package/view_edit_base.html
    M ckan/templates/revision/read.html
    M ckan/templates/snippets/activity_item.html
    M ckan/templates/snippets/datapusher_status.html
    M ckan/templates/snippets/disqus_trackback.html
    M ckan/templates/snippets/facet_list.html
    M ckan/templates/snippets/follow_button.html
    M ckan/templates/snippets/home_breadcrumb_item.html
    M ckan/templates/snippets/license.html
    M ckan/templates/snippets/organization.html
    M ckan/templates/snippets/package_item.html
    M ckan/templates/snippets/search_form.html
    M ckan/templates/snippets/simple_search.html
    M ckan/templates/snippets/social.html
    M ckan/templates/snippets/subscribe.html
    M ckan/templates/tag/index.html
    A ckan/templates/tests/flash_messages.html
    M ckan/templates/user/dashboard_datasets.html
    M ckan/templates/user/dashboard_groups.html
    M ckan/templates/user/dashboard_organizations.html
    M ckan/templates/user/edit.html
    M ckan/templates/user/snippets/followee_dropdown.html
    M ckan/templates/user/snippets/user_search.html
    M ckan/tests/config/test_middleware.py
    A ckan/tests/config/test_sessions.py
    M ckan/tests/controllers/test_group.py
    M ckan/tests/controllers/test_package.py
    M ckan/tests/controllers/test_user.py
    M ckan/tests/helpers.py
    M ckan/tests/legacy/ckantestplugins.py
    M ckan/tests/legacy/lib/test_i18n.py
    M ckan/tests/legacy/logic/test_action.py
    M ckan/tests/lib/_i18n_build_js_translations/de/LC_MESSAGES/ckanext-test_js_translations.po
    M ckan/tests/lib/navl/test_dictization_functions.py
    M ckan/tests/lib/test_base.py
    A ckan/tests/lib/test_celery_app.py
    M ckan/tests/lib/test_jobs.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
    M ckan/tests/test_common.py
    A ckan/views/__init__.py
    A ckan/views/api.py
    M ckanext/datapusher/cli.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datapusher/plugin.py
    A ckanext/datapusher/templates/datapusher/resource_data.html
    A ckanext/datapusher/templates/package/resource_edit_base.html
    M ckanext/datapusher/tests/test.py
    M ckanext/datapusher/tests/test_action.py
    M ckanext/datapusher/tests/test_interfaces.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/set_permissions.sql
    A ckanext/datastore/templates/datastore/dictionary.html
    A ckanext/datastore/templates/package/resource_edit_base.html
    M ckanext/datastore/templates/package/resource_read.html
    M ckanext/datastore/templates/package/snippets/data_api_button.html
    M ckanext/datastore/tests/helpers.py
    A ckanext/datastore/tests/test_chained_action.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py
    A ckanext/datastore/writer.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/example_iconfigurer/plugin.py
    M ckanext/example_iconfigurer/tests/test_example_iconfigurer.py
    M ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    M ckanext/example_theme/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    M ckanext/example_theme/v17_popover/templates/snippets/package_item.html
    M ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    M ckanext/example_theme/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    M ckanext/example_theme/v18_snippet_api/templates/snippets/package_item.html
    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/example_theme/v21_custom_jquery_plugin/templates/snippets/package_item.html
    M ckanext/imageview/plugin.py
    M ckanext/reclineview/plugin.py
    M ckanext/reclineview/theme/public/recline_view.js
    M ckanext/reclineview/theme/public/resource.config
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers-2x.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon-2x.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-shadow.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet-src.js
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.css
    R ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/layers-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/layers.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-icon-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-icon.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/images/marker-shadow.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet-src.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.7/leaflet.js
    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 ckanext/stats/templates/ckanext/stats/index.html
    M ckanext/test_tag_vocab_plugin.py
    M ckanext/textview/plugin.py
    A contrib/docker/ckan-entrypoint.sh
    M contrib/docker/docker-cloud.yml
    M contrib/docker/docker-compose.yml
    M contrib/docker/solr/Dockerfile
    M dev-requirements.txt
    M doc/_static/ckanlogo.png
    M doc/_templates/footer.html
    M doc/conf.py
    M doc/contributing/test.rst
    M doc/extensions/plugin-interfaces.rst
    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
    M doc/maintaining/datastore.rst
    M doc/maintaining/installing/index.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/installing/solr.rst
    M doc/user-guide.rst
    A requirement-setuptools.txt
    M requirements.in
    M requirements.txt
    M setup.py
    M test-core.ini

  Log Message:
  -----------
  Solve conflict with master branch


  Commit: c6f41a92d76a97cfcf92b8e8d465efeb4b6aaba1
      https://github.com/ckan/ckan/commit/c6f41a92d76a97cfcf92b8e8d465efeb4b6aaba1
  Author: Sergey <tonnydexter at gmail.com>
  Date:   2017-05-22 (Mon, 22 May 2017)

  Changed paths:
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/media.less

  Log Message:
  -----------
  Merge pull request #3472 from Engerrs/3471-small-design-issues

[#3471] Fix for small issues and Create dataset page and Dashboard tabs


  Commit: 9991b5bed4360d1886f214cab8d1023d24d11b0c
      https://github.com/ckan/ckan/commit/9991b5bed4360d1886f214cab8d1023d24d11b0c
  Author: Yan <yan.rudenko at linkdigital.com.au>
  Date:   2017-05-22 (Mon, 22 May 2017)

  Changed paths:
    M ckan/logic/action/update.py
    M ckan/tests/logic/action/test_update.py

  Log Message:
  -----------
  Added logic fix and test fix


  Commit: 5aa8b024ffa585fc760bbc60fe6dc4271d479906
      https://github.com/ckan/ckan/commit/5aa8b024ffa585fc760bbc60fe6dc4271d479906
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-05-22 (Mon, 22 May 2017)

  Changed paths:
    M bin/travis-install-dependencies
    M circle.yml
    M ckan/controllers/group.py
    A ckan/lib/lazyjson.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/lib/navl/validators.py
    M ckan/logic/auth/update.py
    M ckan/templates/organization/members.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/tests/controllers/test_group.py
    M ckan/tests/helpers.py
    M ckan/tests/lib/navl/test_dictization_functions.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datapusher/tests/test_interfaces.py
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/helpers.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py
    M ckanext/datastore/writer.py
    M contrib/docker/docker-compose.yml
    M doc/conf.py
    M doc/maintaining/datastore.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/installing/solr.rst
    A requirement-setuptools.txt
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  datastore merge conflict


  Commit: c19cbc88724b98243e7ac9d63f64d90e34f4365e
      https://github.com/ckan/ckan/commit/c19cbc88724b98243e7ac9d63f64d90e34f4365e
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M ckanext/datastore/backend/__init__.py
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/logic/action.py

  Log Message:
  -----------
  put `datastore_function_..` inside backend


  Commit: 9f8ed8638f8f1e09c9dedf6e1e81df25635c57ba
      https://github.com/ckan/ckan/commit/9f8ed8638f8f1e09c9dedf6e1e81df25635c57ba
  Author: Konstantin Sivakov <tino097 at gmail.com>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    A ckan/lib/lazyjson.py
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/media.less
    M ckanext/datastore/controller.py
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/writer.py
    M requirements.in
    M requirements.txt

  Log Message:
  -----------
  Merge remote-tracking branch 'upstream/master' into email-validator


  Commit: d4119e98f319aa4807149c5898f5d18fdccc3dce
      https://github.com/ckan/ckan/commit/d4119e98f319aa4807149c5898f5d18fdccc3dce
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M ckan/public/base/javascript/modules/resource-view-filters.js

  Log Message:
  -----------
  Merge pull request #3571 from torfsen/3570-view-filters-not-working

[#3570] Fix syntax error in resource-view-filters JS module


  Commit: 0b527b4620c03bec903c59b0871ca5f7f8e763f6
      https://github.com/ckan/ckan/commit/0b527b4620c03bec903c59b0871ca5f7f8e763f6
  Author: Konstantin Sivakov <tino097 at gmail.com>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M ckan/tests/legacy/functional/api/test_activity.py

  Log Message:
  -----------
  update test according rfc2606


  Commit: 45573026565ac179483e1a92b5953ed168ff1f4c
      https://github.com/ckan/ckan/commit/45573026565ac179483e1a92b5953ed168ff1f4c
  Author: Harald von Waldow <harald.vonwaldow at eawag.ch>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M doc/maintaining/upgrading/upgrade-postgres.rst

  Log Message:
  -----------
  Fixed typo in "16. enable PostGIS on the main database"

Change of owner for PostGIS table spatial_ref_sys instead of duplicate line.
Compare http://docs.ckan.org/projects/ckanext-spatial/en/latest/install.html#ubuntu-14-04-postgresql-9-3-and-postgis-2-1


  Commit: 6158dd5adca3162f77f7cb25db56d28e0bf2dad3
      https://github.com/ckan/ckan/commit/6158dd5adca3162f77f7cb25db56d28e0bf2dad3
  Author: Ian Ward <ian at excess.org>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M doc/maintaining/upgrading/upgrade-postgres.rst

  Log Message:
  -----------
  Merge pull request #3575 from hvwaldow/patch-2

Fixed typo in "16. enable PostGIS on the main database"


  Commit: ce96d02645c1d7799bf746595141a40daad3330c
      https://github.com/ckan/ckan/commit/ce96d02645c1d7799bf746595141a40daad3330c
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/tests/legacy/functional/api/test_activity.py

  Log Message:
  -----------
  Merge pull request #3568 from tino097/email-validator

email validation for user input


  Commit: 80cc2b6d56bd26f651ec95837038d983b82198ad
      https://github.com/ckan/ckan/commit/80cc2b6d56bd26f651ec95837038d983b82198ad
  Author: amercader <amercadero at gmail.com>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M ckan/tests/test_coding_standards.py
    R ckanext/example_theme/__init__.py
    R ckanext/example_theme/custom_config_setting/__init__.py
    R ckanext/example_theme/custom_config_setting/plugin.py
    R ckanext/example_theme/custom_config_setting/templates/home/layout1.html
    R ckanext/example_theme/custom_config_setting/templates/snippets
    R ckanext/example_theme/custom_emails/__init__.py
    R ckanext/example_theme/custom_emails/plugin.py
    R ckanext/example_theme/custom_emails/templates/emails/invite_user.txt
    R ckanext/example_theme/custom_emails/templates/emails/invite_user_subject.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password_subject.txt
    R ckanext/example_theme/custom_emails/tests.py
    R ckanext/example_theme/v01_empty_extension/__init__.py
    R ckanext/example_theme/v01_empty_extension/plugin.py
    R ckanext/example_theme/v02_empty_template/__init__.py
    R ckanext/example_theme/v02_empty_template/plugin.py
    R ckanext/example_theme/v02_empty_template/templates/home/index.html
    R ckanext/example_theme/v03_jinja/__init__.py
    R ckanext/example_theme/v03_jinja/plugin.py
    R ckanext/example_theme/v03_jinja/templates/home/index.html
    R ckanext/example_theme/v04_ckan_extends/__init__.py
    R ckanext/example_theme/v04_ckan_extends/plugin.py
    R ckanext/example_theme/v04_ckan_extends/templates/home/index.html
    R ckanext/example_theme/v05_block/__init__.py
    R ckanext/example_theme/v05_block/plugin.py
    R ckanext/example_theme/v05_block/templates/home/layout1.html
    R ckanext/example_theme/v06_super/__init__.py
    R ckanext/example_theme/v06_super/plugin.py
    R ckanext/example_theme/v06_super/templates/home/layout1.html
    R ckanext/example_theme/v07_helper_function/__init__.py
    R ckanext/example_theme/v07_helper_function/plugin.py
    R ckanext/example_theme/v07_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v08_custom_helper_function/__init__.py
    R ckanext/example_theme/v08_custom_helper_function/plugin.py
    R ckanext/example_theme/v08_custom_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v09_snippet/__init__.py
    R ckanext/example_theme/v09_snippet/plugin.py
    R ckanext/example_theme/v09_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/__init__.py
    R ckanext/example_theme/v10_custom_snippet/plugin.py
    R ckanext/example_theme/v10_custom_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v11_HTML_and_CSS/__init__.py
    R ckanext/example_theme/v11_HTML_and_CSS/plugin.py
    R ckanext/example_theme/v11_HTML_and_CSS/templates/home/layout1.html
    R ckanext/example_theme/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v12_extra_public_dir/__init__.py
    R ckanext/example_theme/v12_extra_public_dir/plugin.py
    R ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    R ckanext/example_theme/v12_extra_public_dir/templates/home/layout1.html
    R ckanext/example_theme/v12_extra_public_dir/templates/home/snippets/promoted.html
    R ckanext/example_theme/v12_extra_public_dir/templates/snippets
    R ckanext/example_theme/v13_custom_css/__init__.py
    R ckanext/example_theme/v13_custom_css/plugin.py
    R ckanext/example_theme/v13_custom_css/public/example_theme.css
    R ckanext/example_theme/v13_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v13_custom_css/templates/base.html
    R ckanext/example_theme/v13_custom_css/templates/home
    R ckanext/example_theme/v13_custom_css/templates/snippets
    R ckanext/example_theme/v14_more_custom_css/__init__.py
    R ckanext/example_theme/v14_more_custom_css/plugin.py
    R ckanext/example_theme/v14_more_custom_css/public/example_theme.css
    R ckanext/example_theme/v14_more_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v14_more_custom_css/templates
    R ckanext/example_theme/v15_fanstatic/__init__.py
    R ckanext/example_theme/v15_fanstatic/fanstatic/example_theme.css
    R ckanext/example_theme/v15_fanstatic/plugin.py
    R ckanext/example_theme/v15_fanstatic/public/promoted-image.jpg
    R ckanext/example_theme/v15_fanstatic/templates/base.html
    R ckanext/example_theme/v15_fanstatic/templates/home
    R ckanext/example_theme/v15_fanstatic/templates/snippets
    R ckanext/example_theme/v16_initialize_a_javascript_module/__init__.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v16_initialize_a_javascript_module/plugin.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    R ckanext/example_theme/v17_popover/__init__.py
    R ckanext/example_theme/v17_popover/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v17_popover/plugin.py
    R ckanext/example_theme/v17_popover/templates/snippets/package_item.html
    R ckanext/example_theme/v18_snippet_api/__init__.py
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v18_snippet_api/plugin.py
    R ckanext/example_theme/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    R ckanext/example_theme/v18_snippet_api/templates/snippets/package_item.html
    R ckanext/example_theme/v19_01_error/__init__.py
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_01_error/plugin.py
    R ckanext/example_theme/v19_01_error/templates
    R ckanext/example_theme/v19_02_error_handling/__init__.py
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_02_error_handling/plugin.py
    R ckanext/example_theme/v19_02_error_handling/templates
    R ckanext/example_theme/v20_pubsub/__init__.py
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v20_pubsub/plugin.py
    R ckanext/example_theme/v20_pubsub/templates
    R ckanext/example_theme/v21_custom_jquery_plugin/__init__.py
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    R ckanext/example_theme/v21_custom_jquery_plugin/plugin.py
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/ajax_snippets
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/snippets/package_item.html
    A ckanext/example_theme_docs/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/plugin.py
    A ckanext/example_theme_docs/custom_config_setting/templates/home/layout1.html
    A ckanext/example_theme_docs/custom_config_setting/templates/snippets
    A ckanext/example_theme_docs/custom_emails/__init__.py
    A ckanext/example_theme_docs/custom_emails/plugin.py
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user_subject.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password_subject.txt
    A ckanext/example_theme_docs/custom_emails/tests.py
    A ckanext/example_theme_docs/v01_empty_extension/__init__.py
    A ckanext/example_theme_docs/v01_empty_extension/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/__init__.py
    A ckanext/example_theme_docs/v02_empty_template/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/templates/home/index.html
    A ckanext/example_theme_docs/v03_jinja/__init__.py
    A ckanext/example_theme_docs/v03_jinja/plugin.py
    A ckanext/example_theme_docs/v03_jinja/templates/home/index.html
    A ckanext/example_theme_docs/v04_ckan_extends/__init__.py
    A ckanext/example_theme_docs/v04_ckan_extends/plugin.py
    A ckanext/example_theme_docs/v04_ckan_extends/templates/home/index.html
    A ckanext/example_theme_docs/v05_block/__init__.py
    A ckanext/example_theme_docs/v05_block/plugin.py
    A ckanext/example_theme_docs/v05_block/templates/home/layout1.html
    A ckanext/example_theme_docs/v06_super/__init__.py
    A ckanext/example_theme_docs/v06_super/plugin.py
    A ckanext/example_theme_docs/v06_super/templates/home/layout1.html
    A ckanext/example_theme_docs/v07_helper_function/__init__.py
    A ckanext/example_theme_docs/v07_helper_function/plugin.py
    A ckanext/example_theme_docs/v07_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v08_custom_helper_function/__init__.py
    A ckanext/example_theme_docs/v08_custom_helper_function/plugin.py
    A ckanext/example_theme_docs/v08_custom_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v09_snippet/__init__.py
    A ckanext/example_theme_docs/v09_snippet/plugin.py
    A ckanext/example_theme_docs/v09_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/__init__.py
    A ckanext/example_theme_docs/v10_custom_snippet/plugin.py
    A ckanext/example_theme_docs/v10_custom_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/__init__.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/plugin.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/home/layout1.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v12_extra_public_dir/__init__.py
    A ckanext/example_theme_docs/v12_extra_public_dir/plugin.py
    A ckanext/example_theme_docs/v12_extra_public_dir/public/promoted-image.jpg
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/layout1.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/snippets/promoted.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/snippets
    A ckanext/example_theme_docs/v13_custom_css/__init__.py
    A ckanext/example_theme_docs/v13_custom_css/plugin.py
    A ckanext/example_theme_docs/v13_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v13_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v13_custom_css/templates/base.html
    A ckanext/example_theme_docs/v13_custom_css/templates/home
    A ckanext/example_theme_docs/v13_custom_css/templates/snippets
    A ckanext/example_theme_docs/v14_more_custom_css/__init__.py
    A ckanext/example_theme_docs/v14_more_custom_css/plugin.py
    A ckanext/example_theme_docs/v14_more_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v14_more_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v14_more_custom_css/templates
    A ckanext/example_theme_docs/v15_fanstatic/__init__.py
    A ckanext/example_theme_docs/v15_fanstatic/fanstatic/example_theme.css
    A ckanext/example_theme_docs/v15_fanstatic/plugin.py
    A ckanext/example_theme_docs/v15_fanstatic/public/promoted-image.jpg
    A ckanext/example_theme_docs/v15_fanstatic/templates/base.html
    A ckanext/example_theme_docs/v15_fanstatic/templates/home
    A ckanext/example_theme_docs/v15_fanstatic/templates/snippets
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/__init__.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/plugin.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v17_popover/__init__.py
    A ckanext/example_theme_docs/v17_popover/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v17_popover/plugin.py
    A ckanext/example_theme_docs/v17_popover/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v18_snippet_api/__init__.py
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v18_snippet_api/plugin.py
    A ckanext/example_theme_docs/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    A ckanext/example_theme_docs/v18_snippet_api/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v19_01_error/__init__.py
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_01_error/plugin.py
    A ckanext/example_theme_docs/v19_01_error/templates
    A ckanext/example_theme_docs/v19_02_error_handling/__init__.py
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_02_error_handling/plugin.py
    A ckanext/example_theme_docs/v19_02_error_handling/templates
    A ckanext/example_theme_docs/v20_pubsub/__init__.py
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v20_pubsub/plugin.py
    A ckanext/example_theme_docs/v20_pubsub/templates
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/__init__.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/plugin.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/ajax_snippets
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/snippets/package_item.html
    M doc/extensions/best-practices.rst
    M doc/theming/best-practices.rst
    M doc/theming/css.rst
    M doc/theming/fanstatic.rst
    M doc/theming/javascript.rst
    M doc/theming/static-files.rst
    M doc/theming/templates.rst
    M setup.py

  Log Message:
  -----------
  [#3146] Rename example theme plugin internally

See issue for background. When users were following the theming
tutorial they got an ImportError because the name suggested
(`example_theme`) was already used by the example plugin itself.

This patch renames the internal plugin and updates the code imports
shown on the docs, but not the docs themselves, so users should not see
any change.


  Commit: d7dbf2ef2bdcc6de64afd3180a1dca07d63aa6fc
      https://github.com/ckan/ckan/commit/d7dbf2ef2bdcc6de64afd3180a1dca07d63aa6fc
  Author: Sergey <tonnydexter at gmail.com>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M ckan/logic/action/update.py
    M ckan/tests/logic/action/test_update.py

  Log Message:
  -----------
  Merge pull request #3515 from Engerrs/3457-update_resource_format_creates_new_view

[#3457]Create new resource view if resource format changed


  Commit: 94e2ed6e669ea1fbcea1c0067acec9593b7b363b
      https://github.com/ckan/ckan/commit/94e2ed6e669ea1fbcea1c0067acec9593b7b363b
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M ckan/logic/action/get.py
    M ckan/public/base/less/search.less
    M ckan/templates/snippets/search_form.html
    M ckan/tests/logic/action/test_get.py

  Log Message:
  -----------
  Merge pull request #3469 from Engerrs/2938-odd_feature_in_sorting_organizations_by_packages

[#2938] Odd feature in sorting organization by packages


  Commit: 52a30bed7ae63e93dd38f7d67e36f12ed5c1b5c0
      https://github.com/ckan/ckan/commit/52a30bed7ae63e93dd38f7d67e36f12ed5c1b5c0
  Author: amercader <amercadero at gmail.com>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M ckan/logic/action/get.py

  Log Message:
  -----------
  Revert "Fix for checking"

This reverts commit 58f69c3980d50168149ebe2a20bfdacb75991ae3.


  Commit: e44d461d0bf4c1ed62943dbe6af8340e55647194
      https://github.com/ckan/ckan/commit/e44d461d0bf4c1ed62943dbe6af8340e55647194
  Author: amercader <amercadero at gmail.com>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M ckan/tests/logic/action/test_get.py

  Log Message:
  -----------
  Revert "fix Pep8 problem in tests"

This reverts commit 464f8697c878ea5cd13517e63c464a0a8ce4ceaa.


  Commit: 024c70f926ca1cdeea2f8f0c6b04eeee4fc0d20e
      https://github.com/ckan/ckan/commit/024c70f926ca1cdeea2f8f0c6b04eeee4fc0d20e
  Author: amercader <amercadero at gmail.com>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M ckan/logic/action/get.py
    M ckan/public/base/less/search.less
    M ckan/templates/snippets/search_form.html
    M ckan/tests/logic/action/test_get.py

  Log Message:
  -----------
  Revert "[#2938] Odd feature in sorting organization by packages"

This reverts commit 13ff28f9bbce98606f9ea623247820c4c0c32680.


  Commit: 82c7fd7a87771ec9213a70239f9f7a47bbf8577a
      https://github.com/ckan/ckan/commit/82c7fd7a87771ec9213a70239f9f7a47bbf8577a
  Author: Ian Ward <ian at excess.org>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M ckanext/datatablesview/templates/datatables/datatables_view.html

  Log Message:
  -----------
  [#3444] fix hide/unhide buttons


  Commit: 70b690af4844333d8cc0cc151bde26407b68116f
      https://github.com/ckan/ckan/commit/70b690af4844333d8cc0cc151bde26407b68116f
  Author: Matt Fullerton <mattfullerton at users.noreply.github.com>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M contrib/docker/docker-compose.yml

  Log Message:
  -----------
  Override defaults by using container names

This removes the need to map ports outside of the container

cf. #3572, #3569, #3553


  Commit: e3b757844552b8259310781c16c16fe827cfea95
      https://github.com/ckan/ckan/commit/e3b757844552b8259310781c16c16fe827cfea95
  Author: Ian Ward <ian at excess.org>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M ckan/controllers/group.py
    M ckan/templates/group/about.html
    M ckan/templates/group/edit.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/read.html
    M ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_item.html
    M ckan/templates/group/snippets/info.html

  Log Message:
  -----------
  Merge pull request #3559 from 6aika/add-localization-support-for-groups

Add localization support for groups


  Commit: e589bf9a325f8fb30e397f42a5804c216d92d56f
      https://github.com/ckan/ckan/commit/e589bf9a325f8fb30e397f42a5804c216d92d56f
  Author: Ian Ward <ian at excess.org>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M contrib/docker/docker-compose.yml

  Log Message:
  -----------
  Merge pull request #3582 from mattfullerton/patch-8

Override defaults by using container names


  Commit: 45c33d9210c6c78a2e19aa8fdc34dabee4b3ecf3
      https://github.com/ckan/ckan/commit/45c33d9210c6c78a2e19aa8fdc34dabee4b3ecf3
  Author: David Read <david.read at hackneyworkshop.com>
  Date:   2017-06-01 (Thu, 01 Jun 2017)

  Changed paths:
    M ckan/tests/test_coding_standards.py
    R ckanext/example_theme/__init__.py
    R ckanext/example_theme/custom_config_setting/__init__.py
    R ckanext/example_theme/custom_config_setting/plugin.py
    R ckanext/example_theme/custom_config_setting/templates/home/layout1.html
    R ckanext/example_theme/custom_config_setting/templates/snippets
    R ckanext/example_theme/custom_emails/__init__.py
    R ckanext/example_theme/custom_emails/plugin.py
    R ckanext/example_theme/custom_emails/templates/emails/invite_user.txt
    R ckanext/example_theme/custom_emails/templates/emails/invite_user_subject.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password_subject.txt
    R ckanext/example_theme/custom_emails/tests.py
    R ckanext/example_theme/v01_empty_extension/__init__.py
    R ckanext/example_theme/v01_empty_extension/plugin.py
    R ckanext/example_theme/v02_empty_template/__init__.py
    R ckanext/example_theme/v02_empty_template/plugin.py
    R ckanext/example_theme/v02_empty_template/templates/home/index.html
    R ckanext/example_theme/v03_jinja/__init__.py
    R ckanext/example_theme/v03_jinja/plugin.py
    R ckanext/example_theme/v03_jinja/templates/home/index.html
    R ckanext/example_theme/v04_ckan_extends/__init__.py
    R ckanext/example_theme/v04_ckan_extends/plugin.py
    R ckanext/example_theme/v04_ckan_extends/templates/home/index.html
    R ckanext/example_theme/v05_block/__init__.py
    R ckanext/example_theme/v05_block/plugin.py
    R ckanext/example_theme/v05_block/templates/home/layout1.html
    R ckanext/example_theme/v06_super/__init__.py
    R ckanext/example_theme/v06_super/plugin.py
    R ckanext/example_theme/v06_super/templates/home/layout1.html
    R ckanext/example_theme/v07_helper_function/__init__.py
    R ckanext/example_theme/v07_helper_function/plugin.py
    R ckanext/example_theme/v07_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v08_custom_helper_function/__init__.py
    R ckanext/example_theme/v08_custom_helper_function/plugin.py
    R ckanext/example_theme/v08_custom_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v09_snippet/__init__.py
    R ckanext/example_theme/v09_snippet/plugin.py
    R ckanext/example_theme/v09_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/__init__.py
    R ckanext/example_theme/v10_custom_snippet/plugin.py
    R ckanext/example_theme/v10_custom_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v11_HTML_and_CSS/__init__.py
    R ckanext/example_theme/v11_HTML_and_CSS/plugin.py
    R ckanext/example_theme/v11_HTML_and_CSS/templates/home/layout1.html
    R ckanext/example_theme/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v12_extra_public_dir/__init__.py
    R ckanext/example_theme/v12_extra_public_dir/plugin.py
    R ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    R ckanext/example_theme/v12_extra_public_dir/templates/home/layout1.html
    R ckanext/example_theme/v12_extra_public_dir/templates/home/snippets/promoted.html
    R ckanext/example_theme/v12_extra_public_dir/templates/snippets
    R ckanext/example_theme/v13_custom_css/__init__.py
    R ckanext/example_theme/v13_custom_css/plugin.py
    R ckanext/example_theme/v13_custom_css/public/example_theme.css
    R ckanext/example_theme/v13_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v13_custom_css/templates/base.html
    R ckanext/example_theme/v13_custom_css/templates/home
    R ckanext/example_theme/v13_custom_css/templates/snippets
    R ckanext/example_theme/v14_more_custom_css/__init__.py
    R ckanext/example_theme/v14_more_custom_css/plugin.py
    R ckanext/example_theme/v14_more_custom_css/public/example_theme.css
    R ckanext/example_theme/v14_more_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v14_more_custom_css/templates
    R ckanext/example_theme/v15_fanstatic/__init__.py
    R ckanext/example_theme/v15_fanstatic/fanstatic/example_theme.css
    R ckanext/example_theme/v15_fanstatic/plugin.py
    R ckanext/example_theme/v15_fanstatic/public/promoted-image.jpg
    R ckanext/example_theme/v15_fanstatic/templates/base.html
    R ckanext/example_theme/v15_fanstatic/templates/home
    R ckanext/example_theme/v15_fanstatic/templates/snippets
    R ckanext/example_theme/v16_initialize_a_javascript_module/__init__.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v16_initialize_a_javascript_module/plugin.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    R ckanext/example_theme/v17_popover/__init__.py
    R ckanext/example_theme/v17_popover/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v17_popover/plugin.py
    R ckanext/example_theme/v17_popover/templates/snippets/package_item.html
    R ckanext/example_theme/v18_snippet_api/__init__.py
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v18_snippet_api/plugin.py
    R ckanext/example_theme/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    R ckanext/example_theme/v18_snippet_api/templates/snippets/package_item.html
    R ckanext/example_theme/v19_01_error/__init__.py
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_01_error/plugin.py
    R ckanext/example_theme/v19_01_error/templates
    R ckanext/example_theme/v19_02_error_handling/__init__.py
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_02_error_handling/plugin.py
    R ckanext/example_theme/v19_02_error_handling/templates
    R ckanext/example_theme/v20_pubsub/__init__.py
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v20_pubsub/plugin.py
    R ckanext/example_theme/v20_pubsub/templates
    R ckanext/example_theme/v21_custom_jquery_plugin/__init__.py
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    R ckanext/example_theme/v21_custom_jquery_plugin/plugin.py
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/ajax_snippets
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/snippets/package_item.html
    A ckanext/example_theme_docs/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/plugin.py
    A ckanext/example_theme_docs/custom_config_setting/templates/home/layout1.html
    A ckanext/example_theme_docs/custom_config_setting/templates/snippets
    A ckanext/example_theme_docs/custom_emails/__init__.py
    A ckanext/example_theme_docs/custom_emails/plugin.py
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user_subject.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password_subject.txt
    A ckanext/example_theme_docs/custom_emails/tests.py
    A ckanext/example_theme_docs/v01_empty_extension/__init__.py
    A ckanext/example_theme_docs/v01_empty_extension/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/__init__.py
    A ckanext/example_theme_docs/v02_empty_template/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/templates/home/index.html
    A ckanext/example_theme_docs/v03_jinja/__init__.py
    A ckanext/example_theme_docs/v03_jinja/plugin.py
    A ckanext/example_theme_docs/v03_jinja/templates/home/index.html
    A ckanext/example_theme_docs/v04_ckan_extends/__init__.py
    A ckanext/example_theme_docs/v04_ckan_extends/plugin.py
    A ckanext/example_theme_docs/v04_ckan_extends/templates/home/index.html
    A ckanext/example_theme_docs/v05_block/__init__.py
    A ckanext/example_theme_docs/v05_block/plugin.py
    A ckanext/example_theme_docs/v05_block/templates/home/layout1.html
    A ckanext/example_theme_docs/v06_super/__init__.py
    A ckanext/example_theme_docs/v06_super/plugin.py
    A ckanext/example_theme_docs/v06_super/templates/home/layout1.html
    A ckanext/example_theme_docs/v07_helper_function/__init__.py
    A ckanext/example_theme_docs/v07_helper_function/plugin.py
    A ckanext/example_theme_docs/v07_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v08_custom_helper_function/__init__.py
    A ckanext/example_theme_docs/v08_custom_helper_function/plugin.py
    A ckanext/example_theme_docs/v08_custom_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v09_snippet/__init__.py
    A ckanext/example_theme_docs/v09_snippet/plugin.py
    A ckanext/example_theme_docs/v09_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/__init__.py
    A ckanext/example_theme_docs/v10_custom_snippet/plugin.py
    A ckanext/example_theme_docs/v10_custom_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/__init__.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/plugin.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/home/layout1.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v12_extra_public_dir/__init__.py
    A ckanext/example_theme_docs/v12_extra_public_dir/plugin.py
    A ckanext/example_theme_docs/v12_extra_public_dir/public/promoted-image.jpg
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/layout1.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/snippets/promoted.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/snippets
    A ckanext/example_theme_docs/v13_custom_css/__init__.py
    A ckanext/example_theme_docs/v13_custom_css/plugin.py
    A ckanext/example_theme_docs/v13_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v13_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v13_custom_css/templates/base.html
    A ckanext/example_theme_docs/v13_custom_css/templates/home
    A ckanext/example_theme_docs/v13_custom_css/templates/snippets
    A ckanext/example_theme_docs/v14_more_custom_css/__init__.py
    A ckanext/example_theme_docs/v14_more_custom_css/plugin.py
    A ckanext/example_theme_docs/v14_more_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v14_more_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v14_more_custom_css/templates
    A ckanext/example_theme_docs/v15_fanstatic/__init__.py
    A ckanext/example_theme_docs/v15_fanstatic/fanstatic/example_theme.css
    A ckanext/example_theme_docs/v15_fanstatic/plugin.py
    A ckanext/example_theme_docs/v15_fanstatic/public/promoted-image.jpg
    A ckanext/example_theme_docs/v15_fanstatic/templates/base.html
    A ckanext/example_theme_docs/v15_fanstatic/templates/home
    A ckanext/example_theme_docs/v15_fanstatic/templates/snippets
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/__init__.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/plugin.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v17_popover/__init__.py
    A ckanext/example_theme_docs/v17_popover/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v17_popover/plugin.py
    A ckanext/example_theme_docs/v17_popover/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v18_snippet_api/__init__.py
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v18_snippet_api/plugin.py
    A ckanext/example_theme_docs/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    A ckanext/example_theme_docs/v18_snippet_api/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v19_01_error/__init__.py
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_01_error/plugin.py
    A ckanext/example_theme_docs/v19_01_error/templates
    A ckanext/example_theme_docs/v19_02_error_handling/__init__.py
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_02_error_handling/plugin.py
    A ckanext/example_theme_docs/v19_02_error_handling/templates
    A ckanext/example_theme_docs/v20_pubsub/__init__.py
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v20_pubsub/plugin.py
    A ckanext/example_theme_docs/v20_pubsub/templates
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/__init__.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/plugin.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/ajax_snippets
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/snippets/package_item.html
    M doc/extensions/best-practices.rst
    M doc/theming/best-practices.rst
    M doc/theming/css.rst
    M doc/theming/fanstatic.rst
    M doc/theming/javascript.rst
    M doc/theming/static-files.rst
    M doc/theming/templates.rst
    M setup.py

  Log Message:
  -----------
  Merge pull request #3576 from ckan/3146-ckanext-theme-import-error

[#3146] Rename example theme plugin internally


  Commit: bd173f8ecc1cd9e655a73d874bf9cf347d667081
      https://github.com/ckan/ckan/commit/bd173f8ecc1cd9e655a73d874bf9cf347d667081
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-06-02 (Fri, 02 Jun 2017)

  Changed paths:
    M ckan/controllers/group.py
    M ckan/logic/action/update.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/media.less
    M ckan/templates/group/about.html
    M ckan/templates/group/edit.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/read.html
    M ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_item.html
    M ckan/templates/group/snippets/info.html
    M ckan/tests/legacy/functional/api/test_activity.py
    M ckan/tests/logic/action/test_update.py
    M ckan/tests/test_coding_standards.py
    R ckanext/example_theme/__init__.py
    R ckanext/example_theme/custom_config_setting/__init__.py
    R ckanext/example_theme/custom_config_setting/plugin.py
    R ckanext/example_theme/custom_config_setting/templates/home/layout1.html
    R ckanext/example_theme/custom_config_setting/templates/snippets
    R ckanext/example_theme/custom_emails/__init__.py
    R ckanext/example_theme/custom_emails/plugin.py
    R ckanext/example_theme/custom_emails/templates/emails/invite_user.txt
    R ckanext/example_theme/custom_emails/templates/emails/invite_user_subject.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password_subject.txt
    R ckanext/example_theme/custom_emails/tests.py
    R ckanext/example_theme/v01_empty_extension/__init__.py
    R ckanext/example_theme/v01_empty_extension/plugin.py
    R ckanext/example_theme/v02_empty_template/__init__.py
    R ckanext/example_theme/v02_empty_template/plugin.py
    R ckanext/example_theme/v02_empty_template/templates/home/index.html
    R ckanext/example_theme/v03_jinja/__init__.py
    R ckanext/example_theme/v03_jinja/plugin.py
    R ckanext/example_theme/v03_jinja/templates/home/index.html
    R ckanext/example_theme/v04_ckan_extends/__init__.py
    R ckanext/example_theme/v04_ckan_extends/plugin.py
    R ckanext/example_theme/v04_ckan_extends/templates/home/index.html
    R ckanext/example_theme/v05_block/__init__.py
    R ckanext/example_theme/v05_block/plugin.py
    R ckanext/example_theme/v05_block/templates/home/layout1.html
    R ckanext/example_theme/v06_super/__init__.py
    R ckanext/example_theme/v06_super/plugin.py
    R ckanext/example_theme/v06_super/templates/home/layout1.html
    R ckanext/example_theme/v07_helper_function/__init__.py
    R ckanext/example_theme/v07_helper_function/plugin.py
    R ckanext/example_theme/v07_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v08_custom_helper_function/__init__.py
    R ckanext/example_theme/v08_custom_helper_function/plugin.py
    R ckanext/example_theme/v08_custom_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v09_snippet/__init__.py
    R ckanext/example_theme/v09_snippet/plugin.py
    R ckanext/example_theme/v09_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/__init__.py
    R ckanext/example_theme/v10_custom_snippet/plugin.py
    R ckanext/example_theme/v10_custom_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v11_HTML_and_CSS/__init__.py
    R ckanext/example_theme/v11_HTML_and_CSS/plugin.py
    R ckanext/example_theme/v11_HTML_and_CSS/templates/home/layout1.html
    R ckanext/example_theme/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v12_extra_public_dir/__init__.py
    R ckanext/example_theme/v12_extra_public_dir/plugin.py
    R ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    R ckanext/example_theme/v12_extra_public_dir/templates/home/layout1.html
    R ckanext/example_theme/v12_extra_public_dir/templates/home/snippets/promoted.html
    R ckanext/example_theme/v12_extra_public_dir/templates/snippets
    R ckanext/example_theme/v13_custom_css/__init__.py
    R ckanext/example_theme/v13_custom_css/plugin.py
    R ckanext/example_theme/v13_custom_css/public/example_theme.css
    R ckanext/example_theme/v13_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v13_custom_css/templates/base.html
    R ckanext/example_theme/v13_custom_css/templates/home
    R ckanext/example_theme/v13_custom_css/templates/snippets
    R ckanext/example_theme/v14_more_custom_css/__init__.py
    R ckanext/example_theme/v14_more_custom_css/plugin.py
    R ckanext/example_theme/v14_more_custom_css/public/example_theme.css
    R ckanext/example_theme/v14_more_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v14_more_custom_css/templates
    R ckanext/example_theme/v15_fanstatic/__init__.py
    R ckanext/example_theme/v15_fanstatic/fanstatic/example_theme.css
    R ckanext/example_theme/v15_fanstatic/plugin.py
    R ckanext/example_theme/v15_fanstatic/public/promoted-image.jpg
    R ckanext/example_theme/v15_fanstatic/templates/base.html
    R ckanext/example_theme/v15_fanstatic/templates/home
    R ckanext/example_theme/v15_fanstatic/templates/snippets
    R ckanext/example_theme/v16_initialize_a_javascript_module/__init__.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v16_initialize_a_javascript_module/plugin.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    R ckanext/example_theme/v17_popover/__init__.py
    R ckanext/example_theme/v17_popover/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v17_popover/plugin.py
    R ckanext/example_theme/v17_popover/templates/snippets/package_item.html
    R ckanext/example_theme/v18_snippet_api/__init__.py
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v18_snippet_api/plugin.py
    R ckanext/example_theme/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    R ckanext/example_theme/v18_snippet_api/templates/snippets/package_item.html
    R ckanext/example_theme/v19_01_error/__init__.py
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_01_error/plugin.py
    R ckanext/example_theme/v19_01_error/templates
    R ckanext/example_theme/v19_02_error_handling/__init__.py
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_02_error_handling/plugin.py
    R ckanext/example_theme/v19_02_error_handling/templates
    R ckanext/example_theme/v20_pubsub/__init__.py
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v20_pubsub/plugin.py
    R ckanext/example_theme/v20_pubsub/templates
    R ckanext/example_theme/v21_custom_jquery_plugin/__init__.py
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    R ckanext/example_theme/v21_custom_jquery_plugin/plugin.py
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/ajax_snippets
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/snippets/package_item.html
    A ckanext/example_theme_docs/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/plugin.py
    A ckanext/example_theme_docs/custom_config_setting/templates/home/layout1.html
    A ckanext/example_theme_docs/custom_config_setting/templates/snippets
    A ckanext/example_theme_docs/custom_emails/__init__.py
    A ckanext/example_theme_docs/custom_emails/plugin.py
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user_subject.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password_subject.txt
    A ckanext/example_theme_docs/custom_emails/tests.py
    A ckanext/example_theme_docs/v01_empty_extension/__init__.py
    A ckanext/example_theme_docs/v01_empty_extension/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/__init__.py
    A ckanext/example_theme_docs/v02_empty_template/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/templates/home/index.html
    A ckanext/example_theme_docs/v03_jinja/__init__.py
    A ckanext/example_theme_docs/v03_jinja/plugin.py
    A ckanext/example_theme_docs/v03_jinja/templates/home/index.html
    A ckanext/example_theme_docs/v04_ckan_extends/__init__.py
    A ckanext/example_theme_docs/v04_ckan_extends/plugin.py
    A ckanext/example_theme_docs/v04_ckan_extends/templates/home/index.html
    A ckanext/example_theme_docs/v05_block/__init__.py
    A ckanext/example_theme_docs/v05_block/plugin.py
    A ckanext/example_theme_docs/v05_block/templates/home/layout1.html
    A ckanext/example_theme_docs/v06_super/__init__.py
    A ckanext/example_theme_docs/v06_super/plugin.py
    A ckanext/example_theme_docs/v06_super/templates/home/layout1.html
    A ckanext/example_theme_docs/v07_helper_function/__init__.py
    A ckanext/example_theme_docs/v07_helper_function/plugin.py
    A ckanext/example_theme_docs/v07_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v08_custom_helper_function/__init__.py
    A ckanext/example_theme_docs/v08_custom_helper_function/plugin.py
    A ckanext/example_theme_docs/v08_custom_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v09_snippet/__init__.py
    A ckanext/example_theme_docs/v09_snippet/plugin.py
    A ckanext/example_theme_docs/v09_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/__init__.py
    A ckanext/example_theme_docs/v10_custom_snippet/plugin.py
    A ckanext/example_theme_docs/v10_custom_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/__init__.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/plugin.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/home/layout1.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v12_extra_public_dir/__init__.py
    A ckanext/example_theme_docs/v12_extra_public_dir/plugin.py
    A ckanext/example_theme_docs/v12_extra_public_dir/public/promoted-image.jpg
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/layout1.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/snippets/promoted.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/snippets
    A ckanext/example_theme_docs/v13_custom_css/__init__.py
    A ckanext/example_theme_docs/v13_custom_css/plugin.py
    A ckanext/example_theme_docs/v13_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v13_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v13_custom_css/templates/base.html
    A ckanext/example_theme_docs/v13_custom_css/templates/home
    A ckanext/example_theme_docs/v13_custom_css/templates/snippets
    A ckanext/example_theme_docs/v14_more_custom_css/__init__.py
    A ckanext/example_theme_docs/v14_more_custom_css/plugin.py
    A ckanext/example_theme_docs/v14_more_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v14_more_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v14_more_custom_css/templates
    A ckanext/example_theme_docs/v15_fanstatic/__init__.py
    A ckanext/example_theme_docs/v15_fanstatic/fanstatic/example_theme.css
    A ckanext/example_theme_docs/v15_fanstatic/plugin.py
    A ckanext/example_theme_docs/v15_fanstatic/public/promoted-image.jpg
    A ckanext/example_theme_docs/v15_fanstatic/templates/base.html
    A ckanext/example_theme_docs/v15_fanstatic/templates/home
    A ckanext/example_theme_docs/v15_fanstatic/templates/snippets
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/__init__.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/plugin.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v17_popover/__init__.py
    A ckanext/example_theme_docs/v17_popover/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v17_popover/plugin.py
    A ckanext/example_theme_docs/v17_popover/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v18_snippet_api/__init__.py
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v18_snippet_api/plugin.py
    A ckanext/example_theme_docs/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    A ckanext/example_theme_docs/v18_snippet_api/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v19_01_error/__init__.py
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_01_error/plugin.py
    A ckanext/example_theme_docs/v19_01_error/templates
    A ckanext/example_theme_docs/v19_02_error_handling/__init__.py
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_02_error_handling/plugin.py
    A ckanext/example_theme_docs/v19_02_error_handling/templates
    A ckanext/example_theme_docs/v20_pubsub/__init__.py
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v20_pubsub/plugin.py
    A ckanext/example_theme_docs/v20_pubsub/templates
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/__init__.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/plugin.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/ajax_snippets
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/snippets/package_item.html
    M contrib/docker/docker-compose.yml
    M doc/extensions/best-practices.rst
    M doc/maintaining/upgrading/upgrade-postgres.rst
    M doc/theming/best-practices.rst
    M doc/theming/css.rst
    M doc/theming/fanstatic.rst
    M doc/theming/javascript.rst
    M doc/theming/static-files.rst
    M doc/theming/templates.rst
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into datastore-abstraction-layer


  Commit: 452f5103866458cf2f0f0a403ea24e29fa7cc29d
      https://github.com/ckan/ckan/commit/452f5103866458cf2f0f0a403ea24e29fa7cc29d
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-02 (Fri, 02 Jun 2017)

  Changed paths:
    M bin/travis-install-dependencies
    M circle.yml
    M ckan/controllers/group.py
    A ckan/lib/lazyjson.py
    M ckan/lib/navl/validators.py
    M ckan/logic/action/update.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/media.less
    M ckan/templates/group/about.html
    M ckan/templates/group/edit.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/read.html
    M ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_item.html
    M ckan/templates/group/snippets/info.html
    M ckan/tests/helpers.py
    M ckan/tests/legacy/functional/api/test_activity.py
    M ckan/tests/logic/action/test_update.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datapusher/tests/test_interfaces.py
    M ckanext/datastore/controller.py
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/helpers.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py
    M ckanext/datastore/writer.py
    R ckanext/example_theme/__init__.py
    R ckanext/example_theme/custom_config_setting/__init__.py
    R ckanext/example_theme/custom_config_setting/plugin.py
    R ckanext/example_theme/custom_config_setting/templates/home/layout1.html
    R ckanext/example_theme/custom_config_setting/templates/snippets
    R ckanext/example_theme/custom_emails/__init__.py
    R ckanext/example_theme/custom_emails/plugin.py
    R ckanext/example_theme/custom_emails/templates/emails/invite_user.txt
    R ckanext/example_theme/custom_emails/templates/emails/invite_user_subject.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password_subject.txt
    R ckanext/example_theme/custom_emails/tests.py
    R ckanext/example_theme/v01_empty_extension/__init__.py
    R ckanext/example_theme/v01_empty_extension/plugin.py
    R ckanext/example_theme/v02_empty_template/__init__.py
    R ckanext/example_theme/v02_empty_template/plugin.py
    R ckanext/example_theme/v02_empty_template/templates/home/index.html
    R ckanext/example_theme/v03_jinja/__init__.py
    R ckanext/example_theme/v03_jinja/plugin.py
    R ckanext/example_theme/v03_jinja/templates/home/index.html
    R ckanext/example_theme/v04_ckan_extends/__init__.py
    R ckanext/example_theme/v04_ckan_extends/plugin.py
    R ckanext/example_theme/v04_ckan_extends/templates/home/index.html
    R ckanext/example_theme/v05_block/__init__.py
    R ckanext/example_theme/v05_block/plugin.py
    R ckanext/example_theme/v05_block/templates/home/layout1.html
    R ckanext/example_theme/v06_super/__init__.py
    R ckanext/example_theme/v06_super/plugin.py
    R ckanext/example_theme/v06_super/templates/home/layout1.html
    R ckanext/example_theme/v07_helper_function/__init__.py
    R ckanext/example_theme/v07_helper_function/plugin.py
    R ckanext/example_theme/v07_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v08_custom_helper_function/__init__.py
    R ckanext/example_theme/v08_custom_helper_function/plugin.py
    R ckanext/example_theme/v08_custom_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v09_snippet/__init__.py
    R ckanext/example_theme/v09_snippet/plugin.py
    R ckanext/example_theme/v09_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/__init__.py
    R ckanext/example_theme/v10_custom_snippet/plugin.py
    R ckanext/example_theme/v10_custom_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v11_HTML_and_CSS/__init__.py
    R ckanext/example_theme/v11_HTML_and_CSS/plugin.py
    R ckanext/example_theme/v11_HTML_and_CSS/templates/home/layout1.html
    R ckanext/example_theme/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v12_extra_public_dir/__init__.py
    R ckanext/example_theme/v12_extra_public_dir/plugin.py
    R ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    R ckanext/example_theme/v12_extra_public_dir/templates/home/layout1.html
    R ckanext/example_theme/v12_extra_public_dir/templates/home/snippets/promoted.html
    R ckanext/example_theme/v12_extra_public_dir/templates/snippets
    R ckanext/example_theme/v13_custom_css/__init__.py
    R ckanext/example_theme/v13_custom_css/plugin.py
    R ckanext/example_theme/v13_custom_css/public/example_theme.css
    R ckanext/example_theme/v13_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v13_custom_css/templates/base.html
    R ckanext/example_theme/v13_custom_css/templates/home
    R ckanext/example_theme/v13_custom_css/templates/snippets
    R ckanext/example_theme/v14_more_custom_css/__init__.py
    R ckanext/example_theme/v14_more_custom_css/plugin.py
    R ckanext/example_theme/v14_more_custom_css/public/example_theme.css
    R ckanext/example_theme/v14_more_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v14_more_custom_css/templates
    R ckanext/example_theme/v15_fanstatic/__init__.py
    R ckanext/example_theme/v15_fanstatic/fanstatic/example_theme.css
    R ckanext/example_theme/v15_fanstatic/plugin.py
    R ckanext/example_theme/v15_fanstatic/public/promoted-image.jpg
    R ckanext/example_theme/v15_fanstatic/templates/base.html
    R ckanext/example_theme/v15_fanstatic/templates/home
    R ckanext/example_theme/v15_fanstatic/templates/snippets
    R ckanext/example_theme/v16_initialize_a_javascript_module/__init__.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v16_initialize_a_javascript_module/plugin.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    R ckanext/example_theme/v17_popover/__init__.py
    R ckanext/example_theme/v17_popover/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v17_popover/plugin.py
    R ckanext/example_theme/v17_popover/templates/snippets/package_item.html
    R ckanext/example_theme/v18_snippet_api/__init__.py
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v18_snippet_api/plugin.py
    R ckanext/example_theme/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    R ckanext/example_theme/v18_snippet_api/templates/snippets/package_item.html
    R ckanext/example_theme/v19_01_error/__init__.py
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_01_error/plugin.py
    R ckanext/example_theme/v19_01_error/templates
    R ckanext/example_theme/v19_02_error_handling/__init__.py
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_02_error_handling/plugin.py
    R ckanext/example_theme/v19_02_error_handling/templates
    R ckanext/example_theme/v20_pubsub/__init__.py
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v20_pubsub/plugin.py
    R ckanext/example_theme/v20_pubsub/templates
    R ckanext/example_theme/v21_custom_jquery_plugin/__init__.py
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    R ckanext/example_theme/v21_custom_jquery_plugin/plugin.py
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/ajax_snippets
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/snippets/package_item.html
    A ckanext/example_theme_docs/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/plugin.py
    A ckanext/example_theme_docs/custom_config_setting/templates/home/layout1.html
    A ckanext/example_theme_docs/custom_config_setting/templates/snippets
    A ckanext/example_theme_docs/custom_emails/__init__.py
    A ckanext/example_theme_docs/custom_emails/plugin.py
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user_subject.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password_subject.txt
    A ckanext/example_theme_docs/custom_emails/tests.py
    A ckanext/example_theme_docs/v01_empty_extension/__init__.py
    A ckanext/example_theme_docs/v01_empty_extension/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/__init__.py
    A ckanext/example_theme_docs/v02_empty_template/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/templates/home/index.html
    A ckanext/example_theme_docs/v03_jinja/__init__.py
    A ckanext/example_theme_docs/v03_jinja/plugin.py
    A ckanext/example_theme_docs/v03_jinja/templates/home/index.html
    A ckanext/example_theme_docs/v04_ckan_extends/__init__.py
    A ckanext/example_theme_docs/v04_ckan_extends/plugin.py
    A ckanext/example_theme_docs/v04_ckan_extends/templates/home/index.html
    A ckanext/example_theme_docs/v05_block/__init__.py
    A ckanext/example_theme_docs/v05_block/plugin.py
    A ckanext/example_theme_docs/v05_block/templates/home/layout1.html
    A ckanext/example_theme_docs/v06_super/__init__.py
    A ckanext/example_theme_docs/v06_super/plugin.py
    A ckanext/example_theme_docs/v06_super/templates/home/layout1.html
    A ckanext/example_theme_docs/v07_helper_function/__init__.py
    A ckanext/example_theme_docs/v07_helper_function/plugin.py
    A ckanext/example_theme_docs/v07_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v08_custom_helper_function/__init__.py
    A ckanext/example_theme_docs/v08_custom_helper_function/plugin.py
    A ckanext/example_theme_docs/v08_custom_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v09_snippet/__init__.py
    A ckanext/example_theme_docs/v09_snippet/plugin.py
    A ckanext/example_theme_docs/v09_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/__init__.py
    A ckanext/example_theme_docs/v10_custom_snippet/plugin.py
    A ckanext/example_theme_docs/v10_custom_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/__init__.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/plugin.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/home/layout1.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v12_extra_public_dir/__init__.py
    A ckanext/example_theme_docs/v12_extra_public_dir/plugin.py
    A ckanext/example_theme_docs/v12_extra_public_dir/public/promoted-image.jpg
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/layout1.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/snippets/promoted.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/snippets
    A ckanext/example_theme_docs/v13_custom_css/__init__.py
    A ckanext/example_theme_docs/v13_custom_css/plugin.py
    A ckanext/example_theme_docs/v13_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v13_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v13_custom_css/templates/base.html
    A ckanext/example_theme_docs/v13_custom_css/templates/home
    A ckanext/example_theme_docs/v13_custom_css/templates/snippets
    A ckanext/example_theme_docs/v14_more_custom_css/__init__.py
    A ckanext/example_theme_docs/v14_more_custom_css/plugin.py
    A ckanext/example_theme_docs/v14_more_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v14_more_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v14_more_custom_css/templates
    A ckanext/example_theme_docs/v15_fanstatic/__init__.py
    A ckanext/example_theme_docs/v15_fanstatic/fanstatic/example_theme.css
    A ckanext/example_theme_docs/v15_fanstatic/plugin.py
    A ckanext/example_theme_docs/v15_fanstatic/public/promoted-image.jpg
    A ckanext/example_theme_docs/v15_fanstatic/templates/base.html
    A ckanext/example_theme_docs/v15_fanstatic/templates/home
    A ckanext/example_theme_docs/v15_fanstatic/templates/snippets
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/__init__.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/plugin.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v17_popover/__init__.py
    A ckanext/example_theme_docs/v17_popover/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v17_popover/plugin.py
    A ckanext/example_theme_docs/v17_popover/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v18_snippet_api/__init__.py
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v18_snippet_api/plugin.py
    A ckanext/example_theme_docs/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    A ckanext/example_theme_docs/v18_snippet_api/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v19_01_error/__init__.py
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_01_error/plugin.py
    A ckanext/example_theme_docs/v19_01_error/templates
    A ckanext/example_theme_docs/v19_02_error_handling/__init__.py
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_02_error_handling/plugin.py
    A ckanext/example_theme_docs/v19_02_error_handling/templates
    A ckanext/example_theme_docs/v20_pubsub/__init__.py
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v20_pubsub/plugin.py
    A ckanext/example_theme_docs/v20_pubsub/templates
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/__init__.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/plugin.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/ajax_snippets
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/snippets/package_item.html
    M contrib/docker/docker-compose.yml
    M doc/extensions/best-practices.rst
    M doc/maintaining/datastore.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/upgrading/upgrade-postgres.rst
    M doc/theming/best-practices.rst
    M doc/theming/css.rst
    M doc/theming/fanstatic.rst
    M doc/theming/javascript.rst
    M doc/theming/static-files.rst
    M doc/theming/templates.rst
    A requirement-setuptools.txt
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into 3444-datatables-view


  Commit: f0e3406de99ec9a6da244a07b0534a0c1315f22a
      https://github.com/ckan/ckan/commit/f0e3406de99ec9a6da244a07b0534a0c1315f22a
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-02 (Fri, 02 Jun 2017)

  Changed paths:
    M ckanext/datatablesview/plugin.py

  Log Message:
  -----------
  [#3444] show Add Filter interface


  Commit: 1a7c21f5f2d95a1931da52c7c21345205071c39f
      https://github.com/ckan/ckan/commit/1a7c21f5f2d95a1931da52c7c21345205071c39f
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-06-05 (Mon, 05 Jun 2017)

  Changed paths:
    M ckanext/datastore/backend/__init__.py
    R ckanext/datastore/backend/example_sqlite.py
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/plugin.py
    A ckanext/example_idatastorebackend/__init__.py
    A ckanext/example_idatastorebackend/example_sqlite.py
    A ckanext/example_idatastorebackend/plugin.py
    A ckanext/example_idatastorebackend/test/__init__.py
    A ckanext/example_idatastorebackend/test/test_plugin.py
    M doc/maintaining/datastore.rst
    M setup.py

  Log Message:
  -----------
  datastore cleanup


  Commit: d9900ec94034e02f7397a6d02dbd335dc79c2639
      https://github.com/ckan/ckan/commit/d9900ec94034e02f7397a6d02dbd335dc79c2639
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-05 (Mon, 05 Jun 2017)

  Changed paths:
    M ckanext/datatablesview/plugin.py
    M ckanext/datatablesview/public/resource.config
    R ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.flash.js
    R ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.html5.js
    R ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.print.js
    R ckanext/datatablesview/public/vendor/JSZip-3.1.3/jszip.js
    M ckanext/datatablesview/templates/datatables/datatables_form.html

  Log Message:
  -----------
  [#3444] remove export buttons js


  Commit: 977afe733fe4f1913f90195f0e0ad210d3eeebda
      https://github.com/ckan/ckan/commit/977afe733fe4f1913f90195f0e0ad210d3eeebda
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-05 (Mon, 05 Jun 2017)

  Changed paths:
    M ckan/tests/legacy/test_coding_standards.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/cli.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datapusher/tests/test_action.py
    M ckanext/datapusher/tests/test_interfaces.py
    A ckanext/datastore/backend/__init__.py
    A ckanext/datastore/backend/postgres.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/controller.py
    R ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/interfaces.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/helpers.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_db.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_info.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py
    A ckanext/example_idatastorebackend/__init__.py
    A ckanext/example_idatastorebackend/example_sqlite.py
    A ckanext/example_idatastorebackend/plugin.py
    A ckanext/example_idatastorebackend/test/__init__.py
    A ckanext/example_idatastorebackend/test/test_plugin.py
    M doc/maintaining/datastore.rst
    M setup.py

  Log Message:
  -----------
  Merge pull request #3437 from smotornyuk/datastore-abstraction-layer

Alterations inside datastore for further integration of third party backends


  Commit: 16c110034c4575e8b0598aff4fc8a642edd6b52b
      https://github.com/ckan/ckan/commit/16c110034c4575e8b0598aff4fc8a642edd6b52b
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-07 (Wed, 07 Jun 2017)

  Changed paths:
    M ckanext/datastore/helpers.py
    A ckanext/datatablesview/__init__.py
    A ckanext/datatablesview/controller.py
    A ckanext/datatablesview/plugin.py
    A ckanext/datatablesview/public/datatablesview.js
    A ckanext/datatablesview/public/resource.config
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap-theme.css
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap-theme.css.map
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap.css
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap.css.map
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/js/bootstrap.js
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/js/npm.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.bootstrap.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.dataTables.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.foundation.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.jqueryui.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.semanticui.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/common.scss
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/mixins.scss
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.bootstrap.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.colVis.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.foundation.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.jqueryui.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.semanticui.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/dataTables.buttons.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/swf/flashExport.swf
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.bootstrap.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.foundation.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.jqueryui.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.semanticui.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/jquery.dataTables.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/jquery.dataTables_themeroller.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_asc.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_asc_disabled.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_both.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_desc.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_desc_disabled.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.bootstrap.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.foundation.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.jqueryui.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.semanticui.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/jquery.dataTables.js
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.dataTables.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.foundation.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/js/dataTables.fixedColumns.js
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.dataTables.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.foundation.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/js/dataTables.fixedHeader.js
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.bootstrap.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.dataTables.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.foundation.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.jqueryui.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.semanticui.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/js/dataTables.keyTable.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.bootstrap.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.dataTables.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.foundation.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.jqueryui.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/dataTables.responsive.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.bootstrap.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.foundation.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.jqueryui.js
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.bootstrap.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.dataTables.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.foundation.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.jqueryui.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.semanticui.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/js/dataTables.select.js
    A ckanext/datatablesview/public/vendor/datatables.css
    A ckanext/datatablesview/public/vendor/datatables.js
    A ckanext/datatablesview/templates/datatables/datatables_form.html
    A ckanext/datatablesview/templates/datatables/datatables_view.html
    M setup.py

  Log Message:
  -----------
  Merge pull request #3444 from ckan/3444-datatables-view

DataTables view


  Commit: cccf40699cefcc6756e9b4473ee6b43c42fc6100
      https://github.com/ckan/ckan/commit/cccf40699cefcc6756e9b4473ee6b43c42fc6100
  Author: Jinfei Fan <fanjinfei at hotmail.com>
  Date:   2017-06-07 (Wed, 07 Jun 2017)

  Changed paths:
    M ckan/lib/helpers.py
    M ckan/templates/snippets/language_selector.html
    M ckan/tests/controllers/test_package.py

  Log Message:
  -----------
  fix broken language toggle url when there is params in current url


  Commit: b8368d0a33df5e50e3b244c8ac19736248efc491
      https://github.com/ckan/ckan/commit/b8368d0a33df5e50e3b244c8ac19736248efc491
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-07 (Wed, 07 Jun 2017)

  Changed paths:
    M CHANGELOG.rst

  Log Message:
  -----------
  update CHANGELOG ahead of 2.7.0


  Commit: 8e0d6d4e0fb9dd61bb67d81e6cfa7d0d5af60e55
      https://github.com/ckan/ckan/commit/8e0d6d4e0fb9dd61bb67d81e6cfa7d0d5af60e55
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-08 (Thu, 08 Jun 2017)

  Changed paths:
    M ckan/lib/helpers.py
    M ckan/templates/snippets/language_selector.html
    M ckan/tests/controllers/test_package.py

  Log Message:
  -----------
  Merge pull request #3595 from fanjinfei/core2

fix broken language toggle url when there is params in current url


  Commit: bee81917fce952c0f94357f481940bf95f0c5032
      https://github.com/ckan/ckan/commit/bee81917fce952c0f94357f481940bf95f0c5032
  Author: David Read <david.read at hackneyworkshop.com>
  Date:   2017-06-09 (Fri, 09 Jun 2017)

  Changed paths:
    M ckan/lib/cli.py

  Log Message:
  -----------
  Now email is required, prompt for it rather than show error.


  Commit: c864213e123454ef5e8d1848164c8cd61d8bca06
      https://github.com/ckan/ckan/commit/c864213e123454ef5e8d1848164c8cd61d8bca06
  Author: David Read <david.read at hackneyworkshop.com>
  Date:   2017-06-09 (Fri, 09 Jun 2017)

  Changed paths:
    M ckan/lib/cli.py

  Log Message:
  -----------
  Make it clear it is an error.


  Commit: 42c0c7fd8fa9548b02ae6afd8052805d5cc6cbf6
      https://github.com/ckan/ckan/commit/42c0c7fd8fa9548b02ae6afd8052805d5cc6cbf6
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-06-13 (Tue, 13 Jun 2017)

  Changed paths:
    M ckan/controllers/user.py
    M ckan/logic/action/update.py
    M ckan/logic/validators.py
    M ckan/templates/user/edit_user_form.html
    M ckan/templates/user/perform_reset.html
    M ckan/tests/controllers/test_user.py
    M ckan/tests/logic/action/test_update.py

  Log Message:
  -----------
  Merge pull request #3531 from fanjinfei/ckanmaster

do not allow to modify exsiting username


  Commit: f26bffca36c61410430696c8c5d3973a0a61f826
      https://github.com/ckan/ckan/commit/f26bffca36c61410430696c8c5d3973a0a61f826
  Author: Florian Brucker <florian.brucker at it.karlsruhe.de>
  Date:   2017-06-13 (Tue, 13 Jun 2017)

  Changed paths:
    M ckan/public/base/javascript/modules/resource-reorder.js
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/javascript/modules/resource-view-reorder.js

  Log Message:
  -----------
  [#3590] Fix multiple errors in i18n of JS modules


  Commit: 5bc4921f2b7489867aa47905a34331f20f8c64e1
      https://github.com/ckan/ckan/commit/5bc4921f2b7489867aa47905a34331f20f8c64e1
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-06-13 (Tue, 13 Jun 2017)

  Changed paths:
    M ckan/lib/cli.py

  Log Message:
  -----------
  Merge pull request #3600 from ckan/user-cli-email

CLI for adding user - prompt for email address, now it is required, rather than show error.


  Commit: 54d6c9b751f83d19084c2ebe49c498849b4c0741
      https://github.com/ckan/ckan/commit/54d6c9b751f83d19084c2ebe49c498849b4c0741
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-15 (Thu, 15 Jun 2017)

  Changed paths:
    M ckan/public/base/javascript/modules/resource-reorder.js
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/javascript/modules/resource-view-reorder.js

  Log Message:
  -----------
  Merge pull request #3604 from torfsen/3590-errors-in-js-modules-i18n

[#3590] Fix multiple errors in i18n of JS modules


  Commit: 10ccf3f982233bad6d6f33a078bd15d45a5580b1
      https://github.com/ckan/ckan/commit/10ccf3f982233bad6d6f33a078bd15d45a5580b1
  Author: amercader <amercadero at gmail.com>
  Date:   2017-06-16 (Fri, 16 Jun 2017)

  Changed paths:
    M CHANGELOG.rst
    M ckan/controllers/group.py
    M ckan/controllers/user.py
    M ckan/lib/cli.py
    M ckan/lib/helpers.py
    A ckan/lib/lazyjson.py
    M ckan/logic/action/update.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/public/base/javascript/modules/resource-reorder.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/less/forms.less
    M ckan/public/base/less/media.less
    M ckan/templates/group/about.html
    M ckan/templates/group/edit.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/read.html
    M ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_item.html
    M ckan/templates/group/snippets/info.html
    M ckan/templates/snippets/language_selector.html
    M ckan/templates/user/edit_user_form.html
    M ckan/templates/user/perform_reset.html
    M ckan/tests/controllers/test_package.py
    M ckan/tests/controllers/test_user.py
    M ckan/tests/legacy/functional/api/test_activity.py
    M ckan/tests/legacy/test_coding_standards.py
    M ckan/tests/logic/action/test_update.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/cli.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datapusher/tests/test_action.py
    M ckanext/datapusher/tests/test_interfaces.py
    A ckanext/datastore/backend/__init__.py
    A ckanext/datastore/backend/postgres.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/controller.py
    R ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/interfaces.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/helpers.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_db.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_info.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py
    M ckanext/datastore/writer.py
    A ckanext/datatablesview/__init__.py
    A ckanext/datatablesview/controller.py
    A ckanext/datatablesview/plugin.py
    A ckanext/datatablesview/public/datatablesview.js
    A ckanext/datatablesview/public/resource.config
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap-theme.css
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap-theme.css.map
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap.css
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap.css.map
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/js/bootstrap.js
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/js/npm.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.bootstrap.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.dataTables.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.foundation.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.jqueryui.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.semanticui.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/common.scss
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/mixins.scss
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.bootstrap.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.colVis.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.foundation.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.jqueryui.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.semanticui.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/dataTables.buttons.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/swf/flashExport.swf
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.bootstrap.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.foundation.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.jqueryui.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.semanticui.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/jquery.dataTables.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/jquery.dataTables_themeroller.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_asc.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_asc_disabled.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_both.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_desc.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_desc_disabled.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.bootstrap.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.foundation.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.jqueryui.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.semanticui.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/jquery.dataTables.js
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.dataTables.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.foundation.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/js/dataTables.fixedColumns.js
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.dataTables.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.foundation.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/js/dataTables.fixedHeader.js
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.bootstrap.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.dataTables.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.foundation.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.jqueryui.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.semanticui.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/js/dataTables.keyTable.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.bootstrap.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.dataTables.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.foundation.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.jqueryui.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/dataTables.responsive.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.bootstrap.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.foundation.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.jqueryui.js
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.bootstrap.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.dataTables.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.foundation.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.jqueryui.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.semanticui.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/js/dataTables.select.js
    A ckanext/datatablesview/public/vendor/datatables.css
    A ckanext/datatablesview/public/vendor/datatables.js
    A ckanext/datatablesview/templates/datatables/datatables_form.html
    A ckanext/datatablesview/templates/datatables/datatables_view.html
    A ckanext/example_idatastorebackend/__init__.py
    A ckanext/example_idatastorebackend/example_sqlite.py
    A ckanext/example_idatastorebackend/plugin.py
    A ckanext/example_idatastorebackend/test/__init__.py
    A ckanext/example_idatastorebackend/test/test_plugin.py
    R ckanext/example_theme/__init__.py
    R ckanext/example_theme/custom_config_setting/__init__.py
    R ckanext/example_theme/custom_config_setting/plugin.py
    R ckanext/example_theme/custom_config_setting/templates/home/layout1.html
    R ckanext/example_theme/custom_config_setting/templates/snippets
    R ckanext/example_theme/custom_emails/__init__.py
    R ckanext/example_theme/custom_emails/plugin.py
    R ckanext/example_theme/custom_emails/templates/emails/invite_user.txt
    R ckanext/example_theme/custom_emails/templates/emails/invite_user_subject.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password_subject.txt
    R ckanext/example_theme/custom_emails/tests.py
    R ckanext/example_theme/v01_empty_extension/__init__.py
    R ckanext/example_theme/v01_empty_extension/plugin.py
    R ckanext/example_theme/v02_empty_template/__init__.py
    R ckanext/example_theme/v02_empty_template/plugin.py
    R ckanext/example_theme/v02_empty_template/templates/home/index.html
    R ckanext/example_theme/v03_jinja/__init__.py
    R ckanext/example_theme/v03_jinja/plugin.py
    R ckanext/example_theme/v03_jinja/templates/home/index.html
    R ckanext/example_theme/v04_ckan_extends/__init__.py
    R ckanext/example_theme/v04_ckan_extends/plugin.py
    R ckanext/example_theme/v04_ckan_extends/templates/home/index.html
    R ckanext/example_theme/v05_block/__init__.py
    R ckanext/example_theme/v05_block/plugin.py
    R ckanext/example_theme/v05_block/templates/home/layout1.html
    R ckanext/example_theme/v06_super/__init__.py
    R ckanext/example_theme/v06_super/plugin.py
    R ckanext/example_theme/v06_super/templates/home/layout1.html
    R ckanext/example_theme/v07_helper_function/__init__.py
    R ckanext/example_theme/v07_helper_function/plugin.py
    R ckanext/example_theme/v07_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v08_custom_helper_function/__init__.py
    R ckanext/example_theme/v08_custom_helper_function/plugin.py
    R ckanext/example_theme/v08_custom_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v09_snippet/__init__.py
    R ckanext/example_theme/v09_snippet/plugin.py
    R ckanext/example_theme/v09_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/__init__.py
    R ckanext/example_theme/v10_custom_snippet/plugin.py
    R ckanext/example_theme/v10_custom_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v11_HTML_and_CSS/__init__.py
    R ckanext/example_theme/v11_HTML_and_CSS/plugin.py
    R ckanext/example_theme/v11_HTML_and_CSS/templates/home/layout1.html
    R ckanext/example_theme/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v12_extra_public_dir/__init__.py
    R ckanext/example_theme/v12_extra_public_dir/plugin.py
    R ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    R ckanext/example_theme/v12_extra_public_dir/templates/home/layout1.html
    R ckanext/example_theme/v12_extra_public_dir/templates/home/snippets/promoted.html
    R ckanext/example_theme/v12_extra_public_dir/templates/snippets
    R ckanext/example_theme/v13_custom_css/__init__.py
    R ckanext/example_theme/v13_custom_css/plugin.py
    R ckanext/example_theme/v13_custom_css/public/example_theme.css
    R ckanext/example_theme/v13_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v13_custom_css/templates/base.html
    R ckanext/example_theme/v13_custom_css/templates/home
    R ckanext/example_theme/v13_custom_css/templates/snippets
    R ckanext/example_theme/v14_more_custom_css/__init__.py
    R ckanext/example_theme/v14_more_custom_css/plugin.py
    R ckanext/example_theme/v14_more_custom_css/public/example_theme.css
    R ckanext/example_theme/v14_more_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v14_more_custom_css/templates
    R ckanext/example_theme/v15_fanstatic/__init__.py
    R ckanext/example_theme/v15_fanstatic/fanstatic/example_theme.css
    R ckanext/example_theme/v15_fanstatic/plugin.py
    R ckanext/example_theme/v15_fanstatic/public/promoted-image.jpg
    R ckanext/example_theme/v15_fanstatic/templates/base.html
    R ckanext/example_theme/v15_fanstatic/templates/home
    R ckanext/example_theme/v15_fanstatic/templates/snippets
    R ckanext/example_theme/v16_initialize_a_javascript_module/__init__.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v16_initialize_a_javascript_module/plugin.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    R ckanext/example_theme/v17_popover/__init__.py
    R ckanext/example_theme/v17_popover/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v17_popover/plugin.py
    R ckanext/example_theme/v17_popover/templates/snippets/package_item.html
    R ckanext/example_theme/v18_snippet_api/__init__.py
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v18_snippet_api/plugin.py
    R ckanext/example_theme/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    R ckanext/example_theme/v18_snippet_api/templates/snippets/package_item.html
    R ckanext/example_theme/v19_01_error/__init__.py
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_01_error/plugin.py
    R ckanext/example_theme/v19_01_error/templates
    R ckanext/example_theme/v19_02_error_handling/__init__.py
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_02_error_handling/plugin.py
    R ckanext/example_theme/v19_02_error_handling/templates
    R ckanext/example_theme/v20_pubsub/__init__.py
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v20_pubsub/plugin.py
    R ckanext/example_theme/v20_pubsub/templates
    R ckanext/example_theme/v21_custom_jquery_plugin/__init__.py
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    R ckanext/example_theme/v21_custom_jquery_plugin/plugin.py
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/ajax_snippets
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/snippets/package_item.html
    A ckanext/example_theme_docs/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/plugin.py
    A ckanext/example_theme_docs/custom_config_setting/templates/home/layout1.html
    A ckanext/example_theme_docs/custom_config_setting/templates/snippets
    A ckanext/example_theme_docs/custom_emails/__init__.py
    A ckanext/example_theme_docs/custom_emails/plugin.py
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user_subject.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password_subject.txt
    A ckanext/example_theme_docs/custom_emails/tests.py
    A ckanext/example_theme_docs/v01_empty_extension/__init__.py
    A ckanext/example_theme_docs/v01_empty_extension/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/__init__.py
    A ckanext/example_theme_docs/v02_empty_template/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/templates/home/index.html
    A ckanext/example_theme_docs/v03_jinja/__init__.py
    A ckanext/example_theme_docs/v03_jinja/plugin.py
    A ckanext/example_theme_docs/v03_jinja/templates/home/index.html
    A ckanext/example_theme_docs/v04_ckan_extends/__init__.py
    A ckanext/example_theme_docs/v04_ckan_extends/plugin.py
    A ckanext/example_theme_docs/v04_ckan_extends/templates/home/index.html
    A ckanext/example_theme_docs/v05_block/__init__.py
    A ckanext/example_theme_docs/v05_block/plugin.py
    A ckanext/example_theme_docs/v05_block/templates/home/layout1.html
    A ckanext/example_theme_docs/v06_super/__init__.py
    A ckanext/example_theme_docs/v06_super/plugin.py
    A ckanext/example_theme_docs/v06_super/templates/home/layout1.html
    A ckanext/example_theme_docs/v07_helper_function/__init__.py
    A ckanext/example_theme_docs/v07_helper_function/plugin.py
    A ckanext/example_theme_docs/v07_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v08_custom_helper_function/__init__.py
    A ckanext/example_theme_docs/v08_custom_helper_function/plugin.py
    A ckanext/example_theme_docs/v08_custom_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v09_snippet/__init__.py
    A ckanext/example_theme_docs/v09_snippet/plugin.py
    A ckanext/example_theme_docs/v09_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/__init__.py
    A ckanext/example_theme_docs/v10_custom_snippet/plugin.py
    A ckanext/example_theme_docs/v10_custom_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/__init__.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/plugin.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/home/layout1.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v12_extra_public_dir/__init__.py
    A ckanext/example_theme_docs/v12_extra_public_dir/plugin.py
    A ckanext/example_theme_docs/v12_extra_public_dir/public/promoted-image.jpg
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/layout1.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/snippets/promoted.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/snippets
    A ckanext/example_theme_docs/v13_custom_css/__init__.py
    A ckanext/example_theme_docs/v13_custom_css/plugin.py
    A ckanext/example_theme_docs/v13_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v13_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v13_custom_css/templates/base.html
    A ckanext/example_theme_docs/v13_custom_css/templates/home
    A ckanext/example_theme_docs/v13_custom_css/templates/snippets
    A ckanext/example_theme_docs/v14_more_custom_css/__init__.py
    A ckanext/example_theme_docs/v14_more_custom_css/plugin.py
    A ckanext/example_theme_docs/v14_more_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v14_more_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v14_more_custom_css/templates
    A ckanext/example_theme_docs/v15_fanstatic/__init__.py
    A ckanext/example_theme_docs/v15_fanstatic/fanstatic/example_theme.css
    A ckanext/example_theme_docs/v15_fanstatic/plugin.py
    A ckanext/example_theme_docs/v15_fanstatic/public/promoted-image.jpg
    A ckanext/example_theme_docs/v15_fanstatic/templates/base.html
    A ckanext/example_theme_docs/v15_fanstatic/templates/home
    A ckanext/example_theme_docs/v15_fanstatic/templates/snippets
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/__init__.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/plugin.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v17_popover/__init__.py
    A ckanext/example_theme_docs/v17_popover/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v17_popover/plugin.py
    A ckanext/example_theme_docs/v17_popover/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v18_snippet_api/__init__.py
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v18_snippet_api/plugin.py
    A ckanext/example_theme_docs/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    A ckanext/example_theme_docs/v18_snippet_api/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v19_01_error/__init__.py
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_01_error/plugin.py
    A ckanext/example_theme_docs/v19_01_error/templates
    A ckanext/example_theme_docs/v19_02_error_handling/__init__.py
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_02_error_handling/plugin.py
    A ckanext/example_theme_docs/v19_02_error_handling/templates
    A ckanext/example_theme_docs/v20_pubsub/__init__.py
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v20_pubsub/plugin.py
    A ckanext/example_theme_docs/v20_pubsub/templates
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/__init__.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/plugin.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/ajax_snippets
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/snippets/package_item.html
    M contrib/docker/docker-compose.yml
    M doc/extensions/best-practices.rst
    M doc/maintaining/datastore.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/upgrading/upgrade-postgres.rst
    M doc/theming/best-practices.rst
    M doc/theming/css.rst
    M doc/theming/fanstatic.rst
    M doc/theming/javascript.rst
    M doc/theming/static-files.rst
    M doc/theming/templates.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-i18n


  Commit: 8db6ad3b7d8a42e5f8441ea1af6a1758314aec35
      https://github.com/ckan/ckan/commit/8db6ad3b7d8a42e5f8441ea1af6a1758314aec35
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-17 (Sat, 17 Jun 2017)

  Changed paths:
    M ckan/public/base/javascript/plugins/jquery.url-helpers.js

  Log Message:
  -----------
  [#3528] Allow underscore chars in URL slug preview

In the UI for creating a dataset, if an underscore was typed into the 'title' field, in the URL slug preview it was replaced with a hyphen, whereas in the API, the 'name' allows underscores.

Now both when creating a dataset through the UI and the API, underscores are allowed for dataset name.


  Commit: 1c9fe5672931c2a570ccd545d8c99a66cc005b73
      https://github.com/ckan/ckan/commit/1c9fe5672931c2a570ccd545d8c99a66cc005b73
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-17 (Sat, 17 Jun 2017)

  Changed paths:
    M ckan/public/base/test/spec/plugins/jquery.url-helpers.spec.js

  Log Message:
  -----------
  [#3528] Add additional test for slugify


  Commit: 19460ad7e72ce79677e7074c6fcf12fb1d546aef
      https://github.com/ckan/ckan/commit/19460ad7e72ce79677e7074c6fcf12fb1d546aef
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-17 (Sat, 17 Jun 2017)

  Changed paths:
    M doc/api/index.rst

  Log Message:
  -----------
  [#2944] Update API docs for import datasets example

Add missing 'owner_org' field for package_create, since it is a required field.


  Commit: ca8c004db1471032d4bbff3cc7cfadf45a840974
      https://github.com/ckan/ckan/commit/ca8c004db1471032d4bbff3cc7cfadf45a840974
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-17 (Sat, 17 Jun 2017)

  Changed paths:
    M ckanext/datastore/backend/postgres.py

  Log Message:
  -----------
  [#2804] Raise ValidationError for long column headings in Datastore

Postgres has a limit of 63 characters for column names.

When a resource is inserted in Datastore, if it contains column headings that have names longer than 63 characters a ValidationError is raised showing affected columns.


  Commit: 97c2a20ed091fd581429980967d41e82d57af53a
      https://github.com/ckan/ckan/commit/97c2a20ed091fd581429980967d41e82d57af53a
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-17 (Sat, 17 Jun 2017)

  Changed paths:
    M ckanext/datastore/tests/test_create.py

  Log Message:
  -----------
  [#2804] Add additional test for datastore_create


  Commit: 69d32a0a2a36116e967105142c5e0166a00f51b9
      https://github.com/ckan/ckan/commit/69d32a0a2a36116e967105142c5e0166a00f51b9
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-18 (Sun, 18 Jun 2017)

  Changed paths:
    M ckan/public/base/javascript/modules/slug-preview.js

  Log Message:
  -----------
  [#2501] Allow slug preview to work with autocomplete fields


  Commit: f00665229b7bce019e36e0f8ad498a2be2798cd2
      https://github.com/ckan/ckan/commit/f00665229b7bce019e36e0f8ad498a2be2798cd2
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-20 (Tue, 20 Jun 2017)

  Changed paths:
    M ckan/templates/group/read.html
    M ckan/templates/organization/read.html

  Log Message:
  -----------
  [#3593] Fix filter results button not working for organization/group

On mobile, filters are initially hidden for datasets in Datasets page, and pages for a particular Organization and Group.

When the button is clicked, a modal is shown with the filters. This works as expected for Datasets page, but not for datasets in Organization/Group pages.


  Commit: 987b2cc9328aed9177427a3c9e3394783237566d
      https://github.com/ckan/ckan/commit/987b2cc9328aed9177427a3c9e3394783237566d
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-06-20 (Tue, 20 Jun 2017)

  Changed paths:
    M doc/api/index.rst

  Log Message:
  -----------
  Merge pull request #3613 from klikstermkd/2944-update-api-docs

[#2944] Update API docs for import datasets example


  Commit: 3da201b0f72176092e1dfc7058c23a6f11029eef
      https://github.com/ckan/ckan/commit/3da201b0f72176092e1dfc7058c23a6f11029eef
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-20 (Tue, 20 Jun 2017)

  Changed paths:
    M ckanext/datastore/backend/postgres.py
    M ckanext/datastore/tests/test_create.py

  Log Message:
  -----------
  Merge pull request #3614 from klikstermkd/2804-column-name-length-datastore-upload

Column name length on Datastore upload


  Commit: 42d2903bff45c9e820d86c73bccec07661855e38
      https://github.com/ckan/ckan/commit/42d2903bff45c9e820d86c73bccec07661855e38
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-20 (Tue, 20 Jun 2017)

  Changed paths:
    M CHANGELOG.rst

  Log Message:
  -----------
  [#3619] Add links to issues/PRs in Changelog page


  Commit: d5bf517d744d0d74ae4261ffdf3bd0b3bd2d16d0
      https://github.com/ckan/ckan/commit/d5bf517d744d0d74ae4261ffdf3bd0b3bd2d16d0
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-06-21 (Wed, 21 Jun 2017)

  Changed paths:
    M CHANGELOG.rst

  Log Message:
  -----------
  Merge pull request #3622 from klikstermkd/3619-changelog-link-pr

Add links to issues/PRs in Changelog page


  Commit: 79ca6aaf12a717347a9069ab60dad5f54fc17816
      https://github.com/ckan/ckan/commit/79ca6aaf12a717347a9069ab60dad5f54fc17816
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-06-21 (Wed, 21 Jun 2017)

  Changed paths:
    M ckan/public/base/javascript/plugins/jquery.url-helpers.js
    M ckan/public/base/test/spec/plugins/jquery.url-helpers.spec.js

  Log Message:
  -----------
  Merge pull request #3612 from klikstermkd/3528-allow-underscores-create-dataset

Allow underscores in URL slug preview on create dataset


  Commit: 31b671169841228ecfccbd40019f5dac3e466c1b
      https://github.com/ckan/ckan/commit/31b671169841228ecfccbd40019f5dac3e466c1b
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-06-21 (Wed, 21 Jun 2017)

  Changed paths:
    M ckan/templates/group/read.html
    M ckan/templates/organization/read.html

  Log Message:
  -----------
  Merge pull request #3620 from klikstermkd/3593-filter-results-button

Fix filter results button not working for organization/group


  Commit: 0daf7f930f882f7b1748b710819f9110300a5ea2
      https://github.com/ckan/ckan/commit/0daf7f930f882f7b1748b710819f9110300a5ea2
  Author: amercader <amercadero at gmail.com>
  Date:   2017-06-21 (Wed, 21 Jun 2017)

  Changed paths:
    M ckan/__init__.py

  Log Message:
  -----------
  Update version number for 2.8.0a


  Commit: 462fa81bb13ad5fab544c65788319f4770a396f4
      https://github.com/ckan/ckan/commit/462fa81bb13ad5fab544c65788319f4770a396f4
  Author: amercader <amercadero at gmail.com>
  Date:   2017-06-21 (Wed, 21 Jun 2017)

  Changed paths:
    M ckan/model/__init__.py

  Log Message:
  -----------
  Remove import from future to support Python 2.5

I think it's safe to assume that the with statement will be available
everywhere.

This was breaking the extraction of messages by Babel


  Commit: 481dc5d43d5d2370d653ce9ed7221956c32247c0
      https://github.com/ckan/ckan/commit/481dc5d43d5d2370d653ce9ed7221956c32247c0
  Author: Sergey <tonnydexter at gmail.com>
  Date:   2017-06-21 (Wed, 21 Jun 2017)

  Changed paths:
    M ckan/public/base/javascript/modules/slug-preview.js

  Log Message:
  -----------
  Merge pull request #3617 from klikstermkd/2501-slug-preview-autocomplete

Allow slug preview to work with autocomplete fields


  Commit: f8084154479e17c77e349eab906de398be3bf109
      https://github.com/ckan/ckan/commit/f8084154479e17c77e349eab906de398be3bf109
  Author: Sergey Motornyuk <sergey.motornyuk at linkdigital.com.au>
  Date:   2017-06-21 (Wed, 21 Jun 2017)

  Changed paths:
    M ckan/model/package.py
    M ckan/tests/legacy/models/test_package_relationships.py

  Log Message:
  -----------
  Choose direction of recreated relationship depending on its type


  Commit: a8eb496a3547cf1dedfa303674136e412746cf54
      https://github.com/ckan/ckan/commit/a8eb496a3547cf1dedfa303674136e412746cf54
  Author: Tyler Kennedy <tk at tkte.ch>
  Date:   2017-06-21 (Wed, 21 Jun 2017)

  Changed paths:
    M ckan/model/__init__.py

  Log Message:
  -----------
  Merge pull request #3624 from ckan/remove-python-2.5-statement

Remove import from future to support Python 2.5


  Commit: 214ccf6924c59b918366c207fdc8cda0f2e0064f
      https://github.com/ckan/ckan/commit/214ccf6924c59b918366c207fdc8cda0f2e0064f
  Author: Adrià Mercader <amercadero at gmail.com>
  Date:   2017-06-22 (Thu, 22 Jun 2017)

  Changed paths:
    M ckan/logic/action/create.py
    M ckan/logic/action/update.py

  Log Message:
  -----------
  Merge pull request #3027 from CarlQLange/patch-3

Fix #2331


  Commit: 3ff02841e5d5043670e590e8e9b73702da943ace
      https://github.com/ckan/ckan/commit/3ff02841e5d5043670e590e8e9b73702da943ace
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-23 (Fri, 23 Jun 2017)

  Changed paths:
    M ckan/model/package.py
    M ckan/tests/legacy/models/test_package_relationships.py

  Log Message:
  -----------
  Merge pull request #3626 from smotornyuk/recreated-package-relationships-ignore-direction

Choose direction of recreated package relationship depending on its type


  Commit: 445e8ee2fcb4323ece70b08e8330f7ab374183c9
      https://github.com/ckan/ckan/commit/445e8ee2fcb4323ece70b08e8330f7ab374183c9
  Author: Aleksandar Jovanov <aleksandar.jovanov at keitaro.com>
  Date:   2017-06-24 (Sat, 24 Jun 2017)

  Changed paths:
    M doc/contributing/upgrading-dependencies.rst

  Log Message:
  -----------
  [#3637] Fix broken link in "Upgrading CKAN’s dependencies" doc page


  Commit: 30473f89a1a4704b517b71e896f01ba1e78e9c9a
      https://github.com/ckan/ckan/commit/30473f89a1a4704b517b71e896f01ba1e78e9c9a
  Author: Tyler Kennedy <tk at tkte.ch>
  Date:   2017-06-25 (Sun, 25 Jun 2017)

  Changed paths:
    M doc/contributing/upgrading-dependencies.rst

  Log Message:
  -----------
  Merge pull request #3638 from klikstermkd/3637-broken-link-upgrade-ckan-dependencies-doc-page

Fix broken link in "Upgrading CKAN’s dependencies" doc page


  Commit: c63675252734b8d54bf8ebfc6fd759cb2dd070dc
      https://github.com/ckan/ckan/commit/c63675252734b8d54bf8ebfc6fd759cb2dd070dc
  Author: Ian Ward <ian at excess.org>
  Date:   2017-06-26 (Mon, 26 Jun 2017)

  Changed paths:
    M ckan/common.py
    M ckan/config/middleware/__init__.py
    M ckan/config/middleware/common_middleware.py
    M ckan/config/middleware/flask_app.py
    M ckan/config/middleware/pylons_app.py
    M ckan/lib/base.py
    M ckan/logic/action/__init__.py
    M ckan/logic/auth/delete.py
    M ckan/logic/auth/get.py
    M ckan/plugins/toolkit.py
    M ckan/tests/config/test_middleware.py
    M ckan/tests/lib/test_i18n.py
    M doc/contributing/string-i18n.rst
    M requirements.in
    M requirements.txt

  Log Message:
  -----------
  Merge pull request #3213 from ckan/3196-i18n

[#3196] i18n for Flask endpoints


  Commit: 0581d42a535e7c3bf0a0e9768b58d3be3db91ef6
      https://github.com/ckan/ckan/commit/0581d42a535e7c3bf0a0e9768b58d3be3db91ef6
  Author: amercader <amercadero at gmail.com>
  Date:   2017-06-27 (Tue, 27 Jun 2017)

  Changed paths:
    M CHANGELOG.rst
    M ckan/__init__.py
    M ckan/common.py
    M ckan/config/middleware/__init__.py
    M ckan/config/middleware/common_middleware.py
    M ckan/config/middleware/flask_app.py
    M ckan/config/middleware/pylons_app.py
    M ckan/controllers/group.py
    M ckan/controllers/user.py
    M ckan/lib/base.py
    M ckan/lib/cli.py
    M ckan/lib/helpers.py
    A ckan/lib/lazyjson.py
    M ckan/logic/action/__init__.py
    M ckan/logic/action/create.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/delete.py
    M ckan/logic/auth/get.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/model/__init__.py
    M ckan/model/package.py
    M ckan/plugins/toolkit.py
    M ckan/public/base/javascript/modules/resource-reorder.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/plugins/jquery.url-helpers.js
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/media.less
    M ckan/public/base/test/spec/plugins/jquery.url-helpers.spec.js
    M ckan/templates/group/about.html
    M ckan/templates/group/edit.html
    M ckan/templates/group/edit_base.html
    M ckan/templates/group/read.html
    M ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_item.html
    M ckan/templates/group/snippets/info.html
    M ckan/templates/organization/read.html
    M ckan/templates/snippets/language_selector.html
    M ckan/templates/user/edit_user_form.html
    M ckan/templates/user/perform_reset.html
    M ckan/tests/config/test_middleware.py
    M ckan/tests/controllers/test_package.py
    M ckan/tests/controllers/test_user.py
    M ckan/tests/legacy/functional/api/test_activity.py
    M ckan/tests/legacy/models/test_package_relationships.py
    M ckan/tests/legacy/test_coding_standards.py
    M ckan/tests/lib/test_i18n.py
    M ckan/tests/logic/action/test_update.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/cli.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datapusher/tests/test_interfaces.py
    A ckanext/datastore/backend/__init__.py
    A ckanext/datastore/backend/postgres.py
    M ckanext/datastore/commands.py
    M ckanext/datastore/controller.py
    R ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/interfaces.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/auth.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/helpers.py
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_db.py
    M ckanext/datastore/tests/test_delete.py
    M ckanext/datastore/tests/test_dump.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_info.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/datastore/tests/test_upsert.py
    M ckanext/datastore/writer.py
    A ckanext/datatablesview/__init__.py
    A ckanext/datatablesview/controller.py
    A ckanext/datatablesview/plugin.py
    A ckanext/datatablesview/public/datatablesview.js
    A ckanext/datatablesview/public/resource.config
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap-theme.css
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap-theme.css.map
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap.css
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/css/bootstrap.css.map
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/js/bootstrap.js
    A ckanext/datatablesview/public/vendor/Bootstrap-3.3.7/js/npm.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.bootstrap.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.dataTables.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.foundation.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.jqueryui.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/buttons.semanticui.css
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/common.scss
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/css/mixins.scss
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.bootstrap.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.colVis.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.foundation.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.jqueryui.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/buttons.semanticui.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/js/dataTables.buttons.js
    A ckanext/datatablesview/public/vendor/Buttons-1.3.1/swf/flashExport.swf
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.bootstrap.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.foundation.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.jqueryui.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/dataTables.semanticui.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/jquery.dataTables.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/css/jquery.dataTables_themeroller.css
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_asc.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_asc_disabled.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_both.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_desc.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/images/sort_desc_disabled.png
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.bootstrap.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.foundation.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.jqueryui.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/dataTables.semanticui.js
    A ckanext/datatablesview/public/vendor/DataTables-1.10.15/js/jquery.dataTables.js
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.dataTables.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.foundation.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css
    A ckanext/datatablesview/public/vendor/FixedColumns-3.2.2/js/dataTables.fixedColumns.js
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.dataTables.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.foundation.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css
    A ckanext/datatablesview/public/vendor/FixedHeader-3.1.2/js/dataTables.fixedHeader.js
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.bootstrap.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.dataTables.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.foundation.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.jqueryui.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/css/keyTable.semanticui.css
    A ckanext/datatablesview/public/vendor/KeyTable-2.2.1/js/dataTables.keyTable.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.bootstrap.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.dataTables.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.foundation.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/css/responsive.jqueryui.css
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/dataTables.responsive.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.bootstrap.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.foundation.js
    A ckanext/datatablesview/public/vendor/Responsive-2.1.1/js/responsive.jqueryui.js
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.bootstrap.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.dataTables.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.foundation.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.jqueryui.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/css/select.semanticui.css
    A ckanext/datatablesview/public/vendor/Select-1.2.2/js/dataTables.select.js
    A ckanext/datatablesview/public/vendor/datatables.css
    A ckanext/datatablesview/public/vendor/datatables.js
    A ckanext/datatablesview/templates/datatables/datatables_form.html
    A ckanext/datatablesview/templates/datatables/datatables_view.html
    A ckanext/example_idatastorebackend/__init__.py
    A ckanext/example_idatastorebackend/example_sqlite.py
    A ckanext/example_idatastorebackend/plugin.py
    A ckanext/example_idatastorebackend/test/__init__.py
    A ckanext/example_idatastorebackend/test/test_plugin.py
    R ckanext/example_theme/__init__.py
    R ckanext/example_theme/custom_config_setting/__init__.py
    R ckanext/example_theme/custom_config_setting/plugin.py
    R ckanext/example_theme/custom_config_setting/templates/home/layout1.html
    R ckanext/example_theme/custom_config_setting/templates/snippets
    R ckanext/example_theme/custom_emails/__init__.py
    R ckanext/example_theme/custom_emails/plugin.py
    R ckanext/example_theme/custom_emails/templates/emails/invite_user.txt
    R ckanext/example_theme/custom_emails/templates/emails/invite_user_subject.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password.txt
    R ckanext/example_theme/custom_emails/templates/emails/reset_password_subject.txt
    R ckanext/example_theme/custom_emails/tests.py
    R ckanext/example_theme/v01_empty_extension/__init__.py
    R ckanext/example_theme/v01_empty_extension/plugin.py
    R ckanext/example_theme/v02_empty_template/__init__.py
    R ckanext/example_theme/v02_empty_template/plugin.py
    R ckanext/example_theme/v02_empty_template/templates/home/index.html
    R ckanext/example_theme/v03_jinja/__init__.py
    R ckanext/example_theme/v03_jinja/plugin.py
    R ckanext/example_theme/v03_jinja/templates/home/index.html
    R ckanext/example_theme/v04_ckan_extends/__init__.py
    R ckanext/example_theme/v04_ckan_extends/plugin.py
    R ckanext/example_theme/v04_ckan_extends/templates/home/index.html
    R ckanext/example_theme/v05_block/__init__.py
    R ckanext/example_theme/v05_block/plugin.py
    R ckanext/example_theme/v05_block/templates/home/layout1.html
    R ckanext/example_theme/v06_super/__init__.py
    R ckanext/example_theme/v06_super/plugin.py
    R ckanext/example_theme/v06_super/templates/home/layout1.html
    R ckanext/example_theme/v07_helper_function/__init__.py
    R ckanext/example_theme/v07_helper_function/plugin.py
    R ckanext/example_theme/v07_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v08_custom_helper_function/__init__.py
    R ckanext/example_theme/v08_custom_helper_function/plugin.py
    R ckanext/example_theme/v08_custom_helper_function/templates/home/layout1.html
    R ckanext/example_theme/v09_snippet/__init__.py
    R ckanext/example_theme/v09_snippet/plugin.py
    R ckanext/example_theme/v09_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/__init__.py
    R ckanext/example_theme/v10_custom_snippet/plugin.py
    R ckanext/example_theme/v10_custom_snippet/templates/home/layout1.html
    R ckanext/example_theme/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v11_HTML_and_CSS/__init__.py
    R ckanext/example_theme/v11_HTML_and_CSS/plugin.py
    R ckanext/example_theme/v11_HTML_and_CSS/templates/home/layout1.html
    R ckanext/example_theme/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    R ckanext/example_theme/v12_extra_public_dir/__init__.py
    R ckanext/example_theme/v12_extra_public_dir/plugin.py
    R ckanext/example_theme/v12_extra_public_dir/public/promoted-image.jpg
    R ckanext/example_theme/v12_extra_public_dir/templates/home/layout1.html
    R ckanext/example_theme/v12_extra_public_dir/templates/home/snippets/promoted.html
    R ckanext/example_theme/v12_extra_public_dir/templates/snippets
    R ckanext/example_theme/v13_custom_css/__init__.py
    R ckanext/example_theme/v13_custom_css/plugin.py
    R ckanext/example_theme/v13_custom_css/public/example_theme.css
    R ckanext/example_theme/v13_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v13_custom_css/templates/base.html
    R ckanext/example_theme/v13_custom_css/templates/home
    R ckanext/example_theme/v13_custom_css/templates/snippets
    R ckanext/example_theme/v14_more_custom_css/__init__.py
    R ckanext/example_theme/v14_more_custom_css/plugin.py
    R ckanext/example_theme/v14_more_custom_css/public/example_theme.css
    R ckanext/example_theme/v14_more_custom_css/public/promoted-image.jpg
    R ckanext/example_theme/v14_more_custom_css/templates
    R ckanext/example_theme/v15_fanstatic/__init__.py
    R ckanext/example_theme/v15_fanstatic/fanstatic/example_theme.css
    R ckanext/example_theme/v15_fanstatic/plugin.py
    R ckanext/example_theme/v15_fanstatic/public/promoted-image.jpg
    R ckanext/example_theme/v15_fanstatic/templates/base.html
    R ckanext/example_theme/v15_fanstatic/templates/home
    R ckanext/example_theme/v15_fanstatic/templates/snippets
    R ckanext/example_theme/v16_initialize_a_javascript_module/__init__.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v16_initialize_a_javascript_module/plugin.py
    R ckanext/example_theme/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    R ckanext/example_theme/v17_popover/__init__.py
    R ckanext/example_theme/v17_popover/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v17_popover/plugin.py
    R ckanext/example_theme/v17_popover/templates/snippets/package_item.html
    R ckanext/example_theme/v18_snippet_api/__init__.py
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v18_snippet_api/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v18_snippet_api/plugin.py
    R ckanext/example_theme/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    R ckanext/example_theme/v18_snippet_api/templates/snippets/package_item.html
    R ckanext/example_theme/v19_01_error/__init__.py
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_01_error/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_01_error/plugin.py
    R ckanext/example_theme/v19_01_error/templates
    R ckanext/example_theme/v19_02_error_handling/__init__.py
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v19_02_error_handling/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v19_02_error_handling/plugin.py
    R ckanext/example_theme/v19_02_error_handling/templates
    R ckanext/example_theme/v20_pubsub/__init__.py
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v20_pubsub/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v20_pubsub/plugin.py
    R ckanext/example_theme/v20_pubsub/templates
    R ckanext/example_theme/v21_custom_jquery_plugin/__init__.py
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    R ckanext/example_theme/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    R ckanext/example_theme/v21_custom_jquery_plugin/plugin.py
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/ajax_snippets
    R ckanext/example_theme/v21_custom_jquery_plugin/templates/snippets/package_item.html
    A ckanext/example_theme_docs/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/__init__.py
    A ckanext/example_theme_docs/custom_config_setting/plugin.py
    A ckanext/example_theme_docs/custom_config_setting/templates/home/layout1.html
    A ckanext/example_theme_docs/custom_config_setting/templates/snippets
    A ckanext/example_theme_docs/custom_emails/__init__.py
    A ckanext/example_theme_docs/custom_emails/plugin.py
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/invite_user_subject.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password.txt
    A ckanext/example_theme_docs/custom_emails/templates/emails/reset_password_subject.txt
    A ckanext/example_theme_docs/custom_emails/tests.py
    A ckanext/example_theme_docs/v01_empty_extension/__init__.py
    A ckanext/example_theme_docs/v01_empty_extension/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/__init__.py
    A ckanext/example_theme_docs/v02_empty_template/plugin.py
    A ckanext/example_theme_docs/v02_empty_template/templates/home/index.html
    A ckanext/example_theme_docs/v03_jinja/__init__.py
    A ckanext/example_theme_docs/v03_jinja/plugin.py
    A ckanext/example_theme_docs/v03_jinja/templates/home/index.html
    A ckanext/example_theme_docs/v04_ckan_extends/__init__.py
    A ckanext/example_theme_docs/v04_ckan_extends/plugin.py
    A ckanext/example_theme_docs/v04_ckan_extends/templates/home/index.html
    A ckanext/example_theme_docs/v05_block/__init__.py
    A ckanext/example_theme_docs/v05_block/plugin.py
    A ckanext/example_theme_docs/v05_block/templates/home/layout1.html
    A ckanext/example_theme_docs/v06_super/__init__.py
    A ckanext/example_theme_docs/v06_super/plugin.py
    A ckanext/example_theme_docs/v06_super/templates/home/layout1.html
    A ckanext/example_theme_docs/v07_helper_function/__init__.py
    A ckanext/example_theme_docs/v07_helper_function/plugin.py
    A ckanext/example_theme_docs/v07_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v08_custom_helper_function/__init__.py
    A ckanext/example_theme_docs/v08_custom_helper_function/plugin.py
    A ckanext/example_theme_docs/v08_custom_helper_function/templates/home/layout1.html
    A ckanext/example_theme_docs/v09_snippet/__init__.py
    A ckanext/example_theme_docs/v09_snippet/plugin.py
    A ckanext/example_theme_docs/v09_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/__init__.py
    A ckanext/example_theme_docs/v10_custom_snippet/plugin.py
    A ckanext/example_theme_docs/v10_custom_snippet/templates/home/layout1.html
    A ckanext/example_theme_docs/v10_custom_snippet/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/__init__.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/plugin.py
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/home/layout1.html
    A ckanext/example_theme_docs/v11_HTML_and_CSS/templates/snippets/example_theme_most_popular_groups.html
    A ckanext/example_theme_docs/v12_extra_public_dir/__init__.py
    A ckanext/example_theme_docs/v12_extra_public_dir/plugin.py
    A ckanext/example_theme_docs/v12_extra_public_dir/public/promoted-image.jpg
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/layout1.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/home/snippets/promoted.html
    A ckanext/example_theme_docs/v12_extra_public_dir/templates/snippets
    A ckanext/example_theme_docs/v13_custom_css/__init__.py
    A ckanext/example_theme_docs/v13_custom_css/plugin.py
    A ckanext/example_theme_docs/v13_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v13_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v13_custom_css/templates/base.html
    A ckanext/example_theme_docs/v13_custom_css/templates/home
    A ckanext/example_theme_docs/v13_custom_css/templates/snippets
    A ckanext/example_theme_docs/v14_more_custom_css/__init__.py
    A ckanext/example_theme_docs/v14_more_custom_css/plugin.py
    A ckanext/example_theme_docs/v14_more_custom_css/public/example_theme.css
    A ckanext/example_theme_docs/v14_more_custom_css/public/promoted-image.jpg
    A ckanext/example_theme_docs/v14_more_custom_css/templates
    A ckanext/example_theme_docs/v15_fanstatic/__init__.py
    A ckanext/example_theme_docs/v15_fanstatic/fanstatic/example_theme.css
    A ckanext/example_theme_docs/v15_fanstatic/plugin.py
    A ckanext/example_theme_docs/v15_fanstatic/public/promoted-image.jpg
    A ckanext/example_theme_docs/v15_fanstatic/templates/base.html
    A ckanext/example_theme_docs/v15_fanstatic/templates/home
    A ckanext/example_theme_docs/v15_fanstatic/templates/snippets
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/__init__.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/plugin.py
    A ckanext/example_theme_docs/v16_initialize_a_javascript_module/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v17_popover/__init__.py
    A ckanext/example_theme_docs/v17_popover/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v17_popover/plugin.py
    A ckanext/example_theme_docs/v17_popover/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v18_snippet_api/__init__.py
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v18_snippet_api/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v18_snippet_api/plugin.py
    A ckanext/example_theme_docs/v18_snippet_api/templates/ajax_snippets/example_theme_popover.html
    A ckanext/example_theme_docs/v18_snippet_api/templates/snippets/package_item.html
    A ckanext/example_theme_docs/v19_01_error/__init__.py
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_01_error/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_01_error/plugin.py
    A ckanext/example_theme_docs/v19_01_error/templates
    A ckanext/example_theme_docs/v19_02_error_handling/__init__.py
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v19_02_error_handling/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v19_02_error_handling/plugin.py
    A ckanext/example_theme_docs/v19_02_error_handling/templates
    A ckanext/example_theme_docs/v20_pubsub/__init__.py
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v20_pubsub/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v20_pubsub/plugin.py
    A ckanext/example_theme_docs/v20_pubsub/templates
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/__init__.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.css
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/example_theme_popover.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/fanstatic/jquery.greenify.js
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/plugin.py
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/ajax_snippets
    A ckanext/example_theme_docs/v21_custom_jquery_plugin/templates/snippets/package_item.html
    M contrib/docker/docker-compose.yml
    M doc/api/index.rst
    M doc/contributing/string-i18n.rst
    M doc/contributing/upgrading-dependencies.rst
    M doc/extensions/best-practices.rst
    M doc/maintaining/datastore.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/upgrading/upgrade-postgres.rst
    M doc/theming/best-practices.rst
    M doc/theming/css.rst
    M doc/theming/fanstatic.rst
    M doc/theming/javascript.rst
    M doc/theming/static-files.rst
    M doc/theming/templates.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 3196-common-url_for


Compare: https://github.com/ckan/ckan/compare/a4d2436c6c46...0581d42a535e


More information about the ckan-changes mailing list