[ckan-changes] [ckan/ckan] c7677b: [#3196] Add Flask-babel requirement, hook into Fla...

GitHub noreply at github.com
Mon Jun 26 20:34:15 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/ckan/ckan
  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: 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: 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: 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: 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: 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: 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


Compare: https://github.com/ckan/ckan/compare/30473f89a1a4...c63675252734


More information about the ckan-changes mailing list