[ckan-changes] [okfn/ckan] 9b4d53: Pluggable previews and jsonpreview example extensi...

GitHub noreply at github.com
Thu Dec 20 13:08:22 UTC 2012


  Branch: refs/heads/clean-model-dictize
  Home:   https://github.com/okfn/ckan
  Commit: 9b4d539dbd254e9358de3bd801624c89dfd943eb
      https://github.com/okfn/ckan/commit/9b4d539dbd254e9358de3bd801624c89dfd943eb
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/config/routing.py
    M ckan/controllers/package.py
    M ckan/lib/helpers.py
    M ckan/plugins/interfaces.py
    R ckan/public/base/datapreview/css/json.css
    R ckan/public/base/datapreview/css/json.min.css
    R ckan/public/base/datapreview/preview_json.js
    R ckan/public/base/datapreview/preview_json.min.js
    M ckan/public/base/datapreview/resource.config
    R ckan/templates/dataviewer/json.html
    A ckanext/jsonpreview/__init__.py
    A ckanext/jsonpreview/plugin.py
    A ckanext/jsonpreview/theme/public/css/json.css
    A ckanext/jsonpreview/theme/public/preview_json.js
    A ckanext/jsonpreview/theme/public/resource.config
    A ckanext/jsonpreview/theme/templates/dataviewer/base.html
    M setup.py

  Log Message:
  -----------
  Pluggable previews and jsonpreview example extension


  Commit: 4a7d2492d872e9be9c5eaf95e701ff381b6d46ac
      https://github.com/okfn/ckan/commit/4a7d2492d872e9be9c5eaf95e701ff381b6d46ac
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/lib/helpers.py
    M ckan/plugins/interfaces.py
    M ckanext/jsonpreview/__init__.py
    M ckanext/jsonpreview/plugin.py

  Log Message:
  -----------
  Precedence for external previews and plugins are asked whether they require same origin resources


  Commit: 14581a58e8f1c4d9fcf2eb2ff50c5b5dd41c2fb5
      https://github.com/okfn/ckan/commit/14581a58e8f1c4d9fcf2eb2ff50c5b5dd41c2fb5
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/lib/helpers.py
    M ckan/plugins/interfaces.py
    R ckan/public/base/datapreview/css/pdf.css
    R ckan/public/base/datapreview/css/pdf.min.css
    R ckan/public/base/datapreview/preview_pdf.js
    R ckan/public/base/datapreview/preview_pdf.min.js
    M ckan/public/base/datapreview/resource.config
    R ckan/public/base/datapreview/vendor/pdfjs/pdf.js
    R ckan/public/base/datapreview/vendor/pdfjs/pdf.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/compatibility.js
    R ckan/public/base/datapreview/vendor/pdfviewer/compatibility.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/debugger.js
    R ckan/public/base/datapreview/vendor/pdfviewer/debugger.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-check.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-comment.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-text.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/loading-icon.gif
    R ckan/public/base/datapreview/vendor/pdfviewer/images/texture.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-bookmark.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-download.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-openFile.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageDown.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageUp.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-print.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-search.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    R ckan/public/base/datapreview/vendor/pdfviewer/locale.properties
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.css
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.js
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.css
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.js
    R ckan/public/base/datapreview/vendor/webL10n/README.md
    R ckan/public/base/datapreview/vendor/webL10n/l10n.js
    R ckan/public/base/datapreview/vendor/webL10n/l10n.min.js
    R ckan/templates/dataviewer/pdf.html
    M ckanext/jsonpreview/plugin.py
    M ckanext/jsonpreview/theme/public/resource.config
    R ckanext/jsonpreview/theme/templates/dataviewer/base.html
    A ckanext/pdfpreview/__init__.py
    A ckanext/pdfpreview/plugin.py
    A ckanext/pdfpreview/theme/public/css/pdf.css
    A ckanext/pdfpreview/theme/public/css/pdf.min.css
    A ckanext/pdfpreview/theme/public/css/recline.css
    A ckanext/pdfpreview/theme/public/css/recline.min.css
    A ckanext/pdfpreview/theme/public/img/ajaxload-circle.gif
    A ckanext/pdfpreview/theme/public/preview_pdf.js
    A ckanext/pdfpreview/theme/public/resource.config
    A ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.js
    A ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-check.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-comment.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-text.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/loading-icon.gif
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/texture.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-bookmark.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-download.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-openFile.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-print.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-search.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/locale.properties
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.css
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.css
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.js
    A ckanext/pdfpreview/theme/public/vendor/webL10n/README.md
    A ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.js
    A ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.min.js
    A ckanext/pdfpreview/theme/templates/dataviewer/pdf.html
    M setup.py

  Log Message:
  -----------
  pdf preview extension


  Commit: ca8a274a85a514df89c0c33a9070127650678e6a
      https://github.com/okfn/ckan/commit/ca8a274a85a514df89c0c33a9070127650678e6a
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py
    A ckanext/jsonpreview/theme/templates/json.html
    M ckanext/pdfpreview/plugin.py
    R ckanext/pdfpreview/theme/templates/dataviewer/pdf.html
    A ckanext/pdfpreview/theme/templates/pdf.html

  Log Message:
  -----------
  moved templates one directory up


  Commit: 437ed466d2fd4d4db80458d355ff340371e0eb0b
      https://github.com/okfn/ckan/commit/437ed466d2fd4d4db80458d355ff340371e0eb0b
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    R ckan/public/base/datapreview/css/recline.css
    R ckan/public/base/datapreview/css/recline.min.css
    R ckan/public/base/datapreview/img/ajaxload-circle.gif
    R ckan/public/base/datapreview/preview_recline.js
    R ckan/public/base/datapreview/preview_recline.min.js
    R ckan/public/base/datapreview/resource.config
    R ckan/public/base/datapreview/vendor/backbone/backbone.js
    R ckan/public/base/datapreview/vendor/backbone/backbone.min.js
    R ckan/public/base/datapreview/vendor/bootstrap/bootstrap.js
    R ckan/public/base/datapreview/vendor/bootstrap/bootstrap.min.js
    R ckan/public/base/datapreview/vendor/bootstrap/css/bootstrap.css
    R ckan/public/base/datapreview/vendor/bootstrap/css/bootstrap.min.css
    R ckan/public/base/datapreview/vendor/bootstrap/img/glyphicons-halflings-white.png
    R ckan/public/base/datapreview/vendor/bootstrap/img/glyphicons-halflings.png
    R ckan/public/base/datapreview/vendor/flotr2/excanvas.js
    R ckan/public/base/datapreview/vendor/flotr2/excanvas.min.js
    R ckan/public/base/datapreview/vendor/flotr2/flotr2.js
    R ckan/public/base/datapreview/vendor/flotr2/flotr2.min.js
    R ckan/public/base/datapreview/vendor/jquery.mustache/jquery.mustache.js
    R ckan/public/base/datapreview/vendor/jquery.mustache/jquery.mustache.min.js
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/leaflet.markercluster.js
    R ckan/public/base/datapreview/vendor/leaflet/images/layers.png
    R ckan/public/base/datapreview/vendor/leaflet/images/marker-icon.png
    R ckan/public/base/datapreview/vendor/leaflet/images/marker-shadow.png
    R ckan/public/base/datapreview/vendor/leaflet/images/zoom-in.png
    R ckan/public/base/datapreview/vendor/leaflet/images/zoom-out.png
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.ie.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.ie.min.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.js
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.min.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.min.js
    R ckan/public/base/datapreview/vendor/moment/moment.js
    R ckan/public/base/datapreview/vendor/moment/moment.min.js
    R ckan/public/base/datapreview/vendor/mustache/mustache.js
    R ckan/public/base/datapreview/vendor/mustache/mustache.min.js
    R ckan/public/base/datapreview/vendor/recline/css/recline.css
    R ckan/public/base/datapreview/vendor/recline/css/recline.min.css
    R ckan/public/base/datapreview/vendor/recline/recline.js
    R ckan/public/base/datapreview/vendor/recline/recline.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/MIT-LICENSE.txt
    R ckan/public/base/datapreview/vendor/slickgrid/README.txt
    R ckan/public/base/datapreview/vendor/slickgrid/images/sort-asc.gif
    R ckan/public/base/datapreview/vendor/slickgrid/images/sort-desc.gif
    R ckan/public/base/datapreview/vendor/slickgrid/jquery-ui-1.8.16.custom.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery-ui-1.8.16.custom.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery.event.drag-2.0.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery.event.drag-2.0.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.css
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.js
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.min.css
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.min.js
    R ckan/public/base/datapreview/vendor/underscore/underscore.js
    R ckan/public/base/datapreview/vendor/underscore/underscore.min.js
    R ckan/templates/dataviewer/recline.html
    A ckanext/reclinepreview/__init__.py
    A ckanext/reclinepreview/plugin.py
    A ckanext/reclinepreview/theme/public/css/recline.css
    A ckanext/reclinepreview/theme/public/css/recline.min.css
    A ckanext/reclinepreview/theme/public/img/ajaxload-circle.gif
    A ckanext/reclinepreview/theme/public/preview_recline.js
    A ckanext/reclinepreview/theme/public/preview_recline.min.js
    A ckanext/reclinepreview/theme/public/resource.config
    A ckanext/reclinepreview/theme/public/vendor/backbone/backbone.js
    A ckanext/reclinepreview/theme/public/vendor/backbone/backbone.min.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/bootstrap.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/bootstrap.min.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/css/bootstrap.css
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/css/bootstrap.min.css
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/img/glyphicons-halflings-white.png
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/img/glyphicons-halflings.png
    A ckanext/reclinepreview/theme/public/vendor/flotr2/excanvas.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/excanvas.min.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.min.js
    A ckanext/reclinepreview/theme/public/vendor/jquery.mustache/jquery.mustache.js
    A ckanext/reclinepreview/theme/public/vendor/jquery.mustache/jquery.mustache.min.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/layers.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/marker-icon.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/marker-shadow.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/zoom-in.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/zoom-out.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.ie.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.ie.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.js
    A ckanext/reclinepreview/theme/public/vendor/moment/moment.js
    A ckanext/reclinepreview/theme/public/vendor/moment/moment.min.js
    A ckanext/reclinepreview/theme/public/vendor/mustache/mustache.js
    A ckanext/reclinepreview/theme/public/vendor/mustache/mustache.min.js
    A ckanext/reclinepreview/theme/public/vendor/recline/css/recline.css
    A ckanext/reclinepreview/theme/public/vendor/recline/css/recline.min.css
    A ckanext/reclinepreview/theme/public/vendor/recline/recline.js
    A ckanext/reclinepreview/theme/public/vendor/recline/recline.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/MIT-LICENSE.txt
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/README.txt
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/images/sort-asc.gif
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/images/sort-desc.gif
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery-ui-1.8.16.custom.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery-ui-1.8.16.custom.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery.event.drag-2.0.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery.event.drag-2.0.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.css
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.min.css
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.min.js
    A ckanext/reclinepreview/theme/public/vendor/underscore/underscore.js
    A ckanext/reclinepreview/theme/public/vendor/underscore/underscore.min.js
    A ckanext/reclinepreview/theme/templates/recline.html
    M setup.py

  Log Message:
  -----------
  recline datapreview moved to extension


  Commit: cb962d4ea93f6d283921ecbfa578d286eda8afda
      https://github.com/okfn/ckan/commit/cb962d4ea93f6d283921ecbfa578d286eda8afda
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/lib/helpers.py
    M ckan/plugins/interfaces.py

  Log Message:
  -----------
  Clean up the pre render method interface


  Commit: 7236f97e4c019845b76f62e9fc2fe61e12d8a457
      https://github.com/okfn/ckan/commit/7236f97e4c019845b76f62e9fc2fe61e12d8a457
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/lib/helpers.py
    M ckanext/pdfpreview/plugin.py

  Log Message:
  -----------
  partial support for same origin requirement


  Commit: 7f2cd11fbc432e3e21722b69bdbe2af17e1f544a
      https://github.com/okfn/ckan/commit/7f2cd11fbc432e3e21722b69bdbe2af17e1f544a
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/lib/helpers.py
    M ckanext/pdfpreview/theme/public/resource.config
    M ckanext/pdfpreview/theme/templates/pdf.html

  Log Message:
  -----------
  Fix urls_for_resource to return the right root_path, still dodgy.


  Commit: e0f56e0d072adc1c784b4ed825942434565871d9
      https://github.com/okfn/ckan/commit/e0f56e0d072adc1c784b4ed825942434565871d9
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl

  Log Message:
  -----------
  Note on how to enable the resource previews in deployment tmpl


  Commit: 46439a04b2b0472229b3aa9ee2b7462443d2e754
      https://github.com/okfn/ckan/commit/46439a04b2b0472229b3aa9ee2b7462443d2e754
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  Find out whether resource is on the same domain.


  Commit: d2628c212b11a76d584f8258ae7c241dae504a6f
      https://github.com/okfn/ckan/commit/d2628c212b11a76d584f8258ae7c241dae504a6f
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-19 (Fri, 19 Oct 2012)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  Check same domain on resource and ckan


  Commit: 558138de5accceb10eeb454a77385c9e823f1b1c
      https://github.com/okfn/ckan/commit/558138de5accceb10eeb454a77385c9e823f1b1c
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-26 (Fri, 26 Oct 2012)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/lib/helpers.py
    M ckan/plugins/interfaces.py

  Log Message:
  -----------
  Simplified plugins interface


  Commit: 2e1fca586f7767673199e2dd739a949533e18d53
      https://github.com/okfn/ckan/commit/2e1fca586f7767673199e2dd739a949533e18d53
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-26 (Fri, 26 Oct 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py
    A ckanext/resourceproxy/__init__.py
    A ckanext/resourceproxy/controller.py
    A ckanext/resourceproxy/plugin.py
    M setup.py

  Log Message:
  -----------
  Resource proxy plugin started


  Commit: 760a5d16d353029c864de352cf0e8eae4f04e70a
      https://github.com/okfn/ckan/commit/760a5d16d353029c864de352cf0e8eae4f04e70a
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-26 (Fri, 26 Oct 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  Fixed resource proxy controller


  Commit: c059fd5e7291fa7ffacabe6bfc9e9eaed2d33fba
      https://github.com/okfn/ckan/commit/c059fd5e7291fa7ffacabe6bfc9e9eaed2d33fba
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-26 (Fri, 26 Oct 2012)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/lib/helpers.py
    M ckan/plugins/interfaces.py

  Log Message:
  -----------
  Simplifying and improving internal code


  Commit: e1d11fbf61eaba0fa4e1bb0a99e9a3104ad98ee5
      https://github.com/okfn/ckan/commit/e1d11fbf61eaba0fa4e1bb0a99e9a3104ad98ee5
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-26 (Fri, 26 Oct 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py
    M ckanext/jsonpreview/theme/public/preview_json.js
    M ckanext/jsonpreview/theme/templates/json.html
    M ckanext/pdfpreview/plugin.py
    M ckanext/reclinepreview/plugin.py
    M ckanext/resourceproxy/plugin.py

  Log Message:
  -----------
  Adapting preview extensions to use updated code


  Commit: 654164b1e4236d6e11fdf6e584c5d3ad0095dc7f
      https://github.com/okfn/ckan/commit/654164b1e4236d6e11fdf6e584c5d3ad0095dc7f
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-26 (Fri, 26 Oct 2012)

  Changed paths:
    M CHANGELOG.txt
    M doc/datastore-setup.rst
    R doc/howto-editing-database-ownership.rst
    M doc/index.rst
    M doc/paster.rst

  Log Message:
  -----------
  Merge remote-tracking branch 'okfn/master' into 2961-pluggable-previews


  Commit: 4f6bf35a07cfac28a61dfc2fb9fab76d77f8ce07
      https://github.com/okfn/ckan/commit/4f6bf35a07cfac28a61dfc2fb9fab76d77f8ce07
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-31 (Wed, 31 Oct 2012)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  fix url = url


  Commit: 7fd87efc16ec249b0bfe2681ff6ae688ef1c8d5c
      https://github.com/okfn/ckan/commit/7fd87efc16ec249b0bfe2681ff6ae688ef1c8d5c
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-31 (Wed, 31 Oct 2012)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/plugins/interfaces.py
    M ckanext/jsonpreview/plugin.py
    M ckanext/pdfpreview/plugin.py
    M ckanext/reclinepreview/plugin.py

  Log Message:
  -----------
  Add data_dict to preview_template


  Commit: 2024f22b9bd74b42abffbc7ca512d7340e4d9bad
      https://github.com/okfn/ckan/commit/2024f22b9bd74b42abffbc7ca512d7340e4d9bad
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-31 (Wed, 31 Oct 2012)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/lib/helpers.py

  Log Message:
  -----------
  ckanplugins->p


  Commit: 9cebb73eec82640e8bff55de4c0e0e510a392909
      https://github.com/okfn/ckan/commit/9cebb73eec82640e8bff55de4c0e0e510a392909
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-31 (Wed, 31 Oct 2012)

  Changed paths:
    M ckanext/resourceproxy/plugin.py
    M setup.py

  Log Message:
  -----------
  Added docstring to proxy plugin, renamed plugins


  Commit: 4a255aaefaaaa69d8e8aa25ab88241f1a197670d
      https://github.com/okfn/ckan/commit/4a255aaefaaaa69d8e8aa25ab88241f1a197670d
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-31 (Wed, 31 Oct 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl

  Log Message:
  -----------
  Json preview and recline preview are enabled by default


  Commit: 822485349d4593cf03ff138f4c6aaee678f68854
      https://github.com/okfn/ckan/commit/822485349d4593cf03ff138f4c6aaee678f68854
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-31 (Wed, 31 Oct 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py
    M ckanext/pdfpreview/plugin.py
    M ckanext/resourceproxy/plugin.py

  Log Message:
  -----------
  Proxyfied->proxified


  Commit: da372ada1908608b2b07c5d0cc1a9b8675356983
      https://github.com/okfn/ckan/commit/da372ada1908608b2b07c5d0cc1a9b8675356983
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-10-31 (Wed, 31 Oct 2012)

  Changed paths:
    M ckanext/jsonpreview/theme/public/preview_json.js

  Log Message:
  -----------
  Better error reporting for json preview


  Commit: 8705d2591b230304eaba0748b0d3cb0bc67508ad
      https://github.com/okfn/ckan/commit/8705d2591b230304eaba0748b0d3cb0bc67508ad
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-01 (Thu, 01 Nov 2012)

  Changed paths:
    A ckanext/jsonpreview/theme/public/css/json.min.css
    A ckanext/jsonpreview/theme/public/preview_json.min.js
    M ckanext/pdfpreview/theme/public/css/recline.min.css
    A ckanext/pdfpreview/theme/public/preview_pdf.min.js
    M ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.min.js
    M ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.css
    M ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.js
    M ckanext/reclinepreview/theme/public/css/recline.min.css
    M ckanext/reclinepreview/theme/public/preview_recline.min.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.min.js
    M ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.css
    M ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.js
    M ckanext/reclinepreview/theme/public/vendor/recline/css/recline.min.css
    M ckanext/reclinepreview/theme/public/vendor/recline/recline.min.js

  Log Message:
  -----------
  Added/updated minified public resources for preview plugins.


  Commit: a6c7190fa7756b04a1c6a9b1dcd19a4a7682f526
      https://github.com/okfn/ckan/commit/a6c7190fa7756b04a1c6a9b1dcd19a4a7682f526
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-01 (Thu, 01 Nov 2012)

  Changed paths:
    M ckan/tests/lib/test_helpers.py

  Log Message:
  -----------
  pep8 in test_helpers.py


  Commit: a13f1023d2c63a74f7b406d77ce21c13d7ebb4da
      https://github.com/okfn/ckan/commit/a13f1023d2c63a74f7b406d77ce21c13d7ebb4da
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-01 (Thu, 01 Nov 2012)

  Changed paths:
    M ckan/lib/helpers.py
    M ckan/tests/lib/test_helpers.py

  Log Message:
  -----------
  Rewrote same origin check, added tests.


  Commit: af7716b944fb159181254828269d534703b60dec
      https://github.com/okfn/ckan/commit/af7716b944fb159181254828269d534703b60dec
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-02 (Fri, 02 Nov 2012)

  Changed paths:
    M ckan/lib/helpers.py
    M ckan/templates/dataviewer/snippets/no_preview.html
    M setup.py

  Log Message:
  -----------
  Handle case where no url has been defined


  Commit: 409d130758d93c0f80ef244985d750d6396fd04a
      https://github.com/okfn/ckan/commit/409d130758d93c0f80ef244985d750d6396fd04a
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-03 (Sat, 03 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/plugin.py

  Log Message:
  -----------
  Removed action from resource proxy extension


  Commit: 61fe242a78f34b6514301c9860c2f9cba630925e
      https://github.com/okfn/ckan/commit/61fe242a78f34b6514301c9860c2f9cba630925e
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-03 (Sat, 03 Nov 2012)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  Use ckan.site.url instead of HTTP_REFERER because the later is not necessarily defined


  Commit: 1da92c645104e31eb85e9b63ceeb303c6fc00980
      https://github.com/okfn/ckan/commit/1da92c645104e31eb85e9b63ceeb303c6fc00980
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-03 (Sat, 03 Nov 2012)

  Changed paths:
    M doc/writing-extensions.rst

  Log Message:
  -----------
  Linked and improved documentation on how to write extensions.


  Commit: c2f6fa2e24de214d9a077d868f2cb7d1f22a8681
      https://github.com/okfn/ckan/commit/c2f6fa2e24de214d9a077d868f2cb7d1f22a8681
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-04 (Sun, 04 Nov 2012)

  Changed paths:
    M ckan/tests/functional/test_package.py

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


  Commit: 5aea0d87489e705132a5672cff4a41b747ebdc60
      https://github.com/okfn/ckan/commit/5aea0d87489e705132a5672cff4a41b747ebdc60
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-04 (Sun, 04 Nov 2012)

  Changed paths:
    A ckan/tests/functional/test_preview_interface.py

  Log Message:
  -----------
  Test whether the plugin interface is used properly


  Commit: 6b003a67ff7699a46f8e6c981cbc3ab723ef515b
      https://github.com/okfn/ckan/commit/6b003a67ff7699a46f8e6c981cbc3ab723ef515b
  Author: amercader <amercadero at gmail.com>
  Date:   2012-11-05 (Mon, 05 Nov 2012)

  Changed paths:
    A ckan/templates/tests/mock_resource_preview_template.html
    M ckan/tests/functional/test_preview_interface.py

  Log Message:
  -----------
  Changes in tests for the preview interface


  Commit: d87c115a2b68e0fd5162681244a79f879543ec87
      https://github.com/okfn/ckan/commit/d87c115a2b68e0fd5162681244a79f879543ec87
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-08 (Thu, 08 Nov 2012)

  Changed paths:
    A ckan/templates/tests/mock_json_resource_preview_template.html
    M ckan/tests/functional/test_preview_interface.py

  Log Message:
  -----------
  functional test for preview plugin interface


  Commit: 600ac9f22737d5b183b805b5b706212ec8815418
      https://github.com/okfn/ckan/commit/600ac9f22737d5b183b805b5b706212ec8815418
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-08 (Thu, 08 Nov 2012)

  Changed paths:
    M ckan/tests/functional/test_preview_interface.py

  Log Message:
  -----------
  properly test number of calls


  Commit: abf5e25007cb00b70f2c0a6448c7fd2ab00606aa
      https://github.com/okfn/ckan/commit/abf5e25007cb00b70f2c0a6448c7fd2ab00606aa
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-08 (Thu, 08 Nov 2012)

  Changed paths:
    M ckan/tests/functional/test_preview_interface.py

  Log Message:
  -----------
  Test results if no preview is defined


  Commit: 44408d044838f1809e69c422cc8bc1cd432f5e4a
      https://github.com/okfn/ckan/commit/44408d044838f1809e69c422cc8bc1cd432f5e4a
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-08 (Thu, 08 Nov 2012)

  Changed paths:
    A ckanext/resourceproxy/tests/__init__.py
    A ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  Added proxy test files


  Commit: 1975050e491a7bd6ce54a9bf8877c4a1d737b119
      https://github.com/okfn/ckan/commit/1975050e491a7bd6ce54a9bf8877c4a1d737b119
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-08 (Thu, 08 Nov 2012)

  Changed paths:
    A ckanext/resourceproxy/tests/file_server.py
    A ckanext/resourceproxy/tests/static/test.json
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  Basic proxy tests


  Commit: 5369644cc2719e1bceae356f9427d2aac0a6b03c
      https://github.com/okfn/ckan/commit/5369644cc2719e1bceae356f9427d2aac0a6b03c
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-11 (Sun, 11 Nov 2012)

  Changed paths:
    M ckan/lib/helpers.py
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  start resource proxy test for status code 200


  Commit: 23449a4a7e8be918b54445178cbd37c5dbc52901
      https://github.com/okfn/ckan/commit/23449a4a7e8be918b54445178cbd37c5dbc52901
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-11 (Sun, 11 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  refactored resourceproxy test


  Commit: 2c87ae79bed4da07375f32ba4e6b786062934e3b
      https://github.com/okfn/ckan/commit/2c87ae79bed4da07375f32ba4e6b786062934e3b
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-12 (Mon, 12 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  Add not on broken test


  Commit: f1894d3a033c8ab9a6fd3956ce394cc21d6724ca
      https://github.com/okfn/ckan/commit/f1894d3a033c8ab9a6fd3956ce394cc21d6724ca
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-12 (Mon, 12 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  Resource proxy supports proxying files with http errors, i.e. a 404 page.


  Commit: df60b65efbbf343af0e1a799e22feaa1e59a91ca
      https://github.com/okfn/ckan/commit/df60b65efbbf343af0e1a799e22feaa1e59a91ca
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-12 (Mon, 12 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  Properly handle timeouts and other urlerrors in resource proxy


  Commit: c9735dc5dd0bdbc8df32131e96afa1a089d673a7
      https://github.com/okfn/ckan/commit/c9735dc5dd0bdbc8df32131e96afa1a089d673a7
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-12 (Mon, 12 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  Read the docs! /writing-extensions.html#testing-ckan-extensions


  Commit: 706f0531be205f35d3a5435c6a5ca8420b42ee10
      https://github.com/okfn/ckan/commit/706f0531be205f35d3a5435c6a5ca8420b42ee10
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-12 (Mon, 12 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  req->res


  Commit: d6a34dadcecf5a5df2c17b39e3904e9a809800c2
      https://github.com/okfn/ckan/commit/d6a34dadcecf5a5df2c17b39e3904e9a809800c2
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-12 (Mon, 12 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  Test 404 in resource proxy


  Commit: 1b5471080b7ddea47136626cb689a40e18b22555
      https://github.com/okfn/ckan/commit/1b5471080b7ddea47136626cb689a40e18b22555
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-14 (Wed, 14 Nov 2012)

  Changed paths:
    A ckanext/jsonpreview/tests/__init__.py
    A ckanext/jsonpreview/tests/test_preview.py

  Log Message:
  -----------
  jsonpreview can_preview test


  Commit: 9d7a0a22196ddb9485d7887c44ff7b9c6a19926b
      https://github.com/okfn/ckan/commit/9d7a0a22196ddb9485d7887c44ff7b9c6a19926b
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-14 (Wed, 14 Nov 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M setup.py

  Log Message:
  -----------
  rename resourceproxy -> resource_proxy to make make it similar to other extension names


  Commit: 8309527f8d2ef9c65a0d7cad5dfc9b84cb8ce6ea
      https://github.com/okfn/ckan/commit/8309527f8d2ef9c65a0d7cad5dfc9b84cb8ce6ea
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-14 (Wed, 14 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/tests/test_preview.py

  Log Message:
  -----------
  Fixed test code


  Commit: 2c22840a5093b1d8b2db19ed5a01f46747bbf491
      https://github.com/okfn/ckan/commit/2c22840a5093b1d8b2db19ed5a01f46747bbf491
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-14 (Wed, 14 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/plugin.py

  Log Message:
  -----------
  resource proxy sets config to indicate that it is active


  Commit: e1c6fc9cea1279cbe06610896cfdb3745add1235
      https://github.com/okfn/ckan/commit/e1c6fc9cea1279cbe06610896cfdb3745add1235
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-14 (Wed, 14 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  Resource proxy has better error reporting and tests


  Commit: d5c42b0c0e80a0bdbfefd833199e9c6263b19747
      https://github.com/okfn/ckan/commit/d5c42b0c0e80a0bdbfefd833199e9c6263b19747
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-14 (Wed, 14 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  Better resource proxy detection


  Commit: a3d31e5eadc2b0a4eed282a2a733c5756ae64214
      https://github.com/okfn/ckan/commit/a3d31e5eadc2b0a4eed282a2a733c5756ae64214
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-16 (Fri, 16 Nov 2012)

  Changed paths:
    M ckan/lib/dictization/model_dictize.py

  Log Message:
  -----------
  [#1635] user_dictize() don't crash if no context['user']

Normally 'user' would always be in context (and would be None if no user
was logged in) but if user_dictize() was called via an internal function
calling a logic action function via get_action(), and that internal
function neglected to put 'user': None in context, then user_dictize()
would raise KeyError. (An example of this is the
get_and_send_notifications_for_all_users() that I'm about to commit
after this.)

May as well just behave as if 'user': None was in context instead.


  Commit: 373432f4001273f171d04d4ea48b240c67d64ae7
      https://github.com/okfn/ckan/commit/373432f4001273f171d04d4ea48b240c67d64ae7
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-16 (Fri, 16 Nov 2012)

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

  Log Message:
  -----------
  [#1635] Remove an unused variable


  Commit: a678e0e27efb1aaea8fd11bc10f0cb5db709e3d7
      https://github.com/okfn/ckan/commit/a678e0e27efb1aaea8fd11bc10f0cb5db709e3d7
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-16 (Fri, 16 Nov 2012)

  Changed paths:
    A ckan/lib/email_notifications.py
    M ckan/logic/action/get.py
    M ckan/model/dashboard.py
    M ckan/model/user.py
    A ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Initial implementation of email notifications for activity streams

ckan/model/user.py
  Added @classmethod all()

ckan/model/dashboard.py
  Added last_activity_stream_email_notification and @classmethods
  get_last_activity_stream_email_notification,
  update_last_activity_stream_email_notification

logic/action/get.py:
 Added dashboard_email_notification_last_sent and get_email_notifications
 actions. These may not really need to be action functions as they may only be
 needed internally.

ckan/lib/email_notifications.py
  This is the email notifier job meant to be run by paster (but there's no
  paster command for it yet)

ckan/tests/lib/test_email_notifications.py
  The beginning of some tests


  Commit: 20e70832b52b088d1f8b4ecad782a641a98797b4
      https://github.com/okfn/ckan/commit/20e70832b52b088d1f8b4ecad782a641a98797b4
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-16 (Fri, 16 Nov 2012)

  Changed paths:
    M ckan/config/routing.py
    M ckan/controllers/group.py
    M ckan/lib/activity_streams.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/dictization/model_save.py
    M ckan/lib/helpers.py
    M ckan/logic/action/create.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/get.py
    M ckan/logic/converters.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    A ckan/migration/versions/061_add_follower__group_table.py
    M ckan/model/__init__.py
    M ckan/model/follower.py
    M ckan/public/base/javascript/modules/popover-context.js
    M ckan/public/base/less/activity.less
    M ckan/public/base/less/iehacks.less
    A ckan/templates/ajax_snippets/popover-context-group.html
    A ckan/templates/group/about.html
    M ckan/templates/group/activity_stream.html
    A ckan/templates/group/admins.html
    A ckan/templates/group/followers.html
    M ckan/templates/group/read.html
    M ckan/templates/user/dashboard.html
    M ckan/templates/user/read.html
    M ckan/tests/functional/api/test_follow.py
    M ckan/tests/functional/test_activity.py
    M doc/common-error-messages.rst

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams

Conflicts:
	ckan/public/base/less/iehacks.less


  Commit: 7bb24b2dd86da7d7afdb2b6a36944396c7c607df
      https://github.com/okfn/ckan/commit/7bb24b2dd86da7d7afdb2b6a36944396c7c607df
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-16 (Fri, 16 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/tests/test_preview.py
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  json preview tests


  Commit: 909d29526f33af139e1ec6952a6be1ac2d8ddb90
      https://github.com/okfn/ckan/commit/909d29526f33af139e1ec6952a6be1ac2d8ddb90
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-16 (Fri, 16 Nov 2012)

  Changed paths:
    M ckan/config/routing.py
    M ckan/controllers/group.py
    M ckan/lib/activity_streams.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/dictization/model_save.py
    M ckan/lib/helpers.py
    M ckan/logic/action/create.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/get.py
    M ckan/logic/converters.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    A ckan/migration/versions/061_add_follower__group_table.py
    M ckan/model/__init__.py
    M ckan/model/follower.py
    M ckan/public/base/css/main.css
    M ckan/public/base/javascript/modules/popover-context.js
    M ckan/public/base/javascript/resource.config
    M ckan/public/base/less/activity.less
    M ckan/public/base/less/ckan.less
    R ckan/public/base/less/disqus.less
    M ckan/public/base/less/iehacks.less
    A ckan/templates/ajax_snippets/popover-context-group.html
    A ckan/templates/group/about.html
    A ckan/templates/group/activity_stream.html
    A ckan/templates/group/admins.html
    A ckan/templates/group/followers.html
    M ckan/templates/group/read.html
    M ckan/templates/package/snippets/resource_item.html
    M ckan/templates/user/dashboard.html
    M ckan/templates/user/read.html
    M ckan/tests/functional/api/test_activity.py
    M ckan/tests/functional/api/test_follow.py
    M ckan/tests/functional/test_activity.py
    M doc/_themes/sphinx-theme-okfn
    M doc/common-error-messages.rst

  Log Message:
  -----------
  Merge remote-tracking branch 'okfn/master' into 2961-pluggable-previews


  Commit: 84973d2fe347a7198b48266fdf15ae1f4ee6d602
      https://github.com/okfn/ckan/commit/84973d2fe347a7198b48266fdf15ae1f4ee6d602
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-16 (Fri, 16 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  kill file serve in proxy test


  Commit: 2792859cbe1cccb4de283edf70cf9630120fffa4
      https://github.com/okfn/ckan/commit/2792859cbe1cccb4de283edf70cf9630120fffa4
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-16 (Fri, 16 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/plugin.py
    M doc/writing-extensions.rst

  Log Message:
  -----------
  Docs on the resource proxy


  Commit: a0d1062f8dc10b32f0cb3491d255e23711553878
      https://github.com/okfn/ckan/commit/a0d1062f8dc10b32f0cb3491d255e23711553878
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-19 (Mon, 19 Nov 2012)

  Changed paths:
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Fix up the first couple of tests, add in plan for some more


  Commit: 7a5df8e780b3abfb484f6101a84ac1dc5f85f187
      https://github.com/okfn/ckan/commit/7a5df8e780b3abfb484f6101a84ac1dc5f85f187
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-19 (Mon, 19 Nov 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Implement a couple more tests


  Commit: 6388d8d0f9cf2c7c4e7ce50a3564de3379bca45e
      https://github.com/okfn/ckan/commit/6388d8d0f9cf2c7c4e7ce50a3564de3379bca45e
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-19 (Mon, 19 Nov 2012)

  Changed paths:
    M ckan/controllers/user.py
    M ckan/lib/activity_streams.py
    M ckan/logic/action/get.py
    M ckan/logic/auth/get.py
    M ckan/logic/auth/publisher/get.py
    R ckan/migration/versions/061_add_dashboard_table.py
    A ckan/migration/versions/062_add_dashboard_table.py
    M ckan/model/activity.py
    M ckan/public/base/less/iehacks.less
    M ckan/tests/functional/api/test_activity.py
    M ckan/tests/functional/api/test_dashboard.py

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: 5b1ba5186906308176245817b2290e6f03e9c039
      https://github.com/okfn/ckan/commit/5b1ba5186906308176245817b2290e6f03e9c039
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-19 (Mon, 19 Nov 2012)

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

  Log Message:
  -----------
  [#1635] Delete unused action function


  Commit: edc833e2b49ccde474272f0676e61ec28d931561
      https://github.com/okfn/ckan/commit/edc833e2b49ccde474272f0676e61ec28d931561
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-22 (Thu, 22 Nov 2012)

  Changed paths:
    M README.rst
    M ckan/config/deployment.ini_tmpl
    M ckan/lib/app_globals.py
    M ckan/lib/cli.py
    M ckan/logic/action/get.py
    M ckan/logic/auth/get.py
    M ckan/public/base/css/main.css
    M ckan/public/base/less/masthead.less
    M ckan/templates/header.html
    M ckan/tests/functional/api/test_dashboard.py
    M ckan_deb/usr/lib/ckan/common.sh
    A doc/architecture.rst
    R doc/buildbot.rst
    R doc/coding-standards.rst
    A doc/contributing-docs.rst
    A doc/contributing.rst
    A doc/css-coding-standards.rst
    M doc/datastore-setup.rst
    R doc/domain-model-dataset.rst
    R doc/domain-model-resource.rst
    R doc/domain-model-task-status.rst
    R doc/domain-model.rst
    A doc/html-coding-standards.rst
    M doc/index.rst
    M doc/install-from-source.rst
    A doc/javascript-coding-standards.rst
    A doc/migration.rst
    A doc/python-coding-standards.rst

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: d9554bbafd2e87d2fb522af58e7533d7f3ef45cd
      https://github.com/okfn/ckan/commit/d9554bbafd2e87d2fb522af58e7533d7f3ef45cd
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-24 (Sat, 24 Nov 2012)

  Changed paths:
    M ckan/controllers/package.py

  Log Message:
  -----------
  renamed import helpers->h


  Commit: 48eca9982dc5accc3482b04000ed6a007eb12a9c
      https://github.com/okfn/ckan/commit/48eca9982dc5accc3482b04000ed6a007eb12a9c
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-24 (Sat, 24 Nov 2012)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/lib/helpers.py

  Log Message:
  -----------
  add_whether_on_same_domain on not private by convention any more


  Commit: 451571c2a9dd9a54302616d524d1173e90ec136a
      https://github.com/okfn/ckan/commit/451571c2a9dd9a54302616d524d1173e90ec136a
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-24 (Sat, 24 Nov 2012)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  speed up for compare domain code
It now runs only up to a point where it is sure that the domains are not the same which speeds up comparison in some cases.


  Commit: 3e8ce667c568cfe4168fda7dacddafe7f627bf3c
      https://github.com/okfn/ckan/commit/3e8ce667c568cfe4168fda7dacddafe7f627bf3c
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-24 (Sat, 24 Nov 2012)

  Changed paths:
    M ckan/controllers/package.py
    M ckan/lib/helpers.py

  Log Message:
  -----------
  add whether resource is on same domain is now side effect free


  Commit: 8f591abf350114915f230ca719e71945d68b481b
      https://github.com/okfn/ckan/commit/8f591abf350114915f230ca719e71945d68b481b
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-24 (Sat, 24 Nov 2012)

  Changed paths:
    M ckan/templates/tests/mock_json_resource_preview_template.html
    M ckan/templates/tests/mock_resource_preview_template.html

  Log Message:
  -----------
  fixed script tag in preview test mock


  Commit: f6a525db2b2755dc2081241d6d3130ee8f578172
      https://github.com/okfn/ckan/commit/f6a525db2b2755dc2081241d6d3130ee8f578172
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-24 (Sat, 24 Nov 2012)

  Changed paths:
    M ckan/tests/functional/test_preview_interface.py

  Log Message:
  -----------
  removed unneeded * import


  Commit: 915fc0d03acf57d304a46c9b3ba1a8004e26dee1
      https://github.com/okfn/ckan/commit/915fc0d03acf57d304a46c9b3ba1a8004e26dee1
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckan/tests/functional/test_preview_interface.py

  Log Message:
  -----------
  from import -> import as


  Commit: c3986a183a150e6da31d91849660e4eded19ea47
      https://github.com/okfn/ckan/commit/c3986a183a150e6da31d91849660e4eded19ea47
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py
    M ckanext/pdfpreview/plugin.py

  Log Message:
  -----------
  catch specific exception ImportError


  Commit: fef11b9f197ecdfa3ba36a0c72d2fd4375c7b43a
      https://github.com/okfn/ckan/commit/fef11b9f197ecdfa3ba36a0c72d2fd4375c7b43a
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py
    M ckanext/pdfpreview/plugin.py

  Log Message:
  -----------
  clean up import


  Commit: 1c028a143c626fb5d674a1015cf7ff1750d8b7a9
      https://github.com/okfn/ckan/commit/1c028a143c626fb5d674a1015cf7ff1750d8b7a9
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py
    M ckanext/pdfpreview/plugin.py

  Log Message:
  -----------
  use IConfigurable to get the config in preview plugins


  Commit: 793c2607199f2204307c12f83925257cd8eadc5e
      https://github.com/okfn/ckan/commit/793c2607199f2204307c12f83925257cd8eadc5e
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/plugin.py

  Log Message:
  -----------
  get c from toolkit instead of ckan.lib.base in plugin


  Commit: 3b1e6705408a624b084afd52bae4738a27c06506
      https://github.com/okfn/ckan/commit/3b1e6705408a624b084afd52bae4738a27c06506
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/tests/test_preview.py

  Log Message:
  -----------
  import as logic instead of l


  Commit: 4a59efde5f04e21ce5f285cc42f5cffb14aeeb1b
      https://github.com/okfn/ckan/commit/4a59efde5f04e21ce5f285cc42f5cffb14aeeb1b
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/theme/public/preview_json.js

  Log Message:
  -----------
  Json preview error is translatable


  Commit: b3c01b23cbbaa5ccfdc53b17cb7db168a7873a7d
      https://github.com/okfn/ckan/commit/b3c01b23cbbaa5ccfdc53b17cb7db168a7873a7d
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/theme/templates/json.html
    M ckanext/reclinepreview/theme/templates/recline.html

  Log Message:
  -----------
  simplified fanstatic resource inclusion in preview templates 


  Commit: 1a5803a2f7618155ca26d370b6efda7627a22884
      https://github.com/okfn/ckan/commit/1a5803a2f7618155ca26d370b6efda7627a22884
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  use ckan abort from base instead of pylons abort due to lucid bug


  Commit: 0eda5b4e87ca998fc8a7648554ffd7da79971951
      https://github.com/okfn/ckan/commit/0eda5b4e87ca998fc8a7648554ffd7da79971951
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  cleaner error message string building


  Commit: e8acdb80a0ec9f7e8e438ceef148713cc1f4ac6f
      https://github.com/okfn/ckan/commit/e8acdb80a0ec9f7e8e438ceef148713cc1f4ac6f
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/plugin.py

  Log Message:
  -----------
  import helpers directly instead from base


  Commit: f4823c5b5b9fc2e976fe70c65aae84cfa13fe523
      https://github.com/okfn/ckan/commit/f4823c5b5b9fc2e976fe70c65aae84cfa13fe523
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  clean up imports in resourceproxy test


  Commit: ccdb488e8cd1cbc9b9ffbf502711774e4e59efac
      https://github.com/okfn/ckan/commit/ccdb488e8cd1cbc9b9ffbf502711774e4e59efac
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/tests/file_server.py
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  static file server for tests without flask


  Commit: f53eebac652192f96f56511e78174849d1afce45
      https://github.com/okfn/ckan/commit/f53eebac652192f96f56511e78174849d1afce45
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl

  Log Message:
  -----------
  rewrote confusing comment


  Commit: 0795f79f016e77fdf3b8a143196b17a922996253
      https://github.com/okfn/ckan/commit/0795f79f016e77fdf3b8a143196b17a922996253
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  proxy_resource should have never been side effect free


  Commit: c0e6f6c706e23d6d6688d4d1b4acd98b7561d5e7
      https://github.com/okfn/ckan/commit/c0e6f6c706e23d6d6688d4d1b4acd98b7561d5e7
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckan/plugins/toolkit.py
    M doc/toolkit.rst

  Log Message:
  -----------
  Added url_for to toolkit


  Commit: 75d9d0e08b1008301e3f6f8ad1229d0c47e8038b
      https://github.com/okfn/ckan/commit/75d9d0e08b1008301e3f6f8ad1229d0c47e8038b
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/plugin.py

  Log Message:
  -----------
  Use url_for from toolkit in plugin


  Commit: d6452f11452297ef4885b2d5892151a4db8edce0
      https://github.com/okfn/ckan/commit/d6452f11452297ef4885b2d5892151a4db8edce0
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  Rewrote resource proxy code. 


  Commit: 59666fa3f8e7eee70def9dfa9a46bbc975dc9321
      https://github.com/okfn/ckan/commit/59666fa3f8e7eee70def9dfa9a46bbc975dc9321
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/pdfpreview/theme/public/resource.config
    M ckanext/pdfpreview/theme/templates/pdf.html

  Log Message:
  -----------
  Added missing locale.properties file to pdf preview


  Commit: 61326d1c43d1af4dc3cbce2ef696b38e081612df
      https://github.com/okfn/ckan/commit/61326d1c43d1af4dc3cbce2ef696b38e081612df
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/pdfpreview/theme/public/resource.config
    R ckanext/pdfpreview/theme/public/vendor/pdfviewer/locale.properties
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/locale.properties.js
    M ckanext/pdfpreview/theme/templates/pdf.html

  Log Message:
  -----------
  [hack] pretend that the properties file is a js file so that we can get it via fanstatic


  Commit: 4676d4dddd9f0b102eff665d3dc9b4d89b4f1cb6
      https://github.com/okfn/ckan/commit/4676d4dddd9f0b102eff665d3dc9b4d89b4f1cb6
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py
    M ckanext/resourceproxy/tests/file_server.py
    M ckanext/resourceproxy/tests/test_proxy.py

  Log Message:
  -----------
  Test large files in resource proxy


  Commit: 2e611f09801c3baf5e9ce32b6140ef7b7324ce2f
      https://github.com/okfn/ckan/commit/2e611f09801c3baf5e9ce32b6140ef7b7324ce2f
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/theme/public/preview_json.js

  Log Message:
  -----------
  fix spelling mistake


  Commit: 097cb915fc73a937b7f0fe809755a16983b736ba
      https://github.com/okfn/ckan/commit/097cb915fc73a937b7f0fe809755a16983b736ba
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckan/controllers/user.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/get.py
    M ckan/logic/auth/publisher/get.py
    M ckan/logic/auth/update.py
    M ckan/tests/functional/api/test_dashboard.py

  Log Message:
  -----------
  [#1635] Rename dashboard_mark_activities_old

Change long name dashboard_mark_all_new_activities_as_old ->
dashboard_mark_activities_old, also move it from get.py to update.py where it
belongs.


  Commit: 47580bc1443e93f393d82d351c016ea16ab6a9b7
      https://github.com/okfn/ckan/commit/47580bc1443e93f393d82d351c016ea16ab6a9b7
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-25 (Sun, 25 Nov 2012)

  Changed paths:
    M ckanext/resourceproxy/controller.py

  Log Message:
  -----------
  Removed note on pull request because it has been rejected


  Commit: d03f0a4c0853155a020c70dcf57398ce843171a2
      https://github.com/okfn/ckan/commit/d03f0a4c0853155a020c70dcf57398ce843171a2
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-27 (Tue, 27 Nov 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py

  Log Message:
  -----------
  [#1635] Remove two unwanted action functions

Remove dashboard_email_notification_last_sent and
dashboard_update_email_notification_last_sent logic functions, instead access
the model functions  directly from the lib.

We're not supposed to access the model from the lib, but I don't want to expose
these function as action functions either because they're only needed by this
one lib, I don't want to expose them in the API.


  Commit: 2ea41a7725810d76313f46db1d027939d5b36c7c
      https://github.com/okfn/ckan/commit/2ea41a7725810d76313f46db1d027939d5b36c7c
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-27 (Tue, 27 Nov 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/model/dashboard.py

  Log Message:
  -----------
  [#1635] Shorten a couple of really long names


  Commit: 12cea9b6f625ac0134ecee4e06532afaab360283
      https://github.com/okfn/ckan/commit/12cea9b6f625ac0134ecee4e06532afaab360283
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-27 (Tue, 27 Nov 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/model/dashboard.py

  Log Message:
  -----------
  [#1635] Remove unnecessary @classmethods from dashboard model

This moves some logic out of the dashboard model and into the lib, which is
probably where it belongs as that's where the rest of the relevant logic is,
and overall this makes the code shorter as well.


  Commit: 6d483bb8a47b8cb889e28c6d46f168cc001d7b15
      https://github.com/okfn/ckan/commit/6d483bb8a47b8cb889e28c6d46f168cc001d7b15
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-27 (Tue, 27 Nov 2012)

  Changed paths:
    M ckan/lib/helpers.py
    M ckanext/resourceproxy/plugin.py

  Log Message:
  -----------
  removed unnecessary toolkit import


  Commit: 8e48daf7545353754346f3e9539abe3f93b4b314
      https://github.com/okfn/ckan/commit/8e48daf7545353754346f3e9539abe3f93b4b314
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-27 (Tue, 27 Nov 2012)

  Changed paths:
    M ckan/config/environment.py
    M ckan/lib/helpers.py

  Log Message:
  -----------
  moved previewable types to os.environ


  Commit: f63a00c13d4296d315044a04c15065192ac9c26c
      https://github.com/okfn/ckan/commit/f63a00c13d4296d315044a04c15065192ac9c26c
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Small email notifications tests refactoring

Save some lines


  Commit: 9bc3875d7f77ab5a982f0919d7e538141d168147
      https://github.com/okfn/ckan/commit/9bc3875d7f77ab5a982f0919d7e538141d168147
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Don't send emails for activities already seen on dashboard


  Commit: 197fdf413d707ca3fedbebb105552a15a3d6c193
      https://github.com/okfn/ckan/commit/197fdf413d707ca3fedbebb105552a15a3d6c193
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M ckan/config/routing.py
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/logic/action/get.py
    M ckan/model/activity.py
    M ckan/model/group.py
    A ckan/templates/package/activity.html
    M ckan/templates/package/read.html
    M ckan/templates/user/dashboard.html
    M ckan/tests/functional/api/__init__.py
    M ckan/tests/functional/api/test_activity.py
    M ckan/tests/functional/api/test_dashboard.py
    M ckan/tests/functional/api/test_follow.py
    M ckan/tests/functional/test_group.py
    M ckan/tests/functional/test_user.py
    M ckan/tests/lib/test_dictization_schema.py
    M ckan/tests/models/test_group.py
    M doc/contributing.rst
    A doc/frontend-testing.rst
    M doc/python-coding-standards.rst

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: 0cdb0d3aeacebdff4159b528a9d9ad2be202e6fc
      https://github.com/okfn/ckan/commit/0cdb0d3aeacebdff4159b528a9d9ad2be202e6fc
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M ckan/model/activity.py
    M pip-requirements-test.txt
    M pip-requirements.txt

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: 48a5d1fc15982f3c3d52854114e150f6c8fec3c9
      https://github.com/okfn/ckan/commit/48a5d1fc15982f3c3d52854114e150f6c8fec3c9
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M ckan/tests/mock_publisher_auth.py

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: a22275088a8f15a4634d579ea91415cb375fce66
      https://github.com/okfn/ckan/commit/a22275088a8f15a4634d579ea91415cb375fce66
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M ckan/logic/auth/publisher/get.py

  Log Message:
  -----------
  [#1635] Fix a broken import


  Commit: c1600048d7fbc854dd93493f608b01487d7aab7d
      https://github.com/okfn/ckan/commit/c1600048d7fbc854dd93493f608b01487d7aab7d
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M ckan/tests/lib/test_dictization.py

  Log Message:
  -----------
  [#1635] Update an outdated test


  Commit: 39cdfde297076de5df8fbc6528284948f0f8c791
      https://github.com/okfn/ckan/commit/39cdfde297076de5df8fbc6528284948f0f8c791
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    M ckan/model/user.py
    M ckan/tests/lib/test_dictization.py

  Log Message:
  -----------
  [#1635] Remove last_activity_streams_notification_email column from user model.

This got committed accidentally in commit
a678e0e27efb1aaea8fd11bc10f0cb5db709e3d7, should not have been committed, I
went with email_last_sent column on the Dashboard model instead.


  Commit: cd57dd3b67a85ef0ec00b3d4e5fa8622b1afea66
      https://github.com/okfn/ckan/commit/cd57dd3b67a85ef0ec00b3d4e5fa8622b1afea66
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-28 (Wed, 28 Nov 2012)

  Changed paths:
    A ckan/migration/versions/063_add_email_last_sent_column.py

  Log Message:
  -----------
  [#1635] Add email_last_sent migration script


  Commit: 913ce71812ae165a67c09292debe0cbb6a46a843
      https://github.com/okfn/ckan/commit/913ce71812ae165a67c09292debe0cbb6a46a843
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-29 (Thu, 29 Nov 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/logic/schema.py
    M ckan/model/user.py
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Add email notifications user preference

Don't send email notifications if the user has them turned off in her
preferences.


  Commit: c4e349c405a716367ae67dd75567ac3f48b0bc82
      https://github.com/okfn/ckan/commit/c4e349c405a716367ae67dd75567ac3f48b0bc82
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-29 (Thu, 29 Nov 2012)

  Changed paths:
    A ckan/migration/versions/064_add_email_notifications_preference.py

  Log Message:
  -----------
  [#1635] Add email notifications user preference migration script


  Commit: f5fac45ff9bede1217b2283c68a51d0904b6d31d
      https://github.com/okfn/ckan/commit/f5fac45ff9bede1217b2283c68a51d0904b6d31d
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-29 (Thu, 29 Nov 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Don't send old emails when user enables notifications

After a user enables her email notifications preference, don't send her
emails about old activities that happened before she enabled it (even if
those activities are still marked as new on her dashboard).

This prevents the user from getting a flood of email notifications as
soon as she enables the preference (currently she would only get one
email anyway as all activities are always packed into one digest email,
but if that changes in future this safeguard might come in handy)


  Commit: 0ec7ef80dab6e8262e44f337856d4be70f5c3f0e
      https://github.com/okfn/ckan/commit/0ec7ef80dab6e8262e44f337856d4be70f5c3f0e
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-29 (Thu, 29 Nov 2012)

  Changed paths:
    M ckan/tests/__init__.py
    M ckan/tests/functional/api/test_follow.py

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: 35cb12bb65bc0b353c99eee8ea04d9da3d757f09
      https://github.com/okfn/ckan/commit/35cb12bb65bc0b353c99eee8ea04d9da3d757f09
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-11-29 (Thu, 29 Nov 2012)

  Changed paths:
    M ckan/tests/lib/test_dictization.py

  Log Message:
  -----------
  [#1635] Update an outdated test


  Commit: 9a784f4c3f9e4d8f1b85de86ba0c64e8b2d5803c
      https://github.com/okfn/ckan/commit/9a784f4c3f9e4d8f1b85de86ba0c64e8b2d5803c
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-30 (Fri, 30 Nov 2012)

  Changed paths:
    M ckan/config/environment.py
    M ckan/lib/helpers.py

  Log Message:
  -----------
  Revert "moved previewable types to os.environ"

This reverts commit 8e48daf7545353754346f3e9539abe3f93b4b314.


  Commit: d9bcdae900e3110c8805403eb35fd46a29e9ea43
      https://github.com/okfn/ckan/commit/d9bcdae900e3110c8805403eb35fd46a29e9ea43
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-30 (Fri, 30 Nov 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/lib/helpers.py

  Log Message:
  -----------
  get previewable file types from config file


  Commit: 0f20ff0d2295bb252c46d7a9cec6232971285c5e
      https://github.com/okfn/ckan/commit/0f20ff0d2295bb252c46d7a9cec6232971285c5e
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-30 (Fri, 30 Nov 2012)

  Changed paths:
    M ckanext/jsonpreview/tests/test_preview.py

  Log Message:
  -----------
  test whether jsonpreview embed is working


  Commit: 50ca34fa76ebb669a1884cd9fff921365ab9b770
      https://github.com/okfn/ckan/commit/50ca34fa76ebb669a1884cd9fff921365ab9b770
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-30 (Fri, 30 Nov 2012)

  Changed paths:
    M ckan/lib/helpers.py

  Log Message:
  -----------
  add package to can_preview's data_dict


  Commit: c6d5389be492a829750f9fd49695b92e8cd889ae
      https://github.com/okfn/ckan/commit/c6d5389be492a829750f9fd49695b92e8cd889ae
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-30 (Fri, 30 Nov 2012)

  Changed paths:
    M ckan/tests/functional/test_preview_interface.py

  Log Message:
  -----------
  test whether embed code works and whether data_dict is complete


  Commit: e000e0b859ba8cbce7b2aa968f69e573f6e41654
      https://github.com/okfn/ckan/commit/e000e0b859ba8cbce7b2aa968f69e573f6e41654
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-11-30 (Fri, 30 Nov 2012)

  Changed paths:
    M README.rst
    M ckan/config/deployment.ini_tmpl
    M ckan/config/routing.py
    M ckan/controllers/group.py
    M ckan/controllers/package.py
    M ckan/controllers/user.py
    M ckan/lib/activity_streams.py
    M ckan/lib/app_globals.py
    M ckan/lib/base.py
    M ckan/lib/cli.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/logic/action/get.py
    M ckan/logic/auth/get.py
    M ckan/logic/auth/publisher/get.py
    A ckan/migration/versions/062_add_dashboard_table.py
    M ckan/model/__init__.py
    M ckan/model/activity.py
    A ckan/model/dashboard.py
    M ckan/model/group.py
    M ckan/public/base/css/main.css
    A ckan/public/base/javascript/modules/dashboard.js
    M ckan/public/base/javascript/resource.config
    M ckan/public/base/less/activity.less
    M ckan/public/base/less/ckan.less
    A ckan/public/base/less/dashboard.less
    M ckan/public/base/less/footer.less
    M ckan/public/base/less/iehacks.less
    M ckan/public/base/less/masthead.less
    M ckan/templates/header.html
    A ckan/templates/package/activity.html
    M ckan/templates/package/read.html
    M ckan/templates/snippets/activity_item.html
    M ckan/templates/user/dashboard.html
    M ckan/tests/__init__.py
    M ckan/tests/functional/api/__init__.py
    M ckan/tests/functional/api/test_activity.py
    A ckan/tests/functional/api/test_dashboard.py
    M ckan/tests/functional/api/test_follow.py
    M ckan/tests/functional/test_group.py
    M ckan/tests/functional/test_user.py
    M ckan/tests/lib/test_dictization_schema.py
    M ckan/tests/mock_publisher_auth.py
    M ckan/tests/models/test_group.py
    M ckan_deb/usr/lib/ckan/common.sh
    A doc/architecture.rst
    R doc/buildbot.rst
    R doc/coding-standards.rst
    A doc/contributing-docs.rst
    A doc/contributing.rst
    A doc/css-coding-standards.rst
    M doc/datastore-setup.rst
    R doc/domain-model-dataset.rst
    R doc/domain-model-resource.rst
    R doc/domain-model-task-status.rst
    R doc/domain-model.rst
    A doc/frontend-testing.rst
    A doc/html-coding-standards.rst
    M doc/index.rst
    M doc/install-from-source.rst
    A doc/javascript-coding-standards.rst
    A doc/migration.rst
    A doc/python-coding-standards.rst
    M pip-requirements-test.txt
    M pip-requirements.txt

  Log Message:
  -----------
  Merge branch 'master' into 2961-pluggable-previews

Conflicts:
	ckan/config/deployment.ini_tmpl


  Commit: 72c309effce4b28d0444b8b563d2f7bf6b3b4b21
      https://github.com/okfn/ckan/commit/72c309effce4b28d0444b8b563d2f7bf6b3b4b21
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-12-03 (Mon, 03 Dec 2012)

  Changed paths:
    M ckan/controllers/package.py
    A ckan/lib/datapreview.py
    M ckan/lib/helpers.py

  Log Message:
  -----------
  Moved data previewer code to separate module


  Commit: ed221a2e52d3ee317a0f0e3b955c7bfbffa11286
      https://github.com/okfn/ckan/commit/ed221a2e52d3ee317a0f0e3b955c7bfbffa11286
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-03 (Mon, 03 Dec 2012)

  Changed paths:
    M ckan/lib/mailer.py

  Log Message:
  -----------
  [#1635] Remove pylons.g from lib/mailer.py

Don't use pylons.g in ckan/lib/mailer.py, use pylons.config instead.
This allows mailer.py to be used from outside of a Pylons request thread
(where pylons.g has not been registered for the thread), e.g. from a
paster command.


  Commit: 0d9e6274991393c28e3bbe9b930a0551dd627ae7
      https://github.com/okfn/ckan/commit/0d9e6274991393c28e3bbe9b930a0551dd627ae7
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-03 (Mon, 03 Dec 2012)

  Changed paths:
    M ckan/lib/cli.py
    M ckan/lib/email_notifications.py
    M setup.py

  Log Message:
  -----------
  - Add EmailNotificationsCommand in cli.py and setup.py

- Move an import in email_notifications.py into a function. This seems to be
  necessary otherwise the paster command crashes.


  Commit: 100bf3166fae97154887126417a6742185aaa7bd
      https://github.com/okfn/ckan/commit/100bf3166fae97154887126417a6742185aaa7bd
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-03 (Mon, 03 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py

  Log Message:
  -----------
  [#1635] Fix a couple of comments


  Commit: 7f9c2358bb1ed8d03f08060a0799a88adbc24afb
      https://github.com/okfn/ckan/commit/7f9c2358bb1ed8d03f08060a0799a88adbc24afb
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-03 (Mon, 03 Dec 2012)

  Changed paths:
    M ckan/controllers/home.py
    M ckan/lib/helpers.py

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: 8d9e230d2a01491d60914ac194c7a9a06ee42e14
      https://github.com/okfn/ckan/commit/8d9e230d2a01491d60914ac194c7a9a06ee42e14
  Author: Dominik Moritz <domoritz at gmail.com>
  Date:   2012-12-03 (Mon, 03 Dec 2012)

  Changed paths:
    A ckanext/resourceproxy/tests/static/huge.json

  Log Message:
  -----------
  Add missing static file


  Commit: 794d61bf2159ed07b7075faf126fac3348325c39
      https://github.com/okfn/ckan/commit/794d61bf2159ed07b7075faf126fac3348325c39
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-04 (Tue, 04 Dec 2012)

  Changed paths:
    M ckan/lib/mailer.py

  Log Message:
  -----------
  [#1635] Improve CKAN's SMTP support

Rename config option smtp_server -> smtp.server, add options smtp.starttls,
smtp.user and smtp.password, refactor the email-sending code in
mailer.py to (optionally) support STARTTLS and user and password
authentication. This means CKAN can now send emails using gmail's SMTP
server with a gmail username and password, for example. Sending mail
using a local sendmail process with no STARTTLS, username, or password
should still work as before.


  Commit: 44abd17417429aca106993f78702d601e87c799b
      https://github.com/okfn/ckan/commit/44abd17417429aca106993f78702d601e87c799b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-04 (Tue, 04 Dec 2012)

  Changed paths:
    M ckan/lib/mailer.py
    M ckan/tests/lib/test_mailer.py
    M test-core.ini

  Log Message:
  -----------
  [#1635] Rename config option ckan.mail_from -> smtp.mail_from

This makes it consistent with the other smtp options it is used with.


  Commit: bb86b7ba5a054a9c87a837f86040d53bc22ef459
      https://github.com/okfn/ckan/commit/bb86b7ba5a054a9c87a837f86040d53bc22ef459
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-04 (Tue, 04 Dec 2012)

  Changed paths:
    M ckan/lib/mailer.py
    M ckan/tests/functional/test_user.py
    M ckan/tests/lib/test_mailer.py
    M ckan/tests/misc/test_mock_mail_server.py
    M ckan/tests/mock_mail_server.py
    M test-core.ini

  Log Message:
  -----------
  [#1635] Rename test_smtp_server -> smtp.test_server

Rename config setting test_smtp_server -> smtp.test_server, making it
consistent with the other smtp options it is used with.


  Commit: 4cb027704676ef81fd632a0e997d835f13e3bdd2
      https://github.com/okfn/ckan/commit/4cb027704676ef81fd632a0e997d835f13e3bdd2
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-04 (Tue, 04 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl

  Log Message:
  -----------
  [#1635] Document new smtp options

Add docs and examples for new smtp options to deployment.ini_tmpl


  Commit: b29c28f865f5ebd71298089d747b917530c3c217
      https://github.com/okfn/ckan/commit/b29c28f865f5ebd71298089d747b917530c3c217
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-04 (Tue, 04 Dec 2012)

  Changed paths:
    M ckan/lib/mailer.py

  Log Message:
  -----------
  [#1635] Fix handling of smtp.starttls option


  Commit: ce7041fb848909bc898f5343a70d598b0535875d
      https://github.com/okfn/ckan/commit/ce7041fb848909bc898f5343a70d598b0535875d
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-04 (Tue, 04 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py

  Log Message:
  -----------
  [#1635] Fix repeat email sending

The `since` date wasn't being saved after sending an email to a user,
resulting in repeat emails being sent about the same activity.

There is a test for this, but for some reason it was working in the
tests, just not in production. Don't know why. This seems to fix it in
production.


  Commit: e8c1cdb85857b3b53eceddf4caa962407bbdfe7e
      https://github.com/okfn/ckan/commit/e8c1cdb85857b3b53eceddf4caa962407bbdfe7e
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    M ckan/lib/cli.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/publisher/update.py
    M ckan/logic/auth/update.py
    M setup.py

  Log Message:
  -----------
  [#1635] Change email notifications paster command to an API function

Move the send-email-notifications paster command added in commit
0d9e6274991393c28e3bbe9b930a0551dd627ae7 to a logic action function that only
sysadmins are authorised to use.

I was running into too many problems with the paster command because it runs
outside of a Pylons request thread so various Pylons objects used throughout
CKAN are not registered.

This way, the command can still be called from cron via:

    echo '{}' | paster post development.ini /api/action/send_email_notifications

this simulates an HTTP request, so all the Pylons objects are registered for
the thread. The `echo '{}' | ` part is unfortunately necessary because the CKAN
API still requires any empty data dict to be posted when the function being
called doesn't take any arguments.

The action function checks whether it is being run via paster and if so, skips
the authorisation check. This just makes it simpler to use as it means you
don't have to POST a sysadmin's API key when calling the command via paster.

This makes the changes to ckan/lib/mailer.py that I did in commit
ed221a2e52d3ee317a0f0e3b955c7bfbffa11286 unnecessary, but I'm leaving them in
because I don't think they do any harm and they may prove useful one day.

This means that the email notifications tests can become API tests now, and I
should add some tests for the auth of the new API function.


  Commit: 9c797ac4011159e7e8fdb3a0a7ae3338d0cc50f2
      https://github.com/okfn/ckan/commit/9c797ac4011159e7e8fdb3a0a7ae3338d0cc50f2
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Factor out unneeded post() function

test_email_notifications.py no longer needs its own post() function as
it can use ckan.tests.call_action_api()


  Commit: bcf6d8943d078b9950d2919ec20fc631addddf64
      https://github.com/okfn/ckan/commit/bcf6d8943d078b9950d2919ec20fc631addddf64
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Use send_email_notifications API in tests

Call the new send_email_notifications API endpoint in the tests, rather
than calling the lib function directly.


  Commit: c770f11474539a25c2f370b82458a6dbd481ef1e
      https://github.com/okfn/ckan/commit/c770f11474539a25c2f370b82458a6dbd481ef1e
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    A ckan/tests/functional/api/test_email_notifications.py
    R ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Move email notification tests into api dir

The tests now test everything via the API, so move the file into
tests/functional/api/ with the other API tests


  Commit: aa48871d227c3514ada848907ff472edbec801e9
      https://github.com/okfn/ckan/commit/aa48871d227c3514ada848907ff472edbec801e9
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    M ckan/tests/functional/api/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Add auth tests for email notifications

Add a couple of tests to make sure that users who are not sysadmins
cannot call the send_email_notifications API.


  Commit: b998ab417f4879653662d0bd7b43f2bb68457f5b
      https://github.com/okfn/ckan/commit/b998ab417f4879653662d0bd7b43f2bb68457f5b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    A ckan/templates/activity_streams/activity_stream_email_notifications.text

  Log Message:
  -----------
  [#1635] Improve activity stream notification email contents


  Commit: 6d1c521117169380593d5a0114bebf4ea3b0b4ca
      https://github.com/okfn/ckan/commit/6d1c521117169380593d5a0114bebf4ea3b0b4ca
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    M ckan/tests/functional/api/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Update a couple of tests

I'm giving up on testing the email body, would need to mime decode it


  Commit: d54b1f622f4f70056d991734f553b3dd0c6a23f7
      https://github.com/okfn/ckan/commit/d54b1f622f4f70056d991734f553b3dd0c6a23f7
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

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

  Log Message:
  -----------
  [#1635] Add UI for email notifications user preference


  Commit: ab675c967793e06de01ba470e631af475f91bf04
      https://github.com/okfn/ckan/commit/ab675c967793e06de01ba470e631af475f91bf04
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/controllers/user.py
    M ckan/logic/action/update.py
    M ckan/templates/user/edit_user_form.html

  Log Message:
  -----------
  [#1635] Add ckan.email_notifications setting


  Commit: 50d12474bbd155178f9a63989be4630f51a71d3b
      https://github.com/okfn/ckan/commit/50d12474bbd155178f9a63989be4630f51a71d3b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-05 (Wed, 05 Dec 2012)

  Changed paths:
    M test-core.ini

  Log Message:
  -----------
  [#1635] Add ckan.email_notifications to test-core.ini

Make the tests pass again


  Commit: 109dcbb975a240f5a6f39d82b2226c5e786601fc
      https://github.com/okfn/ckan/commit/109dcbb975a240f5a6f39d82b2226c5e786601fc
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M ckan/logic/action/update.py
    M ckan/tests/functional/api/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Add tests for ckan.email_notifications setting


  Commit: ac39450f964b08cbfb5c012ba804794279163c01
      https://github.com/okfn/ckan/commit/ac39450f964b08cbfb5c012ba804794279163c01
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/lib/email_notifications.py
    M ckan/lib/helpers.py
    M ckan/tests/functional/api/test_email_notifications.py
    M ckan/tests/lib/test_helpers.py

  Log Message:
  -----------
  [#1635] Add email_notifications_since setting


  Commit: a5b3ad9940d2eb054d7cbd32990bf27e71c6e44b
      https://github.com/okfn/ckan/commit/a5b3ad9940d2eb054d7cbd32990bf27e71c6e44b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M ckan/config/solr/CHANGELOG.txt
    A ckan/config/solr/schema-2.0.xml
    M ckan/lib/search/__init__.py
    M ckan/lib/search/index.py
    M ckan/lib/search/query.py
    M ckan/tests/functional/test_search.py
    M ckan/tests/lib/test_solr_package_search.py
    M ckan/tests/lib/test_solr_package_search_synchronous_update.py
    M ckan_deb/usr/lib/ckan/common.sh
    M ckanext/multilingual/solr/schema.xml
    M doc/configuration.rst

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: 02cda1c9216ea50682a1c5cd0697bea03c24abc4
      https://github.com/okfn/ckan/commit/02cda1c9216ea50682a1c5cd0697bea03c24abc4
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-11 (Tue, 11 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl

  Log Message:
  -----------
  [#1635] Typo


  Commit: 5e4669d8e8c2aa26ca9dfb17278bc85bab2f366e
      https://github.com/okfn/ckan/commit/5e4669d8e8c2aa26ca9dfb17278bc85bab2f366e
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-11 (Tue, 11 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/lib/helpers.py
    A ckan/tests/lib/test_email_notifications.py
    M ckan/tests/lib/test_helpers.py

  Log Message:
  -----------
  [#1635] Move string_to_timedelta() out of helpers

This is not intended to be a template helper function so doesn't belong
in ckan/lib/helpers.py. Just put it in email_notifications, since that's
the only module that uses it.


  Commit: 3b76185af30d7ff5d17e4500efe3b32d9b9d41de
      https://github.com/okfn/ckan/commit/3b76185af30d7ff5d17e4500efe3b32d9b9d41de
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-11 (Tue, 11 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Handle "1 day" in string_to_timedelta()

Handle strings like "1 day" or "1 day, 3:23:46" etc. in the
string_to_timedelta() function used to parse the
ckan.email_notifications_since config setting.


  Commit: 37b6abf674218a40e674b5fd97514315541a5ca0
      https://github.com/okfn/ckan/commit/37b6abf674218a40e674b5fd97514315541a5ca0
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-11 (Tue, 11 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Handle variable whitespace in string_to_timedelta()

Handle multiple spaces, tabs etc. instead of just single space between
words in strings parsed by string_to_timedelta().


  Commit: 710cb80662ffe06d01c2bb0e9bfe9d32374dd1a7
      https://github.com/okfn/ckan/commit/710cb80662ffe06d01c2bb0e9bfe9d32374dd1a7
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-11 (Tue, 11 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py

  Log Message:
  -----------
  [#1635] Remove an unneeded import

Now that string_to_timedelta() has been moved into lib, it no longer
needs an inline import logic.


  Commit: 0c724817eca50d711c58889909c80d4fb5065b3a
      https://github.com/okfn/ckan/commit/0c724817eca50d711c58889909c80d4fb5065b3a
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-11 (Tue, 11 Dec 2012)

  Changed paths:
    M ckan/lib/mailer.py

  Log Message:
  -----------
  Revert "[#1635] Remove pylons.g from lib/mailer.py"

This reverts commit ed221a2e52d3ee317a0f0e3b955c7bfbffa11286. The
changes are no longer necessary now that send-email-notifications is no
longer a paster command, and ckan is better off without these changes
because g.site_title etc. can be database-defined whereas
config.get('site_title') cannot.


  Commit: 3bb3310a3c91cfec8e2ff524e05968ac55224ee4
      https://github.com/okfn/ckan/commit/3bb3310a3c91cfec8e2ff524e05968ac55224ee4
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-11 (Tue, 11 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/config/routing.py
    M ckan/controllers/group.py
    M ckan/controllers/home.py
    M ckan/controllers/package.py
    M ckan/controllers/user.py
    M ckan/lib/activity_streams.py
    M ckan/lib/helpers.py
    M ckan/logic/action/get.py
    M ckan/model/activity.py
    M ckan/plugins/interfaces.py
    A ckan/public/base/javascript/modules/activity-stream.js
    M ckan/public/base/javascript/resource.config
    M ckan/public/base/less/activity.less
    M ckan/public/base/less/forms.less
    M ckan/templates/activity_streams/activity_stream_items.html
    A ckan/templates/package/activity_stream.html
    M ckan/tests/functional/test_package.py
    M test-core.ini

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams

Conflicts:
	test-core.ini


  Commit: 8fce85e74cf009aefa0be3d49c7b0948b7f88565
      https://github.com/okfn/ckan/commit/8fce85e74cf009aefa0be3d49c7b0948b7f88565
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-11 (Tue, 11 Dec 2012)

  Changed paths:
    M ckan/templates/activity_streams/activity_stream_email_notifications.text

  Log Message:
  -----------
  [#1635] Fix links in email notifications

h.url_for() doesn't seem to work when a request is made via a
`paster post...` command (it returns 'localhost' links). Use g.site_url
instead.


  Commit: c75784a7f2a1ba8bebe73b863012a0723015317b
      https://github.com/okfn/ckan/commit/c75784a7f2a1ba8bebe73b863012a0723015317b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M ckan/templates/activity_streams/activity_stream_email_notifications.text

  Log Message:
  -----------
  [#1635] Make email template translatable


  Commit: 7bdc62043673bf79a382e52150ef465663cc2624
      https://github.com/okfn/ckan/commit/7bdc62043673bf79a382e52150ef465663cc2624
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M ckan/controllers/user.py

  Log Message:
  -----------
  [#1635] Change a #FIXME to a #MOAN


  Commit: 16ddee47b187468dbce4b813b87b5d99ed9e89b9
      https://github.com/okfn/ckan/commit/16ddee47b187468dbce4b813b87b5d99ed9e89b9
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M ckan/i18n/check_po_files.py
    M ckan/lib/app_globals.py
    M ckan/lib/base.py
    M ckan/lib/cli.py
    M ckan/templates/base.html
    M ckan/templates/footer.html
    M ckan/templates/header.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/search.html
    M ckan/templates/page.html

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: 7868c98dc4ab2519916c46b881eaa21a9b1f29f4
      https://github.com/okfn/ckan/commit/7868c98dc4ab2519916c46b881eaa21a9b1f29f4
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-14 (Fri, 14 Dec 2012)

  Changed paths:
    M ckan/authz.py
    M ckan/config/environment.py
    M ckan/config/routing.py
    M ckan/controllers/admin.py
    M ckan/controllers/api.py
    M ckan/controllers/group.py
    R ckan/controllers/group_formalchemy.py
    A ckan/controllers/organization.py
    M ckan/controllers/package.py
    R ckan/controllers/package_formalchemy.py
    M ckan/controllers/related.py
    M ckan/controllers/storage.py
    M ckan/controllers/user.py
    R ckan/forms/__init__.py
    R ckan/forms/authorization_group.py
    R ckan/forms/authz.py
    R ckan/forms/builder.py
    R ckan/forms/common.py
    R ckan/forms/group.py
    R ckan/forms/package.py
    R ckan/forms/package_dict.py
    R ckan/forms/registry.py
    M ckan/lib/activity_streams.py
    M ckan/lib/app_globals.py
    M ckan/lib/base.py
    M ckan/lib/cli.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/formatters.py
    M ckan/lib/helpers.py
    M ckan/lib/jinja_extensions.py
    M ckan/lib/plugins.py
    M ckan/lib/search/index.py
    M ckan/logic/__init__.py
    M ckan/logic/action/create.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/create.py
    M ckan/logic/auth/delete.py
    M ckan/logic/auth/get.py
    R ckan/logic/auth/publisher/__init__.py
    R ckan/logic/auth/publisher/create.py
    R ckan/logic/auth/publisher/delete.py
    R ckan/logic/auth/publisher/get.py
    R ckan/logic/auth/publisher/update.py
    M ckan/logic/auth/update.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    R ckan/migration/versions/063_add_email_last_sent_column.py
    A ckan/migration/versions/063_org_changes.py
    A ckan/migration/versions/064_add_email_last_sent_column.py
    R ckan/migration/versions/064_add_email_notifications_preference.py
    A ckan/migration/versions/065_add_email_notifications_preference.py
    M ckan/model/__init__.py
    M ckan/model/group.py
    M ckan/model/package.py
    M ckan/model/user.py
    M ckan/new_authz.py
    M ckan/plugins/interfaces.py
    M ckan/public/base/css/fuchsia.css
    M ckan/public/base/css/fuchsia.min.css
    M ckan/public/base/css/green.css
    M ckan/public/base/css/green.min.css
    M ckan/public/base/css/main.css
    M ckan/public/base/css/main.min.css
    M ckan/public/base/css/maroon.css
    M ckan/public/base/css/maroon.min.css
    M ckan/public/base/css/red.css
    M ckan/public/base/css/red.min.css
    M ckan/public/base/datapreview/css/recline.min.css
    M ckan/public/base/datapreview/preview_recline.min.js
    A ckan/public/base/datapreview/vendor/flot/0.7/excanvas.min.js
    A ckan/public/base/datapreview/vendor/flot/0.7/jquery.flot.min.js
    A ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.ie.min.css
    A ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.min.css
    A ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.min.css
    A ckan/public/base/datapreview/vendor/leaflet.markercluster/leaflet.markercluster.min.js
    A ckan/public/base/datapreview/vendor/leaflet/0.3.1/leaflet.ie.min.css
    A ckan/public/base/datapreview/vendor/leaflet/0.3.1/leaflet.min.css
    A ckan/public/base/datapreview/vendor/leaflet/0.3.1/leaflet.min.js
    A ckan/public/base/datapreview/vendor/leaflet/0.4.4/leaflet-src.min.js
    M ckan/public/base/datapreview/vendor/leaflet/leaflet.min.css
    M ckan/public/base/datapreview/vendor/leaflet/leaflet.min.js
    M ckan/public/base/datapreview/vendor/pdfjs/pdf.min.js
    M ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.css
    M ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.js
    M ckan/public/base/datapreview/vendor/recline/css/recline.min.css
    M ckan/public/base/datapreview/vendor/recline/recline.min.js
    A ckan/public/base/images/editing.png
    A ckan/public/base/images/placeholder-organization.png
    M ckan/public/base/javascript/client.js
    M ckan/public/base/javascript/client.min.js
    M ckan/public/base/javascript/module.min.js
    A ckan/public/base/javascript/modules/dashboard.min.js
    M ckan/public/base/javascript/modules/data-viewer.min.js
    A ckan/public/base/javascript/modules/follow.min.js
    M ckan/public/base/javascript/modules/popover-context.js
    A ckan/public/base/javascript/modules/popover-context.min.js
    M ckan/public/base/less/activity.less
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/group.less
    M ckan/public/base/less/masthead.less
    M ckan/public/base/less/profile.less
    M ckan/public/base/less/variables.less
    A ckan/public/base/vendor/bootstrap/js/bootstrap-dropdown.min.js
    A ckan/public/base/vendor/bootstrap/js/bootstrap-popover.min.js
    A ckan/public/base/vendor/bootstrap/js/bootstrap-tooltip.min.js
    M ckan/templates/activity_streams/activity_stream_items.html
    R ckan/templates/ajax_snippets/popover-context-dataset.html
    R ckan/templates/ajax_snippets/popover-context-group.html
    R ckan/templates/ajax_snippets/popover-context-user.html
    A ckan/templates/ajax_snippets/popover_context_dataset.html
    A ckan/templates/ajax_snippets/popover_context_group.html
    A ckan/templates/ajax_snippets/popover_context_user.html
    M ckan/templates/development/primer.html
    A ckan/templates/development/snippets/page_header.html
    A ckan/templates/group/confirm_delete_member.html
    M ckan/templates/group/index.html
    A ckan/templates/group/member_new.html
    A ckan/templates/group/members.html
    M ckan/templates/group/read.html
    A ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_form.html
    M ckan/templates/header.html
    A ckan/templates/organization/about.html
    A ckan/templates/organization/admins.html
    A ckan/templates/organization/base_form_page.html
    A ckan/templates/organization/confirm_delete.html
    A ckan/templates/organization/confirm_delete_member.html
    A ckan/templates/organization/edit.html
    A ckan/templates/organization/edit_base.html
    A ckan/templates/organization/index.html
    A ckan/templates/organization/member_new.html
    A ckan/templates/organization/members.html
    A ckan/templates/organization/new.html
    A ckan/templates/organization/new_organization_form.html
    A ckan/templates/organization/read.html
    A ckan/templates/organization/read_base.html
    A ckan/templates/organization/snippets/feeds.html
    A ckan/templates/organization/snippets/info.html
    A ckan/templates/organization/snippets/organization_form.html
    A ckan/templates/organization/snippets/organization_item.html
    A ckan/templates/organization/snippets/organization_list.html
    M ckan/templates/package/activity.html
    M ckan/templates/package/followers.html
    M ckan/templates/package/read.html
    A ckan/templates/package/read_base.html
    M ckan/templates/package/related_list.html
    M ckan/templates/package/snippets/package_basic_fields.html
    M ckan/templates/package/snippets/package_metadata_fields.html
    M ckan/templates/snippets/facet_list.html
    M ckan/templates/snippets/group.html
    M ckan/templates/snippets/group_item.html
    A ckan/templates/snippets/organization.html
    A ckan/templates/snippets/organization_item.html
    A ckan/templates/snippets/page_header.html
    A ckan/templates/snippets/private.html
    M ckan/templates/user/read.html
    A ckan/templates/user/read_base.html
    M ckan/templates/user/snippets/followers.html
    M ckan/templates_legacy/admin/index.html
    M ckan/templates_legacy/admin/layout.html
    M ckan/templates_legacy/group/layout.html
    M ckan/templates_legacy/package/layout.html
    M ckan/templates_legacy/package/new_package_form.html
    M ckan/tests/ckantestplugin/ckantestplugin/__init__.py
    R ckan/tests/forms/__init__.py
    R ckan/tests/forms/test_authz.py
    R ckan/tests/forms/test_group.py
    R ckan/tests/forms/test_package.py
    M ckan/tests/functional/api/base.py
    M ckan/tests/functional/api/model/test_group.py
    M ckan/tests/functional/api/model/test_package.py
    M ckan/tests/functional/api/model/test_vocabulary.py
    M ckan/tests/functional/api/test_activity.py
    M ckan/tests/functional/api/test_dashboard.py
    M ckan/tests/functional/api/test_email_notifications.py
    M ckan/tests/functional/test_activity.py
    M ckan/tests/functional/test_admin.py
    R ckan/tests/functional/test_authz.py
    R ckan/tests/functional/test_edit_authz.py
    M ckan/tests/functional/test_group.py
    M ckan/tests/functional/test_package.py
    R ckan/tests/functional/test_package_edit_authz.py
    R ckan/tests/functional/test_publisher_auth.py
    M ckan/tests/functional/test_tag_vocab.py
    M ckan/tests/functional/test_upload.py
    R ckan/tests/lib/test_authztool.py
    M ckan/tests/lib/test_dictization.py
    M ckan/tests/lib/test_dictization_schema.py
    M ckan/tests/lib/test_solr_search_index.py
    M ckan/tests/logic/test_action.py
    A ckan/tests/logic/test_auth.py
    R ckan/tests/misc/test_auth_profiles.py
    R ckan/tests/misc/test_package_saver.py
    R ckan/tests/models/test_authz.py
    R ckan/tests/models/test_repo.py
    R ckan/tests/test_authz.py
    A doc/organizations_and_groups.rst
    M test-core.ini

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams

Conflicts:
	ckan/logic/action/update.py
	ckan/logic/auth/get.py
	ckan/logic/auth/publisher/get.py
	ckan/logic/auth/publisher/update.py
	ckan/model/user.py


  Commit: ba4d6dff049124992b7435f1956bebe276461629
      https://github.com/okfn/ckan/commit/ba4d6dff049124992b7435f1956bebe276461629
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-14 (Fri, 14 Dec 2012)

  Changed paths:
    A doc/email-notifications.rst
    M doc/index.rst

  Log Message:
  -----------
  [#1635] Add docs for email notifications feature


  Commit: 08970c943e54f454fdff0e25e3a80f236c25bdff
      https://github.com/okfn/ckan/commit/08970c943e54f454fdff0e25e3a80f236c25bdff
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-16 (Sun, 16 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/controllers/user.py
    M ckan/lib/email_notifications.py
    M ckan/logic/action/update.py
    M ckan/logic/schema.py
    M ckan/migration/versions/065_add_email_notifications_preference.py
    M ckan/model/user.py
    M ckan/templates/user/edit_user_form.html
    M ckan/tests/functional/api/test_email_notifications.py
    M ckan/tests/lib/test_dictization.py
    M doc/email-notifications.rst
    M test-core.ini

  Log Message:
  -----------
  [#1635] Rename ckan.email_notifications -> activity_streams_email_notifications

This makes things more extensible


  Commit: 56540910ec87131ba1c6b291bd28d603bc3cd5e4
      https://github.com/okfn/ckan/commit/56540910ec87131ba1c6b291bd28d603bc3cd5e4
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-16 (Sun, 16 Dec 2012)

  Changed paths:
    M ckan/tests/functional/api/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Remove an unnecessary line


  Commit: a3d7f5d4f99b2d88a45e3c0e7605fa2ce7e643f6
      https://github.com/okfn/ckan/commit/a3d7f5d4f99b2d88a45e3c0e7605fa2ce7e643f6
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-16 (Sun, 16 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/tests/lib/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Fix an email_notifications_since bug

Fix the error response when ckan.email_notifications_since is an invalid
string.


  Commit: 503cb9aa6aca8481c8e9cff99896a5fbbd9e5eb8
      https://github.com/okfn/ckan/commit/503cb9aa6aca8481c8e9cff99896a5fbbd9e5eb8
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/public/base/less/forms.less
    M ckan/templates/macros/form.html
    M ckan/templates/user/edit_user_form.html

  Log Message:
  -----------
  [#1635] Tweaked the edit profile form notifications email checkbox


  Commit: c04ca74366bf2a7de85105c53b2cca42f5545bed
      https://github.com/okfn/ckan/commit/c04ca74366bf2a7de85105c53b2cca42f5545bed
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/templates/user/edit_user_form.html

  Log Message:
  -----------
  [#1635] Spaces... not tabs.


  Commit: a5aa6738646cafac50817b8e141150cde680e2c2
      https://github.com/okfn/ckan/commit/a5aa6738646cafac50817b8e141150cde680e2c2
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/public/base/css/main.css

  Log Message:
  -----------
  [#1635] Re-compiled main.css


  Commit: d245f8ef9e44ddaed8cb221e4f9f0e390756e455
      https://github.com/okfn/ckan/commit/d245f8ef9e44ddaed8cb221e4f9f0e390756e455
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/public/base/css/main.css
    M ckan/public/base/less/forms.less
    M ckan/templates/macros/form.html
    M ckan/templates/user/edit_user_form.html

  Log Message:
  -----------
  Merge branch '1635-feature-email-notifications-for-activity-streams' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams

Conflicts:
	ckan/templates/user/edit_user_form.html


  Commit: c63c24fc874937bff43815657bec23a63a8a15e6
      https://github.com/okfn/ckan/commit/c63c24fc874937bff43815657bec23a63a8a15e6
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/public/base/less/forms.less
    M ckan/templates/macros/form.html
    M ckan/templates/user/edit_user_form.html

  Log Message:
  -----------
  [#1635] Removed uneeded macro


  Commit: 7a3431400f37f305864652daffe2f23ebe9c3ead
      https://github.com/okfn/ckan/commit/7a3431400f37f305864652daffe2f23ebe9c3ead
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/public/base/css/main.css

  Log Message:
  -----------
  [#1635] Re-compiled main.css


  Commit: aae71d5fab54ad1cdc56be53167b9fee77d74200
      https://github.com/okfn/ckan/commit/aae71d5fab54ad1cdc56be53167b9fee77d74200
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/templates/user/edit_user_form.html

  Log Message:
  -----------
  [#1635] User preference text tweak


  Commit: a6ff3a1420aaeeb8e8de0c15962355db2d9d865f
      https://github.com/okfn/ckan/commit/a6ff3a1420aaeeb8e8de0c15962355db2d9d865f
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/controllers/group.py
    M ckan/logic/action/create.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/update.py
    M ckan/tests/functional/api/model/test_vocabulary.py

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams


  Commit: 38126ace2c57ee182da949256a9adfda2cbaf933
      https://github.com/okfn/ckan/commit/38126ace2c57ee182da949256a9adfda2cbaf933
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/tests/lib/test_dictization.py

  Log Message:
  -----------
  [#1635] Fix a typo in a test case


  Commit: 6bfce0101c7840299060099ae58191f15e1a49d4
      https://github.com/okfn/ckan/commit/6bfce0101c7840299060099ae58191f15e1a49d4
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/public/base/css/main.css
    M ckan/public/base/less/forms.less
    M ckan/templates/macros/form.html

  Log Message:
  -----------
  Merge branch '1635-feature-email-notifications-for-activity-streams' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams

Conflicts:
	ckan/templates/user/edit_user_form.html


  Commit: c3e817462fcb024b1f01fede03090ea852aed18c
      https://github.com/okfn/ckan/commit/c3e817462fcb024b1f01fede03090ea852aed18c
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/templates/user/edit_user_form.html

  Log Message:
  -----------
  [#1635] Fix a merge error


  Commit: b09e8a59186d523fdb22fb35759218791e56b45b
      https://github.com/okfn/ckan/commit/b09e8a59186d523fdb22fb35759218791e56b45b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/templates/user/edit_user_form.html

  Log Message:
  -----------
  [#1635] Fix email notifications user preference frontend

The email notifications preference was working, but a recent commit
broke the frontend and made it impossible to turn the feature on. This
is why we need frontend tests.


  Commit: ec07a0a4745d33666eeb6ff9c5aeef4a587c956b
      https://github.com/okfn/ckan/commit/ec07a0a4745d33666eeb6ff9c5aeef4a587c956b
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    M ckan/lib/email_notifications.py
    M ckan/templates/activity_streams/activity_stream_email_notifications.text
    M ckan/tests/functional/api/test_email_notifications.py

  Log Message:
  -----------
  [#1635] Put num. new activities in email notifications

Make email notifications say "1 new activity", "3 new activities" etc.
instead of just "You have new activity". Both in the email subject and
in the body. Handle plural form translation properly with ungettext.

Also make the email subjects translatable, which I had forgotten to do before.


  Commit: e28cd002970b32c4aae5006e1dbf9b94f0cc46cb
      https://github.com/okfn/ckan/commit/e28cd002970b32c4aae5006e1dbf9b94f0cc46cb
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-18 (Tue, 18 Dec 2012)

  Changed paths:
    R ckan/authz.py
    M ckan/config/deployment.ini_tmpl
    M ckan/config/environment.py
    M ckan/config/routing.py
    M ckan/config/solr/CHANGELOG.txt
    A ckan/config/solr/schema-2.0.xml
    M ckan/controllers/admin.py
    M ckan/controllers/api.py
    M ckan/controllers/group.py
    R ckan/controllers/group_formalchemy.py
    M ckan/controllers/home.py
    A ckan/controllers/organization.py
    M ckan/controllers/package.py
    R ckan/controllers/package_formalchemy.py
    M ckan/controllers/related.py
    M ckan/controllers/revision.py
    M ckan/controllers/storage.py
    M ckan/controllers/user.py
    R ckan/forms/__init__.py
    R ckan/forms/authorization_group.py
    R ckan/forms/authz.py
    R ckan/forms/builder.py
    R ckan/forms/common.py
    R ckan/forms/group.py
    R ckan/forms/package.py
    R ckan/forms/package_dict.py
    R ckan/forms/registry.py
    M ckan/i18n/check_po_files.py
    M ckan/lib/activity_streams.py
    M ckan/lib/app_globals.py
    M ckan/lib/base.py
    M ckan/lib/cli.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/formatters.py
    M ckan/lib/helpers.py
    M ckan/lib/jinja_extensions.py
    M ckan/lib/plugins.py
    M ckan/lib/search/__init__.py
    M ckan/lib/search/index.py
    M ckan/lib/search/query.py
    M ckan/logic/__init__.py
    M ckan/logic/action/create.py
    M ckan/logic/action/delete.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/create.py
    M ckan/logic/auth/delete.py
    M ckan/logic/auth/get.py
    R ckan/logic/auth/publisher/__init__.py
    R ckan/logic/auth/publisher/create.py
    R ckan/logic/auth/publisher/delete.py
    R ckan/logic/auth/publisher/get.py
    R ckan/logic/auth/publisher/update.py
    M ckan/logic/auth/update.py
    M ckan/logic/schema.py
    M ckan/logic/validators.py
    A ckan/migration/versions/063_org_changes.py
    M ckan/model/__init__.py
    M ckan/model/activity.py
    M ckan/model/authz.py
    M ckan/model/group.py
    M ckan/model/package.py
    M ckan/model/user.py
    M ckan/new_authz.py
    M ckan/plugins/interfaces.py
    M ckan/public/base/css/fuchsia.css
    M ckan/public/base/css/fuchsia.min.css
    M ckan/public/base/css/green.css
    M ckan/public/base/css/green.min.css
    M ckan/public/base/css/main.css
    M ckan/public/base/css/main.min.css
    M ckan/public/base/css/maroon.css
    M ckan/public/base/css/maroon.min.css
    M ckan/public/base/css/red.css
    M ckan/public/base/css/red.min.css
    A ckan/public/base/datapreview/vendor/flot/0.7/excanvas.min.js
    A ckan/public/base/datapreview/vendor/flot/0.7/jquery.flot.min.js
    A ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.ie.min.css
    A ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.min.css
    A ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.min.css
    A ckan/public/base/datapreview/vendor/leaflet.markercluster/leaflet.markercluster.min.js
    A ckan/public/base/datapreview/vendor/leaflet/0.3.1/leaflet.ie.min.css
    A ckan/public/base/datapreview/vendor/leaflet/0.3.1/leaflet.min.css
    A ckan/public/base/datapreview/vendor/leaflet/0.3.1/leaflet.min.js
    A ckan/public/base/datapreview/vendor/leaflet/0.4.4/leaflet-src.min.js
    A ckan/public/base/images/editing.png
    A ckan/public/base/images/placeholder-organization.png
    M ckan/public/base/javascript/client.js
    M ckan/public/base/javascript/client.min.js
    M ckan/public/base/javascript/module.min.js
    A ckan/public/base/javascript/modules/activity-stream.js
    A ckan/public/base/javascript/modules/dashboard.min.js
    M ckan/public/base/javascript/modules/data-viewer.min.js
    A ckan/public/base/javascript/modules/follow.min.js
    M ckan/public/base/javascript/modules/popover-context.js
    A ckan/public/base/javascript/modules/popover-context.min.js
    M ckan/public/base/javascript/resource.config
    M ckan/public/base/less/activity.less
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/group.less
    M ckan/public/base/less/masthead.less
    M ckan/public/base/less/profile.less
    M ckan/public/base/less/variables.less
    A ckan/public/base/vendor/bootstrap/js/bootstrap-dropdown.min.js
    A ckan/public/base/vendor/bootstrap/js/bootstrap-popover.min.js
    A ckan/public/base/vendor/bootstrap/js/bootstrap-tooltip.min.js
    M ckan/templates/activity_streams/activity_stream_items.html
    R ckan/templates/ajax_snippets/popover-context-dataset.html
    R ckan/templates/ajax_snippets/popover-context-group.html
    R ckan/templates/ajax_snippets/popover-context-user.html
    A ckan/templates/ajax_snippets/popover_context_dataset.html
    A ckan/templates/ajax_snippets/popover_context_group.html
    A ckan/templates/ajax_snippets/popover_context_user.html
    M ckan/templates/base.html
    M ckan/templates/development/primer.html
    A ckan/templates/development/snippets/page_header.html
    M ckan/templates/footer.html
    A ckan/templates/group/confirm_delete_member.html
    M ckan/templates/group/index.html
    A ckan/templates/group/member_new.html
    A ckan/templates/group/members.html
    M ckan/templates/group/read.html
    A ckan/templates/group/read_base.html
    M ckan/templates/group/snippets/group_form.html
    M ckan/templates/header.html
    A ckan/templates/organization/about.html
    A ckan/templates/organization/admins.html
    A ckan/templates/organization/base_form_page.html
    A ckan/templates/organization/confirm_delete.html
    A ckan/templates/organization/confirm_delete_member.html
    A ckan/templates/organization/edit.html
    A ckan/templates/organization/edit_base.html
    A ckan/templates/organization/index.html
    A ckan/templates/organization/member_new.html
    A ckan/templates/organization/members.html
    A ckan/templates/organization/new.html
    A ckan/templates/organization/new_organization_form.html
    A ckan/templates/organization/read.html
    A ckan/templates/organization/read_base.html
    A ckan/templates/organization/snippets/feeds.html
    A ckan/templates/organization/snippets/info.html
    A ckan/templates/organization/snippets/organization_form.html
    A ckan/templates/organization/snippets/organization_item.html
    A ckan/templates/organization/snippets/organization_list.html
    M ckan/templates/package/activity.html
    A ckan/templates/package/activity_stream.html
    M ckan/templates/package/followers.html
    M ckan/templates/package/read.html
    A ckan/templates/package/read_base.html
    M ckan/templates/package/related_list.html
    M ckan/templates/package/resource_read.html
    M ckan/templates/package/search.html
    M ckan/templates/package/snippets/package_basic_fields.html
    M ckan/templates/package/snippets/package_metadata_fields.html
    M ckan/templates/page.html
    M ckan/templates/snippets/facet_list.html
    M ckan/templates/snippets/group.html
    M ckan/templates/snippets/group_item.html
    A ckan/templates/snippets/organization.html
    A ckan/templates/snippets/organization_item.html
    A ckan/templates/snippets/page_header.html
    A ckan/templates/snippets/private.html
    M ckan/templates/user/read.html
    A ckan/templates/user/read_base.html
    M ckan/templates/user/snippets/followers.html
    M ckan/templates_legacy/admin/index.html
    M ckan/templates_legacy/admin/layout.html
    M ckan/templates_legacy/group/layout.html
    M ckan/templates_legacy/package/layout.html
    M ckan/templates_legacy/package/new_package_form.html
    M ckan/tests/ckantestplugin/ckantestplugin/__init__.py
    R ckan/tests/forms/__init__.py
    R ckan/tests/forms/test_authz.py
    R ckan/tests/forms/test_group.py
    R ckan/tests/forms/test_package.py
    M ckan/tests/functional/api/base.py
    M ckan/tests/functional/api/model/test_group.py
    M ckan/tests/functional/api/model/test_package.py
    M ckan/tests/functional/api/model/test_vocabulary.py
    M ckan/tests/functional/api/test_activity.py
    M ckan/tests/functional/api/test_dashboard.py
    M ckan/tests/functional/test_activity.py
    M ckan/tests/functional/test_admin.py
    R ckan/tests/functional/test_authz.py
    R ckan/tests/functional/test_edit_authz.py
    M ckan/tests/functional/test_group.py
    M ckan/tests/functional/test_package.py
    R ckan/tests/functional/test_package_edit_authz.py
    M ckan/tests/functional/test_pagination.py
    R ckan/tests/functional/test_publisher_auth.py
    M ckan/tests/functional/test_search.py
    M ckan/tests/functional/test_tag_vocab.py
    M ckan/tests/functional/test_upload.py
    R ckan/tests/lib/test_authztool.py
    M ckan/tests/lib/test_dictization.py
    M ckan/tests/lib/test_dictization_schema.py
    M ckan/tests/lib/test_solr_package_search.py
    M ckan/tests/lib/test_solr_package_search_synchronous_update.py
    M ckan/tests/lib/test_solr_search_index.py
    M ckan/tests/logic/test_action.py
    A ckan/tests/logic/test_auth.py
    R ckan/tests/misc/test_auth_profiles.py
    R ckan/tests/misc/test_package_saver.py
    R ckan/tests/models/test_authz.py
    R ckan/tests/models/test_repo.py
    R ckan/tests/test_authz.py
    M ckan_deb/usr/lib/ckan/common.sh
    M ckanext/multilingual/solr/schema.xml
    M doc/configuration.rst
    A doc/organizations_and_groups.rst
    M test-core.ini

  Log Message:
  -----------
  Merge branch 'master' into 2961-pluggable-previews

Conflicts:
	ckan/controllers/package.py
	ckan/public/base/datapreview/css/recline.min.css
	ckan/public/base/datapreview/preview_recline.min.js
	ckan/public/base/datapreview/vendor/leaflet/leaflet.min.css
	ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.css
	ckan/public/base/datapreview/vendor/recline/css/recline.min.css


  Commit: 99658776380bd2ead74679635411ccaf1dc905b8
      https://github.com/okfn/ckan/commit/99658776380bd2ead74679635411ccaf1dc905b8
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/public/base/less/masthead.less

  Log Message:
  -----------
  Fix for masthead.less. fixes #224


  Commit: 56a0861a927654695530bf36ff3b1b40415d0304
      https://github.com/okfn/ckan/commit/56a0861a927654695530bf36ff3b1b40415d0304
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/public/base/css/main.css

  Log Message:
  -----------
  Rebuilt main.css


  Commit: 9aa23a6e15fa0641602e105cca17ca870ba083b9
      https://github.com/okfn/ckan/commit/9aa23a6e15fa0641602e105cca17ca870ba083b9
  Author: Sven R. Kunze <kunsv at hrz.tu-chemnitz.de>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/package/search.html
    A ckan/templates/snippets/fields_to_hidden.html

  Log Message:
  -----------
  Added fields_to_hidden


  Commit: a6571e59f108f063e958a79b436520edb64607b7
      https://github.com/okfn/ckan/commit/a6571e59f108f063e958a79b436520edb64607b7
  Author: Sven R. Kunze <kunsv at hrz.tu-chemnitz.de>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/macros/form.html
    M ckan/templates/package/search.html

  Log Message:
  -----------
  put functionality from snippet to macros


  Commit: f43cc716033468e8ad6ef58e1e9d6905d04a9b5a
      https://github.com/okfn/ckan/commit/f43cc716033468e8ad6ef58e1e9d6905d04a9b5a
  Author: Sven R. Kunze <kunsv at hrz.tu-chemnitz.de>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    R ckan/templates/snippets/fields_to_hidden.html

  Log Message:
  -----------
  removed unused file


  Commit: ac444ad564db5291236ea090a2547283a9ac2615
      https://github.com/okfn/ckan/commit/ac444ad564db5291236ea090a2547283a9ac2615
  Author: Sven R. Kunze <kunsv at hrz.tu-chemnitz.de>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/macros/form.html
    M ckan/templates/package/search.html

  Log Message:
  -----------
  removed duplicate names


  Commit: 6587b7c2c4ae438223d493b12cba369c6fca85a2
      https://github.com/okfn/ckan/commit/6587b7c2c4ae438223d493b12cba369c6fca85a2
  Author: Sven R. Kunze <kunsv at hrz.tu-chemnitz.de>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/macros/form.html

  Log Message:
  -----------
  corrected example


  Commit: bbd3192100899094000985dea7183f4c07eaf887
      https://github.com/okfn/ckan/commit/bbd3192100899094000985dea7183f4c07eaf887
  Author: Sven R. Kunze <kunsv at hrz.tu-chemnitz.de>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/macros/form.html

  Log Message:
  -----------
  changed default parameters


  Commit: bdd0f99638f5cb98b6ff8aae7ad8206b2febf1f8
      https://github.com/okfn/ckan/commit/bdd0f99638f5cb98b6ff8aae7ad8206b2febf1f8
  Author: Sven R. Kunze <kunsv at hrz.tu-chemnitz.de>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/macros/form.html
    M ckan/templates/package/search.html

  Log Message:
  -----------
  Renamed macro


  Commit: 5837ee7dfe07c0d3d85f4a1a77837ad2d00eac3d
      https://github.com/okfn/ckan/commit/5837ee7dfe07c0d3d85f4a1a77837ad2d00eac3d
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/plugins/toolkit.py
    M ckanext/jsonpreview/tests/test_preview.py
    M ckanext/resourceproxy/plugin.py
    M doc/toolkit.rst

  Log Message:
  -----------
  [#2691] Revert adding url_for to plugins.toolkit


  Commit: d09eadb2e91eec6015102464e6c5a47a8a13583a
      https://github.com/okfn/ckan/commit/d09eadb2e91eec6015102464e6c5a47a8a13583a
  Author: kindly <kindly at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/lib/dictization/model_dictize.py

  Log Message:
  -----------
  [#210] tivial fix import


  Commit: 40f59975d77c3d1c82537f50476413b3bfd31b6c
      https://github.com/okfn/ckan/commit/40f59975d77c3d1c82537f50476413b3bfd31b6c
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/lib/datapreview.py
    M ckan/lib/helpers.py
    M doc/configuration.rst

  Log Message:
  -----------
  [#2691] Fixes regarding previewing config options

* Moved to the helpers function, as on the module root config options
  weren't yet set.
* Define default values, otherwise instances using old ini files won't
  get any format preview
* Namespace config options ("ckan.preview...")
* Add documentation about the config options


  Commit: 92aeb84f25b5070850182ffc9dfaec74258456f0
      https://github.com/okfn/ckan/commit/92aeb84f25b5070850182ffc9dfaec74258456f0
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/lib/datapreview.py
    M doc/configuration.rst

  Log Message:
  -----------
  [#2961] Remove json and csv from loadable formats

They should be loaded with their own extensions. They were just on this
list because of old code and they are not rendered nicely when directly
laoded on an iframe.
XML based formats are kept, but they also should be shown with a
particular extension (See #226)


  Commit: 8df7a6c99e84d8c339ac2c663eb732bff7775a80
      https://github.com/okfn/ckan/commit/8df7a6c99e84d8c339ac2c663eb732bff7775a80
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    A ckanext/pdfpreview/tests/__init__.py
    A ckanext/pdfpreview/tests/test_preview.py
    A ckanext/reclinepreview/tests/__init__.py
    A ckanext/reclinepreview/tests/test_preview.py

  Log Message:
  -----------
  [#2961] Add basic tests for pdf and recline extensions


  Commit: 4f3de60653184f78f3c386f4ba84483bff7be747
      https://github.com/okfn/ckan/commit/4f3de60653184f78f3c386f4ba84483bff7be747
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/dataviewer/snippets/no_preview.html

  Log Message:
  -----------
  [#2961] Minor tweaks on the no preview template


  Commit: 53db1732b23c5e548e452ce8b3d66cd1978dc8d4
      https://github.com/okfn/ckan/commit/53db1732b23c5e548e452ce8b3d66cd1978dc8d4
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/config/routing.py
    M ckan/controllers/package.py
    A ckan/lib/datapreview.py
    M ckan/lib/helpers.py
    M ckan/plugins/interfaces.py
    R ckan/public/base/datapreview/css/json.css
    R ckan/public/base/datapreview/css/json.min.css
    R ckan/public/base/datapreview/css/pdf.css
    R ckan/public/base/datapreview/css/pdf.min.css
    R ckan/public/base/datapreview/css/recline.css
    R ckan/public/base/datapreview/css/recline.min.css
    R ckan/public/base/datapreview/img/ajaxload-circle.gif
    R ckan/public/base/datapreview/preview_json.js
    R ckan/public/base/datapreview/preview_json.min.js
    R ckan/public/base/datapreview/preview_pdf.js
    R ckan/public/base/datapreview/preview_pdf.min.js
    R ckan/public/base/datapreview/preview_recline.js
    R ckan/public/base/datapreview/preview_recline.min.js
    R ckan/public/base/datapreview/resource.config
    R ckan/public/base/datapreview/vendor/backbone/backbone.js
    R ckan/public/base/datapreview/vendor/backbone/backbone.min.js
    R ckan/public/base/datapreview/vendor/bootstrap/bootstrap.js
    R ckan/public/base/datapreview/vendor/bootstrap/bootstrap.min.js
    R ckan/public/base/datapreview/vendor/bootstrap/css/bootstrap.css
    R ckan/public/base/datapreview/vendor/bootstrap/css/bootstrap.min.css
    R ckan/public/base/datapreview/vendor/bootstrap/img/glyphicons-halflings-white.png
    R ckan/public/base/datapreview/vendor/bootstrap/img/glyphicons-halflings.png
    R ckan/public/base/datapreview/vendor/flotr2/excanvas.js
    R ckan/public/base/datapreview/vendor/flotr2/excanvas.min.js
    R ckan/public/base/datapreview/vendor/flotr2/flotr2.js
    R ckan/public/base/datapreview/vendor/flotr2/flotr2.min.js
    R ckan/public/base/datapreview/vendor/jquery.mustache/jquery.mustache.js
    R ckan/public/base/datapreview/vendor/jquery.mustache/jquery.mustache.min.js
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/leaflet.markercluster.js
    R ckan/public/base/datapreview/vendor/leaflet/images/layers.png
    R ckan/public/base/datapreview/vendor/leaflet/images/marker-icon.png
    R ckan/public/base/datapreview/vendor/leaflet/images/marker-shadow.png
    R ckan/public/base/datapreview/vendor/leaflet/images/zoom-in.png
    R ckan/public/base/datapreview/vendor/leaflet/images/zoom-out.png
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.ie.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.ie.min.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.js
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.min.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.min.js
    R ckan/public/base/datapreview/vendor/moment/moment.js
    R ckan/public/base/datapreview/vendor/moment/moment.min.js
    R ckan/public/base/datapreview/vendor/mustache/mustache.js
    R ckan/public/base/datapreview/vendor/mustache/mustache.min.js
    R ckan/public/base/datapreview/vendor/pdfjs/pdf.js
    R ckan/public/base/datapreview/vendor/pdfjs/pdf.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/compatibility.js
    R ckan/public/base/datapreview/vendor/pdfviewer/compatibility.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/debugger.js
    R ckan/public/base/datapreview/vendor/pdfviewer/debugger.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-check.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-comment.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-text.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/loading-icon.gif
    R ckan/public/base/datapreview/vendor/pdfviewer/images/texture.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-bookmark.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-download.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-openFile.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageDown.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageUp.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-print.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-search.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    R ckan/public/base/datapreview/vendor/pdfviewer/locale.properties
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.css
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.js
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.css
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.js
    R ckan/public/base/datapreview/vendor/recline/css/recline.css
    R ckan/public/base/datapreview/vendor/recline/css/recline.min.css
    R ckan/public/base/datapreview/vendor/recline/recline.js
    R ckan/public/base/datapreview/vendor/recline/recline.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/MIT-LICENSE.txt
    R ckan/public/base/datapreview/vendor/slickgrid/README.txt
    R ckan/public/base/datapreview/vendor/slickgrid/images/sort-asc.gif
    R ckan/public/base/datapreview/vendor/slickgrid/images/sort-desc.gif
    R ckan/public/base/datapreview/vendor/slickgrid/jquery-ui-1.8.16.custom.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery-ui-1.8.16.custom.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery.event.drag-2.0.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery.event.drag-2.0.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.css
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.js
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.min.css
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.min.js
    R ckan/public/base/datapreview/vendor/underscore/underscore.js
    R ckan/public/base/datapreview/vendor/underscore/underscore.min.js
    R ckan/public/base/datapreview/vendor/webL10n/README.md
    R ckan/public/base/datapreview/vendor/webL10n/l10n.js
    R ckan/public/base/datapreview/vendor/webL10n/l10n.min.js
    R ckan/templates/dataviewer/json.html
    R ckan/templates/dataviewer/pdf.html
    R ckan/templates/dataviewer/recline.html
    M ckan/templates/dataviewer/snippets/no_preview.html
    A ckan/templates/tests/mock_json_resource_preview_template.html
    A ckan/templates/tests/mock_resource_preview_template.html
    M ckan/tests/functional/test_package.py
    A ckan/tests/functional/test_preview_interface.py
    M ckan/tests/lib/test_helpers.py
    A ckanext/jsonpreview/__init__.py
    A ckanext/jsonpreview/plugin.py
    A ckanext/jsonpreview/tests/__init__.py
    A ckanext/jsonpreview/tests/test_preview.py
    A ckanext/jsonpreview/theme/public/css/json.css
    A ckanext/jsonpreview/theme/public/css/json.min.css
    A ckanext/jsonpreview/theme/public/preview_json.js
    A ckanext/jsonpreview/theme/public/preview_json.min.js
    A ckanext/jsonpreview/theme/public/resource.config
    A ckanext/jsonpreview/theme/templates/json.html
    A ckanext/pdfpreview/__init__.py
    A ckanext/pdfpreview/plugin.py
    A ckanext/pdfpreview/tests/__init__.py
    A ckanext/pdfpreview/tests/test_preview.py
    A ckanext/pdfpreview/theme/public/css/pdf.css
    A ckanext/pdfpreview/theme/public/css/pdf.min.css
    A ckanext/pdfpreview/theme/public/css/recline.css
    A ckanext/pdfpreview/theme/public/css/recline.min.css
    A ckanext/pdfpreview/theme/public/img/ajaxload-circle.gif
    A ckanext/pdfpreview/theme/public/preview_pdf.js
    A ckanext/pdfpreview/theme/public/preview_pdf.min.js
    A ckanext/pdfpreview/theme/public/resource.config
    A ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.js
    A ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-check.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-comment.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-text.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/loading-icon.gif
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/texture.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-bookmark.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-download.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-openFile.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-print.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-search.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/locale.properties.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.css
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.css
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.js
    A ckanext/pdfpreview/theme/public/vendor/webL10n/README.md
    A ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.js
    A ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.min.js
    A ckanext/pdfpreview/theme/templates/pdf.html
    A ckanext/reclinepreview/__init__.py
    A ckanext/reclinepreview/plugin.py
    A ckanext/reclinepreview/tests/__init__.py
    A ckanext/reclinepreview/tests/test_preview.py
    A ckanext/reclinepreview/theme/public/css/recline.css
    A ckanext/reclinepreview/theme/public/css/recline.min.css
    A ckanext/reclinepreview/theme/public/img/ajaxload-circle.gif
    A ckanext/reclinepreview/theme/public/preview_recline.js
    A ckanext/reclinepreview/theme/public/preview_recline.min.js
    A ckanext/reclinepreview/theme/public/resource.config
    A ckanext/reclinepreview/theme/public/vendor/backbone/backbone.js
    A ckanext/reclinepreview/theme/public/vendor/backbone/backbone.min.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/bootstrap.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/bootstrap.min.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/css/bootstrap.css
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/css/bootstrap.min.css
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/img/glyphicons-halflings-white.png
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/img/glyphicons-halflings.png
    A ckanext/reclinepreview/theme/public/vendor/flotr2/excanvas.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/excanvas.min.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.min.js
    A ckanext/reclinepreview/theme/public/vendor/jquery.mustache/jquery.mustache.js
    A ckanext/reclinepreview/theme/public/vendor/jquery.mustache/jquery.mustache.min.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.min.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/layers.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/marker-icon.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/marker-shadow.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/zoom-in.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/zoom-out.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.ie.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.ie.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.js
    A ckanext/reclinepreview/theme/public/vendor/moment/moment.js
    A ckanext/reclinepreview/theme/public/vendor/moment/moment.min.js
    A ckanext/reclinepreview/theme/public/vendor/mustache/mustache.js
    A ckanext/reclinepreview/theme/public/vendor/mustache/mustache.min.js
    A ckanext/reclinepreview/theme/public/vendor/recline/css/recline.css
    A ckanext/reclinepreview/theme/public/vendor/recline/css/recline.min.css
    A ckanext/reclinepreview/theme/public/vendor/recline/recline.js
    A ckanext/reclinepreview/theme/public/vendor/recline/recline.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/MIT-LICENSE.txt
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/README.txt
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/images/sort-asc.gif
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/images/sort-desc.gif
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery-ui-1.8.16.custom.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery-ui-1.8.16.custom.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery.event.drag-2.0.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery.event.drag-2.0.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.css
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.min.css
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.min.js
    A ckanext/reclinepreview/theme/public/vendor/underscore/underscore.js
    A ckanext/reclinepreview/theme/public/vendor/underscore/underscore.min.js
    A ckanext/reclinepreview/theme/templates/recline.html
    A ckanext/resourceproxy/__init__.py
    A ckanext/resourceproxy/controller.py
    A ckanext/resourceproxy/plugin.py
    A ckanext/resourceproxy/tests/__init__.py
    A ckanext/resourceproxy/tests/file_server.py
    A ckanext/resourceproxy/tests/static/huge.json
    A ckanext/resourceproxy/tests/static/test.json
    A ckanext/resourceproxy/tests/test_proxy.py
    M doc/configuration.rst
    M doc/toolkit.rst
    M doc/writing-extensions.rst
    M setup.py

  Log Message:
  -----------
  Merge branch '2961-pluggable-previews'


  Commit: d305a9229d2045b0010c2f3a47469b4efad8af46
      https://github.com/okfn/ckan/commit/d305a9229d2045b0010c2f3a47469b4efad8af46
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    A ckan/tests/lib/test_datapreview.py
    M ckan/tests/lib/test_helpers.py

  Log Message:
  -----------
  [#2961] Fix broken data preview test and move to own file


  Commit: 3c323e79d1a6977cfeabdd418939669ced552a2d
      https://github.com/okfn/ckan/commit/3c323e79d1a6977cfeabdd418939669ced552a2d
  Author: amercader <amercadero at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    A ckan/tests/lib/test_datapreview.py
    M ckan/tests/lib/test_helpers.py

  Log Message:
  -----------
  Merge branch '2961-pluggable-previews'


  Commit: 1f75641573106b5fb16c75f6f748ef3d36331785
      https://github.com/okfn/ckan/commit/1f75641573106b5fb16c75f6f748ef3d36331785
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/header.html

  Log Message:
  -----------
  Added some more blocks to the header template because more blocks are always good


  Commit: 477593b0a6b9f6568004e52d15c57695abed9656
      https://github.com/okfn/ckan/commit/477593b0a6b9f6568004e52d15c57695abed9656
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/templates/header.html

  Log Message:
  -----------
  Whitespace tweaks


  Commit: 7ed492f41449c66d13ad3048ae7d09a225c63480
      https://github.com/okfn/ckan/commit/7ed492f41449c66d13ad3048ae7d09a225c63480
  Author: tobes <toby.junk at gmail.com>
  Date:   2012-12-19 (Wed, 19 Dec 2012)

  Changed paths:
    M ckan/migration/versions/063_org_changes.py

  Log Message:
  -----------
  [#1635] Improve migration script


  Commit: 595587f81a02d56120616f3454a2092ef7f0e046
      https://github.com/okfn/ckan/commit/595587f81a02d56120616f3454a2092ef7f0e046
  Author: Sean Hammond <seanhammond at lavabit.com>
  Date:   2012-12-20 (Thu, 20 Dec 2012)

  Changed paths:
    R ckan/authz.py
    M ckan/config/deployment.ini_tmpl
    M ckan/config/routing.py
    M ckan/controllers/admin.py
    M ckan/controllers/api.py
    M ckan/controllers/package.py
    M ckan/controllers/revision.py
    M ckan/lib/base.py
    A ckan/lib/datapreview.py
    M ckan/lib/dictization/model_dictize.py
    M ckan/lib/helpers.py
    M ckan/lib/search/query.py
    M ckan/logic/__init__.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/model/authz.py
    M ckan/plugins/interfaces.py
    M ckan/public/base/css/main.css
    R ckan/public/base/datapreview/css/json.css
    R ckan/public/base/datapreview/css/json.min.css
    R ckan/public/base/datapreview/css/pdf.css
    R ckan/public/base/datapreview/css/pdf.min.css
    R ckan/public/base/datapreview/css/recline.css
    R ckan/public/base/datapreview/css/recline.min.css
    R ckan/public/base/datapreview/img/ajaxload-circle.gif
    R ckan/public/base/datapreview/preview_json.js
    R ckan/public/base/datapreview/preview_json.min.js
    R ckan/public/base/datapreview/preview_pdf.js
    R ckan/public/base/datapreview/preview_pdf.min.js
    R ckan/public/base/datapreview/preview_recline.js
    R ckan/public/base/datapreview/preview_recline.min.js
    R ckan/public/base/datapreview/resource.config
    R ckan/public/base/datapreview/vendor/backbone/backbone.js
    R ckan/public/base/datapreview/vendor/backbone/backbone.min.js
    R ckan/public/base/datapreview/vendor/bootstrap/bootstrap.js
    R ckan/public/base/datapreview/vendor/bootstrap/bootstrap.min.js
    R ckan/public/base/datapreview/vendor/bootstrap/css/bootstrap.css
    R ckan/public/base/datapreview/vendor/bootstrap/css/bootstrap.min.css
    R ckan/public/base/datapreview/vendor/bootstrap/img/glyphicons-halflings-white.png
    R ckan/public/base/datapreview/vendor/bootstrap/img/glyphicons-halflings.png
    R ckan/public/base/datapreview/vendor/flotr2/excanvas.js
    R ckan/public/base/datapreview/vendor/flotr2/excanvas.min.js
    R ckan/public/base/datapreview/vendor/flotr2/flotr2.js
    R ckan/public/base/datapreview/vendor/flotr2/flotr2.min.js
    R ckan/public/base/datapreview/vendor/jquery.mustache/jquery.mustache.js
    R ckan/public/base/datapreview/vendor/jquery.mustache/jquery.mustache.min.js
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/leaflet.markercluster.js
    R ckan/public/base/datapreview/vendor/leaflet/images/layers.png
    R ckan/public/base/datapreview/vendor/leaflet/images/marker-icon.png
    R ckan/public/base/datapreview/vendor/leaflet/images/marker-shadow.png
    R ckan/public/base/datapreview/vendor/leaflet/images/zoom-in.png
    R ckan/public/base/datapreview/vendor/leaflet/images/zoom-out.png
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.ie.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.ie.min.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.js
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.min.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.min.js
    R ckan/public/base/datapreview/vendor/moment/moment.js
    R ckan/public/base/datapreview/vendor/moment/moment.min.js
    R ckan/public/base/datapreview/vendor/mustache/mustache.js
    R ckan/public/base/datapreview/vendor/mustache/mustache.min.js
    R ckan/public/base/datapreview/vendor/pdfjs/pdf.js
    R ckan/public/base/datapreview/vendor/pdfjs/pdf.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/compatibility.js
    R ckan/public/base/datapreview/vendor/pdfviewer/compatibility.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/debugger.js
    R ckan/public/base/datapreview/vendor/pdfviewer/debugger.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-check.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-comment.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-text.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/loading-icon.gif
    R ckan/public/base/datapreview/vendor/pdfviewer/images/texture.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-bookmark.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-download.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-openFile.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageDown.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageUp.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-print.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-search.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    R ckan/public/base/datapreview/vendor/pdfviewer/locale.properties
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.css
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.js
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.css
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.js
    R ckan/public/base/datapreview/vendor/recline/css/recline.css
    R ckan/public/base/datapreview/vendor/recline/css/recline.min.css
    R ckan/public/base/datapreview/vendor/recline/recline.js
    R ckan/public/base/datapreview/vendor/recline/recline.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/MIT-LICENSE.txt
    R ckan/public/base/datapreview/vendor/slickgrid/README.txt
    R ckan/public/base/datapreview/vendor/slickgrid/images/sort-asc.gif
    R ckan/public/base/datapreview/vendor/slickgrid/images/sort-desc.gif
    R ckan/public/base/datapreview/vendor/slickgrid/jquery-ui-1.8.16.custom.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery-ui-1.8.16.custom.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery.event.drag-2.0.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery.event.drag-2.0.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.css
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.js
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.min.css
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.min.js
    R ckan/public/base/datapreview/vendor/underscore/underscore.js
    R ckan/public/base/datapreview/vendor/underscore/underscore.min.js
    R ckan/public/base/datapreview/vendor/webL10n/README.md
    R ckan/public/base/datapreview/vendor/webL10n/l10n.js
    R ckan/public/base/datapreview/vendor/webL10n/l10n.min.js
    M ckan/public/base/less/masthead.less
    R ckan/templates/dataviewer/json.html
    R ckan/templates/dataviewer/pdf.html
    R ckan/templates/dataviewer/recline.html
    M ckan/templates/dataviewer/snippets/no_preview.html
    M ckan/templates/header.html
    M ckan/templates/macros/form.html
    M ckan/templates/package/search.html
    A ckan/templates/tests/mock_json_resource_preview_template.html
    A ckan/templates/tests/mock_resource_preview_template.html
    M ckan/tests/functional/api/base.py
    M ckan/tests/functional/test_package.py
    M ckan/tests/functional/test_pagination.py
    A ckan/tests/functional/test_preview_interface.py
    A ckan/tests/lib/test_datapreview.py
    M ckan/tests/lib/test_helpers.py
    M ckan/tests/lib/test_solr_package_search.py
    A ckanext/jsonpreview/__init__.py
    A ckanext/jsonpreview/plugin.py
    A ckanext/jsonpreview/tests/__init__.py
    A ckanext/jsonpreview/tests/test_preview.py
    A ckanext/jsonpreview/theme/public/css/json.css
    A ckanext/jsonpreview/theme/public/css/json.min.css
    A ckanext/jsonpreview/theme/public/preview_json.js
    A ckanext/jsonpreview/theme/public/preview_json.min.js
    A ckanext/jsonpreview/theme/public/resource.config
    A ckanext/jsonpreview/theme/templates/json.html
    A ckanext/pdfpreview/__init__.py
    A ckanext/pdfpreview/plugin.py
    A ckanext/pdfpreview/tests/__init__.py
    A ckanext/pdfpreview/tests/test_preview.py
    A ckanext/pdfpreview/theme/public/css/pdf.css
    A ckanext/pdfpreview/theme/public/css/pdf.min.css
    A ckanext/pdfpreview/theme/public/css/recline.css
    A ckanext/pdfpreview/theme/public/css/recline.min.css
    A ckanext/pdfpreview/theme/public/img/ajaxload-circle.gif
    A ckanext/pdfpreview/theme/public/preview_pdf.js
    A ckanext/pdfpreview/theme/public/preview_pdf.min.js
    A ckanext/pdfpreview/theme/public/resource.config
    A ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.js
    A ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-check.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-comment.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-text.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/loading-icon.gif
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/texture.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-bookmark.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-download.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-openFile.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-print.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-search.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/locale.properties.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.css
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.css
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.js
    A ckanext/pdfpreview/theme/public/vendor/webL10n/README.md
    A ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.js
    A ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.min.js
    A ckanext/pdfpreview/theme/templates/pdf.html
    A ckanext/reclinepreview/__init__.py
    A ckanext/reclinepreview/plugin.py
    A ckanext/reclinepreview/tests/__init__.py
    A ckanext/reclinepreview/tests/test_preview.py
    A ckanext/reclinepreview/theme/public/css/recline.css
    A ckanext/reclinepreview/theme/public/css/recline.min.css
    A ckanext/reclinepreview/theme/public/img/ajaxload-circle.gif
    A ckanext/reclinepreview/theme/public/preview_recline.js
    A ckanext/reclinepreview/theme/public/preview_recline.min.js
    A ckanext/reclinepreview/theme/public/resource.config
    A ckanext/reclinepreview/theme/public/vendor/backbone/backbone.js
    A ckanext/reclinepreview/theme/public/vendor/backbone/backbone.min.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/bootstrap.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/bootstrap.min.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/css/bootstrap.css
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/css/bootstrap.min.css
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/img/glyphicons-halflings-white.png
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/img/glyphicons-halflings.png
    A ckanext/reclinepreview/theme/public/vendor/flotr2/excanvas.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/excanvas.min.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.min.js
    A ckanext/reclinepreview/theme/public/vendor/jquery.mustache/jquery.mustache.js
    A ckanext/reclinepreview/theme/public/vendor/jquery.mustache/jquery.mustache.min.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.min.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/layers.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/marker-icon.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/marker-shadow.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/zoom-in.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/zoom-out.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.ie.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.ie.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.js
    A ckanext/reclinepreview/theme/public/vendor/moment/moment.js
    A ckanext/reclinepreview/theme/public/vendor/moment/moment.min.js
    A ckanext/reclinepreview/theme/public/vendor/mustache/mustache.js
    A ckanext/reclinepreview/theme/public/vendor/mustache/mustache.min.js
    A ckanext/reclinepreview/theme/public/vendor/recline/css/recline.css
    A ckanext/reclinepreview/theme/public/vendor/recline/css/recline.min.css
    A ckanext/reclinepreview/theme/public/vendor/recline/recline.js
    A ckanext/reclinepreview/theme/public/vendor/recline/recline.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/MIT-LICENSE.txt
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/README.txt
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/images/sort-asc.gif
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/images/sort-desc.gif
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery-ui-1.8.16.custom.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery-ui-1.8.16.custom.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery.event.drag-2.0.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery.event.drag-2.0.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.css
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.min.css
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.min.js
    A ckanext/reclinepreview/theme/public/vendor/underscore/underscore.js
    A ckanext/reclinepreview/theme/public/vendor/underscore/underscore.min.js
    A ckanext/reclinepreview/theme/templates/recline.html
    A ckanext/resourceproxy/__init__.py
    A ckanext/resourceproxy/controller.py
    A ckanext/resourceproxy/plugin.py
    A ckanext/resourceproxy/tests/__init__.py
    A ckanext/resourceproxy/tests/file_server.py
    A ckanext/resourceproxy/tests/static/huge.json
    A ckanext/resourceproxy/tests/static/test.json
    A ckanext/resourceproxy/tests/test_proxy.py
    M doc/configuration.rst
    M doc/toolkit.rst
    M doc/writing-extensions.rst
    M setup.py

  Log Message:
  -----------
  Merge branch 'master' of github.com:okfn/ckan into 1635-feature-email-notifications-for-activity-streams

Conflicts:
	ckan/config/deployment.ini_tmpl


  Commit: 85529742da93ceee5c1933b91e4ad4da6b8a72fc
      https://github.com/okfn/ckan/commit/85529742da93ceee5c1933b91e4ad4da6b8a72fc
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-20 (Thu, 20 Dec 2012)

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

  Log Message:
  -----------
  Small textual tweak from @shevski


  Commit: 75149044e1a58a58a8048ec6a06d446c0aaf45f1
      https://github.com/okfn/ckan/commit/75149044e1a58a58a8048ec6a06d446c0aaf45f1
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-20 (Thu, 20 Dec 2012)

  Changed paths:
    M ckan/templates/group/base_form_page.html
    M ckan/templates/organization/edit.html
    M ckan/templates/organization/edit_base.html

  Log Message:
  -----------
  Template tweak so that the correct help text appears on the correct pages


  Commit: 7bd98593605608f8b8a11438c2685d6990976b2d
      https://github.com/okfn/ckan/commit/7bd98593605608f8b8a11438c2685d6990976b2d
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-20 (Thu, 20 Dec 2012)

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

  Log Message:
  -----------
  Lovely linebreaks


  Commit: 5ca73a5e7eee44a018aee1a45d3fa2e1e355cb6a
      https://github.com/okfn/ckan/commit/5ca73a5e7eee44a018aee1a45d3fa2e1e355cb6a
  Author: John Martin <me at johnmart.in>
  Date:   2012-12-20 (Thu, 20 Dec 2012)

  Changed paths:
    M ckan/templates/base.html

  Log Message:
  -----------
  Removed strange html comment from base template


  Commit: 9c15d8c747814ab2fb4445fb8ef2bf363958d503
      https://github.com/okfn/ckan/commit/9c15d8c747814ab2fb4445fb8ef2bf363958d503
  Author: tobes <toby.junk at gmail.com>
  Date:   2012-12-20 (Thu, 20 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/controllers/user.py
    M ckan/lib/cli.py
    M ckan/lib/dictization/model_dictize.py
    A ckan/lib/email_notifications.py
    M ckan/lib/mailer.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/get.py
    M ckan/logic/auth/update.py
    M ckan/logic/schema.py
    M ckan/migration/versions/063_org_changes.py
    A ckan/migration/versions/064_add_email_last_sent_column.py
    A ckan/migration/versions/065_add_email_notifications_preference.py
    M ckan/model/dashboard.py
    M ckan/model/user.py
    M ckan/public/base/css/main.css
    M ckan/public/base/less/forms.less
    A ckan/templates/activity_streams/activity_stream_email_notifications.text
    M ckan/templates/user/edit_user_form.html
    M ckan/tests/functional/api/test_dashboard.py
    A ckan/tests/functional/api/test_email_notifications.py
    M ckan/tests/functional/test_user.py
    M ckan/tests/lib/test_dictization.py
    A ckan/tests/lib/test_email_notifications.py
    M ckan/tests/lib/test_mailer.py
    M ckan/tests/misc/test_mock_mail_server.py
    M ckan/tests/mock_mail_server.py
    A doc/email-notifications.rst
    M doc/index.rst
    M test-core.ini

  Log Message:
  -----------
  Merge branch '1635-feature-email-notifications-for-activity-streams'


  Commit: 1e5b931bd9228a7992f997a04fdf1c4039c6a294
      https://github.com/okfn/ckan/commit/1e5b931bd9228a7992f997a04fdf1c4039c6a294
  Author: tobes <toby.junk at gmail.com>
  Date:   2012-12-20 (Thu, 20 Dec 2012)

  Changed paths:
    M ckan/config/deployment.ini_tmpl
    M ckan/config/routing.py
    M ckan/controllers/package.py
    M ckan/controllers/user.py
    M ckan/lib/cli.py
    A ckan/lib/datapreview.py
    M ckan/lib/dictization/model_dictize.py
    A ckan/lib/email_notifications.py
    M ckan/lib/helpers.py
    M ckan/lib/mailer.py
    M ckan/logic/action/get.py
    M ckan/logic/action/update.py
    M ckan/logic/auth/get.py
    M ckan/logic/auth/update.py
    M ckan/logic/schema.py
    M ckan/migration/versions/063_org_changes.py
    A ckan/migration/versions/064_add_email_last_sent_column.py
    A ckan/migration/versions/065_add_email_notifications_preference.py
    M ckan/model/dashboard.py
    M ckan/model/user.py
    M ckan/plugins/interfaces.py
    M ckan/public/base/css/main.css
    R ckan/public/base/datapreview/css/json.css
    R ckan/public/base/datapreview/css/json.min.css
    R ckan/public/base/datapreview/css/pdf.css
    R ckan/public/base/datapreview/css/pdf.min.css
    R ckan/public/base/datapreview/css/recline.css
    R ckan/public/base/datapreview/css/recline.min.css
    R ckan/public/base/datapreview/img/ajaxload-circle.gif
    R ckan/public/base/datapreview/preview_json.js
    R ckan/public/base/datapreview/preview_json.min.js
    R ckan/public/base/datapreview/preview_pdf.js
    R ckan/public/base/datapreview/preview_pdf.min.js
    R ckan/public/base/datapreview/preview_recline.js
    R ckan/public/base/datapreview/preview_recline.min.js
    R ckan/public/base/datapreview/resource.config
    R ckan/public/base/datapreview/vendor/backbone/backbone.js
    R ckan/public/base/datapreview/vendor/backbone/backbone.min.js
    R ckan/public/base/datapreview/vendor/bootstrap/bootstrap.js
    R ckan/public/base/datapreview/vendor/bootstrap/bootstrap.min.js
    R ckan/public/base/datapreview/vendor/bootstrap/css/bootstrap.css
    R ckan/public/base/datapreview/vendor/bootstrap/css/bootstrap.min.css
    R ckan/public/base/datapreview/vendor/bootstrap/img/glyphicons-halflings-white.png
    R ckan/public/base/datapreview/vendor/bootstrap/img/glyphicons-halflings.png
    R ckan/public/base/datapreview/vendor/flotr2/excanvas.js
    R ckan/public/base/datapreview/vendor/flotr2/excanvas.min.js
    R ckan/public/base/datapreview/vendor/flotr2/flotr2.js
    R ckan/public/base/datapreview/vendor/flotr2/flotr2.min.js
    R ckan/public/base/datapreview/vendor/jquery.mustache/jquery.mustache.js
    R ckan/public/base/datapreview/vendor/jquery.mustache/jquery.mustache.min.js
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/MarkerCluster.css
    R ckan/public/base/datapreview/vendor/leaflet.markercluster/leaflet.markercluster.js
    R ckan/public/base/datapreview/vendor/leaflet/images/layers.png
    R ckan/public/base/datapreview/vendor/leaflet/images/marker-icon.png
    R ckan/public/base/datapreview/vendor/leaflet/images/marker-shadow.png
    R ckan/public/base/datapreview/vendor/leaflet/images/zoom-in.png
    R ckan/public/base/datapreview/vendor/leaflet/images/zoom-out.png
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.ie.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.ie.min.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.js
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.min.css
    R ckan/public/base/datapreview/vendor/leaflet/leaflet.min.js
    R ckan/public/base/datapreview/vendor/moment/moment.js
    R ckan/public/base/datapreview/vendor/moment/moment.min.js
    R ckan/public/base/datapreview/vendor/mustache/mustache.js
    R ckan/public/base/datapreview/vendor/mustache/mustache.min.js
    R ckan/public/base/datapreview/vendor/pdfjs/pdf.js
    R ckan/public/base/datapreview/vendor/pdfjs/pdf.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/compatibility.js
    R ckan/public/base/datapreview/vendor/pdfviewer/compatibility.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/debugger.js
    R ckan/public/base/datapreview/vendor/pdfviewer/debugger.min.js
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-check.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-comment.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/annotation-text.svg
    R ckan/public/base/datapreview/vendor/pdfviewer/images/loading-icon.gif
    R ckan/public/base/datapreview/vendor/pdfviewer/images/texture.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-bookmark.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-download.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-openFile.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageDown.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-pageUp.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-print.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-search.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    R ckan/public/base/datapreview/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    R ckan/public/base/datapreview/vendor/pdfviewer/locale.properties
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.css
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.js
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.css
    R ckan/public/base/datapreview/vendor/pdfviewer/viewer.min.js
    R ckan/public/base/datapreview/vendor/recline/css/recline.css
    R ckan/public/base/datapreview/vendor/recline/css/recline.min.css
    R ckan/public/base/datapreview/vendor/recline/recline.js
    R ckan/public/base/datapreview/vendor/recline/recline.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/MIT-LICENSE.txt
    R ckan/public/base/datapreview/vendor/slickgrid/README.txt
    R ckan/public/base/datapreview/vendor/slickgrid/images/sort-asc.gif
    R ckan/public/base/datapreview/vendor/slickgrid/images/sort-desc.gif
    R ckan/public/base/datapreview/vendor/slickgrid/jquery-ui-1.8.16.custom.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery-ui-1.8.16.custom.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery.event.drag-2.0.js
    R ckan/public/base/datapreview/vendor/slickgrid/jquery.event.drag-2.0.min.js
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.css
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.js
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.min.css
    R ckan/public/base/datapreview/vendor/slickgrid/slick.grid.min.js
    R ckan/public/base/datapreview/vendor/underscore/underscore.js
    R ckan/public/base/datapreview/vendor/underscore/underscore.min.js
    R ckan/public/base/datapreview/vendor/webL10n/README.md
    R ckan/public/base/datapreview/vendor/webL10n/l10n.js
    R ckan/public/base/datapreview/vendor/webL10n/l10n.min.js
    M ckan/public/base/less/forms.less
    M ckan/public/base/less/masthead.less
    A ckan/templates/activity_streams/activity_stream_email_notifications.text
    M ckan/templates/base.html
    R ckan/templates/dataviewer/json.html
    R ckan/templates/dataviewer/pdf.html
    R ckan/templates/dataviewer/recline.html
    M ckan/templates/dataviewer/snippets/no_preview.html
    M ckan/templates/group/base_form_page.html
    M ckan/templates/group/index.html
    M ckan/templates/header.html
    M ckan/templates/macros/form.html
    M ckan/templates/organization/edit.html
    M ckan/templates/organization/edit_base.html
    M ckan/templates/organization/index.html
    M ckan/templates/package/search.html
    A ckan/templates/tests/mock_json_resource_preview_template.html
    A ckan/templates/tests/mock_resource_preview_template.html
    M ckan/templates/user/edit_user_form.html
    M ckan/tests/functional/api/test_dashboard.py
    A ckan/tests/functional/api/test_email_notifications.py
    M ckan/tests/functional/test_package.py
    A ckan/tests/functional/test_preview_interface.py
    M ckan/tests/functional/test_user.py
    A ckan/tests/lib/test_datapreview.py
    M ckan/tests/lib/test_dictization.py
    A ckan/tests/lib/test_email_notifications.py
    M ckan/tests/lib/test_helpers.py
    M ckan/tests/lib/test_mailer.py
    M ckan/tests/misc/test_mock_mail_server.py
    M ckan/tests/mock_mail_server.py
    A ckanext/jsonpreview/__init__.py
    A ckanext/jsonpreview/plugin.py
    A ckanext/jsonpreview/tests/__init__.py
    A ckanext/jsonpreview/tests/test_preview.py
    A ckanext/jsonpreview/theme/public/css/json.css
    A ckanext/jsonpreview/theme/public/css/json.min.css
    A ckanext/jsonpreview/theme/public/preview_json.js
    A ckanext/jsonpreview/theme/public/preview_json.min.js
    A ckanext/jsonpreview/theme/public/resource.config
    A ckanext/jsonpreview/theme/templates/json.html
    A ckanext/pdfpreview/__init__.py
    A ckanext/pdfpreview/plugin.py
    A ckanext/pdfpreview/tests/__init__.py
    A ckanext/pdfpreview/tests/test_preview.py
    A ckanext/pdfpreview/theme/public/css/pdf.css
    A ckanext/pdfpreview/theme/public/css/pdf.min.css
    A ckanext/pdfpreview/theme/public/css/recline.css
    A ckanext/pdfpreview/theme/public/css/recline.min.css
    A ckanext/pdfpreview/theme/public/img/ajaxload-circle.gif
    A ckanext/pdfpreview/theme/public/preview_pdf.js
    A ckanext/pdfpreview/theme/public/preview_pdf.min.js
    A ckanext/pdfpreview/theme/public/resource.config
    A ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.js
    A ckanext/pdfpreview/theme/public/vendor/pdfjs/pdf.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/compatibility.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/debugger.min.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-check.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-comment.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/annotation-text.svg
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/loading-icon.gif
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/texture.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-bookmark.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-download.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-fullscreen.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-menuArrows.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-openFile.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageDown.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp-rtl.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-pageUp.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-print.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-search.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-sidebarToggle.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewOutline.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-viewThumbnail.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomIn.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/images/toolbarButton-zoomOut.png
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/locale.properties.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.css
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.js
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.css
    A ckanext/pdfpreview/theme/public/vendor/pdfviewer/viewer.min.js
    A ckanext/pdfpreview/theme/public/vendor/webL10n/README.md
    A ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.js
    A ckanext/pdfpreview/theme/public/vendor/webL10n/l10n.min.js
    A ckanext/pdfpreview/theme/templates/pdf.html
    A ckanext/reclinepreview/__init__.py
    A ckanext/reclinepreview/plugin.py
    A ckanext/reclinepreview/tests/__init__.py
    A ckanext/reclinepreview/tests/test_preview.py
    A ckanext/reclinepreview/theme/public/css/recline.css
    A ckanext/reclinepreview/theme/public/css/recline.min.css
    A ckanext/reclinepreview/theme/public/img/ajaxload-circle.gif
    A ckanext/reclinepreview/theme/public/preview_recline.js
    A ckanext/reclinepreview/theme/public/preview_recline.min.js
    A ckanext/reclinepreview/theme/public/resource.config
    A ckanext/reclinepreview/theme/public/vendor/backbone/backbone.js
    A ckanext/reclinepreview/theme/public/vendor/backbone/backbone.min.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/bootstrap.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/bootstrap.min.js
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/css/bootstrap.css
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/css/bootstrap.min.css
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/img/glyphicons-halflings-white.png
    A ckanext/reclinepreview/theme/public/vendor/bootstrap/img/glyphicons-halflings.png
    A ckanext/reclinepreview/theme/public/vendor/flotr2/excanvas.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/excanvas.min.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.js
    A ckanext/reclinepreview/theme/public/vendor/flotr2/flotr2.min.js
    A ckanext/reclinepreview/theme/public/vendor/jquery.mustache/jquery.mustache.js
    A ckanext/reclinepreview/theme/public/vendor/jquery.mustache/jquery.mustache.min.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.ie.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.Default.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/MarkerCluster.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet.markercluster/leaflet.markercluster.min.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/layers.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/marker-icon.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/marker-shadow.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/zoom-in.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/images/zoom-out.png
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.ie.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.ie.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.js
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.css
    A ckanext/reclinepreview/theme/public/vendor/leaflet/leaflet.min.js
    A ckanext/reclinepreview/theme/public/vendor/moment/moment.js
    A ckanext/reclinepreview/theme/public/vendor/moment/moment.min.js
    A ckanext/reclinepreview/theme/public/vendor/mustache/mustache.js
    A ckanext/reclinepreview/theme/public/vendor/mustache/mustache.min.js
    A ckanext/reclinepreview/theme/public/vendor/recline/css/recline.css
    A ckanext/reclinepreview/theme/public/vendor/recline/css/recline.min.css
    A ckanext/reclinepreview/theme/public/vendor/recline/recline.js
    A ckanext/reclinepreview/theme/public/vendor/recline/recline.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/MIT-LICENSE.txt
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/README.txt
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/images/sort-asc.gif
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/images/sort-desc.gif
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery-ui-1.8.16.custom.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery-ui-1.8.16.custom.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery.event.drag-2.0.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/jquery.event.drag-2.0.min.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.css
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.js
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.min.css
    A ckanext/reclinepreview/theme/public/vendor/slickgrid/slick.grid.min.js
    A ckanext/reclinepreview/theme/public/vendor/underscore/underscore.js
    A ckanext/reclinepreview/theme/public/vendor/underscore/underscore.min.js
    A ckanext/reclinepreview/theme/templates/recline.html
    A ckanext/resourceproxy/__init__.py
    A ckanext/resourceproxy/controller.py
    A ckanext/resourceproxy/plugin.py
    A ckanext/resourceproxy/tests/__init__.py
    A ckanext/resourceproxy/tests/file_server.py
    A ckanext/resourceproxy/tests/static/huge.json
    A ckanext/resourceproxy/tests/static/test.json
    A ckanext/resourceproxy/tests/test_proxy.py
    M doc/configuration.rst
    A doc/email-notifications.rst
    M doc/index.rst
    M doc/toolkit.rst
    M doc/writing-extensions.rst
    M setup.py
    M test-core.ini

  Log Message:
  -----------
  Merge branch 'master' into clean-model-dictize


  Commit: 2b6101a81a129ec77fba1b1ab63396b54e662e9d
      https://github.com/okfn/ckan/commit/2b6101a81a129ec77fba1b1ab63396b54e662e9d
  Author: tobes <toby.junk at gmail.com>
  Date:   2012-12-20 (Thu, 20 Dec 2012)

  Changed paths:
    M ckan/lib/dictization/model_dictize.py

  Log Message:
  -----------
  Fix dictization fix - missing import


Compare: https://github.com/okfn/ckan/compare/5d1e58018c3e...2b6101a81a12


More information about the ckan-changes mailing list