[ckan-changes] [ckan/ckan] 30de08: [#1792] Minor refactoring removing not DRY code

GitHub noreply at github.com
Tue Jan 6 09:53:35 UTC 2015


  Branch: refs/heads/master
  Home:   https://github.com/ckan/ckan
  Commit: 30de087fc1e97de5d1382991e8b3529f91a929d5
      https://github.com/ckan/ckan/commit/30de087fc1e97de5d1382991e8b3529f91a929d5
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-24 (Tue, 24 Jun 2014)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  [#1792] Minor refactoring removing not DRY code


  Commit: 200c8a2d50e9fb7f049b5ed34a06c973c8fd6fac
      https://github.com/ckan/ckan/commit/200c8a2d50e9fb7f049b5ed34a06c973c8fd6fac
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-24 (Tue, 24 Jun 2014)

  Changed paths:
    M ckan/lib/helpers.py
    A ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/javascript/resource.config
    M ckan/templates/package/snippets/resource_view.html
    A ckan/templates/package/snippets/resource_view_filters.html

  Log Message:
  -----------
  [#1792] Create filters dropdowns when displaying resource view


  Commit: f3765333b96a0cd8eac760aa513a786646437322
      https://github.com/ckan/ckan/commit/f3765333b96a0cd8eac760aa513a786646437322
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-24 (Tue, 24 Jun 2014)

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

  Log Message:
  -----------
  [#1792] Add current filters' dropdowns on load and fix filter removal/change


  Commit: 73380451723f17893626c2278ecba4978831bf36
      https://github.com/ckan/ckan/commit/73380451723f17893626c2278ecba4978831bf36
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-24 (Tue, 24 Jun 2014)

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

  Log Message:
  -----------
  [#1792] Show dropdowns only for columns with filters set


  Commit: 8b56c600516e1ea28959c63a01af34e32407040a
      https://github.com/ckan/ckan/commit/8b56c600516e1ea28959c63a01af34e32407040a
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-25 (Wed, 25 Jun 2014)

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

  Log Message:
  -----------
  [#1792] ALlow the user to filter by new columns


  Commit: 0d71de08fb0b16356d6e49e5df23cfdafdf71be0
      https://github.com/ckan/ckan/commit/0d71de08fb0b16356d6e49e5df23cfdafdf71be0
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-25 (Wed, 25 Jun 2014)

  Changed paths:
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/less/ckan.less
    A ckan/public/base/less/resource-view.less
    M ckan/templates/package/snippets/resource_view_filters.html

  Log Message:
  -----------
  [#1792] Styling filters


  Commit: 04422ef8695e7157c6318c42bc5d63fd98e49e70
      https://github.com/ckan/ckan/commit/04422ef8695e7157c6318c42bc5d63fd98e49e70
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-26 (Thu, 26 Jun 2014)

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

  Log Message:
  -----------
  [#1792] Allow clearing filters

Unfortunately, select2 require not only setting `allowClear`, but also having a
`placeholder`. As I don't want to have a `placeholder`, I've set it to `' '` as
a workaround.


  Commit: b87b9bb60d0216edad5833008388d9901bde1b0d
      https://github.com/ckan/ckan/commit/b87b9bb60d0216edad5833008388d9901bde1b0d
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-26 (Thu, 26 Jun 2014)

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

  Log Message:
  -----------
  [#1792] Set the filters' width using CSS


  Commit: 3e264835eb8f451e3fbf486b219f4f0820048263
      https://github.com/ckan/ckan/commit/3e264835eb8f451e3fbf486b219f4f0820048263
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-26 (Thu, 26 Jun 2014)

  Changed paths:
    M ckan/templates/package/snippets/resource_views_list.html
    M ckan/templates/package/snippets/resource_views_list_item.html

  Log Message:
  -----------
  [#1792] Keep filters persistent when changing across views

The idea is simple. I changed the links for the other resource views of the
same resource to keep the `filters` query string, if it exist. I do this even
for resource views that aren't filterable, so even if you go from resource view
Foo, which is filterable, and set some filters, then move to resource view Bar
which isn't filterable, then to resource view Baz which is filterable, the
filters you've set in Foo are still set when you visit Baz.


  Commit: d764e11484455e7a72fbca382b523e99b33e5409
      https://github.com/ckan/ckan/commit/d764e11484455e7a72fbca382b523e99b33e5409
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-26 (Thu, 26 Jun 2014)

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

  Log Message:
  -----------
  [#1792] Add polyfill for Object.keys() and remove usage of Array.filter

We need this to make sure the code works on older browsers.


  Commit: 8e77d4433c0e3a95e79dcbbb595c3f6d4d7057e3
      https://github.com/ckan/ckan/commit/8e77d4433c0e3a95e79dcbbb595c3f6d4d7057e3
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-26 (Thu, 26 Jun 2014)

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

  Log Message:
  -----------
  [#1792] Minor refactorings


  Commit: 1f859646deedd1cab8041cac512be43ce9321698
      https://github.com/ckan/ckan/commit/1f859646deedd1cab8041cac512be43ce9321698
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-26 (Thu, 26 Jun 2014)

  Changed paths:
    M ckan/templates/package/snippets/resource_views_list_item.html

  Log Message:
  -----------
  [#1792] Don't set filters on links when there're no filters


  Commit: 09170d8ad7fec3bc58a2ce6f7cb1ec8e84ae5b22
      https://github.com/ckan/ckan/commit/09170d8ad7fec3bc58a2ce6f7cb1ec8e84ae5b22
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-26 (Thu, 26 Jun 2014)

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

  Log Message:
  -----------
  [#1792] Fix bug where filters weren't appearing


  Commit: 223e1dfaaac880162d6114575723dcc46df93134
      https://github.com/ckan/ckan/commit/223e1dfaaac880162d6114575723dcc46df93134
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-26 (Thu, 26 Jun 2014)

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

  Log Message:
  -----------
  [#1792] Fix bug where we were unable to remove filters

Instead of removing the filters, we were setting them to `undefined`.


  Commit: 43a6fe8719373075b61fc21b07483d6ec7bbaafd
      https://github.com/ckan/ckan/commit/43a6fe8719373075b61fc21b07483d6ec7bbaafd
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-30 (Mon, 30 Jun 2014)

  Changed paths:
    M ckan/templates/package/snippets/resource_views_list_item.html

  Log Message:
  -----------
  [#1792] Fix bug where filters weren't persisting

The problem was that I mistyped `current_filter` instead of `current_filters`


  Commit: 4f214847cb2f5ddcb869587d0b1cb73ec5555116
      https://github.com/ckan/ckan/commit/4f214847cb2f5ddcb869587d0b1cb73ec5555116
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-30 (Mon, 30 Jun 2014)

  Changed paths:
    M ckan/public/base/javascript/resource.config
    A ckan/public/base/javascript/viewhelpers-filters.js
    M ckan/templates/package/snippets/resource_view.html

  Log Message:
  -----------
  [#1792] Pass the filters to iframed resource views

It works simply by passing the `filters` query string to the iframed URL. As
iframed resources don't add JS files outside of the iframe, and we need
`ckan.views.viewhelpers.filters` to create the filters, I needed to move that
core from `ckanext-viewhelpers` to core and load it.

In the future, `ckanext-viewhelpers` will be completely merged into core and
will be removed.


  Commit: 39d9227dc74fc2b92aeda8811eef4e44a759b4b3
      https://github.com/ckan/ckan/commit/39d9227dc74fc2b92aeda8811eef4e44a759b4b3
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-30 (Mon, 30 Jun 2014)

  Changed paths:
    M ckanext/reclinepreview/plugin.py

  Log Message:
  -----------
  [#1792] Configure Recline's previews as filterable


  Commit: d47265ea1966f555cbc6e940d2e65fec7826aa7d
      https://github.com/ckan/ckan/commit/d47265ea1966f555cbc6e940d2e65fec7826aa7d
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-06-30 (Mon, 30 Jun 2014)

  Changed paths:
    M ckan/lib/helpers.py
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/templates/package/snippets/resource_view_filters.html

  Log Message:
  -----------
  [#1792] Fix bug with fields with more than 5000 values

Before, we tried to load 5000 values for every resource. If the resource had
more records than that, we simply ignored it. This meant the user couldn't add
filters to it anymore.

Now, instead of pre-loading the values, we simply get the field list and use
select2 to search the datastore when the user tries to add a filter. This means
that we now can handle resources of any size.

There're a few problems because `datastore_search` doesn't support returning
only DISTINCT values, so we have to do this on the client. It also messes with
the results in other ways. I created an issue #1815 to add this feature. When
that's done, we can improve this code.


  Commit: f48e6f2806780d8ce1dc0b775bbb391f91445ccc
      https://github.com/ckan/ckan/commit/f48e6f2806780d8ce1dc0b775bbb391f91445ccc
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-01 (Tue, 01 Jul 2014)

  Changed paths:
    M ckan/new_tests/logic/action/test_create.py

  Log Message:
  -----------
  Merge branch '1251-resource-view' into 1792-filterable-resource-views


  Commit: e5e0e156faaaf356eebe19a97290c5efe484a84e
      https://github.com/ckan/ckan/commit/e5e0e156faaaf356eebe19a97290c5efe484a84e
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-01 (Tue, 01 Jul 2014)

  Changed paths:
    M ckan/logic/action/create.py
    M ckan/logic/converters.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/new_tests/logic/action/test_create.py

  Log Message:
  -----------
  [#1792] Add filters to the filterable resource view's schemas

We add filter_fields and filter_values fields to their schema, and also convert
them to a single filters dict, to make it easier for the rest of our code.


  Commit: 49036f3d99ce9a7441af8344ef18befbd38516c0
      https://github.com/ckan/ckan/commit/49036f3d99ce9a7441af8344ef18befbd38516c0
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-01 (Tue, 01 Jul 2014)

  Changed paths:
    M ckan/logic/schema.py
    M ckan/new_tests/logic/action/test_update.py

  Log Message:
  -----------
  [#1792] Don't require "title" on resource_view_update

We just require the ResourceView's id.


  Commit: ef42941ecc6af634614be189663d7ae8e0764b38
      https://github.com/ckan/ckan/commit/ef42941ecc6af634614be189663d7ae8e0764b38
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-01 (Tue, 01 Jul 2014)

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

  Log Message:
  -----------
  [#1792] resource_view_update works with filter_fields and filter_values

As added for resource_view_create on e5e0e15, this does the same for
resource_view_update.


  Commit: cc317b3b9d91f067ff8d333ff8f9e963080026cf
      https://github.com/ckan/ckan/commit/cc317b3b9d91f067ff8d333ff8f9e963080026cf
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-02 (Wed, 02 Jul 2014)

  Changed paths:
    A Dockerfile
    M bin/travis-install-dependencies
    M ckan/config/routing.py
    M ckan/controllers/package.py
    M ckan/lib/base.py
    M ckan/lib/cli.py
    M ckan/lib/helpers.py
    M ckan/lib/search/index.py
    M ckan/logic/auth/create.py
    M ckan/logic/auth/get.py
    M ckan/logic/auth/update.py
    A ckan/new_tests/controllers/test_package.py
    M ckan/new_tests/controllers/test_util.py
    M ckan/new_tests/factories.py
    M ckan/new_tests/helpers.py
    A ckan/new_tests/lib/search/__init__.py
    A ckan/new_tests/lib/search/test_index.py
    M ckan/new_tests/lib/test_helpers.py
    M ckan/new_tests/logic/auth/test_create.py
    M ckan/public/base/less/forms.less
    M ckan/templates/admin/base.html
    A ckan/templates/admin/trash.html
    M ckan/templates/package/new_package_form.html
    R ckan/templates/package/new_package_metadata.html
    M ckan/templates/package/snippets/package_form.html
    R ckan/templates/package/snippets/package_metadata_form.html
    M ckan/templates/package/snippets/resource_form.html
    M ckan/templates/package/snippets/stages.html
    M ckan/tests/test_coding_standards.py
    M ckanext/datapusher/plugin.py
    R ckanext/datastore/bin/__init__.py
    R ckanext/datastore/bin/datastore_setup.py
    R ckanext/datastore/bin/set_permissions.sql
    M ckanext/datastore/commands.py
    M ckanext/datastore/db.py
    A ckanext/datastore/helpers.py
    A ckanext/datastore/interfaces.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/plugin.py
    A ckanext/datastore/set_permissions.sql
    A ckanext/datastore/tests/sample_datastore_plugin.py
    M ckanext/datastore/tests/test_delete.py
    A ckanext/datastore/tests/test_helpers.py
    A ckanext/datastore/tests/test_interface.py
    A ckanext/datastore/tests/test_plugin.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    A contrib/docker/apache.conf
    A contrib/docker/apache.wsgi
    A contrib/docker/main.cf
    A contrib/docker/nginx.conf
    A contrib/docker/postgresql/Dockerfile
    A contrib/docker/solr/Dockerfile
    A contrib/docker/solr/schema.xml
    A contrib/docker/svc/ckan/run
    A contrib/docker/svc/nginx/run
    A contrib/docker/svc/postfix/run
    M doc/api/index.rst
    M doc/contributing/architecture.rst
    M doc/contributing/documentation.rst
    M doc/contributing/frontend/index.rst
    M doc/contributing/python.rst
    A doc/images/ckan_importing_diagram.graphml
    A doc/images/ckan_importing_diagram.png
    M doc/maintaining/datastore.rst
    M doc/maintaining/installing/index.rst
    M doc/maintaining/installing/install-from-source.rst
    A doc/maintaining/installing/install-using-docker.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge branch '1251-resource-view' into 1792-filterable-resource-views


  Commit: 7511cb01063df379342a5e357bfe2405372ecbc4
      https://github.com/ckan/ckan/commit/7511cb01063df379342a5e357bfe2405372ecbc4
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-02 (Wed, 02 Jul 2014)

  Changed paths:
    M ckan/templates/package/snippets/resource_view.html

  Log Message:
  -----------
  [#1792] Don't show filters UI when previewing resource views


  Commit: 85ea7f3bdaba6026f74b93870a6de23346c60d86
      https://github.com/ckan/ckan/commit/85ea7f3bdaba6026f74b93870a6de23346c60d86
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-02 (Wed, 02 Jul 2014)

  Changed paths:
    M ckan/controllers/package.py

  Log Message:
  -----------
  [#1792] Fix bug where we weren't using the converted data

We were using the data straight from the POST request, and not the converted
data.


  Commit: 5e93512331cbfcd771623388f3fad589b352674a
      https://github.com/ckan/ckan/commit/5e93512331cbfcd771623388f3fad589b352674a
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-03 (Thu, 03 Jul 2014)

  Changed paths:
    M ckan/logic/action/create.py
    M ckan/new_tests/logic/action/test_create.py
    M ckan/new_tests/logic/action/test_update.py

  Log Message:
  -----------
  [#1792] PEP8


  Commit: d937650a733adcf97345daf4be24292e1ebba53d
      https://github.com/ckan/ckan/commit/d937650a733adcf97345daf4be24292e1ebba53d
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-03 (Thu, 03 Jul 2014)

  Changed paths:
    M ckan/lib/helpers.py
    M ckan/new_tests/lib/test_helpers.py
    A ckan/public/base/javascript/modules/resource-view-filters-form.js
    M ckan/public/base/javascript/resource.config
    M ckan/public/base/less/resource-view.less
    M ckan/templates/package/snippets/view_form.html
    A ckan/templates/package/snippets/view_form_filters.html

  Log Message:
  -----------
  [#1792] Add filters UI to filterable resource view's manage page

Most of the code was extracted from ckanext-basiccharts and
ckanext-viewhelpers.


  Commit: 179056af57a6c1e013d4ff42040b6995ede48bd4
      https://github.com/ckan/ckan/commit/179056af57a6c1e013d4ff42040b6995ede48bd4
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-03 (Thu, 03 Jul 2014)

  Changed paths:
    M ckan/public/base/javascript/modules/resource-view-filters.js
    A ckan/public/base/vendor/polyfill-object-keys.js
    M ckan/public/base/vendor/resource.config

  Log Message:
  -----------
  [#1792] Move Object.keys() polyfill to its own file

We need it on more than one module, so we move it to its own file and always
load it when IE <= 8, so the other JS files can rely on Object.keys() being
available.


  Commit: 70900c1d4b9d7571258575eef7054ea8389d3fdd
      https://github.com/ckan/ckan/commit/70900c1d4b9d7571258575eef7054ea8389d3fdd
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-03 (Thu, 03 Jul 2014)

  Changed paths:
    M ckan/templates/package/snippets/view_form.html

  Log Message:
  -----------
  [#1792] Add form filters inside a block

This allows extensions to overwrite it if they want.


  Commit: a0cb8494cfaa24dd1706f6c0c6764c2cc44ee6f1
      https://github.com/ckan/ckan/commit/a0cb8494cfaa24dd1706f6c0c6764c2cc44ee6f1
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-03 (Thu, 03 Jul 2014)

  Changed paths:
    M ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/javascript/resource.config
    A ckan/public/base/javascript/view-filters.js
    R ckan/public/base/javascript/viewhelpers-filters.js
    M ckanext/reclinepreview/theme/public/preview_recline.js

  Log Message:
  -----------
  [#1792] Rename ckan.views.viewhelpers.filters -> ckan.views.filters


  Commit: 12739b88c02acb61e47ab7f4192baa6f22b86c0e
      https://github.com/ckan/ckan/commit/12739b88c02acb61e47ab7f4192baa6f22b86c0e
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-03 (Thu, 03 Jul 2014)

  Changed paths:
    M ckan/templates/package/snippets/resource_view.html
    M ckan/templates/package/snippets/resource_views_list.html

  Log Message:
  -----------
  [#1792] str_queryvars is deprecated. Change it to str_GET


  Commit: 2895dacffac9c62c7e7d67a384504310d27848be
      https://github.com/ckan/ckan/commit/2895dacffac9c62c7e7d67a384504310d27848be
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-04 (Fri, 04 Jul 2014)

  Changed paths:
    M ckan/public/base/javascript/view-filters.js
    M ckan/public/base/test/index.html
    A ckan/public/base/test/spec/view-filters.spec.js

  Log Message:
  -----------
  [#1792] Adds tests for ckan.views.filters


  Commit: 4c9db506954591baf6d46ab4dd59b415d4208283
      https://github.com/ckan/ckan/commit/4c9db506954591baf6d46ab4dd59b415d4208283
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-04 (Fri, 04 Jul 2014)

  Changed paths:
    M ckanext/reclinepreview/theme/public/preview_recline.js

  Log Message:
  -----------
  [#1792] Fix ReclinePreviews to use default filters

We were using just the URL's filters, and not the filters configured by the
admins on the manage page. This is fixed now.


  Commit: d0b96fb092a37f71f348b0252ab14ec67b3d1190
      https://github.com/ckan/ckan/commit/d0b96fb092a37f71f348b0252ab14ec67b3d1190
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-08 (Tue, 08 Jul 2014)

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

  Log Message:
  -----------
  [#1792] Get only distinct values from the datastore

This code depends on code from pull request #1815.


  Commit: d93cf29cdd2cfa283d1c36e2241882165b56e8c6
      https://github.com/ckan/ckan/commit/d93cf29cdd2cfa283d1c36e2241882165b56e8c6
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-08 (Tue, 08 Jul 2014)

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

  Log Message:
  -----------
  [#1792] Limit to 20, instead of 100 results

We don't need that many results at once on a selectbox, and getting less means
a faster query and less data to transmit.


  Commit: 7d3cfb2b1bb535c24eeb1dc352eaa912824023a5
      https://github.com/ckan/ckan/commit/7d3cfb2b1bb535c24eeb1dc352eaa912824023a5
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-18 (Fri, 18 Jul 2014)

  Changed paths:
    M Dockerfile
    M ckan/config/solr/schema.xml
    M ckan/lib/search/index.py
    M ckan/new_tests/lib/search/test_index.py
    M ckan/tests/functional/api/test_package_search.py
    M ckanext/datastore/db.py
    M ckanext/datastore/interfaces.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/logic/schema.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_search.py
    M contrib/docker/apache.conf
    M doc/api/index.rst
    M doc/contributing/reviewing.rst

  Log Message:
  -----------
  Merge branch 'master' into 1792-filterable-resource-views

Conflicts:
	ckanext/datastore/tests/test_search.py


  Commit: 21e2fc79d541c813af09890e39e1c8929b68448d
      https://github.com/ckan/ckan/commit/21e2fc79d541c813af09890e39e1c8929b68448d
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-18 (Fri, 18 Jul 2014)

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

  Log Message:
  -----------
  Merge branch '1838-fts-on-specific-columns' into 1792-filterable-resource-views

Conflicts:
	ckanext/datastore/plugin.py


  Commit: 94c2abf0f52426f4a37d7cf512257ac07980a660
      https://github.com/ckan/ckan/commit/94c2abf0f52426f4a37d7cf512257ac07980a660
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-21 (Mon, 21 Jul 2014)

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

  Log Message:
  -----------
  [#1792] Autocomplete using the specific field, and not all text

For this, we now depend on #1838 being merged before.


  Commit: 2011d7d05b360e506ea8832aa8c1b09c8801872e
      https://github.com/ckan/ckan/commit/2011d7d05b360e506ea8832aa8c1b09c8801872e
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-21 (Mon, 21 Jul 2014)

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

  Log Message:
  -----------
  [#1792] Show distinct values on manage view filters' autocomplete


  Commit: 2b37ef98382f869a511074b1f57ae5e2ee7c363e
      https://github.com/ckan/ckan/commit/2b37ef98382f869a511074b1f57ae5e2ee7c363e
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-21 (Mon, 21 Jul 2014)

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

  Log Message:
  -----------
  [#1792] Show all values on the dropdown if nothing was written

This is for when the user haven't written anything, just clicked on the
dropdown's arrow. She'll be able to see what are the options for that field.


  Commit: c6739d2652cc4358bb4441cd0c71e8ee967e726d
      https://github.com/ckan/ckan/commit/c6739d2652cc4358bb4441cd0c71e8ee967e726d
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-22 (Tue, 22 Jul 2014)

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

  Log Message:
  -----------
  [#1792] Refactoring resource views filters' dropdowns

I've cleaned the detection if there's more data than what's displayed, removed
some useless code toremove repeated values (now we have the DISTINCT
parameter), and made the dropdown at the resource view manage page just load 20
results, the same as the other dropdowns.


  Commit: 86c295b8561198bb333b90fee86e7b1222059fe9
      https://github.com/ckan/ckan/commit/86c295b8561198bb333b90fee86e7b1222059fe9
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-07-22 (Tue, 22 Jul 2014)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/new_tests/helpers.py
    M ckanext/datastore/db.py
    M ckanext/datastore/logic/action.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_create.py
    A ckanext/datastore/tests/test_db.py
    M ckanext/datastore/tests/test_plugin.py
    M ckanext/datastore/tests/test_search.py
    M doc/maintaining/configuration.rst

  Log Message:
  -----------
  Merge branch '1838-fts-on-specific-columns' into 1792-filterable-resource-views

Conflicts:
	ckanext/datastore/plugin.py


  Commit: 6ef5acae5568aca5b770f3dd9413368067c40fd2
      https://github.com/ckan/ckan/commit/6ef5acae5568aca5b770f3dd9413368067c40fd2
  Author: amercader <amercadero at gmail.com>
  Date:   2014-07-23 (Wed, 23 Jul 2014)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/config/middleware.py
    M ckan/config/routing.py
    M ckan/config/who.ini
    M ckan/controllers/package.py
    M ckan/controllers/user.py
    M ckan/lib/cli.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/migration/versions/072_add_resource_view.py
    M ckan/migration/versions/073_update_resource_view_resource_id_constraint.py
    M ckan/model/user.py
    M ckan/new_tests/controllers/test_package.py
    M ckan/new_tests/helpers.py
    M ckan/new_tests/logic/action/test_get.py
    M ckan/new_tests/logic/action/test_update.py
    M ckan/new_tests/logic/auth/test_update.py
    A ckan/new_tests/model/test_user.py
    M ckan/plugins/interfaces.py
    M ckan/templates/group/read.html
    M ckan/templates/organization/read.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/search.html
    M ckan/templates/user/edit_user_form.html
    M ckanext/datapusher/logic/action.py
    R ckanext/pdfpreview/__init__.py
    R ckanext/pdfpreview/plugin.py
    R ckanext/pdfpreview/tests/__init__.py
    R ckanext/pdfpreview/tests/test_view.py
    R ckanext/pdfpreview/theme/public/css/pdf.css
    R ckanext/pdfpreview/theme/public/css/recline.css
    R ckanext/pdfpreview/theme/public/img/ajaxload-circle.gif
    R ckanext/pdfpreview/theme/public/preview_pdf.js
    R ckanext/pdfpreview/theme/public/resource.config
    R ckanext/pdfpreview/theme/public/vendor/l10n/ar/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/ar/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/ca/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/ca/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/ca/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/cs/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/cs/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/da/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/da/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/da/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/de/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/de/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/el/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/el/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/el/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/en-US/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/en-US/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/en-US/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/es/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/es/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/es/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/fi/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/fi/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/fi/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/fr/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/fr/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/fr/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/he/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/he/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/it/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/it/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/ja/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/ja/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/ja/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/ko/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/ko/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/ko/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/locale.properties.js
    R ckanext/pdfpreview/theme/public/vendor/l10n/lt/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/lt/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/lt/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/nl/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/nl/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/nl/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/pl/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/pl/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/pl/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/pt-BR/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/pt-BR/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/ro/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/ro/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/ru/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/ru/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/sr/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/sr/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/sv/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/sv/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/sv/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/tr/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/tr/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/tr/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/vi/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/vi/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/vi/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/zh-CN/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/zh-CN/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/zh-CN/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/zh-TW/chrome.properties
    R ckanext/pdfpreview/theme/public/vendor/l10n/zh-TW/metadata.inc
    R ckanext/pdfpreview/theme/public/vendor/l10n/zh-TW/viewer.properties
    R ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.js
    R ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.min.js
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.js
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.min.js
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.js
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-check.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-comment.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-help.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-insert.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-key.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-newparagraph.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-note.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-paragraph.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-text.svg
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/findbarButton-next-rtl.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/findbarButton-next.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/findbarButton-previous-rtl.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/findbarButton-previous.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/loading-icon.gif
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/loading-small.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/shadow.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/texture.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-bookmark.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-download.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-openFile.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-presentationMode.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-print.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-search.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.css
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.js
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.css
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.js
    R ckanext/pdfpreview/theme/public/vendor/webL10n/README.md
    R ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.js
    R ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.min.js
    R ckanext/pdfpreview/theme/templates/pdf.html
    A ckanext/pdfview/__init__.py
    A ckanext/pdfview/plugin.py
    A ckanext/pdfview/tests/__init__.py
    A ckanext/pdfview/tests/test_view.py
    A ckanext/pdfview/theme/public/css/pdf.css
    A ckanext/pdfview/theme/public/css/recline.css
    A ckanext/pdfview/theme/public/img/ajaxload-circle.gif
    A ckanext/pdfview/theme/public/pdf_view.js
    A ckanext/pdfview/theme/public/resource.config
    A ckanext/pdfview/theme/public/vendor/l10n/ar/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/ar/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/ca/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/ca/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/ca/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/cs/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/cs/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/da/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/da/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/da/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/de/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/de/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/el/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/el/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/el/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/en-US/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/en-US/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/en-US/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/es/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/es/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/es/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/fi/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/fi/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/fi/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/fr/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/fr/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/fr/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/he/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/he/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/it/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/it/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/ja/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/ja/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/ja/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/ko/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/ko/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/ko/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/locale.properties.js
    A ckanext/pdfview/theme/public/vendor/l10n/lt/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/lt/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/lt/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/nl/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/nl/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/nl/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/pl/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/pl/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/pl/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/pt-BR/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/pt-BR/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/ro/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/ro/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/ru/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/ru/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/sr/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/sr/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/sv/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/sv/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/sv/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/tr/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/tr/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/tr/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/vi/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/vi/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/vi/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/zh-CN/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/zh-CN/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/zh-CN/viewer.properties
    A ckanext/pdfview/theme/public/vendor/l10n/zh-TW/chrome.properties
    A ckanext/pdfview/theme/public/vendor/l10n/zh-TW/metadata.inc
    A ckanext/pdfview/theme/public/vendor/l10n/zh-TW/viewer.properties
    A ckanext/pdfview/theme/public/vendor/pdfjs/pdf.js
    A ckanext/pdfview/theme/public/vendor/pdfjs/pdf.min.js
    A ckanext/pdfview/theme/public/vendor/pdfviewer/compatibility.js
    A ckanext/pdfview/theme/public/vendor/pdfviewer/compatibility.min.js
    A ckanext/pdfview/theme/public/vendor/pdfviewer/debugger.js
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-check.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-comment.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-help.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-insert.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-key.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-newparagraph.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-note.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-paragraph.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/annotation-text.svg
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/findbarButton-next-rtl.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/findbarButton-next.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/findbarButton-previous-rtl.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/findbarButton-previous.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/loading-icon.gif
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/loading-small.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/shadow.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/texture.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-bookmark.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-download.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-openFile.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-presentationMode.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-print.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-search.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    A ckanext/pdfview/theme/public/vendor/pdfviewer/viewer.css
    A ckanext/pdfview/theme/public/vendor/pdfviewer/viewer.js
    A ckanext/pdfview/theme/public/vendor/pdfviewer/viewer.min.css
    A ckanext/pdfview/theme/public/vendor/pdfviewer/viewer.min.js
    A ckanext/pdfview/theme/public/vendor/webL10n/README.md
    A ckanext/pdfview/theme/public/vendor/webL10n/l10n.js
    A ckanext/pdfview/theme/public/vendor/webL10n/l10n.min.js
    A ckanext/pdfview/theme/templates/pdf.html
    R ckanext/reclinepreview/__init__.py
    R ckanext/reclinepreview/plugin.py
    R ckanext/reclinepreview/tests/__init__.py
    R ckanext/reclinepreview/tests/test_view.py
    R ckanext/reclinepreview/theme/public/css/recline.css
    R ckanext/reclinepreview/theme/public/img/ajaxload-circle.gif
    R ckanext/reclinepreview/theme/public/preview_recline.js
    R ckanext/reclinepreview/theme/public/resource.config
    R ckanext/reclinepreview/theme/public/vendor/backbone/1.0.0/backbone.js
    R ckanext/reclinepreview/theme/public/vendor/bootstrap/2.3.2/bootstrap.js
    R ckanext/reclinepreview/theme/public/vendor/bootstrap/2.3.2/css/bootstrap-responsive.css
    R ckanext/reclinepreview/theme/public/vendor/bootstrap/2.3.2/css/bootstrap.css
    R ckanext/reclinepreview/theme/public/vendor/bootstrap/2.3.2/img/glyphicons-halflings-white.png
    R ckanext/reclinepreview/theme/public/vendor/bootstrap/2.3.2/img/glyphicons-halflings.png
    R ckanext/reclinepreview/theme/public/vendor/ckan.js/ckan.js
    R ckanext/reclinepreview/theme/public/vendor/flot/excanvas.js
    R ckanext/reclinepreview/theme/public/vendor/flot/excanvas.min.js
    R ckanext/reclinepreview/theme/public/vendor/flot/jquery.flot.js
    R ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.js
    R ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.min.js
    R ckanext/reclinepreview/theme/public/vendor/jquery/1.7.1/jquery.js
    R ckanext/reclinepreview/theme/public/vendor/jquery/1.7.1/jquery.min.js
    R ckanext/reclinepreview/theme/public/vendor/json/json2.js
    R ckanext/reclinepreview/theme/public/vendor/json/json2.min.js
    R ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.min.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.min.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.min.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.js
    R ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.min.js
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/images/layers.png
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/images/marker-icon.png
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/images/marker-shadow.png
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/images/zoom-in.png
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/images/zoom-out.png
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/leaflet-src.js
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/leaflet-src.min.js
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/leaflet.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/leaflet.ie.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/leaflet.ie.min.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/leaflet.js
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/leaflet.min.css
    R ckanext/reclinepreview/theme/public/vendor/leaflet/0.4.4/leaflet.min.js
    R ckanext/reclinepreview/theme/public/vendor/moment/1.6.2/moment.js
    R ckanext/reclinepreview/theme/public/vendor/moment/1.6.2/moment.min.js
    R ckanext/reclinepreview/theme/public/vendor/mustache/0.5.0-dev/mustache.js
    R ckanext/reclinepreview/theme/public/vendor/mustache/0.5.0-dev/mustache.min.js
    R ckanext/reclinepreview/theme/public/vendor/recline/recline.css
    R ckanext/reclinepreview/theme/public/vendor/recline/recline.dataset.js
    R ckanext/reclinepreview/theme/public/vendor/recline/recline.dataset.min.js
    R ckanext/reclinepreview/theme/public/vendor/recline/recline.js
    R ckanext/reclinepreview/theme/public/vendor/recline/recline.min.css
    R ckanext/reclinepreview/theme/public/vendor/recline/recline.min.js
    R ckanext/reclinepreview/theme/public/vendor/showdown/20120615/showdown.js
    R ckanext/reclinepreview/theme/public/vendor/showdown/20120615/showdown.min.js
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/MIT-LICENSE.txt
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/README.txt
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/images/calendar.gif
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/images/sort-asc.gif
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/images/sort-desc.gif
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/jquery-ui-1.8.16.custom.js
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/jquery-ui-1.8.16.custom.min.js
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/jquery.event.drag-2.0.js
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/jquery.event.drag-2.0.min.js
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/plugins/slick.rowmovemanager.js
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/plugins/slick.rowselectionmodel.js
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/slick.grid.css
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/slick.grid.js
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/slick.grid.min.css
    R ckanext/reclinepreview/theme/public/vendor/slickgrid/2.0.1/slick.grid.min.js
    R ckanext/reclinepreview/theme/public/vendor/timeline/20120520/css/timeline.css
    R ckanext/reclinepreview/theme/public/vendor/timeline/20120520/css/timeline.min.css
    R ckanext/reclinepreview/theme/public/vendor/timeline/20120520/css/timeline.png
    R ckanext/reclinepreview/theme/public/vendor/timeline/20120520/js/timeline.js
    R ckanext/reclinepreview/theme/public/vendor/timeline/20120520/js/timeline.min.js
    R ckanext/reclinepreview/theme/public/vendor/underscore.deferred/0.4.0/underscore.deferred.js
    R ckanext/reclinepreview/theme/public/vendor/underscore.deferred/0.4.0/underscore.deferred.min.js
    R ckanext/reclinepreview/theme/public/vendor/underscore/1.4.2/underscore.js
    R ckanext/reclinepreview/theme/public/vendor/underscore/1.4.2/underscore.min.js
    R ckanext/reclinepreview/theme/public/widget.recordcount.js
    R ckanext/reclinepreview/theme/templates/recline_graph_form.html
    R ckanext/reclinepreview/theme/templates/recline_map_form.html
    R ckanext/reclinepreview/theme/templates/recline_view.html
    A ckanext/reclineview/__init__.py
    A ckanext/reclineview/plugin.py
    A ckanext/reclineview/tests/__init__.py
    A ckanext/reclineview/tests/test_view.py
    A ckanext/reclineview/theme/public/css/recline.css
    A ckanext/reclineview/theme/public/img/ajaxload-circle.gif
    A ckanext/reclineview/theme/public/recline_view.js
    A ckanext/reclineview/theme/public/resource.config
    A ckanext/reclineview/theme/public/vendor/backbone/1.0.0/backbone.js
    A ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/bootstrap.js
    A ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/css/bootstrap-responsive.css
    A ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/css/bootstrap.css
    A ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/img/glyphicons-halflings-white.png
    A ckanext/reclineview/theme/public/vendor/bootstrap/2.3.2/img/glyphicons-halflings.png
    A ckanext/reclineview/theme/public/vendor/ckan.js/ckan.js
    A ckanext/reclineview/theme/public/vendor/flot/excanvas.js
    A ckanext/reclineview/theme/public/vendor/flot/excanvas.min.js
    A ckanext/reclineview/theme/public/vendor/flot/jquery.flot.js
    A ckanext/reclineview/theme/public/vendor/flotr2/flotr2.js
    A ckanext/reclineview/theme/public/vendor/flotr2/flotr2.min.js
    A ckanext/reclineview/theme/public/vendor/jquery/1.7.1/jquery.js
    A ckanext/reclineview/theme/public/vendor/jquery/1.7.1/jquery.min.js
    A ckanext/reclineview/theme/public/vendor/json/json2.js
    A ckanext/reclineview/theme/public/vendor/json/json2.min.js
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.css
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.min.css
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.min.css
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/MarkerCluster.css
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/MarkerCluster.min.css
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.js
    A ckanext/reclineview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.min.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/layers.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/marker-icon.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/marker-shadow.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/zoom-in.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/zoom-out.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet-src.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet-src.min.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.ie.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.ie.min.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.min.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.min.js
    A ckanext/reclineview/theme/public/vendor/moment/1.6.2/moment.js
    A ckanext/reclineview/theme/public/vendor/moment/1.6.2/moment.min.js
    A ckanext/reclineview/theme/public/vendor/mustache/0.5.0-dev/mustache.js
    A ckanext/reclineview/theme/public/vendor/mustache/0.5.0-dev/mustache.min.js
    A ckanext/reclineview/theme/public/vendor/recline/recline.css
    A ckanext/reclineview/theme/public/vendor/recline/recline.dataset.js
    A ckanext/reclineview/theme/public/vendor/recline/recline.dataset.min.js
    A ckanext/reclineview/theme/public/vendor/recline/recline.js
    A ckanext/reclineview/theme/public/vendor/recline/recline.min.css
    A ckanext/reclineview/theme/public/vendor/recline/recline.min.js
    A ckanext/reclineview/theme/public/vendor/showdown/20120615/showdown.js
    A ckanext/reclineview/theme/public/vendor/showdown/20120615/showdown.min.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/MIT-LICENSE.txt
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/README.txt
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/images/calendar.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/images/sort-asc.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/images/sort-desc.gif
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/jquery-ui-1.8.16.custom.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/jquery-ui-1.8.16.custom.min.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/jquery.event.drag-2.0.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/jquery.event.drag-2.0.min.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/plugins/slick.rowmovemanager.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/plugins/slick.rowselectionmodel.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/slick.grid.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/slick.grid.js
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/slick.grid.min.css
    A ckanext/reclineview/theme/public/vendor/slickgrid/2.0.1/slick.grid.min.js
    A ckanext/reclineview/theme/public/vendor/timeline/20120520/css/timeline.css
    A ckanext/reclineview/theme/public/vendor/timeline/20120520/css/timeline.min.css
    A ckanext/reclineview/theme/public/vendor/timeline/20120520/css/timeline.png
    A ckanext/reclineview/theme/public/vendor/timeline/20120520/js/timeline.js
    A ckanext/reclineview/theme/public/vendor/timeline/20120520/js/timeline.min.js
    A ckanext/reclineview/theme/public/vendor/underscore.deferred/0.4.0/underscore.deferred.js
    A ckanext/reclineview/theme/public/vendor/underscore.deferred/0.4.0/underscore.deferred.min.js
    A ckanext/reclineview/theme/public/vendor/underscore/1.4.2/underscore.js
    A ckanext/reclineview/theme/public/vendor/underscore/1.4.2/underscore.min.js
    A ckanext/reclineview/theme/public/widget.recordcount.js
    A ckanext/reclineview/theme/templates/recline_graph_form.html
    A ckanext/reclineview/theme/templates/recline_map_form.html
    A ckanext/reclineview/theme/templates/recline_view.html
    R ckanext/textpreview/__init__.py
    R ckanext/textpreview/plugin.py
    R ckanext/textpreview/tests/__init__.py
    R ckanext/textpreview/tests/test_view.py
    R ckanext/textpreview/theme/public/LICENSE
    R ckanext/textpreview/theme/public/css/text.css
    R ckanext/textpreview/theme/public/preview_text.js
    R ckanext/textpreview/theme/public/resource.config
    R ckanext/textpreview/theme/public/styles/default.css
    R ckanext/textpreview/theme/public/styles/github.css
    R ckanext/textpreview/theme/public/vendor/highlight.pack.js
    R ckanext/textpreview/theme/templates/text_form.html
    R ckanext/textpreview/theme/templates/text_view.html
    A ckanext/textview/__init__.py
    A ckanext/textview/plugin.py
    A ckanext/textview/tests/__init__.py
    A ckanext/textview/tests/test_view.py
    A ckanext/textview/theme/public/LICENSE
    A ckanext/textview/theme/public/css/text.css
    A ckanext/textview/theme/public/resource.config
    A ckanext/textview/theme/public/styles/default.css
    A ckanext/textview/theme/public/styles/github.css
    A ckanext/textview/theme/public/text_view.js
    A ckanext/textview/theme/public/vendor/highlight.pack.js
    A ckanext/textview/theme/templates/text_form.html
    A ckanext/textview/theme/templates/text_view.html
    M doc/extensions/tutorial.rst
    M doc/maintaining/configuration.rst
    M doc/maintaining/data-viewer.rst
    M doc/theming/templates.rst
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into 1792-filterable-resource-views


  Commit: b673f48a7fbfce44c6e99826aef7b2868531d8f8
      https://github.com/ckan/ckan/commit/b673f48a7fbfce44c6e99826aef7b2868531d8f8
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-04 (Mon, 04 Aug 2014)

  Changed paths:
    M Dockerfile
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/search/index.py
    M ckan/lib/search/query.py
    M ckan/lib/uploader.py
    A ckan/lib/util.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    A ckan/new_tests/lib/dictization/test_model_dictize.py
    M ckan/new_tests/lib/search/test_index.py
    M ckan/new_tests/logic/action/test_get.py
    M ckan/new_tests/logic/action/test_update.py
    A ckan/new_tests/test_coding_standards.py
    M ckan/plugins/interfaces.py
    M ckan/templates/group/member_new.html
    M ckan/templates/organization/member_new.html
    M ckan/templates/user/edit_user_form.html
    M ckan/tests/lib/test_dictization.py
    M ckan/tests/lib/test_solr_search_index.py
    M ckan/tests/logic/test_action.py
    M ckanext/datastore/db.py
    M ckanext/datastore/tests/test_upsert.py
    A contrib/docker/my_init.d/50_configure
    A contrib/docker/my_init.d/70_initdb
    M contrib/docker/svc/ckan/run
    M doc/api.rst
    M doc/conf.py
    M doc/contributing/i18n.rst
    M doc/contributing/test.rst
    M doc/extensions/adding-custom-fields.rst
    M doc/maintaining/paster.rst
    M doc/user-guide.rst

  Log Message:
  -----------
  Merge branch 'master' into 1792-filterable-resource-views


  Commit: abb030fd86c0852710a78d2b4b4c4dcfe9581fca
      https://github.com/ckan/ckan/commit/abb030fd86c0852710a78d2b4b4c4dcfe9581fca
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-04 (Mon, 04 Aug 2014)

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

  Log Message:
  -----------
  [#1792] Fix bug with autocomplete


  Commit: dab0d74d7d9e9bf5e95365379a40b6e909295b4b
      https://github.com/ckan/ckan/commit/dab0d74d7d9e9bf5e95365379a40b6e909295b4b
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-04 (Mon, 04 Aug 2014)

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

  Log Message:
  -----------
  [#1792] Fix bug when parsing filters with numeric values

queryStringToJSON() casts strings with numeric values to numbers, so our code
breaks when trying to call split() on a number. To solve this, we simply cast
all values to strings.


  Commit: 68fe1248370ee1d5bcb2c5d6cb1ec41272d5a747
      https://github.com/ckan/ckan/commit/68fe1248370ee1d5bcb2c5d6cb1ec41272d5a747
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-05 (Tue, 05 Aug 2014)

  Changed paths:
    M ckan/public/base/javascript/view-filters.js
    M ckan/public/base/test/spec/view-filters.spec.js

  Log Message:
  -----------
  [#1792] Fix XSS and bug with numeric/quoted values in filters

The problem is with the function `queryStringToJSON` that we use in
`ckan/public/base/javascript/view-filters.js` to convert the URL's query string
into a JavaScript object to then parse it.

To understand the bug, take a look at this example:

```javascript
> "filters=country:Brazil|year:2014".queryStringToJSON()
Object {filters: "country:Brazil|year:2014"}
> "filters=country:Brazil".queryStringToJSON()
Object {filters: "country:Brazil"}
> "filters=year:2014".queryStringToJSON()
Object {filters: 2014} // The correct result would be { filters: "year:2014" }
```

Looking at `queryStringToJSON` code, I found the problematic part at
https://github.com/ckan/ckan/blob/1792-filterable-resource-views/ckan/public/base/javascript/view-filters.js#L49-L57

```javascript
// ...

// Fix
key = decodeURIComponent(key);
value = decodeURIComponent(value);
try {
  // value can be converted
  value = eval(value);
} catch ( e ) {
  // value is a normal string
}

// ...
```

This code tries to `eval` the query string's values. "Normal" strings throw an
error when eval'd, which the code ignores. But unfortunately `"year:2014"`
isn't a normal string. See:

```javascript
> eval("year:2014")
2014
> year: 2014
2014
> { year: 2014 }
2014
> eval("year:2014|country:Brazil")
SyntaxError: Unexpected token :
> eval("country:Brazil")
ReferenceError: Brazil is not defined
```

We'll have the same problem if the filter value is between quotes, as in:

```javascript
> "filters=country:'Brazil'".queryStringToJSON()
Object {filters: "Brazil"}
```

The XSS issue is related to us calling `eval()` on all parameters, so some
malicious user could send a link to e.g.
`http://demo.ckan.org/?param=alert('abc')` and execute JS code on anyone that
clicks on that. This was discovered in https://github.com/balupton/jquery-sparkle/pull/5


  Commit: e40324a17230f90ee2811d0e401f824327c53bbe
      https://github.com/ckan/ckan/commit/e40324a17230f90ee2811d0e401f824327c53bbe
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-06 (Wed, 06 Aug 2014)

  Changed paths:
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  [#1792] Fix issue on FTS' where clause on specific fields

We were adding the value to the where_values with no need. We ended up with
more where_values than "%s" used in the where string, which could lead to
problems.


  Commit: b3e997e05a695cf5ef4bc5d2b8261fe40ede5460
      https://github.com/ckan/ckan/commit/b3e997e05a695cf5ef4bc5d2b8261fe40ede5460
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-06 (Wed, 06 Aug 2014)

  Changed paths:
    M ckanext/datastore/plugin.py

  Log Message:
  -----------
  [#1792] Small refactoring on the FTS where clause creation

It was easy to miss that we were creating a list with one element.


  Commit: e183eba495cfee6fa491c381ff34356902e5333d
      https://github.com/ckan/ckan/commit/e183eba495cfee6fa491c381ff34356902e5333d
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-06 (Wed, 06 Aug 2014)

  Changed paths:
    M ckan/public/base/javascript/view-filters.js
    M ckan/public/base/test/spec/view-filters.spec.js

  Log Message:
  -----------
  [#1792] Accept filters with colons in their values

For example, "time:12:00" should be recognized as { "time": "12:00" }. I've
also changed the code to use .match() instead of .split() because of a bug in
IE8.


  Commit: 3e850ff05f0e9fa49e0d4b5c8d00dc352181262b
      https://github.com/ckan/ckan/commit/3e850ff05f0e9fa49e0d4b5c8d00dc352181262b
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-06 (Wed, 06 Aug 2014)

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

  Log Message:
  -----------
  [#1792] Fix bug with select2 and non-textual filters

select2 requires that the "text" attribute on each autocomplete field is a
string, so we cast to string before sending to it.


  Commit: b4a16d53cfa8963dba4ceac4efd56742b1deb801
      https://github.com/ckan/ckan/commit/b4a16d53cfa8963dba4ceac4efd56742b1deb801
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-06 (Wed, 06 Aug 2014)

  Changed paths:
    M ckan/lib/helpers.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_search.py

  Log Message:
  -----------
  [#1792] Enable FTS on non-textual fields

We need this because our filters' autocomplete use full-text searching. If we
want to allow autocomplete on all fields, we also need to allow FTS on all
fields.


  Commit: aa516301ec455b1d58841147ad3aee78838565ea
      https://github.com/ckan/ckan/commit/aa516301ec455b1d58841147ad3aee78838565ea
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-06 (Wed, 06 Aug 2014)

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

  Log Message:
  -----------
  [#1792] Create FTS indexes on fields textual and numeric fields

Unfortunately we couldn't create indexes on other field types as well because I
wasn't able to cast them to text in PostgreSQL using an IMMUTABLE function, so
it would work on the index creation.


  Commit: c033efbb7f660a0ac03eee731a68439580a2d4b9
      https://github.com/ckan/ckan/commit/c033efbb7f660a0ac03eee731a68439580a2d4b9
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-07 (Thu, 07 Aug 2014)

  Changed paths:
    M ckanext/datastore/db.py
    M ckanext/datastore/helpers.py
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_db.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_plugin.py
    M ckanext/datastore/tests/test_search.py

  Log Message:
  -----------
  [#1792] Optimize FTS queries on non-indexed fields

As per the commit aa51630, we can't create full-text search indexes on all
field types. Specifically, we're only indexing textual and numeric fields. Even
though we don't index other fields, the users are still able to do FTS queries
on them, and we also use them on the autocomplete, so we'd like them to be
relatively fast.

When creating a datastore table, we add a "_full_text" column with the content
of all the other columns. This is used when the user wants to do a FTS on the
entire resource, regardless of columns.

The idea behind the optimization in this patch is to use that "_full_text"
column to limit the number of rows Postgres will search. While testing, I've
used a sample table with 1 million rows and 540 MB. Among others, it has a
column named "timestamp" with (obviously) a timestamp. There're no indexes on
this column. I've done 2 tests: (a) do a FTS only on the timestamp column, and;
(b) do a FTS on both the timestamp and _full_text columns.

The results below are the average of running the tests 5 times.

(a) Querying for '06' just on the timestamp field took 5682ms;
(b) Querying for '06' both on the _full_text and timestamp fields took 90ms

For this test, querying for both _full_text and timestamp made the query ~63
times faster. Unfortunately, the result depends a lot on the query terms and
the data. On our test data, every timestamp is from 2014. If instead of
searching for '06' we search for '2014', this is what we get (again, repeated 5
times and averaged out):

(a) Querying for '2014' just on the timestamp field took 12455ms;
(a) Querying for '2014' just on the _full_text and timestamp fields took 14534ms;

Using the _full_text field made this query ~17% slower. The problem here is
that this optimization only makes sense if quering the _full_text reduces the
number of rows that we have to query on the timestamp field. When that's not
the case, it makes the query slower.

In my opinion, this patch is still worthy.


  Commit: 0c7c62a5c2726d0a8899130ec1431b7f1bb5565b
      https://github.com/ckan/ckan/commit/0c7c62a5c2726d0a8899130ec1431b7f1bb5565b
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-08 (Fri, 08 Aug 2014)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckanext/datastore/db.py
    M ckanext/datastore/tests/test_db.py
    M doc/maintaining/configuration.rst

  Log Message:
  -----------
  [#1792] Make the FTS index method configurable

GiST indexes are faster to create and take less memory, but are about 3 times
slower than GIN indexes. Depending on the use-case, one is better than the
other. As we can't foresee all ways CKAN will be used, with this patch we allow
the sysadmin to pick what suits best for her.


  Commit: 3ab51d4e803c0fd8c8482ba928a14cf44efae1a0
      https://github.com/ckan/ckan/commit/3ab51d4e803c0fd8c8482ba928a14cf44efae1a0
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-08 (Fri, 08 Aug 2014)

  Changed paths:
    M doc/maintaining/configuration.rst

  Log Message:
  -----------
  [#1792] Fix hyperlink on the docs

I forgot the trailing colon.


  Commit: 6fa21da08ff627b87f1a2169e8172d7f3777a975
      https://github.com/ckan/ckan/commit/6fa21da08ff627b87f1a2169e8172d7f3777a975
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-11 (Mon, 11 Aug 2014)

  Changed paths:
    M ckanext/datastore/plugin.py
    M ckanext/datastore/tests/test_search.py

  Log Message:
  -----------
  [#1792] Fix issue when sorting by field with whitespaces


  Commit: ac3fcc748194f9e47dbe542d828c82f371bd5260
      https://github.com/ckan/ckan/commit/ac3fcc748194f9e47dbe542d828c82f371bd5260
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-11 (Mon, 11 Aug 2014)

  Changed paths:
    M ckanext/reclineview/theme/public/vendor/ckan.js/ckan.js

  Log Message:
  -----------
  [#1792] Fix bug when filtering fields with ampersands

The issue was that ckan.js didn't escape the data before sending it through
AJAX. It was fixed upstream at
https://github.com/okfn/ckan.js/commit/d0d911692e4517037b9e0d8d71d90751eb58699e


  Commit: 5d96bc508f2ea9fa51a1d58d6b86a47618851be3
      https://github.com/ckan/ckan/commit/5d96bc508f2ea9fa51a1d58d6b86a47618851be3
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-11 (Mon, 11 Aug 2014)

  Changed paths:
    A ckanext/datapusher/cli.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datapusher/logic/schema.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datastore/db.py
    M ckanext/datastore/tests/test_db.py
    M setup.py

  Log Message:
  -----------
  [#1792] Add "datapusher submit" paster command to migrate data

I've changed how we create the datastore resources in this issue, both adding
indexes and changing how the "_full_text" column is created. This means that we
have to migrate existing data when this is merged.

The best way I found to do so was creating a new "paster datapusher submit"
command, which reloads every resource in the datastore, ignoring if the file
haven't changed. This is equivalent to deleting every datastore table and
reloading the resource.

The disadvantage of this is that it'll only work if the source data is still
available, and it'll remove any data that isn't on the source data (that was,
for example, added through the API).


  Commit: 1fb28aec50e94f7c7693c9dc79c9f17ba438ed60
      https://github.com/ckan/ckan/commit/1fb28aec50e94f7c7693c9dc79c9f17ba438ed60
  Author: Vitor Baptista <vitor at vitorbaptista.com>
  Date:   2014-08-11 (Mon, 11 Aug 2014)

  Changed paths:
    M ckanext/datastore/db.py

  Log Message:
  -----------
  [#1792] Fix get_all_resources_ids_in_datastore() on legacy mode


  Commit: 401d9803ebcfe68b908a288b40dc830fc8153961
      https://github.com/ckan/ckan/commit/401d9803ebcfe68b908a288b40dc830fc8153961
  Author: joetsoi <joe.yeung.tsoi at gmail.com>
  Date:   2014-11-10 (Mon, 10 Nov 2014)

  Changed paths:
    M CHANGELOG.rst
    M bin/travis-install-dependencies
    M ckan/config/deployment.ini_tmpl
    M ckan/config/solr/schema.xml
    M ckan/controllers/group.py
    M ckan/controllers/home.py
    M ckan/controllers/package.py
    M ckan/controllers/related.py
    M ckan/controllers/revision.py
    M ckan/exceptions.py
    M ckan/i18n/cs_CZ/LC_MESSAGES/ckan.mo
    M ckan/i18n/cs_CZ/LC_MESSAGES/ckan.po
    M ckan/i18n/fr/LC_MESSAGES/ckan.mo
    M ckan/i18n/fr/LC_MESSAGES/ckan.po
    M ckan/i18n/sk/LC_MESSAGES/ckan.mo
    M ckan/i18n/sk/LC_MESSAGES/ckan.po
    M ckan/lib/base.py
    M ckan/lib/cli.py
    A ckan/lib/config_tool.py
    M ckan/lib/create_test_data.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/dictization/model_save.py
    M ckan/lib/helpers.py
    M ckan/lib/navl/dictization_functions.py
    M ckan/lib/navl/validators.py
    M ckan/lib/plugins.py
    M ckan/lib/render.py
    M ckan/lib/search/__init__.py
    M ckan/lib/search/index.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/delete.py
    M ckan/logic/auth/get.py
    M ckan/logic/auth/update.py
    M ckan/logic/converters.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    A ckan/migration/versions/074_remove_resource_groups.py
    M ckan/model/__init__.py
    M ckan/model/modification.py
    M ckan/model/package.py
    M ckan/model/resource.py
    A ckan/new_tests/controllers/test_group.py
    M ckan/new_tests/helpers.py
    A ckan/new_tests/lib/dictization/__init__.py
    M ckan/new_tests/lib/dictization/test_model_dictize.py
    A ckan/new_tests/lib/navl/test_dictization_functions.py
    M ckan/new_tests/lib/search/test_index.py
    A ckan/new_tests/lib/test_base.py
    A ckan/new_tests/lib/test_config_tool.py
    M ckan/new_tests/lib/test_helpers.py
    M ckan/new_tests/logic/action/test_create.py
    A ckan/new_tests/logic/action/test_delete.py
    M ckan/new_tests/logic/action/test_get.py
    M ckan/new_tests/logic/action/test_update.py
    A ckan/new_tests/logic/auth/test_delete.py
    A ckan/new_tests/logic/test_conversion.py
    M ckan/new_tests/logic/test_converters.py
    M ckan/plugins/__init__.py
    M ckan/plugins/core.py
    M ckan/plugins/interfaces.py
    M ckan/plugins/toolkit.py
    M ckan/public/base/css/main.css
    M ckan/public/base/javascript/main.js
    M ckan/public/base/javascript/modules/resource-view-embed.js
    M ckan/public/base/javascript/modules/resource-view-reorder.js
    M ckan/public/base/less/dataset.less
    M ckan/public/base/less/footer.less
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/homepage.less
    M ckan/public/base/less/iehacks.less
    M ckan/public/base/less/layout.less
    M ckan/public/base/less/main.less
    M ckan/public/base/less/masthead.less
    M ckan/public/base/less/media.less
    M ckan/public/base/less/module.less
    M ckan/public/base/less/nav.less
    R ckan/public/base/less/resource-view-embed.less
    M ckan/public/base/less/search.less
    M ckan/public/base/less/toolbar.less
    M ckan/public/base/vendor/bootstrap/less/responsive.less
    M ckan/public/scripts/application.js
    M ckan/templates/admin/config.html
    M ckan/templates/ajax_snippets/api_info.html
    M ckan/templates/base.html
    M ckan/templates/dataviewer/snippets/data_preview.html
    M ckan/templates/footer.html
    M ckan/templates/group/snippets/group_form.html
    M ckan/templates/header.html
    M ckan/templates/home/snippets/promoted.html
    M ckan/templates/macros/form.html
    M ckan/templates/organization/snippets/organization_form.html
    M ckan/templates/package/base_form_page.html
    M ckan/templates/package/edit.html
    M ckan/templates/package/new_resource.html
    M ckan/templates/package/new_resource_not_draft.html
    M ckan/templates/package/resource_edit.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/resource_views.html
    M ckan/templates/package/search.html
    M ckan/templates/package/snippets/additional_info.html
    M ckan/templates/package/snippets/resource_edit_form.html
    M ckan/templates/package/snippets/resource_form.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/page.html
    M ckan/templates/snippets/group_item.html
    M ckan/templates/snippets/organization.html
    M ckan/templates/snippets/search_form.html
    M ckan/templates/user/login.html
    R ckan/tests/functional/test_cors.py
    M ckan/tests/functional/test_group.py
    M ckan/tests/functional/test_package.py
    M ckan/tests/functional/test_related.py
    M ckan/tests/functional/test_revision.py
    M ckan/tests/lib/test_dictization.py
    M ckan/tests/lib/test_navl.py
    M ckan/tests/lib/test_resource_search.py
    M ckan/tests/logic/test_action.py
    M ckan/tests/models/test_package.py
    M ckan/tests/models/test_resource.py
    M ckan/tests/test_plugins.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
    M ckanext/datastore/tests/test_create.py
    M ckanext/datastore/tests/test_helpers.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/datastore/tests/test_unit.py
    M ckanext/example_idatasetform/templates/package/snippets/package_metadata_fields.html
    A ckanext/example_iresourcecontroller/__init__.py
    A ckanext/example_iresourcecontroller/plugin.py
    A ckanext/example_iresourcecontroller/tests/test_example_iresourcecontroller.py
    A ckanext/example_ivalidators/__init__.py
    A ckanext/example_ivalidators/plugin.py
    A ckanext/example_ivalidators/tests/__init__.py
    A ckanext/example_ivalidators/tests/test_ivalidators.py
    M ckanext/multilingual/plugin.py
    M ckanext/multilingual/solr/schema.xml
    M ckanext/resourceproxy/controller.py
    M contrib/docker/my_init.d/50_configure
    M dev-requirements.txt
    M doc/contributing/html.rst
    M doc/contributing/i18n.rst
    M doc/contributing/testing.rst
    M doc/extensions/adding-custom-fields.rst
    R doc/extensions/converters.rst
    M doc/extensions/index.rst
    M doc/extensions/tutorial.rst
    M doc/extensions/validators.rst
    M doc/maintaining/configuration.rst
    M doc/maintaining/form-integration.rst
    M doc/maintaining/getting-started.rst
    M doc/maintaining/installing/deployment.rst
    M doc/maintaining/installing/index.rst
    M doc/maintaining/installing/install-from-source.rst
    M doc/maintaining/solr-multicore.rst
    M requirements.in
    M requirements.txt
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' into filterable-resource-views-master #1792

Conflicts:
	ckan/logic/schema.py
	ckan/logic/validators.py
	ckan/new_tests/lib/test_helpers.py
	ckan/public/base/less/ckan.less
	ckan/templates/package/snippets/resource_views_list.html
	ckan/templates/package/snippets/resource_views_list_item.html
	ckanext/datastore/db.py
	ckanext/datastore/helpers.py
	ckanext/datastore/tests/test_helpers.py
	ckanext/datastore/tests/test_search.py


  Commit: cb956d2c7cd91b1c39c41234a96bbad708d5a1ab
      https://github.com/ckan/ckan/commit/cb956d2c7cd91b1c39c41234a96bbad708d5a1ab
  Author: joetsoi <joe.yeung.tsoi at gmail.com>
  Date:   2014-11-19 (Wed, 19 Nov 2014)

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

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


  Commit: 10560baa7524a12b6595df9bbbd0cc125958875e
      https://github.com/ckan/ckan/commit/10560baa7524a12b6595df9bbbd0cc125958875e
  Author: joetsoi <joe.yeung.tsoi at gmail.com>
  Date:   2014-11-19 (Wed, 19 Nov 2014)

  Changed paths:
    M ckanext/datastore/db.py

  Log Message:
  -----------
  fix merge


  Commit: 3d9b303206aedb1a6dca770c21f7051dc8db3856
      https://github.com/ckan/ckan/commit/3d9b303206aedb1a6dca770c21f7051dc8db3856
  Author: joetsoi <joe.yeung.tsoi at gmail.com>
  Date:   2015-01-05 (Mon, 05 Jan 2015)

  Changed paths:
    M CHANGELOG.rst
    M ckan/config/deployment.ini_tmpl
    M ckan/config/environment.py
    M ckan/config/middleware.py
    M ckan/config/routing.py
    M ckan/config/solr/schema.xml
    M ckan/config/who.ini
    M ckan/controllers/api.py
    M ckan/controllers/feed.py
    M ckan/controllers/group.py
    M ckan/controllers/home.py
    M ckan/controllers/package.py
    M ckan/controllers/related.py
    M ckan/controllers/revision.py
    M ckan/controllers/tag.py
    M ckan/controllers/user.py
    M ckan/lib/accept.py
    M ckan/lib/alphabet_paginate.py
    M ckan/lib/app_globals.py
    A ckan/lib/auth_tkt.py
    M ckan/lib/authenticator.py
    M ckan/lib/base.py
    M ckan/lib/cli.py
    M ckan/lib/create_test_data.py
    M ckan/lib/datapreview.py
    M ckan/lib/dictization/__init__.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/dictization/model_save.py
    M ckan/lib/fanstatic_resources.py
    R ckan/lib/field_types.py
    M ckan/lib/helpers.py
    M ckan/lib/maintain.py
    R ckan/lib/package_saver.py
    M ckan/lib/plugins.py
    R ckan/lib/repoze_patch.py
    M ckan/lib/search/index.py
    M ckan/logic/__init__.py
    M ckan/logic/action/create.py
    M ckan/logic/action/get.py
    A ckan/logic/action/patch.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/create.py
    M ckan/logic/auth/get.py
    A ckan/logic/auth/patch.py
    M ckan/logic/auth/update.py
    M ckan/logic/converters.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/model/__init__.py
    M ckan/model/activity.py
    M ckan/model/core.py
    M ckan/model/group.py
    M ckan/model/meta.py
    M ckan/model/package.py
    M ckan/model/rating.py
    M ckan/model/tag.py
    M ckan/model/user.py
    M ckan/new_authz.py
    A ckan/new_tests/config/__init__.py
    A ckan/new_tests/controllers/test_api.py
    A ckan/new_tests/controllers/test_feed.py
    M ckan/new_tests/controllers/test_group.py
    M ckan/new_tests/controllers/test_package.py
    M ckan/new_tests/helpers.py
    M ckan/new_tests/lib/dictization/test_model_dictize.py
    A ckan/new_tests/lib/test_auth_tkt.py
    M ckan/new_tests/lib/test_base.py
    M ckan/new_tests/logic/action/test_create.py
    M ckan/new_tests/logic/action/test_delete.py
    M ckan/new_tests/logic/action/test_get.py
    A ckan/new_tests/logic/action/test_patch.py
    M ckan/new_tests/logic/auth/test_create.py
    A ckan/new_tests/test_authz.py
    M ckan/pastertemplates/__init__.py
    A ckan/pastertemplates/template/+dot+coveragerc_tmpl
    A ckan/pastertemplates/template/+dot+gitignore_tmpl
    A ckan/pastertemplates/template/+dot+travis.yml_tmpl
    A ckan/pastertemplates/template/LICENSE_tmpl
    A ckan/pastertemplates/template/MANIFEST.in_tmpl
    A ckan/pastertemplates/template/README.rst_tmpl
    A ckan/pastertemplates/template/bin/travis-build.bash_tmpl
    A ckan/pastertemplates/template/bin/travis-run.sh_tmpl
    R ckan/pastertemplates/template/ckanext/+project+/__init__.py
    A ckan/pastertemplates/template/ckanext/+project_shortname+/__init__.py
    A ckan/pastertemplates/template/ckanext/+project_shortname+/fanstatic/+dot+gitignore
    A ckan/pastertemplates/template/ckanext/+project_shortname+/plugin.py_tmpl
    A ckan/pastertemplates/template/ckanext/+project_shortname+/public/+dot+gitignore
    A ckan/pastertemplates/template/ckanext/+project_shortname+/templates/+dot+gitignore
    A ckan/pastertemplates/template/ckanext/+project_shortname+/tests/__init__.py
    A ckan/pastertemplates/template/ckanext/+project_shortname+/tests/test_plugin.py_tmpl
    R ckan/pastertemplates/template/ckanext_+project+.egg-info/.gitignore
    A ckan/pastertemplates/template/ckanext_+project_shortname+.egg-info/.gitignore
    A ckan/pastertemplates/template/dev-requirements.txt_tmpl
    M ckan/pastertemplates/template/setup.py_tmpl
    A ckan/pastertemplates/template/test.ini_tmpl
    M ckan/plugins/core.py
    M ckan/plugins/interfaces.py
    A ckan/public/base/images/od_80x15_blue.png
    A ckan/public/base/images/placeholder-200x125.png
    A ckan/public/base/images/placeholder-420x220.png
    A ckan/public/base/images/placeholder-680x400.png
    R ckan/rating.py
    M ckan/templates/ajax_snippets/api_info.html
    M ckan/templates/development/snippets/markup.html
    M ckan/templates/footer.html
    M ckan/templates/group/index.html
    M ckan/templates/home/snippets/promoted.html
    M ckan/templates/organization/index.html
    M ckan/templates/organization/snippets/help.html
    A ckan/templates/package/read.n3
    A ckan/templates/package/read.rdf
    M ckan/templates/package/read_base.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/snippets/package_basic_fields.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/templates/snippets/context.html
    M ckan/templates/snippets/context/user.html
    M ckan/templates/snippets/license.html
    M ckan/templates/snippets/related.html
    M ckan/templates/user/read_base.html
    R ckan/templates_legacy/__init__.py
    R ckan/templates_legacy/_snippet/data-api-help.html
    R ckan/templates_legacy/_util.html
    R ckan/templates_legacy/activity_streams/activity_stream_items.html
    R ckan/templates_legacy/admin/authz.html
    R ckan/templates_legacy/admin/index.html
    R ckan/templates_legacy/admin/layout.html
    R ckan/templates_legacy/admin/trash.html
    R ckan/templates_legacy/error_document_template.html
    R ckan/templates_legacy/facets.html
    R ckan/templates_legacy/group/__init__.py
    R ckan/templates_legacy/group/authz.html
    R ckan/templates_legacy/group/edit.html
    R ckan/templates_legacy/group/edit_form.html
    R ckan/templates_legacy/group/history.html
    R ckan/templates_legacy/group/index.html
    R ckan/templates_legacy/group/layout.html
    R ckan/templates_legacy/group/new.html
    R ckan/templates_legacy/group/new_group_form.html
    R ckan/templates_legacy/group/read.html
    R ckan/templates_legacy/home/__init__.py
    R ckan/templates_legacy/home/about.html
    R ckan/templates_legacy/home/index.html
    R ckan/templates_legacy/home/layout.html
    R ckan/templates_legacy/importer/__init__.py
    R ckan/templates_legacy/importer/importer.html
    R ckan/templates_legacy/importer/preview.html
    R ckan/templates_legacy/importer/result.html
    R ckan/templates_legacy/js_strings.html
    R ckan/templates_legacy/layout.html
    R ckan/templates_legacy/layout_base.html
    R ckan/templates_legacy/package/__init__.py
    R ckan/templates_legacy/package/authz.html
    R ckan/templates_legacy/package/comments.html
    R ckan/templates_legacy/package/edit.html
    R ckan/templates_legacy/package/edit_form.html
    R ckan/templates_legacy/package/editresources.html
    R ckan/templates_legacy/package/followers.html
    R ckan/templates_legacy/package/form.html
    R ckan/templates_legacy/package/form_extra_fields.html
    R ckan/templates_legacy/package/form_fields.html
    R ckan/templates_legacy/package/form_resources.html
    R ckan/templates_legacy/package/history.html
    R ckan/templates_legacy/package/layout.html
    R ckan/templates_legacy/package/new.html
    R ckan/templates_legacy/package/new_package_form.html
    R ckan/templates_legacy/package/read.html
    R ckan/templates_legacy/package/read.n3
    R ckan/templates_legacy/package/read.rdf
    R ckan/templates_legacy/package/read_core.html
    R ckan/templates_legacy/package/resource_embedded_dataviewer.html
    R ckan/templates_legacy/package/resource_read.html
    R ckan/templates_legacy/package/resources.html
    R ckan/templates_legacy/package/search.html
    R ckan/templates_legacy/package/search_form.html
    R ckan/templates_legacy/package/snippets/data_preview.html
    R ckan/templates_legacy/related/add-related.html
    R ckan/templates_legacy/related/dashboard.html
    R ckan/templates_legacy/related/related_list.html
    R ckan/templates_legacy/rest/__init__.py
    R ckan/templates_legacy/revision/__init__.py
    R ckan/templates_legacy/revision/diff.html
    R ckan/templates_legacy/revision/layout.html
    R ckan/templates_legacy/revision/list.html
    R ckan/templates_legacy/revision/read.html
    R ckan/templates_legacy/snippets/data-viewer-embed-branded-link.html
    R ckan/templates_legacy/snippets/data-viewer-embed-dialog.html
    R ckan/templates_legacy/snippets/follow_button.html
    R ckan/templates_legacy/snippets/internal-tracking.html
    R ckan/templates_legacy/snippets/package_list.html
    R ckan/templates_legacy/snippets/recline-extra-footer.html
    R ckan/templates_legacy/snippets/recline-extra-header.html
    R ckan/templates_legacy/snippets/revision_list.html
    R ckan/templates_legacy/storage/index.html
    R ckan/templates_legacy/storage/success.html
    R ckan/templates_legacy/tag/__init__.py
    R ckan/templates_legacy/tag/index.html
    R ckan/templates_legacy/tag/layout.html
    R ckan/templates_legacy/tag/read.html
    R ckan/templates_legacy/user/__init__.py
    R ckan/templates_legacy/user/dashboard.html
    R ckan/templates_legacy/user/edit.html
    R ckan/templates_legacy/user/edit_user_form.html
    R ckan/templates_legacy/user/followers.html
    R ckan/templates_legacy/user/layout.html
    R ckan/templates_legacy/user/list.html
    R ckan/templates_legacy/user/login.html
    R ckan/templates_legacy/user/logout.html
    R ckan/templates_legacy/user/logout_first.html
    R ckan/templates_legacy/user/new.html
    R ckan/templates_legacy/user/new_user_form.html
    R ckan/templates_legacy/user/perform_reset.html
    R ckan/templates_legacy/user/read.html
    R ckan/templates_legacy/user/request_reset.html
    M ckan/tests/__init__.py
    M ckan/tests/functional/api/model/test_package.py
    M ckan/tests/functional/api/test_user.py
    M ckan/tests/functional/test_activity.py
    M ckan/tests/functional/test_admin.py
    R ckan/tests/functional/test_follow.py
    M ckan/tests/functional/test_group.py
    M ckan/tests/functional/test_home.py
    M ckan/tests/functional/test_package.py
    R ckan/tests/functional/test_package_relationships.py
    M ckan/tests/functional/test_revision.py
    R ckan/tests/functional/test_search.py
    M ckan/tests/functional/test_tag.py
    R ckan/tests/functional/test_tag_vocab.py
    R ckan/tests/functional/test_upload.py
    M ckan/tests/functional/test_user.py
    M ckan/tests/lib/test_accept.py
    M ckan/tests/lib/test_authenticator.py
    M ckan/tests/lib/test_dictization.py
    R ckan/tests/lib/test_field_types.py
    M ckan/tests/logic/test_action.py
    M ckan/tests/logic/test_auth.py
    M ckan/tests/logic/test_tag.py
    M ckan/tests/models/test_package.py
    M ckan/tests/models/test_user.py
    M ckan/tests/test_coding_standards.py
    M ckanext/datastore/plugin.py
    M ckanext/multilingual/plugin.py
    M ckanext/multilingual/tests/test_multilingual_plugin.py
    M ckanext/reclineview/theme/public/recline_view.js
    M ckanext/reclineview/theme/public/resource.config
    M ckanext/reclineview/theme/public/vendor/flot/excanvas.js
    M ckanext/reclineview/theme/public/vendor/flot/excanvas.min.js
    M ckanext/reclineview/theme/public/vendor/flot/jquery.flot.js
    A ckanext/reclineview/theme/public/vendor/flot/jquery.flot.time.js
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/layers.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/marker-icon.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/marker-shadow.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/zoom-in.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/images/zoom-out.png
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet-src.js
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet-src.min.js
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.css
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.ie.css
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.ie.min.css
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.js
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.min.css
    R ckanext/reclineview/theme/public/vendor/leaflet/0.4.4/leaflet.min.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/layers.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon-2x.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-icon.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/images/marker-shadow.png
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet-src.js
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.css
    A ckanext/reclineview/theme/public/vendor/leaflet/0.7.3/leaflet.js
    R ckanext/reclineview/theme/public/vendor/moment/1.6.2/moment.js
    R ckanext/reclineview/theme/public/vendor/moment/1.6.2/moment.min.js
    A ckanext/reclineview/theme/public/vendor/moment/2.0.0/moment.js
    M ckanext/reclineview/theme/public/vendor/recline/recline.css
    M ckanext/reclineview/theme/public/vendor/recline/recline.dataset.js
    R ckanext/reclineview/theme/public/vendor/recline/recline.dataset.min.js
    M ckanext/reclineview/theme/public/vendor/recline/recline.js
    R ckanext/reclineview/theme/public/vendor/recline/recline.min.css
    R ckanext/reclineview/theme/public/vendor/recline/recline.min.js
    R ckanext/reclineview/theme/public/vendor/timeline/20120520/css/timeline.css
    R ckanext/reclineview/theme/public/vendor/timeline/20120520/css/timeline.min.css
    R ckanext/reclineview/theme/public/vendor/timeline/20120520/css/timeline.png
    R ckanext/reclineview/theme/public/vendor/timeline/20120520/js/timeline.js
    R ckanext/reclineview/theme/public/vendor/timeline/20120520/js/timeline.min.js
    A ckanext/reclineview/theme/public/vendor/timeline/css/loading.gif
    A ckanext/reclineview/theme/public/vendor/timeline/css/timeline.css
    A ckanext/reclineview/theme/public/vendor/timeline/css/timeline.png
    A ckanext/reclineview/theme/public/vendor/timeline/css/timeline at 2x.png
    A ckanext/reclineview/theme/public/vendor/timeline/js/timeline.js
    R ckanext/reclineview/theme/public/vendor/underscore/1.4.2/underscore.js
    R ckanext/reclineview/theme/public/vendor/underscore/1.4.2/underscore.min.js
    A ckanext/reclineview/theme/public/vendor/underscore/1.4.4/underscore.js
    M ckanext/resourceproxy/tests/test_proxy.py
    M ckanext/stats/stats.py
    M ckanext/stats/tests/test_stats_lib.py
    M ckanext/stats/tests/test_stats_plugin.py
    M ckanext/textview/theme/public/css/text.css
    R doc/_themes/sphinx-theme-okfn
    M doc/api/index.rst
    M doc/contributing/upgrading-dependencies.rst
    M doc/maintaining/configuration.rst
    M doc/maintaining/datastore.rst
    M doc/maintaining/paster.rst
    M doc/maintaining/upgrading/upgrade-package-to-minor-release.rst
    M doc/maintaining/upgrading/upgrade-package-to-patch-release.rst
    M requirements.in
    M requirements.txt
    M test-core.ini

  Log Message:
  -----------
  Merge branch 'master' into filterable-resource-views-master-2


  Commit: 304fe50c84a4979f2b709ba7ae2f9f01e86bb12e
      https://github.com/ckan/ckan/commit/304fe50c84a4979f2b709ba7ae2f9f01e86bb12e
  Author: joetsoi <joe.yeung.tsoi at gmail.com>
  Date:   2015-01-06 (Tue, 06 Jan 2015)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/controllers/package.py
    M ckan/lib/helpers.py
    M ckan/logic/action/create.py
    M ckan/logic/action/update.py
    M ckan/logic/converters.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    M ckan/new_tests/lib/test_helpers.py
    M ckan/new_tests/logic/action/test_create.py
    M ckan/new_tests/logic/action/test_update.py
    A ckan/public/base/javascript/modules/resource-view-filters-form.js
    A ckan/public/base/javascript/modules/resource-view-filters.js
    M ckan/public/base/javascript/resource.config
    A ckan/public/base/javascript/view-filters.js
    M ckan/public/base/less/ckan.less
    A ckan/public/base/less/resource-view.less
    M ckan/public/base/test/index.html
    A ckan/public/base/test/spec/view-filters.spec.js
    A ckan/public/base/vendor/polyfill-object-keys.js
    M ckan/public/base/vendor/resource.config
    M ckan/templates/package/snippets/resource_view.html
    A ckan/templates/package/snippets/resource_view_filters.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/view_form.html
    A ckan/templates/package/snippets/view_form_filters.html
    A ckanext/datapusher/cli.py
    M ckanext/datapusher/logic/action.py
    M ckanext/datapusher/logic/schema.py
    M ckanext/datapusher/tests/test.py
    M ckanext/datastore/db.py
    M ckanext/datastore/helpers.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_helpers.py
    M ckanext/datastore/tests/test_plugin.py
    M ckanext/datastore/tests/test_search.py
    M ckanext/reclineview/plugin.py
    M ckanext/reclineview/theme/public/recline_view.js
    M ckanext/reclineview/theme/public/vendor/ckan.js/ckan.js
    M doc/maintaining/configuration.rst
    M setup.py

  Log Message:
  -----------
  Merge branch '1792-filterable-resource-views'


Compare: https://github.com/ckan/ckan/compare/590e18fd0d53...304fe50c84a4


More information about the ckan-changes mailing list