<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>CKAN: Ticket Query</title>
    <link>http://localhost/query?status=!closed&amp;priority=awaiting+triage&amp;order=status</link>
    <description>The open source data portal software</description>
    <language>en-US</language>
    <image>
      <title>CKAN</title>
      <url>http://assets.okfn.org/p/ckan/img/ckan_logo_shortname.png</url>
      <link>http://localhost/query?status=!closed&amp;priority=awaiting+triage&amp;order=status</link>
    </image>
    <generator>Trac 0.12.3</generator>
    <item>
        <link>http://localhost/ticket/1785</link>
        <guid isPermaLink="false">http://localhost/ticket/1785</guid>
        <title>#1785: Replace 'Revisions' page with site-wide activity stream</title>
        <pubDate>Tue, 07 Feb 2012 16:34:18 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
Replace the /revision page with a /activity page showing a site-wide activity stream of all activities in the site. Or perhaps the site-wide activity stream can go somewhere on the front page of the site instead?
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1785#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2475</link>
        <guid isPermaLink="false">http://localhost/ticket/2475</guid>
        <title>#2475: Upgrade trac.ckan.org to trac 0.12.3</title>
        <pubDate>Tue, 29 May 2012 18:46:16 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
This is not trivial, requires a database upgrade. But 0.12.3 has some nice new features (multiple vcs repository support, ticket comment editing and nicer preview) and the latest spam filter plugin requires 0.12.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://trac.edgewall.org/wiki/ChangeLog"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/ChangeLog&lt;/a&gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2475#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2477</link>
        <guid isPermaLink="false">http://localhost/ticket/2477</guid>
        <title>#2477: Add extensions section to readthedocs</title>
        <pubDate>Wed, 30 May 2012 15:54:04 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <description>&lt;p&gt;
Need a central up to date place for currently supported extensions (closest we have is &lt;a class="ext-link" href="http://wiki.ckan.org/List_of_Extensions"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/List_of_Extensions&lt;/a&gt;) &amp;amp; their documentation. I suggest this gets added to  a dedicated section of docs.ckan.org
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2477#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2478</link>
        <guid isPermaLink="false">http://localhost/ticket/2478</guid>
        <title>#2478: Get NeverNotifyUpdaterPlugin installed on trac.ckan.org</title>
        <pubDate>Wed, 30 May 2012 16:52:14 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/2478#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2516</link>
        <guid isPermaLink="false">http://localhost/ticket/2516</guid>
        <title>#2516: Make 'Assign to:' field on trac.ckan.org into a dropdown list</title>
        <pubDate>Wed, 13 Jun 2012 09:07:22 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
there's a setting for this
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2516#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2537</link>
        <guid isPermaLink="false">http://localhost/ticket/2537</guid>
        <title>#2537: Test and document ckanbuild</title>
        <pubDate>Fri, 15 Jun 2012 15:48:48 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckanbuild"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanbuild&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Verify that what's there so far still works, write a README explaining how it works
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2537#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2538</link>
        <guid isPermaLink="false">http://localhost/ticket/2538</guid>
        <title>#2538: Add multiple-instance support to ckanbuild</title>
        <pubDate>Fri, 15 Jun 2012 15:51:39 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
Probably use ansible to do this. To create an instance, create a dir at /etc/ckan/MYSITE, and put MYSITE.wsgi, MYSITE.ini and who.ini files in it. Also put a MYSITE file in /etc/apache2/sites-available. See the example files already present in ckanbuild. Booting a new site should be a single command.
&lt;/p&gt;
&lt;p&gt;
May not handle the postgres/solr/elastic-search side of things yet, could just require the user to set these up herself first and then pass them as args to the create-instance command.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2538#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2539</link>
        <guid isPermaLink="false">http://localhost/ticket/2539</guid>
        <title>#2539: Investigate the existing ckan debian package for ckanbuild</title>
        <pubDate>Fri, 15 Jun 2012 15:54:21 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
Do we want to build on top of the existing debian packaging code? Or throw it away and start fresh?
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2539#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2540</link>
        <guid isPermaLink="false">http://localhost/ticket/2540</guid>
        <title>#2540: Implement a way of upgrading ckan sites using ckanbuild</title>
        <pubDate>Fri, 15 Jun 2012 15:55:40 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
When there are multiple ckan sites installed on a single server via ckanbuild, there needs to be some way of upgrading them all to a new ckan version at once.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2540#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2541</link>
        <guid isPermaLink="false">http://localhost/ticket/2541</guid>
        <title>#2541: Add non-core extensions to ckanbuild</title>
        <pubDate>Fri, 15 Jun 2012 15:57:06 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
We want some extensions from outside of CKAN core to be included in ckanbuild. These would be pip installed into the virtualenv before packaging the debian package. Decide which extensions to include.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2541#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2542</link>
        <guid isPermaLink="false">http://localhost/ticket/2542</guid>
        <title>#2542: Create jenkins job to run ckanbuild, and run tests</title>
        <pubDate>Fri, 15 Jun 2012 15:58:08 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
It should run the script to create the debian package, boot a VM, install the debian package on the VM, boot a CKAN instance, then run the tests.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2542#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/3021</link>
        <guid isPermaLink="false">http://localhost/ticket/3021</guid>
        <title>#3021: Logout doesn't work without JS</title>
        <pubDate>Tue, 20 Nov 2012 11:19:10 GMT</pubDate>
        
        <dc:creator>johnmartin</dc:creator>

        <description>&lt;p&gt;
Essentially, the functionality should be as follows:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add logout link that has &lt;tt&gt;.js-hide&lt;/tt&gt; attached to it within the header that isn't hidden within a dropdown
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
See &lt;a class="ext-link" href="http://plus.google.com/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://plus.google.com/&lt;/a&gt; (when logged in) with and without JS to see an example of the actual sign-out working without JS
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/3021#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/235</link>
        <guid isPermaLink="false">http://localhost/ticket/235</guid>
        <title>#235: Resource format normalization and detection</title>
        <pubDate>Mon, 18 Jan 2010 15:13:24 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Try to gather proper MIME  information for all package resources in CKAN. This is a shared ticket with dcat-tools (&lt;a class="ext-link" href="https://bitbucket.org/pudo/dcat-tools"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/pudo/dcat-tools&lt;/a&gt;), i.e. opendatasearch.org. This can then also be used by ckanrdf, the CKAN RDF conversion service.
&lt;/p&gt;
&lt;p&gt;
Sub-tasks:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Create a Google Spreadsheet with two Worksheets: "MIME-Mappings", i.e. "CSV" -&amp;gt; "text/csv" and "Name mappings", i.e. "text/csv" -&amp;gt; "Comma-Separated Spreadsheet".
&lt;/li&gt;&lt;li&gt;Collect and map surface forms from all CKANs
&lt;/li&gt;&lt;li&gt;Access this via Swiss and apply, store as a &lt;a class="missing wiki"&gt;PackageResource?&lt;/a&gt; extra field pending &lt;a class="closed ticket" href="http://localhost/ticket/826" title="enhancement: Resource 'extra' fields (closed: fixed)"&gt;#826&lt;/a&gt; (Resource extras).
&lt;/li&gt;&lt;li&gt;Add heuristics for format auto-detections:
&lt;ul&gt;&lt;li&gt;Map well-known file extensions
&lt;/li&gt;&lt;li&gt;Recognize obvious magic (Zip, Tar)
&lt;/li&gt;&lt;li&gt;Peek into &lt;a class="missing wiki"&gt;Zipfile/Tarfiles?&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Define a convention for generic data types (many CKAN packages have only "Spreadsheet" defined, either detect specific type or set MIME to */tabular-data or similar)
&lt;/li&gt;&lt;li&gt;See also: &lt;a class="closed ticket" href="http://localhost/ticket/816" title="enhancement: Autocomplete for the resource format field (closed: fixed)"&gt;#816&lt;/a&gt; (Autocomplete for the resource format field)
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/235#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/250</link>
        <guid isPermaLink="false">http://localhost/ticket/250</guid>
        <title>#250: RDF link in Atom feed</title>
        <pubDate>Thu, 18 Feb 2010 15:41:35 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Add link to RDF representation of a package in our Atom feed.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/250#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/253</link>
        <guid isPermaLink="false">http://localhost/ticket/253</guid>
        <title>#253: Package relationships</title>
        <pubDate>Mon, 22 Feb 2010 16:05:21 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;h1 id="Overview"&gt;Overview&lt;/h1&gt;
&lt;p&gt;
Functionality to formally associate packages. We see a need for specific parent-child, inheriting or dependency relations. Not only should this help navigation between packages in the web interface, but it also provides a mechanism to automatically pull dependencies when downloading a data package, in a similar manner as we see in software package management.
&lt;/p&gt;
&lt;h1 id="Examples"&gt;Examples&lt;/h1&gt;
&lt;ol&gt;&lt;li&gt;There are 27 packages in data.gov.uk to do with the Data4NR's Health Poverty Index. There is currently no common link between these, unless you search for 'HPI' (which also brings up House Price Index), or look under tag 'health' (which also has 600 other results). There should be a link on each HPI package page to navigate to the other 'sibling' HPI packages, and to a 'root' package that has info about the set. This could be partially achieved using the existing tag or group concepts, but a more explicit/official/obvious marking of their relationship could be beneficial.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;In ckan.net is freedict, a collection of translation dictionaries. You could make each dictionary a child package and use this system. But it would probably be better to make each dictionary a different resource in the same package. (There are other ideas to denote a resource as the data making up a 'portion' of package, or a 'whole' of the package, to help people downloading datasets in the software package style.)
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;OSM has had some Naptan data imported (bus stops), with special permission - i.e. a more liberal license. It would be useful to show this link on both OSM and Naptan packages in CKAN: OSM 'derives from' Naptan with a comment about the license change. I'm not sure this is useful to an automatic download or use of these datasets, but may aid exploration on the CKAN website and understanding the provenance of the bus stop data on it.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;IPCC collection of data linked / mirrored. Not sure if there are useful relationships here?
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;Dracos gets postbox locations from crowd sourcing and OSM. We could say Dracos 'derives from' OSM.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
See more examples discussed here: &lt;a class="ext-link" href="http://trac.ckan.org/ticket/253"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.ckan.org/ticket/253&lt;/a&gt;
&lt;/p&gt;
&lt;h1 id="Implementation"&gt;Implementation&lt;/h1&gt;
&lt;p&gt;
This is split into four tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Model: &lt;a class="closed ticket" href="http://localhost/ticket/254" title="enhancement: Package relationships - 1. model (closed: fixed)"&gt;ticket:254&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Read in WUI: &lt;a class="closed ticket" href="http://localhost/ticket/255" title="enhancement: Package relationships - 2. Read in WUI (closed: fixed)"&gt;ticket:255&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Edit in WUI: &lt;a class="assigned ticket" href="http://localhost/ticket/256" title="requirement: Package relationships - 3. Edit in WUI (assigned)"&gt;ticket:256&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;API: &lt;a class="closed ticket" href="http://localhost/ticket/257" title="enhancement: Package relationships - 4. Read in API (closed: fixed)"&gt;ticket:257&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
No need for write access to be provided API for the moment.
&lt;/p&gt;
&lt;p&gt;
This ticket also encompasses &lt;a class="closed ticket" href="http://localhost/ticket/169" title="enhancement: Package derivations (closed: duplicate)"&gt;ticket:169&lt;/a&gt; (Package derivations) and &lt;a class="closed ticket" href="http://localhost/ticket/176" title="enhancement: Package dependencies (closed: duplicate)"&gt;ticket:176&lt;/a&gt; (Package dependencies).
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/253#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/277</link>
        <guid isPermaLink="false">http://localhost/ticket/277</guid>
        <title>#277: Set some config options / settings in WUI (extension)</title>
        <pubDate>Mon, 22 Mar 2010 16:21:01 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;h2 id="Usecase"&gt;Use case&lt;/h2&gt;
&lt;p&gt;
As a ckan administrator I want to easily change options about the CKAN install.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;h3 id="SettingstobeinDB"&gt;Settings to be in DB&lt;/h3&gt;
&lt;p&gt;
Suggested:
&lt;/p&gt;
&lt;pre class="wiki"&gt;## Title of site (using in several places including templates and &amp;lt;title&amp;gt; tag
ckan.site_title = CKAN
## Logo image to use (replaces site_title string on front page if defined)
ckan.site_logo = http://assets.okfn.org/p/ckan/img/ckan_logo_box.png
## Site tagline / description (used on front page)
ckan.site_description =
## Used in creating some absolute urls (such as rss feeds, css files) and
## dump filenames
ckan.site_url =
## Favicon (default is the CKAN software favicon)
ckan.favicon = http://assets.okfn.org/p/ckan/img/ckan.ico
## An 'id' for the site (using, for example, when creating entries in a common search index)
## If not specified derived from the site_url
# ckan.site_id = ckan.net
## API url to use (e.g. in AJAX callbacks)
## Enable if the API is at a different domain
# ckan.api_url = http://www.ckan.net
## html content to be inserted just before &amp;lt;/body&amp;gt; tag (e.g. google analytics code)
## NB: can use html e.g. &amp;lt;strong&amp;gt;blah&amp;lt;/strong&amp;gt;
## NB: can have multiline strings just indent following lines
# ckan.template_footer_end =
&lt;/pre&gt;&lt;p&gt;
NB: these will still need to be stored somewhere for loading on initialization. do this in db init function ...
&lt;/p&gt;
&lt;h3 id="SettingsOptionsKeyValuesTable"&gt;Settings / Options / &lt;a class="missing wiki"&gt;KeyValues?&lt;/a&gt; Table&lt;/h3&gt;
&lt;p&gt;
Columns:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[namespace]: ? only if &lt;a class="missing wiki"&gt;KeyValues?&lt;/a&gt; (for settings this would then always be settings)
&lt;/li&gt;&lt;li&gt;key
&lt;/li&gt;&lt;li&gt;label
&lt;/li&gt;&lt;li&gt;value (json)
&lt;/li&gt;&lt;li&gt;type (e.g. date and to specify in advance what type should be)
&lt;/li&gt;&lt;li&gt;description
&lt;/li&gt;&lt;li&gt;tags: ?? (for grouping ...)
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="LoadingsettingsfromDB"&gt;Loading settings from DB&lt;/h3&gt;
&lt;p&gt;
Do this in ckan/config/environment.py
&lt;/p&gt;
&lt;h3 id="WUI"&gt;WUI&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;/ckan-admin/settings
&lt;/li&gt;&lt;li&gt;Show label, plus description plus text field
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Depends"&gt;Depends&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Would be part of ckan-admin section and hence build on &lt;a class="closed ticket" href="http://localhost/ticket/833" title="enhancement: [super] Administrative dashboard extension (closed: fixed)"&gt;ticket:833&lt;/a&gt; (Administrative dashboard)
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/277#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/285</link>
        <guid isPermaLink="false">http://localhost/ticket/285</guid>
        <title>#285: Paginate list of packages on tag read page</title>
        <pubDate>Wed, 07 Apr 2010 18:23:26 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Is this worth doing? On hmg.ckan.net start to have a lot of packages with a given tag ...
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/285#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/301</link>
        <guid isPermaLink="false">http://localhost/ticket/301</guid>
        <title>#301: Package discussion pages</title>
        <pubDate>Mon, 26 Apr 2010 16:57:13 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
A package discussion page is like a wikipedia discussion page: an editable free text page for people to have discussion/post comments about a given package.
&lt;/p&gt;
&lt;p&gt;
It provides a way for people to make suggestions about a package without needing access to main package.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/301#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/765</link>
        <guid isPermaLink="false">http://localhost/ticket/765</guid>
        <title>#765: Read-only mode - API usage</title>
        <pubDate>Tue, 26 Oct 2010 11:18:17 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
All writes to the API are captured and you are returned an error explaining the reason.
&lt;/p&gt;
&lt;p&gt;
Possible errors:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;503 temporary maintenance
&lt;/li&gt;&lt;li&gt;403 forbidden (if server if permanently read-only)
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/765#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/909</link>
        <guid isPermaLink="false">http://localhost/ticket/909</guid>
        <title>#909: DCat importer for CKAN</title>
        <pubDate>Mon, 17 Jan 2011 12:05:58 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;p&gt;
Write an importer that supports most well known variants of DCat in importing the data as CKAN packages. In particular, the following sources should be supported:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CKANrdf generated exports
&lt;/li&gt;&lt;li&gt;opengov.se RDF (not really DCat)
&lt;/li&gt;&lt;li&gt;Sunlight Nationdatacatalog as harvested by dcat-tools.
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/909#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/979</link>
        <guid isPermaLink="false">http://localhost/ticket/979</guid>
        <title>#979: Edit Resource extras in the API</title>
        <pubDate>Fri, 11 Feb 2011 13:09:37 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Follows on from &lt;a class="closed ticket" href="http://localhost/ticket/826" title="enhancement: Resource 'extra' fields (closed: fixed)"&gt;#826&lt;/a&gt;. We can now edit resource extras in the WUI (to some extent - see &lt;a class="closed ticket" href="http://localhost/ticket/978" title="enhancement: Edit Resource including Extras in Web UI (closed: fixed)"&gt;#978&lt;/a&gt; for remaining issues) and we can view resource extras in the API, but we can't yet edit them in the API.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/979#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1069</link>
        <guid isPermaLink="false">http://localhost/ticket/1069</guid>
        <title>#1069: Stub datasets (request for datasets)</title>
        <pubDate>Fri, 01 Apr 2011 14:08:39 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Idea is to have stubs for datasets that someone wants but don't yet exist (or haven't been discovered) in the way one has stub pages on a wiki.
&lt;/p&gt;
&lt;p&gt;
We could do this within the existing model by a slight 'abuse' - create a dataset and mark it with a special tag e.g. todo.does-not-yet-exist or similar ...
&lt;/p&gt;
&lt;p&gt;
(Just as we have datasets listed that exist but aren't available ...)
&lt;/p&gt;
&lt;p&gt;
Alternative would be to have a request for datasets subsystem.
&lt;/p&gt;
&lt;p&gt;
I prefer the stub dataset model because it's simpler, provides a simple workflow (as a dataset is found or comes into existence), and the package page provides a natural space in which to accumulate information about what is wanted and what exists.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Agree a new dedicated tag. e.g. todo.does-not-exist
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Related"&gt;Related&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;This ticket has clear links to &lt;a class="ext-link" href="http://getthedata.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://getthedata.org/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1069#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1130</link>
        <guid isPermaLink="false">http://localhost/ticket/1130</guid>
        <title>#1130: First time users</title>
        <pubDate>Mon, 09 May 2011 10:59:21 GMT</pubDate>
        
        <dc:creator>lucychambers</dc:creator>

        <description>&lt;p&gt;
Send users to FAQ first time on CKAN
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1130#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1240</link>
        <guid isPermaLink="false">http://localhost/ticket/1240</guid>
        <title>#1240: [super] API v4</title>
        <pubDate>Sun, 24 Jul 2011 16:41:00 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
(Just creating this ticket as somewhere to keep notes)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Decide on REST api versus action API
&lt;ul&gt;&lt;li&gt;Do we want to support both?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Tidying
&lt;ul&gt;&lt;li&gt;Unify on /api/v{version num}/... structure (do we want a default option that points to current default? e.g. /api/default/ ...)
&lt;/li&gt;&lt;li&gt;extras merged into normal field list in package
&lt;/li&gt;&lt;li&gt;Get rid of /rest/ so just have api/v1/package
&lt;/li&gt;&lt;li&gt;Get rid of separation of search api from 'rest' api
&lt;ul&gt;&lt;li&gt;Propose that GET on REST index is search e.g. /package/?q=...
&lt;ul&gt;&lt;li&gt;This is also resolves issue whereby GET at root returns whole package set (a *bad* idea) as this would now become the matchall search query (with a default limit on items returned)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Resource read/write in API (separate from package)
&lt;ul&gt;&lt;li&gt;Does this need authorization work?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;user/account API - read/write
&lt;/li&gt;&lt;li&gt;Remove autocomplete -- can just use search
&lt;ul&gt;&lt;li&gt;Do not worry about backwards compat as should only be used in our js (if others using it too bad!)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1240#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1255</link>
        <guid isPermaLink="false">http://localhost/ticket/1255</guid>
        <title>#1255: Drupal consistancy checks.</title>
        <pubDate>Mon, 01 Aug 2011 17:32:48 GMT</pubDate>
        
        <dc:creator>kindly</dc:creator>

        <description>&lt;p&gt;
Make a robust way to make sure the drupal database is consistent with the ckan data.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1255#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1287</link>
        <guid isPermaLink="false">http://localhost/ticket/1287</guid>
        <title>#1287: NAVL validation errors - Junk fields should be listed explicitly</title>
        <pubDate>Wed, 24 Aug 2011 16:25:02 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
When you create a package, but specify a key that is not allowed (e.g. 'relationships') then you get error message:
&lt;/p&gt;
&lt;pre class="wiki"&gt;{"__junk": ["The input field __junk was not expected."]}
&lt;/pre&gt;&lt;p&gt;
It should mention the actual key which is not expected. e.g.
&lt;/p&gt;
&lt;pre class="wiki"&gt;{"relationships": ["The input field 'relationships' was not expected."]}
&lt;/pre&gt;&lt;p&gt;
Kindly said that James' version of NAVL was better in this respect, so this might be best solved by moving to that.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1287#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1358</link>
        <guid isPermaLink="false">http://localhost/ticket/1358</guid>
        <title>#1358: Generate configuration documentation automatically from the deployment_ini_tmpl file</title>
        <pubDate>Mon, 26 Sep 2011 22:32:30 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
At the moment documentation of config options is duplicated between source (deployment_ini_tmpl in ckan/config which is used to generate user ini file) and the docs.
&lt;/p&gt;
&lt;p&gt;
Suggest we write a script that automatedly generates reference documentation for the config from the source.
&lt;/p&gt;
&lt;p&gt;
May be obsoleted by &lt;a class="assigned ticket" href="http://localhost/ticket/277" title="enhancement: Set some config options / settings in WUI (extension) (assigned)"&gt;#277&lt;/a&gt; (some config in db)
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1358#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1458</link>
        <guid isPermaLink="false">http://localhost/ticket/1458</guid>
        <title>#1458: Support previewing kml files in data viewer</title>
        <pubDate>Thu, 10 Nov 2011 14:48:08 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1151" title="enhancement: Preview for geographic data should be a map (closed: wontfix)"&gt;#1151&lt;/a&gt; (viewing geo data)
&lt;/p&gt;
&lt;p&gt;
E.g. preview of &lt;a class="ext-link" href="http://thedatahub.org/dataset/louisvillecrime"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/louisvillecrime&lt;/a&gt; should bring up a map
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1458#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1507</link>
        <guid isPermaLink="false">http://localhost/ticket/1507</guid>
        <title>#1507: Minor fixes to dataset add on Group edit form - 0.5d</title>
        <pubDate>Mon, 05 Dec 2011 12:33:49 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Group edit dataset add form needs some work
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Dataset name is not cleared when you add
&lt;/li&gt;&lt;li&gt;No way to remove item from list of datasets to be added if I make a mistake
&lt;/li&gt;&lt;li&gt;(2nd Apr 2012) It now seems that option to add multiple datasets at once has disappeared (perhaps during the CSS/HTML refactor ...)
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1507#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1550</link>
        <guid isPermaLink="false">http://localhost/ticket/1550</guid>
        <title>#1550: Allow simple auth via the API</title>
        <pubDate>Fri, 16 Dec 2011 15:29:29 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
It should be possible to pass userid/username and api key and obtain a response from CKAN for external services that use CKAN auth. Those services shouldn't be talking to the DB directly.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1550#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1571</link>
        <guid isPermaLink="false">http://localhost/ticket/1571</guid>
        <title>#1571: [super] Issues Extension</title>
        <pubDate>Mon, 19 Dec 2011 11:30:25 GMT</pubDate>
        
        <dc:creator>jilly mathews</dc:creator>

        <description>&lt;p&gt;
"Proper" issues extension.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/issues"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/issues&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Code: &lt;a class="ext-link" href="https://github.com/okfn/ckanext-issues"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-issues&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Overview
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;This would be an extension and improvement of existing todo extension - &lt;a class="closed ticket" href="http://localhost/ticket/842" title="enhancement: Todo list CKAN extension (closed: fixed)"&gt;#842&lt;/a&gt; (&lt;a class="ext-link" href="https://github.com/okfn/ckanext-issues"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-issues&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Current extension does work but lacks polish
&lt;/li&gt;&lt;li&gt;Should we polish or do significant improvements?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Functionality - see etherpad
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Steps"&gt;Steps&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;(Rename todo(s) -&amp;gt; issue(s) in existing extension)&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1571#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1652</link>
        <guid isPermaLink="false">http://localhost/ticket/1652</guid>
        <title>#1652: How we intergrate with Drupal Multiligual?</title>
        <pubDate>Mon, 16 Jan 2012 10:31:34 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;ul&gt;&lt;li&gt;Analysis of how/where we can integrate with Drupal Multilingual
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Is it likely to access CKAN via /en/data/... or /data/en/... (not sure, probably former) and we need to make sure that it ends up at /en/...
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Check with Ian for other issues.
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1652#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1684</link>
        <guid isPermaLink="false">http://localhost/ticket/1684</guid>
        <title>#1684: Remove all config from ckanext-archiver</title>
        <pubDate>Thu, 19 Jan 2012 14:37:01 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
ckanext-archiver currently has a settings file (and a default) and it should be passed in all relevant information from the context.
&lt;/p&gt;
&lt;p&gt;
Remove all settings (ARCHIVE_DIR and MAX_CONTENT_LENGTH and others) and pass them in from CKAN.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1684#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1749</link>
        <guid isPermaLink="false">http://localhost/ticket/1749</guid>
        <title>#1749: Allow creating activity details through API</title>
        <pubDate>Sun, 05 Feb 2012 18:10:06 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
Currently the activity_create() logic action function only lets you create top-level activity stream items, and not their related activity details. It should handle activity details via nested dicts.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1749#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1778</link>
        <guid isPermaLink="false">http://localhost/ticket/1778</guid>
        <title>#1778: Replace classmethod's with module-level functions</title>
        <pubDate>Mon, 06 Feb 2012 15:53:34 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
In many places we have @classmethods where simple module-level functions would do (and would be more idiomatic in Python), e.g. the &lt;tt&gt;get()&lt;/tt&gt; classmethods in the model/ classes.
&lt;/p&gt;
&lt;p&gt;
Doing it with module functions lets us type module.function() instead of module.Class.method().
&lt;/p&gt;
&lt;p&gt;
In many cases we're importing classes directly with &lt;tt&gt;from module import Class&lt;/tt&gt; and then doing &lt;tt&gt;Class.method()&lt;/tt&gt;, but &lt;tt&gt;from module import foo&lt;/tt&gt; is bad style: &lt;a class="ext-link" href="http://docs.python.org/dev/howto/doanddont.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.python.org/dev/howto/doanddont.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1778#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1831</link>
        <guid isPermaLink="false">http://localhost/ticket/1831</guid>
        <title>#1831: Login with email address</title>
        <pubDate>Fri, 24 Feb 2012 08:58:26 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
Users should be able to log in using either their username, or their email address, both of which are unique.
&lt;/p&gt;
&lt;p&gt;
Will require a change to &lt;a class="missing wiki"&gt;UsernamePasswordAuthenticator?&lt;/a&gt; in ckan.lib.authenticator.py and possible a useful User.by_email in the user model if it doesn't already exist.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1831#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2197</link>
        <guid isPermaLink="false">http://localhost/ticket/2197</guid>
        <title>#2197: Storage Metadata API: add/update not working with local file storage (Pairtree)</title>
        <pubDate>Tue, 28 Feb 2012 09:29:37 GMT</pubDate>
        
        <dc:creator>zydio</dc:creator>

        <description>&lt;p&gt;
If OFS is configured with Pairtree to use a local file storage, all POST requests to add/update metadata ( /api/storage/metadata/{label} ) will fail.
&lt;/p&gt;
&lt;p&gt;
This is due to the use of &lt;a class="ext-link" href="https://github.com/okfn/ofs/blob/master/ofs/remote/botostore.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;BotoOFS&lt;/a&gt; specific &lt;em&gt;private&lt;/em&gt; methods in &lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/master/ckan/controllers/storage.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;StorageAPIController.set_metadata()&lt;/a&gt;, eg: self.ofs.&lt;strong&gt;_require_bucket&lt;/strong&gt;(bucket), self.ofs.&lt;strong&gt;_get_key&lt;/strong&gt;(b, label), self.ofs.&lt;strong&gt;_update_key_metadata&lt;/strong&gt;(k, metadata) ... those methods can't be found in &lt;a class="ext-link" href="https://github.com/okfn/ofs/blob/master/ofs/local/pairtreestore.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;POTFS&lt;/a&gt; and this causes errors.
The API should use only &lt;a class="ext-link" href="https://github.com/okfn/ofs/blob/master/ofs/base.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;OFSInterface&lt;/a&gt; methods, or should conditionally make calls based off the actual type of &lt;em&gt;self.ofs&lt;/em&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;PS: I did set "ckan" as "Component" in the ticket because storage has been integrated back into the core in CKAN 1.6&lt;/em&gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2197#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2234</link>
        <guid isPermaLink="false">http://localhost/ticket/2234</guid>
        <title>#2234: Write a CKAN extension for pulling items from RSS/Atom feeds into CKAN templates</title>
        <pubDate>Fri, 16 Mar 2012 12:59:15 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
You configure the extension with some RSS and/or Atom feeds, it automatically reads items from these feeds and makes them available in the template context, you write a custom template to e.g. display 'news' items from a Wordpress blog on your front page.
&lt;/p&gt;
&lt;p&gt;
This extension might be simpler and less fragile than ckanext-wordpresser, and also more generally useful.
&lt;/p&gt;
&lt;p&gt;
Details
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Mark Pilgrim's Universal Feed Parser might be useful for reading the feeds
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Feed items should probably be cached somewhere
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Suggested
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The news item 'widget' should be wrapped in a known class so that it can be styled easily regardless of the format of any HTML entry.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;For non-HTML formatted items (Atom should tell you the content type of the entry) maybe we should have a template for rendering each item along with any enclosures that it might reference
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Caching is pretty crucial and should probably obey the ttl of the feed.
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2234#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2284</link>
        <guid isPermaLink="false">http://localhost/ticket/2284</guid>
        <title>#2284: Local queries/views/viz in Related stuff.</title>
        <pubDate>Thu, 12 Apr 2012 08:18:20 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
From &lt;a class="closed ticket" href="http://localhost/ticket/2204" title="enhancement: [super] Related (Stuff) Extension (closed: fixed)"&gt;#2204&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
not sure how much we have thought through using this for storing queries / views / visualizations coming from our data viewer. In particular, wonder if this necessitates some kind of support for arbitrary json data ...
&lt;/p&gt;
&lt;p&gt;
### Comments
&lt;/p&gt;
&lt;p&gt;
In the simplest form, right now all I need to store is store the url to the resource plus hashbang config for recline. That would be super easy ...
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2284#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2329</link>
        <guid isPermaLink="false">http://localhost/ticket/2329</guid>
        <title>#2329: Add back in RSS/Atom links on relevant pages</title>
        <pubDate>Thu, 26 Apr 2012 12:15:40 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
E.g. on dataset page, on revision page, on user page and on search results.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2329#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2334</link>
        <guid isPermaLink="false">http://localhost/ticket/2334</guid>
        <title>#2334: Improved data import</title>
        <pubDate>Sat, 28 Apr 2012 22:21:02 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Placeholder for thinking about this ...
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Allow users to configure info for CSV import (e.g. separators, quotes etc)
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2334#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2335</link>
        <guid isPermaLink="false">http://localhost/ticket/2335</guid>
        <title>#2335: Unicode characters don't work in CKAN ini files</title>
        <pubDate>Mon, 30 Apr 2012 12:42:06 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
You get a &lt;a class="missing wiki"&gt;UnicodeDecodeError?&lt;/a&gt;, looks like it tries to decode the ini file as ascii. This is a problem because someone might try to set their site description to something with an umlaut in it, for example.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2335#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2337</link>
        <guid isPermaLink="false">http://localhost/ticket/2337</guid>
        <title>#2337: Sort out ini file confusion in docs</title>
        <pubDate>Mon, 30 Apr 2012 14:57:56 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
For example if you follow the source install instructions then you have development.ini, then when you go onto Post-Installation Setup it talks about std.ini. People don't realise that these files are the same.
&lt;/p&gt;
&lt;p&gt;
Either fix the docs or fix CKAN to use same ini file names in package and source installs/
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2337#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2370</link>
        <guid isPermaLink="false">http://localhost/ticket/2370</guid>
        <title>#2370: Add examples of all config settings in default config file</title>
        <pubDate>Thu, 03 May 2012 10:50:37 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
The default config file should contains examples (maybe commented out) for all config variables. Makes it easier to edit the config. For example openid_enabled is not in there.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2370#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2378</link>
        <guid isPermaLink="false">http://localhost/ticket/2378</guid>
        <title>#2378: Extract metadata directly from resources that contain it.</title>
        <pubDate>Thu, 10 May 2012 11:58:08 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
Some files that might be uploaded as resources on a dataset, such as some image formats, already contain metadata.  For example some jpeg files might contain Exif ( &lt;a class="ext-link" href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://en.wikipedia.org/wiki/Exchangeable_image_file_format&lt;/a&gt; ) data.
&lt;/p&gt;
&lt;p&gt;
[ ] Obtain list of embedded metadata 'standards'
&lt;/p&gt;
&lt;p&gt;
[ ] Where the metadata is available it  should be added as extra fields on the resource that is uploaded.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] HTML?
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] Image formats (exif/gif etc)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] PDF
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[ ] Eventually consider ...
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] MS Office documents
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2378#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2404</link>
        <guid isPermaLink="false">http://localhost/ticket/2404</guid>
        <title>#2404: Auto-screenshot for related items</title>
        <pubDate>Mon, 21 May 2012 06:55:47 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
As a User I want an image generated for my related item automatically so that I do not have to take picture myself and upload it somewhere
&lt;/p&gt;
&lt;p&gt;
Implementation: (?) Use phantomjs or something like &lt;a class="ext-link" href="http://snapito.com/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://snapito.com/&lt;/a&gt;
Investigate for 1.8, will be needed for TDH Oct.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2404#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2473</link>
        <guid isPermaLink="false">http://localhost/ticket/2473</guid>
        <title>#2473: Make datstorer store field ordering in _meta field</title>
        <pubDate>Tue, 29 May 2012 12:11:32 GMT</pubDate>
        
        <dc:creator>kindly</dc:creator>

        <description>&lt;p&gt;
Recline views should have a default table order, being the same as the csv that was imported.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2473#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2513</link>
        <guid isPermaLink="false">http://localhost/ticket/2513</guid>
        <title>#2513: Dataproxy should not default to utf8</title>
        <pubDate>Wed, 13 Jun 2012 08:23:40 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
Unless explicitly told by the source web server the dataproxy should not assume that the content it has can be encoded as UTF-8.  Even though the chars from 128 - 255 overlap an attempt to decode some byte array as utf8 will fail whenever a latin1 char whose bitpattern has the MSB set.
&lt;/p&gt;
&lt;p&gt;
This will mean that the UTF8Recoder can be more rigid in its acceptance of data, Postel aside.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2513#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2520</link>
        <guid isPermaLink="false">http://localhost/ticket/2520</guid>
        <title>#2520: Document undocumented config options</title>
        <pubDate>Wed, 13 Jun 2012 11:52:48 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
There are 21 undocumented config options in CKAN, some of which are not mentioned in the config file template either:
&lt;/p&gt;
&lt;p&gt;
ckan.admin.name
ckan.admin.email
ckan.default.group_type
ckan.page_cache_enabled
ckan.cache_enabled
ckan.cache_expires
ckan.extra_resource_fields
ckan.extra_resource_group_fields
ckan.storage.key_prefix
ckan.storage.max_content_length
ckan.feeds.authority_name *
ckan.feeds.date *
ckan.feeds.author_name *
ckan.feeds.author_link *
ckan.mail_from
ckan.gravatar_default *
ckan.plugins
ckan.api_url
ckan.auth.profile
ckan.datastore.enabled
ckan.tracking_enabled
&lt;/p&gt;
&lt;p&gt;
There are also some options that are in the default deployment.ini even though they're deprecated:
&lt;/p&gt;
&lt;p&gt;
ckan.async_notifier
carrot_messaging_library
ckan.build_search_index_synchronously
&lt;/p&gt;
&lt;p&gt;
See email to ckan-dev from David Read: &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2012-June/002447.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2012-June/002447.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
It'd be best if the docs could be automatically pulled from the source into sphinx using autodoc, see &lt;a class="assigned ticket" href="http://localhost/ticket/1358" title="enhancement: Generate configuration documentation automatically from the ... (assigned)"&gt;#1358&lt;/a&gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2520#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2535</link>
        <guid isPermaLink="false">http://localhost/ticket/2535</guid>
        <title>#2535: SSL certificate for DataHub + https by default</title>
        <pubDate>Fri, 15 Jun 2012 11:00:27 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
&lt;a class="missing wiki"&gt;DataHub?&lt;/a&gt; is increasingly used and we should ensure it uses ssl as part of general security.
&lt;/p&gt;
&lt;p&gt;
See also &lt;a class="closed ticket" href="http://localhost/ticket/1446" title="enhancement: Data Explorer v2 (closed: fixed)"&gt;#1446&lt;/a&gt; (Need to support https login for multiple instances as part of the CKAN package install)
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2535#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2546</link>
        <guid isPermaLink="false">http://localhost/ticket/2546</guid>
        <title>#2546: ODS Managing homepage content</title>
        <pubDate>Mon, 18 Jun 2012 10:54:02 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;h2 id="Requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;
Require the ability for users to control some level of content that is visible on the home page of their ODS installation.  This may be through RSS/Atom feeds (see &lt;a class="assigned ticket" href="http://localhost/ticket/2234" title="enhancement: Write a CKAN extension for pulling items from RSS/Atom feeds into CKAN ... (assigned)"&gt;#2234&lt;/a&gt;) or another mechanism but should result in admins being able to change blocks of text on their homepage.
&lt;/p&gt;
&lt;p&gt;
This should not be configuration, but accessible through WUI.
&lt;/p&gt;
&lt;h2 id="Interface"&gt;Interface&lt;/h2&gt;
&lt;p&gt;
None
&lt;/p&gt;
&lt;h2 id="UserStories"&gt;User Stories&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;As a system administrator I want to have control over content displayed on the front page beyond featured/popular items.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;As a system administrator I don't want to manage content through having to write an extension.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;h2 id="Tasks"&gt;Tasks&lt;/h2&gt;
&lt;p&gt;
[ ] Analysis
&lt;/p&gt;
&lt;h2 id="Estimates"&gt;Estimates&lt;/h2&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2546#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2547</link>
        <guid isPermaLink="false">http://localhost/ticket/2547</guid>
        <title>#2547: ODS Initial data sets</title>
        <pubDate>Mon, 18 Jun 2012 10:55:06 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;h2 id="Requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;
The ODS demo site will need data adding, initially as fixtures but it would also be useful if we started evaluating datasets that we can ship with ODS installations (at least in the UK) from places such as DGU and ONS.
&lt;/p&gt;
&lt;p&gt;
May wish to create a ticket for making sure the datasets within the system are reset every X hours. Perhaps.
&lt;/p&gt;
&lt;h2 id="Interface"&gt;Interface&lt;/h2&gt;
&lt;p&gt;
None
&lt;/p&gt;
&lt;h2 id="UserStories"&gt;User Stories&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;As a new system administrator for an ODS instance, I don't want to have a site devoid of any data. Geographically relevant datasets would be welcomed.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;As a bizdev person I would like to be able to demonstrate how ODS works with real datasets.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Tasks"&gt;Tasks&lt;/h2&gt;
&lt;p&gt;
[ ] Identify relevant sources for datasets
&lt;/p&gt;
&lt;p&gt;
[ ] Pick datasets
&lt;/p&gt;
&lt;p&gt;
[ ] Set them up for import
&lt;/p&gt;
&lt;h2 id="Estimates"&gt;Estimates&lt;/h2&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2547#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2548</link>
        <guid isPermaLink="false">http://localhost/ticket/2548</guid>
        <title>#2548: Object ownership for groups/package</title>
        <pubDate>Mon, 18 Jun 2012 11:02:11 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;h2 id="Requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;
We need to be able to easily determine who the owner of a dataset or group is.  Datasets and Groups should have an Owner, who may change over time but is a specific user within the CKAN instance.  It should be easy for CKAN components to determine the user and for the initial version we should ignore the can of worms labelled 'ownership transfer'.
&lt;/p&gt;
&lt;p&gt;
At this point migration is likely to be the biggest issue, and would suggest that it is acceptable that the last user to edit a dataset be set as the current owner.
&lt;/p&gt;
&lt;p&gt;
More tickets should arise as a result of this work where we may be able to optimise some queries to use the new feature.
&lt;/p&gt;
&lt;h2 id="Interface"&gt;Interface&lt;/h2&gt;
&lt;p&gt;
None
&lt;/p&gt;
&lt;h2 id="UserStories"&gt;User Stories&lt;/h2&gt;
&lt;p&gt;
None
&lt;/p&gt;
&lt;h2 id="Tasks"&gt;Tasks&lt;/h2&gt;
&lt;p&gt;
[ ] &lt;a class="missing wiki"&gt;Analysis/Clarification?&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
[ ] Tests
&lt;/p&gt;
&lt;p&gt;
[ ] Migration
&lt;/p&gt;
&lt;p&gt;
[ ] &lt;a class="missing wiki"&gt;Code/Schema?&lt;/a&gt; changes
&lt;/p&gt;
&lt;p&gt;
[ ] Documentation
&lt;/p&gt;
&lt;h2 id="Estimates"&gt;Estimates&lt;/h2&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2548#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2552</link>
        <guid isPermaLink="false">http://localhost/ticket/2552</guid>
        <title>#2552: Controlling access to features</title>
        <pubDate>Mon, 18 Jun 2012 11:26:10 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;h2 id="Requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;
To provide a freemium service it is necessary to be able to provide differing &lt;span class="underline"&gt;levels&lt;/span&gt; of functionality based on the &lt;strong&gt;type&lt;/strong&gt; of user (see &lt;a class="assigned ticket" href="http://localhost/ticket/2550" title="enhancement: User types (assigned)"&gt;#2550&lt;/a&gt;). These levels can be specific to the data hub but may require overriding functionality from core to provide these checks.
&lt;/p&gt;
&lt;p&gt;
Initial implementation should focus on limiting access to datastore disk space.
&lt;/p&gt;
&lt;h2 id="Interface"&gt;Interface&lt;/h2&gt;
&lt;p&gt;
These changes are currently only for the data hub and should be kept as much as possible within the data hub extension.
&lt;/p&gt;
&lt;h2 id="UserStories"&gt;User Stories&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;As a system component I want to find out if the current user has access to a feature (i.e. storage) and if so to what extent (xMb, xGb or unlimited).
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;As a system administrator I don't expect to need to manage the levels of users &lt;strong&gt;or&lt;/strong&gt; the features that this applies to.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;h2 id="Tasks"&gt;Tasks&lt;/h2&gt;
&lt;p&gt;
[ ] Clarification of requirements/analysis
&lt;/p&gt;
&lt;p&gt;
[ ] Tests
&lt;/p&gt;
&lt;p&gt;
[ ] Code
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] Model
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] API
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] UI
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[ ] Documentation
&lt;/p&gt;
&lt;h2 id="Estimates"&gt;Estimates&lt;/h2&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2552#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2554</link>
        <guid isPermaLink="false">http://localhost/ticket/2554</guid>
        <title>#2554: Research Virtuoso cartridges</title>
        <pubDate>Mon, 18 Jun 2012 13:37:25 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
Look into writing a cartridge for importing CKAN data into a Virtuoso quadstore
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger#How"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger#How&lt;/a&gt; Does It Work?
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2554#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2590</link>
        <guid isPermaLink="false">http://localhost/ticket/2590</guid>
        <title>#2590: Publisher dashboard</title>
        <pubDate>Mon, 25 Jun 2012 10:03:37 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
Need proper user stories but ...
&lt;/p&gt;
&lt;p&gt;
Publisher admins/editors may need a more useful group read page showing things like:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The current search
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Recent activity
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;People within the group
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Followers
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Others?
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2590#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2607</link>
        <guid isPermaLink="false">http://localhost/ticket/2607</guid>
        <title>#2607: 'Upload a file' appears on resource form when storage not enabled</title>
        <pubDate>Wed, 27 Jun 2012 13:30:08 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
if the user tries to upload a file they will get "Failed to get credentials for storage upload. Upload cannot proceed"
&lt;/p&gt;
&lt;p&gt;
Maybe add a test for it this time, this bug has appeared and reappeared before
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2607#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2619</link>
        <guid isPermaLink="false">http://localhost/ticket/2619</guid>
        <title>#2619: Omit private datasets from public activity streams</title>
        <pubDate>Thu, 28 Jun 2012 11:49:00 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
Activities about private datasets should not appear in public activity streams.
&lt;/p&gt;
&lt;p&gt;
I don't think you want to actually purge the activities from the db, because you might still want them to appear in private activity streams.
&lt;/p&gt;
&lt;p&gt;
I do think that when a dataset goes private all its past activity should go private, because I imagine that users are going to want to hide everything about the dataset and not have any past activities 'leaking out'
&lt;/p&gt;
&lt;p&gt;
I don't think you want to consider whether the dataset was private when the activity happened, rather if a dataset is private now then all its past activities are private (and the simplest thing would be to say that if a dataset is public now then all its past activities become public as well, but is that a privacy concern?)
&lt;/p&gt;
&lt;p&gt;
The easiest way to implement this is going to be by modifying the *_activity_list() action functions in get.py, after they pull their activity lists out of the db they should pass them through a function that filters out stuff about private datasets.
&lt;/p&gt;
&lt;p&gt;
An activity about a private dataset is one whose object_type is 'dataset' and whose object_id matches the id of a private dataset. You should also check the object_type and object_id of all of the activity object's activity detail objects, if any of those match a private dataset then mark the whole activity as private.
&lt;/p&gt;
&lt;p&gt;
Currently all activity streams are public so should have all private datasets filtered out from them, except for the dashboard activity stream which is private to the individual user. In this case private datasets that the user has permission to see should not be filtered.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2619#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2654</link>
        <guid isPermaLink="false">http://localhost/ticket/2654</guid>
        <title>#2654: UI support for ordering groups on group_read page</title>
        <pubDate>Tue, 10 Jul 2012 18:11:31 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
The group_index page has no support in WUI for ordering the groups displayed. Should allow sorting by name
&lt;/p&gt;
&lt;p&gt;
Add support for this for datahub now, and discuss for new 1.9 UI
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2654#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2697</link>
        <guid isPermaLink="false">http://localhost/ticket/2697</guid>
        <title>#2697: create dataset validation</title>
        <pubDate>Wed, 18 Jul 2012 14:00:35 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <description>&lt;p&gt;
Includes: missing fields, existing field checks (i.e. whether a name/dataset already exists with that name) during input (i.e. no need to submit form to check)
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2697#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2699</link>
        <guid isPermaLink="false">http://localhost/ticket/2699</guid>
        <title>#2699: workflow for associating datasets with groups</title>
        <pubDate>Wed, 18 Jul 2012 14:02:56 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <description>&lt;p&gt;
needs review &amp;amp; speccing out
e.g. datasets created by a user who belongs to a certain publisher (group) get auto added to this group
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2699#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2702</link>
        <guid isPermaLink="false">http://localhost/ticket/2702</guid>
        <title>#2702: Future Javascript wishlist for demo</title>
        <pubDate>Wed, 18 Jul 2012 14:07:55 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <description>&lt;p&gt;
tooltip on popular datasets with number of views
facets to update automatically
creating a dataset without reloading page between steps
hover on licences information
autocomplete on search terms
group filtering
social share buttons in lightboxes
dataset counts on homepage
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2702#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2732</link>
        <guid isPermaLink="false">http://localhost/ticket/2732</guid>
        <title>#2732: New file upload functionality</title>
        <pubDate>Mon, 23 Jul 2012 15:53:09 GMT</pubDate>
        
        <dc:creator>ross</dc:creator>

        <description>&lt;p&gt;
We should simplify upload and storage of files, initially only to local storage with archiver eventually being fixed to archive data externally. WIP pad is &lt;a class="ext-link" href="http://ckan.okfnpad.org/uploads"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/uploads&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Simplifying uploads&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Currently uploads are too painful/difficult/fiddly to use and/or configure.  We want to simplify uploads so that they are done directly to the CKAN server, without support for remote services (S3 etc) and/or the dependencies it introduces.
&lt;/p&gt;
&lt;p&gt;
We want to fix:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;File uploads themselves
&lt;/li&gt;&lt;li&gt;Storage of uploaded files
&lt;/li&gt;&lt;li&gt;Notification of the upload to other components
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;strong&gt;File uploads&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Things file upload should do:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Allow sysadmin to disable
&lt;/li&gt;&lt;li&gt;Allow auth'ed users to upload
&lt;/li&gt;&lt;li&gt;Store whatever they send on disk, and store DB entry linking the file to the person
&lt;/li&gt;&lt;li&gt;When creating the resource, the user should be able to choose from all of the files
they have uploaded but not yet associated with a resource. This will allow for bulk
upload and then a delayed association.  Whenver a user creates a resource they
either upload a file now, or see previously uploaded files.
&lt;/li&gt;&lt;/ul&gt;&lt;pre class="wiki"&gt;Can we do the upload asynchronously and then associate the
uploaded key with the resource before the save ? What happens
if the user tries to submit before asymc upload finishes ? Should
we delay them?
&lt;/pre&gt;&lt;p&gt;
The upload workflow should look like...
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;File upload should be a straightforward file upload with normal auth checks and normal processing of the posted data.
&lt;/li&gt;&lt;li&gt;
&lt;ol class="loweralpha"&gt;&lt;li&gt;When called via ajax then the ID of the newly created file should be returned,
&lt;/li&gt;&lt;li&gt;When called via WUI then it should also be given the url to redirect to after the file upload has been handled - the id will be passed as a query param.
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;The resource save should check whether it has a file id and in that case updates the file object to point to the resource.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
This should enable:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Separate file upload into a user's temporary store, either individually or as a batch.
&lt;/li&gt;&lt;li&gt;Creating resources and simply choosing from previously uploaded, unassigned files
&lt;/li&gt;&lt;li&gt;Adding files/data to a resource after the fact.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;File storage&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
File storage should be local to the CKAN install, and not a remote service.  Any archiving to remove storage providers should be outside of the main request.
&lt;/p&gt;
&lt;p&gt;
File storage should:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;allow moving data, a sysadmin should be able to move the storage root and change configuration and  have the system continue running (i.e. don't store absolute paths).
&lt;/li&gt;&lt;li&gt;provide maintainability, it should be easy to determine which old files are not associated with resources  and thus can be cleaned up.
&lt;/li&gt;&lt;li&gt;allow for collection of information (i.e. estimate of storate space used)
&lt;/li&gt;&lt;li&gt;check whether there is enough space and handling the conequences cleanly
&lt;/li&gt;&lt;li&gt;ensure files to be written only underneath its own root folder, checks should be made after any path generation that the file begins with the location of the file storage.
&lt;/li&gt;&lt;li&gt;Have a configurable maximum accepted blob size during upload.
&lt;/li&gt;&lt;li&gt;Should store what meta-data was provided with the upload, such as mimetype.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Somewhere in the DB we should store ...
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Column&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Notes&lt;/strong&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;id&lt;/td&gt;&lt;td&gt;An identifier
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;owner&lt;/td&gt;&lt;td&gt;The owning user, who uploaded the file
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;path&lt;/td&gt;&lt;td&gt;The path (from the 'storage root') to the file
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;size&lt;/td&gt;&lt;td&gt;The size in bytes of the file on disk
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mimetype&lt;/td&gt;&lt;td&gt;The mimetype of the file, as provided by the uploader
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;upload_date&lt;/td&gt;&lt;td&gt;When the data was uploaded
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;resource&lt;/td&gt;&lt;td&gt;The ID of the resource it belongs to. A unidirectional relationship.
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;archived_url&lt;/td&gt;&lt;td&gt;The URL where this file has been archived
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
Generating paths should try and separate the files, perhaps based on username of the owner, or some other mechanism to avoid a single folder full of files.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Notifications&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
We need to make sure that it is possible to notify other components within the system that an upload has taken place, or at least make it easy for them to be notified.  The primary use case for this is to notify the component that will translate/upload certain formats to the data store.
&lt;/p&gt;
&lt;p&gt;
We could do this based on the post-upload update to the file model (i.e. when we record the total received size of the file).
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2732#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2735</link>
        <guid isPermaLink="false">http://localhost/ticket/2735</guid>
        <title>#2735: Dataset order on user page</title>
        <pubDate>Mon, 23 Jul 2012 17:01:17 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <description>&lt;p&gt;
I think the datasets on user pages &lt;a class="ext-link" href="http://s031.okserver.org:2375/user/me"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user/me&lt;/a&gt;
should be ordered by latest updated (with most recent at the top) instead of in alphabetical order.
&lt;/p&gt;
&lt;p&gt;
What do you think?
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2735#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2814</link>
        <guid isPermaLink="false">http://localhost/ticket/2814</guid>
        <title>#2814: Demo: upload file behaves oddly</title>
        <pubDate>Wed, 08 Aug 2012 10:06:00 GMT</pubDate>
        
        <dc:creator>markw</dc:creator>

        <description>&lt;ol start="3"&gt;&lt;li&gt;Uploading a file behaves counter-intuitively (I would suggest wrongly).
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
When adding a new resource by uploading a file, I select a file called
say create-group.png. I expect the following to happen:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;the pathname of that file is filled in the box;
&lt;/li&gt;&lt;li&gt;nothing is actually uploaded till I hit 'add' (confirming that I've got the right file etc).
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Instead of this,
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;the file is immediately and, seemingly, irrevocably uploaded;
&lt;/li&gt;&lt;li&gt;the box is filled with a mysterious URL (&lt;a class="ext-link" href="https://commondatastorage.googleapis.com/ckan-demo"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://commondatastorage.googleapis.com/ckan-demo&lt;/a&gt; ...)
&lt;/li&gt;&lt;li&gt;the mysterious URL is so long I can't even see the final element, which is my file name.
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2814#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2873</link>
        <guid isPermaLink="false">http://localhost/ticket/2873</guid>
        <title>#2873: ckanext-qa: dataset summary incorrect</title>
        <pubDate>Thu, 16 Aug 2012 14:13:49 GMT</pubDate>
        
        <dc:creator>danieljohnlewis</dc:creator>

        <description>&lt;p&gt;
For example see:  &lt;a class="ext-link" href="http://s031.okserver.org:2375/qa/dataset/five_stars"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/qa/dataset/five_stars&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Which has: Example dataset as a score of: 4 After examination of the dataset (  &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/example-dataset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/example-dataset&lt;/a&gt; ) it is made up of a CSV and an HTML file.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2873#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2874</link>
        <guid isPermaLink="false">http://localhost/ticket/2874</guid>
        <title>#2874: Clean up bin directory</title>
        <pubDate>Fri, 17 Aug 2012 08:01:48 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Full of obsolete material
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2874#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2877</link>
        <guid isPermaLink="false">http://localhost/ticket/2877</guid>
        <title>#2877: Bugs with datastore v2</title>
        <pubDate>Sat, 18 Aug 2012 00:33:22 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
In progress
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;del&gt;[major] q does not seem to work reliably. e.g. using the setup from this gist &lt;a class="ext-link" href="https://gist.github.com/1930806"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/1930806&lt;/a&gt; and doing a ?q=DE yields no results (does not work with "q=de" either)&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;q=second does work ...&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[major] q does not work with 2 values (see below)
&lt;/li&gt;&lt;li&gt;Query on search with limit 0 results in total of 0 (should either be null or correct total). Queries with other limits yield correct total AFAICT
&lt;ul&gt;&lt;li&gt;Also weird fact that limit is returned but as as as string - should it not be an integer
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Types on fields: could these not be canonical and as per recline (or is it important to allow exact sql types ...)
&lt;/li&gt;&lt;/ol&gt;&lt;h3 id="Multiplequeryvalues"&gt;Multiple query values&lt;/h3&gt;
&lt;p&gt;
Try a query such as: "second UK" and you will get 500 error:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/api/3/action/datastore_search?resource_id=4f1299ab-a100-4e5f-ba81-e6d234a2f3bd&amp;amp;q=second%20UK"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/api/3/action/datastore_search?resource_id=4f1299ab-a100-4e5f-ba81-e6d234a2f3bd&amp;amp;q=second%20UK&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;ProgrammingError: (ProgrammingError) syntax error in tsquery: "second UK" 'select "_id", "id", "date", "x", "y", "z", "country", "title", "lat", "lon", count(*) over() as "_full_count"\n from "4f1299ab-a100-4e5f-ba81-e6d234a2f3bd" where _full_text @@ to_tsquery(%s) limit 100 offset 0' (u'second UK',)
&lt;/pre&gt;&lt;h3 id="Suggestions"&gt;Suggestions&lt;/h3&gt;
&lt;p&gt;
Filter support: should think in more detail about this (may want to follow recline style)
&lt;/p&gt;
&lt;p&gt;
Simple filters in query parameters would be nice too ...
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2877#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2956</link>
        <guid isPermaLink="false">http://localhost/ticket/2956</guid>
        <title>#2956: Allow for resource editing in CKAN 2.0</title>
        <pubDate>Wed, 03 Oct 2012 15:11:40 GMT</pubDate>
        
        <dc:creator>johnmartin</dc:creator>

        <description>&lt;p&gt;
On the edit dataset page... there needs to be a way for users to be able to see all the resources associated to the dataset and edit them individually.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2956#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2961</link>
        <guid isPermaLink="false">http://localhost/ticket/2961</guid>
        <title>#2961: Preview plugin endpoint</title>
        <pubDate>Mon, 08 Oct 2012 11:39:27 GMT</pubDate>
        
        <dc:creator>dominik</dc:creator>

        <description>&lt;p&gt;
Users could write ckan extensions that offer previews for a certain datatype.
&lt;/p&gt;
&lt;p&gt;
Advantages:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We can say that you can add your own previews
&lt;/li&gt;&lt;li&gt;Every preview would have to define it's own dependencies
&lt;/li&gt;&lt;li&gt;External development (community creates new extensions?)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Questions to answer:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Specification of the interface
&lt;/li&gt;&lt;li&gt;Precedence of previews for the same data types
&lt;/li&gt;&lt;li&gt;Plugins only define the datatype that they are responsible for or do we call a function that returns whether the extension is responsible.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
As far as I can see, this should be fairly easy to implement by following these instructions: &lt;a class="ext-link" href="http://docs.ckan.org/en/latest/writing-extensions.html#writing-a-plugin-interface"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/writing-extensions.html#writing-a-plugin-interface&lt;/a&gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2961#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/3029</link>
        <guid isPermaLink="false">http://localhost/ticket/3029</guid>
        <title>#3029: JSONP parameter scuppers Search in API</title>
        <pubDate>Tue, 11 Dec 2012 15:00:35 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
&lt;tt&gt;http://datahub.io/api/2/search/package?jsonp=jsonpcallback&amp;amp;q=canada&lt;/tt&gt; returns
&lt;/p&gt;
&lt;pre class="wiki"&gt;{"count": 0, "results": []}
&lt;/pre&gt;&lt;p&gt;
I believe this worked in CKAN 1.4 or 1.5, but it is broken on 1.7.1, 1.8 and whatever demo.ckan.org is running. I suspect the jsonpcallback parameter is getting sent to SOLR.
&lt;/p&gt;
&lt;p&gt;
This bug prevents using javascript on another site to search CKAN (although hopefully the action API would work).
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/3029#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/140</link>
        <guid isPermaLink="false">http://localhost/ticket/140</guid>
        <title>#140: News section on front page</title>
        <pubDate>Wed, 07 Oct 2009 08:02:21 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Have a news section (suggest as a sidebar item).
&lt;/p&gt;
&lt;p&gt;
News section will link to latest 3/4 blog posts on CKAN from blog.okfn.org.
&lt;/p&gt;
&lt;p&gt;
Details:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Suggest pulling via rss or similar.
&lt;/li&gt;&lt;li&gt;Will want to cache this ...
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 4h?
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/140#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/331</link>
        <guid isPermaLink="false">http://localhost/ticket/331</guid>
        <title>#331: Timezone of CKAN timestamps should be configurable</title>
        <pubDate>Mon, 31 May 2010 10:40:40 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Revisions are timestamped using the server's clock, which may not relate to the expected timezone for the site. e.g. the Norway site has a server on GMT. No timezone info is displayed either.
&lt;/p&gt;
&lt;p&gt;
Would like to set timezone for a CKAN instance to use in rendering revision timestamps. For example, use CET or EST timezone.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/331#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/351</link>
        <guid isPermaLink="false">http://localhost/ticket/351</guid>
        <title>#351: Homepage: list new, updated and 'hot' packages</title>
        <pubDate>Tue, 15 Jun 2010 09:56:56 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Have a simpler list of exciting data, as opposed to the big revision list.
&lt;/p&gt;
&lt;p&gt;
For example:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Hot data
===========
New packages: package1, package2, package3
Updated resources: package1, package2, package3
Popular packages:
&lt;/pre&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/351#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/369</link>
        <guid isPermaLink="false">http://localhost/ticket/369</guid>
        <title>#369: "Package Listing Key" should appear on Tag results</title>
        <pubDate>Thu, 22 Jul 2010 18:00:34 GMT</pubDate>
        
        <dc:creator>shudson@…</dc:creator>

        <description>&lt;p&gt;
Currently there's a nice legend titled "Package Listing Key" that appears in right side of "Browse Packages" results. The same key should show on other search results like when searching for a tag.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/369#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/370</link>
        <guid isPermaLink="false">http://localhost/ticket/370</guid>
        <title>#370: Use better email encryption for author_email and maintainer_email</title>
        <pubDate>Thu, 22 Jul 2010 18:03:39 GMT</pubDate>
        
        <dc:creator>shudson@…</dc:creator>

        <description>&lt;p&gt;
The &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; email encryption used is not very reassuring. Google's &lt;a class="missing wiki"&gt;MailHide?&lt;/a&gt; is a much better solution that is easily implemented.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://www.google.com/recaptcha/mailhide/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.google.com/recaptcha/mailhide/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Check on the Mailhide API where there are even some Python libraries already built.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/370#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/653</link>
        <guid isPermaLink="false">http://localhost/ticket/653</guid>
        <title>#653: Trackback links for packages</title>
        <pubDate>Tue, 21 Sep 2010 09:40:25 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
When people link to a package, a track-back link is auto-created. (Similar system as for blogs).
&lt;/p&gt;
&lt;p&gt;
As suggested by Tim Davies:
&lt;/p&gt;
&lt;p&gt;
Allowing some form of ‘track back’ against datasets
When a non-technical user comes to look at a dataset it would be really useful for them to be able to see if anyone has created an interface interpretation of it already.
&lt;/p&gt;
&lt;p&gt;
I found quite a few cases in research of end-users struggling to make sense of a dataset when good interfaces to that data had already been built and blogged about, but without there being any link from the dataset listing to those data uses.
Accepting track backs could also make it easier for technical users to find blog posts / shared code etc. relating to a given dataset.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/653#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/737</link>
        <guid isPermaLink="false">http://localhost/ticket/737</guid>
        <title>#737: Markdown syntax summary page</title>
        <pubDate>Fri, 22 Oct 2010 16:59:09 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
I suggest we produce a quick Markdown cheat-sheet page, showing the key runes: e.g. create a title and quote some text. This page can link to the full Markdown docs for advanced users.
&lt;/p&gt;
&lt;p&gt;
A user going to the Markdown docs that we link will have to read a couple of pages of the raison-d'etre of Markdown before he gets to the syntax. And it's not very easy to read, and being white on black it looks like proper geek stuff.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/737#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/811</link>
        <guid isPermaLink="false">http://localhost/ticket/811</guid>
        <title>#811: Extra field editing form layout breaks when there are long field names</title>
        <pubDate>Wed, 17 Nov 2010 11:53:32 GMT</pubDate>
        
        <dc:creator>cygri</dc:creator>

        <description>&lt;p&gt;
The layout of the editing section for extra fields breaks when a field name is slightly too long. Field names jump over to the right. See &lt;a class="ext-link" href="http://ckan.net/package/edit/dbpedia"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/edit/dbpedia&lt;/a&gt; for examples.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/811#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/812</link>
        <guid isPermaLink="false">http://localhost/ticket/812</guid>
        <title>#812: Package edit form only allows three extra fields</title>
        <pubDate>Wed, 17 Nov 2010 11:56:50 GMT</pubDate>
        
        <dc:creator>cygri</dc:creator>

        <description>&lt;h1 id="Rationale"&gt;Rationale&lt;/h1&gt;
&lt;p&gt;
The package edit form is restricted to three extra fields. To enter more than three fields, one has to save the package and hit edit again (or hit preview).
&lt;/p&gt;
&lt;h1 id="Implementation"&gt;Implementation&lt;/h1&gt;
&lt;p&gt;
A mechanism similar to the one for resources (where you can add lines as you go) would solve this. So, have a button that adds more extra field rows via JS. (Extra fields don't need up/down buttons that the Resource table has)
&lt;/p&gt;
&lt;p&gt;
Nice to have: a blank field is added when you tab from the last filled-in field in the table.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/812#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/818</link>
        <guid isPermaLink="false">http://localhost/ticket/818</guid>
        <title>#818: Rethinking the author and maintainer fields</title>
        <pubDate>Wed, 17 Nov 2010 14:18:44 GMT</pubDate>
        
        <dc:creator>cygri</dc:creator>

        <description>&lt;p&gt;
The semantics of the Author and Maintainer fields are really unclear at the moment. This leads to very inconsistent usage. Also, perhaps Name and Email are not the only fields that are needed for a contact.
&lt;/p&gt;
&lt;p&gt;
Here is a table that shows the current usage of these fields in CKAN:
&lt;a class="ext-link" href="http://richard.cyganiak.de/2010/ckan/ckan-ppl.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://richard.cyganiak.de/2010/ckan/ckan-ppl.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We note several problems:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Author and Maintainer are often the same
&lt;/li&gt;&lt;li&gt;Author and Maintainer are often used interchangeably
&lt;/li&gt;&lt;li&gt;People really want to specify URLs for the contacts and stick them into random places because there is no field for it
&lt;/li&gt;&lt;li&gt;Multiple comma-separated names in a single field
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
I'm not sure what to do about this, but a redesign is necessary in my opinion.
&lt;/p&gt;
&lt;p&gt;
Some ideas:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Remove the maintainer field?
&lt;/li&gt;&lt;li&gt;Make really clear that Author doesn't refer to the metadata on CKAN, but to the original data
&lt;/li&gt;&lt;li&gt;Add an “author URL” field?
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/818#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/837</link>
        <guid isPermaLink="false">http://localhost/ticket/837</guid>
        <title>#837: CKAN integration with freebase gridworks / google refine</title>
        <pubDate>Tue, 30 Nov 2010 18:10:09 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;p&gt;
Thread: &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2010-November/000718.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2010-November/000718.html&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id="Scenario1"&gt;Scenario 1&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;User installs Refine and CKAN extension for refine
&lt;/li&gt;&lt;li&gt;On booting refine and asked to load data they can choose from any data package on CKAN.net (or any other CKAN instance)
&lt;/li&gt;&lt;li&gt;They edit the dataset on Refine
&lt;/li&gt;&lt;li&gt;On save (or perhaps as a separate option) they are prompted as to whether they wish  to sync the dataset back to CKAN (either as a new package or as a new resource on the existing package)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
NB: for the dataset sync back some form of "CKAN" storage would be
required (we already have storage.ckan.net running but a closer
integration would be required)
&lt;/p&gt;
&lt;h3 id="Scenario2"&gt;Scenario 2&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;User visits a package on CKAN.net (or another CKAN instance)
&lt;/li&gt;&lt;li&gt;There is a button on the page "View and edit this dataset in Google Refine"
&lt;/li&gt;&lt;li&gt;Click button -- ask them if they have Google refine installed
&lt;ul&gt;&lt;li&gt;Yes: instructions for loading dataset into refine
&lt;/li&gt;&lt;li&gt;No: load dataset in hosted version of google refine (we could run this)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;User edits dataset and hits save. As in previous scenario they are prompted to sync the dataset.
&lt;/li&gt;&lt;/ol&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/837#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/895</link>
        <guid isPermaLink="false">http://localhost/ticket/895</guid>
        <title>#895: Add version number (or simular) to css/js includes query string</title>
        <pubDate>Thu, 06 Jan 2011 19:49:42 GMT</pubDate>
        
        <dc:creator>memespring</dc:creator>

        <description>&lt;p&gt;
Updates to css after a new deploy don't come through without a hard refresh. Adding the version number to the include urls will solve this e.g.
&lt;/p&gt;
&lt;p&gt;
mycssfile.css?v=12345678
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/895#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1009</link>
        <guid isPermaLink="false">http://localhost/ticket/1009</guid>
        <title>#1009: Improvements to user accounts sytem</title>
        <pubDate>Fri, 25 Feb 2011 12:13:11 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;ul&gt;&lt;li&gt;Forgot password (email a new password)
&lt;/li&gt;&lt;li&gt;Confirm email
&lt;/li&gt;&lt;li&gt;Do not show register page if you are logged in (redirect to home page)
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1010" title="enhancement: List CKAN users in WUI (closed: fixed)"&gt;ticket:1010&lt;/a&gt; - listing of users.
&lt;ul&gt;&lt;li&gt;Do not use /user for general user account home page (either user normal user page /user/{id} or /user/myaccount)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1009#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1077</link>
        <guid isPermaLink="false">http://localhost/ticket/1077</guid>
        <title>#1077: Move to simpler vdm system</title>
        <pubDate>Fri, 08 Apr 2011 23:14:24 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <description>&lt;h2 id="Option1:ChangesetModel"&gt;Option 1: 'Changeset' Model&lt;/h2&gt;
&lt;p&gt;
See &lt;a class="assigned ticket" href="http://localhost/ticket/1135" title="enhancement: Changeset model for vdm (assigned)"&gt;ticket:1135&lt;/a&gt; for vdm ticket. This would involve a) moving to changeset in vdm b) doing the migration in ckan to support this.
&lt;/p&gt;
&lt;p&gt;
Have developed a new "changeset" based model for revisioning in vdm.
&lt;/p&gt;
&lt;h3 id="Implementation"&gt;Implementation&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;The main challenge with this change is schema and data migration
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Every revisioned object has a revision_id and revision attribute.
&lt;/p&gt;
&lt;p&gt;
Approximate algorithm:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Revision -&amp;gt; Changeset
for revtype in [PackageRevision, ...]:
    for pkgrev in package_revision:
        changeset = lookupchangeset(package_revision)
        ChangeObject(cset, (table, id), dictize(pkgrev))
&lt;/pre&gt;&lt;p&gt;
Question:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;does pkg include tags attributes or not? or we have to dictize, pkgrev, pkg2tagrev, and tag. Probably the latter.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Option2:SimplifyRevisionObjectModel"&gt;Option 2: Simplify Revision Object Model&lt;/h2&gt;
&lt;p&gt;
Just use a simpler vdm, see &lt;a class="assigned ticket" href="http://localhost/ticket/1136" title="enhancement: Move to SessionExtension in vdm (assigned)"&gt;ticket:1136&lt;/a&gt; (move to SessionExtension) and &lt;a class="assigned ticket" href="http://localhost/ticket/1137" title="enhancement: Remove need for statefulness in vdm (assigned)"&gt;ticket:1137&lt;/a&gt; (remove need for statefulness in vdm).
&lt;/p&gt;
&lt;h2 id="Discussion"&gt;Discussion&lt;/h2&gt;
&lt;p&gt;
Advantage of Option 1 versus 2:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Easier support for pending state and similar behaviour
&lt;/li&gt;&lt;li&gt;No need to introduce new tables (and hence migrations) when making something revisioned (or not).
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Disadvantages"&gt;Disadvantages&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Migration is required
&lt;/li&gt;&lt;li&gt;More difficult to query revision history.
&lt;ul&gt;&lt;li&gt;Could be addressed by having ChangeObject have separate cols for table name and id but would likely be more difficult.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Performance (?)
&lt;ul&gt;&lt;li&gt;Have one big ChangeObject table to query when looking at changed objects rather than many revision tables.
&lt;ul&gt;&lt;li&gt;Not sure this is a biggie as even with Revision model biggest revision object tables are probably on the order of the ChangeObject table
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
Implement Option 2 and leave Option 1 for present.
&lt;/p&gt;
&lt;p&gt;
Option 1 includes Option 2 so it seems that that is required in either case (so we may as well with Option 2).
&lt;/p&gt;
&lt;p&gt;
Option 1 requires significant effort (esp migration) so leave for present and then review the situation at some later date.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1077#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1096</link>
        <guid isPermaLink="false">http://localhost/ticket/1096</guid>
        <title>#1096: [super] CKAN Hosted</title>
        <pubDate>Tue, 19 Apr 2011 17:44:22 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;p&gt;
Many users of CKAN want to have their own instance without much effort. Setting these up in separate places is a maintenance nightmare, we should much rather have some tenant separation in core CKAN. Some ideas:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;introduce model.Site and c.site
&lt;ul&gt;&lt;li&gt;site has: custom CSS, extra_template_path, title, languages list, package_form, group_form (all configured via web UI)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Subdomain detector to activate sites.
&lt;/li&gt;&lt;li&gt;use site in Authorizer instead of System, have a &lt;a class="missing wiki"&gt;NullSite?&lt;/a&gt; for global things
&lt;/li&gt;&lt;li&gt;allow cross-site search
&lt;/li&gt;&lt;li&gt;packages are in a list of sites, m:n rather than 1:n
&lt;ul&gt;&lt;li&gt;list of sites is string-based, can contain sites not in site table to express harvested external material which is not editable locally.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1096#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1101</link>
        <guid isPermaLink="false">http://localhost/ticket/1101</guid>
        <title>#1101: Integrate googlanalytics into site nav</title>
        <pubDate>Thu, 21 Apr 2011 13:52:06 GMT</pubDate>
        
        <dc:creator>sebbacon</dc:creator>

        <description>&lt;p&gt;
There's a stats plugin (e.g. at &lt;a class="ext-link" href="http://trac.ckan.org/ticket/832"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.ckan.org/ticket/832&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
Output from the googleanalytics plugin should append to that page, if the stats plugin is present.
&lt;/p&gt;
&lt;p&gt;
Possibly the stats plugin and the googleanalytics plugin should be merged?
&lt;/p&gt;
&lt;p&gt;
Finally, if the stats plugin is active, then a link to the stats page should be added to the main site footer.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1101#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1120</link>
        <guid isPermaLink="false">http://localhost/ticket/1120</guid>
        <title>#1120: Atom feeds of each tag</title>
        <pubDate>Mon, 02 May 2011 04:08:05 GMT</pubDate>
        
        <dc:creator>tsm</dc:creator>

        <description>&lt;p&gt;
Tags could/should have an Atom feed. This would mean that every edit to relevant packages could be easily monitored. See &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt; &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-May/001162.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-May/001162.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1120#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1144</link>
        <guid isPermaLink="false">http://localhost/ticket/1144</guid>
        <title>#1144: Support DSPL</title>
        <pubDate>Thu, 19 May 2011 00:06:49 GMT</pubDate>
        
        <dc:creator>timmcnamara</dc:creator>

        <description>&lt;p&gt;
DSPL, the Dataset Publishing Language, is being promoted by Google for its "Google Public Data Explorer" system. It is an XML format with metadata.
&lt;/p&gt;
&lt;p&gt;
The format is described on the &lt;a class="ext-link" href="http://code.google.com/apis/publicdata/docs/developer_guide.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;developer docs ofthe Google Code site&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Google provides a &lt;a class="ext-link" href="http://code.google.com/apis/publicdata/docs/dsplgen.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Python script which reads CSV data and generates DSPL&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Sample from &lt;a class="ext-link" href="http://code.google.com/apis/publicdata/docs/dspl_sample.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://code.google.com/apis/publicdata/docs/dspl_sample.html&lt;/a&gt;:
&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre&gt;
&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;dspl&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;"http://schemas.google.com/dspl/2010"&lt;/span&gt;
    &lt;span class="na"&gt;xmlns:geo=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/geo"&lt;/span&gt;
    &lt;span class="na"&gt;xmlns:geo_usa=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/geo/us"&lt;/span&gt;
    &lt;span class="na"&gt;xmlns:time=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/time"&lt;/span&gt;
    &lt;span class="na"&gt;xmlns:quantity=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/quantity"&lt;/span&gt;
    &lt;span class="na"&gt;xmlns:entity=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/entity"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;import&lt;/span&gt; &lt;span class="na"&gt;namespace=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/time"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;import&lt;/span&gt; &lt;span class="na"&gt;namespace=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/quantity"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;import&lt;/span&gt; &lt;span class="na"&gt;namespace=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/entity"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;import&lt;/span&gt; &lt;span class="na"&gt;namespace=&lt;/span&gt;&lt;span class="s"&gt;"http://www.google.com/publicdata/dataset/google/geo"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;My statistics&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;Some very interesting statistics about countries&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;url&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;http://www.stats-bureau.com/mystats/info.html&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/url&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;provider&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;Bureau of Statistics&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;url&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;http://www.stats-bureau.com&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/url&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/provider&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;topics&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;topic&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"geography"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&amp;lt;value&amp;gt;&lt;/span&gt;Geography&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/topic&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;topic&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"social_indicators"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&amp;lt;value&amp;gt;&lt;/span&gt;Social indicators&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;topic&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"population_indicators"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&amp;lt;value&amp;gt;&lt;/span&gt;Population indicators&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/topic&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;topic&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"poverty_and_income"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&amp;lt;value&amp;gt;&lt;/span&gt;Poverty &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; income&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/topic&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;topic&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"health"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&amp;lt;value&amp;gt;&lt;/span&gt;Health&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/topic&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/topic&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/topics&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;concepts&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- As noted in the tutorial, this concept should extend quantity:amount.--&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;concept&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"population"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;Population&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;Size of the resident population.&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;topic&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"population_indicators"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"integer"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/concept&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- This country concept is defined for educational purposes only. A country
    concept exists in the Google geo dataset. See:
    http://code.google.com/apis/publicdata/docs/canonical/geo.html --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;concept&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt; &lt;span class="na"&gt;extends=&lt;/span&gt;&lt;span class="s"&gt;"geo:location"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;Country&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;My list of countries&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;property&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&amp;lt;value&lt;/span&gt; &lt;span class="na"&gt;xml:lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Country name&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;value&lt;/span&gt; &lt;span class="na"&gt;xml:lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;The official name of the country&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"countries_table"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/concept&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- This US state concept is defined for educational purposes only. A US state
      concept exists in the Google geo US dataset. See:
      http://code.google.com/apis/publicdata/docs/canonical/geo.us.html --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;concept&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"state"&lt;/span&gt; &lt;span class="na"&gt;extends=&lt;/span&gt;&lt;span class="s"&gt;"geo:location"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;State&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;US states&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;property&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt; &lt;span class="na"&gt;isParent=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"states_table"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/concept&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;concept&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"gender"&lt;/span&gt; &lt;span class="na"&gt;extends=&lt;/span&gt;&lt;span class="s"&gt;"entity:entity"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;Gender&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;Gender, Male or Female&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;pluralName&amp;gt;&amp;lt;value&amp;gt;&lt;/span&gt;Genders&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/pluralName&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;totalName&amp;gt;&amp;lt;value&amp;gt;&lt;/span&gt;Both genders&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/totalName&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"genders_table"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/concept&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;concept&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"unemployment_rate"&lt;/span&gt; &lt;span class="na"&gt;extends=&lt;/span&gt;&lt;span class="s"&gt;"quantity:rate"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;info&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;unemployment rate&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;The percent of the labor force that is unemployed, not seasonally
            adjusted.&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;url&amp;gt;&amp;lt;value&amp;gt;&lt;/span&gt;http://www.bls.gov/cps/cps_htgm.htm&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&amp;lt;/url&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;topic&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"social_indicators"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"float"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;attribute&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"is_percentage"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"boolean"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;true&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/attribute&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/concept&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/concepts&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;slices&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;slice&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"countries_slice"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;dimension&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;dimension&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"time:year"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;metric&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"population"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"countries_slice_table"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/slice&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;slice&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"states_slice"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;dimension&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"state"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;dimension&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"time:year"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;metric&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"population"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;metric&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"unemployment_rate"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"states_slice_table"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/slice&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;slice&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"countries_gender_slice"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;dimension&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;dimension&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"gender"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;dimension&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"time:year"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;metric&lt;/span&gt; &lt;span class="na"&gt;concept=&lt;/span&gt;&lt;span class="s"&gt;"population"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"countries_gender_slice_table"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/slice&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/slices&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;tables&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"countries_table"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"latitude"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"float"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"longitude"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"float"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;data&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;file&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"csv"&lt;/span&gt; &lt;span class="na"&gt;encoding=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;countries.csv&lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/data&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"countries_slice_table"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"year"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"yyyy"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"population"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"integer"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;data&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;file&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"csv"&lt;/span&gt; &lt;span class="na"&gt;encoding=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;country_slice.csv&lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/data&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"states_table"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"state"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;US&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/column&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"latitude"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"float"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"longitude"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"float"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;data&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;file&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"csv"&lt;/span&gt; &lt;span class="na"&gt;encoding=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;states.csv&lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/data&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"states_slice_table"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"state"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"year"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"yyyy"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"population"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"integer"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"unemployment_rate"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"float"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;data&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;file&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"csv"&lt;/span&gt; &lt;span class="na"&gt;encoding=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;state_slice.csv&lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/data&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"genders_table"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"gender"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;data&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;file&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"csv"&lt;/span&gt; &lt;span class="na"&gt;encoding=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;genders.csv&lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/data&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"countries_gender_slice_table"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"gender"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"string"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"year"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"yyyy"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;column&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"population"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"integer"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;data&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;file&lt;/span&gt; &lt;span class="na"&gt;format=&lt;/span&gt;&lt;span class="s"&gt;"csv"&lt;/span&gt; &lt;span class="na"&gt;encoding=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;gender_country_slice.csv&lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/data&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/tables&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dspl&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1144#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1145</link>
        <guid isPermaLink="false">http://localhost/ticket/1145</guid>
        <title>#1145: Support the Handle System</title>
        <pubDate>Thu, 19 May 2011 00:26:15 GMT</pubDate>
        
        <dc:creator>timmcnamara</dc:creator>

        <description>&lt;p&gt;
The Handle System is an initiative to provide persistent references for resources. That is, it's basically a proxy system for preventing link rot.
&lt;/p&gt;
&lt;p&gt;
Its documentation is here: &lt;a class="ext-link" href="http://www.handle.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.handle.net/&lt;/a&gt;. Servers running CKAN could host a "Local Handle Service", which redirects a hash of a resource to an actual URL.
&lt;/p&gt;
&lt;p&gt;
Some suggested use cases:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Researcher would like to cite where data came from
&lt;/li&gt;&lt;li&gt;Agencies would like to have a way to prevent vendor
lock-in from CKAN if they decide to move to another
platform
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1145#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1165</link>
        <guid isPermaLink="false">http://localhost/ticket/1165</guid>
        <title>#1165: Add multi-site support to ckan</title>
        <pubDate>Thu, 26 May 2011 12:41:07 GMT</pubDate>
        
        <dc:creator>nils.toedtmann</dc:creator>

        <description>&lt;p&gt;
Currently, each ckan site needs its own ckan wsgi process. That eats a lot of resources where many ckan sites are served from one machine (e.g. eu3).
&lt;/p&gt;
&lt;p&gt;
That would dramatically change if a ckan process could behave like multiple ckans (e.g. like Apache's "&amp;lt;&lt;a class="missing wiki"&gt;VirtualHost?&lt;/a&gt;&amp;gt;", or tracd). Depending on the "Host:" header in the HTTP1.1 request, it would choose which local ckan ini file to obey.
&lt;/p&gt;
&lt;p&gt;
I see two ways to constitute the map hostname-to-ini-file map:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ckan reads a set of ini files, and each ini file declares which servers names it is responsible for
&lt;/li&gt;&lt;li&gt;In a global ini file, there are directives mapping servernames to ini files.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
In either case there should be a global ckan ini having the default settings for all local ckan sites. Each site ini could be very short then, just having e.g. title, name, database credentials, active plugins etc.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1165#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1179</link>
        <guid isPermaLink="false">http://localhost/ticket/1179</guid>
        <title>#1179: Support tag aliases</title>
        <pubDate>Tue, 07 Jun 2011 06:47:01 GMT</pubDate>
        
        <dc:creator>timmcnamara</dc:creator>

        <description>&lt;p&gt;
A small number of tags are near-duplicates of each other.
&lt;/p&gt;
&lt;p&gt;
Perhaps we could support word stemming from NLTK and/or manual tag aliases:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
statistics
statistik
...
survey
surveying
surveys
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1179#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1182</link>
        <guid isPermaLink="false">http://localhost/ticket/1182</guid>
        <title>#1182: Comments from deleted packages appear in "Recent Comments" feed</title>
        <pubDate>Thu, 09 Jun 2011 22:24:11 GMT</pubDate>
        
        <dc:creator>timmcnamara</dc:creator>

        <description>&lt;p&gt;
When a package has been deleted, say for spam moderation, comments still appear in the recent comments section.
&lt;/p&gt;
&lt;p&gt;
This is a problem because non-admin users will be shown a warning that they're not authorised to view the package if they click on the link.
&lt;/p&gt;
&lt;p&gt;
At CKAN.net currently, this affects the most recent comment.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1182#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1184</link>
        <guid isPermaLink="false">http://localhost/ticket/1184</guid>
        <title>#1184: Support Wuala as CKAN storage option</title>
        <pubDate>Tue, 14 Jun 2011 06:59:11 GMT</pubDate>
        
        <dc:creator>timmcnamara</dc:creator>

        <description>&lt;p&gt;
Most of CKANs storage options are tied to the USA. This brings concerns of data security for some organisations who may wish to adopt the system. &lt;a class="ext-link" href="http://wua.la"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Wuala&lt;/a&gt; is a distributed file system that stores data in a peer-to-peer manner. The company behind it, &lt;a class="missing wiki"&gt;LaCie?&lt;/a&gt; sells storage for a fee. However, they also enable clients to have 'free' storage space when machines act as a storage node.
&lt;/p&gt;
&lt;p&gt;
In order to be a storage node, a machine needs to be online for more than 14% of the time - roughly 4h per day. Most CKAN servers are likely to have a far greater uptime than this.
&lt;/p&gt;
&lt;p&gt;
Supporting Wuala would go some way to enabling CKAN to be used in a secure manner. That is, CKAN could be promoted for organisational use where there is lots of data to be stored and large geographic distances to be managed. There is a &lt;a class="ext-link" href="http://www.wuala.com/Wuala%20API/Sample%20Clients/Python/wualaAPI/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Python client available&lt;/a&gt; and a fairly &lt;a class="ext-link" href="http://www.youtube.com/watch?v=3xKZ4KGkQY8"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;long Google Tech Talk&lt;/a&gt; that overviews the system.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1184#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1185</link>
        <guid isPermaLink="false">http://localhost/ticket/1185</guid>
        <title>#1185: Administrators can't delete packages from web UI</title>
        <pubDate>Wed, 15 Jun 2011 04:23:38 GMT</pubDate>
        
        <dc:creator>timmcnamara</dc:creator>

        <description>&lt;p&gt;
Administrators have "View", "Edit" and "History" tabs. However, I can't see a way to delete a package from the web UI.
&lt;/p&gt;
&lt;p&gt;
Version: CKAN.net as of today
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1185#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1188</link>
        <guid isPermaLink="false">http://localhost/ticket/1188</guid>
        <title>#1188: Allow diffing against initial (blank) package version</title>
        <pubDate>Wed, 15 Jun 2011 15:52:40 GMT</pubDate>
        
        <dc:creator>nickstenning</dc:creator>

        <description>&lt;p&gt;
Currently the history page only allows diffing between different versions of a package, but there doesn't appear to be any easy way to see the changes introduced by the first version of a package.
&lt;/p&gt;
&lt;p&gt;
I'm requesting the ability to diff against a "blank slate" initial state of a project, so I can see the content of the first project commit.
&lt;/p&gt;
&lt;p&gt;
Not sure if this is a vdm feature, so I'm putting this ticket in against ckan.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1188#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1201</link>
        <guid isPermaLink="false">http://localhost/ticket/1201</guid>
        <title>#1201: seperate out logic in atom feeds to logic layer.</title>
        <pubDate>Fri, 24 Jun 2011 15:21:32 GMT</pubDate>
        
        <dc:creator>kindly</dc:creator>

        <description>&lt;p&gt;
Simplify the logic in the atom feed an make all feeds use logic layer to return lists.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1201#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1203</link>
        <guid isPermaLink="false">http://localhost/ticket/1203</guid>
        <title>#1203: Moderated edits: html code shows as "changed" although it is not</title>
        <pubDate>Tue, 28 Jun 2011 15:29:30 GMT</pubDate>
        
        <dc:creator>rolf</dc:creator>

        <description>&lt;p&gt;
I've installed the Moderated Edits extension (ckanext-moderatededits) and am editing a package imported from IATIregistry.org, with an extra field which contains a bit of HTML.
&lt;/p&gt;
&lt;p&gt;
The editor indicates the field has changed, although the content hasn't (see screenshot). All I can find so far is a minor difference: in the field content, there is a code &amp;amp;#8212 and in the rendered table that is an &amp;amp;mdash;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1203#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1227</link>
        <guid isPermaLink="false">http://localhost/ticket/1227</guid>
        <title>#1227: Display packages' tags in search results</title>
        <pubDate>Tue, 19 Jul 2011 00:11:02 GMT</pubDate>
        
        <dc:creator>timmcnamara</dc:creator>

        <description>&lt;p&gt;
In when displaying search results, it would be useful to also display the tags of a package. Sometimes it's difficult to infer the scope of what the package does from the title and the first sentence of the description. Tags are quite concise way to display rich information.
&lt;/p&gt;
&lt;p&gt;
ENV=datacatalos.org, with CKAN 1.4.2a
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1227#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1232</link>
        <guid isPermaLink="false">http://localhost/ticket/1232</guid>
        <title>#1232: [super] Interface improvements</title>
        <pubDate>Wed, 20 Jul 2011 16:11:36 GMT</pubDate>
        
        <dc:creator>thejimmyg</dc:creator>

        <description>&lt;p&gt;
Child tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1194" title="defect: &amp;#34;Welcome back&amp;#34; message for newly registered user (closed: fixed)"&gt;#1194&lt;/a&gt; "Welcome back" message for newly registered user
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1202" title="enhancement: Links to datapkg utility don't lead to info about it (closed: invalid)"&gt;#1202&lt;/a&gt; Links to datapkg utility don't lead to info about it
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/925" title="defect: Change the search box icon to remove the down arrow (closed: fixed)"&gt;#925&lt;/a&gt; Change the search box icon to remove the down arrow
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/923" title="defect: Search box doesn't work in leaderboard page (closed: worksforme)"&gt;#923&lt;/a&gt; Search box doesn't work in leaderboard page in stats extension
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1034" title="defect: Flash message cached (closed: duplicate)"&gt;#1034&lt;/a&gt; Flash message cached
&lt;/li&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/737" title="enhancement: Markdown syntax summary page (new)"&gt;#737&lt;/a&gt; Markdown syntax summary page
&lt;/li&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/811" title="defect: Extra field editing form layout breaks when there are long field names (new)"&gt;#811&lt;/a&gt; Extra field editing form layout breaks when there are long field names
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1232#changelog</comments>
    </item>
 </channel>
</rss>