<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>CKAN: {22} Trac tickets</title>
    <link>http://localhost/report/22</link>
    <description>Trac Report - https://github.com/roskakori/tratihubis/blob/master/query_tickets.sql</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/report/22</link>
    </image>
    <generator>Trac v0.12.3</generator>
      <item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1: Visitor visits service</title>
                  <description>&lt;h2 id="Title"&gt;Title&lt;/h2&gt;
&lt;p&gt;
Visitor visits service
&lt;/p&gt;
&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor (general web user)
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Visit the website of the service (frontpage)
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;See the front page and discover information about the service
&lt;/li&gt;&lt;li&gt;Perform various activities related to the service such as registering and finding packages, registering as a user and logging in
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1</link>
        <guid isPermaLink="false">http://localhost/ticket/1</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#2: Register as user on the service</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Be able to register as a user on the service
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
One can login and be an authenticated user and perform the actions that only authenticated users can perform
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Registration involves the provisional of a minimal set of user details, namely:
&lt;ol&gt;&lt;li&gt;username (unique in lifetime of the service)
&lt;/li&gt;&lt;li&gt;fullname
&lt;/li&gt;&lt;li&gt;email
&lt;/li&gt;&lt;li&gt;password
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2</link>
        <guid isPermaLink="false">http://localhost/ticket/2</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#3: Login to the service</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Login to the service
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
I am now an authenticated user and may perform the actions that only authenticated users may perform
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Login by providing username and password
&lt;/li&gt;&lt;li&gt;Login screen should also include a link or information about registration
&lt;/li&gt;&lt;li&gt;If username do not match (or the username does not exist) a login failure is noted and the visitor is re-presented with the login screen as well as information on how to register
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/3</link>
        <guid isPermaLink="false">http://localhost/ticket/3</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#4: Find a package</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Locate packages that I am, or might be, interested in
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
I know what packages exist and can read the information associated with those packages
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;
Find a package by searching by (or some combination thereof):
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;tag
&lt;/li&gt;&lt;li&gt;string contained in title or description
&lt;/li&gt;&lt;li&gt;license
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/4</link>
        <guid isPermaLink="false">http://localhost/ticket/4</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#5: Browse list of packages and select one to view</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Browse a list of packages resulting from a search or browse request (see other use cases)
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
I can select one of the packages to view in more detail (-&amp;gt; viewing an individual package &lt;a class="closed ticket" href="http://localhost/ticket/6" title="enhancement: View a package (closed: fixed)"&gt;ticket:6&lt;/a&gt;)
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;When browsing a list of packages you should be able to see summary information about the package such as title (though this may be shortened in order to conveniently fit the list
&lt;/li&gt;&lt;li&gt;The list should be broken up into pages so that the number of packages per page should be kept to a reasonable number (&amp;lt;= 50). Response time should be kept reasonable
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/5</link>
        <guid isPermaLink="false">http://localhost/ticket/5</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#6: View a package</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
View the details of an individual package
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
I know more about the package. Attributes available are detailed in updating a package (../UseCase12)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/6</link>
        <guid isPermaLink="false">http://localhost/ticket/6</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#7: View a release associated with a package</title>
                  <description>&lt;p&gt;
See Update a release (ticket 14) for more information on what should be shown.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/7</link>
        <guid isPermaLink="false">http://localhost/ticket/7</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#8: View file</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
View the files associated with a package.
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;See also &lt;a class="closed ticket" href="http://localhost/ticket/16" title="enhancement: Update a file (closed: invalid)"&gt;ticket:16&lt;/a&gt; (updating a file).
&lt;/li&gt;&lt;li&gt;Files should either be listed on the same page as a release or there should be a link from the release page to a page listing all the files associated with the release. See also &lt;a class="closed ticket" href="http://localhost/ticket/14" title="enhancement: Update a release (closed: invalid)"&gt;ticket:14&lt;/a&gt; (update a release)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/8</link>
        <guid isPermaLink="false">http://localhost/ticket/8</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#9: Register new package</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Authenticated User
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Create/register a package
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
The package will be listed in the system and visible to users
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Full package registration process may be broken down into:
&lt;ol&gt;&lt;li&gt;Creating a package by provision of minimal attributes:
&lt;ol&gt;&lt;li&gt;name: unique and web-usable
&lt;/li&gt;&lt;li&gt;auto-generation of default values such as:
&lt;ol&gt;&lt;li&gt;date-registered (today's date)
&lt;/li&gt;&lt;li&gt;first owner (one owner should be created corresponding to the authenticated user performing this action)
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;(?) auto-generate a default release
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;updating the created package -&amp;gt; ../UseCase12
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/9</link>
        <guid isPermaLink="false">http://localhost/ticket/9</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#10: Update package</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Authenticated user
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Update the attributes of a package and add/remove releases
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
The package attributes are changed. Package attributes are:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A title
&lt;/li&gt;&lt;li&gt;A description (short or long)
&lt;/li&gt;&lt;li&gt;Date added
&lt;/li&gt;&lt;li&gt;Project url
&lt;/li&gt;&lt;li&gt;package license(s)
&lt;/li&gt;&lt;li&gt;download url
&lt;/li&gt;&lt;li&gt;A list of releases with their dates and a summary line
&lt;/li&gt;&lt;li&gt;a list of owners (referencing authenticated users)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
I would also like to be able to add comments
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Only an authenticated user is one of owners of a package may update it
&lt;/li&gt;&lt;li&gt;Any authenticated user may add comments (but visitors may not)
&lt;/li&gt;&lt;li&gt;can break down into:
&lt;ul&gt;&lt;li&gt;Update a package by changing simple package attributes (value: 8)
&lt;/li&gt;&lt;li&gt;Update a package by adding or removing an owner (value: 5)
&lt;/li&gt;&lt;li&gt;Update a package by adding or removing comments (value: 7)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/10</link>
        <guid isPermaLink="false">http://localhost/ticket/10</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#11: Delete package</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Authenticated user
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Delete a package
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
So that the package is no longer displayed for visitors of the site
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;The permissions for this action are the same as for updating the package details (see &lt;a class="closed ticket" href="http://localhost/ticket/10" title="enhancement: Update package (closed: worksforme)"&gt;ticket:10&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;When a package is deleted it is put in an inactive state and is invisible to users and vistors of the service. However its name remains reserved and it may be undeleted or purged by the service administrator
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/11</link>
        <guid isPermaLink="false">http://localhost/ticket/11</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#12: Create a release associated with a package</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Authenticated user
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Create a release associated with a package
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
The package has a new release
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Permissions are as for updating a package &lt;a class="closed ticket" href="http://localhost/ticket/10" title="enhancement: Update package (closed: worksforme)"&gt;ticket:10&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;for details of release attributes see: updating a release &lt;a class="closed ticket" href="http://localhost/ticket/14" title="enhancement: Update a release (closed: invalid)"&gt;ticket:14&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/12</link>
        <guid isPermaLink="false">http://localhost/ticket/12</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#13: Delete a release</title>
                  <description></description>
        <link>http://localhost/ticket/13</link>
        <guid isPermaLink="false">http://localhost/ticket/13</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#14: Update a release</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Authenticated user
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Update a release
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
The release details are amended. Attributes of a release are:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;name (may include '.' and '-'
&lt;/li&gt;&lt;li&gt;nickname
&lt;/li&gt;&lt;li&gt;date
&lt;/li&gt;&lt;li&gt;description
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;permissions: as for updating a package (&lt;a class="closed ticket" href="http://localhost/ticket/10" title="enhancement: Update package (closed: worksforme)"&gt;ticket:10&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/14</link>
        <guid isPermaLink="false">http://localhost/ticket/14</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#15: Create a file</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Authenticated user
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Create a file associated with a release
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
The release has a new file associated with it
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Permissions are as for package updating (see &lt;a class="closed ticket" href="http://localhost/ticket/10" title="enhancement: Update package (closed: worksforme)"&gt;ticket:10&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;file attributes are described in file updating: &lt;a class="closed ticket" href="http://localhost/ticket/16" title="enhancement: Update a file (closed: invalid)"&gt;ticket:16&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;there are no attributes that are required to be supplied to create a file
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/15</link>
        <guid isPermaLink="false">http://localhost/ticket/15</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#16: Update a file</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Authenticated user
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Update a file associated with a release
&lt;/p&gt;
&lt;h2 id="Sothat"&gt;So that&lt;/h2&gt;
&lt;p&gt;
The file attributes are changed. File attributes are:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;(internal) id
&lt;/li&gt;&lt;li&gt;description
&lt;/li&gt;&lt;li&gt;source: (url usually)
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Permissions are as for package updating
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/16</link>
        <guid isPermaLink="false">http://localhost/ticket/16</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#17: Delete a file</title>
                  <description>&lt;p&gt;
See &lt;a class="closed ticket" href="http://localhost/ticket/16" title="enhancement: Update a file (closed: invalid)"&gt;ticket:16&lt;/a&gt; (update a file)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/17</link>
        <guid isPermaLink="false">http://localhost/ticket/17</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#18: Purge a user (registered person)</title>
                  <description></description>
        <link>http://localhost/ticket/18</link>
        <guid isPermaLink="false">http://localhost/ticket/18</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#19: Undelete a user (registered person)</title>
                  <description></description>
        <link>http://localhost/ticket/19</link>
        <guid isPermaLink="false">http://localhost/ticket/19</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#20: Purge a package</title>
                  <description>&lt;h2 id="AsA"&gt;As A&lt;/h2&gt;
&lt;p&gt;
Administrator
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Purge a deleted package
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;this need only be possible via the admin interface
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/20</link>
        <guid isPermaLink="false">http://localhost/ticket/20</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#21: Undelete a package</title>
                  <description></description>
        <link>http://localhost/ticket/21</link>
        <guid isPermaLink="false">http://localhost/ticket/21</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#22: Update person attributes</title>
                  <description></description>
        <link>http://localhost/ticket/22</link>
        <guid isPermaLink="false">http://localhost/ticket/22</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#23: Request new password (or a reminder) if old has been lost</title>
                  <description></description>
        <link>http://localhost/ticket/23</link>
        <guid isPermaLink="false">http://localhost/ticket/23</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#24: View list of most recently registered or updated packages on front page</title>
                  <description></description>
        <link>http://localhost/ticket/24</link>
        <guid isPermaLink="false">http://localhost/ticket/24</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#25: Autocompletion (and suggestion) of package tags when adding tags to a package</title>
                  <description>&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Currently have a text box where users can add space separated tags
&lt;/li&gt;&lt;li&gt;Tags should auto-complete in a manner similar to delicious
&lt;/li&gt;&lt;li&gt;would also be good to have a list of suggested tags. This could either be:
&lt;ul&gt;&lt;li&gt;[simpler] a list below the tag box chosen by existing popularity  or
&lt;/li&gt;&lt;li&gt;[more complex] a list of suggestions that updates as you add tags (based again on popularity but 'filtered/reranked' to reflect choices so far).
&lt;/li&gt;&lt;li&gt;For first attempt to should probably just go for the simpler option.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/25</link>
        <guid isPermaLink="false">http://localhost/ticket/25</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#26: A registered person creates their own tags for a package</title>
                  <description></description>
        <link>http://localhost/ticket/26</link>
        <guid isPermaLink="false">http://localhost/ticket/26</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#27: Register/Update a package via a web-api</title>
                  <description>&lt;h1 id="AsA"&gt;As A&lt;/h1&gt;
&lt;p&gt;
User
&lt;/p&gt;
&lt;h1 id="IwantTo"&gt;I want To&lt;/h1&gt;
&lt;p&gt;
Create/register and update a package via a web api.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/27</link>
        <guid isPermaLink="false">http://localhost/ticket/27</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#28: Provide a dump of all packages listed on the system in XML</title>
                  <description></description>
        <link>http://localhost/ticket/28</link>
        <guid isPermaLink="false">http://localhost/ticket/28</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#29: Improve installation process</title>
                  <description>&lt;ol&gt;&lt;li&gt;install documentation (currently &lt;a class="source" href="http://localhost/browser/trunk/INSTALL"&gt;source:trunk/INSTALL&lt;/a&gt; is empty)
&lt;/li&gt;&lt;li&gt;improve ckan-admin as necessary
&lt;/li&gt;&lt;li&gt;create default data (such as licenses)
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/29</link>
        <guid isPermaLink="false">http://localhost/ticket/29</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#30: Tags are added to a package by package owner</title>
                  <description>&lt;h2 id="AsA"&gt;As A&lt;/h2&gt;
&lt;p&gt;
Site User
&lt;/p&gt;
&lt;h2 id="IWantTo"&gt;I Want To&lt;/h2&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;Create/Edit/Update/Delete?&lt;/a&gt; tags associated with my package
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Tags are service-wide and &lt;strong&gt;not&lt;/strong&gt; package specific
&lt;/li&gt;&lt;li&gt;Tags should not allow spaces (but allow everything else e.g. ':')
&lt;/li&gt;&lt;li&gt;web interface details
&lt;ul&gt;&lt;li&gt;should provide a text box where users can add space separated tags (a la delicious).
&lt;/li&gt;&lt;li&gt;tag creation should be seemless (so if a tag does not already tag exists it should automatically be created in the background)
&lt;/li&gt;&lt;li&gt;would like to provide a list of relevant existing tags. For time being could just list all existing tags below entry box but in long run would like auto-updating/auto-suggesting listing a la delicious
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/30</link>
        <guid isPermaLink="false">http://localhost/ticket/30</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#31: Add a comment to a package</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Registered user
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Add a comment to a package
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;The comment should be tagged with the username of the person making the comment
&lt;/li&gt;&lt;li&gt;Should we allow comments per release as well as per package? &lt;strong&gt;No&lt;/strong&gt; for the time being.
&lt;/li&gt;&lt;li&gt;Comments will be 'flat' and &lt;strong&gt;not&lt;/strong&gt; threaded (at least for the present)
&lt;/li&gt;&lt;li&gt;Comments should be plain text and so html should be escaped (in the future we might look to use some kind of formatter such as markdown)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/31</link>
        <guid isPermaLink="false">http://localhost/ticket/31</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#32: View a tag</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
View a tag's page which should list all packages associated with that tag (or link to a page containing that list).
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;The tags should have a nice primary url such as /tag/&amp;lt;tag-name&amp;gt; (could also use the plural i.e. /tag/&amp;lt;tag-name&amp;gt;)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/32</link>
        <guid isPermaLink="false">http://localhost/ticket/32</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#33: List and search tags</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
View a list of the tags on the system and search for a tag by name
&lt;/p&gt;
&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;As for a search of packages should search for tags that contains a given search string (or could use a glob approach allowing wildcards).
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/33</link>
        <guid isPermaLink="false">http://localhost/ticket/33</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zool</dc:creator>

                  <title>#34: Page Not Found - returns with 200 rather than 404 as it should</title>
                  <description></description>
        <link>http://localhost/ticket/34</link>
        <guid isPermaLink="false">http://localhost/ticket/34</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#35: IP Address for non-logged in users is always 127.0.0.1 when deployed behind a proxy (e.g. on ckan.net)</title>
                  <description>&lt;p&gt;
When IP address is used to identify non-logged in users (for example on create and editing of packages) it is always 127.0.0.1 when using a reverse proxy (standard deployment configuration on a production machine and used e.g. on &lt;a class="ext-link" href="http://www.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
This could be corrected by using HTTP_X_FORWARDED_FOR when available.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/35</link>
        <guid isPermaLink="false">http://localhost/ticket/35</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#36: Edit package page should support previews</title>
                  <description>&lt;p&gt;
When editing a package one would like to be able to preview one's changes before saving.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/36</link>
        <guid isPermaLink="false">http://localhost/ticket/36</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#37: Purge a Revision (i.e. purge all changes associated with that revision)</title>
                  <description>&lt;p&gt;
Spam entries have started to occur on ckan.net in the last few months. It would be useful to be able to purge these revisions -- that is permanently delete all changes to domain objects associated with those revision (one might also permanently delete that revision -- or alternatively simply mark it as purged).
&lt;/p&gt;
&lt;p&gt;
In addition to providing this facility from the shell it would also be useful to be able to do this from the web interface (with associated restrictions on usage via an authorization controller of some sort).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/37</link>
        <guid isPermaLink="false">http://localhost/ticket/37</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#38: Make data available in machine-usable form</title>
                  <description>&lt;p&gt;
Currently all data is only available via the web interface which makes it difficult to obtain in bulk. Data should be provided in other more convenient, machine usable forms:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;DB Dump
&lt;/li&gt;&lt;li&gt;JSON for each package page (maybe Atom as well)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/38</link>
        <guid isPermaLink="false">http://localhost/ticket/38</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#39: When listing packages show more information than just name.</title>
                  <description>&lt;p&gt;
When a package listing is shown (as on &lt;a class="ext-link" href="http://ckan.net/package/list"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/list&lt;/a&gt;) more information than just name should be shown. For example package titles should be shown as well as names (could also list tags and other stuff but simplest is just title).
&lt;/p&gt;
&lt;p&gt;
Cost: 1
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/39</link>
        <guid isPermaLink="false">http://localhost/ticket/39</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#40: Reserved html characters (such as &amp;) in urls mean package does not render for read view</title>
                  <description>&lt;p&gt;
A url such as: &lt;a class="ext-link" href="http://someurl.com/xyz?x=1&amp;amp;VERSION=1.1&amp;amp;Service=WFS"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://someurl.com/xyz?x=1&amp;amp;VERSION=1.1&amp;amp;Service=WFS&lt;/a&gt; when set as url or download_url breaks the rendering of the package with an error like:
&lt;/p&gt;
&lt;p&gt;
There was an error rendering the package: not well-formed (invalid token): line 1, column 181
&lt;/p&gt;
&lt;p&gt;
Have checked that removing the &amp;amp; stuff makes the error go away so this looks like an issue with escaping urls when displaying them ...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/40</link>
        <guid isPermaLink="false">http://localhost/ticket/40</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#41: Upgrade to Latest Version of Pylons (0.9.6.*) and Deploy on Production Machine</title>
                  <description>&lt;p&gt;
Should do this sooner rather than later to avoid 'clear water' opening up and need to deploy then asap onto production machine to avoid 'clear water' between trunk and production (which then prevents pushing from trunk to production).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/41</link>
        <guid isPermaLink="false">http://localhost/ticket/41</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#42: In WUI where List of Items to Display is Large Results should be Paged</title>
                  <description>&lt;h1 id="AsA"&gt;As A&lt;/h1&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h1 id="IWantTo"&gt;I Want To&lt;/h1&gt;
&lt;p&gt;
View lists of items but not have too many on a page (as this leads to slow page loads and difficulty navigating the list). Where there are more items in the results of my action that can be fit on a single page the results should be 'paged' in some manner.
&lt;/p&gt;
&lt;h1 id="Details"&gt;Details&lt;/h1&gt;
&lt;p&gt;
Main place this issue arises:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;List of tags
&lt;/li&gt;&lt;li&gt;List of packages
&lt;/li&gt;&lt;li&gt;Repository history (/revision)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Should probably have no more than 50 (or so) items on a page. Obvious solution is for actions that return lists to have some kind of pageno parameter and then use this in controller to select what to display.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/42</link>
        <guid isPermaLink="false">http://localhost/ticket/42</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#43: Generic Attributes for Packages</title>
                  <description>&lt;h1 id="AsA"&gt;As A&lt;/h1&gt;
&lt;p&gt;
User
&lt;/p&gt;
&lt;h1 id="IWantTo"&gt;I Want To&lt;/h1&gt;
&lt;p&gt;
Add arbitrary named attributes to packages (an attribute being a name, type, value triple).
&lt;/p&gt;
&lt;h1 id="Details"&gt;Details&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;We will do this using a dedicated (versioned) table associated to Package
&lt;/li&gt;&lt;li&gt;Do we allow multiple attributes of the same name?
&lt;ul&gt;&lt;li&gt;For the present: No (since we will key by attribute name)
&lt;/li&gt;&lt;li&gt;Could allow for single attribute but with multiple values using json list ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;What types do we allow or do we just rely on JSON to take care of this?
&lt;/li&gt;&lt;/ul&gt;&lt;h1 id="QuestionsOriginal"&gt;Questions (Original)&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;How complex is this to implement?
&lt;/li&gt;&lt;li&gt;What would an arbitrary user be able to edit? Possibilities:
&lt;ol&gt;&lt;li&gt;'create new attribute' and setting the value (so name and type would be chosen from predefined list).
&lt;/li&gt;&lt;li&gt;'create', setting of name and value (but not type -- type already set in predefined list)
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Could just use (machine) tags -- though this could be seen as a bit of a hack.
&lt;/li&gt;&lt;li&gt;Would solve having to create special file/url attributes (though I think that perhaps file stuff is important enough to merit first class support in the domain model -- though, that said, since one won't want to have a file limit adding unlimited file support is very similar to unlimited attributes of arbitrary type).
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/43</link>
        <guid isPermaLink="false">http://localhost/ticket/43</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#44: Provide RSS/Atom Feed of Repository History</title>
                  <description>&lt;h1 id="AsA"&gt;As A&lt;/h1&gt;
&lt;p&gt;
Visitor
&lt;/p&gt;
&lt;h1 id="IWantTo"&gt;I Want To&lt;/h1&gt;
&lt;p&gt;
Get an RSS/Atom Feed of the Repository History to use in my feed reader (or elsewhere).
&lt;/p&gt;
&lt;h1 id="Details"&gt;Details&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;Preference for Atom.
&lt;/li&gt;&lt;li&gt;should just add parameter to /revision/list/ (or /revision/) to select atom format e.g. ?format=atom.
&lt;/li&gt;&lt;li&gt;should have a 'days' attribute specifying number of days back to go e.g. &amp;amp;days=30
&lt;/li&gt;&lt;/ul&gt;&lt;h1 id="Cost"&gt;Cost&lt;/h1&gt;
&lt;p&gt;
Low
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/44</link>
        <guid isPermaLink="false">http://localhost/ticket/44</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#45: Immunity to SQL injection attacks</title>
                  <description></description>
        <link>http://localhost/ticket/45</link>
        <guid isPermaLink="false">http://localhost/ticket/45</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#46: Return error documents that look and feel like normal CKAN pages</title>
                  <description></description>
        <link>http://localhost/ticket/46</link>
        <guid isPermaLink="false">http://localhost/ticket/46</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#47: Return OpenID signin pages that look and feel like normal pages</title>
                  <description></description>
        <link>http://localhost/ticket/47</link>
        <guid isPermaLink="false">http://localhost/ticket/47</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#48: Create favicon</title>
                  <description>&lt;p&gt;
Because CKAN's worth it!
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/48</link>
        <guid isPermaLink="false">http://localhost/ticket/48</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#49: Filter Spam in Changes to CKAN Data</title>
                  <description>&lt;h1 id="AsA"&gt;As A&lt;/h1&gt;
&lt;p&gt;
sysadmin
&lt;/p&gt;
&lt;h1 id="IWantTo"&gt;I Want To&lt;/h1&gt;
&lt;p&gt;
Have revisions to the CKAN data filtered in order to reduce the spam in the system.
&lt;/p&gt;
&lt;h1 id="Details"&gt;Details&lt;/h1&gt;
&lt;p&gt;
In the long run this is a quite a generic problem common across several OKF systems and probably can become a general component in the okfmisc repo. For time being focus on a well-factored CKAN-specific solution.
&lt;/p&gt;
&lt;p&gt;
Suggest we follow path of trac: &lt;a class="ext-link" href="http://trac.edgewall.org/wiki/SpamFilter"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/SpamFilter&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Could have a general engine that aggregates spam scores from many different 'plugins' and then marks spam appropriately (actions should be configurable depending on spam level from 'purge' to 'delete' (mark revision as inactive) to 'flag' to 'do nothing').
&lt;/p&gt;
&lt;p&gt;
Main initial plugins would be:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;regex filter (this would seem very useful here, e.g. do not allow urls in commit messages ...)
&lt;ul&gt;&lt;li&gt;could augment using the badcontent list approach (can find list on e.g. moinmoin)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;spambayes and/or akismet
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/49</link>
        <guid isPermaLink="false">http://localhost/ticket/49</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#50: Investigate apt-get in more detail</title>
                  <description>&lt;p&gt;
Research apt-get especially wajig and python wrappers for apt-get. Post results on the wiki.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/50</link>
        <guid isPermaLink="false">http://localhost/ticket/50</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#51: Upgrade CKAN to use sqlalchemy and vdm v0.2</title>
                  <description>&lt;p&gt;
Move CKAN codebase to use sqlalchemy (rather than sqlobject) along with vdm v0.2.
&lt;/p&gt;
&lt;p&gt;
NB: the upgrade itself should not be too hard, the work will be in providing a satisfactory migration script to convert existing data on ckan.net service.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/51</link>
        <guid isPermaLink="false">http://localhost/ticket/51</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#52: Paginated results sets should be customizable across domain objects</title>
                  <description>&lt;ol&gt;&lt;li&gt;Tag results could/should show number of associated packages
&lt;/li&gt;&lt;li&gt;Package results should show title (and be in list)
&lt;/li&gt;&lt;li&gt;Pagination should be able to be applied to other result sets than simply register listing (e.g. search results ...)
&lt;/li&gt;&lt;li&gt;Revisions should be listed in a table with full details
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/52</link>
        <guid isPermaLink="false">http://localhost/ticket/52</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#53: View Information about Package history (i.e. package revisions)</title>
                  <description>&lt;h1 id="AsA"&gt;As A&lt;/h1&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;Visitor/User?&lt;/a&gt;
&lt;/p&gt;
&lt;h1 id="Iwantto"&gt;I want to&lt;/h1&gt;
&lt;p&gt;
View information about a package history, i.e. what revisions it has.
&lt;/p&gt;
&lt;h1 id="Details"&gt;Details&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;History info should be available at package/history/pkg-name
&lt;/li&gt;&lt;li&gt;Most basic info is just info from revision (when it occurred, author etc)
&lt;/li&gt;&lt;li&gt;More sophisticated would be to have diff support to see differences between revisions
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/53</link>
        <guid isPermaLink="false">http://localhost/ticket/53</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#54: Support dump and load of CKAN data to JSON</title>
                  <description>&lt;h1 id="Asa"&gt;As a&lt;/h1&gt;
&lt;p&gt;
Sysadmin
&lt;/p&gt;
&lt;h1 id="Iwantto"&gt;I want to&lt;/h1&gt;
&lt;p&gt;
Dump (serialize) CKAN data to a simple transport format (e.g. JSON) and be able to load it again.
&lt;/p&gt;
&lt;h1 id="Details"&gt;Details&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;Already have simple db dump. However dumping to JSON has various advantages, particularly where changes to the data need to be made upon reloading (e.g. during a migration).
&lt;/li&gt;&lt;li&gt;Dump should include *all* CKAN data (i.e. all the data in the CKAN db tables)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/54</link>
        <guid isPermaLink="false">http://localhost/ticket/54</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#55: Code to migrate data from v0.6 to v0.7 using dump and load</title>
                  <description>&lt;p&gt;
Associated to &lt;a class="closed ticket" href="http://localhost/ticket/51" title="enhancement: Upgrade CKAN to use sqlalchemy and vdm v0.2 (closed: fixed)"&gt;ticket:51&lt;/a&gt; (upgrade CKAN to new vdm) and &lt;a class="closed ticket" href="http://localhost/ticket/54" title="enhancement: Support dump and load of CKAN data to JSON (closed: fixed)"&gt;ticket:54&lt;/a&gt; (dump/load) need to convert v0.6 data for v0.7.
&lt;/p&gt;
&lt;p&gt;
Obvious way to do this is via alteration to data load method.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/55</link>
        <guid isPermaLink="false">http://localhost/ticket/55</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#56: Show icons indicating package openness</title>
                  <description>&lt;h2 id="AsA"&gt;As A&lt;/h2&gt;
&lt;p&gt;
User or Visitor
&lt;/p&gt;
&lt;h2 id="IWantTo"&gt;I Want To&lt;/h2&gt;
&lt;p&gt;
See simple icons (e.g. tick/cross) next to packages (in lists or on main page) indicating openness status of package.
&lt;/p&gt;
&lt;h2 id="SoThat"&gt;So That&lt;/h2&gt;
&lt;p&gt;
It is easy to see the openness status of a package.
&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Suggested by Liz Turner
&lt;/li&gt;&lt;li&gt;Openness = open license at present (no easy way to determine whether accessible)
&lt;/li&gt;&lt;li&gt;Have separate tick for downloadability (i.e. existence of download url)
&lt;/li&gt;&lt;li&gt;Could do more stuff in future (e.g. money where tag price- exists, etc etc)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/56</link>
        <guid isPermaLink="false">http://localhost/ticket/56</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#57: Basic datapkg integration with CKAN</title>
                  <description>&lt;p&gt;
Using datapkg a user can:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;list packages on CKAN
&lt;/li&gt;&lt;li&gt;get info about package on CKAN
&lt;/li&gt;&lt;li&gt;register and update a package on CKAN
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/57</link>
        <guid isPermaLink="false">http://localhost/ticket/57</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#58: Make bookmarklet to enable easy package registration on CKAN</title>
                  <description>&lt;p&gt;
Make bookmarklet to enable easy package registration on CKAN
&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;This requires redoing web interface to allow 1-step package creation/editing (as opposed to name then everything else approach at the moment)
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/58</link>
        <guid isPermaLink="false">http://localhost/ticket/58</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#59: Provide a basic guide to CKAN on the site</title>
                  <description>&lt;ol&gt;&lt;li&gt;Use contents from ckan package notes section (rgrp)
&lt;/li&gt;&lt;li&gt;Update that section to be more guide-like (jwyg)
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/59</link>
        <guid isPermaLink="false">http://localhost/ticket/59</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#60: Front page usability improvements</title>
                  <description>&lt;ol&gt;&lt;li&gt;List in sidebar 3 latest created/updated packages.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Put package search box on front page (might also want to move some of front page content into an about page).
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Similarly might want package creation box on front page.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/60</link>
        <guid isPermaLink="false">http://localhost/ticket/60</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#61: When dumping data to json do not dump private information like API keys</title>
                  <description>&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/61</link>
        <guid isPermaLink="false">http://localhost/ticket/61</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#62: Change tags to contain any character (other than space)</title>
                  <description>&lt;p&gt;
Requires us to url encode the tag names when displaying them ...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/62</link>
        <guid isPermaLink="false">http://localhost/ticket/62</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#63: Purge is broken after upgrade of vdm</title>
                  <description>&lt;p&gt;
Since we upgraded to new vdm (v0.4) which has built in purge support existing purge support looks to be broken. Should be reasonably easy to fix this.
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/63</link>
        <guid isPermaLink="false">http://localhost/ticket/63</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#64: Switch to repoze.who for authentication</title>
                  <description>&lt;p&gt;
Switch to repoze.who + openid plugin for authentication from authkit.
&lt;/p&gt;
&lt;p&gt;
Already did this in microfacts so should be fairly easy.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/64</link>
        <guid isPermaLink="false">http://localhost/ticket/64</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#65: Add version attribute to package</title>
                  <description>&lt;p&gt;
It is essential packages have a version attribute to assist in tracking releases etc (and to allow compatibility with other packaging systems e.g. distutils which is being used by datapkg).
&lt;/p&gt;
&lt;p&gt;
cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/65</link>
        <guid isPermaLink="false">http://localhost/ticket/65</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#66: Improve user account UI</title>
                  <description>&lt;ol&gt;&lt;li&gt;Link at top should say "Your Account" when you are logged in
&lt;ul&gt;&lt;li&gt;when not logged in should say: "Log in via openid"
&lt;/li&gt;&lt;li&gt;Open Id info on /account/ should move to /account/login/ or be deleted
&lt;/li&gt;&lt;li&gt;Going to /account/ when not logged in should redirect to /account/login/
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;When logged in the basic account index page should not give generic information but should reflect fact you are logged in by:
&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Saying something like: "You are logged in as: ..."
&lt;/li&gt;&lt;li&gt;Showing your apikey or a link to apikey
&lt;/li&gt;&lt;li&gt;Giving you a logout link
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
We can think of a bunch of other stuff that could go on their (recent edits, packages you own etc) but these will be separate tickets.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/66</link>
        <guid isPermaLink="false">http://localhost/ticket/66</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#67: List all of a user's recent edits on their home page</title>
                  <description>&lt;p&gt;
Additional feature related to &lt;a class="closed ticket" href="http://localhost/ticket/66" title="enhancement: Improve user account UI (closed: fixed)"&gt;ticket:66&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/67</link>
        <guid isPermaLink="false">http://localhost/ticket/67</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#68: Show affected packages in revision list view</title>
                  <description>&lt;p&gt;
When listing revisions (at /revision/ or in atom feed) show affected packages. Minor but v. useful UI improvement.
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/68</link>
        <guid isPermaLink="false">http://localhost/ticket/68</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#69: Change to text-only license field and use external license repo</title>
                  <description>&lt;p&gt;
Switch from license domain object to a simple license field and use license list from new centralised license repo:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;&lt;a class="ext-link" href="http://knowledgeforge.net/okfn/licenses/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/okfn/licenses/&lt;/a&gt;&amp;gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;This will &lt;strong&gt;require&lt;/strong&gt; a migration
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 4h (plus migration ...)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/69</link>
        <guid isPermaLink="false">http://localhost/ticket/69</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#70: Convert from py.test to nosetests</title>
                  <description>&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/70</link>
        <guid isPermaLink="false">http://localhost/ticket/70</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#71: Upgrade to Pylons 0.9.7</title>
                  <description>&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/71</link>
        <guid isPermaLink="false">http://localhost/ticket/71</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#72: Integrate new logo</title>
                  <description>&lt;p&gt;
Integrate new logo from &lt;a class="ext-link" href="http://wiki.okfn.org/ckan/logo"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.okfn.org/ckan/logo&lt;/a&gt; into site:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;In title
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also can do favicon (separate &lt;a class="closed ticket" href="http://localhost/ticket/48" title="enhancement: Create favicon (closed: fixed)"&gt;ticket:48&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/72</link>
        <guid isPermaLink="false">http://localhost/ticket/72</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#73: Put enquiry template in db so it can be edited by admins</title>
                  <description>&lt;p&gt;
Currently stored in the python controller file. This is not the right place and putting it in db will allow editing by admins.
&lt;/p&gt;
&lt;p&gt;
May also want to do this for the footer (also in the controller file).
&lt;/p&gt;
&lt;p&gt;
Details:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Will need to create a new domain object/db table. Suggest called miscellaneous and consist of key value pairs utilizing JSON type for values.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 2h.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/73</link>
        <guid isPermaLink="false">http://localhost/ticket/73</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#74: Add Is It Open links to package pages</title>
                  <description>&lt;p&gt;
On each package page in the openness field if the package is not open provide a link to is it open create enquiry page.
&lt;/p&gt;
&lt;p&gt;
Details:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;may want to add to the url a query parameter indicating which package this relates to e.g. ?ckan-package=...
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://isitopen.ckan.net/enquiry/create/?ckan-package="&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://isitopen.ckan.net/enquiry/create/?ckan-package=&lt;/a&gt;...
&lt;/li&gt;&lt;li&gt;do we provide link even if package is open (e.g. so that people can make enquiries about e.g. adding open data/content buttons ...)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 0.5h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/74</link>
        <guid isPermaLink="false">http://localhost/ticket/74</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#75: Record and display package "usage" information</title>
                  <description>&lt;ul&gt;&lt;li&gt;Number of package page visits on ckan (can we get this straight from google analytics)
&lt;/li&gt;&lt;li&gt;Number of times url or download url is used - now &lt;a class="closed ticket" href="http://localhost/ticket/937" title="enhancement: Record download stats for resources (extension) (closed: fixed)"&gt;ticket:937&lt;/a&gt; (Record download stats for resoures)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
How do we do this?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Google analytics will miss a lot of this usage (and how do we get that data out anyway)
&lt;/li&gt;&lt;li&gt;Could use javascript but again misses usage.
&lt;/li&gt;&lt;li&gt;One option is to redirect link but that is kind of nasty (but may be only option ...)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/75</link>
        <guid isPermaLink="false">http://localhost/ticket/75</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#76: Convert to use formalchemy for all forms</title>
                  <description>&lt;p&gt;
Current form stuff is not very good (uses formencode). Switch to formalchemy would improve this, especially on validation.
&lt;/p&gt;
&lt;p&gt;
As an extra we could utilize the formalchemy pylons admin interface (pretty much for free).
&lt;/p&gt;
&lt;p&gt;
Cost: 12h
&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;Replace htmlfill and formencode extract in controllers/templates with formalchemy
&lt;ol&gt;&lt;li&gt;Crude and simple
&lt;/li&gt;&lt;li&gt;Suppress unwanted fields (revision, state, all revisions) and sort out ordering to be similar to before.
&lt;/li&gt;&lt;li&gt;Sort out tag field with a special renderer
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Validation - testing definitely required.
&lt;/li&gt;&lt;li&gt;Fix up description and pretty css etc
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/76</link>
        <guid isPermaLink="false">http://localhost/ticket/76</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#77: Rate packages</title>
                  <description>&lt;h1 id="AsaUserorVisitor"&gt;As a User or Visitor&lt;/h1&gt;
&lt;p&gt;
I wish to rate a package in some way. On the package view, below Openness, there is a 'Rating' heading with the star rating which is selectable.
&lt;/p&gt;
&lt;p&gt;
Rating out of 5. One user or IP, one vote.
&lt;/p&gt;
&lt;p&gt;
package_rating table:
&lt;/p&gt;
&lt;p&gt;
package      | user                  | rating
annakarenina | joe.bloggs.openid.com | 4
annakarenina | 154.2.5.47            | 1
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/77</link>
        <guid isPermaLink="false">http://localhost/ticket/77</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#78: Extend login cookie lifetime</title>
                  <description>&lt;p&gt;
When you login you get given a cookie but it is very short (life of your browser session I think).
&lt;/p&gt;
&lt;p&gt;
Work out how to extend to something reasonable (30 days or perhaps forever with logout unsetting cookie).
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;A quick investigation to see whether this is possible
&lt;/li&gt;&lt;li&gt;If possible do it
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Cost: ?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/78</link>
        <guid isPermaLink="false">http://localhost/ticket/78</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#79: Improvements to package search</title>
                  <description>&lt;p&gt;
Several things:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Default package search (used e.g. on front page) should deal well with multiple items: "abc xyz" means search for both abc and xyz (as separate searches)
&lt;/li&gt;&lt;li&gt;Should automatically display a list of matching tags in a line at top with number of associated packages
&lt;/li&gt;&lt;li&gt;have an option to only search for fully open material (or openly licensed material ...)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Since we should be moving to a more sophisticated search solution anyway (to allow prioritisation etc) maybe we should cautious as to what we do now.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/79</link>
        <guid isPermaLink="false">http://localhost/ticket/79</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#80: Refactor or remove modes code</title>
                  <description>&lt;p&gt;
Get rid of modes in the RESTful API. Do json stuff directly in controllers.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;package will have to_dict and from_dict methods (called by rest controller) which provide and consume JSON friendly dictionaries representing the object. from_dict - class_method. stuff in forms for tags as_string, maybe factor out. reuse validation stuff.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/80</link>
        <guid isPermaLink="false">http://localhost/ticket/80</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#81: Support for sqlalchemy 0.5</title>
                  <description></description>
        <link>http://localhost/ticket/81</link>
        <guid isPermaLink="false">http://localhost/ticket/81</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#82: Support diffing of versioned objects</title>
                  <description>&lt;p&gt;
Should have function/facility to get a diff of a version object between 2 revisions. Function should return a dictionary of fields with diffs.
&lt;/p&gt;
&lt;p&gt;
Details:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Do we deal with m2m relationships (and m2one on the many side)?
&lt;/li&gt;&lt;li&gt;What is diff?
&lt;ul&gt;&lt;li&gt;For text fields output of python diff command
&lt;/li&gt;&lt;li&gt;For non-text field guess just simple +/- for what was there before and now
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 4h (don't think this is a huge request)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/82</link>
        <guid isPermaLink="false">http://localhost/ticket/82</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#83: Allow "ignored" fields on versioned objects</title>
                  <description>&lt;p&gt;
Allow 'ignored' fields on versioned objects (i.e. attributes which are not 'versioned'). This is not hard to do as we already have most of the necessary mechanisms set up in the Revisioner object.
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/83</link>
        <guid isPermaLink="false">http://localhost/ticket/83</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#84: Revert support on versioned objects</title>
                  <description>&lt;p&gt;
Basic revert in the classic wiki form is already support by purging a Revision. However may wish to support:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Cases where multiple objects changed in a revision but only want to revert 1 (low priority)
&lt;/li&gt;&lt;li&gt;Want to revert but have reversion as a new revision of that object.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Seems low priority at present.
&lt;/p&gt;
&lt;p&gt;
Cost: ?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/84</link>
        <guid isPermaLink="false">http://localhost/ticket/84</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#85: Convert state from an object to an enumeration</title>
                  <description>&lt;p&gt;
No real benefit of having State object as opposed to a simple text field with enumerated values and this second option is both simpler and more flexible.
&lt;/p&gt;
&lt;p&gt;
Main hassle here is that it requires migration in all projects that use vdm.
&lt;/p&gt;
&lt;p&gt;
If we're going to do this we should do it sooner rather than later.
&lt;/p&gt;
&lt;p&gt;
Cost: 2h (+ 1h for a conversion method)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/85</link>
        <guid isPermaLink="false">http://localhost/ticket/85</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#86: Support for stateful dict-like collections</title>
                  <description>&lt;p&gt;
Already support stateful list-like collections and should extend this to dict-like collections.
&lt;/p&gt;
&lt;p&gt;
(This is prerequisite for implementing versioned "extra" (key/value) attributes on packages in CKAN and elsewhere).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/86</link>
        <guid isPermaLink="false">http://localhost/ticket/86</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#87: Multiple download links</title>
                  <description>&lt;p&gt;
Multiple download links, including links to mirrors and multiple formats/versions
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/87</link>
        <guid isPermaLink="false">http://localhost/ticket/87</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#88: Download (link) metadata</title>
                  <description>&lt;p&gt;
Support for download metadata (file size, file formats, version information).
&lt;/p&gt;
&lt;p&gt;
See also: &lt;a class="closed ticket" href="http://localhost/ticket/87" title="enhancement: Multiple download links (closed: duplicate)"&gt;ticket:87&lt;/a&gt; (multiple download links)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/88</link>
        <guid isPermaLink="false">http://localhost/ticket/88</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#89: Tag cloud for package tags</title>
                  <description>&lt;p&gt;
Should not be hard to do (lots of existing libraries) but not sure that this is very important.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/89</link>
        <guid isPermaLink="false">http://localhost/ticket/89</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#90: Link to RDF versions of CKAN data</title>
                  <description>&lt;p&gt;
We should link to representations on semantic.ckan.net
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Each package page could link to its RDF representation
&lt;ul&gt;&lt;li&gt;"Alternative formats" near star rating. Has logo for RDF (link to RDF) and JSON (link via CKAN REST i/f).
&lt;/li&gt;&lt;li&gt;Some instances of ckan won't need this, so have option in ini file for this. rdf_store_url=xyz
&lt;/li&gt;&lt;li&gt;Include machine-readable link to the RDF:
&lt;pre class="wiki"&gt;&amp;lt;meta http-equiv=... /&amp;gt;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;303 redirect to RDF when content negotiation requires RDF. Test:
&lt;pre class="wiki"&gt;curl -I -H "Accept: application/rdf+xml" http://localhost:5000/package/warandpeace
&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 3h
&lt;/p&gt;
&lt;h2 id="Future"&gt;Future&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Search page to link to SPARQL interface: &lt;a class="ext-link" href="http://semantic.ckan.net/sparql"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://semantic.ckan.net/sparql&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;License/dump page could link to full RDF dump.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/90</link>
        <guid isPermaLink="false">http://localhost/ticket/90</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#91: Add author and maintainer attributes to package</title>
                  <description>&lt;p&gt;
Add the following attributes to package:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;author, author_email
&lt;/li&gt;&lt;li&gt;maintainer, maintainer_email
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Gives us full compatibility to: &lt;a class="ext-link" href="http://docs.python.org/distutils/setupscript.html#additional-meta-data"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.python.org/distutils/setupscript.html#additional-meta-data&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Column ordering - should come after name, title, url, download_url.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/91</link>
        <guid isPermaLink="false">http://localhost/ticket/91</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#92: Add RDFa to package pages</title>
                  <description></description>
        <link>http://localhost/ticket/92</link>
        <guid isPermaLink="false">http://localhost/ticket/92</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#93: Access control for packages</title>
                  <description>&lt;p&gt;
Should be able to limit ability to a user's ability to do things with packages (read, edit etc). This is a big ticket (it may required splitting) and full details are in separate wiki page: &lt;a class="wiki" href="http://localhost/wiki/AccessControl"&gt;AccessControl&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Cost: 8d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/93</link>
        <guid isPermaLink="false">http://localhost/ticket/93</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#94: Use sqlalchemy-migrate to handle db/model upgrades</title>
                  <description>&lt;p&gt;
Details of how to go about this here &amp;lt;&lt;a class="ext-link" href="http://www.rufuspollock.org/2009/07/27/sqlalchemy-migrate-with-pylons/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.rufuspollock.org/2009/07/27/sqlalchemy-migrate-with-pylons/&lt;/a&gt;&amp;gt;
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/94</link>
        <guid isPermaLink="false">http://localhost/ticket/94</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#95: Add manifest support</title>
                  <description>&lt;p&gt;
Support for listing files (manifest) contained within a package.
&lt;/p&gt;
&lt;p&gt;
Traditional manifests just list the files. Suggest in addition we have support for optional metadata in form of key, value pairs.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/95</link>
        <guid isPermaLink="false">http://localhost/ticket/95</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#96: info command must give up to date information for python-type distributions</title>
                  <description>&lt;p&gt;
(2008-09-10) at present when setup.py is edited info command may not give up to date information if pkg-info (in egg.info) is not rebuilt.
&lt;/p&gt;
&lt;p&gt;
Suggest: info command needs to rebuilds pkg-info in python-type distributions.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/96</link>
        <guid isPermaLink="false">http://localhost/ticket/96</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#97: Do not create a distribution on a path is something already exists there</title>
                  <description>&lt;p&gt;
(2009-03-09) Do not create a distribution at path X if path X already exists and contains material (unless forced via a force option).
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/97</link>
        <guid isPermaLink="false">http://localhost/ticket/97</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#98: Replace use of pastescript templates in PythonDistribution with of something simpler</title>
                  <description>&lt;p&gt;
Replace use of pastescript templates in &lt;a class="missing wiki"&gt;PythonDistribution?&lt;/a&gt; (write) with of something simpler (allowing us to remove dependency on pastescript).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/98</link>
        <guid isPermaLink="false">http://localhost/ticket/98</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#99: Test DbIndex with sqla 0.5</title>
                  <description>&lt;p&gt;
Test &lt;a class="missing wiki"&gt;DbIndex?&lt;/a&gt; with sqla 0.5 (and get it working if it does not work).
&lt;/p&gt;
&lt;p&gt;
Cost: ??
&lt;/p&gt;
&lt;p&gt;
Priority: low because &lt;a class="missing wiki"&gt;DbIndex?&lt;/a&gt; is not currently that important to us (also wonder whether we should try using CKAN code here to stop us reinventing the wheel).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/99</link>
        <guid isPermaLink="false">http://localhost/ticket/99</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#100: Convert existing data on disk to a datapkg distribution</title>
                  <description>&lt;p&gt;
(2008-10-29) convert existing directory on disk to a datapkg distribution (&lt;a class="missing wiki"&gt;PythonDistribution?&lt;/a&gt; by default). This would be presented in the CLI as a convert command.
&lt;/p&gt;
&lt;p&gt;
Details:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add a metadata file (setup.py), perhaps prompting for input
&lt;/li&gt;&lt;li&gt;List all existing data in that directory
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 4h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/100</link>
        <guid isPermaLink="false">http://localhost/ticket/100</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#101: (Improved) Download support</title>
                  <description>&lt;ol&gt;&lt;li&gt;Given a url download from that url to disk
&lt;/li&gt;&lt;li&gt;Given a package use download url to download to disk
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Once on disk should uncompress (if necessary).
&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Should download either to tmp directory (defaulted in config) or a specified path on disk
&lt;/li&gt;&lt;li&gt;In download would like to support as many types of target urls as possible:
&lt;ol&gt;&lt;li&gt;Single files (usually compressed filesets but could be individual files)
&lt;/li&gt;&lt;li&gt;Index pages listing files to download
&lt;/li&gt;&lt;li&gt;Revision control repositories
&lt;/li&gt;&lt;li&gt;...
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;p&gt;
This will obviously be a significant amount of work. Suggest:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;&lt;li&gt;Start off just supporting the first option.
&lt;/li&gt;&lt;li&gt;Have something like a plugin system to handle new target types
&lt;/li&gt;&lt;li&gt;Reuse existing work (e.g. easy_install and pip handle standard vcs such as svn, hg, git etc)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Cost: 1d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/101</link>
        <guid isPermaLink="false">http://localhost/ticket/101</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#102: Switch to using UUIDs for revision ids</title>
                  <description>&lt;p&gt;
This is better for long term sustainability, especially if we want to "push and pull" from unrelated repositories in the future.
&lt;/p&gt;
&lt;p&gt;
Details:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;May wish to retain a number field updated in the usual incremental way (what's the cost/benefit here?)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/102</link>
        <guid isPermaLink="false">http://localhost/ticket/102</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#103: View a package at a given revision</title>
                  <description>&lt;p&gt;
As a user I want to view a package at a given revision:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;When I visit /package/read/xyz?rev=yyy I should be shown package at revision yyy
&lt;/li&gt;&lt;li&gt;package history page should provide links to these pages
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/103</link>
        <guid isPermaLink="false">http://localhost/ticket/103</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#104: View a package at a given version</title>
                  <description>&lt;p&gt;
As a user i want to see a package at "version" X (NB: not revision X).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;When I visit e.g. /package/read/xyz?version=0.7 I should be shown package at version 0.7 (or a message saying no such version)
&lt;/li&gt;&lt;li&gt;Implementation:
&lt;ul&gt;&lt;li&gt;Find revision for this version (search revision history for when version field was last 0.7)
&lt;/li&gt;&lt;li&gt;Show pacakge at that revision (as in &lt;a class="closed ticket" href="http://localhost/ticket/103" title="enhancement: View a package at a given revision (closed: fixed)"&gt;ticket:103&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;On history page also shows versions in list of revisions associated with the package
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/104</link>
        <guid isPermaLink="false">http://localhost/ticket/104</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#105: Package groups (view)</title>
                  <description>&lt;p&gt;
As a user I want to be able to create groups of packages.
&lt;/p&gt;
&lt;p&gt;
This functionality is different from tags:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The ability to add a package to a given group is restricted whereas anyone can add a given tag to a package
&lt;/li&gt;&lt;li&gt;Specifically groups have owners and only the owners can add a package to that group
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Group properties
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;id (primarykey, uuid style)
&lt;/li&gt;&lt;li&gt;name (restricted content - same rules as package)
&lt;/li&gt;&lt;li&gt;title (no restrictions)
&lt;/li&gt;&lt;li&gt;owners -- many:many with user object
&lt;/li&gt;&lt;li&gt;description (markdown)
&lt;/li&gt;&lt;li&gt;packages -- many:many with package object
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Don't version groups for now.
&lt;/p&gt;
&lt;p&gt;
Groups address in the WUI will be:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;/group     - browse list of groups (reuse list action)
&lt;/li&gt;&lt;li&gt;/group/list - same thing for now
&lt;/li&gt;&lt;li&gt;/group/&amp;lt;groupname&amp;gt; - display: group properties with links to packages. No links to user pages (yet).
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Group editing and searching will be another ticket.
&lt;/p&gt;
&lt;p&gt;
Cost: 3d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/105</link>
        <guid isPermaLink="false">http://localhost/ticket/105</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#106: Regularly convert CKAN data to RDF and put on Talis CC</title>
                  <description>&lt;p&gt;
Sister to &lt;a class="closed ticket" href="http://localhost/ticket/90" title="enhancement: Link to RDF versions of CKAN data (closed: fixed)"&gt;ticket:90&lt;/a&gt; (Link to RDF version of CKAN data on Talis Connected Commons).
&lt;/p&gt;
&lt;p&gt;
Talis have already kindly done an initial conversion. We should repeat this process regularly and re-upload the data to Talis CC.
&lt;/p&gt;
&lt;p&gt;
In the long run may wish to only re-convert packages changed since the last upload. However given relatively smaller size of full dataset this optimization is probably not yet required.
&lt;/p&gt;
&lt;p&gt;
Attached is the ruby script used by Talis for conversion
&lt;/p&gt;
&lt;p&gt;
Cost: ? (1d+ depending on e.g. how easy integration with Talis CC is)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/106</link>
        <guid isPermaLink="false">http://localhost/ticket/106</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#107: Provide information about uploading material</title>
                  <description>&lt;p&gt;
Often people who are registering resources want to make the associated material available. We should:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Provide a dedicated upload page giving instructions as to upload process
&lt;ol&gt;&lt;li&gt;Explain we don't store the data itself on CKAN. Suggest uploading to a store somewhere and then linking using download_url (that is its purpose)
&lt;/li&gt;&lt;li&gt;Upload to
&lt;ul&gt;&lt;li&gt;Talis CC for RDF
&lt;/li&gt;&lt;li&gt;archive.org
&lt;/li&gt;&lt;li&gt;grid.okfn.org
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;link to this page from next to download_url item on new package page
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
In long run (now &lt;a class="closed ticket" href="http://localhost/ticket/186" title="enhancement: Automated upload to archive.org s3 (closed: duplicate)"&gt;ticket:186&lt;/a&gt;) we may automate this by providing a ckan upload facility which caches the data and then reuploads it to relevant service (disadvantage is "we" are the owner of the data on that service ...)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/107</link>
        <guid isPermaLink="false">http://localhost/ticket/107</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#108: Package search in the REST API</title>
                  <description>&lt;p&gt;
Add package search facility in the rest api at /api/search
&lt;/p&gt;
&lt;p&gt;
Queries can be provided as for the normal package search either by posting to that url or by performing a get with a query string.
&lt;/p&gt;
&lt;p&gt;
E.g. .../api/search/package?q=xyz
&lt;/p&gt;
&lt;p&gt;
Query parameters:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;q is keyword string (searches name, title, tags by default)
&lt;ul&gt;&lt;li&gt;split by words and ANDed
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;additional parameters for specific fields
&lt;/li&gt;&lt;li&gt;qjson is alternative to q for Searching by specific fields (in addition to keyword string). Payload to json is a JSON-encoded dict which is a dictionary with a q field for free text (keywords) and additional key/value pairs for specific fields
&lt;ul&gt;&lt;li&gt;if q and qjson specified ignore q and just process qjson value
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Additional parameters in addition to query ("q" or "qjson") are:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;limit
&lt;/li&gt;&lt;li&gt;offset
&lt;/li&gt;&lt;li&gt;fullinfo=0/1 - return full record for each result (default=0)
&lt;/li&gt;&lt;li&gt;order_by=field_name
&lt;/li&gt;&lt;li&gt;search_notes=0/1 (default 0) do we search notes field in a keyword search
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Return value is json encoded dictionary with keys:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;'results': list of results
&lt;/li&gt;&lt;li&gt;'count': total number of results
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Extrasforthefuture"&gt;Extras (for the future)&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Prioritisation is not part of this ticket (requires fulltext support in DB or in external app such as Xapian)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/108</link>
        <guid isPermaLink="false">http://localhost/ticket/108</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#109: Tag search in the REST API</title>
                  <description>&lt;p&gt;
Similar to &lt;a class="closed ticket" href="http://localhost/ticket/108" title="enhancement: Package search in the REST API (closed: fixed)"&gt;ticket:108&lt;/a&gt; but for tags:
&lt;/p&gt;
&lt;p&gt;
/api/search/tag?q
&lt;/p&gt;
&lt;p&gt;
For tags search is extremely simple since you can only search by name.
&lt;/p&gt;
&lt;h2 id="PossibleExtras"&gt;Possible Extras&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Allow "exotic" ordering of results e.g. ordering by number of packages with that tag.
&lt;/li&gt;&lt;li&gt;Return this number with tag list.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/109</link>
        <guid isPermaLink="false">http://localhost/ticket/109</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#110: Integrate groups into packages</title>
                  <description>&lt;ol&gt;&lt;li&gt;Package needs a groups property (backref Group.packages).
&lt;/li&gt;&lt;li&gt;Put groups in the search api.
&lt;/li&gt;&lt;li&gt;Display them on the package, but not editable. (Only editable from the group page.)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Follow up to &lt;a class="closed ticket" href="http://localhost/ticket/105" title="enhancement: Package groups (view) (closed: fixed)"&gt;ticket:105&lt;/a&gt; (Groups).
&lt;/p&gt;
&lt;p&gt;
Cost: 1d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/110</link>
        <guid isPermaLink="false">http://localhost/ticket/110</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#111: Create user object</title>
                  <description>&lt;p&gt;
Object properties:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;id (uuid)
&lt;/li&gt;&lt;li&gt;apikey (uuid) -- migrated from the apikey table
&lt;/li&gt;&lt;li&gt;name (username = openid)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
/account is being renamed to /user in the wui.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/111</link>
        <guid isPermaLink="false">http://localhost/ticket/111</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#112: Test db schema created via migration scripts</title>
                  <description>&lt;p&gt;
'paster db upgrade' should result in the same database as 'paster db create' on a clean system. In particular, all tests should pass.
&lt;/p&gt;
&lt;p&gt;
Note: equivalent of paster db upgrade isn't being run from tests at the moment (we haven't been able to get this to work).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/112</link>
        <guid isPermaLink="false">http://localhost/ticket/112</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#113: Simple script to test data migration on a production db</title>
                  <description>&lt;p&gt;
Must not alter the db.
&lt;/p&gt;
&lt;p&gt;
Related to &lt;a class="closed ticket" href="http://localhost/ticket/112" title="enhancement: Test db schema created via migration scripts (closed: wontfix)"&gt;ticket:112&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/113</link>
        <guid isPermaLink="false">http://localhost/ticket/113</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#114: Access Control - model</title>
                  <description>&lt;p&gt;
Create in the model basic operation of Access Control.
&lt;/p&gt;
&lt;p&gt;
roles table
&lt;/p&gt;
&lt;pre class="wiki"&gt;name | context | action
-----------------------
admin| package | edit
admin| package | edit-permissions
admin| package | read
editor| package | update
editor| package | read
reader| package | read
This data is set-up on db init and will have no interface.
&lt;/pre&gt;&lt;p&gt;
user-roles table:
&lt;/p&gt;
&lt;pre class="wiki"&gt;username | context_type | objectid | role
rgrp     | system  | n/a | admin
visitor  | package | * | reader
bob      | package | geonames | admin
visitor  | package | geonames | editor
visitor  | package | geonames | reader
john     | group | ukgov | admin
dread    | group | ukgov | editor
visitor  | group | ukgov | reader
This data will be added when someone is given permissions for the system, a package or a group.
&lt;/pre&gt;&lt;p&gt;
Pseudo code:
&lt;/p&gt;
&lt;p&gt;
class Package
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def is_allowed(name, action):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
is_allowed(name, action, context=self)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
class Group
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def is_allowed(name, action):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
is_allowed(name, action, context=self)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
def is_allowed(name, action, context=None):
&lt;strong&gt; name: string - a username or IP for 'visitor'
&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
action: string - 'read', 'edit', 'delete', 'edit-permissions'
context: object - a Group or a Package or None (which means system)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;strong&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# look up user from name.
# look up in user-roles table what roles this user has for this context.
# for each roles, look up in roles table what actions are allowed.
# return True if action is allowed, else False.
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/114</link>
        <guid isPermaLink="false">http://localhost/ticket/114</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#115: Access Control - wui constrained by model</title>
                  <description>&lt;p&gt;
Based on a section of &lt;a class="wiki" href="http://localhost/wiki/AccessControl"&gt;AccessControl&lt;/a&gt; design:
Reading and writing to packages in the WUI and REST API are now dependent on the authz tables.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/115</link>
        <guid isPermaLink="false">http://localhost/ticket/115</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#116: Access Control - edited in wui</title>
                  <description>&lt;p&gt;
Based on a section of &lt;a class="wiki" href="http://localhost/wiki/AccessControl"&gt;AccessControl&lt;/a&gt; design:
WUI gives controls to user and administrator to change permissions on a package.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/116</link>
        <guid isPermaLink="false">http://localhost/ticket/116</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#117: Access Control - group core functionality</title>
                  <description>&lt;p&gt;
Based on a section of &lt;a class="wiki" href="http://localhost/wiki/AccessControl"&gt;AccessControl&lt;/a&gt; design:
Group reads and edits are controlled by access control. WUI and REST interfaces covered.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/117</link>
        <guid isPermaLink="false">http://localhost/ticket/117</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#118: Use paginate in webhelpers</title>
                  <description>&lt;p&gt;
Take out import of paginate in setup.py.
Use paginate in webhelpers instead.
Make changes to take account of any i/f changes.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/118</link>
        <guid isPermaLink="false">http://localhost/ticket/118</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#119: Ensure non-active packages don't show up</title>
                  <description>&lt;p&gt;
Ensure pending packages don't show up in search or browse
&lt;/p&gt;
&lt;p&gt;
cost: 4h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/119</link>
        <guid isPermaLink="false">http://localhost/ticket/119</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#120: Security audit</title>
                  <description>&lt;p&gt;
Look for all places where model is accessed and check authorization is checked.
&lt;/p&gt;
&lt;p&gt;
Document holes (and, as necessary, suggestions for fixes) as new tickets. Likely areas that need looking at:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;search i/f
&lt;/li&gt;&lt;li&gt;package WUI commit
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Write holes are obviously much more significant to us than read holes.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/120</link>
        <guid isPermaLink="false">http://localhost/ticket/120</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#121: Add 'Group' to main menu</title>
                  <description>&lt;p&gt;
And associated page to browse group.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/121</link>
        <guid isPermaLink="false">http://localhost/ticket/121</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#122: Add Group authz page</title>
                  <description></description>
        <link>http://localhost/ticket/122</link>
        <guid isPermaLink="false">http://localhost/ticket/122</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#123: Ability to edit Group in WUI</title>
                  <description>&lt;p&gt;
Add Group editing page.
&lt;/p&gt;
&lt;p&gt;
If no permissions to change group can't edit group. Also cannot view edit page.
&lt;/p&gt;
&lt;p&gt;
Editable attributes: name, title, description
&lt;/p&gt;
&lt;p&gt;
No preview needed
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/123</link>
        <guid isPermaLink="false">http://localhost/ticket/123</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#124: Display Generic Package Attributes in WUI</title>
                  <description>&lt;p&gt;
Split out from &lt;a class="closed ticket" href="http://localhost/ticket/43" title="enhancement: Generic Attributes for Packages (closed: fixed)"&gt;ticket:43&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/124</link>
        <guid isPermaLink="false">http://localhost/ticket/124</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#125: Edit Generic Package Attributes in WUI</title>
                  <description>&lt;p&gt;
Split out from &lt;a class="closed ticket" href="http://localhost/ticket/43" title="enhancement: Generic Attributes for Packages (closed: fixed)"&gt;ticket:43&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/125</link>
        <guid isPermaLink="false">http://localhost/ticket/125</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#126: Change package state in the WUI (delete and undelete)</title>
                  <description>&lt;p&gt;
As a Package Admin I want to change the state of the package. In particular I wish to delete and undelete it.
&lt;/p&gt;
&lt;p&gt;
(NB: this is quite separate from "purging" objects which is the term we shall use for irrevocable removal of an object from the domain model).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Only Package Admins (and sysadmins) should be able to change state
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="ImplementationSuggestions"&gt;Implementation Suggestions&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;'delete' action should be renamed to 'change-state' (NB: this requires a db migration ...)
&lt;/li&gt;&lt;li&gt;Have new package formalchemy form (created via inheritance?) to incorporate state attribute. Suggest this is rendered as a dropdown (and may be simple object rendering of state, i.e. do NOT need to change it to a single name such 'active').
&lt;/li&gt;&lt;li&gt;This form should then be used when the user satisfies is_authorized(..., model.Action.CHANGE_STATE) instead of the usual fieldset
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/126</link>
        <guid isPermaLink="false">http://localhost/ticket/126</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#127: Minor form and UI improvements</title>
                  <description>&lt;ul&gt;&lt;li&gt;group form: description field for  needs to be a text area
&lt;/li&gt;&lt;li&gt;group form: make title and name field wider
&lt;/li&gt;&lt;li&gt;package view: need to move tags and license above notes
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/127</link>
        <guid isPermaLink="false">http://localhost/ticket/127</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#128: Add ckan_url attribute to REST JSON representation of a Package</title>
                  <description>&lt;p&gt;
Add ckan_url attribute to REST JSON representation of a Package pointing to the (read) url of package on CKAN.
&lt;/p&gt;
&lt;p&gt;
Cost: 30m
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/128</link>
        <guid isPermaLink="false">http://localhost/ticket/128</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#129: Secure db access by channelling query generation through authz module</title>
                  <description>&lt;p&gt;
Controllers and templates should not access db objects directly - they should do all access via authz module giving username. They are handed by a query that has already been filtered by the packages they are authorized to read.
&lt;/p&gt;
&lt;p&gt;
(Additional idea to be discussed: When they request a package object, they are handed an copy of the db object - disconnected from the database - so it the db object can't be changed.)
&lt;/p&gt;
&lt;p&gt;
A couple of tests can be reenabled when this is done:
ckan.tests.functional.test_authz.&lt;a class="missing wiki"&gt;TestUsage?&lt;/a&gt;.test_admin_list_deleted ckan.tests.functional.test_authz.&lt;a class="missing wiki"&gt;TestUsage?&lt;/a&gt;.test_search_deleted
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/129</link>
        <guid isPermaLink="false">http://localhost/ticket/129</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#130: Create a New Group via the WUI</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
User
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Create a new group via the WUI
&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;locate at /group/new/
&lt;/li&gt;&lt;li&gt;You must be logged in to create a group
&lt;/li&gt;&lt;li&gt;Group creator is automatically given role of group admin
&lt;/li&gt;&lt;li&gt;Edit screen is same as edit screen ...
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/130</link>
        <guid isPermaLink="false">http://localhost/ticket/130</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#131: Groups REST interface</title>
                  <description>&lt;p&gt;
Controlling Groups through a REST interface.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/131</link>
        <guid isPermaLink="false">http://localhost/ticket/131</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#132: Security hole - read package/group list (REST)</title>
                  <description>&lt;p&gt;
Using REST interface you can list packages and groups without authorization being checked.
&lt;/p&gt;
&lt;p&gt;
Can be fixed using more advanced query to check authz.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/132</link>
        <guid isPermaLink="false">http://localhost/ticket/132</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#133: Security hole - search package/group (WUI &amp; REST)</title>
                  <description>&lt;p&gt;
Using WUI or REST interface you can search packages and groups without authorization being checked.
&lt;/p&gt;
&lt;p&gt;
On the REST interface you can also read all the attributes of the packages using the 'all-fields' option.
&lt;/p&gt;
&lt;p&gt;
Can be fixed using more advanced query to check authz.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/133</link>
        <guid isPermaLink="false">http://localhost/ticket/133</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#134: admin interface is only available to sysadmins</title>
                  <description></description>
        <link>http://localhost/ticket/134</link>
        <guid isPermaLink="false">http://localhost/ticket/134</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#135: sysadmins defined in the db</title>
                  <description></description>
        <link>http://localhost/ticket/135</link>
        <guid isPermaLink="false">http://localhost/ticket/135</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#136: User has publicly viewable page</title>
                  <description>&lt;p&gt;
A user's 'home page' is at:
user/&amp;lt;user.id&amp;gt;
e.g. user/28394723982-03849472
&lt;/p&gt;
&lt;p&gt;
Step 1:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Current user home page with recent edits
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Step 2:
Readonly
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Number of edits
&lt;/li&gt;&lt;li&gt;Number of Packages they are admin of
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
How do we do a nicer URL for the home page - can we use their openid login?
&lt;/p&gt;
&lt;p&gt;
Follow on tickets: &lt;a class="closed ticket" href="http://localhost/ticket/138" title="enhancement: User has editable home page (closed: fixed)"&gt;ticket:138&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/142" title="defect: Update User object with additional fields such as 'nickname' (closed: fixed)"&gt;ticket:142&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/136</link>
        <guid isPermaLink="false">http://localhost/ticket/136</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#137: User has editable home page</title>
                  <description>&lt;ul&gt;&lt;li&gt;Generic text box for markdown about the user 'About'
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Model's user table reflects these:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;'about' attribute
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/137</link>
        <guid isPermaLink="false">http://localhost/ticket/137</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#138: User has editable home page</title>
                  <description>&lt;ul&gt;&lt;li&gt;Generic text box for markdown about the user 'About'
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Model's user table reflects these:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;'about' attribute
&lt;/li&gt;&lt;li&gt;'created' attribute is a default=datetime.now() - so when user was created
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Need edit page for this.
&lt;/p&gt;
&lt;p&gt;
Only user should be able to edit it.
&lt;/p&gt;
&lt;p&gt;
Follows on from &lt;a class="closed ticket" href="http://localhost/ticket/136" title="enhancement: User has publicly viewable page (closed: fixed)"&gt;ticket:136&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/142" title="defect: Update User object with additional fields such as 'nickname' (closed: fixed)"&gt;ticket:142&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/138</link>
        <guid isPermaLink="false">http://localhost/ticket/138</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#139: Ensure you cannot add same tag twice to a package</title>
                  <description>&lt;p&gt;
Seems some package have ended up with same tag twice: &lt;a class="ext-link" href="http://www.ckan.net/package/fred2dot0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/package/fred2dot0&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Check whether this is still possible and if it is fix it ...
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/139</link>
        <guid isPermaLink="false">http://localhost/ticket/139</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#140: News section on front page</title>
                  <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>
        <link>http://localhost/ticket/140</link>
        <guid isPermaLink="false">http://localhost/ticket/140</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#141: Search api docs</title>
                  <description>&lt;p&gt;
Write up search api documentation and put it in a template that shows up at api/search/.
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/141</link>
        <guid isPermaLink="false">http://localhost/ticket/141</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#142: Update User object with additional fields such as 'nickname'</title>
                  <description>&lt;p&gt;
Suggested fields:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;id, name (username/profile name), openid, email, password, extras (&lt;a class="missing wiki"&gt;JsonType?&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;+ current items: apikey, about, created)
&lt;/li&gt;&lt;li&gt;current contents of name is usually openid and should migrate to openid field (could match based on starting with &lt;a class="ext-link" href="http://"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;May also want a fullname field (or perhaps that can
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
just go in extras - may be better to have its own field as useful to search on this )
&lt;/p&gt;
&lt;p&gt;
Related changes (probably separate tickets):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Improve user home page to include this additional information (and have it be editable)
&lt;/li&gt;&lt;li&gt;Use user 'name' (username) for home page links (rather than current user/&amp;lt;id&amp;gt;)
&lt;/li&gt;&lt;li&gt;Where we show lists of revisions, each revision author is now a link to the author's user page.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Related to &lt;a class="closed ticket" href="http://localhost/ticket/136" title="enhancement: User has publicly viewable page (closed: fixed)"&gt;ticket:136&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/138" title="enhancement: User has editable home page (closed: fixed)"&gt;ticket:138&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/142</link>
        <guid isPermaLink="false">http://localhost/ticket/142</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#143: Most active users listed on homepage</title>
                  <description>&lt;p&gt;
Display league of users' recent activity on homepage.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/143</link>
        <guid isPermaLink="false">http://localhost/ticket/143</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#144: Most popular packages listed on homepage</title>
                  <description>&lt;p&gt;
Based on number of views.
&lt;/p&gt;
&lt;p&gt;
Related to &lt;a class="assigned ticket" href="http://localhost/ticket/143" title="enhancement: Most active users listed on homepage (assigned)"&gt;ticket:143&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/144</link>
        <guid isPermaLink="false">http://localhost/ticket/144</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#145: Group shows its administrators</title>
                  <description>&lt;p&gt;
When viewing a group you see a list of the users who have admin rights to it. (Akin to owners / moderators)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/145</link>
        <guid isPermaLink="false">http://localhost/ticket/145</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#146: Problem when an admin user logs in between commencing editing and saving</title>
                  <description>&lt;ol&gt;&lt;li&gt;Visitor starts editing a package (or creates a new package)
&lt;/li&gt;&lt;li&gt;Visitor logs in before previewing or committing
&lt;/li&gt;&lt;li&gt;Visitor is an admin (or sysadmin)
&lt;/li&gt;&lt;li&gt;Preview or commit fails
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Reason (conjecture): the form we use for package editing is now dependent on whether you have admin privileges (we allow editing of state by admins). When you login the old form is now incorrect and this results in the formalchemy fieldset breaking.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/146</link>
        <guid isPermaLink="false">http://localhost/ticket/146</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#147: Parser and loader for esw.org data</title>
                  <description></description>
        <link>http://localhost/ticket/147</link>
        <guid isPermaLink="false">http://localhost/ticket/147</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#148: Parser and loader for esw.org data</title>
                  <description>&lt;ul&gt;&lt;li&gt;parse like data4nr code
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Follow up tickets: &lt;a class="closed ticket" href="http://localhost/ticket/149" title="enhancement: Loader for esw data recognises existing packages (closed: fixed)"&gt;ticket:149&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/150" title="enhancement: Loader for esw data uses REST API (closed: fixed)"&gt;ticket:150&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/148</link>
        <guid isPermaLink="false">http://localhost/ticket/148</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#149: Loader for esw data recognises existing packages</title>
                  <description>&lt;p&gt;
Follows on from &lt;a class="closed ticket" href="http://localhost/ticket/148" title="enhancement: Parser and loader for esw.org data (closed: fixed)"&gt;ticket:148&lt;/a&gt;.
Sister to &lt;a class="closed ticket" href="http://localhost/ticket/150" title="enhancement: Loader for esw data uses REST API (closed: fixed)"&gt;ticket:150&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/149</link>
        <guid isPermaLink="false">http://localhost/ticket/149</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#150: Loader for esw data uses REST API</title>
                  <description>&lt;p&gt;
(instead of sqlalchemy interface, to facilitate general usage of the loader)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;use ckanclient
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Follows on from &lt;a class="closed ticket" href="http://localhost/ticket/148" title="enhancement: Parser and loader for esw.org data (closed: fixed)"&gt;ticket:148&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/149" title="enhancement: Loader for esw data recognises existing packages (closed: fixed)"&gt;ticket:149&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/150</link>
        <guid isPermaLink="false">http://localhost/ticket/150</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#151: User object should have a created attribute</title>
                  <description>&lt;p&gt;
User object should have a "created" attribute initialized to current datetime.
&lt;/p&gt;
&lt;p&gt;
Require a db migration but o/w very simple.
&lt;/p&gt;
&lt;p&gt;
Cost: 1.5h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/151</link>
        <guid isPermaLink="false">http://localhost/ticket/151</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#152: Package has editable 'Extra' fields</title>
                  <description>&lt;p&gt;
Package edit page has fields for extra key-value pairs. Don't use formalchemy. The form displays the existing ones and new ones as follows:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Key           Value            delete
[ country   ] [ uk, spain   ]  [x]
&lt;/pre&gt;&lt;p&gt;
When presenting the form, existing pairs and 3 blank pairs are provided.
&lt;/p&gt;
&lt;p&gt;
When saving the data, keys that are not changed use the existing PackageExtra object (perhaps with new value). Deleted keys put the PackageExtra state to deleted. For new keys, only create a new PackageExtra if there isn't a state=deleted one to resurrect.
&lt;/p&gt;
&lt;p&gt;
Validators ensure no repeated keys.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/152</link>
        <guid isPermaLink="false">http://localhost/ticket/152</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#153: Group's packages listed alphabetically</title>
                  <description>&lt;p&gt;
This is so you can easily look up whether a given package is already listed - otherwise as lists get bigger becomes difficult to see what is already there.
&lt;/p&gt;
&lt;p&gt;
Suggested by Jonathan Gray
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/153</link>
        <guid isPermaLink="false">http://localhost/ticket/153</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#154: Package form guidance</title>
                  <description>&lt;p&gt;
Give guidance on what to put in 'author' and 'maintainer' fields (e.g.
name? URL?)
&lt;/p&gt;
&lt;p&gt;
Suggestion from Jonathan Gray
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/154</link>
        <guid isPermaLink="false">http://localhost/ticket/154</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#155: Adding multiple packages to a group</title>
                  <description>&lt;p&gt;
Ability to add multiple packages to a group in one go (e.g. with
'add' link which makes drop down menu appear - so can add one after
another - then submit simultaneously)
&lt;/p&gt;
&lt;p&gt;
Use a bit of javascript to add more dropdowns.
&lt;/p&gt;
&lt;p&gt;
Suggested by Jonathan Gray
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/155</link>
        <guid isPermaLink="false">http://localhost/ticket/155</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#156: Whitelist for html in mark-down field</title>
                  <description>&lt;p&gt;
Not just links that need to be displayed. Other html should be displayed too, such as tables which can't be represented in markdown. Do a search of the existing fields to see what is needed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/156</link>
        <guid isPermaLink="false">http://localhost/ticket/156</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#157: Log message not persisted through preview</title>
                  <description>&lt;p&gt;
Log message on package edit page is no longer persisted through a preview (no doubt due to recent form upgrades). Let's fix this.
&lt;/p&gt;
&lt;p&gt;
cost: 0.5h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/157</link>
        <guid isPermaLink="false">http://localhost/ticket/157</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#158: Add 'extras' to REST API</title>
                  <description>&lt;ul&gt;&lt;li&gt;Ensure you can add/change/delete extra fields from packages using the REST API.
&lt;/li&gt;&lt;li&gt;Update API docs to cover this.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
On Package get, ensure separation of extra attributes from other attributes.
&lt;/p&gt;
&lt;p&gt;
What is the meaning of posting an incomplete dictionary (updating a package)?
Option 1 - if field not present, leave field alone
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Delete field if field value is None
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Option 2 - user must supply all fields
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Delete field if field absent
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Prefer option 1. Document this.
&lt;/p&gt;
&lt;p&gt;
Follows on from &lt;a class="closed ticket" href="http://localhost/ticket/152" title="enhancement: Package has editable 'Extra' fields (closed: fixed)"&gt;ticket:152&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/158</link>
        <guid isPermaLink="false">http://localhost/ticket/158</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#159: Searching for tags:... resulting in lots of tags being found</title>
                  <description>&lt;p&gt;
Search of form: tags: ... behaves differently depending on whether there is a leading space:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;tags: postcode - tags found correctly but no packages found
&lt;/li&gt;&lt;li&gt;tags:postcode - tags incorrectly found but correct packages found
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Let's fix this.
&lt;/p&gt;
&lt;p&gt;
Cost: 0.5h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/159</link>
        <guid isPermaLink="false">http://localhost/ticket/159</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#160: Implement internal links in CKAN notes markup</title>
                  <description>&lt;p&gt;
Suggest form is: key:value (with optional space after ':'.
&lt;/p&gt;
&lt;p&gt;
Keys would be for an object, i.e. 'package', 'tag', 'group'.
&lt;/p&gt;
&lt;p&gt;
Becomes a link.
&lt;/p&gt;
&lt;p&gt;
This would be implemented by implementing a 'Parser' or 'Processor' object which is run before markdown is done. Regex replace.
&lt;/p&gt;
&lt;p&gt;
Cost: 4h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/160</link>
        <guid isPermaLink="false">http://localhost/ticket/160</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#161: Tag listing is incorrect</title>
                  <description>&lt;p&gt;
E.g. &lt;a class="ext-link" href="http://ckan.net/tag/read/postcodes"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/tag/read/postcodes&lt;/a&gt; this has no-postcode listed but when you look at that package 'postcodes' isn't a tag ...
&lt;/p&gt;
&lt;p&gt;
I suspect this may be to do with search using deleted tags as I think no-postcode had postcodes as a tag at some point earlier ...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/161</link>
        <guid isPermaLink="false">http://localhost/ticket/161</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#162: Tags should be automatially lowere-cased if not already</title>
                  <description>&lt;p&gt;
Rather than raising a validation error automatically lower-case tags on submission.
&lt;/p&gt;
&lt;p&gt;
Cost: 0.5h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/162</link>
        <guid isPermaLink="false">http://localhost/ticket/162</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#163: Regularly put CKAN RDF on Talis CC</title>
                  <description>&lt;p&gt;
Related to:
&lt;a class="closed ticket" href="http://localhost/ticket/90" title="enhancement: Link to RDF versions of CKAN data (closed: fixed)"&gt;ticket:90&lt;/a&gt; Link to RDF version of CKAN data on Talis Connected Commons
&lt;a class="closed ticket" href="http://localhost/ticket/164" title="enhancement: Creating RDF data from CKAN (closed: fixed)"&gt;ticket:164&lt;/a&gt; Creating RDF data from CKAN
&lt;/p&gt;
&lt;p&gt;
Regularly re-upload the CKAN RDF data to Talis CC.
&lt;/p&gt;
&lt;p&gt;
In the long run may wish to only re-convert packages changed since the last upload. However given relatively smaller size of full dataset this optimization is probably not yet required.
&lt;/p&gt;
&lt;p&gt;
Cost: ? (1d+ depending on e.g. how easy integration with Talis CC is)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/163</link>
        <guid isPermaLink="false">http://localhost/ticket/163</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#164: Creating RDF data from CKAN</title>
                  <description>&lt;p&gt;
Related to:
&lt;a class="closed ticket" href="http://localhost/ticket/90" title="enhancement: Link to RDF versions of CKAN data (closed: fixed)"&gt;ticket:90&lt;/a&gt; Link to RDF version of CKAN data and
&lt;a class="closed ticket" href="http://localhost/ticket/163" title="enhancement: Regularly put CKAN RDF on Talis CC (closed: fixed)"&gt;ticket:163&lt;/a&gt; (regularly convert CKAN data to RDF).
&lt;/p&gt;
&lt;p&gt;
Convert ckan data to RDF with suitable ontology and put on semantic.ckan.net.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/164</link>
        <guid isPermaLink="false">http://localhost/ticket/164</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#165: Use 'tag:' instead of 'tags:' for wui package search</title>
                  <description>&lt;p&gt;
Because people might try and do "tags:gov sweden" when "tag:gov sweden" makes more sense (sweden is searched for in all fields in these cases).
&lt;/p&gt;
&lt;p&gt;
But in REST i/f search allow "tag"="gov" OR "tags"="gov sweden" in parameters.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/165</link>
        <guid isPermaLink="false">http://localhost/ticket/165</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#166: Add extras editing to ckanclient</title>
                  <description>&lt;p&gt;
Ensure logging is working on server.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/166</link>
        <guid isPermaLink="false">http://localhost/ticket/166</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#167: REST interface you can't update multiple tags</title>
                  <description>&lt;p&gt;
Only first tag is updated.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/167</link>
        <guid isPermaLink="false">http://localhost/ticket/167</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#168: Show admins for a group in group view</title>
                  <description></description>
        <link>http://localhost/ticket/168</link>
        <guid isPermaLink="false">http://localhost/ticket/168</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#169: Package derivations</title>
                  <description>&lt;p&gt;
A 'Derived' relationship can be applied from one package to another.
&lt;/p&gt;
&lt;p&gt;
e.g.
sussex-demography is derived from census-2001
&lt;/p&gt;
&lt;p&gt;
'Derived' relationship is:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;directional
&lt;/li&gt;&lt;li&gt;many:many
&lt;/li&gt;&lt;li&gt;stateful
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
'derived' table columns:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;id (primary key)
&lt;/li&gt;&lt;li&gt;source_package (foreign key)
&lt;/li&gt;&lt;li&gt;result_package (foreign key)
&lt;/li&gt;&lt;li&gt;description (markdown text)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Further tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;WUI - package view - shows 'derives from package x' and 'derived package y' with UML-like diagram of x -&amp;gt; this package -&amp;gt; y
&lt;/li&gt;&lt;li&gt;WUI - package edit form - new option to say it 'derives from' or 'has derivation' and you select the appropriate
&lt;/li&gt;&lt;li&gt;REST if - expose reading and writing this property
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/169</link>
        <guid isPermaLink="false">http://localhost/ticket/169</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#170: Paginate search results</title>
                  <description>&lt;p&gt;
e.g.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://www.ckan.net/package/search?q=science&amp;amp;search=Search+Packages+%C2%BB"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/package/search?q=science&amp;amp;search=Search+Packages+%C2%BB&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Results are capped at 20, but can't see past first page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/170</link>
        <guid isPermaLink="false">http://localhost/ticket/170</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#171: Create consolidated config for CLI</title>
                  <description>&lt;p&gt;
Create consolidated set of config by merging config from .datapkgrc and command line options and use that instead of mixture of command line options and other stuff ... (likely to be less buggy!)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/171</link>
        <guid isPermaLink="false">http://localhost/ticket/171</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#172: Build ckan documentation using sphinx and upload</title>
                  <description>&lt;p&gt;
Use python sphinx to build documenation in ./doc and then upload it somewhere publicly accessible.
&lt;/p&gt;
&lt;p&gt;
NB: improving the documentation is another matter (as is integrating e.g. existing api docs).
&lt;/p&gt;
&lt;p&gt;
Upload location (these are docs for CKAN codebase/concept not the ckan service at ckan.net so good not to associate it too closely with ckan.net):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://knowledgeforge.net/ckan/ckan/doc/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/ckan/ckan/doc/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;(Other options: &lt;a class="ext-link" href="http://www.ckan.net/doc/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/doc/&lt;/a&gt; &lt;a class="ext-link" href="http://doc.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://doc.ckan.net&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/172</link>
        <guid isPermaLink="false">http://localhost/ticket/172</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#173: Diffing WUI</title>
                  <description>&lt;p&gt;
Use vdm diff functionality (see &lt;a class="closed ticket" href="http://localhost/ticket/82" title="enhancement: Support diffing of versioned objects (closed: fixed)"&gt;ticket:82&lt;/a&gt;) to implement diffing of packages between versions in WUI.
&lt;/p&gt;
&lt;p&gt;
In package history you should be able to select to revisions and show the diff.
&lt;/p&gt;
&lt;p&gt;
Estimated cost: 12h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/173</link>
        <guid isPermaLink="false">http://localhost/ticket/173</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#174: Packages search broken for 'only openly licensed'</title>
                  <description>&lt;p&gt;
the "only openly licensed packages" tick box seems
to return blank page every time - as do queries for only openly
licensed and only downloadable packages. The "only downloadable
packages" tick box by itself seems to work fine. E.g. try searching
for 'science'.
&lt;/p&gt;
&lt;p&gt;
Raised by Jonathan Gray
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/174</link>
        <guid isPermaLink="false">http://localhost/ticket/174</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#175: Creation date</title>
                  <description>&lt;p&gt;
'created' attribute on User, Group and Rating
&lt;/p&gt;
&lt;p&gt;
datetime object: default=datetime.datetime.now()
&lt;/p&gt;
&lt;p&gt;
See example on revision
&lt;/p&gt;
&lt;p&gt;
Requires migrate script
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/175</link>
        <guid isPermaLink="false">http://localhost/ticket/175</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#176: Package dependencies</title>
                  <description>&lt;p&gt;
(Related to &lt;a class="closed ticket" href="http://localhost/ticket/169" title="enhancement: Package derivations (closed: duplicate)"&gt;ticket:169&lt;/a&gt; - Package derivations)
&lt;/p&gt;
&lt;p&gt;
A 'dependency' relationship can be applied from one package to another. It implies that a package requires the download or existence of another package which it 'depends on'. (Analogous to software package dependencies.)
&lt;/p&gt;
&lt;p&gt;
e.g. london-traffic-visualisation depends on road-map
&lt;/p&gt;
&lt;p&gt;
'Dependency' relationship is:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;directional
&lt;/li&gt;&lt;li&gt;many:many
&lt;/li&gt;&lt;li&gt;stateful
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
'dependency' table columns:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;id (primary key)
&lt;/li&gt;&lt;li&gt;dependent (foreign key)
&lt;/li&gt;&lt;li&gt;dependency (foreign key)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Further tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;WUI - package view - have list of dependencies (do not need to list packages which depend on this one)
&lt;/li&gt;&lt;li&gt;WUI - package edit form - new option to say 'depends on' (no need for 'has dependent package')
&lt;/li&gt;&lt;li&gt;REST api - expose reading and writing 'depends on' property.
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Issues"&gt;Issues&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;How do we deal with dependency at a particular version?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/176</link>
        <guid isPermaLink="false">http://localhost/ticket/176</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#177: Service documentation</title>
                  <description>&lt;p&gt;
This is docs for users of a CKAN service (e.g. ckan.net), as opposed to someone installing / administering the software. (The latter has docs on knowledgeforge.
&lt;/p&gt;
&lt;p&gt;
Editability - wiki?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/177</link>
        <guid isPermaLink="false">http://localhost/ticket/177</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#178: Excel package importer</title>
                  <description>&lt;p&gt;
/tool
New 'tools' section of the WUI with 'Excel package import' page.
&lt;/p&gt;
&lt;p&gt;
/tool/import
Import page allows you to upload a file. The format of the required Excel file is described here. List of licenses provided for copy&amp;amp;paste.
&lt;/p&gt;
&lt;p&gt;
/tool/import/preview
When you upload it, it gives you a simple preview of the file, offering import. Text as per Package Preview. 'import button' for completing process.
&lt;/p&gt;
&lt;p&gt;
File format:
&lt;/p&gt;
&lt;p&gt;
First row to have a cell value of 'name' or 'title' in it is the Title Row. It contains the field names, as per package. It includes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;license - name of license
&lt;/li&gt;&lt;li&gt;tags - space separated
&lt;/li&gt;&lt;li&gt;groups - space separated
&lt;/li&gt;&lt;li&gt;anything - for extra key-values
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
When importing, values are bound into the package fieldset, validated and displayed for the preview and synced to complete.
&lt;/p&gt;
&lt;p&gt;
User has to log in to use importer. Auth is checked for putting into groups.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/178</link>
        <guid isPermaLink="false">http://localhost/ticket/178</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#179: Restore 404 and 500 messages in WUI</title>
                  <description>&lt;p&gt;
Cost: 0.5h (?)
&lt;/p&gt;
&lt;p&gt;
Conjecture this went missing in cset:a35db862a841
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/179</link>
        <guid isPermaLink="false">http://localhost/ticket/179</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jwyg</dc:creator>

                  <title>#180: Tag cloud as way to view CKAN tags</title>
                  <description>&lt;p&gt;
Create big tag cloud with all CKAN tags - perhaps weighting with size and colour...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/180</link>
        <guid isPermaLink="false">http://localhost/ticket/180</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jwyg</dc:creator>

                  <title>#181: New 'stats' box on right hand sidebar</title>
                  <description>&lt;p&gt;
With up to date statistics such as:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;total packages
&lt;/li&gt;&lt;li&gt;total tags
&lt;/li&gt;&lt;li&gt;total users
&lt;/li&gt;&lt;li&gt;most active users
&lt;/li&gt;&lt;li&gt;last update
&lt;/li&gt;&lt;li&gt;etc.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Could also be nice to have a more dedicated stats page - with information such as graphs showing rate of packages being added and such like. See &lt;a class="closed ticket" href="http://localhost/ticket/184" title="enhancement: Stats page (closed: fixed)"&gt;ticket:184&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/181</link>
        <guid isPermaLink="false">http://localhost/ticket/181</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#182: Improve openness icons</title>
                  <description>&lt;p&gt;
Tick and cross aren't clear enough. Propose:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Icon for downloadability (nothing if absent ...(?))
&lt;/li&gt;&lt;li&gt;Icon for open license? (Need something if closed ...)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 2h (?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/182</link>
        <guid isPermaLink="false">http://localhost/ticket/182</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#183: Browse packages by rating</title>
                  <description>&lt;p&gt;
At moment order packages by title.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/183</link>
        <guid isPermaLink="false">http://localhost/ticket/183</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#184: Stats page</title>
                  <description>&lt;p&gt;
Create /stats/ page displaying main statistics, e.g:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Most highly rated packages
&lt;/li&gt;&lt;li&gt;Most edited packages
&lt;/li&gt;&lt;li&gt;Largest groups
&lt;/li&gt;&lt;li&gt;Top tags (by packages)
&lt;/li&gt;&lt;li&gt;Package addition rate
&lt;/li&gt;&lt;li&gt;Users with most packages
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Related to &lt;a class="closed ticket" href="http://localhost/ticket/181" title="enhancement: New 'stats' box on right hand sidebar (closed: invalid)"&gt;ticket:181&lt;/a&gt; - Stats side-bar
&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Should create a stats module and then use some/all of these features on stats page (likely over time that stats features much more extensive than what we display)
&lt;/li&gt;&lt;li&gt;For graphs (e.g. additions over time) suggest use javascript graphing -- for examples of how this is done see
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://knowledgeforge.net/econ/hg/file/tip/econ/www/controllers/plot.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/econ/hg/file/tip/econ/www/controllers/plot.py&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://knowledgeforge.net/econ/hg/file/tip/econ/www/templates/plot/chart_code.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/econ/hg/file/tip/econ/www/templates/plot/chart_code.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/184</link>
        <guid isPermaLink="false">http://localhost/ticket/184</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#185: Package form field hiding</title>
                  <description>&lt;p&gt;
Make parts of the package form hidden by default, to make it look simpler. Users are invited to click a button to reveal the less important fields.
&lt;/p&gt;
&lt;p&gt;
Fields hidden by default:
version, author, author_email, maintainer, maintainer_email
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/185</link>
        <guid isPermaLink="false">http://localhost/ticket/185</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#186: Automated upload to archive.org s3</title>
                  <description>&lt;p&gt;
(Follows on from &lt;a class="closed ticket" href="http://localhost/ticket/107" title="enhancement: Provide information about uploading material (closed: invalid)"&gt;ticket:107&lt;/a&gt;). We want to provide facility for users to automatically upload material.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Create an upload page
&lt;/li&gt;&lt;li&gt;Store the material on archive.org using s3 - &lt;a class="ext-link" href="http://www.archive.org/help/abouts3.txt"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.archive.org/help/abouts3.txt&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Main issue is how we cache large datasets ...
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/186</link>
        <guid isPermaLink="false">http://localhost/ticket/186</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#187: Full-text search</title>
                  <description>&lt;p&gt;
Standard search should search notes field in addition to name, title and tags (discussed in &lt;a class="closed ticket" href="http://localhost/ticket/108" title="enhancement: Package search in the REST API (closed: fixed)"&gt;ticket:108&lt;/a&gt; but not done). For this to work we need proper text search since o/w we get poor ordering and lots of bad results.
&lt;/p&gt;
&lt;p&gt;
If we do this we need:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;To weight across fields in a sensible way
&lt;/li&gt;&lt;li&gt;We can also use proper text search on title or ...
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Easiest way to do this is to use existing facilities in dbs e.g. postgres has full text support since 8.3: &lt;a class="ext-link" href="http://www.postgresql.org/docs/8.3/static/textsearch.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.postgresql.org/docs/8.3/static/textsearch.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Using this with sqlalchemy: &lt;a class="ext-link" href="http://lowmanio.co.uk/blog/entries/postgresql-full-text-search-and-sqlalchemy/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lowmanio.co.uk/blog/entries/postgresql-full-text-search-and-sqlalchemy/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Issues with fulltext search:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;tags not indexed, so would need to 'or' search of tags. This would cause problems with the order_by of the query, since the tags wouldn't have a ranking.
&lt;/li&gt;&lt;li&gt;if tags are indexed then perhaps we don't want them converted into lexemes? Exact match could well be better.
&lt;/li&gt;&lt;li&gt;can we split the name on dash or underscore before being indexed?
&lt;/li&gt;&lt;li&gt;natural language search doesn't do partial words, so search for 'gov' doesn't bring up 'government'.
&lt;/li&gt;&lt;li&gt;do we keep the existing search system usable with a config file switch for if we install on a db aside from postgres?
&lt;/li&gt;&lt;li&gt;we want to weight name and title higher than other fields - achievable with custom trigger.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/187</link>
        <guid isPermaLink="false">http://localhost/ticket/187</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#188: Improve package listing views</title>
                  <description>&lt;p&gt;
Propose change to tabular-like format showing these attributes (perhaps should be configurable?)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Openness status
&lt;/li&gt;&lt;li&gt;Title (not sure name is needed)
&lt;/li&gt;&lt;li&gt;Tags
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 4h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/188</link>
        <guid isPermaLink="false">http://localhost/ticket/188</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#189: Multiple download urls</title>
                  <description>&lt;p&gt;
See also: &lt;a class="wiki" href="http://localhost/wiki/PackageResources"&gt;PackageResources&lt;/a&gt; which defines a 'distribution' as a package's payload (perhaps with metadata). In our case, at least within CKAN, the representation of the distribution will just be the reference to get it (plus some minor metadata). We are expanding this functionality to be any kind of 'resource' associated with a package since it is likely in some cases people will want to link to a file containing a part, but not the whole, of a package's data.
&lt;/p&gt;
&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
User (package editor and package user)
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
(package editor)
Associate multiple distributions with a package.
&lt;/p&gt;
&lt;p&gt;
(package user)
Easily have access to multiple distributions of a package should they exist.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
There is an object called 'Resource' with the following attributes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;url (text) (required in UI, but not in db table)
&lt;/li&gt;&lt;li&gt;format (text)
&lt;/li&gt;&lt;li&gt;description (text)
&lt;/li&gt;&lt;li&gt;package (association) - a resource is always associated with 1 package
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
A package's list of resources will have an order which is preserved. The first in the list will be known as the 'default resource' (the presumption will always be that this is a 'distribution').
&lt;/p&gt;
&lt;h3 id="Howtoreplacedownloadurl"&gt;How to replace download url&lt;/h3&gt;
&lt;p&gt;
download_url removed and replaced as a proxy attribute. Read returns the url of the default distribution. Write changes the url of the default resource. Ensures backward compatibility.
&lt;/p&gt;
&lt;p&gt;
REST API has new attribute in package dictionary 'resouces' - an ordered list.
&lt;/p&gt;
&lt;p&gt;
In WUI, replace download url in package read with a table  of the distributions.
&lt;/p&gt;
&lt;p&gt;
In the WUI package edit, be able to add/remove/edit/reorder distributions.
&lt;/p&gt;
&lt;h2 id="Example"&gt;Example&lt;/h2&gt;
&lt;p&gt;
Example part of package:
&lt;/p&gt;
&lt;h3 id="Distributions:"&gt;Distributions:&lt;/h3&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td&gt; http://some.com/pollution.pdf &lt;/td&gt;&lt;td&gt; PDF &lt;/td&gt;&lt;td&gt; Original report
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; http://some.com/pollution.csv &lt;/td&gt;&lt;td&gt; csv &lt;/td&gt;&lt;td&gt; Original data
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; http://some.com/pollution &lt;/td&gt;&lt;td&gt; sparql &lt;/td&gt;&lt;td&gt; Linked version of data
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
Existing data to be migrated to new structure.
&lt;/p&gt;
&lt;p&gt;
Cost: 4 days
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/189</link>
        <guid isPermaLink="false">http://localhost/ticket/189</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#190: Package comments</title>
                  <description>&lt;p&gt;
Cost 7 days
&lt;/p&gt;
&lt;p&gt;
When viewing a package, users can read user comments and leave their own. Users need to be logged in to leave a message. Comments appear immediately. A mechanism for deleting unwanted comments is provided to an authorized user. Comments are sorted with the most recent first. Comments are available for read, creation and deletion in both the Web UI and over the REST API.
&lt;/p&gt;
&lt;p&gt;
The admin for the package and a superuser can delete unwanted comments, both on the package page and a collation of all comments on their user page. Users can delete their own comments(?) Need to consider whether over the REST API we encourage the use of a 'frontend user' APIKEY which can be used to leave comments for another, actual user.
&lt;/p&gt;
&lt;p&gt;
Example at bottom of package page:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Leave a comment:&lt;/strong&gt;
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td&gt;Subject&lt;/td&gt;&lt;td style="text-align: center"&gt;  &lt;span class="underline"&gt;&lt;/span&gt;&lt;span class="underline"&gt;&lt;/span&gt;_
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comment&lt;/td&gt;&lt;td style="text-align: center"&gt;  &lt;span class="underline"&gt;&lt;/span&gt;&lt;span class="underline"&gt;&lt;/span&gt;_
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td&gt;Submit button
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
&lt;strong&gt;Comments:&lt;/strong&gt;
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Explanation doc&lt;/strong&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;em&gt;Posted on 25h May 2009 by http://bertdavies.myopenid.com&lt;/em&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;It says on the pollution data web page that not all the stations have a CO2 sensor, so you have to extrapolate from the ones that do. See my visualisation of CO2 across London for an idea of what you can do: bertdavies.com/pollution-2008.jpg
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;More info&lt;/strong&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;em&gt;Posted on 24th May 2009 by http://ronsmith.myopenid.com&lt;/em&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Excellent data, but why is there no value in the CO2 column for some of the testing stations?
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;h1 id="Implementationdetails:"&gt;Implementation details:&lt;/h1&gt;
&lt;p&gt;
Comments table is with columns:
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td style="text-align: left"&gt;id &lt;/td&gt;&lt;td&gt; package_id &lt;/td&gt;&lt;td&gt; date (date) &lt;/td&gt;&lt;td style="text-align: right"&gt; comment (multi-line text)
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
</description>
        <link>http://localhost/ticket/190</link>
        <guid isPermaLink="false">http://localhost/ticket/190</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#191: Searching by modification date</title>
                  <description>&lt;p&gt;
Cost - 2 days
&lt;/p&gt;
&lt;p&gt;
Search interface has new options to filter and sort the results by the date the package has been last modified in ckan. Search options are included in both Web UI and Search API.
&lt;/p&gt;
&lt;p&gt;
The filter specifies a range of dates. The results can be sorted by ascending or descending dates. The last modification date is surfaced in the package.
&lt;/p&gt;
&lt;p&gt;
Example search parameters:
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td&gt; modification-range=5/4/09- &lt;/td&gt;&lt;td&gt; Exclude packages last modified earlier than 5/4/09
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; modification-range=5/4/09-5/12/09 &lt;/td&gt;&lt;td&gt; Exclude packages last modified outside of 5/4/09-5/12/09
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; order_by=mod &lt;/td&gt;&lt;td style="text-align: left"&gt;Sort by metadata modification. Defaults to newest first.
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; order_by=mod-newest &lt;/td&gt;&lt;td&gt; Sort by metadata modification, newest first.
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; order_by=mod-oldest &lt;/td&gt;&lt;td&gt; Sort by metadata modification, oldest first.
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
</description>
        <link>http://localhost/ticket/191</link>
        <guid isPermaLink="false">http://localhost/ticket/191</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#192: Time-related package field</title>
                  <description>&lt;p&gt;
Cost - 2 days
&lt;/p&gt;
&lt;p&gt;
The time period to which a package's data applies is stored in a new field called 'Relevant Date Range'. The value of this field is up to two calendar dates: i.e. either a point in time (e.g. date of a river map is 5/10/09) or a time period (e.g. pollution measurements 1/1/09-1/4/09).
&lt;/p&gt;
&lt;p&gt;
Example part of package:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Date:&lt;/strong&gt;        5/10/09
&lt;br /&gt; or &lt;br /&gt;
&lt;strong&gt;Date:&lt;/strong&gt;        1/1/09 – 1/4/09
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/192</link>
        <guid isPermaLink="false">http://localhost/ticket/192</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#193: Searching by time-related field</title>
                  <description>&lt;p&gt;
Cost - 2 days
&lt;/p&gt;
&lt;p&gt;
Search interface has new options to filter and sort the results by the time-related field of the package. Search options are included in both Web UI and Search API.
&lt;/p&gt;
&lt;p&gt;
The filter specifies a range of dates. The results can be sorted by ascending or descending dates. The last modification date is surfaced in the package. Need to decide for a time-related field value that is date range, what date is used for the search.
&lt;/p&gt;
&lt;p&gt;
Example search parameters:
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;td&gt; reldate-range=5/4/09- &lt;/td&gt;&lt;td&gt; Exclude packages related to earlier than 5/4/09
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; reldate-range=5/4/09-5/12/09 &lt;/td&gt;&lt;td&gt; Exclude packages related to date outside of 5/4/09-5/12/09
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; order_by=reldate &lt;/td&gt;&lt;td&gt; Sort by date package is related to. Defaults to newest first.
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; order_by=reldate-newest &lt;/td&gt;&lt;td&gt; Sort by date package is related to, newest first.
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; order_by=reldate-oldest &lt;/td&gt;&lt;td&gt; Sort by date package is related to, oldest first.
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
Related to &lt;a class="closed ticket" href="http://localhost/ticket/192" title="enhancement: Time-related package field (closed: fixed)"&gt;ticket:192&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/193</link>
        <guid isPermaLink="false">http://localhost/ticket/193</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#194: Check star ratings aren't influenced by search engine crawlers</title>
                  <description>&lt;p&gt;
rel=nofollow or robots.txt ?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/194</link>
        <guid isPermaLink="false">http://localhost/ticket/194</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#195: Association listings should be alphabetically sorted (e.g. a group's packages)</title>
                  <description>&lt;p&gt;
Where an item has an association listing (e.g. package's tags or group's packages) these should be sorted in a sensible way. For present choose to sort alphabetically by name.
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/195</link>
        <guid isPermaLink="false">http://localhost/ticket/195</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#196: RDF URI to resolve on CKAN</title>
                  <description>&lt;p&gt;
Provide RDF version of a package at the RDF URI:
&lt;a class="ext-link" href="http://ckan.net/package/rdf/32000-naples-florida-businesses-kml"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/rdf/32000-naples-florida-businesses-kml&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
See email on OKFN help:
&lt;/p&gt;
&lt;p&gt;
For the information to be Linked Data, the following URI (from the
api.talis.com SPARQL call) should be resolvable to RDF, or an RDFa
enhanced HTML page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/196</link>
        <guid isPermaLink="false">http://localhost/ticket/196</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#197: Simple dumper</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
admin / user
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
Admin: export all HEAD data to JSON / CSV / RDF format dump.
&lt;/p&gt;
&lt;p&gt;
User: wants to get hold of this dump.
&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Just do JSON &amp;amp; CSV for now.
&lt;/li&gt;&lt;li&gt;Put this in CLI.
&lt;/li&gt;&lt;li&gt;Just do list of packages - as_dict info. CSV needs a bit of flattening.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/197</link>
        <guid isPermaLink="false">http://localhost/ticket/197</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#198: Change package and tag ids to uuids</title>
                  <description>&lt;p&gt;
See how we did it already for other things.
&lt;/p&gt;
&lt;p&gt;
Note: on ckan.net older &lt;a class="missing wiki"&gt;PackageRevision?&lt;/a&gt;.id might not be identical to Package.id but this may need sorting at this point.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/198</link>
        <guid isPermaLink="false">http://localhost/ticket/198</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>casbon</dc:creator>

                  <title>#199: Fix failing tests and provide documentation on how to run tests in datapkg</title>
                  <description>&lt;p&gt;
As of 80:099bdc5b07a6 datapkg has 4 test fails and 1 test error.
&lt;/p&gt;
&lt;p&gt;
There is no documentation on how to run them, so I am using 'python setup.py test'.
&lt;/p&gt;
&lt;pre class="wiki"&gt;datapkg.tests.test_cli.TestCLI.test_ckan ... FAIL
datapkg.tests.test_cli.TestCLI.test_walkthrough ... FAIL
datapkg.tests.test_index.TestDbIndex.test_get ... /Users/james/Documents/virtualenvs/okfn/src/datapkg/datapkg/index.py:97: SADeprecationWarning: Use session.add()
  self.session.update(pkg)
FAIL
datapkg.tests.test_index.TestDbIndex.test_get_when_loaded_as_new_and_init_not_called ... /Users/james/Documents/virtualenvs/okfn/src/datapkg/datapkg/tests/test_index.py:57: SADeprecationWarning: Use session.expunge_all()
  self.index.session.clear()
FAIL
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/199</link>
        <guid isPermaLink="false">http://localhost/ticket/199</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#200: PythonDistribution write method should write all available metadata</title>
                  <description>&lt;p&gt;
Current write method just creates a bare bones package and does not write any of the available metadata other than name.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/200</link>
        <guid isPermaLink="false">http://localhost/ticket/200</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#201: Stress test ckan</title>
                  <description>&lt;p&gt;
Check:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;high numbers of simultaneous users
&lt;/li&gt;&lt;li&gt;incomplete transactions
&lt;/li&gt;&lt;li&gt;etc.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/201</link>
        <guid isPermaLink="false">http://localhost/ticket/201</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#202: Internationalization (i18n) try-out</title>
                  <description>&lt;p&gt;
Try i18n for one language (German) for ckan (de.ckan.net).
&lt;/p&gt;
&lt;p&gt;
Basic approach to i18n is well-covered in Pylons book: &lt;a class="ext-link" href="http://pylonsbook.com/en/1.1/internationalization-and-localization.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://pylonsbook.com/en/1.1/internationalization-and-localization.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
However, we need to integrate with our Genshi templates. Details on how to do this in comment:
&lt;a class="ext-link" href="http://wiki.pylonshq.com/display/pylonsdocs/Internationalization+and+Localization"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.pylonshq.com/display/pylonsdocs/Internationalization+and+Localization&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="Steps"&gt;Steps&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;i18n templates
&lt;ul&gt;&lt;li&gt;Extract content using Babel
&lt;/li&gt;&lt;li&gt;Get genshi translation working
&lt;/li&gt;&lt;li&gt;Do the translation!
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;i18n all strings in controllers (if any)
&lt;/li&gt;&lt;li&gt;i18n forms
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/202</link>
        <guid isPermaLink="false">http://localhost/ticket/202</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#203: show package counts for groups in WUI</title>
                  <description>&lt;p&gt;
In two places in the WUI
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;list of groups
&lt;/li&gt;&lt;li&gt;group page in title e.g. ukgov (5)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/203</link>
        <guid isPermaLink="false">http://localhost/ticket/203</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#204: Custom package input form</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
admin
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
input government data in a constrained way
&lt;/p&gt;
&lt;h2 id="sothat"&gt;so that&lt;/h2&gt;
&lt;p&gt;
you get consistency in the db which is easily searched, discovered and automatically linked.
&lt;/p&gt;
&lt;h2 id="implementation"&gt;implementation&lt;/h2&gt;
&lt;p&gt;
Form has fields suitable for government data.
(related to custom excel importer ticket)
&lt;/p&gt;
&lt;p&gt;
In pylons config specify the form schema to use - whether the existing one or the government one.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;On submission, during validation, warn if a field isn't completed (unless it's optional - agency, maintainer, maintainer_email)&lt;/strong&gt;
&lt;/p&gt;
&lt;h3 id="Simplefields"&gt;Simple fields&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;all basic ckan fields
&lt;/li&gt;&lt;li&gt;default license to OKD::Crown Copyright
&lt;/li&gt;&lt;li&gt;co_id, precision, taxonomy url, agency
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Datefields"&gt;Date fields&lt;/h3&gt;
&lt;p&gt;
Date format: machine readable. Can be specific or vague: year or month/year or day/month/year.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;date_released
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;date_updated
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;temporal_coverage_from, temporal_coverage_to - two date fields combined
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Strictselection"&gt;Strict selection&lt;/h3&gt;
&lt;p&gt;
Drop down combo
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;department
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Selectionorfreetext"&gt;Selection or free text&lt;/h3&gt;
&lt;p&gt;
Editable combo
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;update_frequency - selections: never, weekly, monthly, annually, discontinued
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;geographic_granularity - selections: national, regional, local authority, ward, point
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;temporal_granularity - selections: yes, months, weeks, days, hours, point
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Specialisedfields"&gt;Specialised fields&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;geographic_coverage - UI is tick boxes. store a comma separated list of all that apply from: england, scotland, wales, northern ireland, overseas, global
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
(Idea for future version: Select the most relevant one from a choice of OS hierarchical geographic IDs in the UK. Stored in the database as the RDF URI. Question - what to do beyond the UK?)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;national_statisic - UI is check box, store as 'Yes' or 'No'
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;resources - use standard table, but suggestions for file type are: RDF, CSV, SPARQL, REST, XBRL, SDMX, Other XML, HTML+RDFa, XLS, DOC. Have warning label saying it is not ideal to have PDF, zip or html targets.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;categories - multi values from strict selection of ONS categories. Stored as comma-separated.
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Fielddataprocessed"&gt;Field data processed&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;tags - in addition to words entered here, search for known keywords in other fields: title, notes, department, agency, geographic coverage &amp;amp; categories.
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Future-optional"&gt;Future - optional&lt;/h3&gt;
&lt;p&gt;
Each form schemas is made available (or not) in the pylons config, along with the default schema for new packages. If there is more than just the 'basic' schema available then the 'new package' form has at the top a drop-down to select the schema with a 'switch' button. This submits the form's current data and parameter schema=xyz and the form arrives back populated with the existing options. No data should be lost switching views.
&lt;/p&gt;
&lt;p&gt;
When you edit a package it detects the schema based on the extra fields that are present.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/204</link>
        <guid isPermaLink="false">http://localhost/ticket/204</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#205: Custom package importer</title>
                  <description>&lt;p&gt;
Importer function is exposed to logged in users.
&lt;/p&gt;
&lt;p&gt;
Alongside specifying file to import, user chooses between 'form schemas' - 'basic' and 'government'.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Basic is as it is currently
&lt;/li&gt;&lt;li&gt;Government form has pre-defined Extra fields, careful validation of lots of fields, code formats/processes some field data for storage. e.g. searching for tag keywords.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
All fields should be in step with the government custom input form.
&lt;/p&gt;
&lt;p&gt;
For fields which have suggested values but the user can input his own value, this is achieved in the spreadsheet with two columns - the first being a drop-down and the second free text.
&lt;/p&gt;
&lt;p&gt;
Estimate:
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/205</link>
        <guid isPermaLink="false">http://localhost/ticket/205</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nickstenning</dc:creator>

                  <title>#206: UI review</title>
                  <description>&lt;p&gt;
Investigate and list (on the wiki at &lt;a class="wiki" href="http://localhost/wiki/UiReviewNotes"&gt;wiki:UiReviewNotes&lt;/a&gt;) CKAN's UI issues, in particular:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Form usability
&lt;ul&gt;&lt;li&gt;best example: &lt;a class="ext-link" href="http://ckan.net/package/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/new&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;"Extras" fields
&lt;/li&gt;&lt;li&gt;Adding to groups (from group page or from package page?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Overview pages: reduction in visual noise and unnecessary elements.
&lt;ul&gt;&lt;li&gt;best example: package overview page
&lt;/li&gt;&lt;li&gt;consider openness/downloadability icons
&lt;/li&gt;&lt;li&gt;display common metadata fields in a more structured fashion?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Est cost: 2 hrs.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/206</link>
        <guid isPermaLink="false">http://localhost/ticket/206</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nickstenning</dc:creator>

                  <title>#207: Reimplement tag selection in jQuery</title>
                  <description>&lt;p&gt;
Remove the current dependency on Yahoo YUI toolkit for doing tag autocompletion on package edit forms.
&lt;/p&gt;
&lt;p&gt;
The (KForge-derived) behaviour files for CKAN can easily be switched to the new jQuery-based ones: see &lt;a class="closed ticket" href="http://localhost/ticket/212" title="enhancement: Switch to using m.okfn.org &amp;#34;kforge&amp;#34; media (css and behaviour) (closed: fixed)"&gt;ticket:212&lt;/a&gt;. Once this is done, it would make sense to implement the tag-selection code with jQuery.
&lt;/p&gt;
&lt;p&gt;
Relevant pages include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;e.g. &lt;a class="ext-link" href="http://ckan.net/package/edit/acawiki"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/edit/acawiki&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/207</link>
        <guid isPermaLink="false">http://localhost/ticket/207</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#208: Obfuscate author email and maintainer email field</title>
                  <description>&lt;p&gt;
Obfuscate author email and maintainer email field.
&lt;/p&gt;
&lt;p&gt;
Use: webhelpers.html.tools.mail_to e.g. webhelpers.html.tools.mail_to('mike@…', encode='javascript')
&lt;/p&gt;
&lt;p&gt;
Do we want to? Surely only public addresses should be on CKAN in which case why obfuscate?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/208</link>
        <guid isPermaLink="false">http://localhost/ticket/208</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#209: Validate email address when creating an enquiry</title>
                  <description>&lt;p&gt;
p:wui 2009-09-09 validate email address when creating an enquiry
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/209</link>
        <guid isPermaLink="false">http://localhost/ticket/209</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#210: User registration</title>
                  <description>&lt;p&gt;
Native registration scenario: Complete registration form, require unique email address (indicate this not displayed on site), full name (indicate this is displayed on site), password. Dispatch email confirmation message. Respond to email confirmation message causes user to be logged in. Users are assigned a uuid.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/210</link>
        <guid isPermaLink="false">http://localhost/ticket/210</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#211: User login</title>
                  <description>&lt;p&gt;
Native login scenario: Complete login form, require email address. Any session is resumed.
&lt;/p&gt;
&lt;p&gt;
Mandated technical requirement: use Repoze (see plugin:form of repoze.who); borrow from &lt;a class="missing wiki"&gt;BlastOff?&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
See CKAN or Microfacts for usage of repose with openid.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/211</link>
        <guid isPermaLink="false">http://localhost/ticket/211</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#212: Switch to using m.okfn.org "kforge" media (css and behaviour)</title>
                  <description>&lt;p&gt;
We are already using standard kforge css though copied locally and with a few modifications.
&lt;/p&gt;
&lt;p&gt;
We should switch to using common copy on m.okfn.org. Some work will be required to factor out any changes we have made.
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/212</link>
        <guid isPermaLink="false">http://localhost/ticket/212</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#213: Automate CKAN deployment</title>
                  <description>&lt;p&gt;
fabric script to automate ckan deployment
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/213</link>
        <guid isPermaLink="false">http://localhost/ticket/213</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#214: UI Review - General template</title>
                  <description>&lt;ul&gt;&lt;li&gt;Set hover names on navigation links.
&lt;/li&gt;&lt;li&gt;Do we really need to display "About CKAN" everywhere? Just on home page.
&lt;/li&gt;&lt;li&gt;Redirect in routing /groups and /tags rather than /group and /tag. At the very least make the plural versions forward to the singular versions.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/214</link>
        <guid isPermaLink="false">http://localhost/ticket/214</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#215: UI Review - Home page</title>
                  <description>&lt;ul&gt;&lt;li&gt;'Login via OpenID' -&amp;gt; 'Login with OpenID'?
&lt;/li&gt;&lt;li&gt;Elements:
&lt;ul&gt;&lt;li&gt;Search
&lt;/li&gt;&lt;li&gt;about CKAN
&lt;/li&gt;&lt;li&gt;3 column Packages view (see &lt;a class="closed ticket" href="http://localhost/ticket/219" title="enhancement: UI Review - Package (closed: wontfix)"&gt;ticket:219&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;Small tag cloud (RHS)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also, what about &lt;a class="assigned ticket" href="http://localhost/ticket/143" title="enhancement: Most active users listed on homepage (assigned)"&gt;ticket:143&lt;/a&gt; ?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/215</link>
        <guid isPermaLink="false">http://localhost/ticket/215</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#216: UI Review - Search</title>
                  <description>&lt;ul&gt;&lt;li&gt;allow clicking on 'only openly licensed'/'only downloadable' to select/deselect checkboxes: make them &amp;lt;label&amp;gt;s.
&lt;/li&gt;&lt;li&gt;cut 'only's -- use word 'filter' instead
&lt;/li&gt;&lt;li&gt;doesn't appear to match substrings!? A search for 'anna' doesn't return match the 'annakarenina' package.
&lt;/li&gt;&lt;li&gt;autocomplete package names &amp;amp; tags
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/216</link>
        <guid isPermaLink="false">http://localhost/ticket/216</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#217: UI Review - Search results</title>
                  <description>&lt;p&gt;
Package search results page &lt;a href="http://localhost/package/search?q=something"&gt;package/search&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;need clearer delineation between search entry form and results.
&lt;/li&gt;&lt;li&gt;0 results needs to be clearer, and the alternative suggestion: 'would you like to create a new package' needs to not look like a search result.
&lt;/li&gt;&lt;li&gt;"N tags found" -- why do I care? this should be presented as "filter results by tag" -- very unlikely that I'm looking for a tag: I'm looking for a package, but tags might help me narrow down my search.
&lt;/li&gt;&lt;li&gt;tags should be displayed more like the way they're displayed when you add them to a package (i.e. blue 'tag' background)
&lt;/li&gt;&lt;li&gt;filter out particular tags
&lt;/li&gt;&lt;li&gt;tag cloud?
&lt;/li&gt;&lt;li&gt;copywriting: "Packages - Search" -&amp;gt; "Search packages"
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/217</link>
        <guid isPermaLink="false">http://localhost/ticket/217</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#218: UI Review - Package listing</title>
                  <description>&lt;ul&gt;&lt;li&gt;openness/downloadability ticks/crosses are totally inscrutable to non-techies (those who don't know about the title attribute). need better icons, and a key in a box on RHS.
&lt;/li&gt;&lt;li&gt;maybe highlight two-tick entries with a particular colour, but the open knowledge badge is horrendous, and breaks visual cadence.
&lt;/li&gt;&lt;li&gt;results data should be tabulated, with the project names and descriptions made most prominent. &amp;lt;li&amp;gt; blobs are unnecessary visual noise.
&lt;/li&gt;&lt;li&gt;maybe links should go on the full titles? Get rid of package names.
&lt;/li&gt;&lt;li&gt;Should have filter by name (à la KForge alphanum widget) and also by tag: list of most common tags in box on RHS?
&lt;/li&gt;&lt;li&gt;same comments as search listing (&lt;a class="closed ticket" href="http://localhost/ticket/217" title="enhancement: UI Review - Search results (closed: fixed)"&gt;ticket:217&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/218</link>
        <guid isPermaLink="false">http://localhost/ticket/218</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#219: UI Review - Package</title>
                  <description>&lt;ul&gt;&lt;li&gt;Propose three-column package listing: two lists of highest-scorers on some metric and last column is an invitation to register a new package, with a little copy explaining what's involved and why you'd want to.
&lt;/li&gt;&lt;li&gt;Add in search widget
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/219</link>
        <guid isPermaLink="false">http://localhost/ticket/219</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#220: UI Review - Package read</title>
                  <description>&lt;p&gt;
Package page &lt;a href="http://localhost/package/mypackagename"&gt;package/mypackagename&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Design
&lt;ul&gt;&lt;li&gt;In general: a huge amount of visual and typographic noise: "Package:" is redundant.
&lt;/li&gt;&lt;li&gt;"{edit}", "{history}" -- ugly, and it's not clear that these are primary actions on this page. Notably, why on earth is "make an enquiry with Is It Open?" bigger than these?
&lt;/li&gt;&lt;li&gt;Openness/downloadability icons: need help, as discussed earlier
&lt;/li&gt;&lt;li&gt;"Rating:" redundant, as is the second set of stars -- why can't both the display and rate widget
&lt;ul&gt;&lt;li&gt;Rating - alternative to GET on set_rating.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;"Metadata:" technospeak, probably redundant.
&lt;/li&gt;&lt;li&gt;&amp;lt;li&amp;gt; bullets add nothing.
&lt;/li&gt;&lt;li&gt;Title, Version, URL can probably go in one line.
&lt;/li&gt;&lt;li&gt;Resources can be made more prominent.
&lt;/li&gt;&lt;li&gt;Author, author email and Maintainer, maintainer email can be merged.
&lt;/li&gt;&lt;li&gt;Groups, tags in little boxes?
&lt;/li&gt;&lt;li&gt;Notes made more delineated -- Markdown has the capacity to look like other parts of the page: perhaps monospace the typeface?
&lt;/li&gt;&lt;li&gt;Don't show extras unless there are any.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/220</link>
        <guid isPermaLink="false">http://localhost/ticket/220</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#221: UI Review - Package edit</title>
                  <description>&lt;p&gt;
Package edit page &lt;a href="http://localhost/package/edit/mypackagename"&gt;package/edit/mypackagename&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Ability to add the package to groups on this page.
&lt;/li&gt;&lt;li&gt;Fields could be grouped.
&lt;/li&gt;&lt;li&gt;Inconsistent capitalisation (Url -&amp;gt; URL).
&lt;/li&gt;&lt;li&gt;Tag editor YUI script appears to break occasionally.
&lt;/li&gt;&lt;li&gt;Perhaps move to two column forms to save vertical space?
&lt;/li&gt;&lt;li&gt;Notes field to monospace?
&lt;/li&gt;&lt;li&gt;Extras fields need some jQuery love -- shouldn't have a fixed number available.
&lt;/li&gt;&lt;li&gt;Typography is a bit of a mess.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/221</link>
        <guid isPermaLink="false">http://localhost/ticket/221</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#222: UI Review - Package history</title>
                  <description>&lt;p&gt;
Package history page &lt;a href="http://localhost/package/history/mypackagename"&gt;package/history/mypackagename&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;"Revisions" is redundant
&lt;/li&gt;&lt;li&gt;"Compare" button is in a ridiculous place. It should be above/below (both) the table, but not *in* it!
&lt;/li&gt;&lt;li&gt;Ditto to overall "Recent Changes" page comments w.r.t. timestamps, GUIDs (ellipsis), and (if poss) author links.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/222</link>
        <guid isPermaLink="false">http://localhost/ticket/222</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#223: UI Review - Tag</title>
                  <description>&lt;p&gt;
Tags landing page &lt;a href="http://localhost/tag"&gt;tag&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Both search for tags *and* browse the list of tags right here
&lt;/li&gt;&lt;li&gt;Big cloud of tags (sorted by popularity/usage?) filterable with a search box.
&lt;/li&gt;&lt;li&gt;Tags search page &lt;a href="http://localhost/tag/search"&gt;tag/search&lt;/a&gt; and list &lt;a href="http://localhost/tag/list"&gt;tag/list&lt;/a&gt; are both redundant and should be merged straight into &lt;a href="http://localhost/tag"&gt;tag&lt;/a&gt;.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/223</link>
        <guid isPermaLink="false">http://localhost/ticket/223</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#224: UI Review - Groups</title>
                  <description>&lt;p&gt;
Groups landing page &lt;a href="http://localhost/group"&gt;group&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Yeesh! What's up with the typography for "Just login..."?
&lt;/li&gt;&lt;li&gt;Truncated description along with group name.
&lt;/li&gt;&lt;li&gt;Explanation text about what groups are for (RHS)
&lt;/li&gt;&lt;li&gt;Another case of &amp;lt;li&amp;gt; bullets adding nothing.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/224</link>
        <guid isPermaLink="false">http://localhost/ticket/224</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#225: UI Review - swap URL order</title>
                  <description>&lt;p&gt;
Not so keen on URLS such as /package/edit/mypackagename. These seem to be task-oriented rather than resource oriented (which would be /package/mypackagename/edit), and unstable: there is a common root for /package/edit/mypackage and /package/history/mypackage which is not reflected in the URL structure.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/225</link>
        <guid isPermaLink="false">http://localhost/ticket/225</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#226: UI Review - History</title>
                  <description>&lt;p&gt;
Repository History &lt;a href="http://localhost/revision"&gt;revision&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;What is this page called? "Recent Changes", "Repository History", "/revision": standardise. Between the link in the nav and the page &amp;lt;title&amp;gt; particularly, but the route is also important. Perhaps /changes or something similar?
&lt;ul&gt;&lt;li&gt;Will change page title on /revision/ to Revision History. Will not change route for the time being.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;needs copyediting.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Pagination has similar issues to elsewhere. Also, most obvious here, is the fact that we don't need to display a link to every possible page. Please can we limit it to, say, a dozen nearby pages and an ellipsis.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Without looking at dates, its not clear whether I'm seeing most recent or oldest changes. Change pagination to say "Older"/"More recent" rather than "Previous"/"Next".&lt;/del&gt; (wontfix: now have text saying we are showing most recent changes)
&lt;/li&gt;&lt;li&gt;Table layout is pretty ugly (yes, I'm aware this is my fault).
&lt;ul&gt;&lt;li&gt;wontfix - nothing better at the moment
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Timestamps are horribly unreadable. At the absolute minimum get rid of the micros. Hover for more detail?
&lt;/li&gt;&lt;li&gt;Can we link to an author page? Yes!
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Atom feed should have a feed icon~~
&lt;/del&gt;&lt;/li&gt;&lt;li&gt;Why are we adding another &amp;lt;link rel="alternate"&amp;gt; to this page? We already have one for recent changes on every page in the site and the one we're adding has a less descriptive title. Which is correct? Use that one as a feed for every page.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/226</link>
        <guid isPermaLink="false">http://localhost/ticket/226</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#227: UI Review - General checks</title>
                  <description>&lt;ul&gt;&lt;li&gt;There is huge inconsistency in the titles of pages across the site: to give one example "Edit Package:&amp;#34; vs &amp;#34;Package: mypkg [not linked]" vs "History - mypkg [linked to package page]"
&lt;ul&gt;&lt;li&gt;Normalize and use terminology: "Data Package" - also change in navbar (but nowhere else for the time being). So hvae Data Package - mypkg, Data Package - mypkg - Edit etc
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;pagination is currently lost in amongst the results list. needs to be *much* more obvious, and should appear top and bottom, or at the very least at the bottom!
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/227</link>
        <guid isPermaLink="false">http://localhost/ticket/227</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#228: Deal with duplicate packages</title>
                  <description>&lt;p&gt;
This needs to be thought out ...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/228</link>
        <guid isPermaLink="false">http://localhost/ticket/228</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#229: Resource hashes</title>
                  <description>&lt;p&gt;
New field for resources - hash of the resource file.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CKAN itself will not calculate the hash value - user just pastes it in.
&lt;/li&gt;&lt;li&gt;Display text field in resource table.
&lt;/li&gt;&lt;li&gt;Requires migration script.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Questions for the field's value:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Which hash to use? Restrict to python hashlib and other major hash libraries.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Should we use merkle trees?
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Thanks to Julien D'Assanges for the suggestion.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/229</link>
        <guid isPermaLink="false">http://localhost/ticket/229</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#230: Refactor 'package preview' to use 'package read'</title>
                  <description>&lt;ul&gt;&lt;li&gt;Requires Package Read to not use the side-bar
&lt;/li&gt;&lt;li&gt;Need to sync params to a package object that is taken out of the session so that it doesn't go into the database.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/230</link>
        <guid isPermaLink="false">http://localhost/ticket/230</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#231: Make group versioned</title>
                  <description>&lt;p&gt;
Make group object revisioned/versioned.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Involves upgrade script both for group object and group_revision object
&lt;/li&gt;&lt;li&gt;No changes required to WUI for present
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/231</link>
        <guid isPermaLink="false">http://localhost/ticket/231</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#232: Add strapline to CKAN logo</title>
                  <description>&lt;p&gt;
Strapline (?): Sharing, discovery and reuse of data and content
&lt;/p&gt;
&lt;p&gt;
Need to consult on this.
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/232</link>
        <guid isPermaLink="false">http://localhost/ticket/232</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#233: Allow simple site-specific customization/overriding of templates</title>
                  <description>&lt;p&gt;
Options:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Allow for specification of genshi template paths to search in config. This way people can introduce their own templates and these templates can selectively override existing templates. (Already implemented this in shakespeare and it works)
&lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;li&gt;Include an extra site-specific genshi template which can then be used to customize site (e.g. by having specific calls to py:def that user can define but which are ignored if they don't exist).
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Can do this using:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;xi:include href=&amp;#34;base.html&amp;#34;&amp;gt;&amp;lt;xi:fallback /&amp;gt;&amp;lt;/xi:include&amp;gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/233</link>
        <guid isPermaLink="false">http://localhost/ticket/233</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#234: UI Review - Autocomplete package names &amp; tags in search</title>
                  <description>&lt;p&gt;
Broken out from &lt;a class="closed ticket" href="http://localhost/ticket/216" title="enhancement: UI Review - Search (closed: fixed)"&gt;ticket:216&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/234</link>
        <guid isPermaLink="false">http://localhost/ticket/234</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#235: Resource format normalization and detection</title>
                  <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>
        <link>http://localhost/ticket/235</link>
        <guid isPermaLink="false">http://localhost/ticket/235</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#236: The system shall present to all users a form for starting data openness enquiries</title>
                  <description></description>
        <link>http://localhost/ticket/236</link>
        <guid isPermaLink="false">http://localhost/ticket/236</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#237: The system shall accept submissions from authenticated owners of activated accounts using the data openness enquiry form by presenting the enquiry summary and prompting for confirmation</title>
                  <description></description>
        <link>http://localhost/ticket/237</link>
        <guid isPermaLink="false">http://localhost/ticket/237</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#238: The system shall accept submissions from unauthenticated users of the data openness enquiry form by creating an anonymous pending enquiry action, and by redirecting the user to login form, passing a reference to the pending action</title>
                  <description></description>
        <link>http://localhost/ticket/238</link>
        <guid isPermaLink="false">http://localhost/ticket/238</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#239: Test migrate scripts</title>
                  <description>&lt;p&gt;
Integrate new test upgrade into testmigrate stuff.
&lt;/p&gt;
&lt;p&gt;
New "migrate.ini" config file programmed with the db to be used for migrate tests and a param saying where the db dump is.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/239</link>
        <guid isPermaLink="false">http://localhost/ticket/239</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#240: Do not allow creation of PackageResource object without a url</title>
                  <description>&lt;p&gt;
Currently it is possible (v0.11) to have a &lt;a class="missing wiki"&gt;PackageResource?&lt;/a&gt; object without a url. This should be impossible to do (either at creation time or via modification).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/240</link>
        <guid isPermaLink="false">http://localhost/ticket/240</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#241: License doesn't preview correctly</title>
                  <description>&lt;p&gt;
4 failing tests, including 2 in misc/package_saver and 2 in functional/test_package.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/241</link>
        <guid isPermaLink="false">http://localhost/ticket/241</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#242: Miscellaneous tidying up (v0.11)</title>
                  <description>&lt;p&gt;
Dumping ground for various minor and miscellaneous items (mainly refactorings):rgrp
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;controllers/tag.py: why does this not use lib/search.py (but controllers/packages.py search method does)?
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
done:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;lib/search.py: inheritance would be nicer than switching on entity in search (i.e. have &lt;a class="missing wiki"&gt;SearchPackage?&lt;/a&gt;, &lt;a class="missing wiki"&gt;SearchTag?&lt;/a&gt; etc)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/242</link>
        <guid isPermaLink="false">http://localhost/ticket/242</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#243: Repetition of number of packages in a group</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://ckan.net/group/publicdomain"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/group/publicdomain&lt;/a&gt; has:
&lt;/p&gt;
&lt;p&gt;
"There is 16 package in this group.
There are 16 packages in this group."
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/243</link>
        <guid isPermaLink="false">http://localhost/ticket/243</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#244: Several links preceded by link URL</title>
                  <description>&lt;p&gt;
e.g. Text on ckan.net home page:
&lt;/p&gt;
&lt;p&gt;
"All material available under an /licenseopen license"
&lt;/p&gt;
&lt;p&gt;
Also seen on the package edit page:
"/user/loginClick here to sign in"
&lt;/p&gt;
&lt;p&gt;
I believe this is due to the i18n additions from Benoit. Maybe needs new Genshi. Maybe best to work round in the meantime.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/244</link>
        <guid isPermaLink="false">http://localhost/ticket/244</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#245: Support for composite primary keys</title>
                  <description>&lt;p&gt;
Problem here is that foreign key then becomes "complicated" (composite).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Could also deprecate continuity_id field in favour of the basic foreign key on ie
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/245</link>
        <guid isPermaLink="false">http://localhost/ticket/245</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#246: Support for primary key not named id</title>
                  <description>&lt;p&gt;
At the moment setting of continuity_id depends on base table pkcol being id. Should not be hard to change this -- and may get for free as part of &lt;a class="closed ticket" href="http://localhost/ticket/245" title="enhancement: Support for composite primary keys (closed: duplicate)"&gt;ticket:245&lt;/a&gt; (composite primary keys)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/246</link>
        <guid isPermaLink="false">http://localhost/ticket/246</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#247: Alternative formats links on package page</title>
                  <description>&lt;p&gt;
"Alternative formats". Has logo for RDF (link to RDF) and JSON (link via CKAN REST i/f).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;How do we know if RDF available? Ans: see details in &lt;a class="closed ticket" href="http://localhost/ticket/90" title="enhancement: Link to RDF versions of CKAN data (closed: fixed)"&gt;ticket:90&lt;/a&gt;.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/247</link>
        <guid isPermaLink="false">http://localhost/ticket/247</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#248: i18n of forms</title>
                  <description>&lt;p&gt;
Need to do i18n of forms (not in templates but in code). Should consult with tonfa about this.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/248</link>
        <guid isPermaLink="false">http://localhost/ticket/248</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#249: Regex search</title>
                  <description>&lt;p&gt;
Search of package name and title (and other fields) using regular expressions.
&lt;/p&gt;
&lt;p&gt;
Current example use-case: Wanting to specify packages with title beginning with 'B'.
&lt;/p&gt;
&lt;p&gt;
Issues:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Syntax for specifying regex over natural language search - could it be contained in the q param so be available to users of the WUI, or do we simply make it alternative fields?
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Postgres reg ex searching detailed here:
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://www.postgresql.org/docs/current/static/functions-matching.html#FUNCTIONS-POSIX-TABLE"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.postgresql.org/docs/current/static/functions-matching.html#FUNCTIONS-POSIX-TABLE&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/249</link>
        <guid isPermaLink="false">http://localhost/ticket/249</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#250: RDF link in Atom feed</title>
                  <description>&lt;p&gt;
Add link to RDF representation of a package in our Atom feed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/250</link>
        <guid isPermaLink="false">http://localhost/ticket/250</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#251: Present in the API a list of revision IDs, and present individual revisions when referenced by ID</title>
                  <description>&lt;p&gt;
Want to have:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;/api/search/revision/
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Support querying by "since time" and "since revision". Each individual revision should be available in the REST API (read-only):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;/api/rest/revision/{revision ID}
&lt;ul&gt;&lt;li&gt;should include revision attributes plus revision.packages e.g. like { "id": "...", ... "packages": [ list of packages names from e.g. revision.packages ] }
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/251</link>
        <guid isPermaLink="false">http://localhost/ticket/251</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#252: Change revision object so that it has parent(s) attribute</title>
                  <description></description>
        <link>http://localhost/ticket/252</link>
        <guid isPermaLink="false">http://localhost/ticket/252</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#253: Package relationships</title>
                  <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>
        <link>http://localhost/ticket/253</link>
        <guid isPermaLink="false">http://localhost/ticket/253</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#254: Package relationships - 1. model</title>
                  <description>&lt;p&gt;
New domain object: &lt;a class="missing wiki"&gt;PackageRelationship?&lt;/a&gt; (revisioned)
&lt;/p&gt;
&lt;p&gt;
Attributes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;subject (Package reference)
&lt;/li&gt;&lt;li&gt;object (Package reference)
&lt;/li&gt;&lt;li&gt;type (string)
&lt;/li&gt;&lt;li&gt;comment
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Relationship type values:
depends_on (dependency_of)
derives_from (has_derivation)
child_of (parent_of)
&lt;/p&gt;
&lt;p&gt;
Relationship type is stored as a string, as given in the first column. The reverse relationship (bracketed) is given just for display purposes only.
&lt;/p&gt;
&lt;p&gt;
Subject / Object - as in a sentence: "Dracos is derived from OSM" is &amp;lt;subject&amp;gt; &amp;lt;predicate&amp;gt; &amp;lt;object&amp;gt;. We'll use 'type' instead of 'predicate' as that is a more familiar word.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/254</link>
        <guid isPermaLink="false">http://localhost/ticket/254</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#255: Package relationships - 2. Read in WUI</title>
                  <description>&lt;p&gt;
WUI:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;View: show both sides of the relationship (but think carefully -- e.g. a given package may have *many* dependents ...)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/255</link>
        <guid isPermaLink="false">http://localhost/ticket/255</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#256: Package relationships - 3. Edit in WUI</title>
                  <description>&lt;p&gt;
WUI:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Editable as part of package or separately? (e.g. like authz)
&lt;/li&gt;&lt;li&gt;Do we normalize to only one type name of the pair?
&lt;/li&gt;&lt;li&gt;Do we allow create of relationship from both ends (e.g. only from dependency to dependent or either way?)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/256</link>
        <guid isPermaLink="false">http://localhost/ticket/256</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#257: Package relationships - 4. Read in API</title>
                  <description>&lt;p&gt;
API:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Appear in package listing Example: 'relationships': [{'is_dependency_of':'osm', comments:'Since version 0.2'}, {'is_parent_of':'bobs_maps'}]
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/257</link>
        <guid isPermaLink="false">http://localhost/ticket/257</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#258: Add uuids into package in REST</title>
                  <description>&lt;p&gt;
Add uuids into package in REST interface.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/258</link>
        <guid isPermaLink="false">http://localhost/ticket/258</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#259: isitopen enquiry broken</title>
                  <description>&lt;p&gt;
Pressing the 'make an enquiry' link on the package read page gives 404. (Also links should also be changed from isitopen.ckan.net to isitopendata.org)
&lt;/p&gt;
&lt;p&gt;
Example link is:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://isitopen.ckan.net/enquiry/create/?ckan_package=zeno"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://isitopen.ckan.net/enquiry/create/?ckan_package=zeno&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
which gets forwarded to:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://www.isitopendata.org/enquiry/create/?ckan_package=zeno"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.isitopendata.org/enquiry/create/?ckan_package=zeno&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
which gives 404
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/259</link>
        <guid isPermaLink="false">http://localhost/ticket/259</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#260: Display group package list in standard (richer) way</title>
                  <description>&lt;p&gt;
Currently use old "bullet-point" style. Should change to now standard style used on e.g. package search results page.
&lt;/p&gt;
&lt;p&gt;
Cost: 0.5h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/260</link>
        <guid isPermaLink="false">http://localhost/ticket/260</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#261: License does not work through REST API</title>
                  <description>&lt;p&gt;
Presence of license_id field in JSON input show below breaks REST API (with weird error about int not being subscriptable as if license_id field is being subscripted).
&lt;/p&gt;
&lt;p&gt;
Using normal license field does not cause breakage but has no effect.
&lt;/p&gt;
&lt;p&gt;
(Also think we should remove license_id from the API since there is no guarantee this cross system compatible since locally generated on install).
&lt;/p&gt;
&lt;pre class="wiki"&gt;    ourjson = '''{
   "maintainer" : "Applications Division",
   "version" : "1999-01-01",
   "license_id" : 9,
   "name" : "geogratiswaterfraction1km_v100",
   "author_email" : "...",
   "author" : "Dissemination Branch",
   "tags" : [
      "GeoGratis",
      "Canada",
      "GCMD",
      "Hydrosphere",
      "Ground Water",
      "Surface Water",
      "Hydropattern",
      "Earth Science",
      "Land Surface",
      "Land Cover",
      "Landscape"
   ],
   "extras" : {
      "License" : "http://geogratis.ca/geogratis/en/licence.jsp",
      "Ministry" : "Natural Resources Canada",
      "Level of Government" : "Federal"
   },
   "maintainer_email" : "richard.fernandes@nrcan.gc.ca",
   "notes" : "This product is a raster coverage",
   "url" : "http://geogratis.cgdi.gc.ca/geogratis/en/collection/metadata.do?id=67",
   "title" : "Geogratis - 1-km Water Fraction From National Topographic Data Base Maps, Canada"
}
'''
    def test_15_random(self):
        offset = '/api/rest/package'
        import urllib
        tmpjson = simplejson.dumps(simplejson.loads(self.ourjson))
        postparams = urllib.urlencode({tmpjson: 1})
        res = self.app.post(offset, params=postparams, status=[200],
                extra_environ=self.extra_environ)
        model.Session.remove()
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/261</link>
        <guid isPermaLink="false">http://localhost/ticket/261</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#262: Mark package as duplicate of another package</title>
                  <description>&lt;p&gt;
Need a way to mark packages as duplicate.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;Ideas/Questions?&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Could work off a tag (meta-duplicate or somesuch)
&lt;/li&gt;&lt;li&gt;What happens if we want to delete the package (to we leave a place-holder, do we merge content?)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/262</link>
        <guid isPermaLink="false">http://localhost/ticket/262</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#263: Improve and test openid login</title>
                  <description>&lt;p&gt;
At the moment the user has to figure out to login with providers -- this is not always obvious (e.g. google).
&lt;/p&gt;
&lt;p&gt;
We could improve this with a small bit of javascript. As an example see: &lt;a class="ext-link" href="http://standalone.demo.civicrm.org/standalone/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://standalone.demo.civicrm.org/standalone/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Not sure exactly what library that is using (or if bespoke) so alternatives include (NB: we already use jquery):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://code.google.com/p/openid-realselector/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://code.google.com/p/openid-realselector/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://code.google.com/p/openid-selector/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://code.google.com/p/openid-selector/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
In addition to implementing this we also need to test logging in with main providers: google, wordpress -- as we have had reports of it not working with e.g. wordpress (not sure if this testing can be automated really -- best hope would be selenium I think -- so OK if done by hand).
&lt;/p&gt;
&lt;p&gt;
Cost: 3h (2h UI), (1h testing)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/263</link>
        <guid isPermaLink="false">http://localhost/ticket/263</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#264: Investigate why there are revisions with no associated packages</title>
                  <description>&lt;p&gt;
Revision.packages should not include all changes so why are we getting revisions with no associated changes? See e.g. &lt;a class="ext-link" href="http://ckan.net/revision/read/814e39e1-2540-4449-90d1-ac9a92ab40fb"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/revision/read/814e39e1-2540-4449-90d1-ac9a92ab40fb&lt;/a&gt;?
&lt;/p&gt;
&lt;p&gt;
Investigate and fix.
&lt;/p&gt;
&lt;p&gt;
NB: if this is bugfix this should go against stable or metastable branch if at all possible and then be merged into default.
&lt;/p&gt;
&lt;p&gt;
Cost: 1.5h (?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/264</link>
        <guid isPermaLink="false">http://localhost/ticket/264</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#265: More detail shown in Atom feed</title>
                  <description>&lt;h2 id="Usecase"&gt;Use case&lt;/h2&gt;
&lt;p&gt;
As a user I want to stay abreast of package changes, such as a new package being created, newer data is available for a package or a new download is available for a package.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
Add into the Atom feed:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;a package is a new one
&lt;/li&gt;&lt;li&gt;the resources have been changed
&lt;/li&gt;&lt;li&gt;the last_updated field has been changed
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/265</link>
        <guid isPermaLink="false">http://localhost/ticket/265</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#266: Package feed</title>
                  <description>&lt;p&gt;
As a user I want to track changes to a particular package.
&lt;/p&gt;
&lt;p&gt;
Provide an Atom feed, linked from the package read page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/266</link>
        <guid isPermaLink="false">http://localhost/ticket/266</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#267: Diffs for object that is created in that revision</title>
                  <description>&lt;p&gt;
Currently this raises an exception because there is no package/package_revision in existence at from_revision.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/267</link>
        <guid isPermaLink="false">http://localhost/ticket/267</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#268: Select groups in Package edit form</title>
                  <description></description>
        <link>http://localhost/ticket/268</link>
        <guid isPermaLink="false">http://localhost/ticket/268</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#269: Improve gov package form</title>
                  <description>&lt;p&gt;
If the notes field could use a WYSIWYG editor with word cleanup this would really help users who may well be pasting in text from Word (and I guess may have been approved or written by someone else)
&lt;/p&gt;
&lt;p&gt;
having auto-complete on tags would both make the system easier to use - and reduce the risk of synonymous tags being created inadvertently.
&lt;/p&gt;
&lt;p&gt;
Does the department drop down options list interact with user permissions - so that users who only have rights to one department only see that option ?
&lt;/p&gt;
&lt;p&gt;
Similarly for licenses - can this reduce to the set of allowed options for this user/
&lt;/p&gt;
&lt;p&gt;
What level of validation is there on the fields?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/269</link>
        <guid isPermaLink="false">http://localhost/ticket/269</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#270: Refactor ckan/lib/importer and ckanclient/loader.</title>
                  <description>&lt;p&gt;
There is code to create packages in-process (ckan/lib/importer) and via HTTP (ckanclient/loaders/base). There is also code to read different kinds of package source (Google Spreadsheets spreadsheet, other spreadsheet).
&lt;/p&gt;
&lt;p&gt;
Propose to refactor all this to have template method in base command class (subclasses may implement command line interface, graphical user interface, or Web interface), where the template method calls on aggregated strategy objects for: reading raw spreadsheet data from spreadsheet application; for inferring CKAN package entities from the raw spreadsheet data; and for writing package entities to CKAN service.
&lt;/p&gt;
&lt;p&gt;
Spreadsheet readers to be factored to allow for variations of spreadsheet application.
&lt;/p&gt;
&lt;p&gt;
Raw data inferrers to allow for variations in spreadsheet cell structure.
&lt;/p&gt;
&lt;p&gt;
CKAN writer strategies to allow for either CKAN client or direct linking.
&lt;/p&gt;
&lt;p&gt;
Actual cases then supported by specifying existing strategies (or defining new ones) in a script that invokes the command class.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/270</link>
        <guid isPermaLink="false">http://localhost/ticket/270</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#271: The system shall support distributing changes.</title>
                  <description>&lt;p&gt;
See &lt;a class="wiki" href="http://localhost/wiki/DistributingChanges"&gt;DistributingChanges&lt;/a&gt; for analysis and functional requirements.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/271</link>
        <guid isPermaLink="false">http://localhost/ticket/271</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#272: Atom/RSS feeds for individual tags and groups</title>
                  <description>&lt;p&gt;
I want to be able to easily check when a package is added (or removed?) from a given tag or groups. To do this I would like access to an Atom/RSS feed for a given tag or group.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;This would allow people to embed feed widgets in other places
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/272</link>
        <guid isPermaLink="false">http://localhost/ticket/272</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#273: Investigate search index options and create tickets</title>
                  <description>&lt;p&gt;
Work already here: &lt;a class="ext-link" href="http://knowledgeforge.net/ckan/trac/wiki/SearchEngine"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/ckan/trac/wiki/SearchEngine&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Add knowledge there or to:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://wiki.okfn.org/SoftwareTools/Search"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.okfn.org/SoftwareTools/Search&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/273</link>
        <guid isPermaLink="false">http://localhost/ticket/273</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#274: Allow searching by any extra field</title>
                  <description>&lt;p&gt;
At the moment only support a very limited set of extra fields (see docs for details). Should support arbitrary extra fields (note no need to put these in special full text index though ...)
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/274</link>
        <guid isPermaLink="false">http://localhost/ticket/274</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#275: Add forms renderer for JsonType fixing bugs in admin interface</title>
                  <description>&lt;p&gt;
This will solve e.g. issues in formalchemy admin interface (which is due to lack of renderer for Json type)
&lt;/p&gt;
&lt;p&gt;
Cost: 0.5h
&lt;/p&gt;
&lt;pre class="wiki"&gt;from ckan.model.types import JsonType
forms.FieldSet.default_renderers[JsonType] = formalchemy.fields.TextFieldRenderer
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/275</link>
        <guid isPermaLink="false">http://localhost/ticket/275</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#276: Resources in Package form seen multiple times upon preview</title>
                  <description>&lt;p&gt;
Create a new package with a name 'blah' and resource format 'blah'. Hit preview. There is an error because of the lack of resource url, but in the resource input boxes, there are now four resources with format 'blah'.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/276</link>
        <guid isPermaLink="false">http://localhost/ticket/276</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#277: Set some config options / settings in WUI (extension)</title>
                  <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>
        <link>http://localhost/ticket/277</link>
        <guid isPermaLink="false">http://localhost/ticket/277</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#278: Spaces in extra field keys</title>
                  <description>&lt;p&gt;
If the key to an extra field has a space in it then various form code doesn't work. Either need to disallow spaces or cope with them.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/278</link>
        <guid isPermaLink="false">http://localhost/ticket/278</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#279: Ensure package's license is an option when it's edited</title>
                  <description>&lt;p&gt;
With forms configurable to show a subset of licenses and ckan instances moving packages from server to server, there is a chance that a user will edit a package and the existing package's license is not displayed in the form. If the user submits this form without touching the license dropdown, then the value is lost.
&lt;/p&gt;
&lt;p&gt;
So for this case we should add the package's license to the list displayed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/279</link>
        <guid isPermaLink="false">http://localhost/ticket/279</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#280: Disappearing extra fields</title>
                  <description>&lt;p&gt;
When I edit a package on no.ckan.net with lots of extra fields, lots of them completely disappear.
&lt;/p&gt;
&lt;p&gt;
Metastable branch.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/280</link>
        <guid isPermaLink="false">http://localhost/ticket/280</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#281: Refactor forms to be plugin-able</title>
                  <description></description>
        <link>http://localhost/ticket/281</link>
        <guid isPermaLink="false">http://localhost/ticket/281</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#282: Provide diverts when package name changes</title>
                  <description>&lt;p&gt;
When a package's name is changed, references to the old name (in the WUI and REST) are redirected to the new name (assuming the old name is not being reused by another package).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/282</link>
        <guid isPermaLink="false">http://localhost/ticket/282</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#283: Manage deletions of unwanted packages</title>
                  <description>&lt;h2 id="Usecase"&gt;Use case&lt;/h2&gt;
&lt;p&gt;
As a user I want to notify the CKAN admins of a spammed or unsuitable package for deletion.
&lt;/p&gt;
&lt;h2 id="Suggestedsolution"&gt;Suggested solution&lt;/h2&gt;
&lt;p&gt;
In the package view side-bar, there is a note: "To have this package completely removed, contact the [ca.ckan.net administrators admin@…]."
&lt;/p&gt;
&lt;h2 id="Othersolutions"&gt;Other solutions&lt;/h2&gt;
&lt;p&gt;
A more complicated solution would be to allow packages to be tagged for deletion, which would auto-alert administrators, and allow easier administration of this. But this might be overkill.
&lt;/p&gt;
&lt;p&gt;
c.f. &lt;a class="ext-link" href="http://en.wikipedia.org/wiki/Deleting_an_article"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://en.wikipedia.org/wiki/Deleting_an_article&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/283</link>
        <guid isPermaLink="false">http://localhost/ticket/283</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#284: Move tag/read/xxx to simple tag/xxx like package and group</title>
                  <description>&lt;p&gt;
Also put in redirect from old locations (see examples with plurals in routing.py)
&lt;/p&gt;
&lt;p&gt;
Estimated cost: 20m
&lt;/p&gt;
&lt;p&gt;
Actual cost: 40m
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/284</link>
        <guid isPermaLink="false">http://localhost/ticket/284</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#285: Paginate list of packages on tag read page</title>
                  <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>
        <link>http://localhost/ticket/285</link>
        <guid isPermaLink="false">http://localhost/ticket/285</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#286: Refactor forms templates</title>
                  <description>&lt;p&gt;
Use Nick's examples as a basis to revamp the formalchemy usage, principally in the package edit form.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://static.whiteink.com/css/examples/forms.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://static.whiteink.com/css/examples/forms.html&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://whiteink.com/temp/ckan-forms/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://whiteink.com/temp/ckan-forms/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/286</link>
        <guid isPermaLink="false">http://localhost/ticket/286</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#287: Customise Canadian package edit form</title>
                  <description>&lt;p&gt;
Spec - see attached, which is a copy of the Pirate Pad from Lauren:
&lt;a class="ext-link" href="http://piratepad.net/2C2iwiLDhd"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://piratepad.net/2C2iwiLDhd&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/287</link>
        <guid isPermaLink="false">http://localhost/ticket/287</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#288: Foreign and escaped characters in extras fields</title>
                  <description>&lt;p&gt;
These don't work.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/288</link>
        <guid isPermaLink="false">http://localhost/ticket/288</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#289: Document config options</title>
                  <description></description>
        <link>http://localhost/ticket/289</link>
        <guid isPermaLink="false">http://localhost/ticket/289</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#290: Revision API - docs</title>
                  <description>&lt;p&gt;
doc/api.rst needs to cover the new Revision REST interface.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/290</link>
        <guid isPermaLink="false">http://localhost/ticket/290</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#291: Investigate search options encoding</title>
                  <description>&lt;p&gt;
On ckan.net there is this unchecked-in 'temporary hack'. It seems to be to do with foreign characters in search options. See what its doing and if necessary, put check it in.
&lt;/p&gt;
&lt;pre class="wiki"&gt;diff -r 813ad8b5de0b ckan/lib/search.py
--- a/ckan/lib/search.py	Mon Mar 01 22:23:36 2010 +0100
+++ b/ckan/lib/search.py	Thu Apr 15 19:11:42 2010 +0200
@@ -63,6 +63,9 @@
     def query(self, options):
         '''For the given search options, returns a query object.'''
         self._options = options
+        # temporary hack!
+        if self._options.q:
+            self._options.q = self._options.q.encode('utf8')
         general_terms, field_specific_terms = self._parse_query_string()
         if not general_terms and \
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/291</link>
        <guid isPermaLink="false">http://localhost/ticket/291</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#292: PackageResources are created new on every package edit</title>
                  <description>&lt;p&gt;
When you edit a package, all of its resources are deleted and a fresh set created. This causes all history of them to be lost.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/292</link>
        <guid isPermaLink="false">http://localhost/ticket/292</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#293: REST PackageResource update causes exception</title>
                  <description>&lt;p&gt;
This is caused by editing a package with resources over the REST interface.
&lt;/p&gt;
&lt;p&gt;
Exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://de.ckan.net/api/rest/package/destatis
Module weberror.errormiddleware:162 in __call__
&amp;lt;&amp;lt;              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
                   return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
&amp;gt;&amp;gt;  app_iter = self.application(environ, sr_checker)
Module repoze.who.middleware:107 in __call__
&amp;lt;&amp;lt;          wrapper = StartResponseWrapper(start_response)
               app_iter = app(environ, wrapper.wrap_start_response)
               # The challenge decider almost(?) always needs information from the
&amp;gt;&amp;gt;  app_iter = app(environ, wrapper.wrap_start_response)
Module beaker.middleware:73 in __call__
&amp;lt;&amp;lt;                                                     self.cache_manager)
               environ[self.environ_key] = self.cache_manager
               return self.app(environ, start_response)
&amp;gt;&amp;gt;  return self.app(environ, start_response)
Module beaker.middleware:152 in __call__
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)
           def _get_session(self):
&amp;gt;&amp;gt;  return self.wrap_app(environ, session_start_response)
Module routes.middleware:130 in __call__
&amp;lt;&amp;lt;                  environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1]
               response = self.app(environ, start_response)
               # Wrapped in try as in rare cases the attribute will be gone already
&amp;gt;&amp;gt;  response = self.app(environ, start_response)
Module pylons.wsgiapp:125 in __call__
&amp;lt;&amp;lt;
               controller = self.resolve(environ, start_response)
               response = self.dispatch(controller, environ, start_response)
               if 'paste.testing_variables' in environ and hasattr(response,
&amp;gt;&amp;gt;  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:51 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:221 in __call__
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
               response = self._dispatch_call()
               if not start_response_called:
                   self.start_response = start_response
&amp;gt;&amp;gt;  response = self._dispatch_call()
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ['pylons.action_method'] = func
                   response = self._inspect_call(func)
               else:
                   if log_debug:
&amp;gt;&amp;gt;  response = self._inspect_call(func)
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.__name__, args)
               try:
                   result = self._perform_call(func, args)
               except HTTPException, httpe:
                   if log_debug:
&amp;gt;&amp;gt;  result = self._perform_call(func, args)
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ckan.controllers.rest:145 in update
&amp;lt;&amp;lt;                  fs = ckan.forms.group_fs_combined
                   fs = fs.bind(entity, data=request_fa_dict)
                   validation = fs.validate_on_edit(entity.name, entity.id)
                   if not validation:
                       response.status_int = 409
&amp;gt;&amp;gt;  validation = fs.validate_on_edit(entity.name, entity.id)
Module ckan.forms.package:385 in validate_on_edit
&amp;lt;&amp;lt;              temp_name = orig_pkg_name
                   self.data['Package-%s-name' % record_id] = u'something_unique'
               validation = self.validate()
               if temp_name:
                   # restore it
&amp;gt;&amp;gt;  validation = self.validate()
Module formalchemy.forms:175 in validate
&amp;lt;&amp;lt;          if self.readonly:
                   raise Exception('Cannot validate a read-only FieldSet')
               return AbstractFieldSet.validate(self)
           def sync(self):
&amp;gt;&amp;gt;  return AbstractFieldSet.validate(self)
Module formalchemy.forms:104 in validate
&amp;lt;&amp;lt;          success = True
               for field in self.render_fields.itervalues():
                   success = field._validate() and success
               # run this _after_ the field validators, since each field validator
               # resets its error list. we want to allow the global validator to add
&amp;gt;&amp;gt;  success = field._validate() and success
Module formalchemy.fields:763 in _validate
&amp;lt;&amp;lt;          try:
                   value = self._deserialize()
               except validators.ValidationError, e:
                   self.errors.append(e)
&amp;gt;&amp;gt;  value = self._deserialize()
Module formalchemy.fields:1354 in _deserialize
&amp;lt;&amp;lt;          if self.is_composite_foreign_key:
                   return self.query(self.relation_type()).get(python_pk(self.renderer.deserialize()))
               return self.renderer.deserialize()
&amp;gt;&amp;gt;  return self.renderer.deserialize()
Module formalchemy.fields:183 in deserialize
&amp;lt;&amp;lt;          if self.field.is_collection:
                   return [self._deserialize(subdata) for subdata in self._serialized_value()]
               return self._deserialize(self._serialized_value())
           def _deserialize(self, data):
&amp;gt;&amp;gt;  return self._deserialize(self._serialized_value())
Module formalchemy.fields:167 in _serialized_value
&amp;lt;&amp;lt;          if self.field.is_collection:
                   return self._params.getall(self.name)
               return self._params.getone(self.name)
           def deserialize(self):
&amp;gt;&amp;gt;  return self._params.getone(self.name)
Module formalchemy.base:63 in getone
&amp;lt;&amp;lt;          if v is None or isinstance(v, basestring) or isinstance(v, cgi.FieldStorage):
                   return v
               return v[0]
           def getall(self, key):
               v = dict.get(self, key)
&amp;gt;&amp;gt;  return v[0]
TypeError: 'int' object is unsubscriptable
&lt;/pre&gt;&lt;p&gt;
Thanks to Friedrich for spotting this.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/293</link>
        <guid isPermaLink="false">http://localhost/ticket/293</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#294: Add/remove extra fields in Package edit form</title>
                  <description>&lt;p&gt;
Currently the package form gives you 3 fields for extras. To get more you have to hit preview. This is obscure. It would be better to have some buttons to add/remove fields, just like with the resources.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/294</link>
        <guid isPermaLink="false">http://localhost/ticket/294</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#295: Add multiple packages when editing a group</title>
                  <description>&lt;p&gt;
In Group edit page, you can only add one package at a time. It would be better to use some scripting to allow adding more than one at once, to make it easier and quicker when you have a long list to add.
&lt;/p&gt;
&lt;p&gt;
Ticket is split off from &lt;a class="closed ticket" href="http://localhost/ticket/221" title="enhancement: UI Review - Package edit (closed: fixed)"&gt;ticket:221&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
See also &lt;a class="closed ticket" href="http://localhost/ticket/155" title="enhancement: Adding multiple packages to a group (closed: duplicate)"&gt;ticket:155&lt;/a&gt; (duplicate).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/295</link>
        <guid isPermaLink="false">http://localhost/ticket/295</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#296: Commit CKAN revisions to changeset system</title>
                  <description></description>
        <link>http://localhost/ticket/296</link>
        <guid isPermaLink="false">http://localhost/ticket/296</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#297: Update CKAN repository from changeset system</title>
                  <description></description>
        <link>http://localhost/ticket/297</link>
        <guid isPermaLink="false">http://localhost/ticket/297</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#298: Pull changesets from remote CKAN instance</title>
                  <description></description>
        <link>http://localhost/ticket/298</link>
        <guid isPermaLink="false">http://localhost/ticket/298</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#299: Merge diverging lines of changesets</title>
                  <description></description>
        <link>http://localhost/ticket/299</link>
        <guid isPermaLink="false">http://localhost/ticket/299</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#300: Resource ordering issue</title>
                  <description>&lt;p&gt;
Failing test: ckan.tests.models.test_resource.&lt;a class="missing wiki"&gt;TestResourceLifecycle?&lt;/a&gt;.test_03_reorder_resources
&lt;/p&gt;
&lt;p&gt;
Not clear how visible this is to the user.
&lt;/p&gt;
&lt;p&gt;
Related to &lt;a class="closed ticket" href="http://localhost/ticket/292" title="defect: PackageResources are created new on every package edit (closed: fixed)"&gt;ticket:292&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/300</link>
        <guid isPermaLink="false">http://localhost/ticket/300</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#301: Package discussion pages</title>
                  <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>
        <link>http://localhost/ticket/301</link>
        <guid isPermaLink="false">http://localhost/ticket/301</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#302: Advertise a package's feed visually</title>
                  <description>&lt;p&gt;
Visual display of a package's feed in the Package Read (/package/xyz) and Package History (/package/history/xyz) pages.
&lt;/p&gt;
&lt;p&gt;
Motivation: each package's Atom feed is mentioned in the &amp;lt;link rel="alternate" type="application/atom+xml" ...&amp;gt; tag, which Firefox displays with a feed icon, but the other 3/4 of users may not discover it.
&lt;/p&gt;
&lt;p&gt;
The Repo History (/revision) page has a visual link the feed.
&lt;/p&gt;
&lt;p&gt;
PS It would be nice to display the feed icon in both these places too.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/302</link>
        <guid isPermaLink="false">http://localhost/ticket/302</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#303: Package history &amp; diff &amp; feed to show changes to tags, extras and resources</title>
                  <description>&lt;p&gt;
Currently a package's history page (/package/history/xyz) and related feed only shows changes to the core package i.e. ones which create a &lt;a class="missing wiki"&gt;PackageResource?&lt;/a&gt;. This doesn't include changes to tags, extras and resources. These need to be added.
&lt;/p&gt;
&lt;p&gt;
There is the complication that the 'diff' function doesn't currently work beyond &lt;a class="missing wiki"&gt;PackageResource?&lt;/a&gt;. Unless this is quick and simple to fix, I suggest we let the diff remain slightly broken for now.
&lt;/p&gt;
&lt;p&gt;
Rufus suggests alongside the existing methods:
&lt;/p&gt;
&lt;pre class="wiki"&gt;pkg.all_revisions()
pkg.diff()
&lt;/pre&gt;&lt;p&gt;
we have ones which also include the related objects (tags, extras, resources):
&lt;/p&gt;
&lt;pre class="wiki"&gt;pkg.all_revisions_full()
pkg.diff_full()
&lt;/pre&gt;&lt;p&gt;
You could have a function which returned these related objects. Ideas:
&lt;/p&gt;
&lt;pre class="wiki"&gt;revobjlist = [ self, resources, extras ]
list of tuples: (revobj, changed_revobjs)
list of tuples: (revobj, {objtype: [changed_revobjs]})
tuple: (rev1, {Package: [ object_id, object_id], PackageTag: [object_id, object_id2] ...}
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/303</link>
        <guid isPermaLink="false">http://localhost/ticket/303</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#304: Previewing package with resource with missing url is broken</title>
                  <description>&lt;p&gt;
Intended outcome:
&lt;/p&gt;
&lt;p&gt;
See resource url validation error when previewing package with a resources that has no url.
&lt;/p&gt;
&lt;p&gt;
Recurring Error:
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://127.0.0.1:5000/package/new
File 'pyenv-ckan/lib/python2.5/site-packages/weberror/evalexception.py', line 431 in respond
  app_iter = self.application(environ, detect_start_response)
File 'pyenv-ckan/lib/python2.5/site-packages/repoze/who/middleware.py', line 107 in __call__
  app_iter = app(environ, wrapper.wrap_start_response)
File 'pyenv-ckan/lib/python2.5/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File 'pyenv-ckan/lib/python2.5/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File 'pyenv-ckan/lib/python2.5/site-packages/Routes-1.10.3-py2.5.egg/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File 'pyenv-ckan/src/ckan/ckan/lib/base.py', line 50 in __call__
  return WSGIController.__call__(self, environ, start_response)
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/controllers/core.py', line 60 in _perform_call
  return func(**args)
File 'pyenv-ckan/src/ckan/ckan/controllers/package.py', line 216 in new
  clear_session=True)
File 'pyenv-ckan/src/ckan/ckan/controllers/package.py', line 357 in _render_edit_form
  edit_form_html = fs.render()
File 'pyenv-ckan/src/ckan/ckan/forms/builder.py', line 13 in render
  return render(self.form_template)
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/templating.py', line 663 in render
  format=format, namespace=kargs, **cache_args)
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/templating.py', line 546 in render
  **options)
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/plugin.py', line 110 in render
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py', line 179 in render
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 60 in encode
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 425 in __call__
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 592 in __call__
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 698 in __call__
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 532 in __call__
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py', line 283 in _ensure
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 569 in _include
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py', line 245 in _match
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 543 in _exec
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 533 in _eval
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 520 in _eval
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 286 in _eval_expr
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py', line 180 in evaluate
File 'pyenv-ckan/src/ckan/ckan/templates/package/form_fields.html', line 52 in &amp;lt;Expression u'h.literal(field.render())'&amp;gt;
  ${h.literal(field.render())}
File 'pyenv-ckan/lib/python2.5/site-packages/FormAlchemy-1.3.4-py2.5.egg/formalchemy/fields.py', line 1217 in render
  return self.renderer.render(**opts)
File 'pyenv-ckan/src/ckan/ckan/forms/common.py', line 311 in render
  return render('package/form_resources')
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/templating.py', line 663 in render
  format=format, namespace=kargs, **cache_args)
File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/templating.py', line 546 in render
  **options)
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/plugin.py', line 110 in render
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py', line 179 in render
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 60 in encode
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 425 in __call__
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 592 in __call__
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 698 in __call__
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 532 in __call__
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py', line 283 in _ensure
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 569 in _include
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py', line 245 in _match
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 543 in _exec
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 510 in _eval
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 520 in _eval
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 286 in _eval_expr
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py', line 180 in evaluate
File 'pyenv-ckan/src/ckan/ckan/templates/package/form_resources.html', line 14 in &amp;lt;Expression u"res['id'] if res else ''"&amp;gt;
  &amp;lt;td&amp;gt;&amp;lt;input name="${c.id}-${i}-id" type="hidden" value="${res['id'] if res else ''}" /&amp;gt;&amp;lt;/td&amp;gt;
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py', line 335 in lookup_item
File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py', line 405 in undefined
UndefinedError: {'url': u'a', 'hash': u'a', 'description': u'a', 'format': u'a'} has no member named "id"
&lt;/pre&gt;&lt;p&gt;
How to reproduce:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Go to package edit form, enter a package resource &lt;strong&gt;but without a URL&lt;/strong&gt;.
&lt;/li&gt;&lt;li&gt;Click preview.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/304</link>
        <guid isPermaLink="false">http://localhost/ticket/304</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#305: Search result pagination is broken</title>
                  <description>&lt;p&gt;
Expect to page through results.
&lt;/p&gt;
&lt;p&gt;
Only page 1 is shown, all other pages fail to display.
&lt;/p&gt;
&lt;p&gt;
Reproduce by searching for something common and browsing to the second page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/305</link>
        <guid isPermaLink="false">http://localhost/ticket/305</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#306: datapkg build command</title>
                  <description>&lt;p&gt;
Need to be able to build a distribution. Need:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;new 'build' command
&lt;/li&gt;&lt;li&gt;specify distribution format. Suggest at the moment a simple zip or tar.gz build in most straightforward way form distribution.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/306</link>
        <guid isPermaLink="false">http://localhost/ticket/306</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#307: datapkg upload command</title>
                  <description>&lt;p&gt;
Support uploading a distribution somewhere.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;New cli command: upload
&lt;/li&gt;&lt;li&gt;Pluggable uploader framework. Suggest initial support
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Depends on &lt;a class="closed ticket" href="http://localhost/ticket/306" title="enhancement: datapkg build command (closed: duplicate)"&gt;ticket:306&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/307</link>
        <guid isPermaLink="false">http://localhost/ticket/307</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#308: Autocomplete package names &amp; tags in package search</title>
                  <description>&lt;p&gt;
Extracted from &lt;a class="closed ticket" href="http://localhost/ticket/216" title="enhancement: UI Review - Search (closed: fixed)"&gt;ticket:216&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Dubious of its merit.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/308</link>
        <guid isPermaLink="false">http://localhost/ticket/308</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#309: Tag list shows unused tags</title>
                  <description>&lt;p&gt;
Deleted tags are visible on the /tag page and are searchable.
&lt;/p&gt;
&lt;p&gt;
Delete tags are ones that were in use once and then discarded, so this includes ones which are not used on any packages any more, including misspelling, mistakes, and deprecated tags. It would makes sense to remove them.
&lt;/p&gt;
&lt;p&gt;
Example tag that is viewed at /tag and searchable:
&lt;a class="ext-link" href="http://ckan.net/tag/2rand[0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/tag/2rand[0&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/309</link>
        <guid isPermaLink="false">http://localhost/ticket/309</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#310: Commit message box looks wrong in edit page since edit style overhaul</title>
                  <description>&lt;p&gt;
Suggest move this below the label and make full width of screen and only 3/4 rows high (more like a wiki site).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Also change label to: Edit summary (Briefly describe the changes you have made)
&lt;/li&gt;&lt;li&gt;Remove: you can markdown formatting here.
&lt;/li&gt;&lt;li&gt;Move author: if you have not signed in smaller and closer (like markdown instructions are nwo).
&lt;/li&gt;&lt;li&gt;Change commit -&amp;gt; save
&lt;/li&gt;&lt;li&gt;Remove "please save" just have the bullet points
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/310</link>
        <guid isPermaLink="false">http://localhost/ticket/310</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#311: Reordering of package resources can lead to integri</title>
                  <description>&lt;p&gt;
Created a new package resource line and then moved it up above existing one and hit save. Result: 500 error. In logs have:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[Sat May 08 21:55:41 2010] [error] [client 86.26.8.30] Error - &amp;lt;class 'sqlalchemy.exceptions.IntegrityError'&amp;gt;: (IntegrityError) duplicate key value violates unique constraint "package_resource_revision_pkey", referer: http://ckan.net/package/edit/cofog
[Sat May 08 21:55:41 2010] [error] [client 86.26.8.30]  'INSERT INTO package_resource_revision (id, package_id, url, format, description, hash, position, state, revision_id, continuity_id) VALUES (%(id)s, %(package_id)s, %(url)s, %(format)s, %(description)s, %(hash)s, %(position)s, %(state)s, %(revision_id)s, %(continuity_id)s)' {'hash': '', 'description': 'The Treasury record of COFOG functions. ', 'format': 'XLS', 'url': 'http://www.hm-treasury.gov.uk/d/cofog_definitions_coins250609.xls', 'package_id': '8482334d-fe2e-4285-9114-5243130f80c0', 'state': 'active', 'continuity_id': '8bf302db-8a80-47d3-b5dc-bc07512a3928', 'position': 3, 'revision_id': 'e4e2cb2d-4bd5-414e-b646-e484f174d9ab', 'id': '8bf302db-8a80-47d3-b5dc-bc07512a3928'}, referer: http://ckan.net/package/edit/cofog
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/311</link>
        <guid isPermaLink="false">http://localhost/ticket/311</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#312: Race condition creating PackageRating</title>
                  <description>&lt;p&gt;
On ckan.net there are a few packages which cause a 403 exception when you try to rate them:
&lt;a class="ext-link" href="http://www.ckan.net/package/rate/coins-data?rating=3"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/package/rate/coins-data?rating=3&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The exception is occuring here:
ckan.rating:39 in set_rating
rating_obj = rating_query.one()
&lt;a class="missing wiki"&gt;InvalidRequestError?&lt;/a&gt;: Multiple rows returned for one()
&lt;/p&gt;
&lt;p&gt;
It looks like this package got rated twice in quick succession, creating two similar &lt;a class="missing wiki"&gt;PackageRating?&lt;/a&gt; objects. This race condition needs to be solved and these particular rating objects repaired.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/312</link>
        <guid isPermaLink="false">http://localhost/ticket/312</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#313: Allow packages to be specified by IDs in REST interface</title>
                  <description>&lt;p&gt;
If a package name changes, a simple CKAN client may not be aware of this (not monitoring the push notifications, revisions or feed), so it is preferable to refer to the package by its (invariant) ID.
&lt;/p&gt;
&lt;p&gt;
It is still useful to refer to a package by its name though, so both should be valid arguments in the REST interface.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/313</link>
        <guid isPermaLink="false">http://localhost/ticket/313</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#314: Bugs getting revisions from the REST API</title>
                  <description>&lt;p&gt;
Bug report regarding getting revisions:
&lt;/p&gt;
&lt;p&gt;
Getting revisons by ID (on the latest ID)
GET "&lt;a class="ext-link" href="http://test-hmg.ckan.net/api/search/revision?since_revision=44aac9b6-ba24-43a8-87a1-f6923dc523ff"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test-hmg.ckan.net/api/search/revision?since_revision=44aac9b6-ba24-43a8-87a1-f6923dc523ff&lt;/a&gt;"
&lt;/p&gt;
&lt;p&gt;
Returns a whole load of stuff (it's also quite slow - about 10 seconds)
&lt;/p&gt;
&lt;p&gt;
I'm expecting it to return just an empty array - am I doing something
wrong here - if so could you clarify correct use of the API?
&lt;/p&gt;
&lt;p&gt;
GET "&lt;a class="ext-link" href="http://test-hmg.ckan.net/api/search/revision?since_time=2010-04-30T23:45"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test-hmg.ckan.net/api/search/revision?since_time=2010-04-30T23:45&lt;/a&gt;"
Returns the empty string - I'd expect an empty array ie []
&lt;/p&gt;
&lt;p&gt;
GET "&lt;a class="ext-link" href="http://test-hmg.ckan.net/api/search/revision?since_time=2010-04-31T23:45"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test-hmg.ckan.net/api/search/revision?since_time=2010-04-31T23:45&lt;/a&gt;"
Returns an internal server error 500 - I think it should probably be "bad
Request" 400 (the date is invalid)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/314</link>
        <guid isPermaLink="false">http://localhost/ticket/314</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#315: Improvements and fixes to csv dump</title>
                  <description>&lt;ol&gt;&lt;li&gt;Issues with quote in fields: &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2010-May/000240.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2010-May/000240.html&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Issues with package resource serialization into csv table.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&amp;lt;quote&amp;gt;
In the latest dump there were 116(!) sets of the three columns (“resource-[n]-url”, “resource-[n]-format”, and “resource-[n]-description”). However, these are an extract of the packed “resource” column and I’m not sure whether they’re needed. Also, they irritatingly don’t appear in order in the CSV serialisation. If the resource columns could be ordered in the file that would be great; if a second version without the unpacked resource data would be excellent.
&amp;lt;/quote&amp;gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/315</link>
        <guid isPermaLink="false">http://localhost/ticket/315</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#316: Search URL escaping</title>
                  <description>&lt;p&gt;
If you search for unescaped characters such as '`' (backtick) in the URL in Chrome then you get a 500 error.
&lt;/p&gt;
&lt;p&gt;
e.g.
&lt;a class="ext-link" href="http://www.ckan.net/package/search?q=fjdkf2B%C2%B4gfhgfkgf{gpk"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/package/search?q=fjdkf2B%C2%B4gfhgfkgf{gpk&lt;/a&gt;
fjdkf2B´gfhgfkgf{gpk
&lt;/p&gt;
&lt;p&gt;
returns this exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://www.ckan.net/package/search?q=fjdkf%2B%C2%B4gfhgfkgf%7Bg%C2%B4pk&amp;amp;search=Search+Packages+%C2%BB
Module weberror.errormiddleware:162 in __call__
&amp;lt;&amp;lt;              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
                   return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
&amp;gt;&amp;gt;  app_iter = self.application(environ, sr_checker)
Module repoze.who.middleware:107 in __call__
&amp;lt;&amp;lt;          wrapper = StartResponseWrapper(start_response)
               app_iter = app(environ, wrapper.wrap_start_response)
               # The challenge decider almost(?) always needs information from the
&amp;gt;&amp;gt;  app_iter = app(environ, wrapper.wrap_start_response)
Module beaker.middleware:73 in __call__
&amp;lt;&amp;lt;                                                     self.cache_manager)
               environ[self.environ_key] = self.cache_manager
               return self.app(environ, start_response)
&amp;gt;&amp;gt;  return self.app(environ, start_response)
Module beaker.middleware:152 in __call__
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)
           def _get_session(self):
&amp;gt;&amp;gt;  return self.wrap_app(environ, session_start_response)
Module routes.middleware:130 in __call__
&amp;lt;&amp;lt;                  environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1]
               response = self.app(environ, start_response)
               # Wrapped in try as in rare cases the attribute will be gone already
&amp;gt;&amp;gt;  response = self.app(environ, start_response)
Module pylons.wsgiapp:125 in __call__
&amp;lt;&amp;lt;
               controller = self.resolve(environ, start_response)
               response = self.dispatch(controller, environ, start_response)
               if 'paste.testing_variables' in environ and hasattr(response,
&amp;gt;&amp;gt;  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:50 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:221 in __call__
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
               response = self._dispatch_call()
               if not start_response_called:
                   self.start_response = start_response
&amp;gt;&amp;gt;  response = self._dispatch_call()
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ['pylons.action_method'] = func
                   response = self._inspect_call(func)
               else:
                   if log_debug:
&amp;gt;&amp;gt;  response = self._inspect_call(func)
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.__name__, args)
               try:
                   result = self._perform_call(func, args)
               except HTTPException, httpe:
                   if log_debug:
&amp;gt;&amp;gt;  result = self._perform_call(func, args)
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ckan.controllers.package:52 in search
&amp;lt;&amp;lt;                  collection=query,
                       page=request.params.get('page', 1),
                       items_per_page=50
                   )
                   # filter out ranks from the query result
&amp;gt;&amp;gt;  items_per_page=50
Module webhelpers.paginate:333 in __init__
&amp;lt;&amp;lt;              self.item_count = item_count
               else:
                   self.item_count = len(self.collection)
               # Compute the number of the first and last available page
&amp;gt;&amp;gt;  self.item_count = len(self.collection)
Module webhelpers.paginate:204 in __len__
&amp;lt;&amp;lt;      def __len__(self):
               return self.obj.count()
       # Since the items on a page are mainly a list we subclass the "list" type
&amp;gt;&amp;gt;  return self.obj.count()
Module sqlalchemy.orm.query:1094 in count
&amp;lt;&amp;lt;              q = q.params(params)
               q = q._legacy_select_kwargs(**kwargs)
               return q._count()
           def _count(self):
&amp;gt;&amp;gt;  return q._count()
Module sqlalchemy.orm.query:1103 in _count
&amp;lt;&amp;lt;          """
               return self._col_aggregate(sql.literal_column('1'), sql.func.count, nested_cols=list(self.mapper.primary_key))
           def _col_aggregate(self, col, func, nested_cols=None):
&amp;gt;&amp;gt;  return self._col_aggregate(sql.literal_column('1'), sql.func.count, nested_cols=list(self.mapper.primary_key))
Module sqlalchemy.orm.query:1125 in _col_aggregate
&amp;lt;&amp;lt;          if self._autoflush and not self._populate_existing:
                   self.session._autoflush()
               return self.session.scalar(s, params=self._params, mapper=self.mapper)
           def compile(self):
&amp;gt;&amp;gt;  return self.session.scalar(s, params=self._params, mapper=self.mapper)
Module sqlalchemy.orm.session:635 in scalar
&amp;lt;&amp;lt;          engine = self.get_bind(mapper, clause=clause, instance=instance)
               return self.__connection(engine, close_with_result=True).scalar(clause, params or {})
           def close(self):
&amp;gt;&amp;gt;  return self.__connection(engine, close_with_result=True).scalar(clause, params or {})
Module sqlalchemy.engine.base:834 in scalar
&amp;lt;&amp;lt;          """
               return self.execute(object, *multiparams, **params).scalar()
           def statement_compiler(self, statement, **kwargs):
&amp;gt;&amp;gt;  return self.execute(object, *multiparams, **params).scalar()
Module sqlalchemy.engine.base:844 in execute
&amp;lt;&amp;lt;          for c in type(object).__mro__:
                   if c in Connection.executors:
                       return Connection.executors[c](self, object, multiparams, params)
               else:
                   raise exceptions.InvalidRequestError("Unexecutable object type: " + str(type(object)))
&amp;gt;&amp;gt;  return Connection.executors[c](self, object, multiparams, params)
Module sqlalchemy.engine.base:895 in execute_clauseelement
&amp;lt;&amp;lt;          else:
                   keys = None
               return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) &amp;gt; 1), distilled_params=params)
           def _execute_compiled(self, compiled, multiparams=None, params=None, distilled_params=None):
&amp;gt;&amp;gt;  return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) &amp;gt; 1), distilled_params=params)
Module sqlalchemy.engine.base:907 in _execute_compiled
&amp;lt;&amp;lt;          context.pre_execution()
               self.__execute_raw(context)
               context.post_execution()
               self._autocommit(context)
&amp;gt;&amp;gt;  self.__execute_raw(context)
Module sqlalchemy.engine.base:916 in __execute_raw
&amp;lt;&amp;lt;              self._cursor_executemany(context.cursor, context.statement, context.parameters, context=context)
               else:
                   self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
           def _execute_ddl(self, ddl, params, multiparams):
&amp;gt;&amp;gt;  self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
Module sqlalchemy.engine.base:958 in _cursor_execute
&amp;lt;&amp;lt;              self.engine.logger.info(repr(parameters))
               try:
                   self.dialect.do_execute(cursor, statement, parameters, context=context)
               except Exception, e:
                   self._handle_dbapi_exception(e, statement, parameters, cursor)
&amp;gt;&amp;gt;  self.dialect.do_execute(cursor, statement, parameters, context=context)
Module sqlalchemy.engine.default:133 in do_execute
&amp;lt;&amp;lt;      def do_execute(self, cursor, statement, parameters, context=None):
               cursor.execute(statement, parameters)
           def is_disconnect(self, e):
&amp;gt;&amp;gt;  cursor.execute(statement, parameters)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb4' in position 6: ordinal not in range(128)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/316</link>
        <guid isPermaLink="false">http://localhost/ticket/316</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#317: Make search pluggable</title>
                  <description>&lt;p&gt;
Make lib/search.py pluggable so that we can plug in different search systems (e.g. SOLR).
&lt;/p&gt;
&lt;p&gt;
Suggest we define a base Search class from which specific search implementations inherit (e.g. SQLSearch, SOLRSearch etc). The specific one being used would then be set via a config variable.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/317</link>
        <guid isPermaLink="false">http://localhost/ticket/317</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#318: Insufficient validation of resource URIs</title>
                  <description>&lt;p&gt;
The CKAN instance on data.gov.uk serves invalid URIs out of its API.
&lt;/p&gt;
&lt;p&gt;
For example the following can be found,
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://uk.sitestat.com/homeoffice/rds/s?rds.hosb0509tabsxls&amp;amp;ns_type=pdf&amp;amp;ns_url=[http://www.homeoffice.gov.uk/rds/pdfs09/hosb0509tabs.xls"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://uk.sitestat.com/homeoffice/rds/s?rds.hosb0509tabsxls&amp;amp;ns_type=pdf&amp;amp;ns_url=[http://www.homeoffice.gov.uk/rds/pdfs09/hosb0509tabs.xls&lt;/a&gt;]
&lt;/p&gt;
&lt;p&gt;
In this URI, the : and / characters after the ? in the query part are invalid according to section 3.4 of RFC2396
&lt;/p&gt;
&lt;p&gt;
Also URIs are not stripped of whitespace at the end.
&lt;/p&gt;
&lt;p&gt;
This causes problems when other software with a more correct interpretation of what a valid URI is attempts to consume data from CKAN. In this instance the Talis triplestore complains about such URIs.
&lt;/p&gt;
&lt;p&gt;
"Be liberal in what you accept and conservative in what you send" would seem apt.
&lt;/p&gt;
&lt;h2 id="Actions"&gt;Actions&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Validation of urls as part of form entry or data loading
&lt;ul&gt;&lt;li&gt;Need to consider situation where this should happen out-of-band (i.e. we allow load even with invalid data and then flag bad dates in separate validation process). In general doubtful that we should do this here because url invalidity is such a big deal
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;This code should support analysis of existing data so we can go through existing database and find invalid urls
&lt;ul&gt;&lt;li&gt;Also useful to have this so we can do out of band validation
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/318</link>
        <guid isPermaLink="false">http://localhost/ticket/318</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#319: Local Authority license misnamed in migration script 18</title>
                  <description>&lt;p&gt;
Migration script 18 converts license "OKD Compliant::Local Authority Copyright with data.gov.uk rights" into "uklocalauthority-withrights" when it should be "localauth-withrights", according to the license service SoS 2. This causes clients difficulties looking it up.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/319</link>
        <guid isPermaLink="false">http://localhost/ticket/319</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#320: site_title configuration variable which is used in template</title>
                  <description>&lt;p&gt;
As a sysadmin I want to configure basic site title information for use in the site templates.
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ckan.site_title config variable
&lt;/li&gt;&lt;li&gt;set this on g in app_globals.py e.g.
&lt;ul&gt;&lt;li&gt;from pylons import config; g.site_title = config.get('ckan.site_title, 'CKAN - Comprehensive Knowledge Archive Network')
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;use in head title and in main site title/logo section (use it as alt on logo image)
&lt;/li&gt;&lt;li&gt;Also all other pages (e.g. index, about) which talk about CKAN
&lt;ul&gt;&lt;li&gt;Is this needed? Would it not be better for people who want to customize the site to simply overwrite those templates?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Questions:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Do we want a site_logo variable whic his use for site title/logo section instead of site_title if site_logo defined?
&lt;/li&gt;&lt;li&gt;Probably yes, but &lt;strong&gt;not&lt;/strong&gt; part of this ticket.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/320</link>
        <guid isPermaLink="false">http://localhost/ticket/320</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#321: Delegate authentication to Drupal</title>
                  <description>&lt;p&gt;
When CKAN is included in a Drupal front-end, CKAN edit pages are used in a slave-mode, such that authentication is delegated to the Drupal front-end user model.
&lt;/p&gt;
&lt;p&gt;
The Drupal front-end shall have:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Login page - fixed location, can authenticate users, on successful  authentication sets auth cookie and redirects to HTTP_REFERER.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Access control resource - fixed location, can authorise users, on receipt of valid auth cookie return message listing account details and permitted actions.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Access denied page - fixed location, static resource, gently
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
indicates what has happened, and how to ask for permission.
&lt;/p&gt;
&lt;p&gt;
The CKAN slave edit page shall:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Try to detect a Drupal session key (passed as cookie or as request param).
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Redirect to Drupal login page if no session key.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Check authorisation if session key is found.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Redirect to access denied page if session key not authorised.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;Present the Package edit page.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="6"&gt;&lt;li&gt;Reject unauthenticated or unauthorised edit submissions.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="7"&gt;&lt;li&gt;Snag invalid edit submissions from authenticated and authorised users.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="8"&gt;&lt;li&gt;Respond to valid edit submissions from authenticated and authorised users, by saving the new package state, and redirecting to Package read page in Drupal front-end.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/321</link>
        <guid isPermaLink="false">http://localhost/ticket/321</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#322: Client interface for Notification Service</title>
                  <description>&lt;h3 id="Usecases"&gt;Use cases&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Register for package changes
&lt;/li&gt;&lt;li&gt;Register for all revisions
&lt;/li&gt;&lt;li&gt;Notified of a package change
&lt;/li&gt;&lt;li&gt;Notified of a revision
&lt;/li&gt;&lt;li&gt;Deregistration
&lt;/li&gt;&lt;li&gt;Configuration of port in pylons config
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Design"&gt;Design&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Default port: 5672 (standard for AMQP)
&lt;/li&gt;&lt;li&gt;Exchange name: 'ckan'
&lt;/li&gt;&lt;li&gt;Exchange type: topic exchange (most flexible)
&lt;/li&gt;&lt;li&gt;Routing keys: (see below)
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Routingdetail"&gt;Routing detail&lt;/h3&gt;
&lt;p&gt;
Routing key format: "OBJ_TYPE"
(NB tags should be identified by their name, not ID)
&lt;/p&gt;
&lt;p&gt;
Example routing keys
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;'package' - Package edited/created
&lt;/li&gt;&lt;li&gt;'resource' - Resource edited/created
&lt;/li&gt;&lt;li&gt;'revision' - Any change
&lt;/li&gt;&lt;li&gt;'db.clean'
&lt;/li&gt;&lt;li&gt;'db.rebuild'
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Example queue bindings that clients may use:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;* - no filtering - client receives all notifications
&lt;/li&gt;&lt;li&gt;package - only changes to packages
&lt;/li&gt;&lt;li&gt;revision - all revisions
&lt;/li&gt;&lt;li&gt;db - all database operations
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Versioning"&gt;Versioning&lt;/h3&gt;
&lt;p&gt;
Since message payloads will be tied into the REST Entities, it makes sense to join up with the REST versioning. This could be achieved by providing new exchanges called 'ckan-1.1' perhaps?
&lt;/p&gt;
&lt;h3 id="Documentation"&gt;Documentation&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;How to use
&lt;/li&gt;&lt;li&gt;simple example of an external client?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/322</link>
        <guid isPermaLink="false">http://localhost/ticket/322</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#323: Notification message</title>
                  <description>&lt;h3 id="Whicheventstonotifyon"&gt;Which events to notify on&lt;/h3&gt;
&lt;p&gt;
Listed by domain object, these are the notification message 'change types' that will be sent:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Package
&lt;/li&gt;&lt;li&gt;PackageResource
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also it is clear that it could be useful to know when db-wide maintenance is carried out:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;db - 'clean', 'rebuild' (db is wiped and replaced with new data), 'upgrade' (migration)
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Ignoreddomainobjects"&gt;Ignored domain objects&lt;/h3&gt;
&lt;p&gt;
These parts of the domain model will not carry notifications as no use case has been identified for them:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Revision
&lt;/li&gt;&lt;li&gt;Group
&lt;/li&gt;&lt;li&gt;Tag
&lt;/li&gt;&lt;li&gt;Rating
&lt;/li&gt;&lt;li&gt;User - list of users is sensitive info
&lt;/li&gt;&lt;li&gt;Relationships - complicated
&lt;/li&gt;&lt;li&gt;Authz - complicated and sensitive info
&lt;/li&gt;&lt;li&gt;License - change of a license's metadata is a question for the 'license service'
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Messageformat"&gt;Message format&lt;/h3&gt;
&lt;p&gt;
A notification message's header contains the routing key, identifying the object type. The client is probably interested in the object (all use cases so far), so it makes sense to send the object in the payload. This should be the JSON-encoded dictionary exactly as provided for the object's REST Entity.
&lt;/p&gt;
&lt;p&gt;
For the 'db' notifications there shall be no payload.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/323</link>
        <guid isPermaLink="false">http://localhost/ticket/323</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#324: Search indexing using notifications</title>
                  <description>&lt;p&gt;
Currently search indexing is triggered directly using a Postgresql db callback. Now take advantage of the Notification system to register interest in all package changes and db changes to trigger this instead.
&lt;/p&gt;
&lt;p&gt;
The indexing shall run in a separate shell/process, managed by supervisord.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/324</link>
        <guid isPermaLink="false">http://localhost/ticket/324</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#325: Event push notification</title>
                  <description>&lt;h3 id="Asa"&gt;As a&lt;/h3&gt;
&lt;p&gt;
CKAN client program
&lt;/p&gt;
&lt;h3 id="Iwantto"&gt;I want to&lt;/h3&gt;
&lt;p&gt;
be notified when changes to the CKAN metadata occur.
&lt;/p&gt;
&lt;h3 id="Examplesofuse"&gt;Examples of use&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;An external search engine needing to (re)index a package. (interest: Package)
&lt;/li&gt;&lt;li&gt;A front-end system that caches package info and wants to know when it changes, to keep in step. (interest: Package or Revision) See further details here: &lt;a class="closed ticket" href="http://localhost/ticket/352" title="enhancement: Package notification worker - sends XML-RPC (closed: wontfix)"&gt;ticket:352&lt;/a&gt; and previous iteration here: &lt;a class="closed ticket" href="http://localhost/ticket/333" title="enhancement: CKAN front end requirements for package notifications (closed: wontfix)"&gt;ticket:333&lt;/a&gt;.
&lt;/li&gt;&lt;li&gt;A system for automatically checking package URLs and resource URLs as they are put on the system. This could alert to bad URLs and automatically email feedback to (meta)data owners. (interest: PackageResource)
&lt;/li&gt;&lt;li&gt;Do some processing on resource (e.g. extract sample data for display) (interest: PackageResource)
&lt;/li&gt;&lt;/ol&gt;&lt;h3 id="Context"&gt;Context&lt;/h3&gt;
&lt;p&gt;
The current state of CKAN can be queried through the REST API, you can keep track of changes by reviewing the feeds, but there is no way to find out the instant something is changed, without costly polling.
&lt;/p&gt;
&lt;h3 id="Design"&gt;Design&lt;/h3&gt;
&lt;p&gt;
Split-off into two tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Notification message - &lt;a class="closed ticket" href="http://localhost/ticket/323" title="enhancement: Notification message (closed: fixed)"&gt;ticket:323&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Which events to notify on
&lt;/li&gt;&lt;li&gt;Message format
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Interface for Notifier Service - &lt;a class="closed ticket" href="http://localhost/ticket/322" title="enhancement: Client interface for Notification Service (closed: fixed)"&gt;ticket:322&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Testing"&gt;Testing&lt;/h3&gt;
&lt;p&gt;
To test notifications, Carrot / AMQP will be configured to use a native-Python Queue, instead of requiring RabbitMQ to be running on the machine.
&lt;/p&gt;
&lt;h3 id="Related"&gt;Related&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Run CKAN search indexing using this system - &lt;a class="closed ticket" href="http://localhost/ticket/324" title="enhancement: Search indexing using notifications (closed: fixed)"&gt;ticket:324&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Run SOLR indexing using this system - &lt;a class="closed ticket" href="http://localhost/ticket/353" title="defect: SOLR search indexing (closed: fixed)"&gt;ticket:353&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Web hooks for notifications - &lt;a class="closed ticket" href="http://localhost/ticket/327" title="defect: Create a web hook worker for CKAN (closed: wontfix)"&gt;ticket:327&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/325</link>
        <guid isPermaLink="false">http://localhost/ticket/325</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#326: Centralise importation of json library</title>
                  <description>&lt;p&gt;
Later versions of python use json which is better than simplejson, but it must be kept as an option for compatibility. So centralise the import of json to ckan.lib.helpers.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/326</link>
        <guid isPermaLink="false">http://localhost/ticket/326</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#327: Create a web hook worker for CKAN</title>
                  <description>&lt;blockquote&gt;
&lt;p&gt;
This will be useful as an example consumer of the new queue notifications (&lt;a class="closed ticket" href="http://localhost/ticket/325" title="enhancement: Event push notification (closed: fixed)"&gt;#325&lt;/a&gt;).
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;A user can register any URL to be notified upon an event.
&lt;/li&gt;&lt;li&gt;Possible extensions: GET with ID only vs. POST with serialized object
&lt;/li&gt;&lt;li&gt;E-Mail notifications are also hooks, essentially.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
We need to have a UI module that allows for the hook CRUD and some feedback (e.g. non 200 status codes)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/327</link>
        <guid isPermaLink="false">http://localhost/ticket/327</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#328: Mention code libraries in API documentation</title>
                  <description>&lt;p&gt;
Should prominently (at the top?) mention existing code libraries for working with ckan api. Have:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Python: ckanclient
&lt;/li&gt;&lt;li&gt;Perl: luke closs wrote something
&lt;/li&gt;&lt;li&gt;PHP: drupal library?
&lt;/li&gt;&lt;li&gt;...?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/328</link>
        <guid isPermaLink="false">http://localhost/ticket/328</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#329: Bad dates cause exception on Gov form</title>
                  <description>&lt;h2 id="Reproduction"&gt;Reproduction&lt;/h2&gt;
&lt;p&gt;
Using the government form, create a new package with name 'test' and date released of '23/5/0210'. The result is a 500 error and 'Server Error' message.
&lt;/p&gt;
&lt;p&gt;
Affects all versions of CKAN.
&lt;/p&gt;
&lt;h2 id="Whyitshappening"&gt;Why it's happening&lt;/h2&gt;
&lt;p&gt;
The dates module is raising an exception on the invalid date when saving the date, which is not being caught. The exception should have been raised only during the earlier 'validation' step and that would be caught.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/329</link>
        <guid isPermaLink="false">http://localhost/ticket/329</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#330: getdata/ons timezone not recognised on non-British servers</title>
                  <description>&lt;p&gt;
The python time module is supposed to recognise timezones such as 'UTC', 'GMT' and 'BST' using the %Z parameter. This works fine on British installs, but the buildbot (for example) gives this error:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;DateConvertError?&lt;/a&gt;: Could not read date as ISO format "%a, %d %b %Y %H:%M:%S %Z". Date provided: "Mon, 04 Jan 2010 09:30:00 BST"
&lt;/p&gt;
&lt;p&gt;
It turns out that it only recognises local names of timezones.
&lt;/p&gt;
&lt;p&gt;
The ONS import doesn't care much about timezone, so we should just ignore it, avoiding these problems.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/330</link>
        <guid isPermaLink="false">http://localhost/ticket/330</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#331: Timezone of CKAN timestamps should be configurable</title>
                  <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>
        <link>http://localhost/ticket/331</link>
        <guid isPermaLink="false">http://localhost/ticket/331</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#332: Autocomplete tag on click</title>
                  <description>&lt;p&gt;
During tag autocompletion, clicking on a suggested tag doesn't trigger completion in the text box.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/332</link>
        <guid isPermaLink="false">http://localhost/ticket/332</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#333: CKAN front end requirements for package notifications</title>
                  <description>&lt;h2 id="Usecase:newpackage"&gt;Use case: new package&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;An external front-end system provides a web page with a list of packages. Each package has the option to edit it or and there is also a button to create a new package.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;User: clicks 'new package'.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;CKAN presents the package/new form to the user.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;(After a couple of previews) User: clicks 'commit'.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;Notification message goes from CKAN to the front-end detailing the new package.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="6"&gt;&lt;li&gt;The user is redirected back to the front-end web page displaying the list of packages, which contains the new one.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
The notification message (step 5) has to get through to the front-end that the new package is created before the redirect (step 6). This suggests that the message sending needs to be *synchronous*, i.e. acknowledged by the front-end, before CKAN redirects the user to the front-end package listing page (step 6).
&lt;/p&gt;
&lt;p&gt;
In addition, this use case suggests the front-end listens for package notifications, to save another call to CKAN to get the package details, before the displaying the list of packages. If this isn't possible (see next use case) and it must listen for revision notifications instead, then perhaps it is worth including the full package details in the payload for the revision notification message. Would there be a problem with such a large message in the next use case, with 100 packages?
&lt;/p&gt;
&lt;h2 id="Usecase:CKANimportspackages"&gt;Use case: CKAN imports packages&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;CKAN administrator runs a script that adds 100 new packages into CKAN.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;CKAN sends notification message to front-end to report the new packages/revisions.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Knowing there are new revisions, the front-end queries the CKAN revision interface to get the list of new packages.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;The front-end queries CKAN for each new package one-by-one.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;A new user request to the front-end will include the info about the new packages.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
The package addition could be achieved in 1 revision, 100 revisions or some compromise:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;If it is 1 revision then potentially there are problems displaying the long list of packages in the 'recent changes'.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;If it is 100 revisions, then the notification webhook would be called 100 times, which creates unnecessary load on the front-end. Suppose each Webhook call-back (step 2) triggers the front-end to make a call to CKAN to get the latest revisions (step3), in this case it would make 100 calls, most of them fruitless, causing unnecessary load on CKAN.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This use case suggests a bulk import of packages should go into one revision, and therefore generate one revision notification message and 100 package notification messages. The front-end client should listen to only revision messages.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/333</link>
        <guid isPermaLink="false">http://localhost/ticket/333</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#334: Wrong link for package feed icon</title>
                  <description>&lt;p&gt;
This is a problem with the package page e.g. &lt;a class="ext-link" href="http://ckan.net/package/open-election-data-project"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/open-election-data-project&lt;/a&gt; . The feed icon links to &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;  and the text next to it "Subscribe" links to &lt;a class="missing changeset" title="No default repository defined"&gt;[2]&lt;/a&gt;. Surely these should be the same? The second link seems to right one to me.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt; &lt;a class="ext-link" href="http://ckan.net/package/open-election-data-project?format=atom"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/open-election-data-project?format=atom&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="missing changeset" title="No default repository defined"&gt;[2]&lt;/a&gt; &lt;a class="ext-link" href="http://ckan.net/package/history/open-election-data-project?format=atom&amp;amp;days=7"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/history/open-election-data-project?format=atom&amp;amp;days=7&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/334</link>
        <guid isPermaLink="false">http://localhost/ticket/334</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#335: Post-package-edit redirect to configurable URL</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
third-party interface to a CKAN instance
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
link to CKAN's package creation/editing pages. On 'commit', have the user redirected back to a URL in my interface that I can control. Also, when the package is created new, I need to be told what the new package's name is on return.
&lt;/p&gt;
&lt;h2 id="Design"&gt;Design&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;The 'return URL' is passed as a parameter to CKAN.
&lt;/li&gt;&lt;li&gt;CKAN substitutes the package name into the return URL.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&lt;/p&gt;
&lt;h2 id="Example"&gt;Example&lt;/h2&gt;
&lt;p&gt;
Front-end links to:
http://ca.ckan.net/package/new?return_to=http://datadotgc.ca/dataset/&amp;lt;NAME&amp;gt; (but with the parameter URL-encoded)
&lt;/p&gt;
&lt;p&gt;
When finished editing and the user commits, CKAN redirects the user to: http://datadotgc.ca/dataset/pollution_data
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/335</link>
        <guid isPermaLink="false">http://localhost/ticket/335</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>donovanhide</dc:creator>

                  <title>#336: Resource Search API</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
CKAN client such as ScraperWiki
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
search for Package Resources, either by URL or other field, or just get them all. I want to be able to get all the resource's fields, such as URL.
&lt;/p&gt;
&lt;h2 id="Proposedimplementation"&gt;Proposed implementation&lt;/h2&gt;
&lt;p&gt;
Add resource search API at:
&lt;/p&gt;
&lt;p&gt;
/api/search/resource
&lt;/p&gt;
&lt;p&gt;
AND resource added to model API at:
&lt;/p&gt;
&lt;p&gt;
api/rest/resource
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
(see &lt;a class="closed ticket" href="http://localhost/ticket/358" title="enhancement: Resources in REST API (closed: duplicate)"&gt;ticket:358&lt;/a&gt;)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Functional differences from the ScraperWiki suggested patch:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;URL is not normalised
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;URLs are not grouped
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;All fields of the resource object are returned, not just the URL
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Package is identified by its ID, not name or full URL. (This is for consistency in the API - you can simple prepend '&lt;a class="ext-link" href="http://ckan.net/package/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/&lt;/a&gt;' to the package ID)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This is to make our API more general, simple and consistent. It means that the ScraperWiki client has to do a bit more processing to get exactly what it needs. Is this ok?
&lt;/p&gt;
&lt;h3 id="Examplesearch"&gt;Example search&lt;/h3&gt;
&lt;p&gt;
POST
&lt;/p&gt;
&lt;pre class="wiki"&gt;{"url": "scraperwiki.com/", "all_fields": 1}
&lt;/pre&gt;&lt;p&gt;
to: /api/2/search/resource
&lt;/p&gt;
&lt;p&gt;
returns JSON:
&lt;/p&gt;
&lt;pre class="wiki"&gt; [{"id": "a3dd8f64-9078-4f04-845c-e3f047125028",
   "package_id": "b8a325c8-af2a-43f3-8245-9db7d73dfbfe",
   "URL": "http://scraperwiki.com/lincolnshire-councillors",
   "format": "CSV",
   "Description": "Scrape of www.lincs.gov/councillors.pdf by ScraperWiki.",
   "hash": "",
   "position": 2
 }]
&lt;/pre&gt;&lt;p&gt;
Note use of package_id instead of package_name is something we're moving towards in the API, since names can change. When we've done &lt;a class="closed ticket" href="http://localhost/ticket/341" title="enhancement: Web UI accepts package IDs in URLs (closed: fixed)"&gt;ticket:341&lt;/a&gt; then ckan.net/package/lincs-councillors will be a synonym of ckan.net/package/b8a325c8-af2a-43f3-8245-9db7d73dfbfe
&lt;/p&gt;
&lt;h3 id="SearchParameters"&gt;Search Parameters&lt;/h3&gt;
&lt;pre class="wiki"&gt;Key:  q
Description: Search all resource fields for the value
Key: url / description / format /
Description: Search particular field for the value
Key: all_fields
Value: 0 or 1 (0 is default)
Description: If 1 (true), the full record of the package resource
(and it's package reference) are returned, rather than just the
PackageResource ID.
&lt;/pre&gt;&lt;p&gt;
May also choose to introduce 'offset' and 'limit' to page through a large number of results.
&lt;/p&gt;
&lt;p&gt;
JSONP achieved through API-wide parameter - see &lt;a class="closed ticket" href="http://localhost/ticket/342" title="enhancement: JSONP parameter in API (closed: fixed)"&gt;ticket:342&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Search is case insensitive.
&lt;/p&gt;
&lt;h2 id="Originalrequest"&gt;Original request&lt;/h2&gt;
&lt;p&gt;
Hi,
have attached a patch for adding a resource list api call. Have also added a JSONP compatible callback section, along the lines of &lt;a class="closed ticket" href="http://localhost/ticket/388" title="task: Reply to &amp;#34;two projects&amp;#34; question from RS (closed: fixed)"&gt;#388&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Could also add a search version. Not sure what the best url would be for that though.
&lt;/p&gt;
&lt;p&gt;
Haven't written a test as the structure seems to follow a functional spec. Is that document around somewhere?
&lt;/p&gt;
&lt;p&gt;
Donovan
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/336</link>
        <guid isPermaLink="false">http://localhost/ticket/336</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#337: Download links for resources should open in new window</title>
                  <description>&lt;p&gt;
target = _blank
&lt;/p&gt;
&lt;p&gt;
Cost: 30m
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/337</link>
        <guid isPermaLink="false">http://localhost/ticket/337</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#338: Reference groups by ID in addition to name, since group names can change</title>
                  <description></description>
        <link>http://localhost/ticket/338</link>
        <guid isPermaLink="false">http://localhost/ticket/338</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#339: Remove download_url from package data format in API Version 2, but maintain the old data format in the old version of the interface (API Version 1)</title>
                  <description></description>
        <link>http://localhost/ticket/339</link>
        <guid isPermaLink="false">http://localhost/ticket/339</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#340: Web UI theme easier to configure</title>
                  <description>&lt;p&gt;
An install of CKAN should be configurable without changing any of the installed files. This makes it clear to upgrade CKAN. Complete the changes in this wiki page to allow static files to be served from outside CKAN paths over CKAN versions and additional CSS file to be pulled in.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://wiki.okfn.org/ckan/doc/theme"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.okfn.org/ckan/doc/theme&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/340</link>
        <guid isPermaLink="false">http://localhost/ticket/340</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#341: Web UI accepts package IDs in URLs</title>
                  <description>&lt;p&gt;
(in the same way that we can refer to packages in the API by ID as well as name.)
&lt;/p&gt;
&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
client of CKAN
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
link to a package page in the UI, referring to it by ID
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/341</link>
        <guid isPermaLink="false">http://localhost/ticket/341</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#342: JSONP parameter in API</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
CKAN client using JQuery
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
call the CKAN API and instead of receiving back JSON I get JSONP. i.e. "%s(%s)" % (callback, json_content)
&lt;/p&gt;
&lt;h2 id="Suggestedimplementation"&gt;Suggested implementation&lt;/h2&gt;
&lt;p&gt;
All API calls allow the JSONP 'callback' parameter to be specified in the request and this wraps the JSON response. See suggested patch to rest.py by Donovan Hide:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://knowledgeforge.net/ckan/trac/attachment/ticket/336/resource.patch"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/ckan/trac/attachment/ticket/336/resource.patch&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="Test"&gt;Test&lt;/h2&gt;
&lt;p&gt;
import re
import unittest
&lt;/p&gt;
&lt;p&gt;
def test_jsonp_callback():
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app.get('/api/search/resource/?url=&lt;a class="ext-link" href="http://www.scraperwiki.com&amp;amp;callback=jsoncallback"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.scraperwiki.com&amp;amp;callback=jsoncallback&lt;/a&gt;')
match = re.match('jsoncallback\(.*\);',response)
self.assertTrue(match)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app.get('/api/search/resource/?url=&lt;a class="ext-link" href="http://www.scraperwiki.com"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.scraperwiki.com&lt;/a&gt;')
match = re.match('jsoncallback\(.*\);',response)
self.assertFalse(match)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
I think the point needs to be made that JSONP only works for GET
requests and not POST/PUT/DELETE, so there needs to be a check
for that in the _finish_ok method.
&lt;/p&gt;
&lt;p&gt;
(thanks to Donovan Hide for test)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/342</link>
        <guid isPermaLink="false">http://localhost/ticket/342</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#343: Packages referred by ID in API</title>
                  <description>&lt;p&gt;
When you do a Package Search or query a Package Relationship in the API version 2, the responses have relationships which refer to packages by name, not by ID.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/343</link>
        <guid isPermaLink="false">http://localhost/ticket/343</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#344: REST Create package with incorrect format gives 500 error</title>
                  <description>&lt;p&gt;
PUT to /rest/api/package of &lt;tt&gt; {"name": "name", "resources": ["someurl.com/data"] } &lt;/tt&gt; (i.e. resource is a string, not a dictionary) gives 500 error, when it should give a 400 error and helpful error message.
&lt;/p&gt;
&lt;p&gt;
Exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.rest:154 in create
&amp;lt;&amp;lt;              if register == 'package' and not subregister:
                       fs = ckan.forms.get_standard_fieldset()
                       request_fa_dict = ckan.forms.edit_package_dict(ckan.forms.get_package_dict(fs=fs), request_data)
                       fs = fs.bind(model.Package, data=request_fa_dict, session=model.Session)
                   elif register == 'package' and subregister in model.PackageRelationship.get_all_types():
&amp;gt;&amp;gt;  request_fa_dict = ckan.forms.edit_package_dict(ckan.forms.get_package_dict(fs=fs), request_data)
Module ckan.forms.package_dict:88 in edit_package_dict
&amp;lt;&amp;lt;                      for res_dict in value:
                               res_dict_str = {}
                               for key, value in res_dict.items():
                                   res_dict_str[str(key)] = value
                               resources.append(res_dict_str)
&amp;gt;&amp;gt;  for key, value in res_dict.items():
AttributeError: 'unicode' object has no attribute 'items'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/344</link>
        <guid isPermaLink="false">http://localhost/ticket/344</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#345: metastable, stable &amp; ultrastable branches shall be automatically built and tested</title>
                  <description></description>
        <link>http://localhost/ticket/345</link>
        <guid isPermaLink="false">http://localhost/ticket/345</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#346: Revision search API (response data format and documentation issue)</title>
                  <description>&lt;p&gt;
Whilst going through the API docs for the revision search API, it was noticed that the "Gdu" SoS doc doesn't match up. It returns revision IDs (perhaps this is useful to note in the spec?) so the format is probably not 'limitedstring'. Also, they appear to be ordered youngest first, not oldest as stated.
&lt;/p&gt;
&lt;p&gt;
And in the revision model, it refers to 'simplestring' which it
doesn't define - I guess the names should be 'limitedstring'?
&lt;/p&gt;
&lt;p&gt;
Could this be checked out?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/346</link>
        <guid isPermaLink="false">http://localhost/ticket/346</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#347: The system shall present the package edit form in an API</title>
                  <description></description>
        <link>http://localhost/ticket/347</link>
        <guid isPermaLink="false">http://localhost/ticket/347</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#348: The system shall accept package edit form submissions in an API</title>
                  <description></description>
        <link>http://localhost/ticket/348</link>
        <guid isPermaLink="false">http://localhost/ticket/348</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#349: The system shall support authorised users to edit packages on data.gov.uk</title>
                  <description></description>
        <link>http://localhost/ticket/349</link>
        <guid isPermaLink="false">http://localhost/ticket/349</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#350: Search engine optimisation</title>
                  <description>&lt;p&gt;
Need to research what can easily be done to improve CKAN packages in the search rankings.
&lt;/p&gt;
&lt;p&gt;
Comments from Glen Barnes:
&lt;/p&gt;
&lt;p&gt;
We've been pretty successful at SEO without even really trying (see &lt;a class="ext-link" href="http://www.google.co.nz/search?client=safari&amp;amp;rls=en&amp;amp;q=auckland+google+transit+feed&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;redir_esc=&amp;amp;ei=dsYSTOzJLs2eceuZiI8I"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.google.co.nz/search?client=safari&amp;amp;rls=en&amp;amp;q=auckland+google+transit+feed&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;redir_esc=&amp;amp;ei=dsYSTOzJLs2eceuZiI8I&lt;/a&gt; as an example). This to me is key. If we are to make data available it has to be findable which is the main reason for a catalogue. There are probably things we should be doing on CKAN like using slugged urls (&lt;a class="ext-link" href="http://www.ckan.net/package/ascoe"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/package/ascoe&lt;/a&gt; -&amp;gt; &lt;a class="ext-link" href="http://www.ckan.net/package/ascoe/atmospheric-chemistry-studies-in-the-oceanic-environment"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/package/ascoe/atmospheric-chemistry-studies-in-the-oceanic-environment&lt;/a&gt;), setting the H1 tag correctly ("Atmospheric Chemistry Studies in the Oceanic Environment"  on the example above). Some basic SEO 101 on page optimisations.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/350</link>
        <guid isPermaLink="false">http://localhost/ticket/350</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#351: Homepage: list new, updated and 'hot' packages</title>
                  <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>
        <link>http://localhost/ticket/351</link>
        <guid isPermaLink="false">http://localhost/ticket/351</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#352: Package notification worker - sends XML-RPC</title>
                  <description>&lt;h2 id="Asan"&gt;As an&lt;/h2&gt;
&lt;p&gt;
external front-end
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
be notified (by XML-RPC) about package creations and updates.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;A message queue worker waits for package update notifications
&lt;/li&gt;&lt;li&gt;On reception, it constructs XML detailing the changes and PUSHes it to a configured URI.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Rather than turning the package fields into XML fields, the JSON dump of the list of package dictionaries will become a single XML parameter.
&lt;/p&gt;
&lt;p&gt;
Config - in the CKAN config will be:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;URI to callback to
&lt;/li&gt;&lt;li&gt;API version to use (version 2 gives packages referred by ID not name)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/352</link>
        <guid isPermaLink="false">http://localhost/ticket/352</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#353: SOLR search indexing</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
SOLR instance
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
keep my search index of CKAN packages up-to-date
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Using asynchronous event notifications
&lt;/li&gt;&lt;li&gt;Running in a separate process to CKAN
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/353</link>
        <guid isPermaLink="false">http://localhost/ticket/353</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#354: Collect together requirements and top-level design for user/package 'groups'</title>
                  <description>&lt;p&gt;
Collect together requirements and top-level design for user/package 'groups': existing tickets, Rufus spec, Sean spec, meeting notes (dread) email, based on existing user authz stuff.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://knowledgeforge.net/ckan/trac/wiki/AccessControl"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/ckan/trac/wiki/AccessControl&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Do we add these into user-role table somehow or new table? To present this to team
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/354</link>
        <guid isPermaLink="false">http://localhost/ticket/354</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#355: Dashes versus underscores in package names</title>
                  <description>&lt;p&gt;
Sort out how we deal with dashes versus underscores in package names.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/355</link>
        <guid isPermaLink="false">http://localhost/ticket/355</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#356: Search box in at top of page (UI)</title>
                  <description>&lt;p&gt;
A small but useful ui improvement would be to have a search box at top right on every page.
&lt;/p&gt;
&lt;p&gt;
As an example see the one here on trac or on github.com or bitbucket.org.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;It would be particularly good to include a small advanced search link that took you to the full search page. Need to keep it small because screen real-estate here is limited (see how github.com does this for inspiration).
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/356</link>
        <guid isPermaLink="false">http://localhost/ticket/356</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#357: Fix API documentation, to correct misleading HTTP_AUTHORIZATION statement.</title>
                  <description>&lt;p&gt;
Sean Burlington wrote:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
I recently came across a documentation issue
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://knowledgeforge.net/ckan/doc/ckan/api.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/ckan/doc/ckan/api.html&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
The key should be passed in the API request header:
Header         Example value
HTTP_AUTHORIZATION         fde34a3c-b716-4c39-8dc4-881ba115c6d4
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
But the header name is actually just 'AUTHORIZATION'
&lt;/p&gt;
&lt;p&gt;
For example to set it in PHP
&lt;/p&gt;
&lt;p&gt;
curl_setopt($ch, CURLOPT_HTTPHEADER, array('AUTHORIZATION:
xxxxx-xxxx-xxxx-xxxx-xxxxxxx'));
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/357</link>
        <guid isPermaLink="false">http://localhost/ticket/357</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#358: Resources in REST API</title>
                  <description>&lt;p&gt;
(spun out of &lt;a class="closed ticket" href="http://localhost/ticket/336" title="defect: Resource Search API (closed: fixed)"&gt;ticket:336&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Resource added to model API at:
&lt;/p&gt;
&lt;p&gt;
api/rest/resource
&lt;/p&gt;
&lt;h3 id="Examplemodelrequest"&gt;Example model request&lt;/h3&gt;
&lt;p&gt;
GET to: /api/2/rest/resource/a3dd8f64-9078-4f04-845c-e3f047125028
&lt;/p&gt;
&lt;p&gt;
returns:
&lt;/p&gt;
&lt;pre class="wiki"&gt; [{"id": "a3dd8f64-9078-4f04-845c-e3f047125028",
   "package_id": "b8a325c8-af2a-43f3-8245-9db7d73dfbfe",
   "URL": "http://scraperwiki.com/lincolnshire-councillors",
   "format": "CSV",
   "Description": "Scrape of www.lincs.gov/councillors.pdf by ScraperWiki.",
   "hash": "",
   "position": 2
 }]
&lt;/pre&gt;&lt;h2 id="Authorization"&gt;Authorization&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;Have it generic (ie. not per resource) and use an action/role on system
&lt;/li&gt;&lt;li&gt;Require all resources to attach to packages an inherit their permissions (i.e. read/write etc if and only read/write on associated packages)
&lt;/li&gt;&lt;li&gt;Introduce Resource in authorization system (requires migration)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Mixed model
&lt;/p&gt;
&lt;pre class="wiki"&gt;Create / Edit:
if resource associated to package:
    check_permissions(package, update)
else:
    check_system_permissions(c.user, model.Action.Resouce Create/Update, model.System)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/358</link>
        <guid isPermaLink="false">http://localhost/ticket/358</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#359: Create Storage with pluggable extensions</title>
                  <description>&lt;p&gt;
Storage represents something you can upload to (download is done in &lt;a class="closed ticket" href="http://localhost/ticket/406" title="requirement: Download sub-system (closed: fixed)"&gt;ticket:406&lt;/a&gt;).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;storage sub package with defined interface (maybe just use OFS)
&lt;/li&gt;&lt;li&gt;Only support uploading single files for the moment (though can do multiple files).
&lt;ul&gt;&lt;li&gt;Relationship to build (&lt;a class="closed ticket" href="http://localhost/ticket/306" title="enhancement: datapkg build command (closed: duplicate)"&gt;ticket:306&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;No support for syncing e.g. hg/git repos -- that's up to you as a user
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Upload command
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
At end of this we can deprecate Repository.
&lt;/p&gt;
&lt;p&gt;
Having Repository encapsulate Index and Storage (without Storage being explicit) is not helpful and leads to duplication.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/359</link>
        <guid isPermaLink="false">http://localhost/ticket/359</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#360: New sqlite-based DB index</title>
                  <description>&lt;p&gt;
In 0.5 and 0.6 have been more oriented to getting file indexes working to support the convenience of using packages on disk directly. However we now need to go back to having a better central/default index and the best model for this is a simple db index using sqlite (which is now supported in the standard library).
&lt;/p&gt;
&lt;p&gt;
NB: this is a retrospective ticket (been working on this for a couple of months)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/360</link>
        <guid isPermaLink="false">http://localhost/ticket/360</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#361: Allow specification of the default index in configuration</title>
                  <description></description>
        <link>http://localhost/ticket/361</link>
        <guid isPermaLink="false">http://localhost/ticket/361</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#362: Ratings should not be created with a GET</title>
                  <description>&lt;h2 id="Background"&gt;Background&lt;/h2&gt;
&lt;p&gt;
In the Web UI, when you rate a package it simply links to something like:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://ckan.net/package/rate/mke-liquor-licenses?rating=3"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/rate/mke-liquor-licenses?rating=3&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This creates a GET request.
&lt;/p&gt;
&lt;p&gt;
This is bad because:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Search engine crawlers follow links to find pages, and in this case end up creating a rating (although we've got a robots.txt to try and avoid this)
&lt;/li&gt;&lt;li&gt;There are occasions when we want to make a CKAN instance read-only, so we put a &amp;lt;&lt;a class="missing wiki"&gt;LimitExcept?&lt;/a&gt; GET&amp;gt; Apache instruction in. But the database may still get written for these ratings.
&lt;/li&gt;&lt;li&gt;Best practise for web requests is for GET to be a read-only request.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/362</link>
        <guid isPermaLink="false">http://localhost/ticket/362</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#363: Blank revisions</title>
                  <description>&lt;p&gt;
Occasionally we seem to get revisions that are not connected to packages. These shouldn't appear, since all revisioned objects are linked to a package aren't they?
&lt;/p&gt;
&lt;p&gt;
They appear on the 'Recently changed' list on the home page with an empty 'Packages' column.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/363</link>
        <guid isPermaLink="false">http://localhost/ticket/363</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#364: Search for 'statistic' returns nothing</title>
                  <description>&lt;p&gt;
On ckan.net there are plenty of packages (and indeed their tags) with the word 'statistic' in them, but no packages turn up when you search for it:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://ckan.net/package/search?q=statistic&amp;amp;search=Search+Packages+%C2%BB"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/search?q=statistic&amp;amp;search=Search+Packages+%C2%BB&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
(Using Postgres full text search)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/364</link>
        <guid isPermaLink="false">http://localhost/ticket/364</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#365: ResourceNotifications</title>
                  <description>&lt;p&gt;
If you change a resource then you not only get a &lt;a class="missing wiki"&gt;PackageNotification?&lt;/a&gt;, but also a &lt;a class="missing wiki"&gt;ResourceNofication?&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/365</link>
        <guid isPermaLink="false">http://localhost/ticket/365</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#366: A flash message says why you are redirected to the 'user login' page</title>
                  <description>&lt;p&gt;
You get redirected for a number of different reasons - often confuses me let alone the average user!
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/366</link>
        <guid isPermaLink="false">http://localhost/ticket/366</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#367: Notfication monitor</title>
                  <description>&lt;p&gt;
Runs on the commandline and prints out notifications.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/367</link>
        <guid isPermaLink="false">http://localhost/ticket/367</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>anonymous</dc:creator>

                  <title>#368: 500 Server error when creating package</title>
                  <description>&lt;p&gt;
I've just started writing the importer from cap.open.org.nz and was running an initial import of just the package name and titles. The packages were created however I received a 500 error in response:
&lt;/p&gt;
&lt;p&gt;
"publish: New Zealand Coastline (new-zealand-coastline)"
opening connection to nz.ckan.net...
opened
&amp;lt;- "POST /api/rest/package HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection: close\r\nAuthorization: 81179ade-fa4a-4632-9b89-3d0c98bfc8b8\r\nContent-Length: 64\r\nHost: nz.ckan.net\r\n\r\n"
&amp;lt;- "{\"name\":\"new-zealand-coastline\",\"title\":\"New Zealand Coastline\"}"
-&amp;gt; "HTTP/1.1 500 Internal Server Error\r\n"
-&amp;gt; "Date: Tue, 20 Jul 2010 10:20:35 GMT\r\n"
-&amp;gt; "Server: Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2\r\n"
-&amp;gt; "Vary: Accept-Encoding\r\n"
-&amp;gt; "Content-Type: text/html; charset=iso-8859-1\r\n"
-&amp;gt; "Cache-Control: proxy-revalidate\r\n"
-&amp;gt; "Content-Length: 640\r\n"
-&amp;gt; "Connection: close\r\n"
-&amp;gt; "\r\n"
reading 640 bytes...
-&amp;gt; "&amp;lt;!DOCTYPE HTML PUBLIC \"-&lt;em&gt;IETF&lt;/em&gt;DTD HTML 2.0&lt;em&gt;EN\"&amp;gt;\n&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;\n&amp;lt;title&amp;gt;500 Internal Server Error&amp;lt;/title&amp;gt;\n&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;\n&amp;lt;h1&amp;gt;Internal Server Error&amp;lt;/h1&amp;gt;\n&amp;lt;p&amp;gt;The server encountered an internal error or\nmisconfiguration and was unable to complete\nyour request.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Please contact the server administrator,\n [no address given] and inform them of the time the error occurred,\nand anything you might have done that may have\ncaused the error.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;More information about this error may be available\nin the server error log.&amp;lt;/p&amp;gt;\n&amp;lt;hr&amp;gt;\n&amp;lt;address&amp;gt;Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2 Server at nz.ckan.net Port 80&amp;lt;/address&amp;gt;\n&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;\n"
read 640 bytes
Conn close
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
The server should not respond with a 500 error if the package was created.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/368</link>
        <guid isPermaLink="false">http://localhost/ticket/368</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shudson@…</dc:creator>

                  <title>#369: "Package Listing Key" should appear on Tag results</title>
                  <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>
        <link>http://localhost/ticket/369</link>
        <guid isPermaLink="false">http://localhost/ticket/369</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shudson@…</dc:creator>

                  <title>#370: Use better email encryption for author_email and maintainer_email</title>
                  <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>
        <link>http://localhost/ticket/370</link>
        <guid isPermaLink="false">http://localhost/ticket/370</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#371: The system shall monitor QoS against SLA</title>
                  <description>&lt;p&gt;
Requested by DGU.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/371</link>
        <guid isPermaLink="false">http://localhost/ticket/371</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#372: Fix system limits on CKAN for DGU</title>
                  <description>&lt;p&gt;
Set limits in /etc/security/limits.conf so that we can always ssh in at least.  Requested by DGU.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/372</link>
        <guid isPermaLink="false">http://localhost/ticket/372</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#373: Sort out gov daily script</title>
                  <description>&lt;p&gt;
Split various jobs up into separate scripts. Change ONS importer to run remotely. Run ONS remotely. Run dump locally.
&lt;/p&gt;
&lt;p&gt;
Requested by DGU.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/373</link>
        <guid isPermaLink="false">http://localhost/ticket/373</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#374: Design servicization of CKAN API</title>
                  <description></description>
        <link>http://localhost/ticket/374</link>
        <guid isPermaLink="false">http://localhost/ticket/374</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#375: Integrate Forms API into Drupal</title>
                  <description>&lt;p&gt;
Requested by DGU.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/375</link>
        <guid isPermaLink="false">http://localhost/ticket/375</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#376: Implement servicization of CKAN API</title>
                  <description>&lt;p&gt;
Requested by DGU.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/376</link>
        <guid isPermaLink="false">http://localhost/ticket/376</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>glen@…</dc:creator>

                  <title>#377: API Should return JSON in all cases</title>
                  <description>&lt;p&gt;
When the API returns any response it should always retunr JSON. For example a 404 response should return something like
&lt;/p&gt;
&lt;pre class="wiki"&gt;{'status': 404, 'message': 'package somename not found'}
&lt;/pre&gt;&lt;p&gt;
When errors are encountered when creating a package:
&lt;/p&gt;
&lt;pre class="wiki"&gt;{'status': nnn, 'message': 'Validation Errors', 'errors':['description':'name cannot be
blank', 'description':'license code must be an integer']}
&lt;/pre&gt;&lt;p&gt;
Not authorised:
&lt;/p&gt;
&lt;pre class="wiki"&gt;{'status': 503, 'message': 'You are not authorised to create this package.'}
&lt;/pre&gt;&lt;p&gt;
The reason being that screeds of html coming back in the response just makes it harder to debug and understand. Having the proper error codes/messages means that you can see why your package was not created.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/377</link>
        <guid isPermaLink="false">http://localhost/ticket/377</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#378: My user story #1</title>
                  <description></description>
        <link>http://localhost/ticket/378</link>
        <guid isPermaLink="false">http://localhost/ticket/378</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#379: My dev task #1</title>
                  <description></description>
        <link>http://localhost/ticket/379</link>
        <guid isPermaLink="false">http://localhost/ticket/379</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#380: My dev task #2</title>
                  <description></description>
        <link>http://localhost/ticket/380</link>
        <guid isPermaLink="false">http://localhost/ticket/380</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#381: Test defect</title>
                  <description>&lt;p&gt;
please ignore
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/381</link>
        <guid isPermaLink="false">http://localhost/ticket/381</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#382: Measure quality of service parameters</title>
                  <description>&lt;p&gt;
As a service administrator, I want to measure responsiveness, throughput, and availability of a CKAN service.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/382</link>
        <guid isPermaLink="false">http://localhost/ticket/382</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#383: Create middleware feature to generate QoS throughput log</title>
                  <description></description>
        <link>http://localhost/ticket/383</link>
        <guid isPermaLink="false">http://localhost/ticket/383</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#384: Send alert when QoS measurements break expectation</title>
                  <description></description>
        <link>http://localhost/ticket/384</link>
        <guid isPermaLink="false">http://localhost/ticket/384</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#385: Send email if QoS measurement breaks QoS criteria</title>
                  <description></description>
        <link>http://localhost/ticket/385</link>
        <guid isPermaLink="false">http://localhost/ticket/385</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#386: Set limits in /etc/security/limits.conf</title>
                  <description></description>
        <link>http://localhost/ticket/386</link>
        <guid isPermaLink="false">http://localhost/ticket/386</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#387: Fix failing tests in search sub-system trigged by recent changes</title>
                  <description></description>
        <link>http://localhost/ticket/387</link>
        <guid isPermaLink="false">http://localhost/ticket/387</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#388: Reply to "two projects" question from RS</title>
                  <description></description>
        <link>http://localhost/ticket/388</link>
        <guid isPermaLink="false">http://localhost/ticket/388</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#389: Investigate timezone issue raised by SB</title>
                  <description></description>
        <link>http://localhost/ticket/389</link>
        <guid isPermaLink="false">http://localhost/ticket/389</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#390: Remove a package for SB</title>
                  <description></description>
        <link>http://localhost/ticket/390</link>
        <guid isPermaLink="false">http://localhost/ticket/390</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#391: Create monitoring feature to generate QoS responsiveness log</title>
                  <description></description>
        <link>http://localhost/ticket/391</link>
        <guid isPermaLink="false">http://localhost/ticket/391</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#392: Create monitoring feature to generate QoS availability log</title>
                  <description></description>
        <link>http://localhost/ticket/392</link>
        <guid isPermaLink="false">http://localhost/ticket/392</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#393: Create aggregation feature to aggregate QoS log</title>
                  <description></description>
        <link>http://localhost/ticket/393</link>
        <guid isPermaLink="false">http://localhost/ticket/393</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#394: Fix munin on DGU (?)</title>
                  <description></description>
        <link>http://localhost/ticket/394</link>
        <guid isPermaLink="false">http://localhost/ticket/394</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#395: Set up profiling to analyze performance issues</title>
                  <description>&lt;p&gt;
At the moment, some pages within CKAN tend to load slowly. We should create a profiling setup in which we can measure response times for complete requests and individual methods calls.
&lt;/p&gt;
&lt;p&gt;
This could be used to identify bottlenecks and find an appropriate caching or tuning strategy to improve CKAN performance.
&lt;/p&gt;
&lt;p&gt;
NB: We should also agree on a maximum request latency.
&lt;/p&gt;
&lt;p&gt;
TODO: Read up on all those QoS tickets to avoid overlapping efforts.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/395</link>
        <guid isPermaLink="false">http://localhost/ticket/395</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#396: Integrate Forms API into Drupal</title>
                  <description></description>
        <link>http://localhost/ticket/396</link>
        <guid isPermaLink="false">http://localhost/ticket/396</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#397: Implement QoS monitoring for DGU</title>
                  <description></description>
        <link>http://localhost/ticket/397</link>
        <guid isPermaLink="false">http://localhost/ticket/397</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#398: Create Public API documentation for DGU (draft)</title>
                  <description></description>
        <link>http://localhost/ticket/398</link>
        <guid isPermaLink="false">http://localhost/ticket/398</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#399: Import BIS data for SD</title>
                  <description></description>
        <link>http://localhost/ticket/399</link>
        <guid isPermaLink="false">http://localhost/ticket/399</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#400: Configure DGU Public API with TSO</title>
                  <description>&lt;p&gt;
Have TSO configure data.ov.uk/api/catalogue. Have TSO register catalogue.data.gov.uk.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/400</link>
        <guid isPermaLink="false">http://localhost/ticket/400</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#401: Provide base worker as queue consumer</title>
                  <description>&lt;p&gt;
We should create and document a basic queue consumer and task processor for CKAN. It will connect to the CKAN update queue, read messages and dispatch them to a consumer function (such as a downloader or an analysis app)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/401</link>
        <guid isPermaLink="false">http://localhost/ticket/401</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#402: Archiving worker to back up package resources from a CKAN instance</title>
                  <description>&lt;p&gt;
Write a worker that scans all packages in a ckan instance and uploads the data to storage.ckan.net or another suitable storage system.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Naming scheme?
&lt;ul&gt;&lt;li&gt;Bucket: {ckan-instance-id}-{package-name}? {ckan-instance-id}-{package-id}?
&lt;ul&gt;&lt;li&gt;What happens if names change
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;File: filename? hash?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Store hash back on ckan instance?
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The caching worker will consumer update notifications and fetch packages.
&lt;/p&gt;
&lt;p&gt;
Extra points for:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Properly checking for source file modification (Last-modified, Etag)
&lt;/li&gt;&lt;li&gt;Using PIP VCS Backends for retrieval
&lt;/li&gt;&lt;li&gt;OFS/S3 Storage
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/402</link>
        <guid isPermaLink="false">http://localhost/ticket/402</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#403: Create web service for OFS storage</title>
                  <description>&lt;p&gt;
Create a thin web service that will allow users to upload files to OFS on S3 without knowing S3 credentials. This could also provide static urls for all stored resources.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;relates to &lt;a class="closed ticket" href="http://localhost/ticket/307" title="defect: datapkg upload command (closed: fixed)"&gt;#307&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/403</link>
        <guid isPermaLink="false">http://localhost/ticket/403</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#404: Make registries pluggable</title>
                  <description>&lt;p&gt;
Allow using different indexes, including ckan, file, dcat, ...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/404</link>
        <guid isPermaLink="false">http://localhost/ticket/404</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#405: Retrieval options for package resources</title>
                  <description>&lt;p&gt;
Download Command (was install command) should support the following modes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Download only the first listed resource (current behaviour, slightly arbitrary)
&lt;/li&gt;&lt;li&gt;Download resources by interactive selection
&lt;/li&gt;&lt;li&gt;Download resources by MIME type (cf &lt;a class="assigned ticket" href="http://localhost/ticket/235" title="enhancement: Resource format normalization and detection (assigned)"&gt;#235&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;Download all resources.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/405</link>
        <guid isPermaLink="false">http://localhost/ticket/405</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#406: Download sub-system</title>
                  <description>&lt;p&gt;
Factor out current downloader into dedicated download subpackage, abstract interface and make it pluggable so we can have downloaders loaded as per type of resource to download.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Also rename &lt;a class="missing wiki"&gt;InstallCommand?&lt;/a&gt; -&amp;gt; &lt;a class="missing wiki"&gt;DownloadCommand?&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
And we should support interactive retrieving of resources ...
&lt;/p&gt;
&lt;h2 id="ImplementationIdeas"&gt;Implementation Ideas&lt;/h2&gt;
&lt;pre class="wiki"&gt;for resources in pkg.resources:
    # datapkg/hg
    load_storage_handler(resource.format)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/406</link>
        <guid isPermaLink="false">http://localhost/ticket/406</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#407: Link to Scraperwiki</title>
                  <description>&lt;h2 id="Asa"&gt;As a&lt;/h2&gt;
&lt;p&gt;
user browsing a CKAN package which has a resource in a bad format
&lt;/p&gt;
&lt;h2 id="Iwantto"&gt;I want to&lt;/h2&gt;
&lt;p&gt;
be alerted to the possibility of scraping it on scraperwiki
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
This should be done in a CKAN extension. It should appear in a side-bar on the package read page.
&lt;/p&gt;
&lt;p&gt;
If the package does not have a resource with scraperwiki.com in the url, then it displays this message:
&lt;/p&gt;
&lt;p&gt;
Title: Scrape it&lt;br /&gt;
Image: (Scraperwiki dumper truck)&lt;br /&gt;
Body text: Could this data be in a better format? Why not use Scraperwiki to extract data from tables, Excel or PDF for everyone's benefit? You can &lt;a class="ext-link" href="http://scraperwiki.com/market/request/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;request&lt;/a&gt; this data is scraped or even &lt;a class="ext-link" href="http://scraperwiki.com/editor/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;write the scraper&lt;/a&gt; yourself.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/407</link>
        <guid isPermaLink="false">http://localhost/ticket/407</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#408: Integrate CMS via proxying</title>
                  <description>&lt;ul&gt;&lt;li&gt;As sysadmin/user of CKAN I want to integrate a CMS to support easy addition of additional content ...
&lt;/li&gt;&lt;li&gt;I want to integrate with navigation
&lt;/li&gt;&lt;li&gt;As a minimum I want to be able to add content pages (more stuff would be e.g. comments, sidebars, main menu ...)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Why: CMS are great at creating content and have very good editors and theme support ...
&lt;/p&gt;
&lt;h3 id="Previouswork"&gt;Previous work&lt;/h3&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://groups.google.com/group/pylons-discuss/browse_thread/thread/f8969e28b0a007c7"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://groups.google.com/group/pylons-discuss/browse_thread/thread/f8969e28b0a007c7&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;deliverance: retheming on the fly
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://knowledgeforge.net/shakespeare/hg/file/677eef9402e6/shakespeare/controllers/template.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/shakespeare/hg/file/677eef9402e6/shakespeare/controllers/template.py&lt;/a&gt;
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Rewrite urls for proxying
&lt;/li&gt;&lt;li&gt;You need a theme to substitute into
&lt;/li&gt;&lt;li&gt;pylons
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Extreme version:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;2 sources -&amp;gt; pylons/ckan app, cms
&lt;/li&gt;&lt;li&gt;1 theme source: ckan or cms
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
1 frontend/proxy app which re-themes everything
&lt;/p&gt;
&lt;p&gt;
Owned by CKAN:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;package/
&lt;/li&gt;&lt;li&gt;tag/
&lt;/li&gt;&lt;li&gt;group/
&lt;/li&gt;&lt;li&gt;api/
&lt;/li&gt;&lt;li&gt;/
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Everything else proxied.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/408</link>
        <guid isPermaLink="false">http://localhost/ticket/408</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#409: Refactor cli to be more 'pluggable'</title>
                  <description>&lt;ul&gt;&lt;li&gt;&lt;del&gt;(Load cli commands from setuptools entry point name datapkg.cli)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;Document how other can write new commands
&lt;/li&gt;&lt;li&gt;Refactor base Command class to support this pluggability (if necessary)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/409</link>
        <guid isPermaLink="false">http://localhost/ticket/409</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#410: Latest comments widget on home page</title>
                  <description>&lt;p&gt;
This would be an extension to the disqus plugin that would patch itself into home/index.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/410</link>
        <guid isPermaLink="false">http://localhost/ticket/410</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#411: Deploy and test Varnish on eu3</title>
                  <description>&lt;ul&gt;&lt;li&gt;Need to figure out cache invalidation for CKAN
&lt;/li&gt;&lt;li&gt;Evaluate against an internal cache (i.e. memcached)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/411</link>
        <guid isPermaLink="false">http://localhost/ticket/411</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#412: Data format for package importing shall be documented</title>
                  <description>&lt;p&gt;
Requirements:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;cater naturally for multiple packages with multiple resources
&lt;/li&gt;&lt;li&gt;international encoding
&lt;/li&gt;&lt;li&gt;large number of packages
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/412</link>
        <guid isPermaLink="false">http://localhost/ticket/412</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#413: Write functional tests for DGU caching</title>
                  <description></description>
        <link>http://localhost/ticket/413</link>
        <guid isPermaLink="false">http://localhost/ticket/413</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#414: Change the Apache and Varnish ports</title>
                  <description>&lt;p&gt;
Ask Paul for a new machine for testing. Then one for varnish-live and one for varnish-test.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/414</link>
        <guid isPermaLink="false">http://localhost/ticket/414</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#415: Chase Talis about loading RDF from CKAN.</title>
                  <description></description>
        <link>http://localhost/ticket/415</link>
        <guid isPermaLink="false">http://localhost/ticket/415</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#416: Meet Evan at COI at 1 o'clock Tuesday 10th August 2010 (to progress Forms API)</title>
                  <description></description>
        <link>http://localhost/ticket/416</link>
        <guid isPermaLink="false">http://localhost/ticket/416</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#418: With COI, get SOLR working</title>
                  <description></description>
        <link>http://localhost/ticket/418</link>
        <guid isPermaLink="false">http://localhost/ticket/418</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#419: Meet Paul at COI at 2 o'clock Tuesday 10th August 2010</title>
                  <description></description>
        <link>http://localhost/ticket/419</link>
        <guid isPermaLink="false">http://localhost/ticket/419</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#420: Release ckan 1.1</title>
                  <description></description>
        <link>http://localhost/ticket/420</link>
        <guid isPermaLink="false">http://localhost/ticket/420</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#421: Upgrade test-hmg.ckan.net to latest ckan 1.1</title>
                  <description></description>
        <link>http://localhost/ticket/421</link>
        <guid isPermaLink="false">http://localhost/ticket/421</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#422: Administrator imports meta-data into CKAN</title>
                  <description>&lt;p&gt;
Requirements:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;cater naturally for multiple packages with multiple resources
&lt;/li&gt;&lt;li&gt;international encoding
&lt;/li&gt;&lt;li&gt;large number of packages
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/422</link>
        <guid isPermaLink="false">http://localhost/ticket/422</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#423: Add examples to documentation about uploading data</title>
                  <description></description>
        <link>http://localhost/ticket/423</link>
        <guid isPermaLink="false">http://localhost/ticket/423</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#424: Tell JF the format spec &amp; examples</title>
                  <description></description>
        <link>http://localhost/ticket/424</link>
        <guid isPermaLink="false">http://localhost/ticket/424</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#425: Document how licenses can be configured in CKAN</title>
                  <description></description>
        <link>http://localhost/ticket/425</link>
        <guid isPermaLink="false">http://localhost/ticket/425</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#426: Ask list for suggestions improving API docs</title>
                  <description></description>
        <link>http://localhost/ticket/426</link>
        <guid isPermaLink="false">http://localhost/ticket/426</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#427: Match licenses from GEMINI document</title>
                  <description>&lt;ul&gt;&lt;li&gt;examples of posting a new package
&lt;/li&gt;&lt;li&gt;example license_id - explain
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/427</link>
        <guid isPermaLink="false">http://localhost/ticket/427</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#428: Daily dump of DGU CKAN available</title>
                  <description>&lt;p&gt;
End users want to get hold of a JSON &amp;amp; CSV dump of the DGU data.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/428</link>
        <guid isPermaLink="false">http://localhost/ticket/428</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#429: ONS data is imported daily to DGU</title>
                  <description></description>
        <link>http://localhost/ticket/429</link>
        <guid isPermaLink="false">http://localhost/ticket/429</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#430: Upgrade CKAN to Pylons 1.0</title>
                  <description>&lt;p&gt;
Pylons 1.0 has been out for a while and appears to be running stable on a few production sites. It also introduces a few new features, among them the ability to specifiy controllers using the entrypoint mechanism.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://bitbucket.org/pudo/ckanextdeliverance/src/tip/ckanext/deliverance/pylonspatch.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/pudo/ckanextdeliverance/src/tip/ckanext/deliverance/pylonspatch.py&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This might be a bit ugly since the default behaviour of some pylons objects, such as tmpl_context, app_globals and redirect has changed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/430</link>
        <guid isPermaLink="false">http://localhost/ticket/430</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#431: Solr index testing tool</title>
                  <description>&lt;p&gt;
There seem to be a few conditions under which either queue processing or the indexer fail in their current state. To get a more systematic picture of these failures, we should have a small testing tool to compare the index to the database of a live CKAN instance.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/431</link>
        <guid isPermaLink="false">http://localhost/ticket/431</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#432: Creating package over REST gives 500 error</title>
                  <description>&lt;p&gt;
This occurs when CKAN is run with mod_wsgi (not under paster).
&lt;/p&gt;
&lt;p&gt;
This is because of a unicode header being creating in rest.py.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/432</link>
        <guid isPermaLink="false">http://localhost/ticket/432</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#433: Data package metadata in the Egg</title>
                  <description>&lt;p&gt;
Still not sure if we shouldn't use the existing setuptools machinery to manage this -- there is already a way to get at the metadata. In any event, I've just made an addition to datapkg that makes it possible to put datapkg_sources as a dictionary in your package's setup.py. Afterwards it is possible to pull the metadata out of the egg. Of course this could easily be changed to save the information in whatever form, indeed if you pass it a string instead of a dictionary it will just write whatever you gave it into the datapkg_sources.spec. The point is, I think that the egg is a good place to stuff this information.
&lt;/p&gt;
&lt;p&gt;
For non-python users, it is always possible to simply put up the datapkg_sources.spec somewhere on the web so they can directly retrieve the data files.
&lt;/p&gt;
&lt;p&gt;
From the docstring::
&lt;/p&gt;
&lt;pre class="wiki"&gt;    This is the implementation for an [egg_info.writers] entrypoint.
    Datapkg adds an argument to setuptools's setup() function called
    datapkg_sources. The argument should be a dictionary of the form:
    .. code-block:: python
        setup(
            ...,
            datapkg_sources = {
                "cra2009" : "http://www.hm-treasury.gov.uk/d/cra_2009_db.csv"
            }
        )
    The result of this is that there will be a file in the egg called
    datapkg_sources.spec that looks like this::
        [sources]
        cra2009=http://www.hm-treasury.gov.uk/d/cra_2009_db.csv
    How do you get at this data? Simple::
    .. code-block:: python
        import pkg_resources
        dist = pkg_resources.get_distribution("ukgov_treasury_cra")
        spec = dist.get_metadata("datapkg_sources.spec")
    and 'spec' will be the contents of the file as a string.
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/433</link>
        <guid isPermaLink="false">http://localhost/ticket/433</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#434: Logged in user to si.ckan.net causes genshi exception</title>
                  <description>&lt;p&gt;
Here's the trace:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197] Error - &amp;lt;type 'exceptions.IndexError'&amp;gt;: list index out of range
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197] mod_wsgi (pid=6195): Exception occurred processing WSGI script '/home/okfn/var/srvc/si.ckan.net/py
env/bin/si.ckan.net.py'.
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197] Traceback (most recent call last):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/paste/cascade.py", line
130, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return self.apps[-1](environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/paste/registry.py", line
 375, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     app_iter = self.application(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/repoze/who/middleware.py
", line 107, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     app_iter = app(environ, wrapper.wrap_start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/middleware.py", l
ine 214, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     self.app, new_environ, catch_exc_info=True)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/util.py", line 94
, in call_wsgi_application
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     app_iter = application(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/weberror/errormiddleware
.py", line 156, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return self.application(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/beaker/middleware.py", l
ine 73, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return self.app(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/beaker/middleware.py", l
ine 152, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return self.wrap_app(environ, session_start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/routes/middleware.py", l
ine 130, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     response = self.app(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/wsgiapp.py", line
 125, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     response = self.dispatch(controller, environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/wsgiapp.py", line
 324, in dispatch
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return controller(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/src/ckan/ckan/lib/base.py", line 73, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return WSGIController.__call__(self, environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/controllers/core.
py", line 221, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     response = self._dispatch_call()
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/controllers/core.
py", line 172, in _dispatch_call
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     response = self._inspect_call(func)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/controllers/core.
py", line 107, in _inspect_call
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     result = self._perform_call(func, args)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/controllers/core.
py", line 60, in _perform_call
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return func(**args)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/src/ckan/ckan/controllers/error.py", line 32, in doc
ument
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     ckan_template = render('error_document_template.html')
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/src/ckan/ckan/lib/base.py", line 38, in render
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return render_template()
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/src/ckan/ckan/lib/base.py", line 36, in render_templ
ate
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return literal(stream.render(method=method, encoding=None))
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/core.py", line 18
3, in render
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return encode(generator, method=method, encoding=encoding, out=out)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line
57, in encode
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return _encode(''.join(list(iterator)))
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line 339, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for kind, data, pos in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line 670, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for kind, data, pos in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line 771, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for kind, data, pos in chain(stream, [(None, None, None)]):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line 586, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for ev in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/core.py", line 288, in _ensure
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/base.py", line 618, in _include
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in tmpl.generate(ctxt, **vars):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/base.py", line 618, in _include
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in tmpl.generate(ctxt, **vars):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/base.py", line 605, in _include
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/markup.py", line 327, in _match
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/base.py", line 545, in _flatten
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for kind, data, pos in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/filters/i18n.py", line 177, in _generate
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in msgbuf.translate(gettext(msgbuf.format())):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/filters/i18n.py", line 1029, in translate
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     parts = parse_msg(string)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/filters/i18n.py", line 1143, in parse_msg
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     parts.append((stack[-1], string))
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197] IndexError: list index out of range
&lt;/pre&gt;&lt;p&gt;
ckan: 1e403927f2bb (metastable)
genshi: 0.6
lang: slovenian
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/434</link>
        <guid isPermaLink="false">http://localhost/ticket/434</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#435: Switching between ckan instances causes orphaned postgres processes</title>
                  <description>&lt;p&gt;
Analysis using pg_top reveals orphaed processes:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://trac.dataco.coi.gov.uk/projects/datagov/ticket/460#comment:6"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://trac.dataco.coi.gov.uk/projects/datagov/ticket/460#comment:6&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This followed switching ckan instances on the dgu machine. Do these hang around forever clogging up a db server? Can switching between instances be smoothed to avoid this?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/435</link>
        <guid isPermaLink="false">http://localhost/ticket/435</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#436: Investigate exception: resource search JSON</title>
                  <description>&lt;p&gt;
Here's the dump from 22:10 last night:
&lt;/p&gt;
&lt;p&gt;
URL: &lt;a class="ext-link" href="http://ckan.net/api/search/resource?all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class="&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/search/resource?all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class=&lt;/a&gt;
Module weberror.errormiddleware:162 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;              &lt;span class="underline"&gt;traceback_supplement&lt;/span&gt; = Supplement, self, environ
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
sr_checker = &lt;a class="missing wiki"&gt;ResponseStartChecker?&lt;/a&gt;(start_response)
app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
app_iter = self.application(environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                                     self.cache_manager)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
environ[self.environ_key] = self.cache_manager
return self.app(environ, start_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:152 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return start_response(status, headers, exc_info)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _get_session(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.middleware:130 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  environ&lt;a class="missing wiki"&gt;SCRIPT_NAME?&lt;/a&gt; = environ&lt;a class="missing wiki"&gt;SCRIPT_NAME?&lt;/a&gt;[:-1]
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# Wrapped in try as in rare cases the attribute will be gone already
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:125 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if 'paste.testing_variables' in environ and hasattr(response,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
log.debug("Calling controller class with WSGI interface")
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def load_test_env(self, environ):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          # available in environ&lt;a class="missing wiki"&gt;pylons.routes_dict?&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
finally:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
model.Session.remove()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:221 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
if not start_response_called:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.start_response = start_response
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ&lt;a class="missing wiki"&gt;pylons.action_method?&lt;/a&gt; = func
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.&lt;span class="underline"&gt;name&lt;/span&gt;, args)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except HTTPException, httpe:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = 'before_and_this'
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _inspect_call(self, func):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.rest:400 in search
&amp;lt;&amp;lt;                      response.status_int = 400
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return gettext('Blank qjson parameter')
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
params = json.loads(request.params&lt;a class="missing wiki"&gt;qjson?&lt;/a&gt;)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
elif request.params.values() and request.params.values() != [u&lt;em&gt;] and request.params.values() != [u'1']:
&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
params = request.params
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
params = json.loads(request.params&lt;a class="missing wiki"&gt;qjson?&lt;/a&gt;)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module simplejson:384 in loads
&amp;lt;&amp;lt;              parse_constant is None and object_pairs_hook is None
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
and not use_decimal and not kw):
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return _default_decoder.decode(s)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
if cls is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
cls = JSONDecoder
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return _default_decoder.decode(s)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module simplejson.decoder:402 in decode
&amp;lt;&amp;lt;          """
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
end = _w(s, end).end()
if end != len(s):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module simplejson.decoder:420 in raw_decode
&amp;lt;&amp;lt;              obj, end = self.scan_once(s, idx)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
except &lt;a class="missing wiki"&gt;StopIteration?&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise JSONDecodeError("No JSON object could be decoded", s, idx)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
return obj, end
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise JSONDecodeError("No JSON object could be decoded", s, idx)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)
CGI Variables
DOCUMENT_ROOT        '/htdocs'
GATEWAY_INTERFACE        'CGI/1.1'
HTTP_ACCEPT        'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8, application/json'
HTTP_ACCEPT_CHARSET        'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING        'gzip,deflate'
HTTP_ACCEPT_LANGUAGE        'en-us,en;q=0.5'
HTTP_CONNECTION        'keep-alive'
HTTP_COOKIE        '&lt;span class="underline"&gt;utma=27730403.1245320310.1281386803.1281386803.1282164955.2; &lt;/span&gt;utmz=27730403.1282164955.2.2.utmcsr=jira|utmccn=(referral)|utmcmd=referral|utmcct=/browse/PLATFORM-892; &lt;span class="underline"&gt;utmb=27730403.3.10.1282164955; &lt;/span&gt;utmc=27730403'
HTTP_HOST        'ckan.net'
HTTP_KEEP_ALIVE        '300'
HTTP_REFERER        '&lt;a class="ext-link" href="http://jira/browse/PLATFORM-892"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://jira/browse/PLATFORM-892&lt;/a&gt;'
HTTP_USER_AGENT        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7'
PATH        '/usr/local/bin:/usr/bin:/bin'
PATH_INFO        '/api/search/resource'
PATH_TRANSLATED        '/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py/api/search/resource'
QUERY_STRING        'all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class='
REMOTE_ADDR        '64.235.97.218'
REMOTE_PORT        '20720'
REQUEST_METHOD        'GET'
REQUEST_URI        '/api/search/resource?all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class='
SCRIPT_FILENAME        '/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py'
SCRIPT_URI        '&lt;a class="ext-link" href="http://ckan.net/api/search/resource"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/search/resource&lt;/a&gt;'
SCRIPT_URL        '/api/search/resource'
SERVER_ADDR        '10.226.226.118'
SERVER_ADMIN        '[no address given]'
SERVER_NAME        'ckan.net'
SERVER_PORT        '80'
SERVER_PROTOCOL        'HTTP/1.1'
SERVER_SIGNATURE        '&amp;lt;address&amp;gt;Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2 Server at ckan.net Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE        'Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2'
WSGI Variables
application        &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0xa1c13ec&amp;gt;
beaker.cache        &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0xa1c142c&amp;gt;
beaker.get_session        &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0xa1c12ac&amp;gt;&amp;gt;
beaker.session        {'_accessed_time': 1282165818.0880959, '_creation_time': 1282165818.0880959}
mod_wsgi.application_group        'ckan.net|'
mod_wsgi.callable_object        'application'
mod_wsgi.listener_host        &lt;em&gt;
mod_wsgi.listener_port        '80'
mod_wsgi.process_group        &lt;/em&gt;
mod_wsgi.reload_mechanism        '0'
mod_wsgi.script_reloading        '1'
mod_wsgi.version        (2, 5)
paste.cookies        (&amp;lt;SimpleCookie: __utma='27730403.1245320310.1281386803.1281386803.1282164955.2' __utmb='27730403.3.10.1282164955' __utmc='27730403' __utmz='27730403.1282164955.2.2.utmcsr=jira|utmccn=(referral)|utmcmd=referral|utmcct=/browse/PLATFORM-892'&amp;gt;, '&lt;span class="underline"&gt;utma=27730403.1245320310.1281386803.1281386803.1282164955.2; &lt;/span&gt;utmz=27730403.1282164955.2.2.utmcsr=jira|utmccn=(referral)|utmcmd=referral|utmcct=/browse/PLATFORM-892; &lt;span class="underline"&gt;utmb=27730403.3.10.1282164955; &lt;/span&gt;utmc=27730403')
paste.parsed_querystring        ([('all_fields', '1'), ('offset', '0'), ('limit', '20'), ('qjson', '&amp;lt;span class=')], 'all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class=')
paste.registry        &amp;lt;paste.registry.Registry object at 0x130ed84c&amp;gt;
paste.throw_errors        True
pylons.action_method        &amp;lt;bound method &lt;a class="missing wiki"&gt;RestController?&lt;/a&gt;.search of &amp;lt;ckan.controllers.rest.&lt;a class="missing wiki"&gt;RestController?&lt;/a&gt; object at 0xe9bbe0c&amp;gt;&amp;gt;
pylons.controller        &amp;lt;ckan.controllers.rest.&lt;a class="missing wiki"&gt;RestController?&lt;/a&gt; object at 0xe9bbe0c&amp;gt;
pylons.environ_config        {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons        &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0xe9bbe8c&amp;gt;
pylons.routes_dict        {'action': u'search', 'controller': u'rest', 'register': u'resource'}
repoze.who.logger        &amp;lt;logging.Logger instance at 0xa3cb0cc&amp;gt;
repoze.who.plugins        {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 170067148&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 171739788&amp;gt;}
routes.route        &amp;lt;routes.route.Route object at 0xa102fac&amp;gt;
routes.url        &amp;lt;routes.util.URLGenerator object at 0x13a5a3cc&amp;gt;
webob._parsed_query_vars        (GET([('all_fields', '1'), ('offset', '0'), ('limit', '20'), ('qjson', '&amp;lt;span class=')]), 'all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class=')
webob.adhoc_attrs        {'language': 'en-us'}
wsgi process        'Multi process AND threads (?)'
wsgi.file_wrapper        &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x12f53530&amp;gt;
wsgiorg.routing_args        (&amp;lt;routes.util.URLGenerator object at 0x13a5a3cc&amp;gt;, {'action': u'search', 'controller': u'rest', 'register': u'resource'})
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/436</link>
        <guid isPermaLink="false">http://localhost/ticket/436</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#437: Buildbot test failures - ascii codec</title>
                  <description>&lt;p&gt;
On today's buildbot: &lt;a class="ext-link" href="http://buildbot.okfn.org/builders/buildbot-test/builds/201"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://buildbot.okfn.org/builders/buildbot-test/builds/201&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
2 failures about ascii (ignore other 2)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/437</link>
        <guid isPermaLink="false">http://localhost/ticket/437</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#438: Data importers use minimal processing</title>
                  <description>&lt;p&gt;
e.g. ONS importer
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/438</link>
        <guid isPermaLink="false">http://localhost/ticket/438</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#439: Plan server requirements for DGU</title>
                  <description>&lt;p&gt;
Using use cases for security etc.
Draw diagram to satisfy use cases.
Communicate to Paul and therefore TSO.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/439</link>
        <guid isPermaLink="false">http://localhost/ticket/439</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#440: Write and pass comprehensive performance tests</title>
                  <description>&lt;p&gt;
Run latest ckan on eu0.
Automate some queries and searches.
Check load and database connections / processes.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/440</link>
        <guid isPermaLink="false">http://localhost/ticket/440</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#441: CKAN read-only state</title>
                  <description>&lt;p&gt;
When performing maintenance on CKAN it may be necessary to make CKAN obviously read-only, telling the users and restricting access to 'edit' pages.
&lt;/p&gt;
&lt;p&gt;
Examples of use:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Administrator wants to upgrade CKAN or move it to another server. During this time the database is being administered and either edits are lost or can't be done.
&lt;/li&gt;&lt;li&gt;A CKAN is used just for distributing metadata and so is always read-only. Updates may still arrive through direct db manipulation, e.g.:
&lt;ul&gt;&lt;li&gt;another (but writable) CKAN instance is connected to the same db
&lt;/li&gt;&lt;li&gt;restoring database dumps from another CKAN db
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Should a security be breached, all editing could be stopped
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/441</link>
        <guid isPermaLink="false">http://localhost/ticket/441</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#442: Importing data</title>
                  <description>&lt;p&gt;
Review what chunks of code we have and how to move forward with requirements.
&lt;/p&gt;
&lt;p&gt;
Requirements:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Bulk parsing is done away from the CKAN server
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Possible future requirements:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;/importer for importing spreadsheets in WUI
&lt;/li&gt;&lt;li&gt;validation-light - 'scoring' a package
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Current importers:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;/importer controller uses: &lt;a class="missing wiki"&gt;PackageImporter?&lt;/a&gt;, form, &lt;a class="missing wiki"&gt;PackageSaver?&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;loader uses: package_importer -&amp;gt; API
&lt;/li&gt;&lt;li&gt;API uses: form, &lt;a class="missing wiki"&gt;PackageSaver?&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Modules
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;package_importer:
&lt;ul&gt;&lt;li&gt;xls/csv --&lt;a class="missing wiki"&gt;SpreadsheetData?&lt;/a&gt;--&amp;gt; table
&lt;/li&gt;&lt;li&gt;table --&lt;a class="missing wiki"&gt;DataRecords?&lt;/a&gt;--&amp;gt; records
&lt;/li&gt;&lt;li&gt;records --&lt;a class="missing wiki"&gt;PackageImporter?&lt;/a&gt;--&amp;gt; pkg_dicts
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;pkg_dict --form--&amp;gt; fs &amp;amp; validation
&lt;/li&gt;&lt;li&gt;fs --&lt;a class="missing wiki"&gt;PackageSaver?&lt;/a&gt;--&amp;gt; package
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/442</link>
        <guid isPermaLink="false">http://localhost/ticket/442</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#443: Get DGU daily dump working (local)</title>
                  <description>&lt;ul&gt;&lt;li&gt;Producing daily dump file
&lt;/li&gt;&lt;li&gt;Publishing at ckan.net/dumps/ or better
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/443</link>
        <guid isPermaLink="false">http://localhost/ticket/443</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#444: Discuss package relationships ideas with JF</title>
                  <description>&lt;ul&gt;&lt;li&gt;Create test data on visible ckan
&lt;/li&gt;&lt;li&gt;Discuss with JF
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/444</link>
        <guid isPermaLink="false">http://localhost/ticket/444</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#445: Add dumps to DGU SLA</title>
                  <description>&lt;p&gt;
Thinking about putting something like this:
&lt;/p&gt;
&lt;p&gt;
Dumps Interface (this is NOT going in the API, it is another interface of the service):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;resources:
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Daily Dump Folder
Daily Dump File
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;locations:
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
/dump/hmg.ckan.net-YYYY-MM-DD.[json|csv].zip
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;data format:
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Dump Folder is a HTML document containing a table of links to Dump Files
Dump File has either JSON or CSV format.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;status codes (200, 404, 500)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/445</link>
        <guid isPermaLink="false">http://localhost/ticket/445</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#446: Server configuration query (?)</title>
                  <description>&lt;ul&gt;&lt;li&gt;Ensure use case is in design - "an admin writes to the CKAN API" (and see JB notes on paper)
&lt;/li&gt;&lt;li&gt;Communicate how this is planned to be achieved in design to JF
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/446</link>
        <guid isPermaLink="false">http://localhost/ticket/446</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#447: Presentation on Package edit form (labels IE7, horiz alignment in chrome)</title>
                  <description>&lt;p&gt;
Follow up with NS and RP.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/447</link>
        <guid isPermaLink="false">http://localhost/ticket/447</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#448: [Assist with] editing packages through Drupal</title>
                  <description></description>
        <link>http://localhost/ticket/448</link>
        <guid isPermaLink="false">http://localhost/ticket/448</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#449: Start email thread about RDF in CKAN with JF and WW</title>
                  <description></description>
        <link>http://localhost/ticket/449</link>
        <guid isPermaLink="false">http://localhost/ticket/449</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#450: Assist with proxying of static media for forms</title>
                  <description>&lt;p&gt;
John did this a while ago.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/450</link>
        <guid isPermaLink="false">http://localhost/ticket/450</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#451: Show/Allow only departments associated with user</title>
                  <description>&lt;p&gt;
Use drupal api
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/451</link>
        <guid isPermaLink="false">http://localhost/ticket/451</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#452: Assist with using package update error form</title>
                  <description></description>
        <link>http://localhost/ticket/452</link>
        <guid isPermaLink="false">http://localhost/ticket/452</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#453: Analysis and planning for UKLII</title>
                  <description></description>
        <link>http://localhost/ticket/453</link>
        <guid isPermaLink="false">http://localhost/ticket/453</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#454: Import ONS data via API</title>
                  <description></description>
        <link>http://localhost/ticket/454</link>
        <guid isPermaLink="false">http://localhost/ticket/454</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#455: SOLR - suggest 1 pager about how system would work</title>
                  <description>&lt;p&gt;
Either CKAN writes to SOLR and Drupal reads from SOLR, or CKAN writes to SOLR and Drupal reads SOLR via CKAN API (so search resource locations are unaffected).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/455</link>
        <guid isPermaLink="false">http://localhost/ticket/455</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#456: Daily dump</title>
                  <description></description>
        <link>http://localhost/ticket/456</link>
        <guid isPermaLink="false">http://localhost/ticket/456</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#457: Dump database on a daily basis</title>
                  <description></description>
        <link>http://localhost/ticket/457</link>
        <guid isPermaLink="false">http://localhost/ticket/457</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#458: Request to DGU for access to database machine</title>
                  <description></description>
        <link>http://localhost/ticket/458</link>
        <guid isPermaLink="false">http://localhost/ticket/458</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#459: Versions on branches are broken</title>
                  <description></description>
        <link>http://localhost/ticket/459</link>
        <guid isPermaLink="false">http://localhost/ticket/459</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#460: State field changed by non-sysadmin</title>
                  <description>&lt;p&gt;
This package:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://ckan.net/package/dbtune-audioscrobbler"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/dbtune-audioscrobbler&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
was:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;created by Richard (logged-in)
&lt;/li&gt;&lt;li&gt;edited by Richard (logged-in)
&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
(According to the logs, at this point the state was changed from 'active' to 'deleted') -- RP was it set to 'deleted' or just &lt;em&gt;?
&lt;/p&gt;
&lt;ol start="3"&gt;&lt;li&gt;pudo changed the state back to active
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Similarly an incident with bibbase package where field set to &lt;em&gt; (see &lt;a class="ext-link" href="http://ckan.net/revision/diff/bibbase?diff=702bb0a3-03b7-49ac-87ad-e489c414962f&amp;amp;oldid=5447842d-b6ed-41d9-9cfd-8bb73b85c409"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/revision/diff/bibbase?diff=702bb0a3-03b7-49ac-87ad-e489c414962f&amp;amp;oldid=5447842d-b6ed-41d9-9cfd-8bb73b85c409&lt;/a&gt;)
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
Need to investigate how this got changed, fix if necessary and report back to Richard. Note that package 'admins' as well as sysadmins can change the state of a package (though note that bibbase did not appear to have an owner).
&lt;/p&gt;
&lt;p&gt;
Suggested solution (for setting to &lt;em&gt;):
&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Ensure in ckan/forms.py that there is a validator for state field that ensures only set to valid values.
&lt;/li&gt;&lt;li&gt;Check that we do not allow state to be changed in the api except by package owner or sysadmin
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/460</link>
        <guid isPermaLink="false">http://localhost/ticket/460</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#461: Change ONS data importing to work via API</title>
                  <description>&lt;ul&gt;&lt;li&gt;Move script out to ckandgu repo
&lt;/li&gt;&lt;li&gt;Change script to convert xml into package dicts
&lt;/li&gt;&lt;li&gt;Test (against test.ckan.net, hmg.test.ckan.net)
&lt;/li&gt;&lt;li&gt;Deploy
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/461</link>
        <guid isPermaLink="false">http://localhost/ticket/461</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#462: Visitor downloads a daily database dump</title>
                  <description></description>
        <link>http://localhost/ticket/462</link>
        <guid isPermaLink="false">http://localhost/ticket/462</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#463: package diff exception</title>
                  <description>&lt;p&gt;
Investigate exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;
URL: http://ckan.net/revision/diff/dbtune-audioscrobbler?diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c
Module weberror.errormiddleware:162 in __call__
&amp;lt;&amp;lt;              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
                   return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
&amp;gt;&amp;gt;  app_iter = self.application(environ, sr_checker)
Module beaker.middleware:73 in __call__
&amp;lt;&amp;lt;                                                     self.cache_manager)
               environ[self.environ_key] = self.cache_manager
               return self.app(environ, start_response)
&amp;gt;&amp;gt;  return self.app(environ, start_response)
Module beaker.middleware:152 in __call__
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)
           def _get_session(self):
&amp;gt;&amp;gt;  return self.wrap_app(environ, session_start_response)
Module routes.middleware:130 in __call__
&amp;lt;&amp;lt;                  environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1]
               response = self.app(environ, start_response)
               # Wrapped in try as in rare cases the attribute will be gone already
&amp;gt;&amp;gt;  response = self.app(environ, start_response)
Module pylons.wsgiapp:125 in __call__
&amp;lt;&amp;lt;
               controller = self.resolve(environ, start_response)
               response = self.dispatch(controller, environ, start_response)
               if 'paste.testing_variables' in environ and hasattr(response,
&amp;gt;&amp;gt;  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:73 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:221 in __call__
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
               response = self._dispatch_call()
               if not start_response_called:
                   self.start_response = start_response
&amp;gt;&amp;gt;  response = self._dispatch_call()
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ['pylons.action_method'] = func
                   response = self._inspect_call(func)
               else:
                   if log_debug:
&amp;gt;&amp;gt;  response = self._inspect_call(func)
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.__name__, args)
               try:
                   result = self._perform_call(func, args)
               except HTTPException, httpe:
                   if log_debug:
&amp;gt;&amp;gt;  result = self._perform_call(func, args)
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ckan.controllers.revision:119 in diff
&amp;lt;&amp;lt;          c.revision_to = model.Session.query(model.Revision).get(
                   request.params.getone('diff'))
               diff = pkg.diff(c.revision_to, c.revision_from)
               c.diff = diff.items()
               c.diff.sort()
&amp;gt;&amp;gt;  diff = pkg.diff(c.revision_to, c.revision_from)
Module ckan.model.package:340 in diff
&amp;lt;&amp;lt;                              display_id = to_obj_rev.tag.name
                               elif obj_class.__name__ == 'PackageExtra':
                                   display_id = to_obj_rev.key
                               else:
                                   display_id = related_obj_id[:4]
&amp;gt;&amp;gt;  display_id = to_obj_rev.key
AttributeError: 'NoneType' object has no attribute 'key'
CGI Variables
AUTH_TYPE	'cookie'
DOCUMENT_ROOT	'/htdocs'
GATEWAY_INTERFACE	'CGI/1.1'
HTTP_ACCEPT	'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'
HTTP_ACCEPT_CHARSET	'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
HTTP_ACCEPT_ENCODING	'gzip'
HTTP_ACCEPT_LANGUAGE	'en-US,en;q=0.8'
HTTP_CACHE_CONTROL	'max-age=0'
HTTP_COOKIE	'__utmz=27730403.1281000628.1.6.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=ckan; auth_tkt="e919c7bb40f890a0184ed7be95465e1a4c6d130bhttp://pudo.org/!"; auth_tkt="e919c7bb40f890a0184ed7be95465e1a4c6d130bhttp://pudo.org/!"; __utma=27730403.1381387877.1281962773.1282248244.1282250173.11; __utmc=27730403; __utmb=27730403.6.10.1282250173'
HTTP_HOST	'ckan.net'
HTTP_REFERER	'http://ckan.net/package/history/dbtune-audioscrobbler'
HTTP_USER_AGENT	'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/6.0.490.1 Safari/534.6'
PATH	'/usr/local/bin:/usr/bin:/bin'
PATH_INFO	'/revision/diff/dbtune-audioscrobbler'
PATH_TRANSLATED	'/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py/revision/diff/dbtune-audioscrobbler'
QUERY_STRING	'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c'
REMOTE_ADDR	'92.226.62.168'
REMOTE_PORT	'55102'
REMOTE_USER	'http://pudo.org/'
REMOTE_USER_TOKENS	['']
REQUEST_METHOD	'GET'
REQUEST_URI	'/revision/diff/dbtune-audioscrobbler?diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c'
SCRIPT_FILENAME	'/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py'
SCRIPT_URI	'http://ckan.net/revision/diff/dbtune-audioscrobbler'
SCRIPT_URL	'/revision/diff/dbtune-audioscrobbler'
SERVER_ADDR	'10.226.226.118'
SERVER_ADMIN	'[no address given]'
SERVER_NAME	'ckan.net'
SERVER_PORT	'80'
SERVER_PROTOCOL	'HTTP/1.1'
SERVER_SIGNATURE	'&amp;lt;address&amp;gt;Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2 Server at ckan.net Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE	'Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2'
WSGI Variables
application	&amp;lt;beaker.middleware.CacheMiddleware object at 0xbb528cc&amp;gt;
beaker.cache	&amp;lt;beaker.cache.CacheManager object at 0xbb528ec&amp;gt;
beaker.get_session	&amp;lt;bound method SessionMiddleware._get_session of &amp;lt;beaker.middleware.SessionMiddleware object at 0xbb5286c&amp;gt;&amp;gt;
beaker.session	{'_accessed_time': 1282252047.603267, '_creation_time': 1282252047.603267}
mod_wsgi.application_group	'ckan.net|'
mod_wsgi.callable_object	'application'
mod_wsgi.listener_host	''
mod_wsgi.listener_port	'80'
mod_wsgi.process_group	''
mod_wsgi.reload_mechanism	'0'
mod_wsgi.script_reloading	'1'
mod_wsgi.version	(2, 5)
paste.cookies	(&amp;lt;SimpleCookie: __utma='27730403.1381387877.1281962773.1282248244.1282250173.11' __utmb='27730403.6.10.1282250173' __utmc='27730403' __utmz='27730403.1281000628.1.6.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=ckan' auth_tkt='e919c7bb40f890a0184ed7be95465e1a4c6d130bhttp://pudo.org/!'&amp;gt;, '__utmz=27730403.1281000628.1.6.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=ckan; auth_tkt="e919c7bb40f890a0184ed7be95465e1a4c6d130bhttp://pudo.org/!"; auth_tkt="e919c7bb40f890a0184ed7be95465e1a4c6d130bhttp://pudo.org/!"; __utma=27730403.1381387877.1281962773.1282248244.1282250173.11; __utmc=27730403; __utmb=27730403.6.10.1282250173')
paste.parsed_querystring	([('diff', '66a47b9e-232a-4838-8674-66fa1a5c76e1'), ('oldid', 'a99c98be-767a-4e49-9025-2472b2d18b9c')], 'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c')
paste.registry	&amp;lt;paste.registry.Registry object at 0xf702aec&amp;gt;
paste.throw_errors	True
pylons.action_method	&amp;lt;bound method RevisionController.diff of &amp;lt;ckan.controllers.revision.RevisionController object at 0xf6eaf0c&amp;gt;&amp;gt;
pylons.controller	&amp;lt;ckan.controllers.revision.RevisionController object at 0xf6eaf0c&amp;gt;
pylons.environ_config	{'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons	&amp;lt;pylons.util.PylonsContext object at 0xf6eaa8c&amp;gt;
pylons.routes_dict	{'action': u'diff', 'controller': u'revision', 'id': u'dbtune-audioscrobbler'}
repoze.who.identity	&amp;lt;repoze.who identity (hidden, dict-like) at 280815340&amp;gt;
repoze.who.logger	&amp;lt;logging.Logger instance at 0xbcdfccc&amp;gt;
repoze.who.plugins	{'openid': &amp;lt;OpenIdIdentificationPlugin 196612236&amp;gt;, 'auth_tkt': &amp;lt;AuthTktCookiePlugin 198048140&amp;gt;}
routes.route	&amp;lt;routes.route.Route object at 0xbbc44cc&amp;gt;
routes.url	&amp;lt;routes.util.URLGenerator object at 0xf5e55ec&amp;gt;
webob._parsed_query_vars	(GET([('diff', '66a47b9e-232a-4838-8674-66fa1a5c76e1'), ('oldid', 'a99c98be-767a-4e49-9025-2472b2d18b9c')]), 'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c')
webob.adhoc_attrs	{'language': 'en-us'}
wsgi process	'Multi process AND threads (?)'
wsgi.file_wrapper	&amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0xfe0b0b0&amp;gt;
wsgiorg.routing_args	(&amp;lt;routes.util.URLGenerator object at 0xf5e55ec&amp;gt;, {'action': u'diff', 'controller': u'revision', 'id': u'dbtune-audioscrobbler'})
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/463</link>
        <guid isPermaLink="false">http://localhost/ticket/463</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#464: Request dgu db server access</title>
                  <description></description>
        <link>http://localhost/ticket/464</link>
        <guid isPermaLink="false">http://localhost/ticket/464</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#465: Require API key for all API requests.</title>
                  <description></description>
        <link>http://localhost/ticket/465</link>
        <guid isPermaLink="false">http://localhost/ticket/465</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#466: Name of HTTP header for API key shall be configurable</title>
                  <description></description>
        <link>http://localhost/ticket/466</link>
        <guid isPermaLink="false">http://localhost/ticket/466</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#467: Admin configures CKAN to expect API key in named HTTP header</title>
                  <description></description>
        <link>http://localhost/ticket/467</link>
        <guid isPermaLink="false">http://localhost/ticket/467</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#468: Default config file has commented out configuration variable</title>
                  <description></description>
        <link>http://localhost/ticket/468</link>
        <guid isPermaLink="false">http://localhost/ticket/468</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#469: Unit test to check API key in correctly named HTTP header is accepted by server</title>
                  <description></description>
        <link>http://localhost/ticket/469</link>
        <guid isPermaLink="false">http://localhost/ticket/469</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#470: Adjust API key's HTTP header name on DGU "live" and "test"</title>
                  <description></description>
        <link>http://localhost/ticket/470</link>
        <guid isPermaLink="false">http://localhost/ticket/470</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#471: API user sends API key in correctly named header</title>
                  <description></description>
        <link>http://localhost/ticket/471</link>
        <guid isPermaLink="false">http://localhost/ticket/471</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#472: API user sends API key in incorrectly named header</title>
                  <description></description>
        <link>http://localhost/ticket/472</link>
        <guid isPermaLink="false">http://localhost/ticket/472</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#473: API user discovers correct header for sending API key</title>
                  <description></description>
        <link>http://localhost/ticket/473</link>
        <guid isPermaLink="false">http://localhost/ticket/473</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#474: Questions related to fi.ckan.net</title>
                  <description>&lt;p&gt;
Several questions to answer (and see file in email). To respond to the Finnish team and copy all Q&amp;amp;A to the ckan-discuss list.
&lt;/p&gt;
&lt;p&gt;
1 ) I have played with two different datasets to get the metadata from those imported to CKAN. The other dataset is in PCAXIS format and other one is in Excel format. Please find the scripts + sample files attached in a zip file that contains instructions too to run the scripts. I looked at import scripts written in object oriented manner and getdata samples in CKAN but it was easier for me too write these from scratch (copied the unicrap function from CKAN samples). If I run the PCAXIS import script I get Unicode decode error (see errors file). When I use the unicrap function then the error does not appear in logs. I assume this is some Python environment setting issue. Of course I would like to run the
script without unicrap function to get scandic letter imported correctly to ckan(and displayed in WUI). In Excel case there is no scandic letter issue which is kind of strange but this probably relates how the Excel library handles encoding.
&lt;/p&gt;
&lt;p&gt;
To be honest the whole unicode/encoding/decoding issue has been quite difficult to deal with and debug. I hope I would get proper environment configuration to handle scandic letters.
&lt;/p&gt;
&lt;p&gt;
2 ) It seem in CKAN by default the localisation file contains 462 strings. The transifex link Rufus sent contains 400 strings. Is transifex the one we should use as localisation file ? Where are the rest 62 strings then fetched from or are they needed at all. I have found that as I have been using the .po file coming in CKAN source (which has API translations too) this also causes similar unicode problems when an error in API occurs (the API error messages containing scandic letters provide the similar &lt;a class="missing wiki"&gt;UnicodeDecoding?&lt;/a&gt; errors as mentioned above). So, it seems the unicode issues appear in various cases. Maybe a proper environment settings will be able to prevent also these problems... If transifex is the one to use I can prepare it and maybe then you could upload it to fi.ckan.net as there will be also other people checking the translations. To run the test and see the API translation errors especially in pcaxis case I would recommend to install attached FI translations to your environment and include lang = fi configuration. It looks like the API errors does not come when running default lang = en.
&lt;/p&gt;
&lt;p&gt;
3 ) Is it possible to change the license selection/options available in license field drop-down ? Where are these located and can these be modified locally ?
&lt;/p&gt;
&lt;p&gt;
4) It looks like the values stored in package extra fields are not searchable. Is this intentional ? It looks more or less that all other fields can be searched using free-text search in CKAN.
&lt;/p&gt;
&lt;p&gt;
5) How package dependencies are defined and managed ? For instance we want to import some packages in a manner that the other package is a child package of another. Does API support this and/or is this possible to do in WUI ?
&lt;/p&gt;
&lt;p&gt;
Best Regards,
Henri
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/474</link>
        <guid isPermaLink="false">http://localhost/ticket/474</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#475: Unit test to check API key in incorrectly named HTTP header is not accepted by server</title>
                  <description></description>
        <link>http://localhost/ticket/475</link>
        <guid isPermaLink="false">http://localhost/ticket/475</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#476: Daily database dumps shall be discoverable and downloadable</title>
                  <description></description>
        <link>http://localhost/ticket/476</link>
        <guid isPermaLink="false">http://localhost/ticket/476</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#477: Discover location of the daily database dumps</title>
                  <description></description>
        <link>http://localhost/ticket/477</link>
        <guid isPermaLink="false">http://localhost/ticket/477</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#478: Unit test for "interface resource" in API</title>
                  <description>&lt;p&gt;
We don't want /api to be an HTML page, but rather provide information about the API in a JSON structure.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/478</link>
        <guid isPermaLink="false">http://localhost/ticket/478</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#479: Suggest DGU presents database dumps through front end</title>
                  <description></description>
        <link>http://localhost/ticket/479</link>
        <guid isPermaLink="false">http://localhost/ticket/479</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#480: Catalogue service shall conform to specification</title>
                  <description>&lt;p&gt;
Common requirements for running CKAN behind a (e.g Wordpress or Drupal) front-end:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Unrestricted total read-only access to catalogue API for general public (e.g. voluntary organisation).
&lt;ul&gt;&lt;li&gt;monitored by API key
&lt;/li&gt;&lt;li&gt;not monitored by API key
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Restricted total read-write access to catalogue API for authorized clients (e.g. front-end system, bulk upload clients).
&lt;ul&gt;&lt;li&gt;restricted by CKAN access controller
&lt;/li&gt;&lt;li&gt;restricted by HTTP Auth
&lt;/li&gt;&lt;li&gt;restricted by IP address
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Restricted total read-write access to catalogue Web UI for authorized users (e.g. site admins).
&lt;ul&gt;&lt;li&gt;restricted by CKAN access controller
&lt;/li&gt;&lt;li&gt;restricted by HTTP Auth
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Restricted partial read-write access to catalogue Web UI for authorized users (e.g. group admins).
&lt;ul&gt;&lt;li&gt;restricted by CKAN access controller
&lt;/li&gt;&lt;li&gt;restricted by HTTP Auth
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&lt;a style="padding:0; border:none" href="http://localhost/attachment/ticket/480/fig128130.png"&gt;&lt;img src="http://localhost/raw-attachment/ticket/480/fig128130.png" alt="CKAN as a catalogue service" title="CKAN as a catalogue service" /&gt;&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/480</link>
        <guid isPermaLink="false">http://localhost/ticket/480</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#481: Unrestricted total read-only access to catalogue API</title>
                  <description></description>
        <link>http://localhost/ticket/481</link>
        <guid isPermaLink="false">http://localhost/ticket/481</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#482: API Rate Limiting</title>
                  <description></description>
        <link>http://localhost/ticket/482</link>
        <guid isPermaLink="false">http://localhost/ticket/482</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#483: Restricted total read-write access to catalogue Web UI</title>
                  <description></description>
        <link>http://localhost/ticket/483</link>
        <guid isPermaLink="false">http://localhost/ticket/483</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#484: Restricted partial read-write access to catalogue Web UI</title>
                  <description></description>
        <link>http://localhost/ticket/484</link>
        <guid isPermaLink="false">http://localhost/ticket/484</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#485: Performance beats QoS criteria</title>
                  <description></description>
        <link>http://localhost/ticket/485</link>
        <guid isPermaLink="false">http://localhost/ticket/485</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#486: Catalogue service shall notify and query SOLR service</title>
                  <description></description>
        <link>http://localhost/ticket/486</link>
        <guid isPermaLink="false">http://localhost/ticket/486</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#487: Notify SOLR service of model events</title>
                  <description></description>
        <link>http://localhost/ticket/487</link>
        <guid isPermaLink="false">http://localhost/ticket/487</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#488: Catalogue service shall notify RDF service</title>
                  <description></description>
        <link>http://localhost/ticket/488</link>
        <guid isPermaLink="false">http://localhost/ticket/488</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#489: Notify RDF service of model events</title>
                  <description></description>
        <link>http://localhost/ticket/489</link>
        <guid isPermaLink="false">http://localhost/ticket/489</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#490: The system shall support registering a harvest source via the CKAN API</title>
                  <description></description>
        <link>http://localhost/ticket/490</link>
        <guid isPermaLink="false">http://localhost/ticket/490</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#491: Get form for creating harvest source entity</title>
                  <description></description>
        <link>http://localhost/ticket/491</link>
        <guid isPermaLink="false">http://localhost/ticket/491</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#492: Submit harvest source create form response to the API</title>
                  <description></description>
        <link>http://localhost/ticket/492</link>
        <guid isPermaLink="false">http://localhost/ticket/492</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#493: Get harvest source entity</title>
                  <description></description>
        <link>http://localhost/ticket/493</link>
        <guid isPermaLink="false">http://localhost/ticket/493</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#494: Get form for updating remote metadata entity</title>
                  <description></description>
        <link>http://localhost/ticket/494</link>
        <guid isPermaLink="false">http://localhost/ticket/494</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#495: Put form for updating remote metadata entity</title>
                  <description></description>
        <link>http://localhost/ticket/495</link>
        <guid isPermaLink="false">http://localhost/ticket/495</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#496: Provide a mechanism for exporting GEMINII metadata via a CSW interface</title>
                  <description></description>
        <link>http://localhost/ticket/496</link>
        <guid isPermaLink="false">http://localhost/ticket/496</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#497: Respond to CSW "GetRecords" request</title>
                  <description></description>
        <link>http://localhost/ticket/497</link>
        <guid isPermaLink="false">http://localhost/ticket/497</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#498: Search packages within location "bounding box"</title>
                  <description></description>
        <link>http://localhost/ticket/498</link>
        <guid isPermaLink="false">http://localhost/ticket/498</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#499: Registration and management of UKLII related code lists, controlled vocabularies and other forms of reference/static data</title>
                  <description></description>
        <link>http://localhost/ticket/499</link>
        <guid isPermaLink="false">http://localhost/ticket/499</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#500: Exception from diff</title>
                  <description>&lt;p&gt;
Investigate exception occured occasionally in last couple of days on ckan.net:
&lt;/p&gt;
&lt;pre class="wiki"&gt;WebApp Error: &amp;lt;type 'exceptions.AttributeError'&amp;gt;: 'NoneType' object has no attribute 'key'
URL: http://ckan.net/revision/diff/dbtune-audioscrobbler?diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c
Module weberror.errormiddleware:162 in __call__
&amp;lt;&amp;lt;              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
                   return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
&amp;gt;&amp;gt;  app_iter = self.application(environ, sr_checker)
Module beaker.middleware:73 in __call__
&amp;lt;&amp;lt;                                                     self.cache_manager)
               environ[self.environ_key] = self.cache_manager
               return self.app(environ, start_response)
&amp;gt;&amp;gt;  return self.app(environ, start_response)
Module beaker.middleware:152 in __call__
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)
           def _get_session(self):
&amp;gt;&amp;gt;  return self.wrap_app(environ, session_start_response)
Module routes.middleware:130 in __call__
&amp;lt;&amp;lt;                  environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1]
               response = self.app(environ, start_response)
               # Wrapped in try as in rare cases the attribute will be gone already
&amp;gt;&amp;gt;  response = self.app(environ, start_response)
Module pylons.wsgiapp:125 in __call__
&amp;lt;&amp;lt;
               controller = self.resolve(environ, start_response)
               response = self.dispatch(controller, environ, start_response)
               if 'paste.testing_variables' in environ and hasattr(response,
&amp;gt;&amp;gt;  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:73 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:221 in __call__
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
               response = self._dispatch_call()
               if not start_response_called:
                   self.start_response = start_response
&amp;gt;&amp;gt;  response = self._dispatch_call()
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ['pylons.action_method'] = func
                   response = self._inspect_call(func)
               else:
                   if log_debug:
&amp;gt;&amp;gt;  response = self._inspect_call(func)
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.__name__, args)
               try:
                   result = self._perform_call(func, args)
               except HTTPException, httpe:
                   if log_debug:
&amp;gt;&amp;gt;  result = self._perform_call(func, args)
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ckan.controllers.revision:119 in diff
&amp;lt;&amp;lt;          c.revision_to = model.Session.query(model.Revision).get(
                   request.params.getone('diff'))
               diff = pkg.diff(c.revision_to, c.revision_from)
               c.diff = diff.items()
               c.diff.sort()
&amp;gt;&amp;gt;  diff = pkg.diff(c.revision_to, c.revision_from)
Module ckan.model.package:340 in diff
&amp;lt;&amp;lt;                              display_id = to_obj_rev.tag.name
                               elif obj_class.__name__ == 'PackageExtra':
                                   display_id = to_obj_rev.key
                               else:
                                   display_id = related_obj_id[:4]
&amp;gt;&amp;gt;  display_id = to_obj_rev.key
AttributeError: 'NoneType' object has no attribute 'key'
CGI Variables
DOCUMENT_ROOT	'/htdocs'
GATEWAY_INTERFACE	'CGI/1.1'
HTTP_ACCEPT	'*/*'
HTTP_ACCEPT_ENCODING	'gzip'
HTTP_ACCEPT_LANGUAGE	'zh-cn,zh-tw'
HTTP_CONNECTION	'close'
HTTP_HOST	'ckan.net'
HTTP_USER_AGENT	'Baiduspider+(+http://www.baidu.com/search/spider.htm)'
PATH	'/usr/local/bin:/usr/bin:/bin'
PATH_INFO	'/revision/diff/dbtune-audioscrobbler'
PATH_TRANSLATED	'/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py/revision/diff/dbtune-audioscrobbler'
QUERY_STRING	'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c'
REMOTE_ADDR	'123.125.66.32'
REMOTE_PORT	'63767'
REQUEST_METHOD	'GET'
REQUEST_URI	'/revision/diff/dbtune-audioscrobbler?diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c'
SCRIPT_FILENAME	'/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py'
SCRIPT_URI	'http://ckan.net/revision/diff/dbtune-audioscrobbler'
SCRIPT_URL	'/revision/diff/dbtune-audioscrobbler'
SERVER_ADDR	'10.226.226.118'
SERVER_ADMIN	'[no address given]'
SERVER_NAME	'ckan.net'
SERVER_PORT	'80'
SERVER_PROTOCOL	'HTTP/1.1'
SERVER_SIGNATURE	'&amp;lt;address&amp;gt;Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2 Server at ckan.net Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE	'Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2'
WSGI Variables
application	&amp;lt;beaker.middleware.CacheMiddleware object at 0x9f603ec&amp;gt;
beaker.cache	&amp;lt;beaker.cache.CacheManager object at 0x9f6042c&amp;gt;
beaker.get_session	&amp;lt;bound method SessionMiddleware._get_session of &amp;lt;beaker.middleware.SessionMiddleware object at 0x9f602ac&amp;gt;&amp;gt;
beaker.session	{'_accessed_time': 1282385101.4243281, '_creation_time': 1282385101.4243281}
mod_wsgi.application_group	'ckan.net|'
mod_wsgi.callable_object	'application'
mod_wsgi.listener_host	''
mod_wsgi.listener_port	'80'
mod_wsgi.process_group	''
mod_wsgi.reload_mechanism	'0'
mod_wsgi.script_reloading	'1'
mod_wsgi.version	(2, 5)
paste.cookies	(&amp;lt;SimpleCookie: &amp;gt;, '')
paste.parsed_querystring	([('diff', '66a47b9e-232a-4838-8674-66fa1a5c76e1'), ('oldid', 'a99c98be-767a-4e49-9025-2472b2d18b9c')], 'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c')
paste.registry	&amp;lt;paste.registry.Registry object at 0x104552ec&amp;gt;
paste.throw_errors	True
pylons.action_method	&amp;lt;bound method RevisionController.diff of &amp;lt;ckan.controllers.revision.RevisionController object at 0xfb17aec&amp;gt;&amp;gt;
pylons.controller	&amp;lt;ckan.controllers.revision.RevisionController object at 0xfb17aec&amp;gt;
pylons.environ_config	{'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons	&amp;lt;pylons.util.PylonsContext object at 0x10286d4c&amp;gt;
pylons.routes_dict	{'action': u'diff', 'controller': u'revision', 'id': u'dbtune-audioscrobbler'}
repoze.who.logger	&amp;lt;logging.Logger instance at 0xa16e0cc&amp;gt;
repoze.who.plugins	{'openid': &amp;lt;OpenIdIdentificationPlugin 167584972&amp;gt;, 'auth_tkt': &amp;lt;AuthTktCookiePlugin 169253516&amp;gt;}
routes.route	&amp;lt;routes.route.Route object at 0x9f3690c&amp;gt;
routes.url	&amp;lt;routes.util.URLGenerator object at 0xfd8d7cc&amp;gt;
webob._parsed_query_vars	(GET([('diff', '66a47b9e-232a-4838-8674-66fa1a5c76e1'), ('oldid', 'a99c98be-767a-4e49-9025-2472b2d18b9c')]), 'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c')
webob.adhoc_attrs	{'language': 'en-us'}
wsgi process	'Multi process AND threads (?)'
wsgi.file_wrapper	&amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x103a5bf0&amp;gt;
wsgiorg.routing_args	(&amp;lt;routes.util.URLGenerator object at 0xfd8d7cc&amp;gt;, {'action': u'diff', 'controller': u'revision', 'id': u'dbtune-audioscrobbler'})
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/500</link>
        <guid isPermaLink="false">http://localhost/ticket/500</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#501: Read-only maintenance mode</title>
                  <description>&lt;p&gt;
CKAN should have a read-only maintenance mode with a nice little banner on all pages, appropriate REST messages etc. Bonus points if this is triggered via an environment variable and thus can be triggered by the surrounding apache.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/501</link>
        <guid isPermaLink="false">http://localhost/ticket/501</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#502: Data4nr uploading script shall remove deleted packages</title>
                  <description>&lt;p&gt;
Occasionally data4nr removes a data package from its registry. When the latest full data4nr data is imported, these removed packages should be found and removed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/502</link>
        <guid isPermaLink="false">http://localhost/ticket/502</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#503: Provide exemplar package relationships for some packages</title>
                  <description>&lt;ol&gt;&lt;li&gt;Find some relationships.
&lt;/li&gt;&lt;li&gt;Add them via API
&lt;/li&gt;&lt;li&gt;Notify DGU of completion and point to exemplars
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/503</link>
        <guid isPermaLink="false">http://localhost/ticket/503</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#504: The DGU fieldset shall conform to v3 of DGU metadata specification</title>
                  <description>&lt;p&gt;
No need for requirement - closing in favour of &lt;a class="closed ticket" href="http://localhost/ticket/505" title="enhancement: DGU fieldset supports v3 of DGU metadata specification (closed: fixed)"&gt;#505&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/504</link>
        <guid isPermaLink="false">http://localhost/ticket/504</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#505: DGU fieldset supports v3 of DGU metadata specification</title>
                  <description></description>
        <link>http://localhost/ticket/505</link>
        <guid isPermaLink="false">http://localhost/ticket/505</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#506: Plan transition to DGU metadata-fields v3</title>
                  <description></description>
        <link>http://localhost/ticket/506</link>
        <guid isPermaLink="false">http://localhost/ticket/506</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#507: Upgrade a CKAN service</title>
                  <description></description>
        <link>http://localhost/ticket/507</link>
        <guid isPermaLink="false">http://localhost/ticket/507</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#508: Create branch ultrastable</title>
                  <description>&lt;ul&gt;&lt;li&gt;Create a branch named ultrastable that represents latest version of 1.0 &lt;em&gt;as found on dgu&lt;/em&gt;
&lt;ul&gt;&lt;li&gt;Going forward ultrastable will act as stable - 1 (and either ultrastable or stable will be on the rock-solid production systems such as dgu)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Do &lt;strong&gt;not&lt;/strong&gt; deprecate the stable or metastable branch for the present
&lt;/li&gt;&lt;li&gt;Ask for recommendations on mailing list about best practice for branching (e.g. versioned based versus a simple HEAD versus stable) and how this affects standard operations such as applying bugfixes.
&lt;ul&gt;&lt;li&gt;For useful discussion of how to do backporting and applying bugfix patches see: &lt;a class="ext-link" href="http://www.python.org/dev/peps/pep-0374/#backport"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.python.org/dev/peps/pep-0374/#backport&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;NB: in general do &lt;strong&gt;not&lt;/strong&gt; always have to apply in stable/ultrastable and merge upwards for bugfixes -- can use transplant extension as well.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/508</link>
        <guid isPermaLink="false">http://localhost/ticket/508</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#509: ONS data imported daily</title>
                  <description></description>
        <link>http://localhost/ticket/509</link>
        <guid isPermaLink="false">http://localhost/ticket/509</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#510: Setup cron for ons import</title>
                  <description></description>
        <link>http://localhost/ticket/510</link>
        <guid isPermaLink="false">http://localhost/ticket/510</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#511: Better warnings and errors when using API</title>
                  <description></description>
        <link>http://localhost/ticket/511</link>
        <guid isPermaLink="false">http://localhost/ticket/511</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#512: User creates package via API with incorrect core fields specified</title>
                  <description></description>
        <link>http://localhost/ticket/512</link>
        <guid isPermaLink="false">http://localhost/ticket/512</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#513: Creating a package with API should warn if there are incorrect fields</title>
                  <description>&lt;p&gt;
When you create a package using the API, you might get a core field name wrong e.g. 'title' mispelt as 'titel' or 'groups' (which can't be specified in package creation). Currently that field will be ignored by the API. It should warn or give an error, rather than give 200 OK.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/513</link>
        <guid isPermaLink="false">http://localhost/ticket/513</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#514: Inconsistent use of 'location' header in API</title>
                  <description>&lt;p&gt;
When you create a package then the 'location' header gets set. This doesn't happen for any other domain objects. I think this should be consistent - either none or all.
&lt;/p&gt;
&lt;p&gt;
I've removed the info about the header in the docs in the meantime.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/514</link>
        <guid isPermaLink="false">http://localhost/ticket/514</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#515: Inconsistent use of 'location' header in API</title>
                  <description>&lt;p&gt;
When you create a package then the 'location' header gets set. This doesn't happen for any other domain objects. I think this should be consistent - either none or all.
&lt;/p&gt;
&lt;p&gt;
I've removed the info about the header in the docs in the meantime.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/515</link>
        <guid isPermaLink="false">http://localhost/ticket/515</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#516: Double-escaped text visible - revision page</title>
                  <description>&lt;p&gt;
At: &lt;a class="ext-link" href="http://ckan.net/revision"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/revision&lt;/a&gt;
you can see:
"Next &amp;amp;raquo;" on pager
This doesn't seem to be a problem with earlier (1.0.1) version.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/516</link>
        <guid isPermaLink="false">http://localhost/ticket/516</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#517: Standard domain model for entries</title>
                  <description>&lt;p&gt;
cf. Tariqs mail
&lt;/p&gt;
&lt;p&gt;
Updated version: &lt;a class="ext-link" href="https://spreadsheets5.google.com/ccc?key=tuOtQjD0Psoqr1pWTS8EXZQ&amp;amp;hl=en#gid=0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://spreadsheets5.google.com/ccc?key=tuOtQjD0Psoqr1pWTS8EXZQ&amp;amp;hl=en#gid=0&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="OriginalVersion"&gt;Original Version&lt;/h2&gt;
&lt;pre class="wiki"&gt;Publishing Entity:
Publishing Entity Type: (Donor, Recipient, Community Data..)
Donor
Country
Activity period:
Verification status: enumeration of statuses (checked, not checked etc)
Resource links: to the actual IATI record
Number of activities: ...
Date record updated:
Date data updated:
License: Need this field even if it may be a standard license
So naively mashing these together, we get something like:
Identifier
Title
Abstract
Donor
Country
Publisher
Publisher Type
Verification Status
Department
Contact
Contact e-mail
Licence
Resource format
Resource URL
Resource ID
Activity period
Number of activities
Date record updated
Date data updated
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/517</link>
        <guid isPermaLink="false">http://localhost/ticket/517</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#518: IATI WUI Editing</title>
                  <description>&lt;ul&gt;&lt;li&gt;Create custom form
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/518</link>
        <guid isPermaLink="false">http://localhost/ticket/518</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#519: IATI look and feel</title>
                  <description>&lt;ul&gt;&lt;li&gt;Use what is on iatiregistry.org at the moment.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/519</link>
        <guid isPermaLink="false">http://localhost/ticket/519</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#520: Browseable web interface onto the data</title>
                  <description>&lt;ul&gt;&lt;li&gt;e.g. find/browse by country and by publishing entity and by donor
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/520</link>
        <guid isPermaLink="false">http://localhost/ticket/520</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#521: IATI Customized search</title>
                  <description></description>
        <link>http://localhost/ticket/521</link>
        <guid isPermaLink="false">http://localhost/ticket/521</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#522: Create publishing entity account</title>
                  <description>&lt;ul&gt;&lt;li&gt;Publishing entity emails system editors
&lt;/li&gt;&lt;li&gt;System editor creates publishing entity account and emails publishing entity with details
&lt;/li&gt;&lt;li&gt;Priority: 4/5
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/522</link>
        <guid isPermaLink="false">http://localhost/ticket/522</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#523: Read/write APIs for users and publishing entities</title>
                  <description>&lt;p&gt;
Read/write APIs for users and publishing entities to access and register data
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Users have read access
&lt;/li&gt;&lt;li&gt;Publishing entities have both (though can only write to 'their' records)
&lt;/li&gt;&lt;li&gt;Priority: 4 for write (read access is 3)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/523</link>
        <guid isPermaLink="false">http://localhost/ticket/523</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#524: Limit registering data to authenticated users either via API or manually.</title>
                  <description>&lt;p&gt;
Limit registering data to authenticated users either via API or manually.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Edits may only be made by authenticated entities
&lt;/li&gt;&lt;li&gt;Priority: 5
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/524</link>
        <guid isPermaLink="false">http://localhost/ticket/524</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#525: Confirm and approve publishing entity account</title>
                  <description>&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;So some kind of confirmation or approval by someone more senior?
&lt;/li&gt;&lt;li&gt;Alternative: just have an account request.
&lt;/li&gt;&lt;li&gt;Priority: 3
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/525</link>
        <guid isPermaLink="false">http://localhost/ticket/525</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#526: Integrate validation tool into the registry</title>
                  <description>&lt;p&gt;
Assumes 8 is done:
&lt;/p&gt;
&lt;ol start="8"&gt;&lt;li&gt;Tool for  validation an IATI XML record (referenced by a URL) for compliance with the IATI specification
&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Outside of scope of registry
&lt;/li&gt;&lt;li&gt;Multiple validators with different levels of rigour
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/526</link>
        <guid isPermaLink="false">http://localhost/ticket/526</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#527: Create domain model and load sample data</title>
                  <description></description>
        <link>http://localhost/ticket/527</link>
        <guid isPermaLink="false">http://localhost/ticket/527</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#528: Setup demonstration instance at iati.ckan.net</title>
                  <description></description>
        <link>http://localhost/ticket/528</link>
        <guid isPermaLink="false">http://localhost/ticket/528</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#529: Obtain sample metadata</title>
                  <description></description>
        <link>http://localhost/ticket/529</link>
        <guid isPermaLink="false">http://localhost/ticket/529</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#530: Map IATI attributes to CKAN metadata schema</title>
                  <description>&lt;p&gt;
From lopad:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Publishing Entity (often/always? equal to the logged in user)
    * Domain logic: only can add entries for "yourself"
Donor
Country
Activity period: period to which this record relates
Verification status: enumeration of statuses (checked, not checked etc)
Resource links: to the actual IATI record
Number of activities: ...
Date record updated:
Date data updated:
License: Need this field even if it may be a standard license
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/530</link>
        <guid isPermaLink="false">http://localhost/ticket/530</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#531: Load sample IATI metadata</title>
                  <description>&lt;ul&gt;&lt;li&gt;Parse data
&lt;/li&gt;&lt;li&gt;Load via API
&lt;/li&gt;&lt;li&gt;Develop test for load via API (can be local or remote -- with paste webfixture may be easier)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/531</link>
        <guid isPermaLink="false">http://localhost/ticket/531</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#532: Just a test - please ignore</title>
                  <description></description>
        <link>http://localhost/ticket/532</link>
        <guid isPermaLink="false">http://localhost/ticket/532</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#533: The performance of CKAN shall scale</title>
                  <description>&lt;p&gt;
CKAN uses a database. We can put the database on another machine and then clone the CKAN machine. Then there are two machines calling the database and converting SQL results into HTTP responses.
&lt;/p&gt;
&lt;p&gt;
How many machines can you have before the database becomes the bottleneck? At that point, what QoS can be obtained with normal hardware?
&lt;/p&gt;
&lt;p&gt;
Afterwards, can CKAN be made to scale further than this with a little development? Can its Postgres database be mirrored in realtime? Or can we change SQL writes (create/updates) to write to many databases?
&lt;/p&gt;
&lt;p&gt;
Are there any other options for scaling the persistence mechanism?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/533</link>
        <guid isPermaLink="false">http://localhost/ticket/533</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#534: buildbot config - database machine moved</title>
                  <description>&lt;p&gt;
Configure buildbot to use postgres db which has been moved to eu5.okfn.org
&lt;/p&gt;
&lt;p&gt;
pudo said: Could you perhaps also comment on &lt;a class="ext-link" href="http://knowledgeforge.net/okfn/tasks/ticket/466"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/okfn/tasks/ticket/466&lt;/a&gt; with a hint on how to update this properly? I only edited /home/buildslave/okfn/full/build/buildandsmoke/buildandsmoke.ini which was the only occurence of the DB credentials I could find there.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/534</link>
        <guid isPermaLink="false">http://localhost/ticket/534</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#535: genshi error when logged into sl.ckan.net</title>
                  <description>&lt;p&gt;
Genshi exception when rendering the page whilst logged in to sl.ckan.net.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/535</link>
        <guid isPermaLink="false">http://localhost/ticket/535</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#536: Extend base importer merging in resources</title>
                  <description>&lt;p&gt;
Multiple ONS records can go into one package e.g. Stats for Jan, Stats for Feb, Stats for Mar etc.
&lt;/p&gt;
&lt;p&gt;
We already identify an existing package by 'external_id'. Now need to find package by title and an extra field (department in ONS case) and allow it to merge in resource and tags. Alert if rest of meta data is different.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/536</link>
        <guid isPermaLink="false">http://localhost/ticket/536</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#537: Caching and Performance improvement</title>
                  <description>&lt;p&gt;
There are several places where performance is unacceptably slow. Even in places where it is not, the system could still be more responsive for read requests.
&lt;/p&gt;
&lt;p&gt;
Introducing caching has to be done carefully and should be done in a &lt;em&gt;standards compliant manner&lt;/em&gt;.
&lt;/p&gt;
&lt;h2 id="Generalstrategy"&gt;General strategy&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Where possible, cache output within the pylons app (beaker).
&lt;/li&gt;&lt;li&gt;Facilitate external caching in an end-user's web browser or a caching proxy
&lt;/li&gt;&lt;li&gt;Slightly stale data is not necessarily much of a problem so allow the output to be cached for a relatively short period (e.g. 5-15 minutes).
&lt;/li&gt;&lt;li&gt;When cache expiry has been reached, a request will be made to the server. The server should check if its internally cached data is still valid, and serve that, otherwise regenerate the data.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Tasks"&gt;Tasks&lt;/h2&gt;
&lt;p&gt;
These tasks should be broken into sub-tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;caching of parts of templates that are expensive to render (package list, tag list, group list)
&lt;/li&gt;&lt;li&gt;caching of entire output using beaker particularly for API read operations.
&lt;/li&gt;&lt;li&gt;need to perform a check to see if the cache should be invalidated by checking if anything in the output would have changed -- i.e. checking timestamps on package modifications. this is a natural place to introduce the ETag which will help browsers and web caches.
&lt;/li&gt;&lt;li&gt;cache infrastructure front end - varnish, squid, etc. To do this right, the controllers need to set the cache control headers appropriately (max-age, must-revalidate). This is a good resource: &lt;a class="ext-link" href="http://www.mnot.net/cache_docs/#CACHE-CONTROL"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.mnot.net/cache_docs/#CACHE-CONTROL&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Deploy varnish on a host dedicated to this purpose for research. This will be useful for other sites as well
&lt;/li&gt;&lt;li&gt;Do not configure varnish to ignore cache control headers or otherwise behave in a non HTTP/1.1 compliant manner
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="FutureWork"&gt;Future Work&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Investigate ckanclient library maintaining a local cache as a web browser would
&lt;/li&gt;&lt;li&gt;Investigate using a CDN like Google Storage or Amazon for serving cached data.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/537</link>
        <guid isPermaLink="false">http://localhost/ticket/537</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#538: Update CKAN Trac ticket report queries</title>
                  <description>&lt;p&gt;
Update report queries with more recent versions (below are report queries shipped with trac 0.11.7):
&lt;/p&gt;
&lt;p&gt;
NB: Report 1 has already been done.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
id |                                               query
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
1 |
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
: SELECT p.value AS &lt;span class="underline"&gt;color&lt;/span&gt;,
:    id AS ticket, summary, component, version, milestone, t.type AS type,
:    owner, status,
:    time AS created,
:    changetime AS _changetime, description AS _description,
:    reporter AS _reporter
:   FROM ticket t
:   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
:   WHERE status &amp;lt;&amp;gt; 'closed'
:   ORDER BY CAST(p.value AS integer), milestone, t.type, time
:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
2 |
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
: SELECT p.value AS &lt;span class="underline"&gt;color&lt;/span&gt;,
:    version AS &lt;span class="underline"&gt;group&lt;/span&gt;,
:    id AS ticket, summary, component, version, t.type AS type,
:    owner, status,
:    time AS created,
:    changetime AS _changetime, description AS _description,
:    reporter AS _reporter
:   FROM ticket t
:   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
:   WHERE status &amp;lt;&amp;gt; 'closed'
:   ORDER BY (version IS NULL),version, CAST(p.value AS integer), t.type, time
:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
3 |
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
: SELECT p.value AS &lt;span class="underline"&gt;color&lt;/span&gt;,
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;:    'Milestone '&lt;td style="text-align: left"&gt;milestone AS &lt;span class="underline"&gt;group&lt;/span&gt;,
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
:    id AS ticket, summary, component, version, t.type AS type,
:    owner, status,
:    time AS created,
:    changetime AS _changetime, description AS _description,
:    reporter AS _reporter
:   FROM ticket t
:   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
:   WHERE status &amp;lt;&amp;gt; 'closed'
:   ORDER BY (milestone IS NULL),milestone, CAST(p.value AS integer), t.type, time
:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
4 |
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
:
: SELECT p.value AS &lt;span class="underline"&gt;color&lt;/span&gt;,
:    owner AS &lt;span class="underline"&gt;group&lt;/span&gt;,
:    id AS ticket, summary, component, milestone, t.type AS type, time AS created,
:    changetime AS _changetime, description AS _description,
:    reporter AS _reporter
:   FROM ticket t
:   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
:   WHERE status = 'accepted'
:   ORDER BY owner, CAST(p.value AS integer), t.type, time
:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
5 |
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
: SELECT p.value AS &lt;span class="underline"&gt;color&lt;/span&gt;,
:    owner AS &lt;span class="underline"&gt;group&lt;/span&gt;,
:    id AS ticket, summary, component, milestone, t.type AS type, time AS created,
:    description AS _description_,
:    changetime AS _changetime, reporter AS _reporter
:   FROM ticket t
:   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
:   WHERE status = 'accepted'
:   ORDER BY owner, CAST(p.value AS integer), t.type, time
:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
6 |
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
: SELECT p.value AS &lt;span class="underline"&gt;color&lt;/span&gt;,
:    t.milestone AS &lt;span class="underline"&gt;group&lt;/span&gt;,
:    (CASE status
:       WHEN 'closed' THEN 'color: &lt;a class="closed ticket" href="http://localhost/ticket/777" title="task: Put 503-returning middleware into a module (closed: fixed)"&gt;#777&lt;/a&gt;; background: #ddd; border-color: #ccc;'
:       ELSE
:         (CASE owner WHEN $USER THEN 'font-weight: bold' END)
:     END) AS &lt;span class="underline"&gt;style&lt;/span&gt;,
:    id AS ticket, summary, component, status,
:    resolution,version, t.type AS type, priority, owner,
:    changetime AS modified,
:    time AS _time,reporter AS _reporter
:   FROM ticket t
:   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
:   ORDER BY (milestone IS NULL), milestone DESC, (status = 'closed'),
:         (CASE status WHEN 'closed' THEN changetime ELSE (-1) * CAST(p.value AS integer) END) DESC
:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
7 |
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
: SELECT p.value AS &lt;span class="underline"&gt;color&lt;/span&gt;,
:    (CASE status WHEN 'accepted' THEN 'Accepted' ELSE 'Owned' END) AS &lt;span class="underline"&gt;group&lt;/span&gt;,
:    id AS ticket, summary, component, version, milestone,
:    t.type AS type, priority, time AS created,
:    changetime AS _changetime, description AS _description,
:    reporter AS _reporter
:   FROM ticket t
:   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
:   WHERE t.status &amp;lt;&amp;gt; 'closed' AND owner = $USER
:   ORDER BY (status = 'accepted') DESC, CAST(p.value AS integer), milestone, t.type, time
:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
8 |
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
: SELECT p.value AS &lt;span class="underline"&gt;color&lt;/span&gt;,
:    (CASE owner
:      WHEN $USER THEN 'My Tickets'
:      ELSE 'Active Tickets'
:     END) AS &lt;span class="underline"&gt;group&lt;/span&gt;,
:    id AS ticket, summary, component, version, milestone, t.type AS type,
:    owner, status,
:    time AS created,
:    changetime AS _changetime, description AS _description,
:    reporter AS _reporter
:   FROM ticket t
:   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
:   WHERE status &amp;lt;&amp;gt; 'closed'
:   ORDER BY (COALESCE(owner, &lt;em&gt;) = $USER) DESC, CAST(p.value AS integer), milestone, t.type, time
&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/538</link>
        <guid isPermaLink="false">http://localhost/ticket/538</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#539: The system shall improve performance</title>
                  <description></description>
        <link>http://localhost/ticket/539</link>
        <guid isPermaLink="false">http://localhost/ticket/539</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#540: Implement caching in a systematic manner</title>
                  <description></description>
        <link>http://localhost/ticket/540</link>
        <guid isPermaLink="false">http://localhost/ticket/540</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#541: Full-page caching even for logged in users</title>
                  <description>&lt;p&gt;
The simplest way to improve performance on specific pages is to implement full page caching.
&lt;/p&gt;
&lt;p&gt;
This, however, has challenges on pages with user-specific content. For example, on CKAN when a user is logged at the top of the page we have "You are logged in as: {username}". Similarly we change the visibility of some material depending on the status of users:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Visibility of Edit or Authz link on packages and groups
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/541</link>
        <guid isPermaLink="false">http://localhost/ticket/541</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#542: 'Show and Tell' page customization using cookie + js</title>
                  <description>&lt;p&gt;
To allow for full page caching even on customized pages for logged in users we can use cookie+javascript techniques as described here: &lt;a class="ext-link" href="http://www.ibm.com/developerworks/web/library/wa-rails2/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ibm.com/developerworks/web/library/wa-rails2/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
In the first place we just need to apply this to:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;You are logged in as
&lt;/li&gt;&lt;li&gt;Package/group edit/authz tabs
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/542</link>
        <guid isPermaLink="false">http://localhost/ticket/542</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#543: Investigate partial page caching and edge-side includes</title>
                  <description>&lt;p&gt;
Edge-side includes or partial page caching are a standard way to deal with caching of pages in which some (usually small) part of the content cannot be cached or should be cached in a different manner (e.g. much more briefly) than the rest of the page.
&lt;/p&gt;
&lt;p&gt;
Edge-side includes have the advantage that they integrate with general 3rd-party caching systems such as varnish.
&lt;/p&gt;
&lt;p&gt;
Introducing either partial page or ESI will require some overhaul work to change the page render processing somewhat.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/543</link>
        <guid isPermaLink="false">http://localhost/ticket/543</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#544: Backport facet browsing to CKAN 1.2</title>
                  <description>&lt;p&gt;
This is in IATI, would be nice to have in generic CKAN.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://bitbucket.org/okfn/iati/changeset/378431974c76"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/okfn/iati/changeset/378431974c76&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/544</link>
        <guid isPermaLink="false">http://localhost/ticket/544</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#545: The system shall support creating packages via the Form API</title>
                  <description></description>
        <link>http://localhost/ticket/545</link>
        <guid isPermaLink="false">http://localhost/ticket/545</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#546: Get the package create form from the API</title>
                  <description></description>
        <link>http://localhost/ticket/546</link>
        <guid isPermaLink="false">http://localhost/ticket/546</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#547: Submit package create form response to the API</title>
                  <description></description>
        <link>http://localhost/ticket/547</link>
        <guid isPermaLink="false">http://localhost/ticket/547</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#548: Functional test for getting package create form from the API</title>
                  <description></description>
        <link>http://localhost/ticket/548</link>
        <guid isPermaLink="false">http://localhost/ticket/548</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#549: Method on API controller to return package create form</title>
                  <description></description>
        <link>http://localhost/ticket/549</link>
        <guid isPermaLink="false">http://localhost/ticket/549</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#550: Routing configuration for package create form API resource</title>
                  <description></description>
        <link>http://localhost/ticket/550</link>
        <guid isPermaLink="false">http://localhost/ticket/550</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#551: Documentation for getting package create form from API</title>
                  <description></description>
        <link>http://localhost/ticket/551</link>
        <guid isPermaLink="false">http://localhost/ticket/551</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#552: Method on API controller to accept valid package create form submission</title>
                  <description></description>
        <link>http://localhost/ticket/552</link>
        <guid isPermaLink="false">http://localhost/ticket/552</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#553: Functional test for submitting valid "package create form" response to the API</title>
                  <description></description>
        <link>http://localhost/ticket/553</link>
        <guid isPermaLink="false">http://localhost/ticket/553</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#554: Functional test for submitting invalid "package create form" response to the API</title>
                  <description></description>
        <link>http://localhost/ticket/554</link>
        <guid isPermaLink="false">http://localhost/ticket/554</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#555: Documentation for submitting package create form submission to API</title>
                  <description></description>
        <link>http://localhost/ticket/555</link>
        <guid isPermaLink="false">http://localhost/ticket/555</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#556: Method on API controller to accept invalid package create form submission</title>
                  <description></description>
        <link>http://localhost/ticket/556</link>
        <guid isPermaLink="false">http://localhost/ticket/556</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#557: Remove siblings from link_to/from relationship display</title>
                  <description>&lt;p&gt;
Displaying siblings is not needed for link_to/from.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/557</link>
        <guid isPermaLink="false">http://localhost/ticket/557</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#558: Sort extras, relationships by key/object alphabetically</title>
                  <description></description>
        <link>http://localhost/ticket/558</link>
        <guid isPermaLink="false">http://localhost/ticket/558</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#559: Fix package lookup on group edit form</title>
                  <description>&lt;p&gt;
Lookup is needed to add a package but won't show up at some times.
&lt;/p&gt;
&lt;p&gt;
Originally reported by Anja Jentzsch, re questions.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/559</link>
        <guid isPermaLink="false">http://localhost/ticket/559</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#560: Deleted packages showing up in tag lists</title>
                  <description>&lt;p&gt;
E.g. &lt;a class="ext-link" href="http://ckan.net/tag/lod"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/tag/lod&lt;/a&gt; contains musicbrainz_ (Musicbrainz) item (if you click you will get 403/login as deleted packages can only be seen by admins).
&lt;/p&gt;
&lt;p&gt;
Also suggested that these are showing up in the API (courtesy of Anja)
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/560</link>
        <guid isPermaLink="false">http://localhost/ticket/560</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#561: Deleted packages are returned in the API</title>
                  <description>&lt;p&gt;
Anja is reporting this, severe bug, I think.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/561</link>
        <guid isPermaLink="false">http://localhost/ticket/561</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#562: OpenID Login fails using Yahoo and Google</title>
                  <description>&lt;p&gt;
reported by LOD folks.
&lt;/p&gt;
&lt;p&gt;
subsidary bug: error messages from OpenID providers are not shown on the form return page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/562</link>
        <guid isPermaLink="false">http://localhost/ticket/562</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#563: Support a minimal CSW server interface or export to GeoNetwork</title>
                  <description></description>
        <link>http://localhost/ticket/563</link>
        <guid isPermaLink="false">http://localhost/ticket/563</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#564: The system shall support location based search</title>
                  <description></description>
        <link>http://localhost/ticket/564</link>
        <guid isPermaLink="false">http://localhost/ticket/564</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#565: The system shall support UKLP code lists</title>
                  <description></description>
        <link>http://localhost/ticket/565</link>
        <guid isPermaLink="false">http://localhost/ticket/565</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#566: The system shall support harvesting remote metadata</title>
                  <description></description>
        <link>http://localhost/ticket/566</link>
        <guid isPermaLink="false">http://localhost/ticket/566</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#567: Post new harvest job for given harvest source</title>
                  <description></description>
        <link>http://localhost/ticket/567</link>
        <guid isPermaLink="false">http://localhost/ticket/567</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#568: Pull metadata documents from given harvest source entity</title>
                  <description></description>
        <link>http://localhost/ticket/568</link>
        <guid isPermaLink="false">http://localhost/ticket/568</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#569: Harvested GEMINI document metadata validation</title>
                  <description></description>
        <link>http://localhost/ticket/569</link>
        <guid isPermaLink="false">http://localhost/ticket/569</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#570: Validate metadata document against UKLP schematron</title>
                  <description></description>
        <link>http://localhost/ticket/570</link>
        <guid isPermaLink="false">http://localhost/ticket/570</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#571: Save metadata document and associate with harvest source entity</title>
                  <description></description>
        <link>http://localhost/ticket/571</link>
        <guid isPermaLink="false">http://localhost/ticket/571</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#572: Write CKAN package from metadata document</title>
                  <description>&lt;p&gt;
The attributes we need to read in are being defined here:
&lt;a class="ext-link" href="http://okfnpad.org/uklii"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://okfnpad.org/uklii&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The design advice is to prepare, test, and maintain a dictionary of XPaths for each of the attributes.
&lt;/p&gt;
&lt;p&gt;
Work effort is to be directed to the maintainability of the XPath statements. We need to know which are needed for which documents, and to have a way of preventing cruft.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/572</link>
        <guid isPermaLink="false">http://localhost/ticket/572</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#573: Add metadata entity to harvesting queue</title>
                  <description></description>
        <link>http://localhost/ticket/573</link>
        <guid isPermaLink="false">http://localhost/ticket/573</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#574: Create UKLII package with attributes from remote metadata record</title>
                  <description></description>
        <link>http://localhost/ticket/574</link>
        <guid isPermaLink="false">http://localhost/ticket/574</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#575: The system shall notify remote metadata harvesting errors</title>
                  <description></description>
        <link>http://localhost/ticket/575</link>
        <guid isPermaLink="false">http://localhost/ticket/575</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#576: CKAN Requires Old Version of SQLAlchemy</title>
                  <description>&lt;p&gt;
Requires 0.4. 0.5 is a maintenance branch, 0.6 is current.
&lt;/p&gt;
&lt;p&gt;
VDM appears to work correctly (all the tests pass) with 0.5. CKAN does not -- requires more investigation to determine exactly why.
&lt;/p&gt;
&lt;p&gt;
It would actually be nice to be able to run with 0.6 or 0.5, though 0.6 will require some changes to VDM as well
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/576</link>
        <guid isPermaLink="false">http://localhost/ticket/576</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#577: Get remote metadata harvest job errors</title>
                  <description></description>
        <link>http://localhost/ticket/577</link>
        <guid isPermaLink="false">http://localhost/ticket/577</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#578: Get remote metadata harvest job</title>
                  <description></description>
        <link>http://localhost/ticket/578</link>
        <guid isPermaLink="false">http://localhost/ticket/578</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#579: Delete remote metadata harvest job</title>
                  <description></description>
        <link>http://localhost/ticket/579</link>
        <guid isPermaLink="false">http://localhost/ticket/579</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#580: Write (create or update) CKAN package for metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/580</link>
        <guid isPermaLink="false">http://localhost/ticket/580</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#581: Determine package name from metadata document</title>
                  <description>&lt;p&gt;
Need to establish procedure for automatically generating package names from metadata documents.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/581</link>
        <guid isPermaLink="false">http://localhost/ticket/581</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#582: Domain object class for harvest source</title>
                  <description></description>
        <link>http://localhost/ticket/582</link>
        <guid isPermaLink="false">http://localhost/ticket/582</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#583: Define fieldset object for harvest source forms</title>
                  <description></description>
        <link>http://localhost/ticket/583</link>
        <guid isPermaLink="false">http://localhost/ticket/583</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#584: Migration script to add harvest source table</title>
                  <description></description>
        <link>http://localhost/ticket/584</link>
        <guid isPermaLink="false">http://localhost/ticket/584</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#585: Method on API controller to return harvest source create form</title>
                  <description></description>
        <link>http://localhost/ticket/585</link>
        <guid isPermaLink="false">http://localhost/ticket/585</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#586: Routing configuration for harvest source create form API resource</title>
                  <description></description>
        <link>http://localhost/ticket/586</link>
        <guid isPermaLink="false">http://localhost/ticket/586</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#587: Documentation for getting harvest source create form from API</title>
                  <description></description>
        <link>http://localhost/ticket/587</link>
        <guid isPermaLink="false">http://localhost/ticket/587</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#588: Method on API controller to accept valid harvest source create form submission</title>
                  <description></description>
        <link>http://localhost/ticket/588</link>
        <guid isPermaLink="false">http://localhost/ticket/588</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#589: Method on API controller to reject invalid harvest source create form submission</title>
                  <description></description>
        <link>http://localhost/ticket/589</link>
        <guid isPermaLink="false">http://localhost/ticket/589</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#590: Documentation for submitting harvest source create form submission to API</title>
                  <description></description>
        <link>http://localhost/ticket/590</link>
        <guid isPermaLink="false">http://localhost/ticket/590</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#591: Routing configuration for harvest source entity API resource</title>
                  <description></description>
        <link>http://localhost/ticket/591</link>
        <guid isPermaLink="false">http://localhost/ticket/591</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#592: Methods to return harvest source entity as JSON</title>
                  <description></description>
        <link>http://localhost/ticket/592</link>
        <guid isPermaLink="false">http://localhost/ticket/592</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#593: Method on API controller to return remote metadata edit form</title>
                  <description></description>
        <link>http://localhost/ticket/593</link>
        <guid isPermaLink="false">http://localhost/ticket/593</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#594: Routing configuration for remote metadata edit form API resource</title>
                  <description></description>
        <link>http://localhost/ticket/594</link>
        <guid isPermaLink="false">http://localhost/ticket/594</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#595: Documentation for getting remote metadata edit form from API</title>
                  <description></description>
        <link>http://localhost/ticket/595</link>
        <guid isPermaLink="false">http://localhost/ticket/595</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#596: Method on API controller to accept valid remote metadata edit form submission</title>
                  <description></description>
        <link>http://localhost/ticket/596</link>
        <guid isPermaLink="false">http://localhost/ticket/596</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#597: Method on API controller to reject invalid remote metadata edit form submission</title>
                  <description></description>
        <link>http://localhost/ticket/597</link>
        <guid isPermaLink="false">http://localhost/ticket/597</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#598: List remote metadata entities for given publisher</title>
                  <description></description>
        <link>http://localhost/ticket/598</link>
        <guid isPermaLink="false">http://localhost/ticket/598</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#599: Routing configuration for listing remote metadata entities for a given publisher</title>
                  <description></description>
        <link>http://localhost/ticket/599</link>
        <guid isPermaLink="false">http://localhost/ticket/599</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#600: Method on API controller for listing remote metadata entities for a given publisher</title>
                  <description></description>
        <link>http://localhost/ticket/600</link>
        <guid isPermaLink="false">http://localhost/ticket/600</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#601: Documentation for listing remote metadata entities for a given publisher via API</title>
                  <description></description>
        <link>http://localhost/ticket/601</link>
        <guid isPermaLink="false">http://localhost/ticket/601</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#602: Method on API controller to accept valid harvest job</title>
                  <description></description>
        <link>http://localhost/ticket/602</link>
        <guid isPermaLink="false">http://localhost/ticket/602</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#603: Method on API controller to reject invalid harvest job</title>
                  <description></description>
        <link>http://localhost/ticket/603</link>
        <guid isPermaLink="false">http://localhost/ticket/603</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#604: Domain object class for harvest job</title>
                  <description></description>
        <link>http://localhost/ticket/604</link>
        <guid isPermaLink="false">http://localhost/ticket/604</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#605: Routing configuration for harvest job register</title>
                  <description></description>
        <link>http://localhost/ticket/605</link>
        <guid isPermaLink="false">http://localhost/ticket/605</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#606: Methods to return harvest job as JSON</title>
                  <description></description>
        <link>http://localhost/ticket/606</link>
        <guid isPermaLink="false">http://localhost/ticket/606</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#607: Routing configuration for harvest job entity</title>
                  <description></description>
        <link>http://localhost/ticket/607</link>
        <guid isPermaLink="false">http://localhost/ticket/607</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#608: Routing configuration for register of harvest jobs with error status</title>
                  <description></description>
        <link>http://localhost/ticket/608</link>
        <guid isPermaLink="false">http://localhost/ticket/608</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#609: Methods to return harvest jobs with error status as JSON</title>
                  <description></description>
        <link>http://localhost/ticket/609</link>
        <guid isPermaLink="false">http://localhost/ticket/609</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#610: Load local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/610</link>
        <guid isPermaLink="false">http://localhost/ticket/610</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#611: Load local copy of XML schema for metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/611</link>
        <guid isPermaLink="false">http://localhost/ticket/611</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#612: Check given XML schema validates given metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/612</link>
        <guid isPermaLink="false">http://localhost/ticket/612</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#613: Store result of schema validation check on metadata document object</title>
                  <description></description>
        <link>http://localhost/ticket/613</link>
        <guid isPermaLink="false">http://localhost/ticket/613</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#614: Acquire local copy of XML schema for remote metadata documents</title>
                  <description></description>
        <link>http://localhost/ticket/614</link>
        <guid isPermaLink="false">http://localhost/ticket/614</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#615: Acquire local implementation of UKLP schematron</title>
                  <description>&lt;p&gt;
We "just" need a schematron.validate(metadata) method. :-)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/615</link>
        <guid isPermaLink="false">http://localhost/ticket/615</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#616: Store result of schematron validation check on metadata document object</title>
                  <description></description>
        <link>http://localhost/ticket/616</link>
        <guid isPermaLink="false">http://localhost/ticket/616</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#617: Check UKLP schematron validates given metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/617</link>
        <guid isPermaLink="false">http://localhost/ticket/617</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#618: Domain object class for metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/618</link>
        <guid isPermaLink="false">http://localhost/ticket/618</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#619: Get HTTP response for given resource locator</title>
                  <description></description>
        <link>http://localhost/ticket/619</link>
        <guid isPermaLink="false">http://localhost/ticket/619</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#620: Identify remote metadata entity as metadata document, WAF, or CSW</title>
                  <description></description>
        <link>http://localhost/ticket/620</link>
        <guid isPermaLink="false">http://localhost/ticket/620</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#621: Metadata document links extracted from WAF response</title>
                  <description></description>
        <link>http://localhost/ticket/621</link>
        <guid isPermaLink="false">http://localhost/ticket/621</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#622: Metadata document identifiers extracted from CSW GetRecords responses</title>
                  <description></description>
        <link>http://localhost/ticket/622</link>
        <guid isPermaLink="false">http://localhost/ticket/622</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#623: CSW GetRecords request for all identifiers (with CSW authentication)</title>
                  <description></description>
        <link>http://localhost/ticket/623</link>
        <guid isPermaLink="false">http://localhost/ticket/623</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#624: Read attribute 'title' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/624</link>
        <guid isPermaLink="false">http://localhost/ticket/624</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#625: Read attribute 'abstract' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/625</link>
        <guid isPermaLink="false">http://localhost/ticket/625</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#626: Read attribute 'point of contact' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/626</link>
        <guid isPermaLink="false">http://localhost/ticket/626</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#627: Read attribute 'guid' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/627</link>
        <guid isPermaLink="false">http://localhost/ticket/627</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#628: Read attribute 'bounding-box' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/628</link>
        <guid isPermaLink="false">http://localhost/ticket/628</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#629: Read attribute 'keywords' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/629</link>
        <guid isPermaLink="false">http://localhost/ticket/629</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#630: Read attribute 'use constraints' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/630</link>
        <guid isPermaLink="false">http://localhost/ticket/630</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#631: Read attribute 'resource-locator' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/631</link>
        <guid isPermaLink="false">http://localhost/ticket/631</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#632: Read attribute 'topic category' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/632</link>
        <guid isPermaLink="false">http://localhost/ticket/632</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#633: Read attribute '' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/633</link>
        <guid isPermaLink="false">http://localhost/ticket/633</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#634: Read attribute '' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/634</link>
        <guid isPermaLink="false">http://localhost/ticket/634</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#635: Read attribute '' from local copy of metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/635</link>
        <guid isPermaLink="false">http://localhost/ticket/635</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#636: Method on API controller to delete given harvest job</title>
                  <description></description>
        <link>http://localhost/ticket/636</link>
        <guid isPermaLink="false">http://localhost/ticket/636</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#637: Read UKLII package data from given metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/637</link>
        <guid isPermaLink="false">http://localhost/ticket/637</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#638: Documentation for getting harvest source entity from API</title>
                  <description></description>
        <link>http://localhost/ticket/638</link>
        <guid isPermaLink="false">http://localhost/ticket/638</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#639: Documentation for posting harvest job to API</title>
                  <description></description>
        <link>http://localhost/ticket/639</link>
        <guid isPermaLink="false">http://localhost/ticket/639</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#640: Documentation for getting harvest job entity from API</title>
                  <description></description>
        <link>http://localhost/ticket/640</link>
        <guid isPermaLink="false">http://localhost/ticket/640</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#641: Documentation for getting harvest job errors from API</title>
                  <description></description>
        <link>http://localhost/ticket/641</link>
        <guid isPermaLink="false">http://localhost/ticket/641</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#642: Migration script to add harvest job table</title>
                  <description></description>
        <link>http://localhost/ticket/642</link>
        <guid isPermaLink="false">http://localhost/ticket/642</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#643: Migration script to add metadata document table</title>
                  <description></description>
        <link>http://localhost/ticket/643</link>
        <guid isPermaLink="false">http://localhost/ticket/643</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#644: Documentation for deleting harvest job entity</title>
                  <description></description>
        <link>http://localhost/ticket/644</link>
        <guid isPermaLink="false">http://localhost/ticket/644</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#645: Domain object and migration script to associate packages and harvester objects</title>
                  <description></description>
        <link>http://localhost/ticket/645</link>
        <guid isPermaLink="false">http://localhost/ticket/645</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#646: Web UI shall support registering harvest sources</title>
                  <description></description>
        <link>http://localhost/ticket/646</link>
        <guid isPermaLink="false">http://localhost/ticket/646</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#647: Authorization Groups for group-based access control</title>
                  <description>&lt;p&gt;
allow group-level authorization on all system entities
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/647</link>
        <guid isPermaLink="false">http://localhost/ticket/647</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#648: Enable lock-down of package creation</title>
                  <description>&lt;ul&gt;&lt;li&gt;copy exisiting tests, modify authz in setUp, adapt and extend tests
&lt;ul&gt;&lt;li&gt;Problem: default_role_actions is read by init_db
&lt;/li&gt;&lt;li&gt;Solution: nuke db after monkey-patching
&lt;/li&gt;&lt;li&gt;role = model.Role('Reader'), del role.actions[...]
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.PRE_MAUTHZ_RULES = copy(mauthz.default_role_actions)
mauthz.default_role_actions.remove((Role.READER, Action.CREATE))
#raise Exception(mauthz.default_role_actions)
model.Session.remove()
model.repo.rebuild_db()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ol start="3"&gt;&lt;li&gt;Start from the functional
&lt;ul&gt;&lt;li&gt;Both the api controllers and wui controllers to do
&lt;/li&gt;&lt;li&gt;tests/function/test_authz.py extended to check CREATE in lockedDown mode. fails nicely.
&lt;a class="ext-link" href="http://bitbucket.org/pudo/ckan-authz2"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/pudo/ckan-authz2&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
is_authorized(user, Action.Create, model.Package)
&lt;/p&gt;
&lt;p&gt;
-&amp;gt; Doing this will put 'Package' in the context field of the user_object_role table. This will trigger SQLAlchemy to attempt a join towards &lt;a class="missing wiki"&gt;PackageRole?&lt;/a&gt; in all queries. Since for class-level role assignments there never is a &lt;a class="missing wiki"&gt;PackageRole?&lt;/a&gt; join table entry, this will never return any results.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;cf branch "classes": &lt;a class="ext-link" href="http://bitbucket.org/pudo/ckan-authz2/src/6fd0475e0c66"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/pudo/ckan-authz2/src/6fd0475e0c66&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;No possibility of including "instance" column in inheritance decision.
&lt;/li&gt;&lt;li&gt;Even if this can be cirumvented, it must happen on a per-query level and would require a major re-modelling.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;have a ckan install that would not allow visitors to either list packages or list groups
&lt;ul&gt;&lt;li&gt;two paths: create the listing, but for each group/pkg decide that you
cannot show this
&lt;/li&gt;&lt;li&gt;lock down the whole page (/package/list)
&lt;ul&gt;&lt;li&gt;this is class-based, not object-based
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
is_authorized(user, Action.Package_Create, model.System())
is_authorized(user, Action.Group_Create, model.System())
&lt;/p&gt;
&lt;p&gt;
[Separating Package and Group roles may be useful going forward: &lt;a class="missing wiki"&gt;PackageEditor?&lt;/a&gt;, &lt;a class="missing wiki"&gt;GroupEditor?&lt;/a&gt; etc]
&lt;/p&gt;
&lt;ol start="4"&gt;&lt;li&gt;Find a standard way to lock down classes
&lt;ul&gt;&lt;li&gt;possibly add default rows in user_object_role
&lt;/li&gt;&lt;li&gt;introduce lock-down into controllers: group new, package new, REST equivalents,
&lt;/li&gt;&lt;li&gt;confirm tests
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/648</link>
        <guid isPermaLink="false">http://localhost/ticket/648</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#649: Introduce Authorization Groups in model</title>
                  <description>&lt;p&gt;
Authorization Groups:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Rename &lt;a class="missing wiki"&gt;UserObjectRole?&lt;/a&gt; to &lt;a class="missing wiki"&gt;SubjectObjectRole?&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Create database migration to do the rename in DB
&lt;/li&gt;&lt;li&gt;Make sure all the tests are passing again
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;p&gt;
(Doing this first seems more stable since we first want to "re-gain" exisiting functionality)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Create authz.py and model tests for authorization_group-based auth
&lt;ul&gt;&lt;li&gt;tests: functional: create fixtures, do actual requests
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
lib-tests: test for membership addition, removal, group-right additions affecting all members, group-right removal, group rights affecting non-members.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
#  * Adapt model to get these passing
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Integration into existing controllers should be negligible but may want ot have tests
&lt;ul&gt;&lt;li&gt;do not want that. would mean design is broken
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Need to create a new controller for editing authz groups (will have same permissions as any other object -- Reader, Editor, Administrator)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/649</link>
        <guid isPermaLink="false">http://localhost/ticket/649</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#650: WUI editing for Authorization Groups</title>
                  <description>&lt;ul&gt;&lt;li&gt;Copy &amp;amp; adapt Group controller tests to suit &lt;a class="missing wiki"&gt;AuthorizationGroups?&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Copy &amp;amp; adapt Group controllers and templates for Authorization Groups
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/650</link>
        <guid isPermaLink="false">http://localhost/ticket/650</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#651: Improve javascript helper for package/user addition on groups/authzgroups</title>
                  <description>&lt;p&gt;
This needs to be abstracted and we still need to be able to remove items before saving.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/651</link>
        <guid isPermaLink="false">http://localhost/ticket/651</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#652: Allow for addition and removal of groups on package/edit</title>
                  <description>&lt;p&gt;
Much more natural place to do this, even at the risk of overloading the package edit form.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/652</link>
        <guid isPermaLink="false">http://localhost/ticket/652</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#653: Trackback links for packages</title>
                  <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>
        <link>http://localhost/ticket/653</link>
        <guid isPermaLink="false">http://localhost/ticket/653</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#654: Harvest sources and jobs should return 404 when missing (not 500)</title>
                  <description></description>
        <link>http://localhost/ticket/654</link>
        <guid isPermaLink="false">http://localhost/ticket/654</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#655: Return status code 404 when harvest source is not found</title>
                  <description></description>
        <link>http://localhost/ticket/655</link>
        <guid isPermaLink="false">http://localhost/ticket/655</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#656: Return status code 404 when harvesting job is not found</title>
                  <description></description>
        <link>http://localhost/ticket/656</link>
        <guid isPermaLink="false">http://localhost/ticket/656</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#657: Fix harvesting job entity get method to default to returning 'None' rather than raising an exception</title>
                  <description></description>
        <link>http://localhost/ticket/657</link>
        <guid isPermaLink="false">http://localhost/ticket/657</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#658: Fix harvest source entity get method to default to returning 'None' rather than raising an exception</title>
                  <description></description>
        <link>http://localhost/ticket/658</link>
        <guid isPermaLink="false">http://localhost/ticket/658</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#659: Check CKAN instance works automatically</title>
                  <description>&lt;p&gt;
Auto way to check web and API interface of a CKAN instance basically works. Several gotchas can be quickly determined, such as logging in, search not working. Needs to be configurable per site basis.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/659</link>
        <guid isPermaLink="false">http://localhost/ticket/659</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#660: Check CKAN instance works</title>
                  <description>&lt;p&gt;
As an admin I want to check a CKAN instance works having just upgraded it or configured it.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/660</link>
        <guid isPermaLink="false">http://localhost/ticket/660</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#661: Create CKAN site tester</title>
                  <description>&lt;p&gt;
From Rufus:
&lt;/p&gt;
&lt;pre class="wiki"&gt;'blackbox' testing command (read-only only would be fine) -- very
useful for upgrade on sunday
On blackbox thinking of something like:
paster test-site http://hmg.ckan.net {package-name}
Or (maybe better):
paster test-site --site-spec {myconfig.json}
my-config is a json file with info for testing (could overload
--config rather than site-spec):
site-url: http://hmg.ckan.net/
package-name:
package-title:
...etc ...
Then:
Test front-page
Test /revision/
Test /package/{page}  -- check title
Test /package/history
Test /api/rest/package/ ...
Test /api/search/package ...
etc
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/661</link>
        <guid isPermaLink="false">http://localhost/ticket/661</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#662: Can't put entity that is returned by posting to package register</title>
                  <description>&lt;p&gt;
It's because Package carries several out-of-band values, which are snagged on the way back out. Entity get response also can't be posted.
&lt;/p&gt;
&lt;p&gt;
However, post response can be re-posted (because it isn't the same as the register-post/entity-get responses.
&lt;/p&gt;
&lt;p&gt;
An issue for CKAN too.
&lt;/p&gt;
&lt;p&gt;
Sub-ticket of &lt;a class="closed ticket" href="http://localhost/ticket/961" title="enhancement: [super] Refactoring of forms, validation and model synchronization (closed: fixed)"&gt;#961&lt;/a&gt; (form, validation, model sync meta-ticket) and depends on that work.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/662</link>
        <guid isPermaLink="false">http://localhost/ticket/662</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#663: Duplicate sibling relationships displayed</title>
                  <description>&lt;p&gt;
Looking at:
&lt;a class="ext-link" href="http://ckan.net/package/rkb-explorer-acm"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/rkb-explorer-acm&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
'rkb-explorer-resex' gets display multiple times and shouldn't
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/663</link>
        <guid isPermaLink="false">http://localhost/ticket/663</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#664: Sibling relationships shown for deleted packages</title>
                  <description></description>
        <link>http://localhost/ticket/664</link>
        <guid isPermaLink="false">http://localhost/ticket/664</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#665: The system shall support withdrawing a harvested dataset or service from publication</title>
                  <description>&lt;p&gt;
Discussion between John and Peter:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Given we can identify a document, does the disappearance of a document
from a registered source imply the disappearance of the metadata (such
that we delete packages once the documents disappear from the registered
source)?
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
I would expect a more explicit 'delete'. The UKLP Use Case Library describes this as "withdraw a dataset or service from publication" (part of UCD03 Maintain resources).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/665</link>
        <guid isPermaLink="false">http://localhost/ticket/665</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#666: The system shall support updating packages from new versions of previously harvested dataset or service metadata</title>
                  <description></description>
        <link>http://localhost/ticket/666</link>
        <guid isPermaLink="false">http://localhost/ticket/666</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#667: API is slow</title>
                  <description>&lt;p&gt;
See message and script:
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2010-September/000569.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2010-September/000569.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
1500 requests shouldn't take hours.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/667</link>
        <guid isPermaLink="false">http://localhost/ticket/667</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>Colin Calnan</dc:creator>

                  <title>#668: Caching issues on API v1</title>
                  <description>&lt;p&gt;
It seems like the API v1 on CKAN metastable (cset:ec21f8e1c87e) has some caching issues.
&lt;/p&gt;
&lt;p&gt;
Steps to test:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Modify a dataset on datadotgc.ca, redirects to CKAN
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;On save, redirects to &lt;a class="ext-link" href="http://www.datadotgc.ca/update/geogratisnat_hydrography_v100"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.datadotgc.ca/update/geogratisnat_hydrography_v100&lt;/a&gt; which in turn redirects to &lt;a class="ext-link" href="http://www.datadotgc.ca/dataset/geogratisnat_hydrography_v100"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.datadotgc.ca/dataset/geogratisnat_hydrography_v100&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;You can see that the Dataset has not updated correctly. Run a check on the API v1 - &lt;a class="ext-link" href="http://ca.ckan.net/api/1/rest/package/geogratisnat_hydrography_v100"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ca.ckan.net/api/1/rest/package/geogratisnat_hydrography_v100&lt;/a&gt; the updates are not present
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Check the v2 of the API - &lt;a class="ext-link" href="http://ca.ckan.net/api/rest/package/geogratisnat_hydrography_v100"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ca.ckan.net/api/rest/package/geogratisnat_hydrography_v100&lt;/a&gt;, the updates are present.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;Setting the headers to 'Cache-control: no-cache' or 'Pragma: no-cache' does not work either.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/668</link>
        <guid isPermaLink="false">http://localhost/ticket/668</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#669: Refactor Solr to become a generic worker</title>
                  <description></description>
        <link>http://localhost/ticket/669</link>
        <guid isPermaLink="false">http://localhost/ticket/669</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#670: HowTo: Creating a sysadmin</title>
                  <description></description>
        <link>http://localhost/ticket/670</link>
        <guid isPermaLink="false">http://localhost/ticket/670</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#671: Implement and show user names in WUI</title>
                  <description></description>
        <link>http://localhost/ticket/671</link>
        <guid isPermaLink="false">http://localhost/ticket/671</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#672: Facets in CKAN search results</title>
                  <description>&lt;p&gt;
This has been done in IATI ckan but should be ported over to CKAN main and put into the UI in a nice fashion.
&lt;/p&gt;
&lt;p&gt;
IATI: &lt;a class="ext-link" href="http://bitbucket.org/okfn/iati/changeset/378431974c76"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/okfn/iati/changeset/378431974c76&lt;/a&gt; (related to &lt;a class="closed ticket" href="http://localhost/ticket/520" title="requirement: Browseable web interface onto the data (closed: fixed)"&gt;#520&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Requires SOLR search backend (for postgres should fall back gracefully -- just do not show them).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/672</link>
        <guid isPermaLink="false">http://localhost/ticket/672</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#673: Construct and send CSW GetRecordById request</title>
                  <description></description>
        <link>http://localhost/ticket/673</link>
        <guid isPermaLink="false">http://localhost/ticket/673</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#674: Extract metadata documents from CSW GetRecordById</title>
                  <description></description>
        <link>http://localhost/ticket/674</link>
        <guid isPermaLink="false">http://localhost/ticket/674</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#675: Draft specification of CSW harvesting behaviour with guide for publishing agents</title>
                  <description></description>
        <link>http://localhost/ticket/675</link>
        <guid isPermaLink="false">http://localhost/ticket/675</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#676: The system shall support browsing to correct version of the CKAN documentation for a given service</title>
                  <description></description>
        <link>http://localhost/ticket/676</link>
        <guid isPermaLink="false">http://localhost/ticket/676</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#677: License change script</title>
                  <description>&lt;ul&gt;&lt;li&gt;Uses API to change licenses of all packages in a CKAN instance to a particular one.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Run it on DGU.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/677</link>
        <guid isPermaLink="false">http://localhost/ticket/677</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#678: Form for DGU metadata v3</title>
                  <description>&lt;ul&gt;&lt;li&gt;Create form
&lt;/li&gt;&lt;li&gt;Deploy on test
&lt;/li&gt;&lt;li&gt;Deploy on live
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/678</link>
        <guid isPermaLink="false">http://localhost/ticket/678</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#679: Improve standard package edit form</title>
                  <description>&lt;ul&gt;&lt;li&gt;Add help text, drawing from:
&lt;ul&gt;&lt;li&gt;ca.ckan.net
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://wiki.okfn.org/ckan/doc/package"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.okfn.org/ckan/doc/package&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://wiki.okfn.org/ckan/doc/faq"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.okfn.org/ckan/doc/faq&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Make longer text revealed on click
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/679</link>
        <guid isPermaLink="false">http://localhost/ticket/679</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#680: Prepare for DGU tech meeting</title>
                  <description></description>
        <link>http://localhost/ticket/680</link>
        <guid isPermaLink="false">http://localhost/ticket/680</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#681: Department field bug</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="https://trac.dataco.coi.gov.uk/projects/datagov/ticket/613"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://trac.dataco.coi.gov.uk/projects/datagov/ticket/613&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/681</link>
        <guid isPermaLink="false">http://localhost/ticket/681</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#682: Add ckanclient tests to buildbot</title>
                  <description>&lt;p&gt;
Some work done on this to make tests run independently.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/682</link>
        <guid isPermaLink="false">http://localhost/ticket/682</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#683: metastable, stable &amp; ultrastable smoketests run by buildbot</title>
                  <description></description>
        <link>http://localhost/ticket/683</link>
        <guid isPermaLink="false">http://localhost/ticket/683</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#684: metastable tested on buildbot</title>
                  <description></description>
        <link>http://localhost/ticket/684</link>
        <guid isPermaLink="false">http://localhost/ticket/684</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#685: stable tested on buildbot</title>
                  <description></description>
        <link>http://localhost/ticket/685</link>
        <guid isPermaLink="false">http://localhost/ticket/685</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#686: ultrastable tested on buildbot</title>
                  <description></description>
        <link>http://localhost/ticket/686</link>
        <guid isPermaLink="false">http://localhost/ticket/686</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#687: Release ckanclient 0.4</title>
                  <description>&lt;p&gt;
Done.
Added release process here: &lt;a class="wiki" href="http://localhost/wiki/ReleaseProcess"&gt;wiki:ReleaseProcess&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/687</link>
        <guid isPermaLink="false">http://localhost/ticket/687</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#688: Example GeoNetworks service for CSW development</title>
                  <description></description>
        <link>http://localhost/ticket/688</link>
        <guid isPermaLink="false">http://localhost/ticket/688</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#689: Updated package for updated metadata document</title>
                  <description></description>
        <link>http://localhost/ticket/689</link>
        <guid isPermaLink="false">http://localhost/ticket/689</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#690: The system shall support Gemini2 service records</title>
                  <description>&lt;p&gt;
Wish to fold service records into package resources. Trouble is that service records don't necessarily refer to a data record, so should this be a new package?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/690</link>
        <guid isPermaLink="false">http://localhost/ticket/690</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#691: Package Relationships</title>
                  <description></description>
        <link>http://localhost/ticket/691</link>
        <guid isPermaLink="false">http://localhost/ticket/691</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#692: The system shall support presenting map thumbnail for bounding box.</title>
                  <description>&lt;p&gt;
To do this for the UKLP, the Ordnance Survey would need to add to their map service an operation to return image for a given bounding box, and COI would need to present the image on the search result page.
&lt;/p&gt;
&lt;p&gt;
Otherwise, it would be possible to use Google.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/692</link>
        <guid isPermaLink="false">http://localhost/ticket/692</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#693: Support ETag in cache decorator</title>
                  <description>&lt;p&gt;
... and make cache-control header optional
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/693</link>
        <guid isPermaLink="false">http://localhost/ticket/693</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#694: No postgres tools for current version</title>
                  <description>&lt;p&gt;
Database for all CKAN instances upgraded to Postgres 8.4, but none of the eu machines were upgraded with the tools necessary to administer them.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/694</link>
        <guid isPermaLink="false">http://localhost/ticket/694</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#695: Search indexing broken on ckan.net</title>
                  <description>&lt;p&gt;
e.g. searching for 'buddhist' or 'sanskrit', you don't get this newly created package:
&lt;a class="ext-link" href="http://ckan.net/package/digitalsanskritbuddhistcanon"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/digitalsanskritbuddhistcanon&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/695</link>
        <guid isPermaLink="false">http://localhost/ticket/695</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#696: Decoupled generation of package group choices from validation of package group selection</title>
                  <description></description>
        <link>http://localhost/ticket/696</link>
        <guid isPermaLink="false">http://localhost/ticket/696</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#697: The system shall indicate which package groups can be removed when editing a package</title>
                  <description>&lt;p&gt;
This seems to require doing something else with such a group's 'delete' button, such as showing it greyed, or perhaps not showing it at all.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/697</link>
        <guid isPermaLink="false">http://localhost/ticket/697</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#698: CKAN Data API v1</title>
                  <description>&lt;p&gt;
This proposal is to discuss adding a new API for proxying certain spreadsheet data via JSON-P to make it possible to build simple browser apps directly off the API.
&lt;/p&gt;
&lt;p&gt;
See the attached proposal for information.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/698</link>
        <guid isPermaLink="false">http://localhost/ticket/698</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>TimDavies</dc:creator>

                  <title>#699: Paging search results re-sets Open Only and Downloadable Only flags</title>
                  <description>&lt;p&gt;
When getting a search results page (e.g. &lt;a class="ext-link" href="http://ckan.net/package/search?q=development&amp;amp;open_only=1&amp;amp;downloadable_only=1"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/search?q=development&amp;amp;open_only=1&amp;amp;downloadable_only=1&lt;/a&gt;) and then using the on-page links to page through results, the next link / numbered page links go to &lt;a class="ext-link" href="http://ckan.net/package/search?q=development&amp;amp;page=2"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/search?q=development&amp;amp;page=2&lt;/a&gt; rather than &lt;a class="ext-link" href="http://ckan.net/package/search?q=development&amp;amp;open_only=1&amp;amp;downloadable_only=1&amp;amp;page=2"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/search?q=development&amp;amp;open_only=1&amp;amp;downloadable_only=1&amp;amp;page=2&lt;/a&gt; meaning that the filter flags set (Download Only; Open Only) are not respected on the second page of listings.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/699</link>
        <guid isPermaLink="false">http://localhost/ticket/699</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#700: Groups in package form</title>
                  <description>&lt;p&gt;
Editing groups in forms doesn't work for me, with latest code from this morning:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Clean db
&lt;/li&gt;&lt;li&gt;paster create-test-data
&lt;/li&gt;&lt;li&gt;paster sysadmin create &lt;a class="ext-link" href="http://davidread.myopenid.com/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://davidread.myopenid.com/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;paster serve development.ini
&lt;/li&gt;&lt;li&gt;In browser, log in to CKAN
&lt;/li&gt;&lt;li&gt;Create new package: name=abc group=Roger's books
&lt;/li&gt;&lt;li&gt;[Preview] - yes group appears
&lt;/li&gt;&lt;li&gt;[Save] - shows package and group hasn't appeared ERROR
&lt;/li&gt;&lt;li&gt;Check &lt;a class="ext-link" href="http://127.0.0.1:5000/api/rest/package/abc"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://127.0.0.1:5000/api/rest/package/abc&lt;/a&gt; and reedit package it also doesn't appear here either.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/700</link>
        <guid isPermaLink="false">http://localhost/ticket/700</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#701: The system shall support changing package groups when editing a package</title>
                  <description></description>
        <link>http://localhost/ticket/701</link>
        <guid isPermaLink="false">http://localhost/ticket/701</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#702: The system shall support changing package groups when editing a package</title>
                  <description></description>
        <link>http://localhost/ticket/702</link>
        <guid isPermaLink="false">http://localhost/ticket/702</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#703: Add package to package group using the package form fieldset</title>
                  <description></description>
        <link>http://localhost/ticket/703</link>
        <guid isPermaLink="false">http://localhost/ticket/703</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#704: Remove package from package group using the packge form fieldset</title>
                  <description></description>
        <link>http://localhost/ticket/704</link>
        <guid isPermaLink="false">http://localhost/ticket/704</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#705: Show package groups on the package read page</title>
                  <description></description>
        <link>http://localhost/ticket/705</link>
        <guid isPermaLink="false">http://localhost/ticket/705</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#706: Test for removing package from package group using the package form fieldset</title>
                  <description></description>
        <link>http://localhost/ticket/706</link>
        <guid isPermaLink="false">http://localhost/ticket/706</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#707: Test for adding package to package group using the package form fieldset</title>
                  <description></description>
        <link>http://localhost/ticket/707</link>
        <guid isPermaLink="false">http://localhost/ticket/707</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#708: Test for showing package groups on package read page</title>
                  <description></description>
        <link>http://localhost/ticket/708</link>
        <guid isPermaLink="false">http://localhost/ticket/708</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#709: Metadata document extracted from CSW GetRecordById response</title>
                  <description></description>
        <link>http://localhost/ticket/709</link>
        <guid isPermaLink="false">http://localhost/ticket/709</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#710: CSW GetRecordById request for given identifier</title>
                  <description></description>
        <link>http://localhost/ticket/710</link>
        <guid isPermaLink="false">http://localhost/ticket/710</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#711: Packages shall support both UK government and location information with a common set of attributes</title>
                  <description>&lt;p&gt;
Previously, a package type attribute was intended to distinguish between package data that came from government depts. and publishers location information (GEMINI). Now there is an intention use a common set of attributes to support data from either source.
&lt;/p&gt;
&lt;p&gt;
Hence, there currently a v.3 of the government attributes, a document about extracting the attributes from Gemini document using XPath, and a comparison documents mapping between governemtn attributes and Gemini attributes.
&lt;/p&gt;
&lt;p&gt;
That means there are potentially four different list of attributes. I'm not sure how to go about reviewing the lists and converging any differences.
&lt;/p&gt;
&lt;p&gt;
But we do want to end up with a list of names, a description of their purpose, and then perhaps the XPath which would reveal the value from a Gemini doc?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/711</link>
        <guid isPermaLink="false">http://localhost/ticket/711</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#712: Model government data package with "v0.4" of the attributes</title>
                  <description>&lt;p&gt;
Where said "v0.4" would be the result of converging four lists mentioned in requirement &lt;a class="closed ticket" href="http://localhost/ticket/711" title="requirement: Packages shall support both UK government and location information with a ... (closed: fixed)"&gt;#711&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/712</link>
        <guid isPermaLink="false">http://localhost/ticket/712</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#713: Review four definitions of DGU package attributes</title>
                  <description></description>
        <link>http://localhost/ticket/713</link>
        <guid isPermaLink="false">http://localhost/ticket/713</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#714: DGU package form shall have a read only field for ??? attribute</title>
                  <description>&lt;p&gt;
So that Drupal doesn't need to make any adjustments to the form, and risk data being lost on submission.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/714</link>
        <guid isPermaLink="false">http://localhost/ticket/714</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#715: The group list page shall show the group title *or* group name</title>
                  <description>&lt;p&gt;
Symptom &lt;a class="closed ticket" href="http://localhost/ticket/1" title="enhancement: Visitor visits service (closed: fixed)"&gt;#1&lt;/a&gt;: Groups without titles don't get a clickable link, because there is no text. Defaulting to the group name would solve this trouble.
Symptom &lt;a class="closed ticket" href="http://localhost/ticket/2" title="enhancement: Register as user on the service (closed: fixed)"&gt;#2&lt;/a&gt;: Package groups drop-down list show's 'None' when a group doesn't have a title.
&lt;/p&gt;
&lt;p&gt;
Therefore, we need to centralize presentation of group title, so it defers to group name. And we need tests.
&lt;/p&gt;
&lt;p&gt;
Also please sort groups by title on group list page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/715</link>
        <guid isPermaLink="false">http://localhost/ticket/715</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#716: Visual improvments to IATI CKAN</title>
                  <description></description>
        <link>http://localhost/ticket/716</link>
        <guid isPermaLink="false">http://localhost/ticket/716</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#717: Fix and validate "setup_default_user_roles" in IATI</title>
                  <description></description>
        <link>http://localhost/ticket/717</link>
        <guid isPermaLink="false">http://localhost/ticket/717</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#718: Show recent activities on home page</title>
                  <description></description>
        <link>http://localhost/ticket/718</link>
        <guid isPermaLink="false">http://localhost/ticket/718</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#719: Improve overall layout of IATI</title>
                  <description>&lt;p&gt;
... probably by adapting aidtransparency.net
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/719</link>
        <guid isPermaLink="false">http://localhost/ticket/719</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#720: Include CMS pages in IATI registry</title>
                  <description>&lt;p&gt;
Perhaps using deliverance?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Move About to the right of the nav tabs and make it an about IATI page
&lt;/li&gt;&lt;li&gt;Make a Help / FAQ section linked of main menu
&lt;/li&gt;&lt;li&gt;Front page more dynamic - latest data registered and news (microblog thing)
&lt;/li&gt;&lt;li&gt;make the front page blurb noticable / shorter etc.
&lt;/li&gt;&lt;li&gt;link to iatistandard.org from the front page blurb
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/720</link>
        <guid isPermaLink="false">http://localhost/ticket/720</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#721: Make the table preview a link to a new page.</title>
                  <description></description>
        <link>http://localhost/ticket/721</link>
        <guid isPermaLink="false">http://localhost/ticket/721</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#722: Further adapt l10n for IATI</title>
                  <description>&lt;ul&gt;&lt;li&gt;Change "Publishing Entity" to "Publisher"
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/722</link>
        <guid isPermaLink="false">http://localhost/ticket/722</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#723: Hide action links pointing to unavailable actions (package create)</title>
                  <description></description>
        <link>http://localhost/ticket/723</link>
        <guid isPermaLink="false">http://localhost/ticket/723</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#724: Improve publisher workflow</title>
                  <description></description>
        <link>http://localhost/ticket/724</link>
        <guid isPermaLink="false">http://localhost/ticket/724</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#725: Change to allow anyone (logged in) to create a publisher</title>
                  <description>&lt;p&gt;
With a pending state set ("unapproved")
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/725</link>
        <guid isPermaLink="false">http://localhost/ticket/725</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#726: Send message to sysadmins to approve new publishers</title>
                  <description></description>
        <link>http://localhost/ticket/726</link>
        <guid isPermaLink="false">http://localhost/ticket/726</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#727: Sysadmin can approve a publisher</title>
                  <description></description>
        <link>http://localhost/ticket/727</link>
        <guid isPermaLink="false">http://localhost/ticket/727</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#728: CSW Harvesting shall be optimised in respect of reharvesting only records that have changed</title>
                  <description>&lt;p&gt;
Hi Will, this is important again because some CSW servers we use have over 300 documents in. Could you take a look at modifying the filter please?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/728</link>
        <guid isPermaLink="false">http://localhost/ticket/728</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#729: Assets to be loaded from assets.okfn.org, not m.okfn.org</title>
                  <description>&lt;p&gt;
Move from hetzner box to s3.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/729</link>
        <guid isPermaLink="false">http://localhost/ticket/729</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#730: Back up package data from all CKAN packages to storage.ckan.net</title>
                  <description>&lt;p&gt;
Write a worker that scans all packages in a ckan instance and uploads the data to storage.ckan.net.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Naming scheme?
&lt;ul&gt;&lt;li&gt;Bucket: {ckan-instance-id}-{package-name}? {ckan-instance-id}-{package-id}?
&lt;ul&gt;&lt;li&gt;What happens if names change
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;File: filename? hash?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Store hash back on ckan instance?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/730</link>
        <guid isPermaLink="false">http://localhost/ticket/730</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#731: Geo coverage field losses in Form API</title>
                  <description>&lt;p&gt;
Sometimes editing a package via api on dgu results in some countries being lost in geo coverage.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/731</link>
        <guid isPermaLink="false">http://localhost/ticket/731</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#732: Reproduce and investigate (geo coverage issue)</title>
                  <description></description>
        <link>http://localhost/ticket/732</link>
        <guid isPermaLink="false">http://localhost/ticket/732</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#733: Fix problem (geo coverage issue)</title>
                  <description></description>
        <link>http://localhost/ticket/733</link>
        <guid isPermaLink="false">http://localhost/ticket/733</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#734: Investigate department issue (ONS import)</title>
                  <description>&lt;p&gt;
Creation of duplicate packages named with trailing underscore
&lt;/p&gt;
&lt;p&gt;
ww 22/9/10:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Need to ...
merge some packages (the "find packages by attributes"
is not 100% reliable because of inconsistent data
already in there).
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The "find by tags" algorithm uses (title, department).
Unfortunately some of the data already there has no
department. This causes it to make a new package (with
trailing underscore).
&lt;/p&gt;
&lt;p&gt;
dread 24/9/10:
&lt;/p&gt;
&lt;p&gt;
I've done a test for the missing department issue and I can't
reproduce the problem. This may be due to my general tidy up and
getting tests passing using the latest ckanclient. Anyway, can you
check over my test to see if this is what you mean?:
dgu/ckanext/dgu/tests/ons/test_ons_loader.py:TestOnsLoadMissingDept
&lt;/p&gt;
&lt;p&gt;
ww 20/10/10:
&lt;/p&gt;
&lt;p&gt;
you should uncover it if you run against (a copy of) the dgu database.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/734</link>
        <guid isPermaLink="false">http://localhost/ticket/734</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#735: Investigate 'deduping' (ONS import)</title>
                  <description>&lt;p&gt;
ww 22/9/10:
&lt;/p&gt;
&lt;p&gt;
(discussion of &lt;a class="closed ticket" href="http://localhost/ticket/509" title="story: ONS data imported daily (closed: invalid)"&gt;ticket:509&lt;/a&gt;) This leads us to deduping which
should be the next order of business oin this thread...
&lt;/p&gt;
&lt;p&gt;
ww 20/10/10:
&lt;/p&gt;
&lt;p&gt;
if a dataset is missing a department and the ons script makes a new version of it with a department we now have two reccords for the same dataset. these should be manually merged - need a merge tool where you can tell it that two datasets are the same.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/735</link>
        <guid isPermaLink="false">http://localhost/ticket/735</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#736: URL validation for CSW and WMS links</title>
                  <description>&lt;p&gt;
Robust against slightly incorrect URLs (e.g. with trailing slash, or without /csw), and non-CWS service which also return &amp;lt;ows:ExceptionReport ... /&amp;gt;.
&lt;/p&gt;
&lt;p&gt;
Both cases would be resolved by checking capabilities (with CswClient's  check_get_capabilities() method).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/736</link>
        <guid isPermaLink="false">http://localhost/ticket/736</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#737: Markdown syntax summary page</title>
                  <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>
        <link>http://localhost/ticket/737</link>
        <guid isPermaLink="false">http://localhost/ticket/737</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#738: Store revisions of harvested documents</title>
                  <description></description>
        <link>http://localhost/ticket/738</link>
        <guid isPermaLink="false">http://localhost/ticket/738</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#739: The system shall support retrieving a copy of the harvested metadata for a given package</title>
                  <description>&lt;p&gt;
...obviously, not all packages will have a harvested metadata document.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/739</link>
        <guid isPermaLink="false">http://localhost/ticket/739</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#740: Get copy of harvested metadata for a given package</title>
                  <description></description>
        <link>http://localhost/ticket/740</link>
        <guid isPermaLink="false">http://localhost/ticket/740</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ollyc</dc:creator>

                  <title>#741: Extension / Plugin system for CKAN</title>
                  <description>&lt;p&gt;
Create plugin system using
&amp;lt;&lt;a class="ext-link" href="http://pypi.python.org/pypi/pyutilib.component.core/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://pypi.python.org/pypi/pyutilib.component.core/&lt;/a&gt;&amp;gt;
&lt;/p&gt;
&lt;p&gt;
Specification in CEP-003 (&lt;a class="source" href="http://localhost/browser/doc/cep/cep-003.txt"&gt;browser:doc/cep/cep-003.txt&lt;/a&gt;) and &amp;lt;&lt;a class="ext-link" href="http://okfnpad.org/ckan-plugins"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://okfnpad.org/ckan-plugins&lt;/a&gt;&amp;gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/741</link>
        <guid isPermaLink="false">http://localhost/ticket/741</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#742: Release ckan 1.2 to metastable</title>
                  <description>&lt;p&gt;
Need to make sure &lt;a class="closed ticket" href="http://localhost/ticket/700" title="bug: Groups in package form (closed: fixed)"&gt;#700&lt;/a&gt; is fixed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/742</link>
        <guid isPermaLink="false">http://localhost/ticket/742</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#743: Create harvest source registration via Web UI</title>
                  <description></description>
        <link>http://localhost/ticket/743</link>
        <guid isPermaLink="false">http://localhost/ticket/743</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#744: Update harvest source registration via Web UI</title>
                  <description></description>
        <link>http://localhost/ticket/744</link>
        <guid isPermaLink="false">http://localhost/ticket/744</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#745: Web UI shall accept requests for harvesting jobs</title>
                  <description></description>
        <link>http://localhost/ticket/745</link>
        <guid isPermaLink="false">http://localhost/ticket/745</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#746: Request new harvesting job via Web UI</title>
                  <description></description>
        <link>http://localhost/ticket/746</link>
        <guid isPermaLink="false">http://localhost/ticket/746</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#747: Track harvesting jobs via Web UI</title>
                  <description></description>
        <link>http://localhost/ticket/747</link>
        <guid isPermaLink="false">http://localhost/ticket/747</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#748: Link new sample package to previous sample package of continuous series</title>
                  <description></description>
        <link>http://localhost/ticket/748</link>
        <guid isPermaLink="false">http://localhost/ticket/748</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#749: Fold up continuous series in search results behind newest sample package</title>
                  <description></description>
        <link>http://localhost/ticket/749</link>
        <guid isPermaLink="false">http://localhost/ticket/749</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#750: Get CSW records modified since given time</title>
                  <description></description>
        <link>http://localhost/ticket/750</link>
        <guid isPermaLink="false">http://localhost/ticket/750</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#751: Get harvested document for a given package</title>
                  <description></description>
        <link>http://localhost/ticket/751</link>
        <guid isPermaLink="false">http://localhost/ticket/751</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#752: Change package attribute names used by Gemini harvesting to DGU "v.4"</title>
                  <description></description>
        <link>http://localhost/ticket/752</link>
        <guid isPermaLink="false">http://localhost/ticket/752</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#753: The system shall support filtered harvest of CSW sources</title>
                  <description></description>
        <link>http://localhost/ticket/753</link>
        <guid isPermaLink="false">http://localhost/ticket/753</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#754: Filtering for harvesting sysem</title>
                  <description>&lt;p&gt;
This has once again been ruled out for UKLP for the timebeing.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/754</link>
        <guid isPermaLink="false">http://localhost/ticket/754</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#755: Add filter attribute to harvest source entity</title>
                  <description></description>
        <link>http://localhost/ticket/755</link>
        <guid isPermaLink="false">http://localhost/ticket/755</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#756: Add filter field to harvest source form</title>
                  <description></description>
        <link>http://localhost/ticket/756</link>
        <guid isPermaLink="false">http://localhost/ticket/756</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#757: Create migration script to add harvest source filter attribute to existing tables</title>
                  <description></description>
        <link>http://localhost/ticket/757</link>
        <guid isPermaLink="false">http://localhost/ticket/757</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#758: Change API documentation to indicate harvest source entity has filter attribute</title>
                  <description></description>
        <link>http://localhost/ticket/758</link>
        <guid isPermaLink="false">http://localhost/ticket/758</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#759: Construct and send filtered CSW GetRecords request</title>
                  <description></description>
        <link>http://localhost/ticket/759</link>
        <guid isPermaLink="false">http://localhost/ticket/759</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#760: Change "CSW Get Records" request class to accept and used given CSW filter</title>
                  <description></description>
        <link>http://localhost/ticket/760</link>
        <guid isPermaLink="false">http://localhost/ticket/760</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#761: Read-only CKAN for maintenance</title>
                  <description>&lt;p&gt;
Administrator wants to upgrade CKAN or move it to another server. During this time the database is being administered and either edits are lost or can't be done.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/761</link>
        <guid isPermaLink="false">http://localhost/ticket/761</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#762: Permanently Read-Only CKAN instance</title>
                  <description>&lt;p&gt;
A CKAN is used just for distributing metadata. Updates may still arrive through direct db manipulation, e.g.:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;another (but writable) CKAN instance is connected to the same db
&lt;/li&gt;&lt;li&gt;restoring database dumps from another CKAN db
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/762</link>
        <guid isPermaLink="false">http://localhost/ticket/762</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#763: Read-only mode - Setup</title>
                  <description>&lt;p&gt;
Admin configures entering read-only mode in one of two places:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CKAN config file (e.g. ckan.ini)
&lt;/li&gt;&lt;li&gt;environment variable from Apache config
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Once enabled, no writes can occur to the database (including user ratings and other usage stats).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/763</link>
        <guid isPermaLink="false">http://localhost/ticket/763</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#764: Read-only CKAN Web UI</title>
                  <description>&lt;p&gt;
Whilse using CKAN web interface, you are not tempted to edit stuff:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;You know at all times this CKAN is read-only
&lt;/li&gt;&lt;li&gt;All editing facilities are still seen but greyed-out with an indication why it is.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/764</link>
        <guid isPermaLink="false">http://localhost/ticket/764</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#765: Read-only mode - API usage</title>
                  <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>
        <link>http://localhost/ticket/765</link>
        <guid isPermaLink="false">http://localhost/ticket/765</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#766: The system shall support harvesting metadata from ArcGIS</title>
                  <description>&lt;p&gt;
Perhaps 80% of the users of the UKLII may be using
ArcGIS.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/766</link>
        <guid isPermaLink="false">http://localhost/ticket/766</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#767: Harvest metadata records from ArcGIS CSW API</title>
                  <description></description>
        <link>http://localhost/ticket/767</link>
        <guid isPermaLink="false">http://localhost/ticket/767</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#768: Obtain example ArcGIS CSW server</title>
                  <description></description>
        <link>http://localhost/ticket/768</link>
        <guid isPermaLink="false">http://localhost/ticket/768</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#769: Tests for harvesting metadata from ArcGIS CSW API</title>
                  <description></description>
        <link>http://localhost/ticket/769</link>
        <guid isPermaLink="false">http://localhost/ticket/769</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#770: Improve the paster harvester help command</title>
                  <description>&lt;p&gt;
Issue 1. Help command without arguments fails:
&lt;/p&gt;
&lt;p&gt;
$paster help --plugin ckan --config development.ini
&lt;/p&gt;
&lt;p&gt;
gives:
&lt;/p&gt;
&lt;p&gt;
EITHER
&lt;/p&gt;
&lt;p&gt;
Command help not recognized
&lt;/p&gt;
&lt;p&gt;
OR
&lt;/p&gt;
&lt;p&gt;
paster help: error: no such option: --plugin
&lt;/p&gt;
&lt;p&gt;
Issue 2: Harvester command with arguments fails.
&lt;/p&gt;
&lt;p&gt;
$ paster harvester
Traceback (most recent call last):
...
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
cmd = self.args&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;IndexError?&lt;/a&gt;: list index out of range
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/770</link>
        <guid isPermaLink="false">http://localhost/ticket/770</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#771: Run CLI help command without arguments</title>
                  <description>&lt;p&gt;
Should return something sensible (currently reports an error).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/771</link>
        <guid isPermaLink="false">http://localhost/ticket/771</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#772: Run CLI harvester command without arguments</title>
                  <description>&lt;p&gt;
Should return help for the harvester (currently crashes).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/772</link>
        <guid isPermaLink="false">http://localhost/ticket/772</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#773: Fix CLI help command to return CLI help message</title>
                  <description></description>
        <link>http://localhost/ticket/773</link>
        <guid isPermaLink="false">http://localhost/ticket/773</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#774: Fix CLI harvester command to return harvester help message</title>
                  <description></description>
        <link>http://localhost/ticket/774</link>
        <guid isPermaLink="false">http://localhost/ticket/774</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#775: Search warning</title>
                  <description>&lt;p&gt;
We're getting this warning a great deal on live servers. Is these really a sign of the system not operating correctly or can we reduce the level to an INFO?
&lt;/p&gt;
&lt;p&gt;
e.g. on hmg.ckan.net:
&lt;/p&gt;
&lt;pre class="wiki"&gt;2010-10-29 17:12:08,262 WARNI [ckan.lib.search.common] NOOP Index: id,package_id,url,format,description,hash,position
2010-10-29 17:12:08,333 WARNI [ckan.lib.search.common] NOOP Index: id,package_id,url,format,description,hash,position
2010-10-29 17:12:08,375 WARNI [ckan.lib.search.common] NOOP Index: id,package_id,url,format,description,hash,position
2010-10-29 17:12:08,406 WARNI [ckan.lib.search.common] NOOP Index: id,package_id,url,format,description,hash,position
2010-10-29 17:12:08,480 WARNI [ckan.lib.search.common] NOOP Index: id,package_id,url,format,description,hash,position
2010-10-29 17:12:08,613 WARNI [ckan.lib.search.common] NOOP Index: id,package_id,url,format,description,hash,position
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/775</link>
        <guid isPermaLink="false">http://localhost/ticket/775</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#776: Avoid generating vdm warnings</title>
                  <description>&lt;p&gt;
We get a host of vdm warnings frequently in the CKAN logs. Are these genuine worries or can they be avoided?
&lt;/p&gt;
&lt;pre class="wiki"&gt;2010-10-29 17:10:06,003 WARNI [vdm] Skipping adding property Package.package_search (PackageSearch) to revisioned object
2010-10-29 17:10:06,015 WARNI [vdm] Skipping adding property Package.all_revisions_unordered (PackageRevision) to revisioned object
2010-10-29 17:10:06,024 WARNI [vdm] Skipping adding property PackageTag.all_revisions_unordered (PackageTagRevision) to revisioned object
2010-10-29 17:10:06,081 WARNI [vdm] Skipping adding property PackageExtra.all_revisions_unordered (PackageExtraRevision) to revisioned object
2010-10-29 17:10:06,105 WARNI [vdm] Skipping adding property PackageResource.all_revisions_unordered (PackageResourceRevision) to revisioned object
2010-10-29 17:10:06,129 WARNI [vdm] Skipping adding property PackageRelationship.all_revisions_unordered (PackageRelationshipRevision) to revisioned object
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/776</link>
        <guid isPermaLink="false">http://localhost/ticket/776</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#777: Put 503-returning middleware into a module</title>
                  <description>&lt;p&gt;
Also configure hmgckan, hmgapi, test-hmg and dev-hmg machines.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/777</link>
        <guid isPermaLink="false">http://localhost/ticket/777</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#778: Package edit form - name auto-generated from title</title>
                  <description></description>
        <link>http://localhost/ticket/778</link>
        <guid isPermaLink="false">http://localhost/ticket/778</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#779: Package edit form - stylesheet in DGU updated</title>
                  <description></description>
        <link>http://localhost/ticket/779</link>
        <guid isPermaLink="false">http://localhost/ticket/779</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#780: Package edit form - 'preview' button shows preview, with form lower in page</title>
                  <description>&lt;p&gt;
This ticket refers to the form shown in Drupal. This doesn't have a preview function, but we don't have a requirement for it right now, so leaving ticket closed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/780</link>
        <guid isPermaLink="false">http://localhost/ticket/780</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#781: Package edit form - 'extra' fields have 'add' and 'delete' buttons</title>
                  <description>&lt;p&gt;
(Just like resource table, but extra fields don't need up/down buttons)
&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>
        <link>http://localhost/ticket/781</link>
        <guid isPermaLink="false">http://localhost/ticket/781</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#782: Add and remove users from sysadmin role from the command line</title>
                  <description>&lt;p&gt;
Need to be able to create (and remove) sysadmins easily (used to be able to do this via ini file but this functionality was removed a while back in authz system reorganization it seems).
&lt;/p&gt;
&lt;p&gt;
Suggest creating a new paster command as first step.
&lt;/p&gt;
&lt;pre class="wiki"&gt;# user identifier = openid (?)
paster sysadmin add {user identifier}
paster sysadmin remove {user identifier}
&lt;/pre&gt;&lt;p&gt;
Suggest this also be added to main CKAN docs.
&lt;/p&gt;
&lt;p&gt;
This should go into metastable as well as default so that it goes into the v1.2 release (can do this via a transplant from one branch to the other)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/782</link>
        <guid isPermaLink="false">http://localhost/ticket/782</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#783: Delete harvested documents when remote metadata disappears from harvest source</title>
                  <description>&lt;p&gt;
We need a condition for 'disappears'. Asked AW about this (prob. in July) but should chase for an answer.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/783</link>
        <guid isPermaLink="false">http://localhost/ticket/783</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#784: End to end testing for UKLP</title>
                  <description></description>
        <link>http://localhost/ticket/784</link>
        <guid isPermaLink="false">http://localhost/ticket/784</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#785: Review document from PP regarding CSW and WAF guidance</title>
                  <description>&lt;p&gt;
Scope of CSW guidance document has been broadened to include WAF.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/785</link>
        <guid isPermaLink="false">http://localhost/ticket/785</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#786: The system shall support deleting a registered harvest source</title>
                  <description></description>
        <link>http://localhost/ticket/786</link>
        <guid isPermaLink="false">http://localhost/ticket/786</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#787: Auth API</title>
                  <description>&lt;p&gt;
Auth Proposal
&lt;/p&gt;
&lt;p&gt;
Use case: We'd like an authenticated and authorized Drupal user to be able to
edit/delete packages using the API
&lt;/p&gt;
&lt;p&gt;
To do this a user would need a CKAN API key so we need some way of Drupal
telling CKAN who a user is so that they can get their API key.
&lt;/p&gt;
&lt;p&gt;
Proposed Implementation
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
A user visits the CKAN API key page to get their key. Because CKAN is at
catalogue.data.gov.uk (a subdomain of the Drupal site) it can read Drupal
cookies.
&lt;/p&gt;
&lt;p&gt;
If there is no &lt;tt&gt;&lt;/tt&gt;DRXtrArgs&lt;tt&gt;&lt;/tt&gt; or &lt;tt&gt;&lt;/tt&gt;DRXtrArgs2&lt;tt&gt;&lt;/tt&gt; cookie, we know the user isn't
signed in so we redirect them to Drupal to sign in.
&lt;/p&gt;
&lt;p&gt;
WISHLIST: It would be really nice if we could pass the URL to redirect back to
Drupal so tha Druapl can send them back to the CKAN API key page
&lt;/p&gt;
&lt;p&gt;
Either way, they get back to CKAN and now the cookies exist. When the first
HTTP request header is sent, CKAN will read the Drupal session ID and then call
a Drupal API, server to server.
&lt;/p&gt;
&lt;p&gt;
TODO: Implement an API on the drupal server which accepts a Drupal session ID
as an argument and returns the username and credentials, but only if the
request if from the CKAN server (perhaps we specify an API key in the request)
&lt;/p&gt;
&lt;p&gt;
If the session is valid CKAN will set its own auth cookie and show them the
page with the API key. CKAN only considers a user signed in if both the CKAN
cookie *and* Drupal session ID are present. If at any time they sign out of
Drupal the Drupal session disappears so they will be signed out of CKAN too.
&lt;/p&gt;
&lt;p&gt;
Now the user has an API key they can use the standard CKAN command line API
tools.
&lt;/p&gt;
&lt;p&gt;
The API key is the only thing the user will need to use the CKAN API. This
poses a problem. What if a user is removed from Drupal but still has a CKAN API
key?
&lt;/p&gt;
&lt;p&gt;
Two solutions:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;API keys will be set to only be valid for the length of a Drupal session so
that a user will only be able to use the write API for a little time after
credentials are revoked
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;CKAN provides an API to allow Drupal to revoke keys
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Option 1. seems easier to me. If we choose this we will write a &lt;tt&gt;&lt;/tt&gt;get_api_key&lt;tt&gt;&lt;/tt&gt;
command line tool so that Drupal user can write things like this:
&lt;/p&gt;
&lt;p&gt;
::
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
datapkg list_packages --api_key &lt;tt&gt;get_api_key&lt;/tt&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The &lt;tt&gt;&lt;/tt&gt;get_api_key&lt;tt&gt;&lt;/tt&gt; function will prompt for username and password and then
perform the steps necessary to get an API key.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/787</link>
        <guid isPermaLink="false">http://localhost/ticket/787</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#788: API user deletes harvest source</title>
                  <description>&lt;p&gt;
Needs to delete all harving jobs and harvested documents, and probably to purge all packages (perhaps just delete?).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/788</link>
        <guid isPermaLink="false">http://localhost/ticket/788</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#789: The harvest source form shall validate location field by positive identification of source type</title>
                  <description></description>
        <link>http://localhost/ticket/789</link>
        <guid isPermaLink="false">http://localhost/ticket/789</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#790: Submit  harvest source form with valid CSW location</title>
                  <description></description>
        <link>http://localhost/ticket/790</link>
        <guid isPermaLink="false">http://localhost/ticket/790</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#791: Submit harvest source form with invalid CSW location</title>
                  <description></description>
        <link>http://localhost/ticket/791</link>
        <guid isPermaLink="false">http://localhost/ticket/791</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#792: Meeting to review pre-alpha testing report from TM</title>
                  <description></description>
        <link>http://localhost/ticket/792</link>
        <guid isPermaLink="false">http://localhost/ticket/792</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#793: Fix up changes in changeset aa9aa32e00a9</title>
                  <description></description>
        <link>http://localhost/ticket/793</link>
        <guid isPermaLink="false">http://localhost/ticket/793</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#794: Investigate reconciling UKLP Publisher and Provider with DGU</title>
                  <description>&lt;p&gt;
This needs more analysis, but the GEMINI2 attribute "metadata point of contact" must be reconciled with the registered publisher (or agent).
&lt;/p&gt;
&lt;p&gt;
This might also be used to filter records harvested from a CSW source, but filtering also needs more analysis, as does distinction between agent and provider.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/794</link>
        <guid isPermaLink="false">http://localhost/ticket/794</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#795: "Match up" GEMINI2 "metadata point of contact" with registered entities</title>
                  <description>&lt;p&gt;
TM wants to know how this will be "matched up". I don't know whether this always the data provider, or sometimes the publisher.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/795</link>
        <guid isPermaLink="false">http://localhost/ticket/795</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#796: AlphaPage for non-latin languages</title>
                  <description>&lt;p&gt;
The &lt;a class="missing wiki"&gt;AlphaPage?&lt;/a&gt; implementation assumes that all packages start with a latin character. This is not true for Russian, Chinese, Arabian and Persian languages etc. We should either use a unicode solution (i.e. display a full class of characters based on the current locale) or use generic paging instead.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/796</link>
        <guid isPermaLink="false">http://localhost/ticket/796</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#797: Rework core html layout to mirror wordpress twentyten</title>
                  <description>&lt;p&gt;
WP twentyten has an excellent core html structure. Furthermore, using that structure makes us compatible with all the WP twentyten compatible themes.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Convert to wp twentyten html
&lt;/li&gt;&lt;li&gt;Switch css to be based off twentyten css (and perhaps rework somewhat)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/797</link>
        <guid isPermaLink="false">http://localhost/ticket/797</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#798: cospread importer using API</title>
                  <description>&lt;p&gt;
Move existing getdata/cospread.py into dgu repo and use the importer/loader mechanism.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/798</link>
        <guid isPermaLink="false">http://localhost/ticket/798</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#799: WAF harvesting shall be optimised in respect of reharvesting only records that have changed</title>
                  <description></description>
        <link>http://localhost/ticket/799</link>
        <guid isPermaLink="false">http://localhost/ticket/799</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#800: Get WAF records modified since given time</title>
                  <description></description>
        <link>http://localhost/ticket/800</link>
        <guid isPermaLink="false">http://localhost/ticket/800</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#801: Get/Set last harvested time for a given harvest source</title>
                  <description>&lt;p&gt;
Implies that last harvested time must be stored on source by harvesting job (see &lt;a class="closed ticket" href="http://localhost/ticket/802" title="story: Save last harvested time on source (closed: duplicate)"&gt;#802&lt;/a&gt;).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/801</link>
        <guid isPermaLink="false">http://localhost/ticket/801</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#802: Save last harvested time on source</title>
                  <description></description>
        <link>http://localhost/ticket/802</link>
        <guid isPermaLink="false">http://localhost/ticket/802</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#803: Auto-generate next migration version unit and test stub files</title>
                  <description>&lt;p&gt;
As a system developer, I want to run 'create next migration version' script, so that I don't have to create migration version tests and files manually.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/803</link>
        <guid isPermaLink="false">http://localhost/ticket/803</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnbywater</dc:creator>

                  <title>#804: Rework analysis for publisher/provider in UKLP</title>
                  <description>&lt;p&gt;
We need an incremental plan that connects with current state of DGU and reflects what is actually required by UKLP.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/804</link>
        <guid isPermaLink="false">http://localhost/ticket/804</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#805: Migration scripts on buildbot</title>
                  <description></description>
        <link>http://localhost/ticket/805</link>
        <guid isPermaLink="false">http://localhost/ticket/805</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#806: Metadata created and last modified timestamps for packages</title>
                  <description>&lt;p&gt;
Packages should provide create and last modified attributes which are included in package dict exposed via api.
&lt;/p&gt;
&lt;p&gt;
These attributes will not be in db but are computed (depend not just on package but related objects -- package tags, package resources, package extras etc)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/806</link>
        <guid isPermaLink="false">http://localhost/ticket/806</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#807: Handle robot traffic better</title>
                  <description>&lt;p&gt;
We get a lot of robot traffic. Notice that robots are visiting package edit pages. Suggest:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add rel=nofollow to various links
&lt;/li&gt;&lt;li&gt;Throttle some robots (not all seem to respect robots.txt)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/807</link>
        <guid isPermaLink="false">http://localhost/ticket/807</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#808: Allow i18n language choice on site (and possibly set automatically)</title>
                  <description>&lt;p&gt;
Allow choice of language on ckan instance.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Configuration variable listing language choices (could try doing this automatically but recommend against this)
&lt;/li&gt;&lt;li&gt;Switcher option in UI (perhaps on user profile page)
&lt;/li&gt;&lt;li&gt;Default it automatically based on browser settings (?)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Think this is high value (and cost is low)
&lt;/p&gt;
&lt;p&gt;
Cost: low (4h)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/808</link>
        <guid isPermaLink="false">http://localhost/ticket/808</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#809: Link to the Wiki pages in package form</title>
                  <description>&lt;p&gt;
This would allow for a community-driven definition of field values, conventions, etc.
&lt;/p&gt;
&lt;p&gt;
Plus: create wiki.ckan.net
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/809</link>
        <guid isPermaLink="false">http://localhost/ticket/809</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#810: Move "add packages" field up in group form</title>
                  <description>&lt;p&gt;
Subticket of forms super ticket &lt;a class="closed ticket" href="http://localhost/ticket/961" title="enhancement: [super] Refactoring of forms, validation and model synchronization (closed: fixed)"&gt;#961&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/810</link>
        <guid isPermaLink="false">http://localhost/ticket/810</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#811: Extra field editing form layout breaks when there are long field names</title>
                  <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>
        <link>http://localhost/ticket/811</link>
        <guid isPermaLink="false">http://localhost/ticket/811</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#812: Package edit form only allows three extra fields</title>
                  <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>
        <link>http://localhost/ticket/812</link>
        <guid isPermaLink="false">http://localhost/ticket/812</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#813: Add link to “Register new package” to the homepage</title>
                  <description>&lt;p&gt;
A link to the “register new package” page would be handy somewhere on the front page. As a frequent editor, I often go to &lt;a class="ext-link" href="http://ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net&lt;/a&gt; in order to create a new package. I don't want to hunt around for the link to the “new package” form.
&lt;/p&gt;
&lt;p&gt;
The link could go into the bar next to “About / Statistics”. Or into the “More information” sidebar. Neither of these truly make sense, but it's a frequently accessed link and that's reason enough to put it somewhere onto the frontpage.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/813</link>
        <guid isPermaLink="false">http://localhost/ticket/813</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#814: Have an “About CKAN” link on every page</title>
                  <description>&lt;p&gt;
A link “About CKAN” pointing to &lt;a class="ext-link" href="http://ckan.net/about"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/about&lt;/a&gt; should be visible on every page. This is important because people often land on subpages and may have trouble figuring out what CKAN is.
&lt;/p&gt;
&lt;p&gt;
I would put this link into the main navigation bar, on the very right next to “Revision History”. Then I would also remove the “Home” item from the main navigation bar because it is redundant. The CKAN logo is already a link to the homepage. The only other subpage in the “Home” section is “Statistics” and that's already linked from the homepage sidebar.
&lt;/p&gt;
&lt;p&gt;
But anywhere else would be fine as well.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/814</link>
        <guid isPermaLink="false">http://localhost/ticket/814</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#815: Autocomplete for the search field</title>
                  <description>&lt;p&gt;
The search field (on the homepage and in the top right corner of each page) should have autocomplete for package name. If a package name is selected, it should not do a search but go straight to the package page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/815</link>
        <guid isPermaLink="false">http://localhost/ticket/815</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#816: Autocomplete for the resource format field</title>
                  <description>&lt;p&gt;
The field for entering the format of a resource should have autocomplete, populated from all the values that have already been entered in this field for any resource.
&lt;/p&gt;
&lt;p&gt;
This would help improve data quality and consistency.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/816</link>
        <guid isPermaLink="false">http://localhost/ticket/816</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#817: Proposed redesign of Resources table on package pages</title>
                  <description>&lt;p&gt;
There are some problems with the Resources table on package pages:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;The column labelled “URL” doesn't contain URLs, but just the word “Download”.
&lt;/li&gt;&lt;li&gt;The links labelled “Download” often are not download links, but something else (example links, API endpoints, documentation links).
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Attached is a screenshot for a proposed redesign. The changes are:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Move the Format column to the right of the Description column (description is more important)
&lt;/li&gt;&lt;li&gt;Make the description a clickable link
&lt;/li&gt;&lt;li&gt;Drop the “URL/Download” column because it's now redundant
&lt;/li&gt;&lt;li&gt;Rename “Description” to “Resource” (not that important)
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/817</link>
        <guid isPermaLink="false">http://localhost/ticket/817</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#818: Rethinking the author and maintainer fields</title>
                  <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>
        <link>http://localhost/ticket/818</link>
        <guid isPermaLink="false">http://localhost/ticket/818</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>cygri</dc:creator>

                  <title>#819: Tag autocompletion widget broken</title>
                  <description>&lt;p&gt;
The widget for tag autocompletion is broken in various ways.
&lt;/p&gt;
&lt;p&gt;
For example, if I edit a package that is tagged "music", and just tab through the form fields to get to the Author field, then the widget changes to "industrial-music" as I tab through it.
&lt;/p&gt;
&lt;p&gt;
Or if the tag is "foo bar" and I hit alt-right to jump to the end of the text field (with the intent of adding a third tag), then the contents change to "foo barbecue".
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/819</link>
        <guid isPermaLink="false">http://localhost/ticket/819</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#820: Exception browsing /user/apikey when not logged in</title>
                  <description>&lt;p&gt;
Should fail gracefully (not the existing 500 error) when you go to ckan.net/user/apikey (manually typing in the url) but haven't logged in.
&lt;/p&gt;
&lt;pre class="wiki"&gt;WebApp Error: &amp;lt;type 'exceptions.AttributeError'&amp;gt;: 'NoneType' object has no attribute 'apikey'
URL: http://test-hmg.ckan.net/user/apikey
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/820</link>
        <guid isPermaLink="false">http://localhost/ticket/820</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#821: Some resources have disappeared in CKAN</title>
                  <description>&lt;p&gt;
Simon has spotted 31 packages whose resources have disappeared in CKAN, but still appear in the Drupal front-end.
&lt;/p&gt;
&lt;p&gt;
Here are the details:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;in CKAN's package view (in web interface, API and dump) no resources display
&lt;/li&gt;&lt;li&gt;but they WERE created in CKAN, as shown by the revision diffs.
&lt;/li&gt;&lt;li&gt;they are in the Drupal front-end
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
So these resources must have been in the CKAN API at some point and then disappeared without trace/revision to alert Drupal.
&lt;/p&gt;
&lt;p&gt;
Packages affected: anti-social-behaviour-orders-1999-2007
asylum-applications-jan-mar-2009
control-of-immigration-quarterly-statistical-summary-united-kingdom-2009-october-december
coroners-statistics-england-and-wales
courts-statistics-user-survey-england-and-wales
court-statistics-company-insolvency-and-bankruptcy-england-and-wales
court-statistics-england-and-wales
court-statistics-mortages-and-landlord-possession-england-and-wales
crime-in-england-and-wales
crime-statistics-local-reoffending-england-and-wales
crime-statistics-prison-and-probation-england-and-wales
crime-statistics-reoffending-of-adults-england-and-wales
crime-statistics-reoffending-of-juvenilles-england-and-wales
data_gov_uk-datasets
digest-uk-energy-statistics-2008
directgov-central-hottest-pages-monthly
directgov-central-internal-search-terms-monthly
directgov-section-visits-monthly
electricity-consumption-2007
electricity-gas-consumption-2007
energy-consumption-uk-2008
final-energy-consumption-2007
foi-statistics-uk-central-government
fuel-poverty-statistics-2007
gas-consumption-2007
gb-reported-bicycling-accidents
gb-road-traffic-counts
gb-traffic-matrix
greenhouse-gas-emissions-2008
high-level-indicators-energy-use-2006
judicial-and-court-statistics-england-and-wales
laboratory-tests-and-prices
local-authority-carbon-dioxide-emissions-2007
magistrates-courts-statistics-survey-england-and-wales
monthly-energy-prices
monthly-energy-trends
ni_012_refused_and_deferred_houses_in_multiple_occupation_hmos_licence_applications_leading_to_immig
ni_013_migrants_english_language_skills_and_knowledge
ni_023_perceptions_that_people_in_the_area_treat_one_another_with_respect_and_consideration
ni_024_satisfaction_with_the_way_the_police_and_local_council_dealt_with_anti-social_behaviour
ni_025_satisfaction_of_different_groups_with_the_way_the_police_and_local_council_dealt_with_anti-so
ni_026_specialist_support_to_victims_of_a_serious_sexual_offence
ni_029_gun_crime_rate
ni_031_re-offending_rate_of_registered_sex_offenders
ni_032_repeat_incidents_of_domestic_violence
ni_034_domestic_violence_-_murder
ni_036_protection_against_terrorist_attack
ni_038_drug_related_class_a_offending_rate
ni_078_reduction_in_number_of_schools_where_fewer_than_30_of_pupils_achieve_5_or_more_a-_c_grades_at
ni_101_looked_after_children_achieving_5_a-c_gcses_or_equivalent_at_key_stage_4_including_english_an
ni_109_delivery_of_sure_start_childrens_centres
ni_126_early_access_for_women_to_maternity_services
ni_127_self_reported_experience_of_social_care_users
ni_128_user_reported_measure_of_respect_and_dignity_in_their_treatment
ni_181_time_taken_to_process_housing_benefit-council_tax_benefit_new_claims_and_change_events
ni_184_food_establishments_in_the_area_which_are_broadly_compliant_with_food_hygiene_law
ni_185_co2_reduction_from_local_authority_operations
ni_190_achievement_in_meeting_standards_for_the_control_system_for_animal_health
ni_194_air_quality_-_reduction_in_nox_and_primary_pm10_emissions_through_local_authorities_estate_an
other-fuels-consumption-2006
police-use-firearms-england-wales-2007-2008
prison-end-of-custody-licence-releases-and-recalls-england-and-wales
prison-population-england-and-wales
probation-offender-management-caseload-statistics-england-and-wales
probation-statistics-quarterly-brief-england-and-wales
quality-indicators-energy-data-2007
quarterly-energy-prices
quarterly-energy-trends
road-transport-energy-consumption-2007
sentencing-statistics-england-and-wales
statistics-terrorism-arrests-outcomes-2001-2008
ukba-control-of-immigration-statistics-2008
ukba-control-of-immigration-statistics-2008-supplementary-tables
uk-energy-in-brief-2008
uk-energy-sector-indicators-background-2008
uk-energy-sector-indicators-key-supporting-2008
uk-exportcontrollists
uk-exportcontrol-sanctions
uk-export-control-statistics
uk-glossary-exportcontrol
uk-ipo-offences
weekly-fuel-prices
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/821</link>
        <guid isPermaLink="false">http://localhost/ticket/821</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>Javier de la Cueva &lt;jdelacueva@…&gt;</dc:creator>

                  <title>#822: Docs: Configuration as site-available instead of site-enabled for apache</title>
                  <description>&lt;p&gt;
The documentation for setting up Apache uses sites-enabled instead of sites-available and a2ensite demo.ckan.net
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/822</link>
        <guid isPermaLink="false">http://localhost/ticket/822</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#823: Etags cache doesn't update when only non-core package fields changed.</title>
                  <description>&lt;ol&gt;&lt;li&gt;Create a package.
&lt;/li&gt;&lt;li&gt;Edit package and add a resource.
&lt;/li&gt;&lt;li&gt;View package in browser - no sign of the resource - ERROR.
&lt;/li&gt;&lt;li&gt;View package in API - resource is there.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Reason: hash doesn't change because package.revision only takes account of core fields.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/823</link>
        <guid isPermaLink="false">http://localhost/ticket/823</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#824: 'Getdata' moved out of CKAN</title>
                  <description>&lt;p&gt;
Data importers should use API instead of object model directly:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;saves load on server
&lt;/li&gt;&lt;li&gt;much better error checking and authentication
&lt;/li&gt;&lt;li&gt;eating our own dogfood (tests the API well)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/824</link>
        <guid isPermaLink="false">http://localhost/ticket/824</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#825: Document fabric tool</title>
                  <description></description>
        <link>http://localhost/ticket/825</link>
        <guid isPermaLink="false">http://localhost/ticket/825</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#826: Resource 'extra' fields</title>
                  <description>&lt;p&gt;
There are a number of extra properties we want to store in a resource:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;resource size (in bytes, no. triples etc.) - &lt;a class="ext-link" href="https://trac.dataco.coi.gov.uk/projects/datagov/ticket/673"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://trac.dataco.coi.gov.uk/projects/datagov/ticket/673&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;resource hash is 'static' (default) or 'changeable' - &lt;a class="ext-link" href="https://trac.dataco.coi.gov.uk/projects/datagov/ticket/674"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://trac.dataco.coi.gov.uk/projects/datagov/ticket/674&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;alternative link (e.g. TNA Web Archive) to use the link is broken - &lt;a class="ext-link" href="https://trac.dataco.coi.gov.uk/projects/datagov/ticket/173"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://trac.dataco.coi.gov.uk/projects/datagov/ticket/173&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
i.e. this is a much needed enhancement
&lt;/p&gt;
&lt;p&gt;
Need to be able to read/write these values in web interface and API.
&lt;/p&gt;
&lt;p&gt;
(At some point we may wish to have custom form widgets for these new fields in the resource table, but let's leave this for the future.)
&lt;/p&gt;
&lt;h1 id="Implementation"&gt;Implementation&lt;/h1&gt;
&lt;p&gt;
I suggest these are arbitrary key/value pairs, just like package extras, reusing &lt;a class="missing wiki"&gt;PackageExtra?&lt;/a&gt; code as much as possible.
(Other much more radical alternative is to move model to RDF.)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/826</link>
        <guid isPermaLink="false">http://localhost/ticket/826</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#827: metadata_created_and_modified error</title>
                  <description>&lt;p&gt;
Intermittent failure on ckan default branch. Looks like brittle test.
&lt;/p&gt;
&lt;pre class="wiki"&gt;======================================================================
FAIL: ckan.tests.models.test_package.TestPackageRevisions.test_02_metadata_created_and_modified
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/buildslave/okfn/full/build/buildandsmoke/pyenv/lib/python2.6/site-packages/nose/case.py", line 186, in runTest
    self.test(*self.arg)
  File "/home/buildslave/okfn/full/build/buildandsmoke/pyenv/src/ckan/ckan/tests/models/test_package.py", line 250, in test_02_metadata_created_and_modified
    assert out == exp, (out, exp)
AssertionError: (datetime.datetime(2010, 11, 25, 4, 37, 52, 949380), datetime.datetime(2010, 11, 25, 4, 37, 52, 94938))
&lt;/pre&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://buildbot.okfn.org/builders/builder-ckan/builds/589/steps/shell/logs/stdio"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://buildbot.okfn.org/builders/builder-ckan/builds/589/steps/shell/logs/stdio&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/827</link>
        <guid isPermaLink="false">http://localhost/ticket/827</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#828: Update cache support in home controller to use cache config in ini file</title>
                  <description>&lt;p&gt;
Currently cache usage in home controller is inconsistent with elsewhere and, in particular, does not respect cache_disabled and is not configurable using path notation (e.g. ckan.controllers.home. ...).
&lt;/p&gt;
&lt;p&gt;
This is especially frustrating in a development environment where is currently running into fact front page is being cached.
&lt;/p&gt;
&lt;p&gt;
Fix this.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/828</link>
        <guid isPermaLink="false">http://localhost/ticket/828</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#829: Admin CRUD broken</title>
                  <description>&lt;p&gt;
Browsing to the admin interface /admin (even logged in as a sysadmin) gives an exception.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/829</link>
        <guid isPermaLink="false">http://localhost/ticket/829</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#830: Themes for CKAN</title>
                  <description>&lt;p&gt;
Already have the basic capacity using *_extras paths for templates and public directory (see &lt;a class="ext-link" href="http://wiki.okfn.org/ckan/doc/theme"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.okfn.org/ckan/doc/theme&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
However, would be nice to have a proper 'theme' structure (e.g. would allow for theme switching) that also avoids directly polluting 'public'. Could be inspired by: &lt;a class="ext-link" href="http://packages.python.org/Flask-Themes/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://packages.python.org/Flask-Themes/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/830</link>
        <guid isPermaLink="false">http://localhost/ticket/830</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#831: Migrate ckan trac to ckan.org</title>
                  <description>&lt;p&gt;
Move ckan trac to new ckan.org location. Will also need to re-enable user accounts etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/831</link>
        <guid isPermaLink="false">http://localhost/ticket/831</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#832: Convert stats to a plugin</title>
                  <description>&lt;p&gt;
Convert stats section to a ckan plugin.
&lt;/p&gt;
&lt;p&gt;
Stats need not be in core and making it a plugin would make it easier to extend and expand.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/832</link>
        <guid isPermaLink="false">http://localhost/ticket/832</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#833: [super] Administrative dashboard extension</title>
                  <description>&lt;p&gt;
Create an admin dashboard as /ckan-admin/ allowing for admin operations and overview.
&lt;/p&gt;
&lt;p&gt;
Possible features:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Purge revisions (or sets of revisions) and purge objects &lt;a class="closed ticket" href="http://localhost/ticket/1076" title="enhancement: Improve revision and package purge system (closed: fixed)"&gt;#1076&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Set roles for users &lt;a class="closed ticket" href="http://localhost/ticket/1075" title="enhancement: Administrative dashboard - Edit Authorization related to System object (closed: fixed)"&gt;#1075&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Put system into particular modes e.g. wiki mode (anyone can add, edit packages by default), data portal (only sysadmins or members of a special Editor group can create and edit packages)
&lt;ul&gt;&lt;li&gt;WONTFIX
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Overview of activity
&lt;ul&gt;&lt;li&gt;WONTFIX - already have revision log
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Currently have an admin section using the formalchemy admin controller to provide basic editing of model objects. This can still be used but located at /admin/model/.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckanext-admin"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckanext-admin&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id="Tickets"&gt;Tickets&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1031" title="enhancement: User lookup API (closed: fixed)"&gt;ticket:1031&lt;/a&gt; - user autocomplete api in ckan
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Notes"&gt;Notes&lt;/h3&gt;
&lt;p&gt;
Here's putting into restricted mode (plus creating a dedicated authz group so that others can admin sysadmin simply through that group):
&lt;/p&gt;
&lt;pre class="wiki"&gt;# first remove permissions from roles
# this is hacky but have to do it because we hardcode assignment of
# role permissions on package on package create (see model/authz.py)
paster roles deny editor edit
paster roles deny editor create-authorization-group
paster roles deny editor create-group
paster roles deny editor create-package
paster roles deny reader create-package
# make superuser group
# create authz group administrators / Administrators (if not exists)
paster rights make agroup:administrators admin system
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/833</link>
        <guid isPermaLink="false">http://localhost/ticket/833</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>Alexander</dc:creator>

                  <title>#834: Searching in CKAN</title>
                  <description>&lt;p&gt;
Hello.
&lt;/p&gt;
&lt;p&gt;
I've installed stable CKAN v1.1 from PyPI.
&lt;/p&gt;
&lt;p&gt;
I can't find any docs about using CKAN API in order to query packages.
&lt;/p&gt;
&lt;p&gt;
Query ./api/search/package?q=str works fine, but with extra parameters, such as limit, offset, fullinfo, order_by, search_notes, don't. Should I use new version for this? How can I perform this query via Ckanclient? Is it possible?
&lt;/p&gt;
&lt;p&gt;
Also I'm interested how to find open-licensed files? I tied URL ./api/search/package?q=str&amp;amp;open_only=1&amp;amp;downloadable_only=1 and Ckanclient:
&lt;/p&gt;
&lt;p&gt;
result = ckan.package_search('str', {'open_only': 1, 'downloadable_only': 1})
&lt;/p&gt;
&lt;p&gt;
As result nothing found.
&lt;/p&gt;
&lt;p&gt;
Thanks.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/834</link>
        <guid isPermaLink="false">http://localhost/ticket/834</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#835: Authorization CLI and Documentation</title>
                  <description>&lt;p&gt;
As a sysadmin I want to take CKAN out of wiki-mode into normal mode. In normal mode visitor and logged in users cannot create or add packages.
&lt;/p&gt;
&lt;p&gt;
Suggest put this as an internal command in authz system and add to cli as paster command.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/835</link>
        <guid isPermaLink="false">http://localhost/ticket/835</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#836: Use site_url config option in templates</title>
                  <description>&lt;p&gt;
A user reported wanting to install ckan at a suburl. Apparently this does not work well because some urls are hard-coded: &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2010-November/000726.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2010-November/000726.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Instead we should use the site_url config option where necessary.
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/836</link>
        <guid isPermaLink="false">http://localhost/ticket/836</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#837: CKAN integration with freebase gridworks / google refine</title>
                  <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>
        <link>http://localhost/ticket/837</link>
        <guid isPermaLink="false">http://localhost/ticket/837</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>memespring</dc:creator>

                  <title>#838: UI improvements December 2010</title>
                  <description>&lt;p&gt;
This is a meta ticket for a bunch of UI changes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/839" title="enhancement: Package page redesign (closed: fixed)"&gt;#839&lt;/a&gt; Package page redesign
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/846" title="enhancement: merge style.css and ckan.css (closed: fixed)"&gt;#846&lt;/a&gt; Merge css files
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/850" title="enhancement: Show welcome message on first visit to package page (closed: fixed)"&gt;#850&lt;/a&gt; Show welcome message
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/863" title="enhancement: prompt users for missing package information (closed: wontfix)"&gt;#863&lt;/a&gt; Prompt users to enter missing info
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/864" title="enhancement: Search results UI changes (closed: fixed)"&gt;#864&lt;/a&gt; Search results changes
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/866" title="enhancement: Include download formats in search results (closed: fixed)"&gt;#866&lt;/a&gt; Add download formats to search results
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/838</link>
        <guid isPermaLink="false">http://localhost/ticket/838</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>anonymous</dc:creator>

                  <title>#839: Package page redesign</title>
                  <description>&lt;p&gt;
as per &lt;a href="http://ckan.org/wiki/UIRedesignPackage"&gt;http://ckan.org/wiki/UIRedesignPackage&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/839</link>
        <guid isPermaLink="false">http://localhost/ticket/839</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#840: On/off switch for ETags cache</title>
                  <description>&lt;ul&gt;&lt;li&gt;Use config variable to switch ETags caching on or off. Consider joining in with 'cache_enabled'.
&lt;/li&gt;&lt;li&gt;Default setting for (all) caching should be off.
&lt;/li&gt;&lt;li&gt;Needs documenting in configuration.rst
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/840</link>
        <guid isPermaLink="false">http://localhost/ticket/840</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#841: Caching docs (as a whole)</title>
                  <description>&lt;p&gt;
Documentation article on caching / improving performance. (To complement configuration docs.)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Different sorts of cache - beaker style, etags, package_dict in search results(?)
&lt;/li&gt;&lt;li&gt;How each one affects performance
&lt;/li&gt;&lt;li&gt;How to turn them on/off and configure them
&lt;/li&gt;&lt;li&gt;Is it possible to bypass each of them in the browser or with wget/curl?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/841</link>
        <guid isPermaLink="false">http://localhost/ticket/841</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#842: Todo list CKAN extension</title>
                  <description>&lt;p&gt;
An extension that provides a todo list feature on CKAN so that people can register and find things to do.
&lt;/p&gt;
&lt;p&gt;
Extension name: ckanext-todo
&lt;/p&gt;
&lt;h2 id="UserStory"&gt;User Story&lt;/h2&gt;
&lt;h3 id="Packagepage"&gt;Package page&lt;/h3&gt;
&lt;p&gt;
As a user I come to a package:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Have a todo count at that top that takes you down to the todo list (which may say nothing todo)
&lt;/li&gt;&lt;li&gt;At the bottom is a section of the package display titled "&lt;a class="missing wiki"&gt;ToDo?&lt;/a&gt;" where I see a list of all toDos for the package most recent at the top
&lt;ul&gt;&lt;li&gt;If I am logged in
&lt;ul&gt;&lt;li&gt;See a form for "Add to do" at the top of the todo section and can add one straight away
&lt;/li&gt;&lt;li&gt;I see a "now resolved" button next to each which goes green when you hover.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
When clicked the todo fades away.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;Not logged in: I see a button that says "login to add todo"
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Todolistpage"&gt;Todo list page&lt;/h3&gt;
&lt;p&gt;
When a user comes to todo overview at /todo
&lt;/p&gt;
&lt;p&gt;
At top list all todo categories with counts (or a progress bar). Click on category name or bar takes you down page to list for that category.
&lt;/p&gt;
&lt;p&gt;
Category list has a list of todo items (ul with li items with class todo) - link to package relevant to the todo.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
The Todo form
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;One of the fields is category -&amp;gt; autocomplete the category (not constrained) (lowercase, no spaces, .-_ allowed)
&lt;/li&gt;&lt;li&gt;Add a description
&lt;/li&gt;&lt;li&gt;Submit, the todo gets added via AJAX to the list at the top as the most recent todo
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Model:
&lt;/p&gt;
&lt;pre class="wiki"&gt;todo table
  id (autoincrement integer)
  package_id
  todo_category_id (required)
  description (required)
  created=NOW()
  resolved=null (unresolved) or a datetime (datetime of resolution)
  creator=user
  resolver=user
todo_category table
  id
  name
Prepopulate with: broken-resource-link, no-author, bad-format, add-description
&lt;/pre&gt;&lt;p&gt;
API at /api/2/todo
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;GET / POST / PUT ...
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
/api/2/todo?package=package_id_or_name&amp;amp;category=...&amp;amp;resolved=0/1
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;support limit (?)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
/api/2/todo/category -&amp;gt; return list of todo categories
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;No GET / PUT / POST (these are auto-created by creation of todo)
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="OptionalExtrasWillnotbedoneatm"&gt;Optional Extras (Will not be done atm)&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Integrate todo tags (e.g. list packages tagged with a todo.{xxx} on Todo List page ...
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/842</link>
        <guid isPermaLink="false">http://localhost/ticket/842</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#843: user list ui for group curation</title>
                  <description>&lt;ul&gt;&lt;li&gt;perhaps we should show the openid as well to distinguish between users with the same name.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;perhaps on account creation, the user should be redirected to their personal details page to encourage them to fill in a human readable name.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;also the list is much too long. can we make it work some other way? javascript is an option, but must be careful to fail gracefully when the browser does not support it.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/843</link>
        <guid isPermaLink="false">http://localhost/ticket/843</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#844: bad mail config ckan.net/ckan.org</title>
                  <description>&lt;p&gt;
ckan.net and ckan.org have no mx record and no listener on port 25. yet they send out mail. this means, when messages it sends bounce for whatever reason, the bounce messages stay in the queue on the remote mail server until they expire. for example:
&lt;/p&gt;
&lt;pre class="wiki"&gt;B30E6D9F       2873 Sat Dec  4 14:05:40  MAILER-DAEMON
(delivery temporarily suspended: connect to ckan.net[46.51.189.76]:25: Operation timed out)
                                         no-reply@ckan.net
&lt;/pre&gt;&lt;p&gt;
both these domains should have an mx record pointing to mail.okfn.org and mail.okfn.org should be configured to handle these addresses correctly, e.g. by sending them to /dev/null
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/844</link>
        <guid isPermaLink="false">http://localhost/ticket/844</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#845: Required fields</title>
                  <description>&lt;p&gt;
Allow a form to specify fields that are required. Currently name and resource url are required.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Show required fields with asterisks by the input box.
&lt;/li&gt;&lt;li&gt;Resource fields to be included in this.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/845</link>
        <guid isPermaLink="false">http://localhost/ticket/845</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>memespring</dc:creator>

                  <title>#846: merge style.css and ckan.css</title>
                  <description>&lt;p&gt;
no need for separate files
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/846</link>
        <guid isPermaLink="false">http://localhost/ticket/846</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#847: CKAN search using SOLR backend</title>
                  <description>&lt;p&gt;
This is a meta-ticket to pull together all the work on SOLR as a backend for CKAN search. (Work on SOLR search has been going on since March of 2010).
&lt;/p&gt;
&lt;p&gt;
3 key aspects of this:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Index package information in SOLR - &lt;a class="closed ticket" href="http://localhost/ticket/353" title="defect: SOLR search indexing (closed: fixed)"&gt;ticket:353&lt;/a&gt; - SOLR search indexing (index CKAN)
&lt;ul&gt;&lt;li&gt;Synchronously (generify Search Index update method to support SOLR or postgres?) - &lt;a class="closed ticket" href="http://localhost/ticket/317" title="enhancement: Make search pluggable (closed: fixed)"&gt;#317&lt;/a&gt;: Make search pluggable
&lt;/li&gt;&lt;li&gt;Asynchroously: via worker with queue
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/324" title="enhancement: Search indexing using notifications (closed: fixed)"&gt;#324&lt;/a&gt; Search indexing using notifications
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/669" title="task: Refactor Solr to become a generic worker (closed: fixed)"&gt;#669&lt;/a&gt;: Refactor Solr (indexer) to become a generic worker
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/874" title="enhancement: Extract solr search backend into an extension (closed: fixed)"&gt;#874&lt;/a&gt;: Extract Solr search backend into an extension
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;In core support using SOLR backend as well as postgres for queries
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/317" title="enhancement: Make search pluggable (closed: fixed)"&gt;#317&lt;/a&gt;: Make search pluggable (?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Integrate into WUI (if changes needed)
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/672" title="enhancement: Facets in CKAN search results (closed: fixed)"&gt;#672&lt;/a&gt; - Facets in CKAN search results
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Extras:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Solr index testing tool &lt;a class="closed ticket" href="http://localhost/ticket/431" title="task: Solr index testing tool (closed: wontfix)"&gt;#431&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/847</link>
        <guid isPermaLink="false">http://localhost/ticket/847</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#848: Ability to hide extras fields on package read</title>
                  <description>&lt;p&gt;
for helsinki regional infoshare.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/848</link>
        <guid isPermaLink="false">http://localhost/ticket/848</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#849: Import extra CSS from main template</title>
                  <description>&lt;p&gt;
The CSS @import directive at the bottom of the main CKAN css file is not understood in all browsers, move this to a seperate import.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/849</link>
        <guid isPermaLink="false">http://localhost/ticket/849</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>memespring</dc:creator>

                  <title>#850: Show welcome message on first visit to package page</title>
                  <description>&lt;p&gt;
Control using cookies.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/850</link>
        <guid isPermaLink="false">http://localhost/ticket/850</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#851: Link Checking</title>
                  <description>&lt;p&gt;
revisit link checker from &lt;a class="ext-link" href="http://knowledgeforge.net/ckan/ckanext/file/tip/ckanext/link_checker.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/ckan/ckanext/file/tip/ckanext/link_checker.py&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
revisit ollyc's parallel work
&lt;/p&gt;
&lt;p&gt;
look at how this gets used in practice (maybe deprecate in favour of curate tool (suitably wrapped to hide details from the user)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/851</link>
        <guid isPermaLink="false">http://localhost/ticket/851</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#852: [super] Dataset upload and archiving</title>
                  <description>&lt;p&gt;
3 (4) use cases: (With and without access to auth keys.)
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;upload form on ckan (by default local system has auth key for storage)
&lt;/li&gt;&lt;li&gt;datapkg upload (client) (by default without key) (plumbing done)
&lt;/li&gt;&lt;li&gt;background job archiving downloads (by queue client)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Most important are:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Upload form on ckan.net (with access to keys)
&lt;/li&gt;&lt;li&gt;API for getting credentials for upload from ckan.net api (without access to keys).
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Aside: Once 2 was done we could deprecate storage.ckan.net
&lt;/p&gt;
&lt;h3 id="Sub-tickets"&gt;Sub-tickets&lt;/h3&gt;
&lt;p&gt;
&lt;strong&gt; Required infrastructure &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/826" title="enhancement: Resource 'extra' fields (closed: fixed)"&gt;#826&lt;/a&gt; - Resource 'extra' fields
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/358" title="enhancement: Resources in REST API (closed: duplicate)"&gt;#358&lt;/a&gt; - Resources in REST API
&lt;/li&gt;&lt;li&gt;&lt;a class="assigned ticket" href="http://localhost/ticket/235" title="enhancement: Resource format normalization and detection (assigned)"&gt;#235&lt;/a&gt; - Resource format normalization and detection
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;strong&gt; User upload via Web UI &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/877" title="enhancement: File upload in WUI (extension) (closed: fixed)"&gt;#877&lt;/a&gt; - File upload in WUI
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/878" title="enhancement: Integrate file upload with workflow around package resources (closed: fixed)"&gt;#878&lt;/a&gt; - Integrate file upload with workflow around package resources
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;strong&gt; User upload via CLI/datapkg &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/853" title="enhancement: Client upload to storage without having primary storage keys (closed: fixed)"&gt;#853&lt;/a&gt; - plumbing for credential-less rest upload
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/879" title="enhancement: Storage auth API (closed: fixed)"&gt;#879&lt;/a&gt; - Storage auth API
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also related:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/405" title="task: Retrieval options for package resources (closed: fixed)"&gt;#405&lt;/a&gt; - Retrieval options for package resources
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="MoreInfo"&gt;More Info&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Upload/storage discussion: &lt;a class="ext-link" href="http://ckan.okfnpad.org/storage"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/storage&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;For api to generate upload key (for e.g. datapkg usage) suggest locating at ckan.net/api/utils/
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/852</link>
        <guid isPermaLink="false">http://localhost/ticket/852</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#853: Client upload to storage without having primary storage keys</title>
                  <description>&lt;p&gt;
Reverse engineer boto and work out how to get headers to support upload to google storage without holding api keys.
&lt;/p&gt;
&lt;p&gt;
This would lead to an extension to OFS.
&lt;/p&gt;
&lt;p&gt;
This analysis should inform (and go hand-in-hand) with the implementation of &lt;a class="closed ticket" href="http://localhost/ticket/879" title="enhancement: Storage auth API (closed: fixed)"&gt;ticket:879&lt;/a&gt; (Storage Auth API in CKAN).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;master ticket &lt;a class="closed ticket" href="http://localhost/ticket/852" title="enhancement: [super] Dataset upload and archiving (closed: fixed)"&gt;#852&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/853</link>
        <guid isPermaLink="false">http://localhost/ticket/853</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#854: Tests for authorization_group</title>
                  <description>&lt;p&gt;
The coverage tool (run by buildbot in the ckan build) reports that only 24% of lines of ckan.controllers.authorization_group are run in tests and 38% of ckan.forms.authorization_group. This suggests a need for more tests.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/854</link>
        <guid isPermaLink="false">http://localhost/ticket/854</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#855: Authenticator tests</title>
                  <description>&lt;p&gt;
The coverage tool (run by buildbot in the ckan build) reports that only 38% of lines of ckan.lib.authenticator are run in tests. This suggests a need for more tests.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/855</link>
        <guid isPermaLink="false">http://localhost/ticket/855</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#856: Tests for caching</title>
                  <description>&lt;p&gt;
Test coverage for ckan.lib.cache is only 40%. Can that be usefully improved?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/856</link>
        <guid isPermaLink="false">http://localhost/ticket/856</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#857: Tests for CLI</title>
                  <description>&lt;p&gt;
Test coverage for ckan.lib.cli is 34%. Need to improve that.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/857</link>
        <guid isPermaLink="false">http://localhost/ticket/857</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#858: Tests for diff</title>
                  <description>&lt;p&gt;
Test coverage for ckan.lib.diff is 24%. Need to improve
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/858</link>
        <guid isPermaLink="false">http://localhost/ticket/858</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#859: Tests for User model</title>
                  <description>&lt;p&gt;
Test coverage of ckan.model.user is 53%. Notable exception - setting password. Room for improvement?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/859</link>
        <guid isPermaLink="false">http://localhost/ticket/859</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#860: full text indexing for semantic.ckan.net</title>
                  <description>&lt;p&gt;
...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/860</link>
        <guid isPermaLink="false">http://localhost/ticket/860</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#861: unicode errors creating rdf output</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://bitbucket.org/ww/ckanrdf/changeset/63b60d3a253d"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/ww/ckanrdf/changeset/63b60d3a253d&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/861</link>
        <guid isPermaLink="false">http://localhost/ticket/861</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#862: deploy rdf on catalogue.data.gov.uk</title>
                  <description>&lt;p&gt;
handle various dgu extras, configure apache for autonegotiation, etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/862</link>
        <guid isPermaLink="false">http://localhost/ticket/862</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>memespring</dc:creator>

                  <title>#863: prompt users for missing package information</title>
                  <description>&lt;p&gt;
e.g. license, owner etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/863</link>
        <guid isPermaLink="false">http://localhost/ticket/863</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>memespring</dc:creator>

                  <title>#864: Search results UI changes</title>
                  <description>&lt;p&gt;
as per &lt;a href="http://ckan.org/wiki/UIRedesignSearch"&gt;http://ckan.org/wiki/UIRedesignSearch&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/864</link>
        <guid isPermaLink="false">http://localhost/ticket/864</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#865: Support external strings in JS</title>
                  <description>&lt;ul&gt;&lt;li&gt;Provide and include a "language.js" file.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/865</link>
        <guid isPermaLink="false">http://localhost/ticket/865</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>memespring</dc:creator>

                  <title>#866: Include download formats in search results</title>
                  <description>&lt;p&gt;
as above
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/866</link>
        <guid isPermaLink="false">http://localhost/ticket/866</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#867: ckanclient raises exceptions</title>
                  <description>&lt;p&gt;
To be more pythonic, raise exceptions when ckanclient gets status which isn't 200.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/867</link>
        <guid isPermaLink="false">http://localhost/ticket/867</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#868: Test improvements</title>
                  <description>&lt;p&gt;
The tests currently take 41 mins to run on most laptops. This slows down development and discourages a test-driven approach.
&lt;/p&gt;
&lt;p&gt;
We'd like to see the tests pass in 5 mins or less (but anything would be an improvement!)
&lt;/p&gt;
&lt;p&gt;
Some suggestions for achieving this include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Upgrading the entire codebase to SQLAlchemy 0.6 so that tests could run against an in-memory SQLite database
&lt;/li&gt;&lt;li&gt;Not setting up and tearing down the database so frequently.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/868</link>
        <guid isPermaLink="false">http://localhost/ticket/868</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#869: Add plugin interface to allow editing and extending of config by extensions</title>
                  <description>&lt;p&gt;
Use case: extensions need to add to template and public search paths if they wish to have templates or extra static files (such as js etc).
&lt;/p&gt;
&lt;p&gt;
Allowing plugins to edit the config dictionary on load would allow this (and more!).
&lt;/p&gt;
&lt;p&gt;
Are there any security considerations here? (Is is bad to allow extensions to make arbitrary changes to the config information?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/869</link>
        <guid isPermaLink="false">http://localhost/ticket/869</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>memespring</dc:creator>

                  <title>#870: Menu items not selecting correctly</title>
                  <description>&lt;p&gt;
Since the main menu items have changed (part of the UI redesign) the selected items are not functioning correctly.
&lt;/p&gt;
&lt;p&gt;
Specifically if Home / About or Add Package / Search are selected both menu items are highlighted.
&lt;/p&gt;
&lt;p&gt;
This is because the code assumes only one top-level menu item per controller.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/870</link>
        <guid isPermaLink="false">http://localhost/ticket/870</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#871: Check whether localhost-only exim installtions need upgrading too</title>
                  <description>&lt;p&gt;
The infamous &lt;a class="ext-link" href="http://www.exim.org/lurker/message/20101207.215955.bb32d4f2.en.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;exim bug&lt;/a&gt; only needs one mail with prepared headers to travel through a exim system infect it. All local processes could do that, and some services (e.g. cron, webapps) send messages and might be convinced by malicious remote users to produce evil headers.
&lt;/p&gt;
&lt;p&gt;
We should either rule out that this could happen on our systems, or upgrade all exims regardless of whether they are localhost-only or not.
&lt;/p&gt;
&lt;p&gt;
BTW did we already run a rootkit checker like &lt;a class="ext-link" href="http://rkhunter.sourceforge.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Rootkit hunter&lt;/a&gt; on eu1? If not we should maybe do it now - there was already an exploit out in the wild. &lt;a class="missing wiki"&gt;ByteMark?&lt;/a&gt; has (a) already observed infections and (b) notified us because they remotely fingerprinted our mailer to be exim&amp;lt;4.70 (our EHLO banner contains the exim version), just as anyone could.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/871</link>
        <guid isPermaLink="false">http://localhost/ticket/871</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#872: ONS loader assigns packages to same package even when dept name changes</title>
                  <description>&lt;p&gt;
Solutions: &lt;a class="missing wiki"&gt;ResourceSeriesLoader?&lt;/a&gt; allows synonyms for values.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/872</link>
        <guid isPermaLink="false">http://localhost/ticket/872</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#873: ONS loader assigns packages to same package even when dept name added manually</title>
                  <description>&lt;p&gt;
e.g. national_child_measurement_programme had no department but "Information Centre for Health and Social Care" for agency, and TNA inferred it should be under department DoH. But now the next ONS update to this series expects a blank department, so creates a new package national_child_measurement_programme_.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/873</link>
        <guid isPermaLink="false">http://localhost/ticket/873</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#874: Extract solr search backend into an extension</title>
                  <description>&lt;p&gt;
Move the solr &lt;a class="missing wiki"&gt;SearchBackend?&lt;/a&gt; to a seperate code base, remove any mentions of the CKAN model.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/874</link>
        <guid isPermaLink="false">http://localhost/ticket/874</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#875: Search backend supports solr interface and query API mimics solr</title>
                  <description>&lt;p&gt;
Consolidate search API interface (and backend) on solr (solrpy) type interface.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Support for standard query structure
&lt;/li&gt;&lt;li&gt;Support for facet options
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Do &lt;strong&gt;not&lt;/strong&gt; need to change response formats. (Or do we?)
&lt;/p&gt;
&lt;p&gt;
2 options here for advanced features like facets in non-solr:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Disable (happens automatically)
&lt;/li&gt;&lt;li&gt;Implement - suggest using group by etc
&lt;/li&gt;&lt;/ol&gt;&lt;h2 id="Extras"&gt;Extras&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Front-page tag cloud: change this to use facets
&lt;ul&gt;&lt;li&gt;Accept this means that if facets not functional in backend we have no tag cloud
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/875</link>
        <guid isPermaLink="false">http://localhost/ticket/875</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#876: Support sqlite as a database backend for CKAN</title>
                  <description>&lt;p&gt;
Among other things this will allow the tests to run much quicker.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/876</link>
        <guid isPermaLink="false">http://localhost/ticket/876</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#877: File upload in WUI (extension)</title>
                  <description>&lt;p&gt;
Support uploading files to a storage system from WUI with a simple upload form.
&lt;/p&gt;
&lt;h3 id="Implementation"&gt;Implementation&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Implement as an &lt;a class="wiki" href="http://localhost/wiki/Extensions"&gt;Extension&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Locate at /upload
&lt;/li&gt;&lt;li&gt;Add new system action/permission (FILE_UPLOAD) and restrict by default to logged in users
&lt;/li&gt;&lt;li&gt;Use OFS + boto -&amp;gt; generate form key (and create the bucket if it doesn't exist? Or do we assume bucket already exists)
&lt;/li&gt;&lt;li&gt;This wants to be tied in to general package workflow. See parent &lt;a class="closed ticket" href="http://localhost/ticket/852" title="enhancement: [super] Dataset upload and archiving (closed: fixed)"&gt;ticket:852&lt;/a&gt;.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/877</link>
        <guid isPermaLink="false">http://localhost/ticket/877</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#878: Integrate file upload with workflow around package resources</title>
                  <description>&lt;p&gt;
Create/edit a package -&amp;gt; add a resource -&amp;gt; Oh, i haven't uploaded yet, 'upload here' -&amp;gt; /upload -&amp;gt; standard upload form
&lt;/p&gt;
&lt;p&gt;
Do we need to create a resource out of the file after upload? Do we sync file metadata with local Resource metadata?
&lt;/p&gt;
&lt;p&gt;
If yes suggests (need to ticket):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;'&lt;a class="missing wiki"&gt;ResourceExtras?&lt;/a&gt;' for extra metadata on resources
&lt;/li&gt;&lt;li&gt;Makes 'Resource' into first class object (and make available in WUI)?
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Depends"&gt;Depends&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/877" title="enhancement: File upload in WUI (extension) (closed: fixed)"&gt;#877&lt;/a&gt; (Upload in WUI) - should be part of that extension
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/878</link>
        <guid isPermaLink="false">http://localhost/ticket/878</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#879: Storage auth API</title>
                  <description>&lt;p&gt;
API to provide credentials to allow authorized 3rd parties (ie. one's with CKAN api keys) to make uploads to storage.
&lt;/p&gt;
&lt;p&gt;
Implement as a CKAN extension.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/879</link>
        <guid isPermaLink="false">http://localhost/ticket/879</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#880: ONS loader tripping up on deleted packages</title>
                  <description>&lt;p&gt;
Deleted packages with the same title and extra fields as an active package trip up the loader. It finds them in the search, but due to ckanclient not using the apikey when you 'get' the package to examine it further, it causes an exception.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/880</link>
        <guid isPermaLink="false">http://localhost/ticket/880</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>fccoelho</dc:creator>

                  <title>#881: http authentication requirement when installing</title>
                  <description>&lt;p&gt;
I am having trouble installing Ckan with virtualenv and pip using pip-requirements.txt due to the Authentication requirements to download the source code.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/881</link>
        <guid isPermaLink="false">http://localhost/ticket/881</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#882: Update i18n user docs and backport genshi i18n:domain fixes from WDMMG</title>
                  <description></description>
        <link>http://localhost/ticket/882</link>
        <guid isPermaLink="false">http://localhost/ticket/882</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#883: uklii harvesting refactor</title>
                  <description>&lt;h2 id="masterticket"&gt;master ticket&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/884" title="enhancement: harvest job delete operation (closed: fixed)"&gt;#884&lt;/a&gt; implement harvest job delete command for an easier life
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/885" title="defect: reimplement csw module to use owslib (closed: fixed)"&gt;#885&lt;/a&gt; move csw code into dedicated ckanext plugin
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/886" title="defect: move uklii forms api to dgu module (closed: duplicate)"&gt;#886&lt;/a&gt; move forms api into dgu extension module
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/887" title="enhancement: move harvesting to generic module (closed: fixed)"&gt;#887&lt;/a&gt; move harvesting code to use generic harvesting module
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/883</link>
        <guid isPermaLink="false">http://localhost/ticket/883</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#884: harvest job delete operation</title>
                  <description>&lt;p&gt;
implement paster subcommand to delete harvest jobs
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/884</link>
        <guid isPermaLink="false">http://localhost/ticket/884</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#885: reimplement csw module to use owslib</title>
                  <description></description>
        <link>http://localhost/ticket/885</link>
        <guid isPermaLink="false">http://localhost/ticket/885</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#886: move uklii forms api to dgu module</title>
                  <description>&lt;p&gt;
doesn't belong in ckan core
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/886</link>
        <guid isPermaLink="false">http://localhost/ticket/886</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#887: move harvesting to generic module</title>
                  <description>&lt;p&gt;
in concert with pudo's work on harvesting different types of documents. should also make it possible to consume, e.g. dcat
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/887</link>
        <guid isPermaLink="false">http://localhost/ticket/887</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#888: Improvements to the dataproxy and the data API</title>
                  <description>&lt;p&gt;
First version of dataproxy and data API working (&lt;a class="closed ticket" href="http://localhost/ticket/698" title="task: CKAN Data API v1 (closed: fixed)"&gt;ticket:698&lt;/a&gt;) but have identified a variety of important improvements. (Should split these into sub-tickets ...):
&lt;/p&gt;
&lt;p&gt;
For dataproxy:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Testing for dataproxy
&lt;ul&gt;&lt;li&gt;Can start by using known good remote urls (moving forward could switch to providing/mocking these locally)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Remove content-lenght for csv requirement: just read the first x rows (up to some configurable maximum)
&lt;/li&gt;&lt;li&gt;Google docs style row/column selections
&lt;/li&gt;&lt;li&gt;Use the swiss library - &lt;a class="ext-link" href="https://bitbucket.org/okfn/swiss"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/swiss&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Support google docs spreadsheets (format = service/gdocs/ccc or gdocs/ccc or gdocs/spreadsheet)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Handle redirects for content-length?
&lt;/li&gt;&lt;li&gt;Ignore resource type if not recognized and fall-back to trying to identify from extension (or mime-type?)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
For dataapi:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Ensure we pass on resource format as part of redirect i.e. /api/data/{id} -&amp;gt; {dataproxy}?url={resource-url}&amp;amp;type={resource-type}
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/888</link>
        <guid isPermaLink="false">http://localhost/ticket/888</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#889: Support extra footer material in config option (e.g. for google analytics)</title>
                  <description>&lt;p&gt;
Add a config option 'template_footer_end' which is inserted in layout_template just before &amp;lt;/body&amp;gt;.
&lt;/p&gt;
&lt;p&gt;
This allows sysadmins to add extra items, especially, scripts directly into site without having to do any theming and is especially useful for things like google analytics.
&lt;/p&gt;
&lt;p&gt;
Aside: going forward may want to turn this into a extension.
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/889</link>
        <guid isPermaLink="false">http://localhost/ticket/889</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#890: Introduce timed actions into ckanext-queue</title>
                  <description>&lt;p&gt;
The ckan queuing system should provide the option to subscribe to timed re-submissions of specific resources. This could look as follows:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;routing_key: Package
&lt;/li&gt;&lt;li&gt;operation: daily
&lt;/li&gt;&lt;li&gt;payload: pkg.as_dict()
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Where operation is one of daily, weekly, monthly or any other interval.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/890</link>
        <guid isPermaLink="false">http://localhost/ticket/890</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#891: Resource download worker daemon</title>
                  <description>&lt;p&gt;
Superticket: &lt;a class="closed ticket" href="http://localhost/ticket/1397" title="enhancement: [super] Resource archiving (closed: fixed)"&gt;#1397&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Write a worker daemon to download all resources from a CKAN instance to a local repository.
&lt;/p&gt;
&lt;h2 id="Questions"&gt;Questions&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Do we only want to download openly licensed information? ANS: no, we do everything (though do need to think about this re. IP issues)
&lt;/li&gt;&lt;li&gt;Should we have clever ways to dump APIs? ANS: no.
&lt;/li&gt;&lt;li&gt;Do we respect robots.txt even for openly licensed information? ANS: No (we're not crawling we're archiving)
&lt;/li&gt;&lt;li&gt;Use HTTP/1.1 Caching headers? ANS: if not changed since we last updated don't bother to recache.
&lt;ul&gt;&lt;li&gt;Complete support for ETags
&lt;/li&gt;&lt;li&gt;Expires, Max-Age etc.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Check
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Functionality"&gt;Functionality&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Download files via HTTP, HTTPS (will not do FTP)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Process:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;[Archiver.Update checks queue (automated as part of celery)]
&lt;/li&gt;&lt;li&gt;Open url and get any info from resource on cache / content-length etc
&lt;ol&gt;&lt;li&gt;If FAILURE status: update task_status table (could retry if not more than 3 failures so far). Report task failure in celery
&lt;/li&gt;&lt;li&gt;Check headers for content-length and content-type ...
&lt;ul&gt;&lt;li&gt;IF: content-length &amp;gt; max_content_length: EXIT (store outcomes on task_status, and update resource with size and content-type and any other info we get?)
&lt;/li&gt;&lt;li&gt;ELSE: check content-type.
&lt;ul&gt;&lt;li&gt;IF: NOT data stuff (e.g. text/html) then EXIT. (store outcomes and info on resource)
&lt;/li&gt;&lt;li&gt;ELSE: archive it (compute md5 hash etc)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;IF: get content-length and content-length unchanged GOTO step 4
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Archive it: connect to storage system and store it. Bucket: from config, Key: /archive/{timestamp}/{resourceid}/filename.ext
&lt;ul&gt;&lt;li&gt;Add cache url to resource and updated date
&lt;/li&gt;&lt;li&gt;Add other relevant info to resource such as md5, content-type etc
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Update task_status
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&lt;/p&gt;
&lt;h2 id="Optionalfunctionality"&gt;Optional functionality&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;If result object is HTML, search for references to "proper data" (CSV download pages etc.)
&lt;/li&gt;&lt;li&gt;Download from POST forms (accepting licenses or weird proprietary systems)
&lt;/li&gt;&lt;li&gt;Support running on Google Apps Engine to save traffic costs.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Existingwork"&gt;Existing work&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckanext-qa/overview"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckanext-qa/overview&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;out of date: &lt;a class="ext-link" href="https://bitbucket.org/pudo/ckanextarchive"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/pudo/ckanextarchive&lt;/a&gt; - Old archiver extension, largely experimental.
&lt;/li&gt;&lt;li&gt;out of date: &lt;a class="ext-link" href="https://bitbucket.org/ollyc/ckan/changeset/1b16fbe9aa65"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/ollyc/ckan/changeset/1b16fbe9aa65&lt;/a&gt; - Openness scores by ollyc
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/891</link>
        <guid isPermaLink="false">http://localhost/ticket/891</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#892: Make stored data available in WUI - 0.5d</title>
                  <description>&lt;p&gt;
Once we have storage, make the data available in the following ways:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Now have a cached_url field can show in the frontend ...
&lt;/li&gt;&lt;li&gt;Add a [&amp;lt;a href="${cached_url}"&amp;gt;cached&amp;lt;/a&amp;gt;] link to right of real url on resource listing on dataset page.
&lt;/li&gt;&lt;li&gt;On resource page: will not add it yet.
&lt;ul&gt;&lt;li&gt;At the moment no clear place to pu this given nice big download button (could put in list of items on left but that does not seem right and note that it will turn up in big list of info at bottom)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Add test (?)
&lt;/li&gt;&lt;li&gt;Deploy
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/892</link>
        <guid isPermaLink="false">http://localhost/ticket/892</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#893: ExtrasField should not overwrite more specific extras</title>
                  <description>&lt;p&gt;
At the moment, &lt;a class="missing wiki"&gt;ExtrasField?&lt;/a&gt; cannot be used in conjunction with more specific extra fields, such as &lt;a class="missing wiki"&gt;TextExtraField?&lt;/a&gt; or &lt;a class="missing wiki"&gt;SuggestTextExtraField?&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/893</link>
        <guid isPermaLink="false">http://localhost/ticket/893</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#894: harvest from http://locationmetadataeditor.data.gov.uk/geonetwork/srv/csw</title>
                  <description></description>
        <link>http://localhost/ticket/894</link>
        <guid isPermaLink="false">http://localhost/ticket/894</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>memespring</dc:creator>

                  <title>#895: Add version number (or simular) to css/js includes query string</title>
                  <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>
        <link>http://localhost/ticket/895</link>
        <guid isPermaLink="false">http://localhost/ticket/895</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#896: Distributed Data and Syncing Between CKAN Instances</title>
                  <description>&lt;p&gt;
Based on the ideas in:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="wiki" href="http://localhost/wiki/DistributingChanges"&gt;DistributingChanges&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="wiki" href="http://localhost/wiki/SyncingInstances"&gt;SyncingInstances&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Merging the tickets &lt;a class="closed ticket" href="http://localhost/ticket/296" title="enhancement: Commit CKAN revisions to changeset system (closed: duplicate)"&gt;#296&lt;/a&gt;, &lt;a class="closed ticket" href="http://localhost/ticket/297" title="enhancement: Update CKAN repository from changeset system (closed: duplicate)"&gt;#297&lt;/a&gt;, &lt;a class="closed ticket" href="http://localhost/ticket/298" title="enhancement: Pull changesets from remote CKAN instance (closed: duplicate)"&gt;#298&lt;/a&gt;, &lt;a class="closed ticket" href="http://localhost/ticket/299" title="enhancement: Merge diverging lines of changesets (closed: duplicate)"&gt;#299&lt;/a&gt; into this one.
&lt;/p&gt;
&lt;p&gt;
Related ideas include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Using dcat to exchange data
&lt;/li&gt;&lt;li&gt;Using couchDB to have a stub package record synchronised between multiple CKAN instances, each linking to the main record in the correct instance
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This should be considered a wishlist item for the timebeing.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/896</link>
        <guid isPermaLink="false">http://localhost/ticket/896</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#897: "New package" highlighted in Navigator when searching</title>
                  <description>&lt;p&gt;
On ckan.net 1.3.1b, click on "Search" in the Navigator. Now both "Search" and "New Package" are highlighted.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/897</link>
        <guid isPermaLink="false">http://localhost/ticket/897</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#898: Changes stored indefinitely</title>
                  <description>&lt;p&gt;
Every change to every object is being stored in memory, which could add up to quite a lot of memory.
&lt;/p&gt;
&lt;p&gt;
This fixes it by making sure the objects are in a weakref.  &lt;a class="ext-link" href="https://bitbucket.org/kindly/vdm/changeset/8d5f91db641f"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/kindly/vdm/changeset/8d5f91db641f&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/898</link>
        <guid isPermaLink="false">http://localhost/ticket/898</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#899: Optimise check_real_change</title>
                  <description>&lt;p&gt;
There is no need to re-query the database to detect if there has been a changed as sqlalchemy knows this. It saves about 15 secs in the ckan tests. &lt;a class="ext-link" href="https://bitbucket.org/kindly/vdm/changeset/0050d023ca4e"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/kindly/vdm/changeset/0050d023ca4e&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
From David Raznick
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/899</link>
        <guid isPermaLink="false">http://localhost/ticket/899</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#900: Intermittent error with new revision not having id</title>
                  <description>&lt;p&gt;
There are still some intermittent errors due to objects not having a revision_id, if you save an object at the same time as the revision.  We add the uuid earlier to fix this.    &lt;a class="ext-link" href="https://bitbucket.org/kindly/vdm/changeset/0050d023ca4e"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/kindly/vdm/changeset/0050d023ca4e&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
From David Raznick
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/900</link>
        <guid isPermaLink="false">http://localhost/ticket/900</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#901: vdm support for sqla 0.6 and sqlite</title>
                  <description></description>
        <link>http://localhost/ticket/901</link>
        <guid isPermaLink="false">http://localhost/ticket/901</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#902: Package buttons not clickable / Improve submenu tabs</title>
                  <description>&lt;p&gt;
On a package page there are three buttons to the right - View, Edit, History. Each of these buttons contain an icon and the text, but you can only activate the button by clicking on the icon. When you click on the part of the button where the text is (about 50% of the button) then nothing happens.
&lt;/p&gt;
&lt;p&gt;
Using: Chrome, Firefox
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/902</link>
        <guid isPermaLink="false">http://localhost/ticket/902</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#903: Proper handling of deleted packages in Solr serps</title>
                  <description>&lt;p&gt;
Currently, deleted packages are filtered from search results after solr returns. That means result count can drop below the requested number, down to 0. Thus we need to filter before or in Solr.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/903</link>
        <guid isPermaLink="false">http://localhost/ticket/903</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>Stiivi</dc:creator>

                  <title>#904: Review CKAN documentation</title>
                  <description>&lt;p&gt;
What's bad at the moment?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;lack of documentation e.g. config (very poorly documented)
&lt;/li&gt;&lt;li&gt;too many sources of documentation
&lt;/li&gt;&lt;li&gt;no common theming
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Sources:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://ckan.org/"&gt;http://ckan.org/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://packages.python.org/ckan"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://packages.python.org/ckan&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://wiki.okfn.org/ckan/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.okfn.org/ckan/&lt;/a&gt; - user
&lt;/li&gt;&lt;li&gt;Deprecate: &lt;a class="ext-link" href="http://knowledgeforge.net/ckan/doc/ckan/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/ckan/doc/ckan/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Resulting meta-ticket with things to do: &lt;a class="closed ticket" href="http://localhost/ticket/927" title="enhancement: [super] Improvements to CKAN documentation (closed: fixed)"&gt;ticket:927&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/904</link>
        <guid isPermaLink="false">http://localhost/ticket/904</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>Stiivi</dc:creator>

                  <title>#905: Unable to search with accented characters in package names</title>
                  <description>&lt;p&gt;
I have a package with name: "Štatistické prehľady agendy cestovných pasov" and when I try to search for "Štatistické" there are no results.
&lt;/p&gt;
&lt;p&gt;
CKAN setup:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;psql DB with UTF-8 tables
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;psql search backend
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;ckan version: 1.3.1b
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Example:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://verejnedata.sk/package/agenda-cestovnch-pasov"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://verejnedata.sk/package/agenda-cestovnch-pasov&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
try to search for the first word in the package name.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/905</link>
        <guid isPermaLink="false">http://localhost/ticket/905</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>Stiivi</dc:creator>

                  <title>#906: Ability to search without accents for accented words</title>
                  <description>&lt;p&gt;
In Slovakia users are expecting from sites to be able to search without typing accents, for example if they do not have SK keyboard, just US. For example searching for: 'Obyvateľstvo' and 'obyvatelstvo' (population) or 'štatistika' and 'statistika' (statistics) should yield same results.
&lt;/p&gt;
&lt;p&gt;
This should work the other way around as well, as some people might enter entries without accents into CKAN instance and others might search with accents.
&lt;/p&gt;
&lt;p&gt;
For SK language simple ASCII transliteration for searched term and indexed words is sufficient (iconv ASCII&lt;em&gt;TRANSLIT).
&lt;/em&gt;&lt;/p&gt;
</description>
        <link>http://localhost/ticket/906</link>
        <guid isPermaLink="false">http://localhost/ticket/906</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#907: Data previews: preview package resource data in the WUI</title>
                  <description>&lt;p&gt;
As a user I want to preview a dataset ('resource') before downloading it.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
This will be implemented as an &lt;a class="wiki" href="http://localhost/wiki/Extensions"&gt;Extension&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
NB: This ticket requires a way to get data out of a remote url (the dataset). We do &lt;strong&gt;not want to put this data load/streaming into ckan core&lt;/strong&gt; due to a) complexity b) load problems (do not want to take ckan out by accidentally pulling in a 1GB file)
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Need a 'data proxy' - see &lt;a class="closed ticket" href="http://localhost/ticket/698" title="task: CKAN Data API v1 (closed: fixed)"&gt;ticket:698&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/888" title="enhancement: Improvements to the dataproxy and the data API (closed: fixed)"&gt;ticket:888&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Preview using javascript in WUI - do this in an extension &lt;a class="ext-link" href="http://bitbucket.org/okfn/ckanext-dataapi"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/okfn/ckanext-dataapi&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/907</link>
        <guid isPermaLink="false">http://localhost/ticket/907</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#908: Issues deploying extensions with modwsgi / uwsgi</title>
                  <description>&lt;p&gt;
Some extensions import pylons features (such as request) at root.
&lt;/p&gt;
&lt;p&gt;
Have encountered following issues:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;You need to import ckanext before any ckan stuff in your wsgi script (extension stats and dataapi)
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Running under wsgi daemon mode (normal mode is fine!) the front page (front page only) will not work (does not occur with disqus or synchronous_search but does with stats and dataapi extensions). You get errors like this in the log:
&lt;/li&gt;&lt;/ol&gt;&lt;pre class="wiki"&gt;[Mon Jan 17 09:01:19 2011] [error] Exception KeyError: KeyError(-1218594160,) in &amp;lt;module 'threading' from '/usr/lib/python2.6/threading.pyc'&amp;gt; ignored
[Mon Jan 17 09:01:20 2011] [error] Exception AttributeError: "'NoneType' object has no attribute 'clearing'" in &amp;lt;bound method PluginEnvironment.__del__ of  Services for Environment '&amp;lt;default&amp;gt;'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/908</link>
        <guid isPermaLink="false">http://localhost/ticket/908</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#909: DCat importer for CKAN</title>
                  <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>
        <link>http://localhost/ticket/909</link>
        <guid isPermaLink="false">http://localhost/ticket/909</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#910: Refactor CKANrdf to support extras</title>
                  <description>&lt;p&gt;
Extra fields should be represented in some manner.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/910</link>
        <guid isPermaLink="false">http://localhost/ticket/910</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#911: Add pager to dcat-tools/rdfsolr</title>
                  <description></description>
        <link>http://localhost/ticket/911</link>
        <guid isPermaLink="false">http://localhost/ticket/911</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#912: Rethink result row representation in dcat-tools/rdfsolr</title>
                  <description>&lt;ul&gt;&lt;li&gt;Should license go in the bottom line?
&lt;/li&gt;&lt;li&gt;Formats should be styled as in CKAN
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/912</link>
        <guid isPermaLink="false">http://localhost/ticket/912</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#913: Handle licenses in dcat-tools</title>
                  <description>&lt;ul&gt;&lt;li&gt;Create a list of all valid predicates where licenses are stored.
&lt;/li&gt;&lt;li&gt;Create a license normalization registry in GSpread
&lt;/li&gt;&lt;li&gt;Fill spreadsheet from OKD/OSI lists.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/913</link>
        <guid isPermaLink="false">http://localhost/ticket/913</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#914: Handle formats in dcat-tools</title>
                  <description>&lt;ul&gt;&lt;li&gt;Create a list of valid predicates for format information (accessURL et al)
&lt;/li&gt;&lt;li&gt;Execute &lt;a class="assigned ticket" href="http://localhost/ticket/235" title="enhancement: Resource format normalization and detection (assigned)"&gt;#235&lt;/a&gt; via Google Spreadsheets and include in DCat enrichment
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/914</link>
        <guid isPermaLink="false">http://localhost/ticket/914</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#915: Deploy dcat-tools/rdfsolr to publicdata.eu as a placeholder</title>
                  <description>&lt;p&gt;
We should present something there, why not start with a meta-search.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/915</link>
        <guid isPermaLink="false">http://localhost/ticket/915</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#916: Port new vdm to Mongodb</title>
                  <description>&lt;p&gt;
We should create a port of VDM 0.9 for MongoDB to support user editing in WDMMG.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/916</link>
        <guid isPermaLink="false">http://localhost/ticket/916</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#917: Turning off Autoflush in SQLAlchemy</title>
                  <description>&lt;p&gt;
David Raznik: I propose we remove autoflush by default in ckan.  It caused a lot of bugs on the version upgrade due to its magical behavior.
&lt;/p&gt;
&lt;p&gt;
I have a patch in &lt;a class="ext-link" href="https://bitbucket.org/kindly/ckan/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/kindly/ckan/&lt;/a&gt;    on branch   feature_switch_autoflush_off_by_default.
&lt;/p&gt;
&lt;p&gt;
This change simplifies code.  It only took 7 extra flushes/commits to make work and there are over 40 instances that we remove autoflush, so as not to cause error (I have not removed them in the patch yet).
&lt;/p&gt;
&lt;p&gt;
Things to know about using flush:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Most of the time nothing will change.   A commit implies flush.
&lt;/li&gt;&lt;li&gt;You only need to flush if you expect a query to return an object you just saved.    i.e  if you  session.add(obj)  and you expect obj to be in a session.query.
&lt;/li&gt;&lt;li&gt;A flush is handy when you want to get the primary key out before you do a commit.  i.e   session.add(obj);  session.flush();  obj.id  is now generated.
&lt;/li&gt;&lt;li&gt;You can use them as a limited form of nested transaction.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
It increased the performance on the tests by about 5%.  There are less flushes altogether so is faster.
&lt;/p&gt;
&lt;p&gt;
I do not see any downsides.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/917</link>
        <guid isPermaLink="false">http://localhost/ticket/917</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#918: Package preview doesn't show tags or groups</title>
                  <description>&lt;ol&gt;&lt;li&gt;Edit any package
&lt;/li&gt;&lt;li&gt;Hit 'preview'
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Notice that the preview at the bottom doesn't show what tags or groups the package is in.
&lt;/p&gt;
&lt;p&gt;
This is because the new design of the package view only has this info in the sidebar, which is not displayed in the preview.
&lt;/p&gt;
&lt;p&gt;
One might argue that this is ok because the tag is not a central part of the metadata, only used for searching, so it is ok not to preview it. But I wanted to check that this change was a conscious decision.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/918</link>
        <guid isPermaLink="false">http://localhost/ticket/918</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#919: Package preview contains API &amp; datapkg instructions</title>
                  <description>&lt;ol&gt;&lt;li&gt;Edit a package
&lt;/li&gt;&lt;li&gt;Hit 'preview'.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
The preview contains the section "CKAN API / datapkg" which seems irrelevant at this point. Looking at ckan.net previews, the Comments section only appears when you view a package and not when you preview it. This seems more sensible - can this be done for the "CKAN API / datapkg" section too?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/919</link>
        <guid isPermaLink="false">http://localhost/ticket/919</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>hellmann@…</dc:creator>

                  <title>#920: empty tags are kind of confusing</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://ckan.net/tag/linguistsic"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/tag/linguistsic&lt;/a&gt;
doesn't have a single entry, but is still kept and displayed.
&lt;/p&gt;
&lt;p&gt;
It should be purged !!!
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/920</link>
        <guid isPermaLink="false">http://localhost/ticket/920</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#921: Refactor DGU Harvesting</title>
                  <description>&lt;p&gt;
Refactor harvesting code to simplify.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/921</link>
        <guid isPermaLink="false">http://localhost/ticket/921</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#922: Make Resources first class entity.</title>
                  <description>&lt;p&gt;
Why?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Will make it easier to give resources their own form, independent of packages.
&lt;/li&gt;&lt;li&gt;Makes uploading, harvesting and previewing data cleaner as its separate from the packages.
&lt;/li&gt;&lt;li&gt;Gives the option of sharing a resource between packages.
&lt;/li&gt;&lt;li&gt;Leads the way to supporting storing richer semantic information against them.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/922</link>
        <guid isPermaLink="false">http://localhost/ticket/922</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#923: Search box doesn't work in leaderboard page</title>
                  <description>&lt;ol&gt;&lt;li&gt;Go to: &lt;a class="ext-link" href="http://ckan.net/stats/leaderboard#content"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/stats/leaderboard#content&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;In the far top-right of the browser, select the search box in 'water'.
&lt;/li&gt;&lt;li&gt;Press enter to search. Nothing happens.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Tried in: chrome, firefox
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/923</link>
        <guid isPermaLink="false">http://localhost/ticket/923</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#924: Search box has no search button</title>
                  <description>&lt;p&gt;
The search box at the top-right of CKAN's page doesn't have a 'go' button. I feel that a larger percentage of users expect a 'go' or 'search' button on the right-hand side of the box to press to start searching. Techies tend to know the keyboard shortcut of pressing 'carriage-return' but it might be better to follow standard practise on this.
&lt;/p&gt;
&lt;p&gt;
Examples with 'search' button: Internet Explorer, Firefox, Google, Amazon, trac
Examples without: ?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/924</link>
        <guid isPermaLink="false">http://localhost/ticket/924</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#925: Change the search box icon to remove the down arrow</title>
                  <description>&lt;p&gt;
Is there a good reason why the search box has a 'down arrow' icon when there is no drop-down menu? Or can this be usefully removed?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/925</link>
        <guid isPermaLink="false">http://localhost/ticket/925</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#926: Pick a simpler form framework</title>
                  <description>&lt;p&gt;
The current formalchemy setup conflates view, controller and model code in a way that makes it hard to debug and customise.
&lt;/p&gt;
&lt;p&gt;
Review existing (and potentially non-existing) frameworks with a view to porting forms over to something more explicit and lightweight.
&lt;/p&gt;
&lt;p&gt;
Implement the current Package forms as an example of how this would work.
&lt;/p&gt;
&lt;p&gt;
Document and circulate.
&lt;/p&gt;
&lt;p&gt;
Sub-ticket of &lt;a class="closed ticket" href="http://localhost/ticket/961" title="enhancement: [super] Refactoring of forms, validation and model synchronization (closed: fixed)"&gt;#961&lt;/a&gt; (form, validation, model sync meta-ticket)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/926</link>
        <guid isPermaLink="false">http://localhost/ticket/926</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#927: [super] Improvements to CKAN documentation</title>
                  <description>&lt;p&gt;
List of improvements to CKAN documentation (result of &lt;a class="closed ticket" href="http://localhost/ticket/904" title="task: Review CKAN documentation (closed: fixed)"&gt;ticket:904&lt;/a&gt;). Should convert most items into sub-tickets as we go along.
&lt;/p&gt;
&lt;h2 id="Major"&gt;Major&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;(Make blog.ckan.org into ckan.org and move ckan.org to trac.ckan.org/)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;Document caching system - &lt;a class="closed ticket" href="http://localhost/ticket/841" title="enhancement: Caching docs (as a whole) (closed: duplicate)"&gt;ticket:841&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Howto guide for writing an extension - &lt;em&gt;started on this at &lt;a class="ext-link" href="http://wiki.ckan.net/Extending_CKAN"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Extending_CKAN&lt;/a&gt;&lt;/em&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Miscellaneous"&gt;Miscellaneous&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Contributors / credits page: &lt;a class="closed ticket" href="http://localhost/ticket/928" title="enhancement: Documentation - CKAN credits / contributors page (closed: fixed)"&gt;ticket:928&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;(Data proxy documentation: move it to packages.python.org/dataproxy)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;(List dataapi extensions on &lt;a href="http://ckan.org/wiki/Extensions"&gt;http://ckan.org/wiki/Extensions&lt;/a&gt; (Name, summary string + point to pypi page ...))&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;Document license configuration and license system - &lt;a class="closed ticket" href="http://localhost/ticket/973" title="enhancement: Document license configuration and license system. (closed: fixed)"&gt;ticket:973&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Refactor trac frontpage moving general feature overview to ckan.org
&lt;/li&gt;&lt;li&gt;Create proper roadmap information on &lt;a class="ext-link" href="http://trac.ckan.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.ckan.org/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Add link to wiki.ckan.net to ckan.org
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/927</link>
        <guid isPermaLink="false">http://localhost/ticket/927</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#928: Documentation - CKAN credits / contributors page</title>
                  <description>&lt;ol&gt;&lt;li&gt;Remove contributors list from about page (out-of-date and does not belong there)
&lt;ul&gt;&lt;li&gt;A "Powered by CKAN" link in footer is enough
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Add contributors / team / credits page to ckan.org
&lt;ul&gt;&lt;li&gt;May want to separate credits (e.g. software use), from contributors (also is team different from contributors)
&lt;/li&gt;&lt;li&gt;(perhaps with photos!) so that people can see who is part of it and from which organisations. (this is medium-term, not really part of this ticket)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;? CREDITS.txt file to the source repository and add a link to it on bitbucket for more detailed credits info.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/928</link>
        <guid isPermaLink="false">http://localhost/ticket/928</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rene.kapusta</dc:creator>

                  <title>#929: Handle the case when the licenses service is down better</title>
                  <description>&lt;p&gt;
I'm using v 1.3.1a and get a lot of "&lt;a class="missing wiki"&gt;WebApp?&lt;/a&gt; Error: &amp;lt;type 'exceptions.Exception'&amp;gt;: Couldn't connect to licenses service: &amp;lt;urlopen error (104, 'Connection reset by peer')&amp;gt;" error messages.
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.forms.package:87 in build_package_form
&amp;lt;&amp;lt;      # Options/settings
           builder.set_field_option('name', 'validate', package_name_validator)
           builder.set_field_option('license_id', 'dropdown', {'options':[('', None)] + model.Package.get_license_options()})
           builder.set_field_option('state', 'dropdown', {'options':model.State.all})
           builder.set_field_option('notes', 'textarea', {'size':'60x15'})
&amp;gt;&amp;gt;  builder.set_field_option('license_id', 'dropdown', {'options':[('', None)] + model.Package.get_license_options()})
Module ckan.model.package:283 in get_license_options
&amp;lt;&amp;lt;      @classmethod
           def get_license_options(self):
               register = self.get_license_register()
               return [(l.title, l.id) for l in register.values()]
&amp;gt;&amp;gt;  register = self.get_license_register()
Module ckan.model.package:278 in get_license_register
&amp;lt;&amp;lt;      def get_license_register(self):
               if not hasattr(self, '_license_register'):
                   self._license_register = LicenseRegister()
               return self._license_register
&amp;gt;&amp;gt;  self._license_register = LicenseRegister()
Module ckan.model.license:46 in __init__
&amp;lt;&amp;lt;              from licenses.service import LicensesService2
                   self.service = LicensesService2(group_url)
                   entity_list = self.service.get_licenses()
               else:
                   from licenses import Licenses
&amp;gt;&amp;gt;  entity_list = self.service.get_licenses()
Module licenses.service:44 in get_licenses
&amp;lt;&amp;lt;          except Exception, inst:
                   msg = "Couldn't connect to licenses service: %s" % inst
                   raise Exception, msg
               try:
                   licenses = loads(response_body)
&amp;gt;&amp;gt;  raise Exception, msg
Exception: Couldn't connect to licenses service: &amp;lt;urlopen error (104, 'Connection reset by peer')&amp;gt;
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/929</link>
        <guid isPermaLink="false">http://localhost/ticket/929</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#930: call_timing files created for every request</title>
                  <description>&lt;p&gt;
On a production server we produce literally millions of little files saying how long every single request took to process.
&lt;/p&gt;
&lt;p&gt;
They are here:
&lt;/p&gt;
&lt;pre class="wiki"&gt;hmg.ckan.net.2/pylonsdata/call_timing
&lt;/pre&gt;&lt;p&gt;
They were added by ckan/lib/base.py in cset:da438a9085d3.
&lt;/p&gt;
&lt;p&gt;
I don't believe anyone uses these stats.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/930</link>
        <guid isPermaLink="false">http://localhost/ticket/930</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#931: Search results generator hides paging functionality</title>
                  <description>&lt;p&gt;
ckanclient's search results list only packages up to the 'limit'. It would be good to return a generator instead of a list. When the limit is reached on the generator then another 'page' is loaded automatically.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/931</link>
        <guid isPermaLink="false">http://localhost/ticket/931</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#932: Move to SQLAlchemy-Migrate 0.6</title>
                  <description>&lt;p&gt;
Basic steps from kindly:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;changing the setup.py dependencies for sqlalchemy-migrate and sqlalchemy to their latest versions.
&lt;/li&gt;&lt;li&gt;running the migrate script on the repository (or changing the repository scripts manually).
&lt;/li&gt;&lt;li&gt;checking in both these changes at once.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/932</link>
        <guid isPermaLink="false">http://localhost/ticket/932</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#933: get rid of self when it should be cls in classmethods</title>
                  <description>&lt;p&gt;
use pylint
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/933</link>
        <guid isPermaLink="false">http://localhost/ticket/933</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#934: Key value store for extensions to store data</title>
                  <description>&lt;p&gt;
We need to allow plugins to store information.
&lt;/p&gt;
&lt;p&gt;
Each plug-in should have its own name space and allow any data to be set.
&lt;/p&gt;
&lt;p&gt;
There are two options.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;make a key value table in ckan that will hold random information.
&lt;/li&gt;&lt;li&gt;use redis (or other key value store)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
If in sql suggest schema of form:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;(namespace, obj_id, key, value [, value_type])
&lt;/li&gt;&lt;li&gt;value is json
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/934</link>
        <guid isPermaLink="false">http://localhost/ticket/934</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#935: "groups" field bug in IATI</title>
                  <description>&lt;p&gt;
An internal server error was reported when trying to create a new package (not when editing):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;WebApp?&lt;/a&gt; Error: &amp;lt;class 'sqlalchemy.exceptions.&lt;a class="missing wiki"&gt;IntegrityError?&lt;/a&gt;'&amp;gt;: (&lt;a class="missing wiki"&gt;IntegrityError?&lt;/a&gt;) null value in column "name" violates not-null constraint 'INSERT INTO package (id, name, title, version, url, author, author_email, maintainer, maintainer_email, notes, license_id, state, revision_id) VALUES (%(id)s, %(name)s, %(title)s, %(version)s, %(url)s, %(author)s, %(author_email)s, %(maintainer)s, %(maintainer_email)s, %(notes)s, %(license_id)s, %(state)s, %(revision_id)s)' {'maintainer': None, 'name': None, 'author': None, 'author_email': None, 'notes': None, 'title': None, 'maintainer_email': None, 'url': None, 'state': 'active', 'version': None, 'license_id': None, 'revision_id': '0141c09c-4eb3-4dda-a6b1-e07f2c73b4c5', 'id': '7fe16a29-f183-471a-99c5-2c2e81dd86e4'}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The error could not be reproduced in a non-apache/mod_wsgi environment, even with a dump of the live database. Further investigation by manual editing of the package form left the "groups" field as the likely cause. After updating the packages installed, and temporarily editing the package controller the problem vanished after a restart of the web server.
&lt;/p&gt;
&lt;p&gt;
Possible causes include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Stale pyc file
&lt;/li&gt;&lt;li&gt;Threading issue
&lt;/li&gt;&lt;li&gt;Dependency issue
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
As the problem is gone for now, it cannot be further investigated atm.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/935</link>
        <guid isPermaLink="false">http://localhost/ticket/935</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#936: Follow / watch package extension</title>
                  <description>&lt;p&gt;
As a (logged-in) User I want to watch (follow) a package, that is register my interest about a package. (Similar to watch/follow features in github/bitbucket/wikis).
&lt;/p&gt;
&lt;p&gt;
NB: this is as much (if not more) about showing what packages are interesting to people as giving info to 'watchers'.
&lt;/p&gt;
&lt;p&gt;
Need to finalize terminology (github uses watch for repos and follow for users while bitbucket combines both in 'followers'). &lt;strong&gt;Decision: use follow&lt;/strong&gt;
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;h3 id="Interface"&gt;Interface&lt;/h3&gt;
&lt;p&gt;
Become a follower:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Follow button on packages (if already watching say 'unfollow')
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Package-related changes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Show number of followers on a package
&lt;/li&gt;&lt;li&gt;List followers of a package at /package/{name}/followers
&lt;ul&gt;&lt;li&gt;On a separate page
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
a package
User-related changes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;List followed packages
&lt;ul&gt;&lt;li&gt;Either on user's page on a separate 'following' page. (NB: called 'following')
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Does watching involve notifications (by email)
&lt;ul&gt;&lt;li&gt;Probably not: you can already subscribe to RSS feed after all and email not that necessary (?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[Future - don't have activity stream yet] Show what packages a user has started/stopped  followed on a user's public activity stream on their user page
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Nitty-Gritty"&gt;Nitty-Gritty&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Want to do this in ajax-y manner
&lt;/li&gt;&lt;li&gt;API endpoint: /api/2/follower
&lt;/li&gt;&lt;li&gt;Store data in a new follower table
&lt;/li&gt;&lt;/ul&gt;&lt;h4 id="API"&gt;API&lt;/h4&gt;
&lt;p&gt;
/api/2/follower
&lt;/p&gt;
&lt;pre class="wiki"&gt;follow =&amp;gt; PUT / POST
{
   user_id
   object_type
   object_id
}
&lt;/pre&gt;&lt;p&gt;
If this is submitted by a user with user.id != user_id =&amp;gt; error (401)
&lt;/p&gt;
&lt;pre class="wiki"&gt;unfollow =&amp;gt; DELETE
/api/2/follower/package/{id}
=&amp;gt; list of followers
[
    { safe dictized user }
]
&lt;/pre&gt;&lt;p&gt;
NB: depends on access to a 'safe' dictized user object. Dictization is in nearly done, and current example of doing this by hand is in user API autocomplete method.
&lt;/p&gt;
&lt;h4 id="Table"&gt;Table&lt;/h4&gt;
&lt;p&gt;
Called 'follower'
&lt;/p&gt;
&lt;pre class="wiki"&gt;user_id, table, object_id, created
xxx, package, yyy, ...
xxx, user, yyy, ... [future]
&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;
&lt;h3 id="RandomExtras"&gt;Random Extras&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;What about following users as well
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/936</link>
        <guid isPermaLink="false">http://localhost/ticket/936</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#937: Record download stats for resources (extension)</title>
                  <description>&lt;p&gt;
As a User (especially as a Package &lt;a class="missing wiki"&gt;Owner/Maintainer?&lt;/a&gt;) I want to know how many times a resource has been downloaded (and when).
&lt;/p&gt;
&lt;p&gt;
So let's record download stats (as in clicks on the link for a resource).
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Use the existing support for this feature in google analytics or piwiki
&lt;/li&gt;&lt;li&gt;For google analytics see:
&lt;ul&gt;&lt;li&gt;Integrate to record: &lt;a class="ext-link" href="http://www.google.com/support/analytics/bin/answer.py?answer=55529"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.google.com/support/analytics/bin/answer.py?answer=55529&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Accessing analytics data via API (for showing download counts): &lt;a class="ext-link" href="http://code.google.com/apis/analytics/docs/gdata/gdataDeveloperGuide.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://code.google.com/apis/analytics/docs/gdata/gdataDeveloperGuide.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Limitations only record downloads by browsers with js turned on.
&lt;ul&gt;&lt;li&gt;This is OK I think (in any case machine download via e.g. datapkg does not get downloaded)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="OldSpecdoitinCKAN"&gt;Old Spec (do it in CKAN)&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Record info of form: resource id (or url?), timestamp
&lt;/li&gt;&lt;li&gt;Do this via javascript capturing of onclick event talking to an api
&lt;/li&gt;&lt;li&gt;API: /api/resource/{id}/download
&lt;ul&gt;&lt;li&gt;POST to increment (how do we stop spamming -- could use a nonce setup with a random string set on each page load for the js)
&lt;/li&gt;&lt;li&gt;GET to get data back { total: X, day_count: [ [yyyy-mm-dd, count], ... ] }
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Questions"&gt;Questions&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Do we record ip addresses (to handle de-botting etc)?
&lt;/li&gt;&lt;li&gt;Do we count preview clicks as well?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/937</link>
        <guid isPermaLink="false">http://localhost/ticket/937</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#938: Message flashing / notification in WUI</title>
                  <description>&lt;p&gt;
Good user interfaces provide feedback to users. We should provide more feedback about the success / failure of actions using message flashing (see &lt;a class="ext-link" href="http://flask.pocoo.org/docs/patterns/flashing/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://flask.pocoo.org/docs/patterns/flashing/&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
We already do some of this (slightly poorly), e.g. on adding an authorization the app says: "X authorization added".
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Standardize this process and add section to html for this purpose.
&lt;/li&gt;&lt;li&gt;Already done in other OKFN apps e.g. yourtopia.net, wheredoesmymoneygo and commentonit
&lt;/li&gt;&lt;li&gt;Testing: suggest keeping this very simple
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Estimate"&gt;Estimate&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Cost: 0.5h (html etc) + 1h to do some integration
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/938</link>
        <guid isPermaLink="false">http://localhost/ticket/938</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#939: Notification bar at top of site shown to new users pointing them to simple instructions</title>
                  <description>&lt;p&gt;
On &lt;a class="ext-link" href="http://getthedata.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://getthedata.org/&lt;/a&gt; or stackoverflow there is a pop-up bar for new users that give them some simple instructions.
&lt;/p&gt;
&lt;p&gt;
Talking with users it is clear that some people are not clear how ckan.net (or other sites) work and what they are and are not 'allowed to do. This could help make this better.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Pop-up bar (based on a cookie or just being not logged in?) - uses &lt;a class="closed ticket" href="http://localhost/ticket/938" title="enhancement: Message flashing / notification in WUI (closed: fixed)"&gt;ticket:938&lt;/a&gt; (message flashing)
&lt;/li&gt;&lt;li&gt;FAQ/instructions page (use the new wiki?)
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Depends"&gt;Depends&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/938" title="enhancement: Message flashing / notification in WUI (closed: fixed)"&gt;ticket:938&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Estimate"&gt;Estimate&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Cost: 1h
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/939</link>
        <guid isPermaLink="false">http://localhost/ticket/939</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#940: OpenID login via google for same user generates 2 different openid urls</title>
                  <description>&lt;p&gt;
This has been noted twice in the last couple of weeks.
&lt;/p&gt;
&lt;p&gt;
Checking around my guess is this is due to someone logging in to www.ckan.net and ckan.net. Google generates openid based on the RP (requesting party) which is the requesting domain url unless the openid.realm is set. See:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://groups.google.com/group/google-federated-login-api/web/the-most-important-technical-issue-in-using-the-google-accounts-api?pli=1"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://groups.google.com/group/google-federated-login-api/web/the-most-important-technical-issue-in-using-the-google-accounts-api?pli=1&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://stackoverflow.com/questions/3549953/how-to-get-unique-identifier-from-openid-google"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://stackoverflow.com/questions/3549953/how-to-get-unique-identifier-from-openid-google&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
To fix this we should set the openid.realm (not sure how atm).
&lt;/p&gt;
&lt;p&gt;
If this is not possible an alternative is to make sure we redirect all users to a single site url (perhaps using ckan config option site_url, or doing this in apache).
&lt;/p&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/940</link>
        <guid isPermaLink="false">http://localhost/ticket/940</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#941: Submit apps or ideas for apps related to datasets (extension)</title>
                  <description>&lt;p&gt;
The basic purpose of this extension is provide a way to record  'apps' (applications) that relate to datasets in CKAN. Both existing apps and ideas for apps should be permitted.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/941</link>
        <guid isPermaLink="false">http://localhost/ticket/941</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#942: Fix SERP pager argument passing</title>
                  <description>&lt;p&gt;
It only passes "q", but the whole query must be serialized.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/942</link>
        <guid isPermaLink="false">http://localhost/ticket/942</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#943: Create CKAN Wiki</title>
                  <description>&lt;p&gt;
Set up a Mediawiki to contain info on CKAN.net (community) conventions etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/943</link>
        <guid isPermaLink="false">http://localhost/ticket/943</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#944: Upgrade IATI to CKAN 'default'</title>
                  <description>&lt;ul&gt;&lt;li&gt;Move code base, fix any breakage.
&lt;/li&gt;&lt;li&gt;Deploy to eu8
&lt;/li&gt;&lt;li&gt;Test
&lt;/li&gt;&lt;li&gt;Deploy to eu14
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Why"&gt;Why&lt;/h2&gt;
&lt;p&gt;
Later CKAN codebase has a bunch of improvements / fixes that it would be good to have.
&lt;/p&gt;
&lt;h2 id="Estimate"&gt;Estimate&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;8h
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/944</link>
        <guid isPermaLink="false">http://localhost/ticket/944</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#945: [super] Richer resources - Resource Groups, new fields, improved UI</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1032" title="enhancement: [super] Resources in WUI (closed: fixed)"&gt;#1032&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This is a meta ticket for changes that are going to happen in resources.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;New resource group table.  &lt;a class="closed ticket" href="http://localhost/ticket/956" title="enhancement: Add a resource group table. (closed: fixed)"&gt;#956&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;New kind field in resource.  &lt;a class="closed ticket" href="http://localhost/ticket/957" title="enhancement: new &amp;#34;kind &amp;#34; field added to resources (closed: wontfix)"&gt;#957&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;UI for new kind field. &lt;a class="closed ticket" href="http://localhost/ticket/958" title="enhancement: ui for new kind field (closed: duplicate)"&gt;#958&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Resources in REST API &lt;a class="closed ticket" href="http://localhost/ticket/358" title="enhancement: Resources in REST API (closed: duplicate)"&gt;ticket:358&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Resources in WUI &lt;a class="closed ticket" href="http://localhost/ticket/1445" title="enhancement: Resource View page in WUI (closed: fixed)"&gt;#1445&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Make Resources first class entity. &lt;a class="closed ticket" href="http://localhost/ticket/922" title="enhancement: Make Resources first class entity. (closed: duplicate)"&gt;#922&lt;/a&gt; (duplicate?)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Background on this change can be found at:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://ckan.okfnpad.org/resources"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/resources&lt;/a&gt; - discussion etherpad
&lt;ul&gt;&lt;li&gt;Contains commented version of James Gardner's main email: &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-February/000887.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-February/000887.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="wiki" href="http://localhost/wiki/UseCasesResources"&gt;UseCasesResources&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/945</link>
        <guid isPermaLink="false">http://localhost/ticket/945</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#946: No default system rights</title>
                  <description>&lt;p&gt;
CKAN currently comes out of the box being uneditable. We'd like to encourage people to have open CKANs and therefore by default init the db with this right:
&lt;/p&gt;
&lt;pre class="wiki"&gt;visitor -&amp;gt; is editor on -&amp;gt; System system
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/946</link>
        <guid isPermaLink="false">http://localhost/ticket/946</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#947: Move the assignment of roles to a package on package creation to an extension</title>
                  <description>&lt;p&gt;
At the moment the assignment of user roles on package creation is done in setup_user_roles method in ckan/model/authz.py and is hard-coded.
&lt;/p&gt;
&lt;p&gt;
This can be a pain to override (you can use a Plugin listening for package create events) and makes some things such as putting system in restricted mode more complex than it should be (see &lt;a class="closed ticket" href="http://localhost/ticket/833" title="enhancement: [super] Administrative dashboard extension (closed: fixed)"&gt;ticket:833&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
An elegant solution would be to move this into an Extension this simplifies the code and make it easier for people override (just remove the default extension and plugin your own).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/947</link>
        <guid isPermaLink="false">http://localhost/ticket/947</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#948: Highlight (to a sysadmin) which packages are deleted</title>
                  <description>&lt;p&gt;
When a customer logs in as a sysadmin then he/she see all packages, including deleted and pending ones. These are hidden to the average user, but the sysadmin has no idea of this until he clicks on the package and sees at the bottom 'state: deleted'.
&lt;/p&gt;
&lt;p&gt;
It should be more obvious than that on the search view - an icon, message or crossed-out name to packages are deleted.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/948</link>
        <guid isPermaLink="false">http://localhost/ticket/948</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#949: Generic username/password login</title>
                  <description>&lt;p&gt;
based on repoze.who-friendlyForms
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/949</link>
        <guid isPermaLink="false">http://localhost/ticket/949</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#950: Move importer controller to ckanext-importer</title>
                  <description>&lt;p&gt;
ckan/controllers/importer.py provides a Pylons UI for importing spreadsheet data into CKAN. This would better live in an extension than core CKAN.
&lt;/p&gt;
&lt;p&gt;
In the same move, ckan/tests/misc/test_spreadsheet_importer.py, which is used by importer.py as well as various dgu data importers, should move into ckanext.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/950</link>
        <guid isPermaLink="false">http://localhost/ticket/950</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>adrian.pohl@…</dc:creator>

                  <title>#951: Can't add a package to group</title>
                  <description>&lt;p&gt;
I can't add a package (e.g. &lt;a class="ext-link" href="http://ckan.net/package/ub-konstanz"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/ub-konstanz&lt;/a&gt;) to a group (e.g. &lt;a class="ext-link" href="http://ckan.net/group/bibliographic"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/group/bibliographic&lt;/a&gt;). It's neither possible when editing  a package (the only group in drop down menu is "history") nor on the group page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/951</link>
        <guid isPermaLink="false">http://localhost/ticket/951</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#952: CKAN should run under nginx/uswgi</title>
                  <description>&lt;p&gt;
second part of &lt;a class="closed ticket" href="http://localhost/ticket/908" title="defect: Issues deploying extensions with modwsgi / uwsgi (closed: fixed)"&gt;#908&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/952</link>
        <guid isPermaLink="false">http://localhost/ticket/952</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#953: Add tagline/description to template and set in configuration</title>
                  <description>&lt;p&gt;
Have a tagline / description are under main title and set if from ckan.site_description config variable.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/953</link>
        <guid isPermaLink="false">http://localhost/ticket/953</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#954: [super] API version 3</title>
                  <description>&lt;p&gt;
Child tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1107" title="refactor: Move package autocomplete from package controller and move to API (closed: fixed)"&gt;#1107&lt;/a&gt; Move package autocomplete from package controller and move to API
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1087" title="enhancement: version and contact info api call (closed: fixed)"&gt;#1087&lt;/a&gt; version and contact info api call
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Move to a format that has a separate responseHeader and response.
&lt;/p&gt;
&lt;h3 id="Astandardpackageresponse"&gt;A standard package response&lt;/h3&gt;
&lt;pre class="wiki"&gt;{
  responseHeader: {
    status: 0,
  }
  response: {package-dict}
}
&lt;/pre&gt;&lt;p&gt;
On error:
&lt;/p&gt;
&lt;pre class="wiki"&gt;{
  responseHeader: {
    status: {err-code},
    error: 'message'
  }
  response: none
}
&lt;/pre&gt;&lt;h3 id="Asearchquery"&gt;A search query&lt;/h3&gt;
&lt;p&gt;
Based directly on solr.
&lt;/p&gt;
&lt;pre class="wiki"&gt;{
  responseHeader: {
    status: 0,
  }
  response: {
    numFound: 5,
    start: 0
    docs: [
    ]
  }
}
&lt;/pre&gt;&lt;h2 id="Issues"&gt;Issues&lt;/h2&gt;
&lt;p&gt;
This is a breaking change for clients
&lt;/p&gt;
&lt;h2 id="References"&gt;References&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://wiki.apache.org/solr/SolJSON"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.apache.org/solr/SolJSON&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://www.flickr.com/services/api/response.json.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.flickr.com/services/api/response.json.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/954</link>
        <guid isPermaLink="false">http://localhost/ticket/954</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#955: Tidy up tests</title>
                  <description>&lt;ul&gt;&lt;li&gt;Removal of init_db from every setup etc.
&lt;/li&gt;&lt;li&gt;Get them working
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/955</link>
        <guid isPermaLink="false">http://localhost/ticket/955</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#956: Add a resource group table.</title>
                  <description>&lt;p&gt;
We need a way to group resources by various different factors. The most important of which is timeseries.
&lt;/p&gt;
&lt;p&gt;
The model will look like
&lt;/p&gt;
&lt;p&gt;
Package  &amp;lt;o2m&amp;gt;  resource_group &amp;lt;o2m&amp;gt; resource
&lt;/p&gt;
&lt;p&gt;
The use cases to this are outlined in this email. &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-February/000887.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-February/000887.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/956</link>
        <guid isPermaLink="false">http://localhost/ticket/956</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#957: new "kind " field added to resources</title>
                  <description>&lt;p&gt;
The new field was outlined in
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-February/000887.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-February/000887.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
it says
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Can be "data", "metadata", "service", NULL. There is a need to do this for UKLP where some of the data associated with a   package is metadata, some is data and some could be a service.&lt;/strong&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/957</link>
        <guid isPermaLink="false">http://localhost/ticket/957</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#958: ui for new kind field</title>
                  <description>&lt;p&gt;
Ui for related new field in resource (&lt;a class="closed ticket" href="http://localhost/ticket/957" title="enhancement: new &amp;#34;kind &amp;#34; field added to resources (closed: wontfix)"&gt;#957&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/958</link>
        <guid isPermaLink="false">http://localhost/ticket/958</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#960: Support non-ascii character in internal error messages</title>
                  <description>&lt;p&gt;
Just saw an error like the following which looks like it is to do with having a user object with non-ascii characters in it. Either get rid of 'cast' to str type here or do it in a unicode aware way.
&lt;/p&gt;
&lt;p&gt;
Should do this not just here but everywhere we can find in the code base.
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.package:302 in edit
&amp;lt;&amp;lt;          am_authz = self.authorizer.am_authorized(c, model.Action.EDIT, pkg)
               if not am_authz:
                   abort(401, str(gettext('User %r not authorized to edit %s') % (c.user, id)))
               auth_for_change_state = self.authorizer.am_authorized(c, model.Action.CHANGE_STATE, pkg)
&amp;gt;&amp;gt;  abort(401, str(gettext('User %r not authorized to edit %s') % (c.user, id)))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)
&lt;/pre&gt;&lt;h2 id="Estimate"&gt;Estimate&lt;/h2&gt;
&lt;p&gt;
Cost: 1h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/960</link>
        <guid isPermaLink="false">http://localhost/ticket/960</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#961: [super] Refactoring of forms, validation and model synchronization</title>
                  <description>&lt;p&gt;
This is a meta-ticket to hold all of the work on refactoring forms, validation and model-synchronization in CKAN.
&lt;/p&gt;
&lt;p&gt;
ckan-dev thread: &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2011-January/000180.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2011-January/000180.html&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="TheIssue"&gt;The Issue&lt;/h2&gt;
&lt;p&gt;
From &lt;a class="closed ticket" href="http://localhost/ticket/926" title="enhancement: Pick a simpler form framework (closed: fixed)"&gt;#926&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
The current formalchemy setup conflates view, controller and model code in a way that makes it hard to debug and customise.
&lt;/p&gt;
&lt;p&gt;
From &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2011-January/000181.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2011-January/000181.html&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
... FormAlchemy, in retrospect, was probably a mistake as it merges too much model/validation/form generation into one thing.
&lt;/p&gt;
&lt;p&gt;
At least 3 functions involved [in this area]:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Generating (or just filling) a form template with 'form data' (and errors)
&lt;/li&gt;&lt;li&gt;Converting model data to form data (also happens for APIs in fact) -- let's call this 'dict-ization'
&lt;/li&gt;&lt;li&gt;Converting form data to model data (and validating) (inverse of previous step)
&lt;/li&gt;&lt;/ol&gt;&lt;h2 id="RelatedTickets"&gt;Related Tickets&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/926" title="enhancement: Pick a simpler form framework (closed: fixed)"&gt;#926&lt;/a&gt; - Pick a simpler form framework
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1046" title="enhancement: Dictization and the new logic layer (closed: fixed)"&gt;#1046&lt;/a&gt; 'dictization' and the logic layer - serialization / deserialization of package (and other domain objects) to standard intermediate format such as json-convertable python dict
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1079" title="enhancement: Refactor API to use new logic layer and dictization (closed: fixed)"&gt;#1079&lt;/a&gt; Refactor API to use new logic layer and dictization
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1078" title="enhancement: Refactors WUI controllers and forms to use logic layer (closed: fixed)"&gt;#1078&lt;/a&gt; Refactor WUI controllers and forms to use logic layer
&lt;/li&gt;&lt;li&gt;cf existing dumper and importer code
&lt;/li&gt;&lt;li&gt;This will fix &lt;a class="closed ticket" href="http://localhost/ticket/662" title="defect: Can't put entity that is returned by posting to package register (closed: fixed)"&gt;#662&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[not ticketed yet] - validation layer (should work on serialized objects?)
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/662" title="defect: Can't put entity that is returned by posting to package register (closed: fixed)"&gt;#662&lt;/a&gt; - Can't put entity that is returned by posting to package register (Defect)
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/972" title="enhancement: Merge 'extras' into main package dict rather than having separate key (closed: wontfix)"&gt;#972&lt;/a&gt; - Merge 'extras' into main package dict rather than having separate key
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1035" title="enhancement: Form impressions given an ID (closed: wontfix)"&gt;#1035&lt;/a&gt; - Form impressions are given IDs
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/810" title="enhancement: Move &amp;#34;add packages&amp;#34; field up in group form (closed: wontfix)"&gt;#810&lt;/a&gt; - Move "add packages" field up in group form (easier to do this once forms are done)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/961</link>
        <guid isPermaLink="false">http://localhost/ticket/961</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#962: Improvements to data preview extension</title>
                  <description>&lt;p&gt;
Basic implementation done (and deployed):
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckanext-datapreview"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckanext-datapreview&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
However plenty to improve, e.g.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Support more formats (use external systems for preview?)
&lt;ul&gt;&lt;li&gt;json (!)
&lt;/li&gt;&lt;li&gt;html (trivial!)
&lt;/li&gt;&lt;li&gt;sparql
&lt;/li&gt;&lt;li&gt;...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Do not display preview if no preview
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also suggest reworking to use external services rather than doing preview 'in house' (doing in house places heavy reliance on data proxy service and on converting data to a standard format).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/962</link>
        <guid isPermaLink="false">http://localhost/ticket/962</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#963: Package CKAN as a debian package</title>
                  <description>&lt;p&gt;
Package CKAN as a debian package so it is easier to install.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/963</link>
        <guid isPermaLink="false">http://localhost/ticket/963</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#964: Create Resource Downloader and make it pluggable</title>
                  <description>&lt;p&gt;
In downloading packages we need to download resources and we need a &lt;a class="missing wiki"&gt;ResourceDownloader?&lt;/a&gt; object for this. these should be pluggable so that we can add support for different types of resources.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/964</link>
        <guid isPermaLink="false">http://localhost/ticket/964</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#965: make migration testing plugin to nose</title>
                  <description>&lt;p&gt;
In order to test migrations properly, we need to test the upgraded database against *all* the tests.
&lt;/p&gt;
&lt;p&gt;
To do this a special flag to nosetests should be added. nosetests --migrations
&lt;/p&gt;
&lt;p&gt;
This flag will make sure that the database is recreated from scratch each time using the migrate repository, bypassing init_db.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/965</link>
        <guid isPermaLink="false">http://localhost/ticket/965</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#971: Support middleware as a plugin</title>
                  <description>&lt;p&gt;
I need to completely munge the rendered data coming from the app.  There's not currently a plugin hook for this, where I get access to the entire environment.  The most generic form of plugin would be WSGI Middleware.  I propose adding an IMiddleware plugin hook for inserting abritrary middleware via our plugin system.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/971</link>
        <guid isPermaLink="false">http://localhost/ticket/971</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#972: Merge 'extras' into main package dict rather than having separate key</title>
                  <description>&lt;p&gt;
Rather than have a separate 'extras' key all the extras fields should be consolidated into the main package dict when presenting the package internally or e.g. via the API.
&lt;/p&gt;
&lt;p&gt;
Why? Extras are really just an artefact of our internal storage model. Clients of the system (both internal and external) should just see a set of key/values with no distinction between extras and non-extras.
&lt;/p&gt;
&lt;h2 id="Issues"&gt;Issues&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Possible breaking change to the API (could enforce backwards compatibility by keepings extras for the time being)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Possible subticket of forms refactoring: &lt;a class="closed ticket" href="http://localhost/ticket/961" title="enhancement: [super] Refactoring of forms, validation and model synchronization (closed: fixed)"&gt;#961&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/972</link>
        <guid isPermaLink="false">http://localhost/ticket/972</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#973: Document license configuration and license system.</title>
                  <description>&lt;p&gt;
Document how license system works and specifically how licenses can be configured.
&lt;/p&gt;
&lt;p&gt;
Cost: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/973</link>
        <guid isPermaLink="false">http://localhost/ticket/973</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#974: Document site_description</title>
                  <description>&lt;p&gt;
Configuration option 'ckan.site_description' isn't documented
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/974</link>
        <guid isPermaLink="false">http://localhost/ticket/974</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#975: Placeholder attribute not displayed in some browsers leading to poor UX</title>
                  <description>&lt;p&gt;
Currently placeholder text like 'Search ...' is not shown in some browsers (e.g. FF and IE).
&lt;/p&gt;
&lt;p&gt;
This leads to poor UX, for example in top bar search where it unclear whether that box is for login or search.
&lt;/p&gt;
&lt;p&gt;
We should fix this by finding a way to display placeholder attribute in all browsers.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/975</link>
        <guid isPermaLink="false">http://localhost/ticket/975</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#976: Documentation references knowledgeforge.net</title>
                  <description></description>
        <link>http://localhost/ticket/976</link>
        <guid isPermaLink="false">http://localhost/ticket/976</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#977: db_upgrade errors</title>
                  <description>&lt;ul&gt;&lt;li&gt;db_upgrade (in ckan/model/&lt;span class="underline"&gt;init&lt;/span&gt;) makes call to validate_authorization_setup but forgets about rest of initialisation.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;it uses self.metadata.bind.url when it should be self.metadata.bind it seems (confused by sqlmigrate update?)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/977</link>
        <guid isPermaLink="false">http://localhost/ticket/977</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#978: Edit Resource including Extras in Web UI</title>
                  <description>&lt;p&gt;
Part of super-ticket &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;.
&lt;/p&gt;
&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;.
&lt;/p&gt;
&lt;p&gt;
We can configure some extra fields in resources and can edit them in the Web UI, but we can't create new columns in the Web UI. Update the WUI to handle tis.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/978</link>
        <guid isPermaLink="false">http://localhost/ticket/978</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#979: Edit Resource extras in the API</title>
                  <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>
        <link>http://localhost/ticket/979</link>
        <guid isPermaLink="false">http://localhost/ticket/979</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#980: Fixes to HR Infoshare</title>
                  <description>&lt;p&gt;
We've fixed a few things in CKAN that were discovered and tracked by HRI in their own issue tacker. This includes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;add authz checks to package edit links (cset:0752316cd2fe)
&lt;/li&gt;&lt;li&gt;replace gettext with _ in controllers, to support unicode error msgs (cset:822340e6077e)
&lt;/li&gt;&lt;li&gt;handle broken html in notes field without crashing on package read (cset:4b6be037dda0)
&lt;/li&gt;&lt;li&gt;update i18n (cset:37d57dc3c492, cset:ea03173f5e77, cset:f16f4ee40fe7)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/980</link>
        <guid isPermaLink="false">http://localhost/ticket/980</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#981: fix authorization_group_user.id so it's added in migrate</title>
                  <description>&lt;p&gt;
This was missed out the migrate script. It should be to be added as a conditional script at the end of the repository so that databases can catch up.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/981</link>
        <guid isPermaLink="false">http://localhost/ticket/981</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#982: Remove various pip-requirements versions</title>
                  <description>&lt;p&gt;
We can just use the branch name to pull down specific versions of pip requirements so we don't need all the different versions in head.
&lt;/p&gt;
&lt;p&gt;
Remove them and update any client systems.
&lt;/p&gt;
&lt;p&gt;
Cost: 20m
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/982</link>
        <guid isPermaLink="false">http://localhost/ticket/982</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#983: 'db upgrade' creates system priviledges</title>
                  <description>&lt;p&gt;
(should leave priviledges alone)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/983</link>
        <guid isPermaLink="false">http://localhost/ticket/983</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#984: Fix migration, where upgrade diverges from actual model.</title>
                  <description>&lt;p&gt;
The migration scripts have not been inline with the upgrade scripts. There are lots of discrepancies.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/984</link>
        <guid isPermaLink="false">http://localhost/ticket/984</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#985: Harvest other data catalogues</title>
                  <description>&lt;ul&gt;&lt;li&gt;data.london.gov.uk (1d, ping DERI)
&lt;/li&gt;&lt;li&gt;catalogues from Paris and Vienna (1d)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Others?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;digitaliser.dk (1d)
&lt;/li&gt;&lt;li&gt;data-publica.com (2d)
&lt;/li&gt;&lt;li&gt;data.suomi.fi (2d)
&lt;/li&gt;&lt;li&gt;dati.piedmonte.it (1d)
&lt;/li&gt;&lt;li&gt;portalu.de (2d)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/985</link>
        <guid isPermaLink="false">http://localhost/ticket/985</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#986: Broken link report from the ckanext-qa code</title>
                  <description>&lt;p&gt;
Should have the following features:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A list of all packages with broken links on the resource
&lt;/li&gt;&lt;li&gt;Under each packages a description of any resources with broken links to include:
&lt;ul&gt;&lt;li&gt;Link
&lt;/li&gt;&lt;li&gt;Description
&lt;/li&gt;&lt;li&gt;Format
&lt;/li&gt;&lt;li&gt;First found to be broken date
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
[If you can't do the last one yet, don't worry]
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/986</link>
        <guid isPermaLink="false">http://localhost/ticket/986</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#987: Common harvesting framework</title>
                  <description>&lt;p&gt;
We are now harvesting metadata from other sources in various places around CKAN. Such harvesting can include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CSW/WFS for INSPIRE/UKLII (yields CKAN packages)
&lt;/li&gt;&lt;li&gt;Catalogue scraping for LOD2 experiments (yields RDF graphs)
&lt;/li&gt;&lt;li&gt;Atom/DCat for LOD2 production (yields RDF graphs)
&lt;/li&gt;&lt;li&gt;OAI-PMH for &lt;a class="ext-link" href="http://datadryad.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datadryad.org/&lt;/a&gt; and other dspace (yields CKAN packages)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
We should aim to consolidate the harvesting clients into a common system that is easy to extend when needed and can be re-used in different scenarios.
&lt;/p&gt;
&lt;p&gt;
In general, such a system would have the following stages:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Source selection: find what to download/scrape/harvest/parse
&lt;/li&gt;&lt;li&gt;Index retrieval (i.e. package index)
&lt;/li&gt;&lt;li&gt;Item retrieval (i.e. package entity)
&lt;/li&gt;&lt;li&gt;(Optional: Serialization)
&lt;/li&gt;&lt;li&gt;Normalisation
&lt;/li&gt;&lt;li&gt;&lt;a class="missing wiki"&gt;Loading/Merging?&lt;/a&gt; into CKAN
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Exisiting harvesters are at:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CSW: &lt;a class="ext-link" href="https://bitbucket.org/okfn/ckanext-csw/src/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckanext-csw/src/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Scraper+CKAN: &lt;a class="ext-link" href="https://bitbucket.org/pudo/dcat-tools/src/d5d96b06ec9a/dcat/crawl/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/pudo/dcat-tools/src/d5d96b06ec9a/dcat/crawl/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/987</link>
        <guid isPermaLink="false">http://localhost/ticket/987</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#988: Get a better HTML view of a GEMINI document using XSL</title>
                  <description></description>
        <link>http://localhost/ticket/988</link>
        <guid isPermaLink="false">http://localhost/ticket/988</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#989: Extending the model from plugins</title>
                  <description>&lt;p&gt;
We need to support extending the model from plugins. This could involve:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Adding a plugin hook to extend the mapper
&lt;/li&gt;&lt;li&gt;Adding an upgrade hook for plugin schema migrations
&lt;/li&gt;&lt;li&gt;Documenting how this is to be done
&lt;/li&gt;&lt;li&gt;Find a way to avoid conflicts
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/989</link>
        <guid isPermaLink="false">http://localhost/ticket/989</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rene.kapusta</dc:creator>

                  <title>#990: umlauts in title / text</title>
                  <description>&lt;p&gt;
It's not possible to use umlauts (like "CKAN Österreich") in the title / text.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/990</link>
        <guid isPermaLink="false">http://localhost/ticket/990</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#991: Checkbox defaults to True</title>
                  <description>&lt;p&gt;
Form for new package has &lt;a class="missing wiki"&gt;CheckboxExtraField?&lt;/a&gt; checked, when the value is False.
(as used in ckanext-dgu package v3 form)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/991</link>
        <guid isPermaLink="false">http://localhost/ticket/991</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#992: Use X-forwarded-for whenever it is available to set remote IP address</title>
                  <description>&lt;p&gt;
At the moment we only use X-forwarded to determine remote user address when remote-addr header is 127.0.0.1. However if a site is behind a cache remote_addr will always be the IP of the cache.
&lt;/p&gt;
&lt;p&gt;
We should fix this by using x-forwarded-for header whenever available and only use remote-addr when it is not available.
&lt;/p&gt;
&lt;p&gt;
Cost: 10m
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/992</link>
        <guid isPermaLink="false">http://localhost/ticket/992</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jason.kitcat@…</dc:creator>

                  <title>#993: Link on ckan.net footer needs changing</title>
                  <description>&lt;p&gt;
The link for About &amp;gt; 'Project Home Page' on the CKAN.net footer should be changed to point to:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://ckan.org/"&gt;http://ckan.org/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The current link is broken.
&lt;/p&gt;
&lt;p&gt;
Thanks,
Jason
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/993</link>
        <guid isPermaLink="false">http://localhost/ticket/993</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#994: document a new migration methodology</title>
                  <description>&lt;p&gt;
It is too easy to make a mistake with the migrations at the moment.  A more systematic way of doing them is needed and this needs to be documented.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/994</link>
        <guid isPermaLink="false">http://localhost/ticket/994</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#995: consolidate caching</title>
                  <description>&lt;p&gt;
Try and minimise the amount of different caching methodologies, especially for api calls.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/995</link>
        <guid isPermaLink="false">http://localhost/ticket/995</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#996: Run some basic load testing.</title>
                  <description>&lt;p&gt;
This will involve running a sample of real requests synchronously against real data.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/996</link>
        <guid isPermaLink="false">http://localhost/ticket/996</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#997: change create on cli to upgrade</title>
                  <description>&lt;p&gt;
When doing create on the cli upgrade should be run instead of create to make sure that every database is initiated in the same way.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/997</link>
        <guid isPermaLink="false">http://localhost/ticket/997</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#998: change create on cli to upgrade</title>
                  <description>&lt;p&gt;
When doing create on the cli upgrade should be run instead of create to make sure that every database is initiated in the same way.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/998</link>
        <guid isPermaLink="false">http://localhost/ticket/998</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#999: Factor out ckan.net theme changes to a separate theme repo and apply</title>
                  <description>&lt;p&gt;
Rather than polluting the ckan core code base on ckan.net install with ckan.net specific changes these adaptations should be moved out into a dedicated ckan.net theme.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/999</link>
        <guid isPermaLink="false">http://localhost/ticket/999</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1000: Remove call timings code</title>
                  <description>&lt;p&gt;
Not used and extra overhead. Very useful to strip this out and low cost.
&lt;/p&gt;
&lt;p&gt;
Places where it seems to be:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;lib/base.py: c.time_call_started
&lt;/li&gt;&lt;li&gt;....
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1000</link>
        <guid isPermaLink="false">http://localhost/ticket/1000</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1001: API should use normal user credentials if available</title>
                  <description>&lt;p&gt;
When using the API 'locally' i.e. from the CKAN instance (as would be the case with an ajax interface) the API, especially that allowing READ requests should use the normal user credentials if they are available prior to looking for an API key.
&lt;/p&gt;
&lt;p&gt;
The key change appears to be to change _get_user_for_apikey method in lib/base.py &lt;a class="missing wiki"&gt;BaseController?&lt;/a&gt; to check the c.user attribute (may wish to rename as the name may now be a bit misleading ...).
&lt;/p&gt;
&lt;p&gt;
This is critical to incorporating any ajax editing into the frontend.
&lt;/p&gt;
&lt;p&gt;
As part of this ticket we should do a general consolidation of the identification system in lib/base.py so that both api_key and normal user auth lead to the same set of auth-related objects being available (suggest c.user and c.userobj and c.author).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1001</link>
        <guid isPermaLink="false">http://localhost/ticket/1001</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1002: Remove changeset model code</title>
                  <description>&lt;p&gt;
This code is unused and tests are disabled i belive. I suggest stripping this out (can always be re-added in an extension later). If we remove we should probably delete the relevant tables (and so a migration is needed).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1002</link>
        <guid isPermaLink="false">http://localhost/ticket/1002</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1003: CKAN Javascript library and demonstration web interface</title>
                  <description>&lt;p&gt;
A plain javascript library for interfacing with CKAN would be very useful (why? see below!). It would also be nice to have a pure html + javascript web interface to CKAN both for its own sake and to act as a demonstrator for the library.
&lt;/p&gt;
&lt;p&gt;
Why?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Development of bespoke interfaces -- much easier to edit html + javascript than to change ckan core
&lt;ul&gt;&lt;li&gt;E.g. for specific communities e.g. geodata, science
&lt;/li&gt;&lt;li&gt;Specialized tasks - multi-package editing
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Very easy deployment and integration (e.g. can drop in to getthedata or other sites)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1003</link>
        <guid isPermaLink="false">http://localhost/ticket/1003</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1004: Group creation instructions missing</title>
                  <description>&lt;p&gt;
Need instructions on the group page to tell people they need to login to create a group. Someone must have deleted this.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1004</link>
        <guid isPermaLink="false">http://localhost/ticket/1004</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1005: Editing in ckan missing publishers</title>
                  <description>&lt;p&gt;
Package edit form at hmg.ckan.net has no publishers any more.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1005</link>
        <guid isPermaLink="false">http://localhost/ticket/1005</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1006: Deprecate stable branch</title>
                  <description>&lt;p&gt;
Now that we have release branches we should deprecate the stable branch (ie. make sure it is no longer a head and then do --close-branch and merge into default one last time).
&lt;/p&gt;
&lt;p&gt;
Cost: 10m (giving high priority because of low cost)
&lt;/p&gt;
&lt;p&gt;
(Assigning to dread as he has been managing the stable branch).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1006</link>
        <guid isPermaLink="false">http://localhost/ticket/1006</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1007: Backport WDMMG translations for extensions i18n</title>
                  <description>&lt;p&gt;
Needed to allow extensions to be internationalized in the code and in templates. Requires in-template i18n domain switching which is broken between Genshi and Pylons, thus needs this hackish class.
&lt;/p&gt;
&lt;p&gt;
cf. &lt;a class="ext-link" href="https://bitbucket.org/okfn/wdmmg/src/198841e770e5/wdmmg/config/environment.py#cl-16"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/wdmmg/src/198841e770e5/wdmmg/config/environment.py#cl-16&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1007</link>
        <guid isPermaLink="false">http://localhost/ticket/1007</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1008: eval() of user display name in template head</title>
                  <description>&lt;p&gt;
We're currently setting the user preferences links via a javascript snippet that also evals the name. This should be removed as we're not displaying the user name any longer.
&lt;/p&gt;
&lt;p&gt;
We should also have page fragment caching in Genshi, which is not currently implmented.
&lt;/p&gt;
&lt;p&gt;
cf. &lt;a class="ext-link" href="http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1008</link>
        <guid isPermaLink="false">http://localhost/ticket/1008</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1009: Improvements to user accounts sytem</title>
                  <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>
        <link>http://localhost/ticket/1009</link>
        <guid isPermaLink="false">http://localhost/ticket/1009</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1010: List CKAN users in WUI</title>
                  <description>&lt;p&gt;
Should have user listing at /user/ rather than user account page.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;list users, sorted by number of packages contributed/edited
&lt;/li&gt;&lt;li&gt;Move user home page to /user/{user-id}
&lt;/li&gt;&lt;li&gt;Paginated
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1010</link>
        <guid isPermaLink="false">http://localhost/ticket/1010</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1011: Make pluggable AuthzGroups implementation</title>
                  <description>&lt;p&gt;
I have a requirement to allow an external source to define the groups of which a user is a member.
&lt;/p&gt;
&lt;p&gt;
I propose to create an IAuthzUserGroups plugin interface that allows an extension to arbitrarily extend the list of &lt;a class="missing wiki"&gt;AuthzGroups?&lt;/a&gt; that a user is in.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1011</link>
        <guid isPermaLink="false">http://localhost/ticket/1011</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1012: Add package revision history to api</title>
                  <description>&lt;p&gt;
Revision history information is not accessible, dgu want this.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1012</link>
        <guid isPermaLink="false">http://localhost/ticket/1012</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1013: Refactor &amp; write tests for Wordpresser extension</title>
                  <description>&lt;p&gt;
The Wordpresser extension seems to be working well for DataGM, but needs caching and tests.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1013</link>
        <guid isPermaLink="false">http://localhost/ticket/1013</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1014: Decouple oAuth repoze extension from DataNO, write tests</title>
                  <description>&lt;p&gt;
The current oAuth extension tightly couples repoze.who, ckan, and data.no.  These components should be decoupled; they also need more tests
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1014</link>
        <guid isPermaLink="false">http://localhost/ticket/1014</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1015: Editing group gives exception</title>
                  <description>&lt;p&gt;
Editing a group properties on ckan.net gives an exception when you submit the form. (Is this related to db migration issues?)
&lt;/p&gt;
&lt;p&gt;
Example page: &lt;a class="ext-link" href="http://ckan.net/group/edit/civil-society"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/group/edit/civil-society&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;WebApp Error: &amp;lt;class 'sqlalchemy.exc.IntegrityError'&amp;gt;: (IntegrityError) duplicate key value violates unique constraint "group_revision_pkey" 'INSERT INTO group_revision (id, name, title, description, created, state, revision_id, continuity_id) VALUES (%(id)s, %(name)s, %(title)s, %(description)s, %(created)s, %(state)s, %(revision_id)s, %(continuity_id)s)' {'description': u"A group for open data related to civil society supported by members of the interest group at: http://okfn.org/groups/civil-society\r\n\r\nCivil society is composed of the totality of voluntary civic and social organizations and institutions that form the basis of a functioning society, as distinct from the force-backed structures of a state (regardless of that state's political system) and commercial institutions of the market. \r\n\r\nhttp://en.wikipedia.org/wiki/Civil_society", 'created': datetime.datetime(2011, 2, 24, 14, 30, 53, 334842), 'title': u'Civil Society', 'state': u'active', 'continuity_id': u'f4f9f09
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1015</link>
        <guid isPermaLink="false">http://localhost/ticket/1015</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1017: Problem assigning users to authz groups through web interface</title>
                  <description>&lt;p&gt;
Against ckan-1.3.1, when I create an authz group called "administrators" and visit /authorizationgroup/edit/administrators, I am unable to add more than one user to it.
&lt;/p&gt;
&lt;p&gt;
Each time I add additional users, the existing user on the list is replaced with the new one.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1017</link>
        <guid isPermaLink="false">http://localhost/ticket/1017</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1018: Remove gov form</title>
                  <description>&lt;p&gt;
(It has been moved into ckanext-dgu)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1018</link>
        <guid isPermaLink="false">http://localhost/ticket/1018</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1019: Webhooks notification service</title>
                  <description>&lt;p&gt;
We propose the following push approach using individual packages:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;New, updated and deleted packages are pushed to a url endpoint on Wordpress (WPURL). This endpoint will be a configuration option on the CKAN side. A POST or PUT http method will get used. The payload will be a json document of the following form:
&lt;/li&gt;&lt;/ol&gt;&lt;blockquote&gt;
&lt;p&gt;
{
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
payload: The entity data as available from the REST API
entity-type: 'Package',
operation-type: 'create'|'update'|'delete' # one of these options
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
It will be sent as the body of the request with content-type set to application/json.
&lt;/p&gt;
&lt;ol start="2"&gt;&lt;li&gt;The wordpress side will provide a 200 on success. Any other response will be taken as a failure. On failure, submission will be archived and failure logged and notified to system administrator. Submission can be resent later automatically by sysadmin after review.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Pushes will happen continuously and approximately simultaneously with updates (a webhooks type model)
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;[optional] CKAN side will support configuring authorization for basic authentication if applied on WP side.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;[optional] List queue status (including failures) on ckan adminstrative dashboard.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1019</link>
        <guid isPermaLink="false">http://localhost/ticket/1019</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1020: harvesting doc revision table</title>
                  <description>&lt;p&gt;
add revisioning to harvested document table
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1020</link>
        <guid isPermaLink="false">http://localhost/ticket/1020</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1021: Config option to disable OpenID</title>
                  <description>&lt;p&gt;
HRI don't like federation, want to login normal way only. Make this a config option and perhaps even mess with runtime repoze config
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1021</link>
        <guid isPermaLink="false">http://localhost/ticket/1021</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1022: Error reporting in CKAN worker API</title>
                  <description>&lt;p&gt;
Report on errors by any worker daemons, send them out via E-Mail
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1022</link>
        <guid isPermaLink="false">http://localhost/ticket/1022</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1023: Re-queueing of worker requests with errors</title>
                  <description>&lt;p&gt;
Schedule worker calls to be ran several times, with certain intervals.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1023</link>
        <guid isPermaLink="false">http://localhost/ticket/1023</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1024: Lock down all controller actions in CKAN</title>
                  <description>&lt;p&gt;
When a user visits the site, he/she may only see a login box.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1024</link>
        <guid isPermaLink="false">http://localhost/ticket/1024</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1025: Default authz can be set in config</title>
                  <description>&lt;p&gt;
Currently the default authz for a package is hard-coded to:
&lt;/p&gt;
&lt;pre class="wiki"&gt; &amp;lt;PackageRole user="visitor" role="editor" context="Package"&amp;gt;,
 &amp;lt;PackageRole user="logged_in" role="editor" context="Package"&amp;gt;,
&lt;/pre&gt;&lt;p&gt;
This should be configurable in the config, so that you can have a more locked down instance etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1025</link>
        <guid isPermaLink="false">http://localhost/ticket/1025</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1026: cli for creating users</title>
                  <description>&lt;p&gt;
It's handy to be able to create users using the cli (e.g. dgu migration)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1026</link>
        <guid isPermaLink="false">http://localhost/ticket/1026</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1027: Authorization checks on all controller actions</title>
                  <description>&lt;p&gt;
We want to have authz checks on all controller actions so that we can lock down CKAN to a login-only mode.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1027</link>
        <guid isPermaLink="false">http://localhost/ticket/1027</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1028: Open redirect in locale setting</title>
                  <description></description>
        <link>http://localhost/ticket/1028</link>
        <guid isPermaLink="false">http://localhost/ticket/1028</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1029: synchronous search erroring when harvesting is run.</title>
                  <description>&lt;p&gt;
Errors are caused when harvesting documents. This also makes the count not show up correctly on the ckan search page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1029</link>
        <guid isPermaLink="false">http://localhost/ticket/1029</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1030: Move harvesting out of the rest API</title>
                  <description></description>
        <link>http://localhost/ticket/1030</link>
        <guid isPermaLink="false">http://localhost/ticket/1030</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1031: User lookup API</title>
                  <description>&lt;p&gt;
Add an api for searching users. This is needed for any kind of ajax autocomplete (needed for anywhere we want to add users).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;API location: /api/util/user/lookup?q=querystr&amp;amp;limit=10
&lt;/li&gt;&lt;li&gt;Return json objects containing {id: ..., name: ..., fullname: ...}
&lt;/li&gt;&lt;li&gt;Put in a module called controllers/apiv2/user.py
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1031</link>
        <guid isPermaLink="false">http://localhost/ticket/1031</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1032: [super] Resources in WUI</title>
                  <description>&lt;p&gt;
Add resources into Web User Interface.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Locate at: /dataset/{dataset}/resource/{id}
&lt;/li&gt;&lt;li&gt;CRUD
&lt;/li&gt;&lt;li&gt;Authorization
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Done:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;&lt;a class="closed ticket" href="http://localhost/ticket/945" title="enhancement: [super] Richer resources - Resource Groups, new fields, improved UI (closed: fixed)"&gt;#945&lt;/a&gt; - Richer resources - Resource Groups, new fields, improved UI&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1445" title="enhancement: Resource View page in WUI (closed: fixed)"&gt;#1445&lt;/a&gt; - Resource View page in WUI&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1450" title="enhancement: Simplify dataset view page (closed: fixed)"&gt;#1450&lt;/a&gt; - Dataset view pages to match&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Moved to superticket &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&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; - Edit Resource Extras in Web UI
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1032</link>
        <guid isPermaLink="false">http://localhost/ticket/1032</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1033: Register user with blank password causes 500</title>
                  <description>&lt;p&gt;
Go to &lt;a class="ext-link" href="http://ckan.net/user/register"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/user/register&lt;/a&gt; and fill in all the fields apart from password. On submit you get 500 error.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1033</link>
        <guid isPermaLink="false">http://localhost/ticket/1033</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1034: Flash message cached</title>
                  <description>&lt;ol&gt;&lt;li&gt;Login
(shows ckan home page with flash message "Welcome back xyz")
&lt;/li&gt;&lt;li&gt;Click away, to "Add package" say
&lt;/li&gt;&lt;li&gt;Click back to ckan "Home".
It shows "Welcome back xyz" again - it shouldn't, I assume?
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1034</link>
        <guid isPermaLink="false">http://localhost/ticket/1034</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1035: Form impressions given an ID</title>
                  <description>&lt;p&gt;
To counter Cross Site Request Forgery attacks, each form generated is assigned a random number in its url, which must be passed when you submit the form.
&lt;/p&gt;
&lt;p&gt;
(Something to consider for the new form mechanism)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1035</link>
        <guid isPermaLink="false">http://localhost/ticket/1035</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1036: Add tests for three functions in ckan/model/user.py</title>
                  <description>&lt;p&gt;
create a new test file ckan/model/test_user.py
&lt;/p&gt;
&lt;p&gt;
add tests for the following three functions in ckan/model/user.py
&lt;/p&gt;
&lt;p&gt;
number_of_edits,
number_administered_packages,
search
&lt;/p&gt;
&lt;p&gt;
merged in in changeset 0046f83aedcf
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1036</link>
        <guid isPermaLink="false">http://localhost/ticket/1036</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1037: More Robust Harvesting for DGU</title>
                  <description>&lt;p&gt;
CKAN's harvesting facility is now live on DGU but there are some major improvements that could be made to make it more robust and better fit the generic CKAN harvesting framework proposed in &lt;a class="closed ticket" href="http://localhost/ticket/987" title="defect: Common harvesting framework (closed: duplicate)"&gt;#987&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Some of the key issues:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Error reports do not currently contain the ID or title of the document with the error.
&lt;/li&gt;&lt;li&gt;We only have "added" and "error" logging on jobs when we really need a report of "added", "updated", "not changed" and "errors" with the items in each referencing a real metadata document for which harvesting was attempted
&lt;/li&gt;&lt;li&gt;We need deletion and editing of sources, without deleting the harvested documents or packages
&lt;/li&gt;&lt;li&gt;We need a more robust harvesting mechanism than a cron job or we need to deal with the case of multiple cron jobs running at once.
&lt;/li&gt;&lt;li&gt;We need to know the last time a list of documents was scheduled for harvest and the last time each one was fetched.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1037</link>
        <guid isPermaLink="false">http://localhost/ticket/1037</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1038: Authz tool - operate on all packages at once</title>
                  <description>&lt;p&gt;
Add 'package:all' to authz tool to allow mass changes of authz.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1038</link>
        <guid isPermaLink="false">http://localhost/ticket/1038</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1039: Default user roles read from config</title>
                  <description>&lt;p&gt;
(instead of being hard coded)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1039</link>
        <guid isPermaLink="false">http://localhost/ticket/1039</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1040: File system mounted</title>
                  <description>&lt;p&gt;
Public file path code adds a trailing , and thus adds / as a static file app in the Pylons middleware cascade.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1040</link>
        <guid isPermaLink="false">http://localhost/ticket/1040</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1041: Start Using the CKAN Wiki for Tutorial-style documentation</title>
                  <description>&lt;p&gt;
For example, I will document the following:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A specific guide on using mercurial when working with our branching and merging policy
&lt;ul&gt;&lt;li&gt;DONE - &lt;a class="ext-link" href="http://wiki.ckan.net/Becoming_a_CKAN_Developer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Becoming_a_CKAN_Developer&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Policy document on how we use tickets, plan sprints and make releases
&lt;ul&gt;&lt;li&gt;DONE - &lt;a class="ext-link" href="http://wiki.ckan.net/Becoming_a_CKAN_Developer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Becoming_a_CKAN_Developer&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;How to package software as .deb file for project deployment
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
I'd love if someone else would write:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;An authorisation tutorial covering the core model, the command line tools and examples of every possible way of using the system
&lt;/li&gt;&lt;li&gt;A HOWTO guide with screenshots for adding a package
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1041</link>
        <guid isPermaLink="false">http://localhost/ticket/1041</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1042: 'Ckanext' split-up</title>
                  <description>&lt;p&gt;
It's not good to have ckanext doing lots of different things with different dependencies. Split it off into:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ckanext-importlib
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
etc.
&lt;/p&gt;
&lt;p&gt;
And then deprecate the ckanext repo itself.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1042</link>
        <guid isPermaLink="false">http://localhost/ticket/1042</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1043: stop sqlalchemy message saying at least one scoped seession already present</title>
                  <description>&lt;p&gt;
see summary.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1043</link>
        <guid isPermaLink="false">http://localhost/ticket/1043</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1044: Sysadmins locked-out of API without Right: (visitor, SITE_READ, System)</title>
                  <description>&lt;p&gt;
The problem is that in ckan/controllers/rest.py the &lt;a class="missing wiki"&gt;BaseApiController?&lt;/a&gt; has this method:
&lt;/p&gt;
&lt;pre class="wiki"&gt;    def __before__(self, action, **env):
        BaseController.__before__(self, action, **env)
        if not self.authorizer.am_authorized(c, model.Action.SITE_READ, model.System):
            abort(401, _('Not authorized to see this page'))
&lt;/pre&gt;&lt;p&gt;
which works on the basis of your c.user, rather than your apikey. All API users are treated as visitors (since API users don't get a login cookie) and even a sysadmin's apikey is blocked unless there is a right for a Visitor to SITE_READ.
&lt;/p&gt;
&lt;p&gt;
Also needs tests.
&lt;/p&gt;
&lt;p&gt;
(Also, why is this restriction only on the API, package search, group index and tags and agroup index? I'm guessing SITE_READ is only for places where other authz don't apply, but maybe it should not be called 'SITE_READ' but 'OTHER_READ' or something?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1044</link>
        <guid isPermaLink="false">http://localhost/ticket/1044</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1045: Group identified by ID in API</title>
                  <description>&lt;pre class="wiki"&gt;http://ckan.net/api/2/rest/group
&lt;/pre&gt;&lt;p&gt;
returns group IDs but I can only reach a group by name:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://ckan.net/api/2/rest/group/economics
&lt;/pre&gt;&lt;p&gt;
when I also want to get a group by ID:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://ckan.net/api/2/rest/group/04fb43d2-8ddf-4485-9bf5-66d47d3672f3
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1045</link>
        <guid isPermaLink="false">http://localhost/ticket/1045</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1046: Dictization and the new logic layer</title>
                  <description>&lt;p&gt;
The stages involved with doing this.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Convert model objects to standard dict format (DONE)
&lt;/li&gt;&lt;li&gt;Convert standard dicts to current api formats (DONE)
&lt;/li&gt;&lt;li&gt;Make standard dicts savable (DONE)
&lt;/li&gt;&lt;li&gt;Validate standard dict format. (DONE)
&lt;/li&gt;&lt;li&gt;Authorize actions
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1046</link>
        <guid isPermaLink="false">http://localhost/ticket/1046</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1047: Package edit form claims you're not logged in at the end when you are</title>
                  <description>&lt;p&gt;
At the bottom, it says something like
&lt;/p&gt;
&lt;p&gt;
Author: Bob Bumgardner
Since you have not signed in this will just be your IP address. Click here to sign in before saving (opens in new window).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1047</link>
        <guid isPermaLink="false">http://localhost/ticket/1047</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1048: Complete making groups versioned</title>
                  <description>&lt;ul&gt;&lt;li&gt;Deleting a group changes state to 'deleted' rather than purging it
&lt;/li&gt;&lt;li&gt;Adding authz tests for deleted groups
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1048</link>
        <guid isPermaLink="false">http://localhost/ticket/1048</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1049: Fix database errors on offener.datenkatalog.at etc.</title>
                  <description>&lt;p&gt;
We're getting these sorts of exceptions from  &lt;a class="ext-link" href="http://offener.datenkatalog.at/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://offener.datenkatalog.at/&lt;/a&gt; like we had from ckan.net, which was due to small errors in migration scripts. Is it worth fixing this database, and in fact all the ckans on eu3 at once?
&lt;/p&gt;
&lt;pre class="wiki"&gt;WebApp Error: &amp;lt;class 'sqlalchemy.exceptions.IntegrityError'&amp;gt;: (IntegrityError) duplicate key value violates unique constraint "group_revision_pkey" 'INSERT INTO group_revision (id, name, title, description, created, state, revision_id, continuity_id) VALUES (%(id)s, %(name)s, %(title)s, %(description)s, %(created)s, %(state)s, %(revision_id)s, ...
&lt;/pre&gt;&lt;p&gt;
Thoughts James and Rufus?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1049</link>
        <guid isPermaLink="false">http://localhost/ticket/1049</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1050: Authz lib improvement and refactor of ckan/lib/authztool.py</title>
                  <description>&lt;p&gt;
Refactor ckan/lib/authztool.py so that the relevant methods are independent of the command line interface.
&lt;/p&gt;
&lt;p&gt;
The extracted methods should live in a new file ckan/authz.py. authztool.py should probably move into cli.py and will just do command line parsing and printing and use ckan/authz.py. The updated web gui for authz will also use this code.
&lt;/p&gt;
&lt;p&gt;
Tests should be made. There's already a file ckan/tests/test_authz.py, which looks like the appropriate place for new tests.
&lt;/p&gt;
&lt;p&gt;
all to go on a branch feature-1050-refactor-authtoolz
&lt;/p&gt;
&lt;h2 id="Optionalextras"&gt;Optional extras&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Rename ckan/authz.py to ckan/lib/authz.py or even ckan/logic/authz.py
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1050</link>
        <guid isPermaLink="false">http://localhost/ticket/1050</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1051: Ability to set custom favicon</title>
                  <description>&lt;p&gt;
Allow deployers to set a URL pointing to their own favicon
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1051</link>
        <guid isPermaLink="false">http://localhost/ticket/1051</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1052: Authz holes</title>
                  <description>&lt;p&gt;
No authz on:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Group creation/edit/listing
&lt;/li&gt;&lt;li&gt;Package relationship create/edit/delete
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1052</link>
        <guid isPermaLink="false">http://localhost/ticket/1052</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1053: Deletion in Model API</title>
                  <description>&lt;p&gt;
Currently in the API if you DELETE a package/group/user (and you have the required permissions) then it purges the object, when it should probably just set the state to deleted.
&lt;/p&gt;
&lt;p&gt;
There is no way to delete objects at the moment - changes to 'state' are ignored in the API.
&lt;/p&gt;
&lt;p&gt;
Do we need an alternative way to purge objects in the API?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1053</link>
        <guid isPermaLink="false">http://localhost/ticket/1053</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1054: Ordering of resources</title>
                  <description>&lt;p&gt;
Changing an old resource and creating a new resource on the end results in the old resource moving to the end in the ordering.
&lt;/p&gt;
&lt;p&gt;
This breaks tests:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;(ckanext-dgu) ckanext/dgu/tests/ons/test_ons_loader.py:TestOnsLoadBasic.test_fields
&lt;/li&gt;&lt;li&gt;(ckanext-importlib) ckanext/importlib/tests/test_loader.py:TestLoaderInsertingResources.test_0_reload
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
You can make a ckan test break with this patch:
&lt;/p&gt;
&lt;pre class="wiki"&gt;diff -r e6643cf1324c ckan/tests/models/test_resource.py
--- a/ckan/tests/models/test_resource.py        Wed Mar 23 13:25:52 2011 +0000
+++ b/ckan/tests/models/test_resource.py        Wed Mar 23 19:22:35 2011 +0000
@@ -297,6 +297,8 @@
                'url':self.urls[1], 'format':u'OTHER FORMAT',
                'description':self.description, 'hash':self.hash,
                'id':original_res_ids[2]},
+            { #new
+                'url':'new'},
            ]
        pkg.update_resources(res_dicts)
        model.repo.commit_and_remove()
&lt;/pre&gt;&lt;p&gt;
There seems to be a problem with vdm creating a replacement Resource for the old resource - because it has a duplicate position it is put to the end by the SQLAlchemy ordering_list function.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1054</link>
        <guid isPermaLink="false">http://localhost/ticket/1054</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1055: @search_related tests not running</title>
                  <description>&lt;p&gt;
Tests marked decorated "@search_related" should only be run against postgresql, but in fact they don't get run at all.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1055</link>
        <guid isPermaLink="false">http://localhost/ticket/1055</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1056: User links for OpenID users are broken</title>
                  <description>&lt;p&gt;
Use case:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Login using OpenID
&lt;/li&gt;&lt;li&gt;Click on 'My account' - results in 404
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Solutions:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;User user.id instead of their name
&lt;/li&gt;&lt;li&gt;Escape the URL properly.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1056</link>
        <guid isPermaLink="false">http://localhost/ticket/1056</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1057: JSONP parameter isn't escaped</title>
                  <description>&lt;pre class="wiki"&gt;$ curl "http://127.0.0.1:5000/api/rest/package/annakarenina?callback=&amp;lt;script&amp;gt;jsoncallback"
&lt;/pre&gt;&lt;p&gt;
gives:
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;script&amp;gt;jsoncallback({"id": "c10ebd31-5b45-4f6f-885d-dca9b18caec4", "name": "annakarenina", "title": "A Novel By Tolstoy",
&lt;/pre&gt;&lt;p&gt;
which could run script code in the client who made the call.
&lt;/p&gt;
&lt;p&gt;
One idea for filtering: &lt;a class="ext-link" href="http://tav.espians.com/sanitising-jsonp-callback-identifiers-for-security.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://tav.espians.com/sanitising-jsonp-callback-identifiers-for-security.html&lt;/a&gt;
Maybe just better to have a restricted whitelist of characters to be even more sure.
&lt;/p&gt;
&lt;p&gt;
Same as: &lt;a class="ext-link" href="https://trac.dataco.coi.gov.uk/projects/datagov/ticket/906"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://trac.dataco.coi.gov.uk/projects/datagov/ticket/906&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1057</link>
        <guid isPermaLink="false">http://localhost/ticket/1057</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1058: Give 400 error (not 500) for invalid locale or package_form</title>
                  <description>&lt;p&gt;
Examples which prompt annoying exception emails:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://ckan.net/locale?locale=ja
Module ckan.i18n:21 in set_session_locale
           assert locale in _KNOWN_LOCALES
&lt;/pre&gt;&lt;p&gt;
A bot has caused these:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://ca.ckan.net/package/new?package_form=gov
Module ckan.forms.registry:32 in get_fieldset
               raise ValueError('Could not find package_form name %r in those found: \n%r' % (package_form, [en.name for en in entrypoints]))
ValueError: Could not find package_form name u'gov)' in those found: ['gov', 'standard', 'ca']
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1058</link>
        <guid isPermaLink="false">http://localhost/ticket/1058</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1059: Loader coping better with poor search indexing</title>
                  <description>&lt;p&gt;
Loader currently checks for same name, but also should check for name_, name&lt;span class="underline"&gt; etc.
&lt;/span&gt;&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1059</link>
        <guid isPermaLink="false">http://localhost/ticket/1059</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1060: Spreadsheet importer tries to import readonly keys</title>
                  <description>&lt;p&gt;
e.g. we just added notes_rendered and that is read in as an extra field.
Tests failing in ckanext-importlib
&lt;/p&gt;
&lt;p&gt;
Also related: we are missing lost metadata_created and metadata_modified in the dumps.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1060</link>
        <guid isPermaLink="false">http://localhost/ticket/1060</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1061: Orphaned home/license page</title>
                  <description>&lt;p&gt;
No links to home/license and it contains out of date references to knowledgeforge. Remove it.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1061</link>
        <guid isPermaLink="false">http://localhost/ticket/1061</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1062: Data preview encoding error</title>
                  <description>&lt;p&gt;
The preview of "Species Misc Turtle Download" at &lt;a class="ext-link" href="http://ckan.net/package/taxonconcept"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/taxonconcept&lt;/a&gt; results in the following error:
&lt;/p&gt;
&lt;p&gt;
Unable to Preview - Had an error from dataproxy:
Data Transformation Error (Data transformation failed. Reason: 'utf8' codec can't decode byte 0x8b in position 1: unexpected code byte
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1062</link>
        <guid isPermaLink="false">http://localhost/ticket/1062</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1063: Groups listing widget on package screen shouldn't show group name by default</title>
                  <description>&lt;p&gt;
I've been asked if we can do something about the overflow of the Group
name in the right hand column on this page:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://register.data.overheid.nl/package/europese-aanbestedingen"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://register.data.overheid.nl/package/europese-aanbestedingen&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The reason is that the list display for groups is in the form
"group_tltie (group_name)", and of course group_name can't have spaces
and so can't wrap nicely.
&lt;/p&gt;
&lt;p&gt;
I was wondering if there's a good reason why we don't only display
group_title (if it exists) and group_name only when there's not a
title?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1063</link>
        <guid isPermaLink="false">http://localhost/ticket/1063</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1064: Remove Workers from ckanext-queue</title>
                  <description>&lt;p&gt;
The current implementation of Workers in ckanext-queue is broken. Basically the various consume / callback functions expect three arguments (routing_key, operation, payload) when they are in fact receiving only two of them (message_data, message).
This is fairly easy to fix, but the question is if Workers add an extra complexity to use the messaging library directly.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1064</link>
        <guid isPermaLink="false">http://localhost/ticket/1064</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1065: [super] Change Authorization System</title>
                  <description>&lt;p&gt;
Child tickets
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/1198" title="enhancement: Publisher hierarchy (new)"&gt;#1198&lt;/a&gt; Publisher hierarchy
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1050" title="enhancement: Authz lib improvement and refactor of ckan/lib/authztool.py (closed: invalid)"&gt;#1050&lt;/a&gt; Authz lib improvement and refactor of ckan/lib/authztool.py
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1004" title="defect: Group creation instructions missing (closed: fixed)"&gt;#1004&lt;/a&gt; Group creation instructions missing
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1099" title="defect: strange interactions between two browsers while playing with authz groups (closed: wontfix)"&gt;#1099&lt;/a&gt; Strange interactions between two browsers while playing with authz groups
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1115" title="defect: can have two authzgroups with the same name (closed: wontfix)"&gt;#1115&lt;/a&gt; can have two authzgroups with the same name
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1133" title="defect: command line rights manipulation doesn't work (closed: worksforme)"&gt;#1133&lt;/a&gt; command line rights manipulation doesn't work
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1138" title="enhancement: minor navigations behave inconsistently (closed: invalid)"&gt;#1138&lt;/a&gt; minor navigations behave inconsistently
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Old ticket description:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Change name of &lt;a class="missing wiki"&gt;AuthzGroup?&lt;/a&gt; to &lt;a class="missing wiki"&gt;UserGroup?&lt;/a&gt; to reflect what it is for
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Get rid of Roles, and replace them with direct assignment of actions, even though there are many actions, and extensions can add arbitrary ones.
&lt;ul&gt;&lt;li&gt;Debatable whether we should cut the number of actions to correspond to the three roles defined by the base system.
&lt;/li&gt;&lt;li&gt;Have a method of finding roles (or, in future, actions) relevant to a given protection object (e.g. FILE-UPLOAD(ER) not relevant to Packages)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Change &lt;a class="missing wiki"&gt;UserGroups?&lt;/a&gt; so that they can have a hierarchical structure,
&lt;/li&gt;&lt;/ol&gt;&lt;h2 id="MoreinfoonHierarchychange"&gt;More info on Hierarchy change&lt;/h2&gt;
&lt;p&gt;
e.g. &lt;a class="missing wiki"&gt;UserGroup?&lt;/a&gt; NHS contains the User nhsysadmin, as well as the
&lt;a class="missing wiki"&gt;UserGroups?&lt;/a&gt; SURREY and BERKS, which themselves contain users.
&lt;/p&gt;
&lt;p&gt;
One user in SURREY is Simon the Sysadmin, who has permissions on the whole system. His permissions should not leak out to other users or groups, and user permissions generally should not.
&lt;/p&gt;
&lt;p&gt;
Each Group has permissions over various objects.
&lt;/p&gt;
&lt;p&gt;
A user has permissions in his own right, and also has the permissions of his own group, and of all the groups contained in his group, and so on recursively.
&lt;/p&gt;
&lt;p&gt;
Algorithm:
&lt;/p&gt;
&lt;p&gt;
possible(user, action, package):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if user has permission for action on package
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
or any of have that permission
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
or any of his groups group-children (but not user-children), and so on recursively have the permission.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/1065</link>
        <guid isPermaLink="false">http://localhost/ticket/1065</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1066: Default reader role too permissive</title>
                  <description>&lt;p&gt;
The definition of the 'reader' role includes creating packages, which is too permissive for some CKAN instances (e.g. DGU). 'Reader' suggests only reading, so I think this role should avoid creating and editing.
&lt;/p&gt;
&lt;p&gt;
All projects so far want all roles to be able to create users, so this stays as a Reader action for now, as a convenience.
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Action.PACKAGE_CREATE removed from reader's default_role_actions
&lt;/li&gt;&lt;li&gt;Visitor has a new default role, called 'anon_editor' which can edit packages, but not groups / auth groups - you have to log in for that.
&lt;/li&gt;&lt;li&gt;Migration script not needed?
&lt;/li&gt;&lt;li&gt;Code comments written, to make clear the suggested policy
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1066</link>
        <guid isPermaLink="false">http://localhost/ticket/1066</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1067: CLI for loading/dumping complete databases</title>
                  <description>&lt;p&gt;
Use 'db dump' and 'db load' for 'pg_dump' and 'psql -f' of a database. Use pylons config to find out database options.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1067</link>
        <guid isPermaLink="false">http://localhost/ticket/1067</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1068: metadata_modified problem</title>
                  <description>&lt;p&gt;
This test has been failing since the clocks changed:
&lt;/p&gt;
&lt;pre class="wiki"&gt;======================================================================
FAIL: ckan.tests.models.test_package.TestPackageRevisions.test_02_metadata_created_and_modified
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/dread/hgroot/pyenv-ckan2/lib/python2.6/site-packages/nose-0.11.3-py2.6.egg/nose/case.py", line 186, in runTest
    self.test(*self.arg)
  File "/home/dread/hgroot/ckan2/ckan/tests/models/test_package.py", line 283, in test_02_metadata_created_and_modified
    assert out == exp, (out, exp)
AssertionError: (datetime.datetime(2011, 4, 1, 10, 45, 50, 875509), datetime.datetime(2011, 4, 1, 9, 45, 50, 875509))
----------------------------------------------------------------------
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1068</link>
        <guid isPermaLink="false">http://localhost/ticket/1068</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1069: Stub datasets (request for datasets)</title>
                  <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>
        <link>http://localhost/ticket/1069</link>
        <guid isPermaLink="false">http://localhost/ticket/1069</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1070: Plan a new domain model and layer architecture for CKAN</title>
                  <description>&lt;p&gt;
See &lt;a class="ext-link" href="http://wiki.ckan.net/Domain_Model"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Domain_Model&lt;/a&gt; especially section on v2.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;New domain model is planned but not yet finally agreed.
&lt;/li&gt;&lt;li&gt;Layer architecture is complete and implemented
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1070</link>
        <guid isPermaLink="false">http://localhost/ticket/1070</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1071: Package history API moved to /api/rest/package/revisions</title>
                  <description>&lt;p&gt;
api/rest/package_history is not RESTful or follow API naming conventions. Therefore move it to /api/rest/package/revisions
&lt;/p&gt;
&lt;p&gt;
Also, API docs incomplete.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1071</link>
        <guid isPermaLink="false">http://localhost/ticket/1071</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1072: Add filters to authztool</title>
                  <description>&lt;p&gt;
It takes several minutes to print the 'rights' on DGU, which is annoying when you only want to grep for a few lines. Much quicker than grepping is to filter in the query.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1072</link>
        <guid isPermaLink="false">http://localhost/ticket/1072</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1073: Search index checker</title>
                  <description>&lt;p&gt;
Tool that checks which packages have not been indexed.
&lt;/p&gt;
&lt;p&gt;
Required for DGU: &lt;a class="ext-link" href="https://trac.dataco.coi.gov.uk/projects/datagov/ticket/940"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://trac.dataco.coi.gov.uk/projects/datagov/ticket/940&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1073</link>
        <guid isPermaLink="false">http://localhost/ticket/1073</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1074: Refactor authz web user interface to have common code and templating</title>
                  <description>&lt;p&gt;
Currently repeat the same template and code across Package Authz, Group Authz, and Authz Group authz.
&lt;/p&gt;
&lt;p&gt;
Having now implemented a new, cleaner setup in ckanext-admin we should port this back into core.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Common template code (checkbox template)
&lt;/li&gt;&lt;li&gt;Logic code (or just common code) for wiring into authz system
&lt;/li&gt;&lt;li&gt;Look for all places thoroughout the system where usernames, authzgroups or groups need to be typed into boxes, and make sure that they auto-complete appropriately.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Will also deliver a significant improvement in the form of ajax user lookup.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1074</link>
        <guid isPermaLink="false">http://localhost/ticket/1074</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1075: Administrative dashboard - Edit Authorization related to System object</title>
                  <description>&lt;p&gt;
Roles on System object are important because admin role on system equates to being a 'sysadmin' (i.e. able to do anything).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Make users sysadmin (either as separate action or as part of editing roles on system object)
&lt;/li&gt;&lt;li&gt;/authz subpage for editing roles on system object
&lt;ul&gt;&lt;li&gt;Add and update user roles
&lt;/li&gt;&lt;li&gt;Add and update authz group roles
&lt;/li&gt;&lt;li&gt;List actions associated to roles at top of page (extra points for checkbox table with editability)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Document on &lt;a class="ext-link" href="http://wiki.ckan.net/Authorization"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Authorization&lt;/a&gt; what roles on System object 'mean' esp sysadmin role on System
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="RelatedTickets"&gt;Related Tickets&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/833" title="enhancement: [super] Administrative dashboard extension (closed: fixed)"&gt;#833&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;authz lib improvement and authztool refactor &lt;a class="closed ticket" href="http://localhost/ticket/1050" title="enhancement: Authz lib improvement and refactor of ckan/lib/authztool.py (closed: invalid)"&gt;#1050&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1075</link>
        <guid isPermaLink="false">http://localhost/ticket/1075</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1076: Improve revision and package purge system</title>
                  <description>&lt;h2 id="PurgingRevisions"&gt;Purging Revisions&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Delete button displayed on:
&lt;ul&gt;&lt;li&gt;/revision/list
&lt;/li&gt;&lt;li&gt;&lt;del&gt;(/package/history)&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;/package/history is problematic because html does not allow nested forms and we already have form for doing diff/comparison.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;/revision/{id}
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Delete button submits to delete action on revision and changes revision state to 'deleted'.
&lt;ul&gt;&lt;li&gt;undelete button now displayed and revisions are marked as deleted in some way (e.g. greyed out?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Sysadmins then visit /ckan-admin/trash which lists all revisions with deleted state. There is a large button: "Empty trash" (irreversible). Click button purges all revisions with deleted state.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="PurgingPackages"&gt;Purging Packages&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Put into deleted state.
&lt;/li&gt;&lt;li&gt;Listed on /ckan-admin/trash
&lt;/li&gt;&lt;li&gt;Separate Empty trash button which deletes all associated revisions.
&lt;ul&gt;&lt;li&gt;Should be separate from Empty trash for revisions
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Currentsystem"&gt;Current system&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Single purge link on revision listing if a sysadmin which permanently purges the revision and all associated changes (without confirmation atm!)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1076</link>
        <guid isPermaLink="false">http://localhost/ticket/1076</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1077: Move to simpler vdm system</title>
                  <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>
        <link>http://localhost/ticket/1077</link>
        <guid isPermaLink="false">http://localhost/ticket/1077</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1078: Refactors WUI controllers and forms to use logic layer</title>
                  <description>&lt;ul&gt;&lt;li&gt;Deserialize forms to new dict format.
&lt;/li&gt;&lt;li&gt;Replace controllers/forms to use dictization.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1078</link>
        <guid isPermaLink="false">http://localhost/ticket/1078</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1079: Refactor API to use new logic layer and dictization</title>
                  <description>&lt;ul&gt;&lt;li&gt;Convert current api saves to the new standard dict format.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1079</link>
        <guid isPermaLink="false">http://localhost/ticket/1079</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1081: can't remove user from authz group</title>
                  <description>&lt;p&gt;
I've found that if I make an authorization group I sometimes can't remove myself from it. I've no idea why. I can add and remove other users. I'll investigate, just making a note of it here.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1081</link>
        <guid isPermaLink="false">http://localhost/ticket/1081</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1082: language changes behave strangely</title>
                  <description>&lt;p&gt;
Set language to Greek, flash message says 'Language set to: English', but page is now about half in Greek.
&lt;/p&gt;
&lt;p&gt;
Set language back to English causes server error:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;AttributeError?&lt;/a&gt;: '&lt;a class="missing wiki"&gt;NoneType?&lt;/a&gt;' object has no attribute 'path'
&lt;/p&gt;
&lt;p&gt;
Module ckan.controllers.error:29 in document          view
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
if original_request.path.startswith('/api'):
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
However going to a new page reveals that it's back to English
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1082</link>
        <guid isPermaLink="false">http://localhost/ticket/1082</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1083: userobjectroles added twice can't be deleted</title>
                  <description>&lt;p&gt;
the add_user_to_role/remove_user_from_role functions are asymmetrical
in that the add function is happy to add the same role twice but the remove asserts that it's only in the table once and crashes if that's not true.
&lt;/p&gt;
&lt;p&gt;
an attempt has been made to guard against this, but fails, I think because the add functions rely on the caller committing the change to the db.
&lt;/p&gt;
&lt;p&gt;
same problem affects corresponding authorization_group functions
&lt;/p&gt;
&lt;p&gt;
I'll try to sort this out. Making a note here.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1083</link>
        <guid isPermaLink="false">http://localhost/ticket/1083</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#1084: ckan.net RDF links changed</title>
                  <description>&lt;p&gt;
need to make some changes for the links to semantic.ckan.net. it should use &lt;a class="ext-link" href="http://semantic.ckan.net/record/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://semantic.ckan.net/record/&lt;/a&gt;&amp;lt;package_id&amp;gt; now
&lt;/p&gt;
&lt;p&gt;
append .rdf, .ttl, .nt, .dot, .json (even .html for an ugly table)  to taste (or just leave off the suffix and let content negotiation take care of it)
&lt;/p&gt;
&lt;p&gt;
the base url is changed, but it now uses id not name.
&lt;/p&gt;
&lt;p&gt;
see for example:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://semantic.ckan.net/record/6058c017-607b-48d9-b3cd-72106ad96e33"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://semantic.ckan.net/record/6058c017-607b-48d9-b3cd-72106ad96e33&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://semantic.ckan.net/record/6058c017-607b-48d9-b3cd-72106ad96e33.ttl"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://semantic.ckan.net/record/6058c017-607b-48d9-b3cd-72106ad96e33.ttl&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1084</link>
        <guid isPermaLink="false">http://localhost/ticket/1084</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1085: local development copy of ckan depends on existence of ckan.net</title>
                  <description>&lt;p&gt;
ckan.net appears to have either gone down or be running ultra slowly.
&lt;/p&gt;
&lt;p&gt;
this means that ckan copies running locally on my machine run very slowly indeed.
&lt;/p&gt;
&lt;p&gt;
is this behaviour desirable?
&lt;/p&gt;
&lt;p&gt;
This command finds lots of &lt;a class="ext-link" href="http://~~~ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://~~~ckan.net&lt;/a&gt; references in python, html and javascript files:
&lt;/p&gt;
&lt;p&gt;
find ~/pyenv/src \( -name "*.py" -or -name "*.html" -or -name "*.js" \) -print0 | xargs -0 -e grep --color -nH -e "&lt;a class="ext-link" href="http://.*ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://.*ckan.net&lt;/a&gt;"
&lt;/p&gt;
&lt;p&gt;
output for reference:
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
/home/okfn/pyenv/src/ckan/ckan/&lt;span class="underline"&gt;init__.py:5:Network (CKAN) site: &lt;a class="ext-link" href="http://www.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net&lt;/a&gt;.
/home/okfn/pyenv/src/ckan/ckan/lib/create_test_data.py:346:&amp;lt;&lt;a class="ext-link" href="http://ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/&lt;/a&gt;&amp;gt;
/home/okfn/pyenv/src/ckan/ckan/lib/rdf.py:3:DOMAIN = '&lt;a class="ext-link" href="http://ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net&lt;/a&gt;'
/home/okfn/pyenv/src/ckan/ckan/lib/rdf.py:4:CKAN_NAMESPACE = '&lt;a class="ext-link" href="http://ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/&lt;/a&gt;#'
/home/okfn/pyenv/src/ckan/ckan/lib/talis.py:60:                      'ckan':'&lt;a class="ext-link" href="http://ckan.net/ns"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/ns&lt;/a&gt;#',
/home/okfn/pyenv/src/ckan/ckan/public/scripts/bookmarklet.js:2:    f='&lt;a class="ext-link" href="http://ckan.net/package/new?url='+encodeURIComponent(window.location.href)+'&amp;amp;title='+encodeURIComponent(document.title"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/new?url='+encodeURIComponent(window.location.href)+'&amp;amp;title='+encodeURIComponent(document.title&lt;/a&gt;);
/home/okfn/pyenv/src/ckan/ckan/public/scripts/test_bookmarklet.html:16:    addtockan.src='&lt;a class="ext-link" href="http://ckan.net/scripts/bookmarklet.js"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/scripts/bookmarklet.js&lt;/a&gt;';
/home/okfn/pyenv/src/ckan/ckan/public/scripts/test_bookmarklet.html:27:    &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Proper bookmarklet (compressed -- need to escape &amp;amp;amp;):&amp;lt;/strong&amp;gt; &amp;lt;a href="javascript:(function(){f='&lt;a class="ext-link" href="http://ckan.net/package/new?url='+encodeURIComponent(window.location.href)+'&amp;amp;amp;title='+encodeURIComponent(document.title);if((n=document.getElementsByName('description')[0])&amp;amp;amp;&amp;amp;amp;(d=n.content)){f+='&amp;amp;amp;notes='+encodeURIComponent(d);}a=function(){if(!window.open(f)){location.href=f;}};if(/Firefox/.test(navigator.userAgent)){setTimeout(a,0)}else{a"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/new?url='+encodeURIComponent(window.location.href)+'&amp;amp;amp;title='+encodeURIComponent(document.title);if((n=document.getElementsByName('description')[0])&amp;amp;amp;&amp;amp;amp;(d=n.content)){f+='&amp;amp;amp;notes='+encodeURIComponent(d);}a=function(){if(!window.open(f)){location.href=f;}};if(/Firefox/.test(navigator.userAgent)){setTimeout(a,0)}else{a&lt;/a&gt;()}})()"&amp;gt;Add to CKAN&amp;lt;/a&amp;gt;
/home/okfn/pyenv/src/ckan/ckan/templates/home/license.html:31:      For convenience, all material - including all package, tag and revision information - is available in bulk, in the form of a full dump of the CKAN database. This (gzipped) dump file is updated daily and can be downloaded from &amp;lt;a href="&lt;a class="ext-link" href="http://www.ckan.net/dump/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/dump/&lt;/a&gt;"&amp;gt;&lt;a class="ext-link" href="http://www.ckan.net/dump/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/dump/&lt;/a&gt;&amp;lt;/a&amp;gt;.
/home/okfn/pyenv/src/ckan/ckan/tests/dictization.py:71:            'notes': u'Some test notes\n\n### A 3rd level heading\n\n&lt;strong&gt;Some bolded text.&lt;/strong&gt;\n\n*Some italicized text.*\n\nForeign characters:\nu with umlaut \xfc\n66-style quote \u201c\nforeign word: th\xfcmb\n \nNeeds escaping:\nleft arrow &amp;lt;\n\n&amp;lt;&lt;a class="ext-link" href="http://ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/&lt;/a&gt;&amp;gt;\n\n',
/home/okfn/pyenv/src/ckan/ckan/tests/dictization.py:137:             'notes': u'Some test notes\n\n### A 3rd level heading\n\n&lt;strong&gt;Some bolded text.&lt;/strong&gt;\n\n*Some italicized text.*\n\nForeign characters:\nu with umlaut \xfc\n66-style quote \u201c\nforeign word: th\xfcmb\n \nNeeds escaping:\nleft arrow &amp;lt;\n\n&amp;lt;&lt;a class="ext-link" href="http://ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/&lt;/a&gt;&amp;gt;\n\n',
/home/okfn/pyenv/src/ckan/ckan/tests/dictization.py:447:                                  'notes': u'Some test notes\n\n### A 3rd level heading\n\n&lt;strong&gt;Some bolded text.&lt;/strong&gt;\n\n*Some italicized text.*\n\nForeign characters:\nu with umlaut \xfc\n66-style quote \u201c\nforeign word: th\xfcmb\n \nNeeds escaping:\nleft arrow &amp;lt;\n\n&amp;lt;&lt;a class="ext-link" href="http://ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/&lt;/a&gt;&amp;gt;\n\n',
/home/okfn/pyenv/src/ckan/ckan/tests/dictization.py:458:                                  'notes': u'Some test notes\n\n### A 3rd level heading\n\n&lt;strong&gt;Some bolded text.&lt;/strong&gt;\n\n*Some italicized text.*\n\nForeign characters:\nu with umlaut \xfc\n66-style quote \u201c\nforeign word: th\xfcmb\n \nNeeds escaping:\nleft arrow &amp;lt;\n\n&amp;lt;&lt;a class="ext-link" href="http://ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/&lt;/a&gt;&amp;gt;\n\n',
/home/okfn/pyenv/src/ckan/ckan/tests/functional/api/base.py:178:        assert '"ckan_url": "&lt;a class="ext-link" href="http://test.ckan.net/package/annakarenina"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/package/annakarenina&lt;/a&gt;"' in msg, msg
/home/okfn/pyenv/src/ckanclient/ckanclient/&lt;/span&gt;init__.py:116:    api e.g. &lt;a class="ext-link" href="http://ckan.net/api"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api&lt;/a&gt; rather than &lt;a class="ext-link" href="http://ckan.net/api/rest"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/rest&lt;/a&gt;)
/home/okfn/pyenv/src/ckanclient/ckanclient/&lt;span class="underline"&gt;init__.py:261:    :param base_location: default *&lt;a class="ext-link" href="http://www.ckan.net/api"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/api&lt;/a&gt;*
/home/okfn/pyenv/src/ckanclient/ckanclient/&lt;/span&gt;init__.py:267:    base_location = '&lt;a class="ext-link" href="http://www.ckan.net/api"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.ckan.net/api&lt;/a&gt;'
&lt;/p&gt;
&lt;hr /&gt;
</description>
        <link>http://localhost/ticket/1085</link>
        <guid isPermaLink="false">http://localhost/ticket/1085</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1086: no way to delete authorization groups from web interface</title>
                  <description>&lt;p&gt;
as title.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1086</link>
        <guid isPermaLink="false">http://localhost/ticket/1086</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#1087: version and contact info api call</title>
                  <description>&lt;p&gt;
a simple api call that returns data like this:
&lt;/p&gt;
&lt;pre class="wiki"&gt;{ "version": ckan_software_version,
  "contact": { "name": "Some Admin", "mbox": "admin@exmaple.org" },
  "description": "Site Description",
  "url": "http://canonical.name.ckan.net/"
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1087</link>
        <guid isPermaLink="false">http://localhost/ticket/1087</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>wwaites</dc:creator>

                  <title>#1088: content-type autonegotiation is wonky</title>
                  <description>&lt;p&gt;
in ckan/controllers/package.py around line 130 it does some strange things...
&lt;/p&gt;
&lt;p&gt;
perhaps replace with &lt;a class="ext-link" href="https://github.com/wwaites/autoneg"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/wwaites/autoneg&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
and handle redirection of these content types:
&lt;/p&gt;
&lt;pre class="wiki"&gt;application/rdf+xml
application/turtle
text/plain
text/x-graphviz
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1088</link>
        <guid isPermaLink="false">http://localhost/ticket/1088</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1089: Check for "--ckan" when running nosetests</title>
                  <description>&lt;p&gt;
(because if you forget, you get difficult to understand errors, and more than one person has tripped up on this)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1089</link>
        <guid isPermaLink="false">http://localhost/ticket/1089</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1090: Visitor can't create packages on new CKAN install</title>
                  <description>&lt;p&gt;
Default visitor roles in default config is reader, not anon_editor.
&lt;/p&gt;
&lt;p&gt;
Problem caused by changes in &lt;a class="closed ticket" href="http://localhost/ticket/1066" title="enhancement: Default reader role too permissive (closed: fixed)"&gt;#1066&lt;/a&gt; (released in 1.3.3)
&lt;/p&gt;
&lt;p&gt;
New installs will be affected, although simple to just increase permissions when the installer realises a visitor can't create packages.
&lt;/p&gt;
&lt;p&gt;
The solution to the config getting out of sync with the code like this is to not have the default_roles in the config - refer to the code in the configuration instructions.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1090</link>
        <guid isPermaLink="false">http://localhost/ticket/1090</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1091: usernames of users logged in using open ids are strange</title>
                  <description>&lt;p&gt;
If I use my gmail openID to log into a CKAN instance, then my username is:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://www.google.com/accounts/o8/id?id=AItOawnduohQ5RgXdPJKHiq-SIPbvCBqUaERuEQ"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://www.google.com/accounts/o8/id?id=AItOawnduohQ5RgXdPJKHiq-SIPbvCBqUaERuEQ&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This seems a bit odd.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1091</link>
        <guid isPermaLink="false">http://localhost/ticket/1091</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1092: refactor logic layer to seperate out api, form logic</title>
                  <description>&lt;p&gt;
The logic layer is a bit too api centric. Make the reusable parts separate in preparation for the wui refactor.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1092</link>
        <guid isPermaLink="false">http://localhost/ticket/1092</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1093: 500 errors on GET to api/rest/licenses</title>
                  <description>&lt;p&gt;
CKAN gets its license list from a license service, which can be a local file, but is often the &lt;a class="ext-link" href="http://licenses.opendefinition.org/2.0/ckan_original"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://licenses.opendefinition.org/2.0/ckan_original&lt;/a&gt; server. This server is currently flakey, but I think we only request the list on start up. The problem is we query it much more often than required. It is queried for every request to api/rest/licenses, and we are returning lots of 500 errors when the license server is timing out.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1093</link>
        <guid isPermaLink="false">http://localhost/ticket/1093</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1094: [super] Refactor the Auth System</title>
                  <description>&lt;p&gt;
Here are some proposed changes related to CKAN's authorization system - they aren't very big, but should provide for some forthcoming use cases including &lt;a class="closed ticket" href="http://localhost/ticket/787" title="task: Auth API (closed: fixed)"&gt;#787&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Two man reasons for the changes are:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We have a completely refactored architecture now which introduces a logic layer. These Auth changes are designed to better support the way we work with that layer.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Different CKAN extension apps may need radically different authentication/authorisation so we need to allow whatever we have to be override-able.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The first two changes revolve around the is_authorized method, which
is called by the logic layer to ask whether a particular user (e.g.
Bob) is allowed to do a certain action (e.g. edit) on a certain object (e.g. Package).
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;The first thing the is_authorized method is a hook to a plugin
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
which *overrides* the current call with its own implementation (note: in previous discussions we have considered allowing a chain of plugins, no longer!)
&lt;/p&gt;
&lt;p&gt;
Reason: authorization can be completely delegated to another system
(or partially)
&lt;/p&gt;
&lt;ol start="2"&gt;&lt;li&gt;is_authorized method currently takes (username, action, object)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
but for action=create_package, the object supplied is System, and for action=edit the object supplied is the package. Instead action should always be the string name of a function in the logic layer and object should always be the object passed to that function. This means our auth system is based around the actual actions we are performing (rather than a model them) and with the actual data that forms the action (rather than a related object). You never need a System object in this model.
&lt;/p&gt;
&lt;ol start="3"&gt;&lt;li&gt;Rename these two classes to better reflect what they are
&lt;ul&gt;&lt;li&gt;&lt;a class="missing wiki"&gt;AuthorizationGroup?&lt;/a&gt; -&amp;gt; &lt;a class="missing wiki"&gt;UserGroup?&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Group -&amp;gt; &lt;a class="missing wiki"&gt;PackageGroup?&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Rename the Editor role to &lt;a class="missing wiki"&gt;PriveledgeUser?&lt;/a&gt; since Editors sometimes can't edit.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Although this sounds a bit radical we already have auth extensions.
&lt;/p&gt;
&lt;h2 id="Read-onlyCKANWebUI"&gt;Read-only CKAN Web UI&lt;/h2&gt;
&lt;p&gt;
(Additional requirement from &lt;a class="closed ticket" href="http://localhost/ticket/764" title="enhancement: Read-only CKAN Web UI (closed: duplicate)"&gt;#764&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Whilse using CKAN web interface, you are not tempted to edit stuff:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;You know at all times this CKAN is read-only
&lt;/li&gt;&lt;li&gt;All editing facilities are still seen but greyed-out with an indication why it is.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1094</link>
        <guid isPermaLink="false">http://localhost/ticket/1094</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1095: add way to pass in schema to logic layer.</title>
                  <description>&lt;p&gt;
We need a way to pass in schemas to the logic layer to deal with edge cases.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1095</link>
        <guid isPermaLink="false">http://localhost/ticket/1095</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1096: [super] CKAN Hosted</title>
                  <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>
        <link>http://localhost/ticket/1096</link>
        <guid isPermaLink="false">http://localhost/ticket/1096</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1097: Sidebar hideable</title>
                  <description>&lt;p&gt;
The web interface has a sidebar (#primary) which should be hidden in some pages. This is for QA extension and useful for package new and edit pages. Must be compatible with DGU theme.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1097</link>
        <guid isPermaLink="false">http://localhost/ticket/1097</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1098: --ckan-migration tests not initialised correctly</title>
                  <description>&lt;p&gt;
Only tests with failing --ckan-migration fail, due to authz not being initialised.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1098</link>
        <guid isPermaLink="false">http://localhost/ticket/1098</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1099: strange interactions between two browsers while playing with authz groups</title>
                  <description>&lt;p&gt;
While playing with the authorization groups, trying to design tests, I found that it was necessary to log in as two different users with two different browsers. Often actions of one user would cause server errors in the other user's browser.
&lt;/p&gt;
&lt;p&gt;
I don't have a reproducible test case, but it happens fairly often so it shouldn't be too difficult to get one.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1099</link>
        <guid isPermaLink="false">http://localhost/ticket/1099</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1100: Get buildbot running on ckan branches</title>
                  <description>&lt;p&gt;
Need some changes to pip-requirements files in release branches.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1100</link>
        <guid isPermaLink="false">http://localhost/ticket/1100</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1101: Integrate googlanalytics into site nav</title>
                  <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>
        <link>http://localhost/ticket/1101</link>
        <guid isPermaLink="false">http://localhost/ticket/1101</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1102: searching broken in development setup</title>
                  <description>&lt;p&gt;
With the default test data created by
&lt;/p&gt;
&lt;p&gt;
paster db clean
paster db init
paster create-test-data
&lt;/p&gt;
&lt;p&gt;
going to the front page shows two recently changed packages
A Wonderful Story
A Novel by Tolstoy
&lt;/p&gt;
&lt;p&gt;
But none of those words "Wonderful", etc produce search hits.
In fact as far as I can tell, nothing produces any search hits.
&lt;/p&gt;
&lt;p&gt;
That isn't true on ckan.net, where searching seems to work.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1102</link>
        <guid isPermaLink="false">http://localhost/ticket/1102</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1103: searching broken in development setup</title>
                  <description>&lt;p&gt;
With the default test data created by
&lt;/p&gt;
&lt;p&gt;
paster db clean
paster db init
paster create-test-data
&lt;/p&gt;
&lt;p&gt;
going to the front page shows two recently changed packages
A Wonderful Story
A Novel by Tolstoy
&lt;/p&gt;
&lt;p&gt;
But none of those words "Wonderful", etc produce search hits.
In fact as far as I can tell, nothing produces any search hits.
&lt;/p&gt;
&lt;p&gt;
That isn't true on ckan.net, where searching seems to work.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1103</link>
        <guid isPermaLink="false">http://localhost/ticket/1103</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1104: create-test-data doesn't index the packages it creates</title>
                  <description>&lt;p&gt;
With the default test data created by
&lt;/p&gt;
&lt;p&gt;
paster db clean
paster db init
paster create-test-data
&lt;/p&gt;
&lt;p&gt;
going to the front page shows two recently changed packages
A Wonderful Story
A Novel by Tolstoy
&lt;/p&gt;
&lt;p&gt;
But none of those words "Wonderful", etc produce search hits.
In fact as far as I can tell, nothing produces any search hits.
&lt;/p&gt;
&lt;p&gt;
That isn't true on ckan.net, where searching seems to work.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1104</link>
        <guid isPermaLink="false">http://localhost/ticket/1104</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1105: test ticket, please ignore</title>
                  <description>&lt;p&gt;
.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1105</link>
        <guid isPermaLink="false">http://localhost/ticket/1105</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1106: Bugs related to routes arising from API refactor + removal of default routes</title>
                  <description>&lt;p&gt;
Various bugs I've been encountering:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Autocomplete of tag names no longer works (no longer works on &lt;a class="ext-link" href="http://ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/&lt;/a&gt;). Appears to be due to no longer have a routes for apiv2 (i'm seeing failing calls to:  &lt;a class="ext-link" href="http://ckan.net/apiv2/package/autocomplete?callback=callback&amp;amp;incomplete=a"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/apiv2/package/autocomplete?callback=callback&amp;amp;incomplete=a&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;Incorrect url generated for API in page footer (e.g.  &lt;a class="ext-link" href="http://ckan.net/rest/get_api"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/rest/get_api&lt;/a&gt;) due to use of old 'rest' rather than new 'api'
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Latter issue was masked by existence of 'default' routes:
&lt;/p&gt;
&lt;pre class="wiki"&gt;   map.connect('/{controller}', action='index')
   map.connect('/:controller/{action}')
   map.connect('/{controller}/{action}/{id}')
&lt;/pre&gt;&lt;p&gt;
Having these is, I think, bad practice as it is better to be explicit and we should therefore remove asap.
&lt;/p&gt;
&lt;p&gt;
In addition I think we should be cautious about 'default' routes in core such as:
&lt;/p&gt;
&lt;pre class="wiki"&gt;    map.connect('/api/rest/:register', controller='api', action='list',
        conditions=dict(method=['GET'])
        )
&lt;/pre&gt;&lt;p&gt;
As it makes it harder for extensions to introduce their own APIs (here one could perhaps add something at /api/rest/{my-object} but only by using before_map rather than after_map).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1106</link>
        <guid isPermaLink="false">http://localhost/ticket/1106</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1107: Move package autocomplete from package controller and move to API</title>
                  <description>&lt;p&gt;
Currently autocomplete method on package controller. This method should be in API (like other autocomplete methods).
&lt;/p&gt;
&lt;p&gt;
Will need to update client code (just forms atm I think).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1107</link>
        <guid isPermaLink="false">http://localhost/ticket/1107</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1108: Create a more modern theme for CKAN</title>
                  <description>&lt;p&gt;
CKAN looks a bit aged, it should be styled more modernly and some elements could be re-arranged:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Collect user info in top bar
&lt;/li&gt;&lt;li&gt;re-add the logo to ckan.net
&lt;/li&gt;&lt;li&gt;Remove tags from main menu, replace with /sitemap.xml
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Inpiration:
&lt;/p&gt;
&lt;p&gt;
quora.com, github.com, Google Projects, Google Refine, etc.
&lt;/p&gt;
&lt;h2 id="CKAN.netorCKANgeneraltheme"&gt;CKAN.net or CKAN general theme?&lt;/h2&gt;
&lt;p&gt;
To be decided. Suggest we start with ckan.net specific and then backwards integrate (?). Existing ckan.net theme repo:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan-ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan-ckan.net&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1108</link>
        <guid isPermaLink="false">http://localhost/ticket/1108</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1109: When extras has a value other than a string an integrity error occurs in the api.</title>
                  <description>&lt;p&gt;
This is a regression that happened after refactoring the api.
&lt;/p&gt;
&lt;p&gt;
It was shown by
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://pastebin.com/2v7QasZy"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://pastebin.com/2v7QasZy&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1109</link>
        <guid isPermaLink="false">http://localhost/ticket/1109</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1110: profile ckan</title>
                  <description>&lt;p&gt;
We need to see what areas of ckan are slow.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1110</link>
        <guid isPermaLink="false">http://localhost/ticket/1110</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>lucychambers</dc:creator>

                  <title>#1111: FAQ - For CKAN</title>
                  <description>&lt;p&gt;
Write CKAN FAQ (Basis can be: &lt;a class="ext-link" href="http://wiki.ckan.net/FAQ"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/FAQ&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Post preliminary questions on:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://notebook.okfn.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://notebook.okfn.org/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1111</link>
        <guid isPermaLink="false">http://localhost/ticket/1111</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1112: Allow searching for all packages</title>
                  <description>&lt;pre class="wiki"&gt;GET api/search/package?q=
&lt;/pre&gt;&lt;p&gt;
returns all packages. This is so you can filter them e.g. by openness, which is not currently possible.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1112</link>
        <guid isPermaLink="false">http://localhost/ticket/1112</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1113: lists in extras serialized wrongly on get with the api.</title>
                  <description>&lt;p&gt;
Lists are being converted to unicode and then translated into a json when getting from the api.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1113</link>
        <guid isPermaLink="false">http://localhost/ticket/1113</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1114: CLI for viewing search index of a package</title>
                  <description>&lt;p&gt;
To see what lexemes are generated for debug purposes.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1114</link>
        <guid isPermaLink="false">http://localhost/ticket/1114</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1115: can have two authzgroups with the same name</title>
                  <description>&lt;p&gt;
If you've got edit permission on an authzgroup, then you can change its name to be the same as another existing authzgroup.
&lt;/p&gt;
&lt;p&gt;
This causes some strange UI effects at worst, and probably causes worse problems somewhere else.
&lt;/p&gt;
&lt;p&gt;
Is there any reason why changing the names of existing authzgroups should be allowed? And if so, name collisions should presumably be guarded against in both the name-changing and creation functions
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1115</link>
        <guid isPermaLink="false">http://localhost/ticket/1115</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1116: api search loses boolean q options</title>
                  <description>&lt;p&gt;
filter_by_openness and filter_by_downloadable options don't work when specified as URI parameters. (They do work in qjson parameters)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1116</link>
        <guid isPermaLink="false">http://localhost/ticket/1116</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1117: Depend deb package "ckan" against ubuntu package "python-pastescript"</title>
                  <description>&lt;p&gt;
... otherwise the scripts fails.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1117</link>
        <guid isPermaLink="false">http://localhost/ticket/1117</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1118: tests are testing something other than the behaviour seen in the browser</title>
                  <description>&lt;p&gt;
I'm finding that if I try to take an action with insufficient credentials from a test then I often (but not always) get a 401 error, whereas in the browser I get redirected to the login page.
&lt;/p&gt;
&lt;p&gt;
It's a bit worrying that the program in its test environment doesn't behave like it does in the browser.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1118</link>
        <guid isPermaLink="false">http://localhost/ticket/1118</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1119: Fully functional storage extension with file upload</title>
                  <description>&lt;p&gt;
Previous work in &lt;a class="closed ticket" href="http://localhost/ticket/877" title="enhancement: File upload in WUI (extension) (closed: fixed)"&gt;#877&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/879" title="enhancement: Storage auth API (closed: fixed)"&gt;#879&lt;/a&gt; + &lt;a class="closed ticket" href="http://localhost/ticket/853" title="enhancement: Client upload to storage without having primary storage keys (closed: fixed)"&gt;#853&lt;/a&gt; (storage API). In this ticket:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Improve authorization
&lt;/li&gt;&lt;li&gt;Establish convention for laying out files on disk
&lt;/li&gt;&lt;li&gt;Add documentation
&lt;/li&gt;&lt;li&gt;Fix bugs with &lt;a class="closed ticket" href="http://localhost/ticket/879" title="enhancement: Storage auth API (closed: fixed)"&gt;#879&lt;/a&gt; (does not currently work -- boto may have changed)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1119</link>
        <guid isPermaLink="false">http://localhost/ticket/1119</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>tsm</dc:creator>

                  <title>#1120: Atom feeds of each tag</title>
                  <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>
        <link>http://localhost/ticket/1120</link>
        <guid isPermaLink="false">http://localhost/ticket/1120</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1121: JSON extras appear in package edit form mangled</title>
                  <description>&lt;p&gt;
It is possible to use the CKAN API to insert JSON format data into package extra values, but this data is displayed in the package edit form.
&lt;/p&gt;
&lt;p&gt;
Example: Package &lt;a class="ext-link" href="http://ckan.net/package/hbz_unioncatalog"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/hbz_unioncatalog&lt;/a&gt; in the API the extra value as a list:
&lt;/p&gt;
&lt;pre class="wiki"&gt;"extras": {"publishingInstitution": ["http://lobid.org/organisation/DE-605", "http://lobid.org/organisation/DE-290"...
&lt;/pre&gt;&lt;p&gt;
yet when you edit the package it loses all the quotes and brackets: &lt;a class="ext-link" href="http://ckan.net/package/edit/hbz_unioncatalog"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/edit/hbz_unioncatalog&lt;/a&gt;
{{{&lt;a class="ext-link" href="http://lobid.org/organisation/DE-605http://lobid.org/organisation/DE-290"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lobid.org/organisation/DE-605http://lobid.org/organisation/DE-290&lt;/a&gt;...
}}}
so when you save the package, the list is mangled into a bad string.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1121</link>
        <guid isPermaLink="false">http://localhost/ticket/1121</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1122: JSON Extra data not searchable</title>
                  <description>&lt;p&gt;
It is possible to use the CKAN API to insert JSON format data into package extra values, but this data is not found on searching.
&lt;/p&gt;
&lt;p&gt;
Full text from Pascal:
&lt;/p&gt;
&lt;pre class="wiki"&gt;we encountered a Problem concerning accessing Arrays/Lists.
curl -XGET 'http://ckan.net/api/rest/package/hbz_unioncatalog'
will get you amongst others:
 "extras": {"publishingInstitution":
"[u'http://lobid.org/organisation/DE-605',
u'http://lobid.org/organisation/DE-290',
u'http://lobid.org/organisation/DE-38M',
u'http://lobid.org/organisation/DE-98',
u'http://lobid.org/organisation/DE-38',
u'http://lobid.org/organisation/DE-Kn41',
u'http://lobid.org/organisation/DE-82',
u'http://lobid.org/organisation/DE-107',
u'http://lobid.org/organisation/DE-929',
u'http://lobid.org/organisation/DE-Zw1',
u'http://lobid.org/organisation/DE-832']"}
but if I try to query this:
wget
'http://ckan.net/api/search/package?q=lobid&amp;amp;publishingInstitution="http://lobid.org/organisation/DE-605"'
I get only two packages, among the package "hbz_unioncatalog" is
missing. (These two packages have only one value for
"publishingInstitution").
The "extra/publishingInstitution"-Array was uploaded through a "curl
-XPUT ...
 "extras": {
   "publishingInstitution":[
     "http://lobid.org/organisation/DE-605",
     "http://lobid.org/organisation/DE-290",
     "http://lobid.org/organisation/DE-38M",
     "http://lobid.org/organisation/DE-98",
     "http://lobid.org/organisation/DE-38",
     "http://lobid.org/organisation/DE-Kn41",
     "http://lobid.org/organisation/DE-82",
     "http://lobid.org/organisation/DE-107",
     "http://lobid.org/organisation/DE-929",
     "http://lobid.org/organisation/DE-Zw1",
     "http://lobid.org/organisation/DE-832"
   ]
   },
...
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1122</link>
        <guid isPermaLink="false">http://localhost/ticket/1122</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1123: Please re-package CKAN packages as "noarch"</title>
                  <description>&lt;p&gt;
... or, if the CKAN packages do contain architecture-specific binary code, build packages for i386 too.
&lt;/p&gt;
&lt;p&gt;
Currently, &lt;a class="ext-link" href="http://apt-alpha.ckan.org/debian"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://apt-alpha.ckan.org/debian&lt;/a&gt; only offers packages for amd64, but e.g. "m1.small" EC2 instances are i386.
&lt;/p&gt;
&lt;p&gt;
We would need this in order to migrate the community instances to a packaged based CKAN.
&lt;/p&gt;
&lt;p&gt;
Rufus, pls prioritise.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1123</link>
        <guid isPermaLink="false">http://localhost/ticket/1123</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1124: push apt package python-ckanext-solr into our debian repository</title>
                  <description>&lt;p&gt;
python-ckanext-solr is already available in &lt;a class="ext-link" href="http://apt-alpha.ckan.org/datanl-dev"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://apt-alpha.ckan.org/datanl-dev&lt;/a&gt;, but not yet in &lt;a class="ext-link" href="http://apt-alpha.ckan.org/debian"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://apt-alpha.ckan.org/debian&lt;/a&gt; (that is why we had to [pip-install it for DataGM). Please push into main repo.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1124</link>
        <guid isPermaLink="false">http://localhost/ticket/1124</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1125: Debian package "ckan" should not depend on "postgresql"</title>
                  <description>&lt;p&gt;
The debian package "ckan" with the two scripts "ckan-create-instance" and "ckan-instance-maintenance" depends against "postgresql". But "ckan-create-instance" is quite handy even when the DB is remote: it creates all the data dirs with the correct permissions, and the ckan and apache configs.
&lt;/p&gt;
&lt;p&gt;
Please add a flag "--without-local-db" to "ckan-create-instance" and remove the postgres dependancy from the debain package.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1125</link>
        <guid isPermaLink="false">http://localhost/ticket/1125</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1126: Exceptions arising from error page</title>
                  <description>&lt;p&gt;
I'm not completely clear what the use case is for loading the error page in this way, but somehow original_request is None and that creates an unnecessary exception with the logic refactor.
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://ckan.net/error/document?__cache=39020485
...
Module ckan.controllers.error:29 in document
&amp;lt;&amp;lt;          original_response = request.environ.get('pylons.original_response')
               # Bypass error template for API operations.
               if original_request.path.startswith('/api'):
                   return original_response.body
               # Otherwise, decorate original response with error template.
&amp;gt;&amp;gt;  if original_request.path.startswith('/api'):
AttributeError: 'NoneType' object has no attribute 'path'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1126</link>
        <guid isPermaLink="false">http://localhost/ticket/1126</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>sebbacon</dc:creator>

                  <title>#1127: CREP0001: Formalise new feature discussion and definition using CREPs</title>
                  <description>&lt;p&gt;
&lt;strong&gt;Proposer:&lt;/strong&gt; Seb Bacon&lt;br /&gt;
&lt;strong&gt;Seconder:&lt;/strong&gt; Rufus Pollock&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h2 id="Abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;
When adding major new features to CKAN, a longer, more formal discussion
will improve software design quality and documentation, better engage
the wider community, and ensure the core team are up to date with
latest developments.
&lt;/p&gt;
&lt;p&gt;
I propose a formal process (CREP -- CKAN Revision and Enhancement Proposal) for making this happen.
&lt;/p&gt;
&lt;h2 id="TheProblem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;
The current workflow for introducing major new features into CKAN is
very informal, typically based around one person's great idea, which
they've discussed with one or two other people in the team.  The
originator of the idea is typically the only person with access to
all the input they've had through such discussions.  Often, the only
location of this information is  in that person's head.
&lt;/p&gt;
&lt;p&gt;
However, there is a lot of experience embodied in the CKAN community
which should be drawn on before making large design decisions.  This
will lead to better software.  Additionally, building consensus in the
community around a proposal before implementation ensures positive
community engagement and buy-in to new features, making them more
likely to be a success.
&lt;/p&gt;
&lt;p&gt;
We aren't great at documenting new features.  Documentation after
coding is complete is an unrewarding experience for most programmers.
Requiring skeleton documentation before code is written is a good
discipline that can form the basis of better documentation in the
future (e.g. by a writer rather than a programmer).
&lt;/p&gt;
&lt;h2 id="Specification"&gt;Specification&lt;/h2&gt;
&lt;p&gt;
Minor features don't require a CREP, and can just be entered in the
issue tracking system as a bug or feature.  As a rule of thumb, a
feature is major if it will take more than a day to implement, or is
likely to involve matters of opinion in its design.
&lt;/p&gt;
&lt;p&gt;
A developer may decide that a CREP is too formal and long-winded. The
decision to write a CREP is at at their discretion; however, new
features MUST always be proposed via email, even if this is just a
couple of sentences.
&lt;/p&gt;
&lt;p&gt;
If a feature requires a CREP, the proposer should find a seconder
for their idea.  This sanity check step happens before a CREP is
written to ensure at least the possibility of consensus on the CREP.
&lt;/p&gt;
&lt;p&gt;
Next the proposer should write a CREP, starting by copying and pasting
the &lt;a class="ext-link" href="http://wiki.ckan.net/CKAN_Revision_and_Enhancement_Proposals"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;template on the wiki&lt;/a&gt; into a new Trac ticket.  This will be with a status of "new" and Type of "CREP".  The proposer should notify
the &lt;a class="ext-link" href="http://lists.okfn.org/mailman/listinfo/ckan-dev"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;ckan-dev&lt;/a&gt; mailing
list, and possibly the
&lt;a class="ext-link" href="http://lists.okfn.org/mailman/listinfo/ckan-discuss"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;ckan-discuss&lt;/a&gt;
list for less technical CREPs.
&lt;/p&gt;
&lt;p&gt;
The draft can be discussed via email, verbally, or via the trac
ticket.  In any case, it is the proposer's responsibility to keep the
CREP updated to reflect the current consensus.
&lt;/p&gt;
&lt;p&gt;
Once consensus has been reached, the ticket should be marked with the
"accepted" status and assigned to a CKAN release milestone.
&lt;/p&gt;
&lt;p&gt;
When an accepted CREP has been implemented, it should be resolved as
"fixed".
&lt;/p&gt;
&lt;p&gt;
If no consensus can be reached on a draft CREP, or for some reason an
accepted CREP doesn't get completed, it should be marked as or "wontfix".
&lt;/p&gt;
&lt;p&gt;
If a completed CREP becomes obsolete, it should be marked as "invalid",
with a note pointing to the obsoleting ticket(s)
&lt;/p&gt;
&lt;h2 id="Whydoitthisway"&gt;Why do it this way&lt;/h2&gt;
&lt;p&gt;
Given the distributed nature of the core team plus other volunteers,
some kind of written procedure is necessary to ensure a fully
documented and discussed proposal.
&lt;/p&gt;
&lt;p&gt;
The idea of "Enhancement Proposals" which can be semi-formally
proposed and discussed prior to implementation is common in the Open
Source world (&lt;a class="ext-link" href="http://www.python.org/dev/peps/pep-0001/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;PEPs&lt;/a&gt;,
&lt;a class="ext-link" href="http://dep.debian.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;DEPs&lt;/a&gt;,
&lt;a class="ext-link" href="http://plone.org/documentation/glossary/plip"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;PLIPs&lt;/a&gt;, to name three).
&lt;/p&gt;
&lt;p&gt;
Existing historic proposals exist, called CEPs.  The proposed system
is called CREP (CKAN revision or enhancement proposal) to disambiguate
it from the legacy proposals, and from the delicious fungus &lt;em&gt;Boletus
Edulis&lt;/em&gt;.
&lt;/p&gt;
&lt;p&gt;
Giving a formal structure to the proposal is useful as it gives the
community a means to identify a CREP that's not had sufficient thought
or discussion.  An informal email thread can easily be lost and
important questions (such as backwards compatibility) overlooked.  The
use of the proposed template empowers any community member to ask the
proposer to expand on rationale, deliverables, etc.
&lt;/p&gt;
&lt;p&gt;
The structure chosen is somewhere between Debian's and Plone's.  It
aims to give a structure to the debate, a clear start at
documentation, and also prompt some thinking about implementation and
timescales.
&lt;/p&gt;
&lt;p&gt;
All this policy about structure should not be construed as mandatory.
In particular, the later fields in the CREP template regarding
Implementation Plan may be omitted if the author doesn't find them
helpful.
&lt;/p&gt;
&lt;p&gt;
Some projects (e.g. Debian) keep their enhancement proposals in a
versioning repository; others (e.g. Plone) keep them in an issue
tracking system.  Trac is proposed for CKAN because we already use it
for small feature proposals and for team planning.  It seems unlikely
that change tracking on an individual CREP will be useful; a CREP that
changes sufficiently from its original form should probably be marked
"obselete" and a new CREP started.  Using an issue tracking system also
means we can easily track CREPs by state.
&lt;/p&gt;
&lt;h2 id="BackwardsCompatibility"&gt;Backwards Compatibility&lt;/h2&gt;
&lt;p&gt;
Some [&lt;a class="ext-link" href="https://bitbucket.org/okfn/ceps/src/76b274888bcf/cep/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ceps/src/76b274888bcf/cep/&lt;/a&gt; legacy
enhancement proposals], called CEPs, have previously been started.
&lt;/p&gt;
&lt;p&gt;
They are currently all marked as "active".  Any which require
discussion should be altered by the proposer to match the new CREP
specification and submitted to trac.  The original CEP should be
updated with a banner at the top pointing a reader to the new CREP.
&lt;/p&gt;
&lt;p&gt;
Any that are now obselete should be clearly marked as such in a banner
at the top, pointing a reader to the trac for new CREPs.
&lt;/p&gt;
&lt;h2 id="Implementationplan"&gt;Implementation plan&lt;/h2&gt;
&lt;h3 id="Deliverables"&gt;Deliverables&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;This CREP, agreed
&lt;/li&gt;&lt;li&gt;Support for proposed statuses in Trac
&lt;/li&gt;&lt;li&gt;Canned reports for listing CREPs in Trac
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Risksandmitigations"&gt;Risks and mitigations&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;That this CREP is agreed, but rarely acted on.  This risk can be
mitigated by nominating a CREP champion in the community or core
team, whose job it is to say "where's the CREP for that?" and
generally own the quality of CREPS
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Participants"&gt;Participants&lt;/h3&gt;
&lt;p&gt;
Seb Bacon: as current Documentation Czar (May 2011), responsible for
ensuring CREPs are up to date.
&lt;/p&gt;
&lt;h3 id="Progress"&gt;Progress&lt;/h3&gt;
&lt;p&gt;
This document is the entire proposal.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1127</link>
        <guid isPermaLink="false">http://localhost/ticket/1127</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1128: Upload Scotland gov data</title>
                  <description>&lt;p&gt;
Upload to ckan.net:
&lt;a class="ext-link" href="https://sites.google.com/site/scotlandsdata/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://sites.google.com/site/scotlandsdata/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1128</link>
        <guid isPermaLink="false">http://localhost/ticket/1128</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1129: CREP0002: Moderated  Edits</title>
                  <description>&lt;p&gt;
&lt;strong&gt;Proposer:&lt;/strong&gt; David Raznick&lt;br /&gt;
&lt;/p&gt;
&lt;h2 id="Abstract."&gt;Abstract.&lt;/h2&gt;
&lt;p&gt;
We are trying to achieve these goals.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;To get people involved with making edits to CKAN metadata.
&lt;/li&gt;&lt;li&gt;To have an ownership model as to who can moderate and validate these changes
&lt;/li&gt;&lt;li&gt;To not put too huge a burden on these owners.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
In order to achieve this, a feature which lets anyone edit a package but only let the moderator/owner accept it.  The moderator should be able to look at a list of changes and accept the ones that
&lt;/p&gt;
&lt;p&gt;
This cep is not about 'if' we need such a feature, it is about 'how' we go about implementing it. Another cep may needed for the 'if' case.
&lt;/p&gt;
&lt;h2 id="TheProblem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;
We need the following to be possible.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Storing revision of objects that are not the current active one.
&lt;/li&gt;&lt;li&gt;A way of the user viewing past revisions.
&lt;/li&gt;&lt;li&gt;Accessing not only the history of a particular object but also of related objects at that time. i.e If a resource related to a package changes we need a way to see this when looking at the package.
&lt;/li&gt;&lt;li&gt;A robust way of doing this in the face of database schema changes.
&lt;/li&gt;&lt;li&gt;Make sure database queries are quick.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Solutions."&gt;Solutions.&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt; Store the whole dictization of the package and all its related objects every time you change anything in its dictized representation and only save to the database proper if accepted.
&lt;/li&gt;&lt;/ol&gt;&lt;blockquote&gt;
&lt;p&gt;
Pros
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;Easy to implement, we already have a preview which makes the dictized form of a package without actually saving it.  This will just need to be persisted in some way.
&lt;/li&gt;&lt;li&gt;Fast retrieval.
&lt;/li&gt;&lt;li&gt;Potential to store a branching revision tree of changes.
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;p&gt;
Cons
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;No easy way to remake the dictized packages historically or if there is an there a change in the way we represent packages, i.e schema changes.
&lt;/li&gt;&lt;li&gt;Will only work for the particular objects we decide to store these changes for.
&lt;/li&gt;&lt;li&gt;Stores a lot of repeated information
&lt;/li&gt;&lt;/ul&gt;&lt;ol start="2"&gt;&lt;li&gt; Write specialized queries for every read of the database looking only at the revision tables.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
This method requires there to be a change in the way we use VDM, so that we manage statefulness ourselves. We will need to add other states such as 'waiting for approval'.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Pros
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;No specialized storage required
&lt;/li&gt;&lt;li&gt;Only need to change queries when schema changes
&lt;/li&gt;&lt;li&gt;Can be made to work easily for other objects
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;p&gt;
Cons
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;Slower query time on read, as even looking at the last active package will need to do a fairly complicated query.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Implementationdetails."&gt;Implementation details.&lt;/h2&gt;
&lt;p&gt;
1.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
A new table with columns  id, user, package_id, timestamp, revision_id, parent_id, dictized_package.
revision_id should be null unless it is actually persisted to the database.  parent_id is the id that this package_dict was changed from.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
We could store only the diffs of the dictized_package as long as we assure that everything inside the json is stably sorted, this will make getting the historical data out slower.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Getting out the history of the dictized packages is an intensive task, as it will require replaying the whole history of all the changes and creating the dict for each change.  This re-caching will need to be redone for every change we make to dictized representation of a package.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
2.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Every normal packages read needs to look at the revision table to see the last accepted change in the dictized representation of the package.
We also need to way to get what the dictized representation of the package was like at any point of its revision history.  This querying is non-trivial in sql.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="Participants"&gt;Participants&lt;/h3&gt;
&lt;p&gt;
David Raznick to do it.
&lt;/p&gt;
&lt;h2 id="Progress."&gt;Progress.&lt;/h2&gt;
&lt;p&gt;
Decided to go with option 2. However we will change the revisioning system to be like the schema attached.
This gets rid of difficult querying problems caused by querying the revision tables by adding an end date, meaning you can do range queries.
&lt;/p&gt;
&lt;p&gt;
The better and more normalized version of a revisioning system is outlined &lt;a class="ext-link" href="https://docs.google.com/drawings/d/1Y7nMgVsrs081Pame2RdbZHlCAlV33ddTZ8VAsab1j-0/edit?hl=en_GB&amp;amp;authkey=CJfd8vsB"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://docs.google.com/drawings/d/1Y7nMgVsrs081Pame2RdbZHlCAlV33ddTZ8VAsab1j-0/edit?hl=en_GB&amp;amp;authkey=CJfd8vsB&lt;/a&gt;.
We will be a step closer to that, with this change, but we will keep the current vdm more or less, intact.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1129</link>
        <guid isPermaLink="false">http://localhost/ticket/1129</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>lucychambers</dc:creator>

                  <title>#1130: First time users</title>
                  <description>&lt;p&gt;
Send users to FAQ first time on CKAN
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1130</link>
        <guid isPermaLink="false">http://localhost/ticket/1130</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1131: Search param validation exception not caught</title>
                  <description>&lt;p&gt;
Example request:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://nl.ckan.net/api/2/search/package?q=delft&amp;amp;order_by=&amp;amp;offset=&amp;amp;limit=&amp;amp;tags=
&lt;/pre&gt;&lt;p&gt;
Gives 500 error:
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;type 'exceptions.ValueError'&amp;gt;: invalid literal for int() with base 10: ''
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1131</link>
        <guid isPermaLink="false">http://localhost/ticket/1131</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1132: test_authz doesn't run</title>
                  <description>&lt;p&gt;
Trying to run the tests in test_authz.py with
&lt;/p&gt;
&lt;p&gt;
$ nosetests --ckan ckan/tests/functional/test_authz.py
results in no tests being run:
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
Ran 0 tests in 0.840s
&lt;/p&gt;
&lt;p&gt;
OK (SKIP=3)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1132</link>
        <guid isPermaLink="false">http://localhost/ticket/1132</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1133: command line rights manipulation doesn't work</title>
                  <description>&lt;p&gt;
It appears that the command
&lt;/p&gt;
&lt;p&gt;
$ paster rights add russianfan admin warandpeace
&lt;/p&gt;
&lt;p&gt;
has no effect, even though
&lt;/p&gt;
&lt;p&gt;
$ paster rights remove russianfan admin warandpeace
&lt;/p&gt;
&lt;p&gt;
works fine. This may be specific to something I've done, could someone confirm?
&lt;/p&gt;
&lt;p&gt;
If it's the case more generally, then I'm assuming this behaviour is untested? Tests should probably be added.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1133</link>
        <guid isPermaLink="false">http://localhost/ticket/1133</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1134: CREP0003: Description and Configuration of Harvesters</title>
                  <description>&lt;p&gt;
&lt;strong&gt;Proposer&lt;/strong&gt;: Adrià Mercader
&lt;/p&gt;
&lt;h2 id="Abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;
The new harvester interface allows to create harvesters for different
sources, but right now harvesters don't have many ways to describe and
configure themselves. We need a way of allowing them to:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Expose their type and other details so they can be used internally
and on the UI.
&lt;/li&gt;&lt;li&gt;Define configuration settings for particular harvester instances.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="TheProblem"&gt;The Problem&lt;/h2&gt;
&lt;h3 id="Harvesterdescription"&gt;Harvester description&lt;/h3&gt;
&lt;p&gt;
The current UI for adding and editing harvest sources is the same used
in ckanext-dgu, and thus the 3 harvester types used in DGU to harvest
various GEMINI realted sources are hardcoded in the form. The form will
be migrated to a DGU-independent one, so we need the harvesters to
provide all the necessary data. There is a current &lt;tt&gt;get_type&lt;/tt&gt; method
that returns the harvester type, but for make it compatible with the DGU
forms, it returns a machine-readable string (e.g. "CSW Server"), making
it error prone.
&lt;/p&gt;
&lt;h3 id="Arbitraryconfiguration"&gt;Arbitrary configuration&lt;/h3&gt;
&lt;p&gt;
In the current implementation, when the harvest process is started,
ckanext-harvest looks for all the available plugins that implement the
&lt;tt&gt;IHarvester&lt;/tt&gt; interface and calls the appropiate methods for the
current stage (&lt;tt&gt;gather_stage&lt;/tt&gt;,&lt;tt&gt;fetch_stage&lt;/tt&gt;,&lt;tt&gt;import_stage&lt;/tt&gt;).
At these stages, harvesters have no way of applying arbitrary
configuration options, so all harvesters of the same type behave on the
same way.
For instance, the CKAN harvester needs a way to define the API version
to use when harvesting remote instances (Right now, the version 2 is
hardcoded on the code).
&lt;/p&gt;
&lt;h2 id="Specification"&gt;Specification&lt;/h2&gt;
&lt;h3 id="Harvesterdescription1"&gt;Harvester description&lt;/h3&gt;
&lt;p&gt;
Harvesters will need to provide the following information so the UI form
can be built:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;name: machine-readable name (e.g. "waf"). This will be the value
stored in the database, and the one used by ckanext-harvest to
call the appropiate harvester.
&lt;/li&gt;&lt;li&gt;title: human-readable name (e.g. "Web Accessible Folder (WAF)").
This will appear in the form's select box.
&lt;/li&gt;&lt;li&gt;description: a description of what the harvester does (e.g. "A Web
Accessible Folder (WAF) displaying a list of GEMINI 2.1
documents"). This will appear on the form as a guidance to the
user.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The way to provide it will be an &lt;tt&gt;info&lt;/tt&gt; method that all harvesters
must implement, which will return a dictionary with the previous
elements:
&lt;/p&gt;
&lt;pre class="wiki"&gt;    {
        'name': 'csw',
        'title': 'CSW Server',
        'description': 'A server that implements OGC's Catalog Service
                        for the Web (CSW) standard'
    }
&lt;/pre&gt;&lt;h3 id="Arbitraryconfiguration1"&gt;Arbitrary configuration&lt;/h3&gt;
&lt;p&gt;
As different harvesters will have very different needs, we need to
provide a way to persist arbitrary configuration flags for each harvest
source. The more flexible way given the current architecture in my
opinion would be to store the configuration options as a JSON encoded
object as a property of the harvest source (There already is an unused
DB field called &lt;tt&gt;config&lt;/tt&gt; in the database) (Maybe using &lt;a class="missing wiki"&gt;JsonType?&lt;/a&gt;?).
&lt;/p&gt;
&lt;p&gt;
This will mean adding an extra field in the harvest source form to allow
entering the configuration. This could be just a simple text field where
users enter the JSON encoded object or a more clever mechanism (i.e an
"Add a configuration flag" link that adds two new text fields for the
key and value for each flag, and a mechanism to later build the JSON
object). In any case, this should probably be hidden in an "Advance
options" section.
&lt;/p&gt;
&lt;h2 id="Whydoitthisway"&gt;Why do it this way&lt;/h2&gt;
&lt;h3 id="Harvesterdescription2"&gt;Harvester description&lt;/h3&gt;
&lt;p&gt;
The &lt;tt&gt;info&lt;/tt&gt; method would provide a single point to get all the
information related to the harvester, and future properties could be
added to the dictionary returned without having to modify the interface.
&lt;/p&gt;
&lt;h3 id="Arbitraryconfiguration2"&gt;Arbitrary configuration&lt;/h3&gt;
&lt;p&gt;
There is an already existing &lt;tt&gt;config&lt;/tt&gt; field in the database, so we
won't need to change the model.
Harvesters could access the config object at any of the stages. Of
course they could provide default values in their implementations so
users don't need to enter them everytime.
&lt;/p&gt;
&lt;h2 id="Implementationplan"&gt;Implementation plan&lt;/h2&gt;
&lt;h3 id="Deliverables"&gt;Deliverables&lt;/h3&gt;
&lt;h3 id="Risksandmitigations"&gt;Risks and mitigations&lt;/h3&gt;
&lt;p&gt;
The highest risk on the harvesters &lt;tt&gt;info&lt;/tt&gt; method side is that
harvester implementation don't offer one of the necessary properties
(namely name and title). This could fire a warning when showing the
UI form or using the CLI.
&lt;/p&gt;
&lt;h3 id="Participants"&gt;Participants&lt;/h3&gt;
&lt;p&gt;
Adrià Mercader to do it.
&lt;/p&gt;
&lt;h3 id="Progress"&gt;Progress&lt;/h3&gt;
&lt;p&gt;
None yet.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1134</link>
        <guid isPermaLink="false">http://localhost/ticket/1134</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1135: Changeset model for vdm</title>
                  <description>&lt;p&gt;
Move to Changeset model for vdm.
&lt;/p&gt;
&lt;p&gt;
A changeset model is like an Audit-Log model in which we just record Changesets with Change-Objects rather than have Revision-Objects for each Object that is revisioned.
&lt;/p&gt;
&lt;p&gt;
This change would also incorporate significant simplication of vdm.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1135</link>
        <guid isPermaLink="false">http://localhost/ticket/1135</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1136: Move to SessionExtension in vdm</title>
                  <description>&lt;p&gt;
When vdm was created there was no SessionExtension so we use MapperExtension for doing revisioning. Now that &lt;a class="missing wiki"&gt;SessionExtension?&lt;/a&gt; exists we should use it. We can also follow the existing SQLAlchemy recipe: &amp;lt;&lt;a class="ext-link" href="http://www.sqlalchemy.org/docs/orm/examples.html?highlight=versioning#versioned-objects"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.sqlalchemy.org/docs/orm/examples.html?highlight=versioning#versioned-objects&lt;/a&gt;&amp;gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1136</link>
        <guid isPermaLink="false">http://localhost/ticket/1136</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1137: Remove need for statefulness in vdm</title>
                  <description>&lt;p&gt;
Statefulness, especially statefulness for relation (esp m2m) is cause of most of the complexity in vdm. It is &lt;em&gt;required&lt;/em&gt; because, atm, revision objects have FKs to continuity objects.
&lt;/p&gt;
&lt;p&gt;
This ticket proposes the following changes:
&lt;/p&gt;
&lt;p&gt;
NB: this could be limited just to case of join tables (leaving state stuff on other tables)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Remove FKs from revision to continuity (or allow for them to be nullable).
&lt;ul&gt;&lt;li&gt;We could just limit this to m2m stuff
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Delete of an object leads to:
&lt;ul&gt;&lt;li&gt;Deletion of continuity object
&lt;/li&gt;&lt;li&gt;Adding an entry in revision table with state set to deleted (we retain state on revision table)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
If this is done we will no longer need to worry about filtering on state on relationships as join table will only contain "active" relationships.
&lt;/p&gt;
&lt;p&gt;
If we do this on all tables we remove need for any state awareness in client (e.g. no need to filter tables on active state).
&lt;/p&gt;
&lt;p&gt;
The only disadvantage of this change is that undeletion becomes more problematic (we have to recreate some continuity objects).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1137</link>
        <guid isPermaLink="false">http://localhost/ticket/1137</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnlawrenceaspden</dc:creator>

                  <title>#1138: minor navigations behave inconsistently</title>
                  <description>&lt;p&gt;
For Authorization Groups, if you have admin privileges you see view, edit and authz tabs, and if you don't have the necessary privileges you only see the view tab.
&lt;/p&gt;
&lt;p&gt;
For Packages, you see all tabs whatever your permissions, so there's a link you can click on which will redirect you to the login page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1138</link>
        <guid isPermaLink="false">http://localhost/ticket/1138</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>lucychambers</dc:creator>

                  <title>#1139: Create CKAN Theme Gallery</title>
                  <description>&lt;p&gt;
Take screenshots of existing ckan instances esp those mentioned
&amp;lt;&lt;a class="ext-link" href="http://wiki.ckan.net/Theming"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Theming&lt;/a&gt;&amp;gt; and put on flickr in ckan or ckan-theme
group so we can create a gallery ... (both to illustrate theming but
also to show ckan instances that are around -- could add to
&lt;a class="ext-link" href="http://wiki.ckan.net/Instances"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Instances&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1139</link>
        <guid isPermaLink="false">http://localhost/ticket/1139</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1140: Adding the package to the group is not search indexed</title>
                  <description>&lt;p&gt;
To reproduce:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;tt&gt;paster db init&lt;/tt&gt;
&lt;/li&gt;&lt;li&gt;&lt;tt&gt;paster create-test-data&lt;/tt&gt;
&lt;/li&gt;&lt;li&gt;In Web UI: create new group 'tilo', which includes package 'annakarenina'
&lt;/li&gt;&lt;li&gt;&lt;tt&gt;curl http://localhost:5000/api/search/package?groups=tilo&lt;/tt&gt;  results in 0 results (WRONG)
&lt;/li&gt;&lt;li&gt;&lt;tt&gt;paster search-index rebuild&lt;/tt&gt;
&lt;/li&gt;&lt;li&gt;&lt;tt&gt;curl http://localhost:5000/api/search/package?groups=tilo&lt;/tt&gt;  results in 1 result
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1140</link>
        <guid isPermaLink="false">http://localhost/ticket/1140</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1141: [super] Moderated Edits User Interface</title>
                  <description>&lt;p&gt;
&lt;strong&gt;Proposer&lt;/strong&gt;: John Glover&lt;br /&gt;
&lt;strong&gt;Seconder&lt;/strong&gt;: James Gardner
&lt;/p&gt;
&lt;h2 id="Abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;
We are trying to achieve these goals:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;To get people involved with making edits to CKAN metadata.
&lt;/li&gt;&lt;li&gt;To have an ownership model as to who can moderate and validate these changes
&lt;/li&gt;&lt;li&gt;To not put too huge a burden on these owners.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This feature allows anyone to edit a package and create a new revision, but requires an owner/moderator to approve a revision before it is are made "official".
&lt;/p&gt;
&lt;p&gt;
There have been a lot of discussions around the revisioning system side of this ticket (CREP 0002) and I think these are now largely resolved. We now want to discuss the user interface.
&lt;/p&gt;
&lt;h2 id="TheProblem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;
We require the following functionality:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Allow a group of changes to be stored as a new revision.
&lt;/li&gt;&lt;li&gt;Allow a linear stack of "community" revisions.
&lt;/li&gt;&lt;li&gt;Provide a way for the editor and moderator to compare previous revisions to the current one.
&lt;/li&gt;&lt;li&gt;When a moderator approves a change it creates a new revision flagged "moderated" (this is analogous to a merge commit)
&lt;/li&gt;&lt;li&gt;Provide a way for the editor and moderator comment on revisions if necessary.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Extra features:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Need a way to summarise the changes (as part of the preview perhaps)
&lt;/li&gt;&lt;li&gt;Sysadmin needs to purge a revision completely
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Specification"&gt;Specification&lt;/h2&gt;
&lt;h3 id="UIUX"&gt;UI/UX&lt;/h3&gt;
&lt;p&gt;
UI Mockup:
&lt;/p&gt;
&lt;p&gt;
&lt;a style="padding:0; border:none" href="http://localhost/attachment/ticket/1141/ModeratedEdits2.png"&gt;&lt;img src="http://localhost/raw-attachment/ticket/1141/ModeratedEdits2.png" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Revisions:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Revisions are per package rather than per field.
&lt;/li&gt;&lt;li&gt;Internally CKAN has separate revisions for resources, extras and package metadata.  From a user's point of view this could be confusing to expose, so everything that they see on a package form when they hit save is a single revision.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
On the Edit page:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We have a panel on the right, listing all the revisions with the current moderated one selected. Moderated revisions are highligted in some way (red and bold?).
&lt;/li&gt;&lt;li&gt;The values displayed in the form are by default populated from the latest revision (whether community or moderated)
&lt;/li&gt;&lt;li&gt;Under each field is a "shadow", showing the value of the field in the revision selected in the panel, if it is different from the value in the field. By default the shadow values are populated from the latest moderated revision which is the one selected in the revision panel by default too.
&lt;/li&gt;&lt;li&gt;When you change the value of a field, a shadow may appear or disappear accordingly. If they disappear a box saying that they are the same replaces it
&lt;/li&gt;&lt;li&gt;If you want to edit values from a previous revision, you first select that revision to get the shadows populated. There is a button named "Replace fields with values from this revision" under the revision list. You click this, a warning pops up and then you say "Yes". You then select the moderated revision again.
&lt;/li&gt;&lt;li&gt;We also allow package comments the same way as the todo extension works at the moment. Additionally, we need to be able to differentiate between what the moderator wrote and what a community member wrote, and so we may need to make a small change to the todo extension to facilitate this.
&lt;/li&gt;&lt;li&gt;In addition to package comments, each revision will have a revision log (analogous to a commit message).
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="TechnicalDetails"&gt;Technical Details&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;This CREP will result in a new CKAN extension.
&lt;/li&gt;&lt;li&gt;It depends heavily on the new revisioning system (CREP0002), some of the details of which are yet to be finalised.
&lt;/li&gt;&lt;li&gt;This CREP therefore requires working closely with David Raznick to come up with an API that the UI AJAX calls can use.
&lt;/li&gt;&lt;li&gt;We will then use suitable test data to mimic these API calls until CREP0002 is ready.
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Whydoitthisway"&gt;Why do it this way&lt;/h2&gt;
&lt;p&gt;
This hopefully provides a clear and consistent mechanism allowing both a community member to make new revisions and a moderator to view and approve revisions, with largely the same UI/UX.
&lt;/p&gt;
&lt;h2 id="Implementationplan"&gt;Implementation plan&lt;/h2&gt;
&lt;h3 id="Deliverables"&gt;Deliverables&lt;/h3&gt;
&lt;p&gt;
A new CKAN extension, consisting of:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Code: Python, HTML, CSS, Javascript
&lt;/li&gt;&lt;li&gt;Unit tests
&lt;/li&gt;&lt;li&gt;Localization
&lt;/li&gt;&lt;li&gt;Documentation
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Participants"&gt;Participants&lt;/h3&gt;
&lt;p&gt;
John Glover to do it.
&lt;/p&gt;
&lt;h3 id="Progress"&gt;Progress&lt;/h3&gt;
&lt;p&gt;
John has implemented the bulk of this UI. Just some things to tidy up before it is complete:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Genshi stream filters to be updated with CKAN 1.5 / 1.5.1 templates
&lt;/li&gt;&lt;li&gt;history_ajax / read_ajax to be replaced with calls to Action API (or Util REST API)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
I've split these two off into a new ticket &lt;a class="new ticket" href="http://localhost/ticket/1604" title="enhancement: Get ckanext-moderatededits working with CKAN 1.5+ templates (new)"&gt;#1604&lt;/a&gt;.
&lt;/p&gt;
&lt;h3 id="RelatedProgress"&gt;Related Progress&lt;/h3&gt;
&lt;p&gt;
The Todo extension is written and available at: &lt;a class="ext-link" href="https://bitbucket.org/johnglover/ckanext-todo"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/johnglover/ckanext-todo&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
In the section 'The Problem', under extra features, we mention a need for the sysadmin to be able to purge a revision already. This is already done.
&lt;/p&gt;
&lt;h3 id="Seealso"&gt;See also&lt;/h3&gt;
&lt;p&gt;
&lt;a class="closed ticket" href="http://localhost/ticket/1129" title="CREP: CREP0002: Moderated  Edits (closed: fixed)"&gt;#1129&lt;/a&gt; Backend work
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1141</link>
        <guid isPermaLink="false">http://localhost/ticket/1141</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1142: [super] Major Overhaul and Extension of CKAN Documentation</title>
                  <description>&lt;p&gt;
Child tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="assigned ticket" href="http://localhost/ticket/1041" title="enhancement: Start Using the CKAN Wiki for Tutorial-style documentation (assigned)"&gt;#1041&lt;/a&gt; Start Using the CKAN Wiki for Tutorial-style documentation
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1192" title="task: Convert CKAN Sphinx docs into admin/reference manual (closed: fixed)"&gt;#1192&lt;/a&gt; Convert CKAN Sphinx docs into admin/reference manual
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Previous super ticket (from 3m ago): &lt;a class="ext-link" href="http://trac.ckan.org/ticket/927"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.ckan.org/ticket/927&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CKAN 1-page overview (for enterprise and for data hackers)
&lt;/li&gt;&lt;li&gt;Administrator's Guide (including install)
&lt;/li&gt;&lt;li&gt;Extensions Guide
&lt;/li&gt;&lt;li&gt;Separate CKAN.net info from Software Documentation (?)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also now a wiki page with more detail: &lt;a class="ext-link" href="http://wiki.ckan.net/Documentation_Plans"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Documentation_Plans&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="MinorItems"&gt;Minor Items&lt;/h2&gt;
</description>
        <link>http://localhost/ticket/1142</link>
        <guid isPermaLink="false">http://localhost/ticket/1142</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1143: Improve stats page</title>
                  <description>&lt;ul&gt;&lt;li&gt;Ensure we don't include deleted packages in the stats
&lt;/li&gt;&lt;li&gt;Some visual improvements:
&lt;ul&gt;&lt;li&gt;Number of packages:
&lt;ul&gt;&lt;li&gt;fix x axis to start at first revision
&lt;/li&gt;&lt;li&gt;fix y axis to start at zero
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Fix problem with legend to 'Revisions to packages' graph.
&lt;/li&gt;&lt;li&gt;Hide sidebar in the template, so it isn't right-cropped in the DGU theme
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Add some testing of the stats lib - results of basic stats
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1143</link>
        <guid isPermaLink="false">http://localhost/ticket/1143</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1144: Support DSPL</title>
                  <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>
        <link>http://localhost/ticket/1144</link>
        <guid isPermaLink="false">http://localhost/ticket/1144</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1145: Support the Handle System</title>
                  <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>
        <link>http://localhost/ticket/1145</link>
        <guid isPermaLink="false">http://localhost/ticket/1145</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1146: make logic layer control its own state</title>
                  <description>&lt;p&gt;
Logic layer should not use any vdm defined state and should manage it itself.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1146</link>
        <guid isPermaLink="false">http://localhost/ticket/1146</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1147: Add expired_id to all revision tables.</title>
                  <description>&lt;p&gt;
Revision tables need expired_id to make querying history AND pending changes more efficient.
&lt;/p&gt;
&lt;p&gt;
This involves making a session extension and a large table migration.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1147</link>
        <guid isPermaLink="false">http://localhost/ticket/1147</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1148: test speed improvements and cleanup</title>
                  <description>&lt;p&gt;
The tests have been running slower recently and need fixing.  They also could do with a bit more consistency to them.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1148</link>
        <guid isPermaLink="false">http://localhost/ticket/1148</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1149: Change domain object modification plugin to use Session extension.</title>
                  <description>&lt;p&gt;
This should make it more efficient as it currently does a lot of repeating work.  i.e if you change a package and a resource in the same commit it sends out 2 notifications and should only really send out 1.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1149</link>
        <guid isPermaLink="false">http://localhost/ticket/1149</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1150: Non-ASCII chars prevent data preview</title>
                  <description>&lt;p&gt;
Characters outside of ASCII range are not supported within data previews.
&lt;/p&gt;
&lt;p&gt;
Steps to reproduce:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Visit &lt;a class="ext-link" href="http://ckan.net/package/kivele2010"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/kivele2010&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Click on [preview] for any of the resources
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1150</link>
        <guid isPermaLink="false">http://localhost/ticket/1150</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1151: Preview for geographic data should be a map</title>
                  <description>&lt;p&gt;
Data viewer / previewer for a resource that has a KML file, or others, such as GeoRSS and GeoJSON, we should provide a map.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Support for KML files: &lt;a class="assigned ticket" href="http://localhost/ticket/1458" title="enhancement: Support previewing kml files in data viewer (assigned)"&gt;#1458&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This is non-trivial for external files as we need a way to jsonify. For files stored locally this is more of a recline issue (and will require a bit of work to either guess columns or allow user to specify them).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1151</link>
        <guid isPermaLink="false">http://localhost/ticket/1151</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1152: True support for generic CSW servers</title>
                  <description>&lt;p&gt;
The CSW harvesters implemented at the moment were developed with the DGU
project in mind, and they assume all remote CSW servers to implement the
Gemini 2 specification. Gemini 2 is the profile defined in the UK for
INSPIRE complying metadata, so obviously catalogs from other countries
or non-INSPIRE complying ones won't be able to be harvested.
&lt;/p&gt;
&lt;p&gt;
The changes needed to support generic CSW servers (i.e. those
implementing the ISO 19139 profile) are:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Handling the validators (right now are hardcoded in the harvester
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
code). This probably involves issues discussed in the CREP 3
(ticket &lt;a class="new ticket" href="http://localhost/ticket/1134" title="CREP: CREP0003: Description and Configuration of Harvesters (new)"&gt;#1134&lt;/a&gt;)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Changes in the model to adapt the specification to ISO 19139
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Renaming objects and classes which are now Gemini-centric
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
List of CSW servers tested:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://spreadsheets.google.com/spreadsheet/ccc?key=0Atp3cZFjuIOAdDBVQWRINnlfN1d0b2lleHVEdjBSb2c&amp;amp;hl=en_US&amp;amp;authkey=CNu4hsEB#gid=0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://spreadsheets.google.com/spreadsheet/ccc?key=0Atp3cZFjuIOAdDBVQWRINnlfN1d0b2lleHVEdjBSb2c&amp;amp;hl=en_US&amp;amp;authkey=CNu4hsEB#gid=0&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1152</link>
        <guid isPermaLink="false">http://localhost/ticket/1152</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>lucychambers</dc:creator>

                  <title>#1153: Update CKAN wiki front page</title>
                  <description>&lt;p&gt;
Update CKAN wiki front page - a la &lt;a class="missing wiki"&gt;OpenSpending?&lt;/a&gt;: &lt;a class="ext-link" href="http://wiki.openspending.org/Main_Page"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.openspending.org/Main_Page&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Sections should relate to different types of people using the site:
&lt;/p&gt;
&lt;p&gt;
Developers, Users etc..
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1153</link>
        <guid isPermaLink="false">http://localhost/ticket/1153</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1154: Make ckan robust against solr failure</title>
                  <description>&lt;p&gt;
According to pudo, a ckan with activated solr extension throws a 5xx when solr is unreachable. Instead, it should behave more like a ckan without ckanext-solr when this happens.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1154</link>
        <guid isPermaLink="false">http://localhost/ticket/1154</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1155: Harvester for data.london.gov.uk</title>
                  <description>&lt;p&gt;
Write a harvester for data.london.gov.uk to import catalogue metadata into PDEU. API (or at least documentation) is available at: &lt;a class="ext-link" href="http://sourceforge.net/projects/londondatastore/files/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://sourceforge.net/projects/londondatastore/files/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1155</link>
        <guid isPermaLink="false">http://localhost/ticket/1155</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1156: Scraping harvesters for Paris and Vienna Catalogues</title>
                  <description>&lt;p&gt;
Import metadata from both sources into PDEU via the Harvesting framework but by scraping their respective catalogue pages.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://data.wien.gv.at/katalog/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://data.wien.gv.at/katalog/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://opendata.paris.fr/opendata/jsp/site/Portal.jsp"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://opendata.paris.fr/opendata/jsp/site/Portal.jsp&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1156</link>
        <guid isPermaLink="false">http://localhost/ticket/1156</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1157: A simple theme for publicdata.eu, CKAN</title>
                  <description>&lt;p&gt;
Change the visual style of CKAN to be more like these sites:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="missing wiki"&gt;GitHub?&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Quora
&lt;/li&gt;&lt;li&gt;Google Projects
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This does not include major UX work.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1157</link>
        <guid isPermaLink="false">http://localhost/ticket/1157</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1158: Put PDEU into read-only mode and remove unneeded functions</title>
                  <description>&lt;p&gt;
PDEU should be in a mode where:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Users cannot edit or create packages
&lt;/li&gt;&lt;li&gt;Users cannot sign up on their own
&lt;/li&gt;&lt;li&gt;&lt;a class="missing wiki"&gt;AuthorizationGroups?&lt;/a&gt; and &lt;a class="missing wiki"&gt;RevisionHistory?&lt;/a&gt; is completely gone from the UI
&lt;/li&gt;&lt;li&gt;Groups have been repurposed as Subjects
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1158</link>
        <guid isPermaLink="false">http://localhost/ticket/1158</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1159: Add RDFa to CKAN package pages</title>
                  <description>&lt;p&gt;
RDFa can be used as a simple way to expose linked data or at least sameAs the API version of the data but we need to make sure we do not expose anything different from the "official" representation.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1159</link>
        <guid isPermaLink="false">http://localhost/ticket/1159</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1160: Havest CSW servers on PDEU</title>
                  <description>&lt;p&gt;
It could be interesting for the publicdata.eu project to add some CSW datasources. Thanks to the INSPIRE directive, there are quite a few national catalogs of geodata that could be worth harvesting.
Work on this should include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Compose Endpoint List (1d)
&lt;/li&gt;&lt;li&gt;Harvest on staging system and evaluate which sources have useful material (2d)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
First point is being performed in this GDoc:
&lt;a class="ext-link" href="https://spreadsheets.google.com/spreadsheet/ccc?key=0Atp3cZFjuIOAdDBVQWRINnlfN1d0b2lleHVEdjBSb2c&amp;amp;authkey=CNu4hsEB&amp;amp;hl=en_US#gid=0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://spreadsheets.google.com/spreadsheet/ccc?key=0Atp3cZFjuIOAdDBVQWRINnlfN1d0b2lleHVEdjBSb2c&amp;amp;authkey=CNu4hsEB&amp;amp;hl=en_US#gid=0&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1160</link>
        <guid isPermaLink="false">http://localhost/ticket/1160</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1161: Build a simplified theme for PDEU</title>
                  <description>&lt;p&gt;
We need to offer a strongly simplified version, read-only of CKAN under publicdata.eu, with a focus on its role as search engine instead of a data catalogue.
&lt;/p&gt;
&lt;p&gt;
This ticket relates to work on the PDEU theme only!
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1161</link>
        <guid isPermaLink="false">http://localhost/ticket/1161</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1162: Define a common extra for storing the geographic extent</title>
                  <description>&lt;p&gt;
We need a common extra across the different harvested sources that defines the extent of the data. We will have mainly national level catalogues, but also at a lower level (region, city).
&lt;/p&gt;
&lt;p&gt;
Relevant discussion:
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-May/001245.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-May/001245.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1162</link>
        <guid isPermaLink="false">http://localhost/ticket/1162</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1163: Improvements to Storage Extension</title>
                  <description>&lt;p&gt;
Storage is now working but there are
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Integrate with Resources (e.g. create a resource for each file upload and give option to associate with a package)
&lt;ul&gt;&lt;li&gt;Should we introduce rule that files *not* associated with a Resource are periodically deleted?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Allow setting of a file name/path before upload
&lt;/li&gt;&lt;li&gt;Allow for file overwriting/deleting etc (how should this work -- do we want to allow this sort of thing)
&lt;/li&gt;&lt;li&gt;Integrate local file upload stuff in api/auth/*
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="DifferentBackendIssues"&gt;Different Backend Issues&lt;/h2&gt;
&lt;p&gt;
Local file store is rather different from 'remote' storage in various ways:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;For remote you don't want to use many buckets as there are bucket limits while for local you want to. Should we there have a single path that users provide which we then partition differently for different backends.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1163</link>
        <guid isPermaLink="false">http://localhost/ticket/1163</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1164: Cloropleth Map of European Data Availability for PDEU</title>
                  <description>&lt;p&gt;
A nice map in the homepage showing the availability of data across Europe
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1164</link>
        <guid isPermaLink="false">http://localhost/ticket/1164</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1165: Add multi-site support to ckan</title>
                  <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>
        <link>http://localhost/ticket/1165</link>
        <guid isPermaLink="false">http://localhost/ticket/1165</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1166: Less stringent filters for displaying the WMS preview</title>
                  <description>&lt;p&gt;
Right now, for the "View available WMS layers" link to be displayed, the package needs to have an "INSPIRE=True" extra, a "resource-type=service" extra and a resource of type "WMS".
&lt;/p&gt;
&lt;p&gt;
This is due to DGU (the project this was developed for) related reasons, but for a generic support, the resource type should probably be enough.
&lt;/p&gt;
&lt;p&gt;
(The repository for this is ckanext-spatial, but it's not on the list)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1166</link>
        <guid isPermaLink="false">http://localhost/ticket/1166</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1167: Create a standard CKAN system image for Amazon EC2 (AMI)</title>
                  <description>&lt;p&gt;
We should create a public AMI with CKAN pre-installed and configured such that users can easily create their own EC2 machine with a running CKAN to play with.
&lt;/p&gt;
&lt;p&gt;
There are three phases:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;[nils] Deploy an empty EC2 instance to become the CKAN image master instance
&lt;/li&gt;&lt;li&gt;Install a CKAN and give it a standard configuration.
&lt;/li&gt;&lt;li&gt;[nils] Create a AMI from the CKAN image master instance and publish it.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
I am happy to do first and last. Who is installing and configuring CKAN?
&lt;/p&gt;
&lt;p&gt;
Unfortunately AMIs are specific to region, architecture and storage type. We cannot maintain too many images, so a number of choices have to be made:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Which distribution/version? &lt;strong&gt;Ubuntu 10.04 LTS&lt;/strong&gt;
&lt;/li&gt;&lt;li&gt;Which architecture/instance-type? I suggest 64-bit/t1.micro
&lt;/li&gt;&lt;li&gt;Which region? I suggest us-east-1 and maybe eu-west-1
&lt;/li&gt;&lt;li&gt;Which storage type? &lt;strong&gt;EBS&lt;/strong&gt; (way easier to make an AMI from than instance-store)
&lt;/li&gt;&lt;li&gt;Install CKAN from deb packages via mercurial/virtualenv? I assume the latter because the AMI is targeted to developers?
&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://alestic.com/2009/06/ec2-ami-bundle"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;1&lt;/a&gt;
&lt;a class="ext-link" href="http://uec-images.ubuntu.com/releases/10.04/release/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;2&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1167</link>
        <guid isPermaLink="false">http://localhost/ticket/1167</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1168: Test system for deb packaging</title>
                  <description>&lt;p&gt;
Get buildbot to:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;build the deb packages
&lt;/li&gt;&lt;li&gt;install them into a fresh virtual machine
&lt;/li&gt;&lt;li&gt;run smoke tests on the installed ckan
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1168</link>
        <guid isPermaLink="false">http://localhost/ticket/1168</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1169: Link to csv/json dumps on ckan.net</title>
                  <description></description>
        <link>http://localhost/ticket/1169</link>
        <guid isPermaLink="false">http://localhost/ticket/1169</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1170: Production deployment docs out of date</title>
                  <description>&lt;p&gt;
Need to cover pip-requirements.txt on different branches in the doc/deployment.rst.
&lt;/p&gt;
&lt;p&gt;
Also could do with tidying up upgrade.txt into this document too.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1170</link>
        <guid isPermaLink="false">http://localhost/ticket/1170</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1171: Citation instructions on dataset and resource view pages</title>
                  <description>&lt;p&gt;
Some sort of citation helper. Something small on the dataset and resource page that would show how to cite.
&lt;/p&gt;
&lt;p&gt;
wwaites: Some related thoughts on this from opb: &lt;a class="ext-link" href="http://homepages.inf.ed.ac.uk/opb/papers/ssdbm2006.pdf"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://homepages.inf.ed.ac.uk/opb/papers/ssdbm2006.pdf&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
timclicks: I'm looking at Dataverse for the first time&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt;. It seems very popular in the social sciences. I noticed that there is a recommended citation for each dataset. For example, &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt; is has this one: "Targeted Input Programme (TIP) 2000-01", &lt;a class="ext-link" href="http://hdl.handle.net/1902.1/SSC-MWI-TIP2000-01-M1"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://hdl.handle.net/1902.1/SSC-MWI-TIP2000-01-M1&lt;/a&gt; V1 [Version]"
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
Add a small box at bottom of dataset / resource page (or in sidebar on dataset page) with title "Cite this" with contents like:
&lt;/p&gt;
&lt;p&gt;
%title. %author. Retrieved %date. %site_title.
&lt;/p&gt;
&lt;p&gt;
For resource: %title = %dataset_title. %resource_name.
&lt;/p&gt;
&lt;p&gt;
Could also add export to ref managers (e.g. to bibtex) but that is for later.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1171</link>
        <guid isPermaLink="false">http://localhost/ticket/1171</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1172: Remove all try: except: blocks that don't re-raise the original exception</title>
                  <description>&lt;p&gt;
The current codebase has one or two try: except; blocks that don't catch specific exceptions. Under no circumstances should any broad try: except: blocks be allowed unless the exceptions they catch are immediately re-raised. Uncaught exceptions are wasting us quite a lot of time when trying to track down problems.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1172</link>
        <guid isPermaLink="false">http://localhost/ticket/1172</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1173: Offer a DCat representation for packages in the API</title>
                  <description>&lt;p&gt;
/api/rest/package/foo.rdf should return a DCat representation of the package. To create it, we will use the functions in ckanext-rdf.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1173</link>
        <guid isPermaLink="false">http://localhost/ticket/1173</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1174: API Representation Registry</title>
                  <description>&lt;p&gt;
As CKAN grows, more and more optional representations of packages will become used. Besides RDF (which is the motivation for this ticket), support for DSPL, home-grown XML, or CSV listings is imaginable.
&lt;/p&gt;
&lt;p&gt;
To properly support this CKAN should have an extensible representation registry that can be extended when new output types become available (and without changing the API in the process). This needs to integrate in two places:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We need to add support for file format extensions to the package handler and REST API.
&lt;/li&gt;&lt;li&gt;We need to add HTTP content type negotiation (Accept headers).
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
To support this we should have a registry with two registers:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;to map format extensions to mime types (e.g. "json" -&amp;gt; "application/json")
&lt;/li&gt;&lt;li&gt;to map mime types and entity types to converter functions (e.g. 8"application/json", ckan.model.Package) -&amp;gt; func(obj, mime_type) )
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This should be set up on load_environment so that IConfigurer plugins can feed into it.
&lt;/p&gt;
&lt;p&gt;
The registry should then first be added to _finish in the REST API (which needs to be refactored to be passed the {format} part of the URL if one is given. Based on the format part and HTTP headers, an appropriate representation can be generated by the registry and then be returned to the user.
&lt;/p&gt;
&lt;p&gt;
Forwarding of requests to the regular WUI controllers with Accept headers set or a format specified can be implemented in a separate effort.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1174</link>
        <guid isPermaLink="false">http://localhost/ticket/1174</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>fccoelho@…</dc:creator>

                  <title>#1175: Stats extension not working</title>
                  <description>&lt;p&gt;
Hi,
I get a 500, Internal server error when I enable ckanext-stats.
Flavio
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1175</link>
        <guid isPermaLink="false">http://localhost/ticket/1175</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1176: unicode_body exception</title>
                  <description>&lt;p&gt;
We seem to occasionally get this exception on ckan.net.
&lt;/p&gt;
&lt;p&gt;
User agents causing this include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Alexa ia_archiver (3/6/11)
&lt;/li&gt;&lt;li&gt;Maxthon browser (17/5/11)
&lt;/li&gt;&lt;/ul&gt;&lt;pre class="wiki"&gt;Module ckan.controllers.error:32 in document
&amp;lt;&amp;lt;              return original_response.body
               # Otherwise, decorate original response with error template.
               c.content = literal(original_response.unicode_body) or cgi.escape(request.GET.get('message', ''))
               c.prefix=request.environ.get('SCRIPT_NAME', ''),
               c.code=cgi.escape(request.GET.get('code', str(original_response.status_int))),
&amp;gt;&amp;gt;  c.content = literal(original_response.unicode_body) or cgi.escape(request.GET.get('message', ''))
AttributeError: 'NoneType' object has no attribute 'unicode_body'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1176</link>
        <guid isPermaLink="false">http://localhost/ticket/1176</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>fccoelho</dc:creator>

                  <title>#1177: routes.util.GenerationException</title>
                  <description>&lt;blockquote&gt;
&lt;p&gt;
Hello,
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
I have done a recent update to mu ckan install, and I am now getting this error for all my packages:
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://ckan.emap.fgv.br/package/dengue-net
Module weberror.errormiddleware:162 in __call__
&amp;lt;&amp;lt;              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
                   return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
&amp;gt;&amp;gt;  app_iter = self.application(environ, sr_checker)
Module beaker.middleware:73 in __call__
&amp;lt;&amp;lt;                                                     self.cache_manager)
               environ[self.environ_key] = self.cache_manager
               return self.app(environ, start_response)
&amp;gt;&amp;gt;  return self.app(environ, start_response)
Module beaker.middleware:152 in __call__
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)
           def _get_session(self):
&amp;gt;&amp;gt;  return self.wrap_app(environ, session_start_response)
Module routes.middleware:130 in __call__
&amp;lt;&amp;lt;                  environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1]
               response = self.app(environ, start_response)
               # Wrapped in try as in rare cases the attribute will be gone already
&amp;gt;&amp;gt;  response = self.app(environ, start_response)
Module pylons.wsgiapp:125 in __call__
&amp;lt;&amp;lt;
               controller = self.resolve(environ, start_response)
               response = self.dispatch(controller, environ, start_response)
               if 'paste.testing_variables' in environ and hasattr(response,
&amp;gt;&amp;gt;  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:118 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:221 in __call__
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
               response = self._dispatch_call()
               if not start_response_called:
                   self.start_response = start_response
&amp;gt;&amp;gt;  response = self._dispatch_call()
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ['pylons.action_method'] = func
                   response = self._inspect_call(func)
               else:
                   if log_debug:
&amp;gt;&amp;gt;  response = self._inspect_call(func)
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.__name__, args)
               try:
                   result = self._perform_call(func, args)
               except HTTPException, httpe:
                   if log_debug:
&amp;gt;&amp;gt;  result = self._perform_call(func, args)
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ?:2 in read
Module ckan.lib.cache:167 in wrapper
&amp;lt;&amp;lt;      log = __import__("logging").getLogger("proxy_cache")
           def wrapper(func, *args, **kwargs):
               result = func(*args, **kwargs)
               pylons = get_pylons(args)
&amp;gt;&amp;gt;  result = func(*args, **kwargs)
Module ckan.controllers.package:208 in read
&amp;lt;&amp;lt;          #render the package
               PackageSaver().render_package(c.pkg)
               return render('package/read.html')
           def comments(self, id):
&amp;gt;&amp;gt;  return render('package/read.html')
Module ckan.lib.base:74 in render
&amp;lt;&amp;lt;
           return cached_template(template_name, render_template, cache_key=cache_key,
                                  cache_type=cache_type, cache_expire=cache_expire)
                                  #, ns_options=('method'), method=method)
&amp;gt;&amp;gt;  cache_type=cache_type, cache_expire=cache_expire)
Module pylons.templating:249 in cached_template
&amp;lt;&amp;lt;          return content
           else:
               return render_func()
&amp;gt;&amp;gt;  return render_func()
Module ckan.lib.base:63 in render_template
&amp;lt;&amp;lt;              stream = item.filter(stream)
               return literal(stream.render(method=method, encoding=None))
           if 'Pragma' in response.headers:
&amp;gt;&amp;gt;  return literal(stream.render(method=method, encoding=None))
Module genshi.core:183 in render
&amp;lt;&amp;lt;              method = self.serializer or 'xml'
               generator = self.serialize(method=method, **kwargs)
               return encode(generator, method=method, encoding=encoding, out=out)
           def select(self, path, namespaces=None, variables=None):
&amp;gt;&amp;gt;  return encode(generator, method=method, encoding=encoding, out=out)
Module genshi.output:57 in encode
&amp;lt;&amp;lt;          _encode = lambda string: string
           if out is None:
               return _encode(''.join(list(iterator)))
           for chunk in iterator:
               out.write(_encode(chunk))
&amp;gt;&amp;gt;  return _encode(''.join(list(iterator)))
Module genshi.output:339 in __call__
&amp;lt;&amp;lt;          for filter_ in self.filters:
                   stream = filter_(stream)
               for kind, data, pos in stream:
                   cached = cache_get((kind, data))
                   if cached is not None:
&amp;gt;&amp;gt;  for kind, data, pos in stream:
Module genshi.output:670 in __call__
&amp;lt;&amp;lt;          _gen_prefix = _gen_prefix().next
               for kind, data, pos in stream:
                   output = cache_get((kind, data))
                   if output is not None:
&amp;gt;&amp;gt;  for kind, data, pos in stream:
Module genshi.output:771 in __call__
&amp;lt;&amp;lt;          push_text = textbuf.append
               pop_text = textbuf.pop
               for kind, data, pos in chain(stream, [(None, None, None)]):
                   if kind is TEXT:
&amp;gt;&amp;gt;  for kind, data, pos in chain(stream, [(None, None, None)]):
Module genshi.output:586 in __call__
&amp;lt;&amp;lt;      def __call__(self, stream):
               prev = (None, None, None)
               for ev in stream:
                   if prev[0] is START:
                       if ev[0] is END:
&amp;gt;&amp;gt;  for ev in stream:
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
           yield event
           for event in stream:
               yield event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.template.base:618 in _include
&amp;lt;&amp;lt;                      tmpl = self.loader.load(href, relative_to=event[2][0],
                                                   cls=cls or self.__class__)
                           for event in tmpl.generate(ctxt, **vars):
                               yield event
                       except TemplateNotFound:
&amp;gt;&amp;gt;  for event in tmpl.generate(ctxt, **vars):
Module genshi.template.base:618 in _include
&amp;lt;&amp;lt;                      tmpl = self.loader.load(href, relative_to=event[2][0],
                                                   cls=cls or self.__class__)
                           for event in tmpl.generate(ctxt, **vars):
                               yield event
                       except TemplateNotFound:
&amp;gt;&amp;gt;  for event in tmpl.generate(ctxt, **vars):
Module genshi.template.base:618 in _include
&amp;lt;&amp;lt;                      tmpl = self.loader.load(href, relative_to=event[2][0],
                                                   cls=cls or self.__class__)
                           for event in tmpl.generate(ctxt, **vars):
                               yield event
                       except TemplateNotFound:
&amp;gt;&amp;gt;  for event in tmpl.generate(ctxt, **vars):
Module genshi.template.base:605 in _include
&amp;lt;&amp;lt;          from genshi.template.loader import TemplateNotFound
               for event in stream:
                   if event[0] is INCLUDE:
                       href, cls, fallback = event[1]
&amp;gt;&amp;gt;  for event in stream:
Module genshi.template.markup:378 in _match
&amp;lt;&amp;lt;                      for event in self._match(self._flatten(template, ctxt,
                                                                  **vars),
                                                    ctxt, start=idx + 1, **vars):
                               yield event
&amp;gt;&amp;gt;  ctxt, start=idx + 1, **vars):
Module genshi.template.markup:327 in _match
&amp;lt;&amp;lt;                      break
               for event in stream:
                   # We (currently) only care about start and end events for matching
&amp;gt;&amp;gt;  for event in stream:
Module genshi.template.base:565 in _flatten
&amp;lt;&amp;lt;                  elif kind is EXPR:
                           result = _eval_expr(data, ctxt, vars)
                           if result is not None:
                               # First check for a string, otherwise the iterable test
&amp;gt;&amp;gt;  result = _eval_expr(data, ctxt, vars)
Module genshi.template.base:277 in _eval_expr
&amp;lt;&amp;lt;      if vars:
               ctxt.push(vars)
           retval = expr.evaluate(ctxt)
           if vars:
               ctxt.pop()
&amp;gt;&amp;gt;  retval = expr.evaluate(ctxt)
Module genshi.template.eval:178 in evaluate
&amp;lt;&amp;lt;          __traceback_hide__ = 'before_and_this'
               _globals = self._globals(data)
               return eval(self.code, _globals, {'__data__': data})
&amp;gt;&amp;gt;  return eval(self.code, _globals, {'__data__': data})
Module ?:16 in &amp;lt;Expression u"h.subnav_link(c, h.icon('comments') + _('Comments &amp;amp; Questions'), controller='package', action='comments', id=c.pkg.name)"&amp;gt;
&amp;lt;&amp;lt;        &amp;lt;/li&amp;gt;
             &amp;lt;li py:if="g.has_commenting"&amp;gt;
                 ${h.subnav_link(c, h.icon('comments') + _('Comments &amp;amp;amp; Questions'), controller='package', action='comments', id=c.pkg.name)}
             &amp;lt;/li&amp;gt;
             &amp;lt;li&amp;gt;${h.subnav_link(c, h.icon('page_white_stack') + _('History'), controller='package', action='history', id=c.pkg.name)}&amp;lt;/li&amp;gt;
&amp;gt;&amp;gt;  ${h.subnav_link(c, h.icon('comments') + _('Comments &amp;amp;amp; Questions'), controller='package', action='comments', id=c.pkg.name)}
Module ckan.lib.helpers:126 in subnav_link
&amp;lt;&amp;lt;      return link_to(
               text,
               url_for(action=action, **kwargs),
               class_=('active' if c.action == action else '')
           )
&amp;gt;&amp;gt;  url_for(action=action, **kwargs),
Module routes.util:280 in url_for
&amp;lt;&amp;lt;          raise GenerationException(
                   "url_for could not generate URL. Called with args: %s %s" % \
                   (args, kargs))
           return url
&amp;gt;&amp;gt;  (args, kargs))
GenerationException: url_for could not generate URL. Called with args: () {'action': 'comments', 'controller': 'package', 'id': 'dengue-net'}
CGI Variables
AUTH_TYPE 	'cookie'
DOCUMENT_ROOT 	'/etc/apache2/htdocs'
GATEWAY_INTERFACE 	'CGI/1.1'
HTTP_ACCEPT 	'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_CHARSET 	'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING 	'gzip, deflate'
HTTP_ACCEPT_LANGUAGE 	'pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3'
HTTP_CONNECTION 	'keep-alive'
HTTP_COOKIE 	'__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; ckan_user="flavio"; ckan_display_name="Fl\xc3\xa1vio Code\xc3\xa7o Coelho"; ckan_apikey="c139718d-918f-4a2b-b219-e33cb05cbe23"; __utmc=4669863'
HTTP_HOST 	'ckan.emap.fgv.br'
HTTP_KEEP_ALIVE 	'115'
HTTP_REFERER 	'http://ckan.emap.fgv.br/'
HTTP_USER_AGENT 	'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'
PATH_INFO 	'/package/dengue-net'
PATH_TRANSLATED 	'/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py/package/dengue-net'
REMOTE_ADDR 	'10.250.48.110'
REMOTE_PORT 	'47624'
REMOTE_USER 	u'flavio'
REMOTE_USER_DATA 	'userid_type:unicode'
REMOTE_USER_TOKENS 	['']
REQUEST_METHOD 	'GET'
REQUEST_URI 	'/package/dengue-net'
SCRIPT_FILENAME 	'/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py'
SERVER_ADDR 	'10.252.2.60'
SERVER_ADMIN 	'[no address given]'
SERVER_NAME 	'ckan.emap.fgv.br'
SERVER_PORT 	'80'
SERVER_PROTOCOL 	'HTTP/1.1'
SERVER_SIGNATURE 	'&amp;lt;address&amp;gt;Apache/2.2.16 (Debian) Server at ckan.emap.fgv.br Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE 	'Apache/2.2.16 (Debian)'
WSGI Variables
application 	&amp;lt;beaker.middleware.CacheMiddleware object at 0x7f051c802690&amp;gt;
beaker.cache 	&amp;lt;beaker.cache.CacheManager object at 0x7f051c802750&amp;gt;
beaker.get_session 	&amp;lt;bound method SessionMiddleware._get_session of &amp;lt;beaker.middleware.SessionMiddleware object at 0x7f051c8026d0&amp;gt;&amp;gt;
beaker.session 	{'locale': u'pt_BR', '_accessed_time': 1307358102.6266389, '_creation_time': 1302605470.0245121}
mod_wsgi.application_group 	'dck093|'
mod_wsgi.callable_object 	'application'
mod_wsgi.handler_script 	''
mod_wsgi.input_chunked 	'0'
mod_wsgi.listener_host 	''
mod_wsgi.listener_port 	'80'
mod_wsgi.process_group 	'ckan'
mod_wsgi.request_handler 	'wsgi-script'
mod_wsgi.script_reloading 	'1'
mod_wsgi.version 	(3, 3)
paste.cookies 	(&amp;lt;SimpleCookie: SESS61faf7f7d2406929b2f9eb4cbfff17d2='a3306f5d1194cf0d8a51dbf7b42c1259' __utma='4669863.1260802706.1295364409.1306935693.1306960483.86' __utmc='4669863' __utmz='4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode' ckan='d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06' ckan_apikey='c139718d-918f-4a2b-b219-e33cb05cbe23' ckan_display_name='Fl\xc3\xa1vio Code\xc3\xa7o Coelho' ckan_user='flavio'&amp;gt;, '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode";... __utmc=4669863')
paste.registry 	&amp;lt;paste.registry.Registry object at 0x7f051d7e5710&amp;gt;
paste.throw_errors 	True
pylons.action_method 	&amp;lt;bound method PackageController.read of &amp;lt;ckan.controllers.package.PackageController object at 0x7f051d7e5b10&amp;gt;&amp;gt;
pylons.controller 	&amp;lt;ckan.controllers.package.PackageController object at 0x7f051d7e5b10&amp;gt;
pylons.environ_config 	{'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons 	&amp;lt;pylons.util.PylonsContext object at 0x7f051d7e5a50&amp;gt;
pylons.routes_dict 	{'action': u'read', 'controller': u'package', 'id': u'dengue-net'}
repoze.who.identity 	&amp;lt;repoze.who identity (hidden, dict-like) at 139659946193344&amp;gt;
repoze.who.logger 	&amp;lt;logging.Logger instance at 0x7f051c801128&amp;gt;
repoze.who.plugins 	{'openid': &amp;lt;OpenIdIdentificationPlugin 139659931643152&amp;gt;, 'friendlyform': &amp;lt;FriendlyFormPlugin 139659929725584&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.UsernamePasswordAuthenticator object at 0x7f051c9e7610&amp;gt;, 'auth_tkt': &amp;lt;AuthTktCookiePlugin 139659931643280&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f051c9dcfd0&amp;gt;}
routes.route 	&amp;lt;routes.route.Route object at 0x7f051c69fd50&amp;gt;
routes.url 	&amp;lt;routes.util.URLGenerator object at 0x7f051d7e57d0&amp;gt;
webob._parsed_cookies 	({'ckan': 'd4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06', '__utmz': '4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', 'auth_tkt': 'c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode', 'ckan_display_name': 'Fl\xc3\xa1vio Code\xc3\xa7o Coelho', 'ckan_apikey': 'c139718d-918f-4a2b-b219-e33cb05cbe23', 'ckan_user': 'flavio', '__utma': '4669863.1260802706.1295364409.1306935693.1306960483.86', '__utmc': '4669863', 'SESS61faf7f7d2406929b2f9eb4cbfff17d2': 'a3306f5d1194cf0d8a51dbf7b42c1259'}, '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"&amp;lt; wbr&amp;gt;; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!... __utmc=4669863')
webob._parsed_query_vars 	(GET([]), '')
webob.adhoc_attrs 	{'language': 'en-us'}
wsgi process 	'Multi process AND threads (?)'
wsgi.file_wrapper 	&amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f051cc1ad50&amp;gt;
wsgi.version 	(1, 1)
wsgiorg.routing_args 	(&amp;lt;routes.util.URLGenerator object at 0x7f051d7e57d0&amp;gt;, {'action': u'read', 'controller': u'package', 'id': u'dengue-net'})
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1177</link>
        <guid isPermaLink="false">http://localhost/ticket/1177</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>fccoelho</dc:creator>

                  <title>#1178: Local storage issue with ckanext-storage</title>
                  <description>&lt;p&gt;
I have followed the instruction for installation a configuration of ckanext-storage, but I am getting this error when I try to access the /storage/upload url:
&lt;/p&gt;
&lt;p&gt;
URL: &lt;a class="ext-link" href="http://ckan.emap.fgv.br/storage/upload"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.emap.fgv.br/storage/upload&lt;/a&gt;
Module weberror.errormiddleware:162 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;              &lt;span class="underline"&gt;traceback_supplement&lt;/span&gt; = Supplement, self, environ
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
sr_checker = &lt;a class="missing wiki"&gt;ResponseStartChecker?&lt;/a&gt;(start_response)
app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
app_iter = self.application(environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                                     self.cache_manager)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
environ[self.environ_key] = self.cache_manager
return self.app(environ, start_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:152 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return start_response(status, headers, exc_info)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _get_session(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.middleware:130 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  environ&lt;a class="missing wiki"&gt;SCRIPT_NAME?&lt;/a&gt; = environ&lt;a class="missing wiki"&gt;SCRIPT_NAME?&lt;/a&gt;[:-1]
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# Wrapped in try as in rare cases the attribute will be gone already
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:124 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  return &lt;a class="missing wiki"&gt;% paste.registry.restorer.get_request_id(environ)?&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:263 in resolve
&amp;lt;&amp;lt;          if self.log_debug:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
log.debug("Resolved URL to controller: %r", controller)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.find_controller(controller)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def find_controller(self, controller):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.find_controller(controller)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.config.environment:39 in find_controller
&amp;lt;&amp;lt;          # Check to see if its a dotted name
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if '.' in controller or ':' in controller:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
mycontroller = pkg_resources.&lt;a class="missing wiki"&gt;EntryPoint?&lt;/a&gt;.parse('x=%s' % controller).load(False)
self.controller_classes[controller] = mycontroller
return mycontroller
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
mycontroller = pkg_resources.&lt;a class="missing wiki"&gt;EntryPoint?&lt;/a&gt;.parse('x=%s' % controller).load(False)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pkg_resources:1954 in load
&amp;lt;&amp;lt;      def load(self, require=True, env=None, installer=None):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if require: self.require(env, installer)
entry = &lt;span class="underline"&gt;import&lt;/span&gt;(self.module_name, globals(),globals(), &lt;a class="missing wiki"&gt;__name__?&lt;/a&gt;)
for attr in self.attrs:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
entry = &lt;span class="underline"&gt;import&lt;/span&gt;(self.module_name, globals(),globals(), &lt;a class="missing wiki"&gt;__name__?&lt;/a&gt;)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ?:87 in &amp;lt;module&amp;gt;
&amp;lt;&amp;lt;  class StorageAPIController(&lt;a class="missing wiki"&gt;BaseController?&lt;/a&gt;):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
ofs = get_ofs()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
class StorageAPIController(&lt;a class="missing wiki"&gt;BaseController?&lt;/a&gt;):
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ?:88 in StorageAPIController
&amp;lt;&amp;lt;  class StorageAPIController(&lt;a class="missing wiki"&gt;BaseController?&lt;/a&gt;):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
ofs = get_ofs()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
@jsonpify
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
ofs = get_ofs()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ?:69 in get_ofs
&amp;lt;&amp;lt;              continue
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kw[k[4:]] = v
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
ofs = get_impl(storage_backend)(&lt;strong&gt;kw)
return ofs
&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
ofs = get_impl(storage_backend)(&lt;strong&gt;kw)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ofs.local.pairtreestore:26 in &lt;span class="underline"&gt;init&lt;/span&gt;
&amp;lt;&amp;lt;          self.hashing_type = hashing_type
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.shorty_length = shorty_length
self._open_store()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _open_store(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
self._open_store()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ofs.local.pairtreestore:30 in _open_store
&amp;lt;&amp;lt;      def _open_store(self):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if self.hashing_type:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self._store = &lt;a class="missing wiki"&gt;PairtreeStorageClient?&lt;/a&gt;(self.uri_base, self.storage_dir, shorty_length=self.shorty_length, hashing_type=self.hashing_type)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self._store = &lt;a class="missing wiki"&gt;PairtreeStorageClient?&lt;/a&gt;(self.uri_base, self.storage_dir, shorty_length=shorty_length)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
self._store = &lt;a class="missing wiki"&gt;PairtreeStorageClient?&lt;/a&gt;(self.uri_base, self.storage_dir, shorty_length=self.shorty_length, hashing_type=self.hashing_type)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pairtree.pairtree_client:91 in &lt;span class="underline"&gt;init&lt;/span&gt;
&amp;lt;&amp;lt;          self._decode = re.compile(r"\&lt;sup&gt;(..)", re.U)
&lt;/sup&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self._init_store()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def &lt;span class="underline"&gt;char2hex(self, m):
&lt;/span&gt;&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
self._init_store()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pairtree.pairtree_client:264 in _init_store
&amp;lt;&amp;lt;                      self.uri_base = prefix
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise NotAPairtreeStoreException
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if not os.path.isdir(self.store_dir):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise NotAPairtreeStoreException
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
NotAPairtreeStoreException:
CGI Variables
AUTH_TYPE         'cookie'
DOCUMENT_ROOT         '/etc/apache2/htdocs'
GATEWAY_INTERFACE         'CGI/1.1'
HTTP_ACCEPT         'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_CHARSET         'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING         'gzip, deflate'
HTTP_ACCEPT_LANGUAGE         'pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3'
HTTP_CONNECTION         'keep-alive'
HTTP_COOKIE         '&lt;span class="underline"&gt;utma=4669863.1260802706.1295364409.1306935693.1306960483.86; &lt;/span&gt;utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flaviouserid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flaviouserid_type:unicode"; ckan_user="flavio"; ckan_display_name="Fl\xc3\xa1vio Code\xc3\xa7o Coelho"; ckan_apikey="c139718d-918f-4a2b-b219-e33cb05cbe23"; &lt;span class="underline"&gt;utmc=4669863; hide_welcome_message=1'
HTTP_HOST         'ckan.emap.fgv.br'
HTTP_KEEP_ALIVE         '115'
HTTP_USER_AGENT         'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'
PATH_INFO         '/storage/upload'
PATH_TRANSLATED         '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py/storage/upload'
REMOTE_ADDR         '10.250.48.110'
REMOTE_PORT         '57426'
REMOTE_USER         u'flavio'
REMOTE_USER_DATA         'userid_type:unicode'
REMOTE_USER_TOKENS         [&lt;em&gt;]
REQUEST_METHOD         'GET'
REQUEST_URI         '/storage/upload'
SCRIPT_FILENAME         '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py'
SERVER_ADDR         '10.252.2.60'
SERVER_ADMIN         '[no address given]'
SERVER_NAME         'ckan.emap.fgv.br'
SERVER_PORT         '80'
SERVER_PROTOCOL         'HTTP/1.1'
SERVER_SIGNATURE         '&amp;lt;address&amp;gt;Apache/2.2.16 (Debian) Server at ckan.emap.fgv.br Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE         'Apache/2.2.16 (Debian)'
WSGI Variables
application         &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0x7fc2999a6cd0&amp;gt;
beaker.cache         &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0x7fc2999a6d90&amp;gt;
beaker.get_session         &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0x7fc2999a6d10&amp;gt;&amp;gt;
beaker.session         {'locale': u'pt_BR', '_accessed_time': 1307373458.4790759, '_creation_time': 1302605470.0245121}
mod_wsgi.application_group         'dck093|'
mod_wsgi.callable_object         'application'
mod_wsgi.handler_script         &lt;/em&gt;
mod_wsgi.input_chunked         '0'
mod_wsgi.listener_host         &lt;em&gt;
mod_wsgi.listener_port         '80'
mod_wsgi.process_group         'ckan'
mod_wsgi.request_handler         'wsgi-script'
mod_wsgi.script_reloading         '1'
mod_wsgi.version         (3, 3)
paste.cookies         (&amp;lt;SimpleCookie: SESS61faf7f7d2406929b2f9eb4cbfff17d2='a3306f5d1194cf0d8a51dbf7b42c1259' __utma='4669863.1260802706.1295364409.1306935693.1306960483.86' __utmc='4669863' __utmz='4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode' ckan='d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06' ckan_apikey='c139718d-918f-4a2b-b219-e33cb05cbe23' ckan_display_name='Fl\xc3\xa1vio Code\xc3\xa7o Coelho' ckan_user='flavio' hide_welcome_message='1'&amp;gt;, '&lt;/em&gt;&lt;/span&gt;&lt;em&gt;utma=4669863.1260802706.1295364409.1306935693.1306960483.86; &lt;span class="underline"&gt;utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid _type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221fla...lcome_message=1')
paste.registry         &amp;lt;paste.registry.Registry object at 0x7fc299de4f50&amp;gt;
paste.throw_errors         True
pylons.environ_config         {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons         &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0x7fc299e27d50&amp;gt;
pylons.routes_dict         {'action': u'index', 'controller': u'ckanext.storage.controller:StorageController'}
repoze.who.identity         &amp;lt;repoze.who identity (hidden, dict-like) at 140473773131872&amp;gt;
repoze.who.logger         &amp;lt;logging.Logger instance at 0x7fc2999a3b48&amp;gt;
repoze.who.plugins         {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 140473779397008&amp;gt;, 'friendlyform': &amp;lt;&lt;a class="missing wiki"&gt;FriendlyFormPlugin?&lt;/a&gt; 140473777417040&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.&lt;a class="missing wiki"&gt;UsernamePasswordAuthenticator?&lt;/a&gt; object at 0x7fc299b93a50&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 140473779397136&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7fc299b934d0&amp;gt;}
routes.route         &amp;lt;routes.route.Route object at 0x7fc299864090&amp;gt;
routes.url         &amp;lt;routes.util.URLGenerator object at 0x7fc299e27ed0&amp;gt;
webob._parsed_query_vars         (GET([]), &lt;/span&gt;&lt;/em&gt;&lt;span class="underline"&gt;)
webob.adhoc_attrs         {'language': 'en-us'}
wsgi process         'Multi process AND threads (?)'
wsgi.file_wrapper         &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7fc299dae4e0&amp;gt;
wsgi.version         (1, 1)
wsgiorg.routing_args         (&amp;lt;routes.util.URLGenerator object at 0x7fc299e27ed0&amp;gt;, {'action': u'index', 'controller': u'ckanext.storage.controller:StorageController'})
Reply
Reply to all
Forward
Reply to all
paste@localhost to fccoelho
show details 10:17 (2 hours ago)
&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Show quoted text -
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
CGI Variables
AUTH_TYPE         'cookie'
DOCUMENT_ROOT         '/etc/apache2/htdocs'
GATEWAY_INTERFACE         'CGI/1.1'
HTTP_ACCEPT         'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_CHARSET         'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING         'gzip, deflate'
HTTP_ACCEPT_LANGUAGE         'pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3'
HTTP_CONNECTION         'keep-alive'
HTTP_COOKIE         '&lt;span class="underline"&gt;utma=4669863.1260802706.1295364409.1306935693.1306960483.86; &lt;/span&gt;utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flaviouserid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flaviouserid_type:unicode"; ckan_user="flavio"; ckan_display_name="Fl\xc3\xa1vio Code\xc3\xa7o Coelho"; ckan_apikey="c139718d-918f-4a2b-b219-e33cb05cbe23"; &lt;span class="underline"&gt;utmc=4669863; hide_welcome_message=1'
HTTP_HOST         'ckan.emap.fgv.br'
HTTP_KEEP_ALIVE         '115'
HTTP_USER_AGENT         'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'
PATH_INFO         '/storage/upload'
PATH_TRANSLATED         '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py/storage/upload'
REMOTE_ADDR         '10.250.48.110'
REMOTE_PORT         '57429'
REMOTE_USER         u'flavio'
REMOTE_USER_DATA         'userid_type:unicode'
REMOTE_USER_TOKENS         [&lt;em&gt;]
REQUEST_METHOD         'GET'
REQUEST_URI         '/storage/upload'
SCRIPT_FILENAME         '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py'
SERVER_ADDR         '10.252.2.60'
SERVER_ADMIN         '[no address given]'
SERVER_NAME         'ckan.emap.fgv.br'
SERVER_PORT         '80'
SERVER_PROTOCOL         'HTTP/1.1'
SERVER_SIGNATURE         '&amp;lt;address&amp;gt;Apache/2.2.16 (Debian) Server at ckan.emap.fgv.br Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE         'Apache/2.2.16 (Debian)'
WSGI Variables
application         &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0x7fc2999a6cd0&amp;gt;
beaker.cache         &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0x7fc2999a6d90&amp;gt;
beaker.get_session         &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0x7fc2999a6d10&amp;gt;&amp;gt;
beaker.session         {'locale': u'pt_BR', '_accessed_time': 1307373466.085686, '_creation_time': 1302605470.0245121}
mod_wsgi.application_group         'dck093|'
mod_wsgi.callable_object         'application'
mod_wsgi.handler_script         &lt;/em&gt;
mod_wsgi.input_chunked         '0'
mod_wsgi.listener_host         &lt;em&gt;
mod_wsgi.listener_port         '80'
mod_wsgi.process_group         'ckan'
mod_wsgi.request_handler         'wsgi-script'
mod_wsgi.script_reloading         '1'
mod_wsgi.version         (3, 3)
paste.cookies         (&amp;lt;SimpleCookie: SESS61faf7f7d2406929b2f9eb4cbfff17d2='a3306f5d1194cf0d8a51dbf7b42c1259' __utma='4669863.1260802706.1295364409.1306935693.1306960483.86' __utmc='4669863' __utmz='4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode' ckan='d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06' ckan_apikey='c139718d-918f-4a2b-b219-e33cb05cbe23' ckan_display_name='Fl\xc3\xa1vio Code\xc3\xa7o Coelho' ckan_user='flavio' hide_welcome_message='1'&amp;gt;, '&lt;/em&gt;&lt;/span&gt;&lt;em&gt;utma=4669863.1260802706.1295364409.1306935693.1306960483.86; &lt;span class="underline"&gt;utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid _type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221fla...lcome_message=1')
paste.registry         &amp;lt;paste.registry.Registry object at 0x7fc29a9da850&amp;gt;
paste.throw_errors         True
pylons.environ_config         {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons         &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0x7fc29a9ef950&amp;gt;
pylons.routes_dict         {'action': u'index', 'controller': u'ckanext.storage.controller:StorageController'}
repoze.who.identity         &amp;lt;repoze.who identity (hidden, dict-like) at 140473790084352&amp;gt;
repoze.who.logger         &amp;lt;logging.Logger instance at 0x7fc2999a3b48&amp;gt;
repoze.who.plugins         {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 140473779397008&amp;gt;, 'friendlyform': &amp;lt;&lt;a class="missing wiki"&gt;FriendlyFormPlugin?&lt;/a&gt; 140473777417040&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.&lt;a class="missing wiki"&gt;UsernamePasswordAuthenticator?&lt;/a&gt; object at 0x7fc299b93a50&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 140473779397136&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7fc299b934d0&amp;gt;}
routes.route         &amp;lt;routes.route.Route object at 0x7fc299864090&amp;gt;
routes.url         &amp;lt;routes.util.URLGenerator object at 0x7fc29a9efcd0&amp;gt;
webob._parsed_query_vars         (GET([]), &lt;/span&gt;&lt;/em&gt;&lt;span class="underline"&gt;)
webob.adhoc_attrs         {'language': 'en-us'}
wsgi process         'Multi process AND threads (?)'
wsgi.file_wrapper         &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7fc29a9d7d50&amp;gt;
wsgi.version         (1, 1)
wsgiorg.routing_args         (&amp;lt;routes.util.URLGenerator object at 0x7fc29a9efcd0&amp;gt;, {'action': u'index', 'controller': u'ckanext.storage.controller:StorageController'})
&lt;/span&gt;&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1178</link>
        <guid isPermaLink="false">http://localhost/ticket/1178</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1179: Support tag aliases</title>
                  <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>
        <link>http://localhost/ticket/1179</link>
        <guid isPermaLink="false">http://localhost/ticket/1179</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1180: Links in markdown can be badly formed</title>
                  <description>&lt;p&gt;
User can insert bad anchor tags into the User-About and Package-Notes fields and when you view them (web interface) it causes a 500 error.
&lt;/p&gt;
&lt;p&gt;
Need to improve filtering for anchors in markdown.
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;a href="http://xxxsex.com&amp;gt;nasty/website
&lt;/pre&gt;&lt;p&gt;
Also check this related exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.user:59 in read
&amp;lt;&amp;lt;          c.is_myself = user.name == c.user
               c.api_key = user.apikey
               c.about_formatted = self._format_about(user.about)
               revisions_q = model.Session.query(model.Revision
                       ).filter_by(author=user.name)
&amp;gt;&amp;gt;  c.about_formatted = self._format_about(user.about)
Module ckan.controllers.user:167 in _format_about
&amp;lt;&amp;lt;      def _format_about(self, about):
               about_formatted = ckan.misc.MarkdownFormat().to_html(about)
               return genshi.HTML(about_formatted)
           def _get_form_password(self):
&amp;gt;&amp;gt;  return genshi.HTML(about_formatted)
WebApp Error: &amp;lt;class 'genshi.input.ParseError'&amp;gt;: junk characters in start tag: u'\u201dhttp://www.settingu': line 1, column 3
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1180</link>
        <guid isPermaLink="false">http://localhost/ticket/1180</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1181: Link spam vulnerability in Notes and User-About fields</title>
                  <description>&lt;p&gt;
When viewing a user and a package, the about/notes fields contain Markdown, which may have links. These should have rel="nofollow" to discourage link spam.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1181</link>
        <guid isPermaLink="false">http://localhost/ticket/1181</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1182: Comments from deleted packages appear in "Recent Comments" feed</title>
                  <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>
        <link>http://localhost/ticket/1182</link>
        <guid isPermaLink="false">http://localhost/ticket/1182</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nickstenning</dc:creator>

                  <title>#1183: Downloads "Preview" button doesn't preview.</title>
                  <description>&lt;p&gt;
The "Preview" button is a nice idea, but it doesn't seem to actually "preview" anything if the file MIME type would ordinarily cause the browser to download the file. If so, the browser does indeed just download the file.
&lt;/p&gt;
&lt;p&gt;
This is notable in the context of most hosted file services (including Google Storage) which will deliberately serve a MIME type of &lt;tt&gt;application/x-some-junk-here&lt;/tt&gt; in order to force a download.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1183</link>
        <guid isPermaLink="false">http://localhost/ticket/1183</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1184: Support Wuala as CKAN storage option</title>
                  <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>
        <link>http://localhost/ticket/1184</link>
        <guid isPermaLink="false">http://localhost/ticket/1184</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1185: Administrators can't delete packages from web UI</title>
                  <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>
        <link>http://localhost/ticket/1185</link>
        <guid isPermaLink="false">http://localhost/ticket/1185</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1186: Password reset facility</title>
                  <description>&lt;p&gt;
You can register a user with password and (optional) email address. But if you forget the password you can't then log in again. We need a password reset facility that sends and email with a new password.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1186</link>
        <guid isPermaLink="false">http://localhost/ticket/1186</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1187: Stop spam users with links in the 'about' field</title>
                  <description>&lt;p&gt;
When you edit a user, you should be stopped from putting links in the 'about' field, because this is a common tactic by spammers.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1187</link>
        <guid isPermaLink="false">http://localhost/ticket/1187</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nickstenning</dc:creator>

                  <title>#1188: Allow diffing against initial (blank) package version</title>
                  <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>
        <link>http://localhost/ticket/1188</link>
        <guid isPermaLink="false">http://localhost/ticket/1188</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1189: Spideroak support in CKAN Storage</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://spideroak.com"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Spideroak&lt;/a&gt; is a bulk storage platform by a company that releases quite a lot of &lt;a class="ext-link" href="https://spideroak.com/code"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;free software&lt;/a&gt;, has an extensive &lt;a class="ext-link" href="https://spideroak.com/diy/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;developer API&lt;/a&gt; with pricing of $10/100GB/month.
&lt;/p&gt;
&lt;p&gt;
The data store is optimised for bulk data storage and retrieval. This is the kind of use case that CKAN packages require. We don't need low latency. We are after low cost, high reliability solution.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1189</link>
        <guid isPermaLink="false">http://localhost/ticket/1189</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1190: [super] CREP 0004 Data API and Data Processing System</title>
                  <description>&lt;p&gt;
For some time (e.g. 1y+!) we have known that we want to integrate some kind of datastore / data processing system with CKAN. We've had a CREP in progress on this for some months (may copy that here at some point):
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://wiki.ckan.org/CEP0004"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/CEP0004&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We can distinguish 3 modules that are needed:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;"Webstore": A datastore with dataapi - &lt;a class="closed ticket" href="http://localhost/ticket/1208" title="enhancement: Webstore: a datastore with web API (closed: fixed)"&gt;#1208&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Suggestion is this would be sqlite based with a simple sql based API. &lt;a class="ext-link" href="http://ckan.net/api/data/{user|org}/{datastore_name}?q={some-read-sql-query"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/data/{user|org}/{datastore_name}?q={some-read-sql-query&lt;/a&gt;}
&lt;/p&gt;
&lt;ol start="2"&gt;&lt;li&gt;Automated conversion of suitable resources into datastore upon resource creation so that e.g. they are accessible via the API. &lt;a class="closed ticket" href="http://localhost/ticket/1398" title="enhancement: Automated conversion of resource data into webstore (closed: fixed)"&gt;#1398&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;A data processing system which utilizes this datastore. One could
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
get a long way with simple javascript running in the browser for development with this javascript then run offline using something like nodejs. Alternatively one could allow one to specify a url to e.g. a python file which would then be run in a sandbox (with access to some specified set of python modules) - &lt;a class="new ticket" href="http://localhost/ticket/1432" title="enhancement: [super] Data processing system for CKAN and Webstore (new)"&gt;#1432&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="Moreinfo"&gt;More info&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Overview diagram: &lt;a class="ext-link" href="https://docs.google.com/drawings/d/1XK7dcpFXNlMzVFgLPYPZUXOsFRPzgCEvS-w7FcvydEQ/edit?hl=en_GB"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://docs.google.com/drawings/d/1XK7dcpFXNlMzVFgLPYPZUXOsFRPzgCEvS-w7FcvydEQ/edit?hl=en_GB&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1190</link>
        <guid isPermaLink="false">http://localhost/ticket/1190</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1191: Unicode in user password gives 500 error on user registration</title>
                  <description>&lt;p&gt;
Create/register a user with a unicode character in the password. It creates the user, but the redirect to the user page doesn't work and results in 500 error.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1191</link>
        <guid isPermaLink="false">http://localhost/ticket/1191</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>annapowellsmith</dc:creator>

                  <title>#1192: Convert CKAN Sphinx docs into admin/reference manual</title>
                  <description>&lt;p&gt;
As part of the general documentation overhaul (&lt;a class="closed ticket" href="http://localhost/ticket/1142" title="enhancement: [super] Major Overhaul and Extension of CKAN Documentation (closed: fixed)"&gt;ticket:1142&lt;/a&gt;) we (APS and RGRP) want to convert the current Sphinx docs into:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;An Admin Manual which is task-based and aims to cover everything a developer would need to know to set up and customize a CKAN install.
&lt;/li&gt;&lt;li&gt;A Reference Manual which is the primary source of reference for CKAN software - this includes API docs.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The current chapters of the Sphinx docs should be moved as follows:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;index.rst - copy some stuff from README.txt, keep short
&lt;/li&gt;&lt;li&gt;README.txt - split out installation - stop symlinking in, keep separate, write new intro in index.rst
&lt;/li&gt;&lt;li&gt;[NEW] install.rst - new file on installation
&lt;/li&gt;&lt;li&gt;[NEW] theming.rst - move over from wiki
&lt;/li&gt;&lt;li&gt;api - will stay (gradually move tutorials/getting started to wiki.ckan.net user guide)
&lt;/li&gt;&lt;li&gt;i18n.rst: internationlization. say we have x langauges. just set lang config option. if your lang not there yet see wiki page for how to prepare a translation file
&lt;/li&gt;&lt;li&gt;design.rst - REMOVE (can copy some over if you can be bothered to &lt;a class="ext-link" href="http://wiki.ckan.net/Vision"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Vision&lt;/a&gt; (all philosophical stuff should go!))
&lt;/li&gt;&lt;li&gt;loaders.rst: move to wiki.ckan.net/Using_Loaders
&lt;/li&gt;&lt;li&gt;feeds.rst: move to User Manual (CKAN_Feeds or just Feeds)
&lt;/li&gt;&lt;li&gt;importer.rst: remove (don't even copy)
&lt;/li&gt;&lt;li&gt;forms.rst: remove (ping david read and ckan-dev asking for replacement documentation -- do we need this in core ckan -- do we want pure js ...?). Suggest we start with (stub out) &lt;a class="ext-link" href="http://wiki.ckan.net/Customizing_Forms"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Customizing_Forms&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;forms-integration.rst: remove
&lt;/li&gt;&lt;li&gt;model.rst: leave but move to reference (only for core devs)
&lt;/li&gt;&lt;li&gt;load-testing.rst -&amp;gt; move to &lt;a class="ext-link" href="http://wiki.ckan.net/Load_Testing"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Load_Testing&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;distributed.rst -&amp;gt; remove
&lt;/li&gt;&lt;li&gt;admin.html should consolidate with authorization.html (some of authorization.html is probably in ref section but howto in main manual) &amp;lt;-- high priority
&lt;/li&gt;&lt;li&gt;deb.html -&amp;gt; go into reference (query james gardner on list about moving this to wiki?)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1192</link>
        <guid isPermaLink="false">http://localhost/ticket/1192</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1193: bug with new formalchemy causing all resouces to be deleted</title>
                  <description>&lt;p&gt;
The new formalchemy stores dict in a new format.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1193</link>
        <guid isPermaLink="false">http://localhost/ticket/1193</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1194: "Welcome back" message for newly registered user</title>
                  <description>&lt;ol&gt;&lt;li&gt;Register a new user (/user/register)
&lt;/li&gt;&lt;li&gt;It redirects you to user page and displays "Welcome back" even though you are a new user.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1194</link>
        <guid isPermaLink="false">http://localhost/ticket/1194</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1195: Storage extension to handle incorrect routes better</title>
                  <description>&lt;p&gt;
We've seen exceptions caused by people getting the file storage link wrong, adding a slash to the end.
&lt;/p&gt;
&lt;p&gt;
e.g.
&lt;a class="ext-link" href="http://ckan.net/storage/f/file/e696d857-e997-41c8-be08-408697168ca8/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/storage/f/file/e696d857-e997-41c8-be08-408697168ca8/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We should aim to handle all requests better than causing exception. 404 (or even 302 in this case) is better than 500.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1195</link>
        <guid isPermaLink="false">http://localhost/ticket/1195</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1196: Markdown logging ignores config settings</title>
                  <description>&lt;p&gt;
Markdown produces Debug logging, even when the pylons logging config is set to level of Info or Warning. This clogs up the logfile.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1196</link>
        <guid isPermaLink="false">http://localhost/ticket/1196</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1197: Add JavaScript guide for CKAN</title>
                  <description>&lt;p&gt;
A new library, &lt;a class="ext-link" href="http://blog.optimizely.com/introducing-guidersjs-an-open-source-guider-e"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;guiders.js&lt;/a&gt;, has been open sourced that seems to be great at unobtrusively introducing new users to features of websites.
&lt;/p&gt;
&lt;p&gt;
The library drives Optimizely's website. The GitHub repo is here: &lt;a class="ext-link" href="https://github.com/jeff-optimizely/Guiders-JS"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/jeff-optimizely/Guiders-JS&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Some examples:
&lt;/p&gt;
&lt;p&gt;
&lt;a style="padding:0; border:none" href="http://posterous.com/getfile/files.posterous.com/temp-2011-06-22/BnlgHDvhjpFfqbwvprsIaklqrpdgJyebfuhxajbDhmvnFgzdzzCJdvluJFki/Screen_shot_2011-06-22_at_6.42.21_PM.png.scaled500.png"&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/temp-2011-06-22/BnlgHDvhjpFfqbwvprsIaklqrpdgJyebfuhxajbDhmvnFgzdzzCJdvluJFki/Screen_shot_2011-06-22_at_6.42.21_PM.png.scaled500.png" alt="http://posterous.com/getfile/files.posterous.com/temp-2011-06-22/BnlgHDvhjpFfqbwvprsIaklqrpdgJyebfuhxajbDhmvnFgzdzzCJdvluJFki/Screen_shot_2011-06-22_at_6.42.21_PM.png.scaled500.png" title="http://posterous.com/getfile/files.posterous.com/temp-2011-06-22/BnlgHDvhjpFfqbwvprsIaklqrpdgJyebfuhxajbDhmvnFgzdzzCJdvluJFki/Screen_shot_2011-06-22_at_6.42.21_PM.png.scaled500.png" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a style="padding:0; border:none" href="http://s3.amazonaws.com/files.posterous.com/temp-2011-06-22/CpvlcinkrxhtnAHfGtEHhxyGkraqlFmCjcnztFuugagBGxmBjCdwuquHpvEB/promo_gmail.png?AWSAccessKeyId=AKIAJFZAE65UYRT34AOQ&amp;amp;Expires=1308801019&amp;amp;Signature=DJWDgj7fmyq7K3ve177H7DPwKdw%3D"&gt;&lt;img src="http://s3.amazonaws.com/files.posterous.com/temp-2011-06-22/CpvlcinkrxhtnAHfGtEHhxyGkraqlFmCjcnztFuugagBGxmBjCdwuquHpvEB/promo_gmail.png?AWSAccessKeyId=AKIAJFZAE65UYRT34AOQ&amp;amp;Expires=1308801019&amp;amp;Signature=DJWDgj7fmyq7K3ve177H7DPwKdw%3D" alt="http://s3.amazonaws.com/files.posterous.com/temp-2011-06-22/CpvlcinkrxhtnAHfGtEHhxyGkraqlFmCjcnztFuugagBGxmBjCdwuquHpvEB/promo_gmail.png" title="http://s3.amazonaws.com/files.posterous.com/temp-2011-06-22/CpvlcinkrxhtnAHfGtEHhxyGkraqlFmCjcnztFuugagBGxmBjCdwuquHpvEB/promo_gmail.png" /&gt;&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1197</link>
        <guid isPermaLink="false">http://localhost/ticket/1197</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1198: Publisher hierarchy</title>
                  <description>&lt;p&gt;
'Publisher' entities in the model. They are hierarchical.
&lt;/p&gt;
&lt;p&gt;
'User-Publisher' connections with one or more roles (e.g. drafter, moderator).
&lt;/p&gt;
&lt;p&gt;
Authorization settings can control who can set what values in a 'published by' type field.
&lt;/p&gt;
&lt;p&gt;
Publishers and User-Publishers available to read in the API.
&lt;/p&gt;
&lt;p&gt;
Future tickets will provide:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;API to write Publishers and User-Publishers
&lt;/li&gt;&lt;li&gt;UI to edit Publishers and User-Publishers
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
(This feature deprecates authorization groups)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1198</link>
        <guid isPermaLink="false">http://localhost/ticket/1198</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1199: Implement an email function for users.</title>
                  <description>&lt;p&gt;
We need an email function in CKAN to accept messages sent to users. The basic signature will be:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;mail_user(user_obj, subject, body, mime_type='text/plain', headers={})
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This has a number of use cases:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Retrieval of lost passwords
&lt;/li&gt;&lt;li&gt;E-Mail confirmation
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Finally, the mail function should be exposed in the API for sysadmin clients. This way we can have scripts traverse CKAN for 404s, invalid data or missing fields and ping users about that automatically (requires traversal by revision, not package, to get the associated users).
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
Note we have already written code like this (*and* tested it) in isitopen:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://bitbucket.org/okfn/isitopen/src/bb2cbd146fa5/isitopen/lib/mailer.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/isitopen/src/bb2cbd146fa5/isitopen/lib/mailer.py&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="https://bitbucket.org/okfn/isitopen/src/bb2cbd146fa5/isitopen/tests/lib/test_mailer.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/isitopen/src/bb2cbd146fa5/isitopen/tests/lib/test_mailer.py&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1199</link>
        <guid isPermaLink="false">http://localhost/ticket/1199</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1200: Port PDEU theme to CKAN.net</title>
                  <description>&lt;p&gt;
PDEU has a newer layout which could be adapted to also be used on ckan.net. For this, things should be cleaned up, copied to the ckanext-ckan.net repo as needed and re-colored the core CKAN color scheme.
&lt;/p&gt;
&lt;p&gt;
Maybe we could have this coincide with a CKAN rename?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1200</link>
        <guid isPermaLink="false">http://localhost/ticket/1200</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1201: seperate out logic in atom feeds to logic layer.</title>
                  <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>
        <link>http://localhost/ticket/1201</link>
        <guid isPermaLink="false">http://localhost/ticket/1201</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rolf</dc:creator>

                  <title>#1202: Links to datapkg utility don't lead to info about it</title>
                  <description>&lt;p&gt;
In the presentation of data packages, the link in "The information on this page and the downloads / resources are also available using the datapkg command line utility." (&lt;a class="ext-link" href="http://knowledgeforge.net/ckan/doc/datapkg/install.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/ckan/doc/datapkg/install.html&lt;/a&gt;) ends up at the home page of ckan.org
&lt;/p&gt;
&lt;p&gt;
Perhaps link it to &lt;a class="ext-link" href="https://bitbucket.org/okfn/datapkg/overview"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/datapkg/overview&lt;/a&gt; for now, to save some searching for people who want to find out more?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1202</link>
        <guid isPermaLink="false">http://localhost/ticket/1202</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rolf</dc:creator>

                  <title>#1203: Moderated edits: html code shows as "changed" although it is not</title>
                  <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>
        <link>http://localhost/ticket/1203</link>
        <guid isPermaLink="false">http://localhost/ticket/1203</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1204: renaming packages seems to result in a server error</title>
                  <description>&lt;p&gt;
When renaming a package, and doing other changes at the same time an error is reported. However, the changes seem to go through fine.
&lt;/p&gt;
&lt;p&gt;
ENV:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;datacatalogs.org as of 29 June 2011
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1204</link>
        <guid isPermaLink="false">http://localhost/ticket/1204</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1205: db upgrade problem on cz.ckan.net</title>
                  <description>&lt;p&gt;
When upgrading database for cz.ckan.net (psql.okfn.org/cz.okfn.org) an error occurred (see below).
&lt;/p&gt;
&lt;p&gt;
cz.ckan.net has been running on eu3 and this updrade was part of moving it to eu19, with a more recent version of ckan.
&lt;/p&gt;
&lt;p&gt;
In the meantime I've reverted the db to the old version (pre-upgrade).
&lt;/p&gt;
&lt;p&gt;
cz.ckan.net is not working properly until this is fixed.
&lt;/p&gt;
&lt;pre class="wiki"&gt;okfn@eu19:~$ paster --plugin ckan db upgrade --config=/etc/ckan/cz/cz.ini
/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/url.py:105: SADeprecationWarning: The SQLAlchemy PostgreSQL dialect has been renamed from 'postgres' to 'postgresql'. The new URL format is postgresql[+driver]://&amp;lt;user&amp;gt;:&amp;lt;pass&amp;gt;@&amp;lt;host&amp;gt;/&amp;lt;dbname&amp;gt;
  module = __import__('sqlalchemy.dialects.%s' % (dialect, )).dialects
2011-06-29 09:07:41,294 INFO  [migrate.versioning.api] 28 -&amp;gt; 29...
/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/reflection.py:46: SAWarning: Skipped unsupported reflection of expression-based index idx_pkg_lname
  ret = fn(self, con, *args, **kw)
/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/reflection.py:46: SAWarning: Skipped unsupported reflection of expression-based index idx_pkg_slname
  ret = fn(self, con, *args, **kw)
/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/reflection.py:46: SAWarning: Skipped unsupported reflection of expression-based index idx_pkg_suname
  ret = fn(self, con, *args, **kw)
/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/reflection.py:46: SAWarning: Skipped unsupported reflection of expression-based index idx_pkg_uname
  ret = fn(self, con, *args, **kw)
Traceback (most recent call last):
  File "/usr/bin/paster", line 18, in &amp;lt;module&amp;gt;
    command.run()
  File "/usr/lib/pymodules/python2.6/paste/script/command.py", line 84, in run
    invoke(command, command_name, options, args[1:])
  File "/usr/lib/pymodules/python2.6/paste/script/command.py", line 123, in invoke
    exit_code = runner.run(args)
  File "/usr/lib/pymodules/python2.6/paste/script/command.py", line 218, in run
    result = self.command()
  File "/usr/lib/pymodules/python2.6/ckan/lib/cli.py", line 84, in command
    model.repo.upgrade_db()
  File "/usr/lib/pymodules/python2.6/ckan/model/__init__.py", line 163, in upgrade_db
    mig.upgrade(self.metadata.bind, self.migrate_repository, version=version)
  File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/api.py", line 185, in upgrade
    return _migrate(url, repository, version, upgrade=True, err=err, **opts)
  File "&amp;lt;string&amp;gt;", line 2, in _migrate
  File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/util/__init__.py", line 160, in with_engine
    return f(*a, **kw)
  File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/api.py", line 364, in _migrate
    schema.runchange(ver, change, changeset.step)
  File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/schema.py", line 83, in runchange
    change.run(self.engine, step)
  File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/script/py.py", line 140, in run
    script_func(engine)
  File "/usr/lib/pymodules/python2.6/ckan/migration/versions/029_version_groups.py", line 152, in upgrade
    migrate_engine.execute(q)
  File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1788, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1191, in execute
    params)
  File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1271, in _execute_clauseelement
    return self.__execute_context(context)
  File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1302, in __execute_context
    context.parameters[0], context=context)
  File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1401, in _cursor_execute
    context)
  File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1394, in _cursor_execute
    context)
  File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/default.py", line 299, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (IntegrityError) insert or update on table "package_group_revision" violates foreign key constraint "package_group_revision_continuity_id_fkey"
DETAIL:  Key (continuity_id)=(7f373978-40a0-4848-bdc9-018ad213aa0b) is not present in table "package_group".
 'INSERT INTO package_group_revision (id, package_id, group_id, state, revision_id, continuity_id) VALUES (%(id)s, %(package_id)s, %(group_id)s, %(state)s, %(revision_id)s, %(continuity_id)s)' {'state': u'active', 'package_id': u'14d76e9e-028c-49c1-955b-ef30d4abb970', 'continuity_id': u'7f373978-40a0-4848-bdc9-018ad213aa0b', 'revision_id': u'24a11f58-2ff9-46f3-b113-0bf7f0baf254', 'group_id': u'4b832199-b8e3-4989-9b5d-de8dd6322612', 'id': u'7a3863bd-3054-40c8-bb3d-68b73096c108'}
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1205</link>
        <guid isPermaLink="false">http://localhost/ticket/1205</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1206: "Content-Type json" header scuppers package POST</title>
                  <description>&lt;p&gt;
Compare these two requests to create a package:
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl http://test.ckan.net/api/rest/package -d '{name:"test"}' -H 'Content-Type: application/json' -H 'X-CKAN-API-KEY: tester'
curl http://test.ckan.net/api/rest/package -d '{name:"test"}' -H 'X-CKAN-API-KEY: tester'
&lt;/pre&gt;&lt;p&gt;
The second one gets the payload through (ckan log):
&lt;/p&gt;
&lt;pre class="wiki"&gt;Retrieving request params: UnicodeMultiDict([('{name:"test"}', u'')])
&lt;/pre&gt;&lt;p&gt;
But the first one causes a &lt;a class="missing wiki"&gt;ServerError?&lt;/a&gt; because the payload (name:&amp;#34;test&amp;#34;) doesn't make it to request.POST or request.params:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Retrieving request params: UnicodeMultiDict([])
&lt;/pre&gt;&lt;p&gt;
The only difference is the "&lt;a class="missing wiki"&gt;ContentType?&lt;/a&gt;: application/json" header, which seems a reasonable thing to include. Javascript lib backbone.js (for example) inserts this automatically.
&lt;/p&gt;
&lt;p&gt;
So why does this header cause the payload to not get through to the request object?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1206</link>
        <guid isPermaLink="false">http://localhost/ticket/1206</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1207: ckanclient.package_entity_get should raise more specific exception</title>
                  <description>&lt;p&gt;
When package does not exist in ckan catalogue, ckanclient.package_entity_get should raise more specific exception, such as &lt;a class="missing wiki"&gt;CkanNotFoundError?&lt;/a&gt; instead of generic &lt;a class="missing wiki"&gt;CkanApiError?&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1207</link>
        <guid isPermaLink="false">http://localhost/ticket/1207</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1208: Webstore: a datastore with web API</title>
                  <description>&lt;ul&gt;&lt;li&gt;SQLite based
&lt;/li&gt;&lt;li&gt;Use Cyclone for async http server on top with auth
&lt;/li&gt;&lt;li&gt;Designed to not be specific to CKAN or anything else
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Current code is here: &lt;a class="ext-link" href="https://github.com/okfn/webstore"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/webstore&lt;/a&gt;.
&lt;/p&gt;
&lt;h2 id="APISpec"&gt;API Spec&lt;/h2&gt;
&lt;h4 id="Read"&gt;Read&lt;/h4&gt;
&lt;p&gt;
Two basic ways to query::
&lt;/p&gt;
&lt;pre class="wiki"&gt;    GET: /{owner}/{db-name}/?sql=...
    GET: /{owner}/{db-name}/?table=...&amp;amp;attr=value&amp;amp;attr=value&amp;amp;limit=...
&lt;/pre&gt;&lt;p&gt;
Returns::
&lt;/p&gt;
&lt;pre class="wiki"&gt;  {
      u'keys': [u'id', u'name'],
      u'data': [
          [1, u'jones'],
          [u'aaa', u'jones']
          ]
  }
&lt;/pre&gt;&lt;h4 id="Write"&gt;Write&lt;/h4&gt;
&lt;p&gt;
POST to::
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
/{owner/{database}/{table}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Payload is json data structured as follows::
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
{
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
unique_keys: [list of key attributes]
data: {dict of values}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="AuthenticationandAuthorization"&gt;Authentication and Authorization&lt;/h3&gt;
&lt;p&gt;
Authentication: use basic auth header.
&lt;/p&gt;
&lt;p&gt;
Authorization:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Default: all read, owner can write
&lt;/li&gt;&lt;li&gt;Restricted: owner can read and write, everyone can do nothing
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Possible future: config file can specify a python method (TODO: method
signature)
&lt;/p&gt;
&lt;h3 id="IntegrationwithOtherSystems"&gt;Integration with Other Systems&lt;/h3&gt;
&lt;p&gt;
TODO: Specify how to delegate authenatication to user database in some other system.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1208</link>
        <guid isPermaLink="false">http://localhost/ticket/1208</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1209: sort out rendering of formalchemy package preview</title>
                  <description>&lt;p&gt;
Got broken due to the moderated edits changes &lt;a class="closed ticket" href="http://localhost/ticket/1141" title="CREP: [super] Moderated Edits User Interface (closed: fixed)"&gt;#1141&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Need to make sure preview works.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1209</link>
        <guid isPermaLink="false">http://localhost/ticket/1209</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1210: POST application/json error handling with newer WebOb</title>
                  <description>&lt;p&gt;
&lt;a class="missing wiki"&gt;WebOb?&lt;/a&gt; from v1.0.7 has some interesting new behaviour with reading request data for different Content-Types:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;It seems that looking at request.body mangles request.POST. See fix in ckan cset:e83bad9caa1b (problem with &lt;a class="missing wiki"&gt;WebOb?&lt;/a&gt; v1.0.7 but may go back to v1.0.4?)
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;A particular request caused an &lt;a class="missing wiki"&gt;AssertionError?&lt;/a&gt; during looking at request.body, so we need to enclose this in a try/except. I couldn't recreate it in a test unfortunately (problem with &lt;a class="missing wiki"&gt;WebOb?&lt;/a&gt; v1.0.7 but may go back to v1.0.2?)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Example:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.api:206 in create
&amp;lt;&amp;lt;          log.debug('create: %s' % (context))
               try:
                   request_data = self._get_request_data()
               except ValueError, inst:
                   response.status_int = 400
&amp;gt;&amp;gt;  request_data = self._get_request_data()
Module ckan.lib.base:149 in _get_request_data
&amp;lt;&amp;lt;          cls.log.debug('Retrieving request params: %r' % request.params)
               cls.log.debug('Retrieving request POST: %r' % request.POST)
               cls.log.debug('Retrieving request POST body: %r' % request.body)
               if request.POST:
                   try:
&amp;gt;&amp;gt;  cls.log.debug('Retrieving request POST body: %r' % request.body)
Module paste.registry:137 in __getattr__
&amp;lt;&amp;lt;
           def __getattr__(self, attr):
               return getattr(self._current_obj(), attr)
           def __setattr__(self, attr, value):
&amp;gt;&amp;gt;  return getattr(self._current_obj(), attr)
Module webob.request:470 in _body__get
&amp;lt;&amp;lt;          Return the content of the request body.
               """
               self.make_body_seekable() # we need this to have content_length
               r = self.body_file.read(self.content_length)
               self.body_file.seek(0)
&amp;gt;&amp;gt;  self.make_body_seekable() # we need this to have content_length
Module webob.request:697 in make_body_seekable
&amp;lt;&amp;lt;              self.body_file_raw.seek(0)
               else:
                   self.copy_body()
&amp;gt;&amp;gt;  self.copy_body()
Module webob.request:714 in copy_body
&amp;lt;&amp;lt;                  self.body = self.body_file_raw.read(length)
               elif self.is_body_readable:
                   self.body = self.body_file_raw.read()
                   self._copy_body_tempfile()
               else:
&amp;gt;&amp;gt;  self.body = self.body_file_raw.read()
Module webob.request:1190 in read
&amp;lt;&amp;lt;      def read(self, size=-1):
               body = self._get_body()
               if size &amp;lt; 0:
                   v = body[self.position:]
&amp;gt;&amp;gt;  body = self._get_body()
Module webob.request:1207 in _get_body
&amp;lt;&amp;lt;                  self._body = _encode_multipart(self.vars, self.content_type)
                   else:
                       assert 0, ('Bad content type: %r' % self.content_type)
               return self._body
&amp;gt;&amp;gt;  assert 0, ('Bad content type: %r' % self.content_type)
AssertionError: Bad content type: '; charset=utf-8'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1210</link>
        <guid isPermaLink="false">http://localhost/ticket/1210</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1211: [super] Drupal integration</title>
                  <description>&lt;p&gt;
Sub-tasks / tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1335" title="enhancement: Action API - basic (closed: fixed)"&gt;#1335&lt;/a&gt; Action API - access to any logic layer function
&lt;/li&gt;&lt;li&gt;Standardize logic functions on ordering: (context, data_dict) and put parameters into data_dict.
&lt;/li&gt;&lt;li&gt;Add package_create_validate &amp;amp; package_update_validate logic functions
&lt;/li&gt;&lt;li&gt;Allow extensions to provide logic layer functions (IActions)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1211</link>
        <guid isPermaLink="false">http://localhost/ticket/1211</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1214: API improvements (following javascript use)</title>
                  <description>&lt;p&gt;
Notes on the CKAN API from Aron:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Server returns text/html for errors even when "Accept: application/json" header is set.
&lt;/li&gt;&lt;li&gt;DELETE package request requires a Content-Length? Should be 405 Method Not Allowed?
&lt;/li&gt;&lt;li&gt;Tag returned as a JSON object when updating but as a string when requesting. Same with "extras" content.
&lt;/li&gt;&lt;li&gt;How to remove key from "extras" object? Passing None as described in the docs is invalid JSON and using null doesn't work.
&lt;/li&gt;&lt;li&gt;Tags return package names rather than ids when querying GET /tag/{id}
&lt;/li&gt;&lt;li&gt;Doesn't return rendered_text property on package update.
&lt;/li&gt;&lt;li&gt;Relationships use "object" key rather than id or package_id.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1214</link>
        <guid isPermaLink="false">http://localhost/ticket/1214</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1215: Edit Resources table - removing all rows prevents adding them again</title>
                  <description>&lt;p&gt;
I'm not sure if this was reported earlier, but I have found a minor bug in the "Add new package" form. As far as I can see this bug exists in v1.3.2 and also in v1.4.1a (that runs on ckan.net). This is a problem with adding new resources in "Resources" section. To reproduce the bug do the following:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Go to "Add new package", for instance &lt;a class="ext-link" href="http://ckan.net/package/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/new&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Scroll down to "Resources" section.
&lt;/li&gt;&lt;li&gt;Click on "Remove this row" link (red circle).
&lt;/li&gt;&lt;li&gt;Say "Yes" to "Are you sure you wish to remove this row?"
&lt;/li&gt;&lt;li&gt;Now there should be no rows. Only the header "URL*   Format  Description"
&lt;/li&gt;&lt;li&gt;Click on "Add row to table"
&lt;/li&gt;&lt;li&gt;All you get now is another row with table header "URL*        Format Description". You will not be able to add any resources now. Solution is to reload the page.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
The simplest solution to this bug will be to hide the "Remove this
row" link if there is only one row.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1215</link>
        <guid isPermaLink="false">http://localhost/ticket/1215</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1217: Diff exception</title>
                  <description>&lt;p&gt;
Exception raised doing this particular diff.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://ckan.net/revision/diff/sudocfr?diff_entity=package&amp;amp;oldid=a18b2520-09e0-44be-80dd-4fea94ffe7d1&amp;amp;diff=3934ff16-a3a7-4481-b390-72944903b945"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/revision/diff/sudocfr?diff_entity=package&amp;amp;oldid=a18b2520-09e0-44be-80dd-4fea94ffe7d1&amp;amp;diff=3934ff16-a3a7-4481-b390-72944903b945&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;...
Module ckan.controllers.revision:142 in diff
&amp;lt;&amp;lt;          if c.diff_entity == 'package':
                   c.pkg = model.Package.by_name(id)
                   diff = c.pkg.diff(c.revision_to, c.revision_from)
               elif c.diff_entity == 'group':
                   c.group = model.Group.by_name(id)
&amp;gt;&amp;gt;  diff = c.pkg.diff(c.revision_to, c.revision_from)
Module ckan.model.package:449 in diff
&amp;lt;&amp;lt;                              display_id = to_obj_rev.tag.name
                               elif obj_class.__name__ == 'PackageExtra':
                                   display_id = to_obj_rev.key
                               else:
                                   display_id = related_obj_id[:4]
&amp;gt;&amp;gt;  display_id = to_obj_rev.key
AttributeError: 'NoneType' object has no attribute 'key'
&lt;/pre&gt;&lt;p&gt;
Seems to be to do with this particular extra key:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[&amp;lt;PackageExtraRevision id=ba1f3b3e-f61f-4924-bae0-ec3dd2163ae4 package_id=febe4da9-5874-4411-a7da-b497fdebf739 key=namespace value=http://www.sudoc.fr/ state=active revision_id=5ec8e730-c73d-4f1c-989b-2e015eb3d315 continuity_id=ba1f3b3e-f61f-4924-bae0-ec3dd2163ae4 expired_id=None revision_timestamp=2011-07-08 13:48:11.027260 expired_timestamp=9999-12-31 00:00:00 current=True&amp;gt;]
&lt;/pre&gt;&lt;p&gt;
Is it because it was created between the from_revision and to_revision?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1217</link>
        <guid isPermaLink="false">http://localhost/ticket/1217</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>minspamboks@…</dc:creator>

                  <title>#1218: Colour the History tab icon</title>
                  <description>&lt;p&gt;
Change the color of the "History" tab icon to yellowish, like the rest of the icons in the other tabs ("View" and "Edit", "Authorization").
&lt;/p&gt;
&lt;h2 id="Reasoning"&gt;Reasoning&lt;/h2&gt;
&lt;p&gt;
When you view a data package, for instance
&lt;a class="ext-link" href="http://ckan.net/package/thesaurus-w"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/thesaurus-w&lt;/a&gt;, you will see "View", "Edit",
"History" tabs on the top. "History" tab has a black-and-white icon
which makes it look like an inactive/disabled tab (since the text is
also grayed out when the tab is not selected). This is not a major
issue, but it is a little bit confusing for the users. This icon
exists in v1.3.2 and also in v1.4.1a (that runs on ckan.net).
&lt;/p&gt;
&lt;p&gt;
The simple solution would be to change the color of the "History" tab icon and give it the same yellowish color like the rest of the icons in the other tabs (e.g. "View" and "Edit").
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1218</link>
        <guid isPermaLink="false">http://localhost/ticket/1218</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1219: CSS issues on IE7</title>
                  <description>&lt;p&gt;
As reported on &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2011-July/001043.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;ckan-dev&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
items in the footer of CKAN ("Packages", "Groups &amp;amp; Tags", "About", "Language", etc.) are shown vertically instead of horizontally in IE7. This works fine in later browsers like IE8, IE9, FF4, and latest Opera and Chrome.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
This seems to exist in all recent CKAN versions up to 1.4.1a.
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/1219</link>
        <guid isPermaLink="false">http://localhost/ticket/1219</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1221: Password reset tidy up</title>
                  <description>&lt;ul&gt;&lt;li&gt;No tests.
&lt;/li&gt;&lt;li&gt;500 error given when user is not found.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1221</link>
        <guid isPermaLink="false">http://localhost/ticket/1221</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1222: Mailer has no tests</title>
                  <description></description>
        <link>http://localhost/ticket/1222</link>
        <guid isPermaLink="false">http://localhost/ticket/1222</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1223: Caching of static files</title>
                  <description>&lt;p&gt;
StaticURLParser can have caching - use it
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1223</link>
        <guid isPermaLink="false">http://localhost/ticket/1223</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1225: Tool for mass tag changes</title>
                  <description>&lt;p&gt;
Using ckanapi
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1225</link>
        <guid isPermaLink="false">http://localhost/ticket/1225</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1226: Genshi stream exception</title>
                  <description>&lt;p&gt;
&lt;a class="missing wiki"&gt;IndexError?&lt;/a&gt; exception in genshi.filters.i18n keeps popping up daily.
&lt;/p&gt;
&lt;p&gt;
e.g.
&lt;/p&gt;
&lt;pre class="wiki"&gt;...
Module ckan.controllers.authorization_group:28 in index
&amp;lt;&amp;lt;              items_per_page=20
               )
               return render('authorization_group/index.html')
           def read(self, id):
&amp;gt;&amp;gt;  return render('authorization_group/index.html')
Module ckan.lib.base:74 in render
&amp;lt;&amp;lt;
           return cached_template(template_name, render_template, cache_key=cache_key,
                                  cache_type=cache_type, cache_expire=cache_expire)
                                  #, ns_options=('method'), method=method)
&amp;gt;&amp;gt;  cache_type=cache_type, cache_expire=cache_expire)
Module pylons.templating:249 in cached_template
&amp;lt;&amp;lt;          return content
           else:
               return render_func()
&amp;gt;&amp;gt;  return render_func()
Module ckan.lib.base:63 in render_template
&amp;lt;&amp;lt;              stream = item.filter(stream)
               return literal(stream.render(method=method, encoding=None))
           if 'Pragma' in response.headers:
&amp;gt;&amp;gt;  return literal(stream.render(method=method, encoding=None))
Module genshi.core:183 in render
&amp;lt;&amp;lt;              method = self.serializer or 'xml'
               generator = self.serialize(method=method, **kwargs)
               return encode(generator, method=method, encoding=encoding, out=out)
           def select(self, path, namespaces=None, variables=None):
&amp;gt;&amp;gt;  return encode(generator, method=method, encoding=encoding, out=out)
Module genshi.output:57 in encode
&amp;lt;&amp;lt;          _encode = lambda string: string
           if out is None:
               return _encode(''.join(list(iterator)))
           for chunk in iterator:
               out.write(_encode(chunk))
&amp;gt;&amp;gt;  return _encode(''.join(list(iterator)))
Module genshi.output:339 in __call__
&amp;lt;&amp;lt;          for filter_ in self.filters:
                   stream = filter_(stream)
               for kind, data, pos in stream:
                   cached = cache_get((kind, data))
                   if cached is not None:
&amp;gt;&amp;gt;  for kind, data, pos in stream:
Module genshi.output:670 in __call__
&amp;lt;&amp;lt;          _gen_prefix = _gen_prefix().next
               for kind, data, pos in stream:
                   output = cache_get((kind, data))
                   if output is not None:
&amp;gt;&amp;gt;  for kind, data, pos in stream:
Module genshi.output:771 in __call__
&amp;lt;&amp;lt;          push_text = textbuf.append
               pop_text = textbuf.pop
               for kind, data, pos in chain(stream, [(None, None, None)]):
                   if kind is TEXT:
&amp;gt;&amp;gt;  for kind, data, pos in chain(stream, [(None, None, None)]):
Module genshi.output:586 in __call__
&amp;lt;&amp;lt;      def __call__(self, stream):
               prev = (None, None, None)
               for ev in stream:
                   if prev[0] is START:
                       if ev[0] is END:
&amp;gt;&amp;gt;  for ev in stream:
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
           yield event
           for event in stream:
               yield event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
           yield event
           for event in stream:
               yield event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
               for mark, event in stream:
                   kind = event[0]
                   if not (kind is None or kind is ATTR or kind is BREAK):
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:1145 in __call__
&amp;lt;&amp;lt;          :param stream: The marked event stream to filter
               """
               for mark, event in stream:
                   yield mark, event
                   if mark is ENTER:
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:714 in __call__
&amp;lt;&amp;lt;          stream = iter(stream)
               next = stream.next
               for mark, event in stream:
                   if mark is None:
                       yield mark, event
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
               for event in stream:
                   yield OUTSIDE, event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
           yield event
           for event in stream:
               yield event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
               for mark, event in stream:
                   kind = event[0]
                   if not (kind is None or kind is ATTR or kind is BREAK):
&amp;gt;&amp;gt;  for mark, event in stream:
Module ckanext.googleanalytics.plugin:62 in download_adder
&amp;lt;&amp;lt;              (downloaded %s times)&amp;lt;/span&amp;gt;'''
                   count = None
                   for mark, (kind, data, pos) in stream:
                       if mark and kind == START:
                           href = data[1].get('href')
&amp;gt;&amp;gt;  for mark, (kind, data, pos) in stream:
Module genshi.filters.transform:714 in __call__
&amp;lt;&amp;lt;          stream = iter(stream)
               next = stream.next
               for mark, event in stream:
                   if mark is None:
                       yield mark, event
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
               for event in stream:
                   yield OUTSIDE, event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
           yield event
           for event in stream:
               yield event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
               for mark, event in stream:
                   kind = event[0]
                   if not (kind is None or kind is ATTR or kind is BREAK):
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:1175 in __call__
&amp;lt;&amp;lt;          """
               callable_value = hasattr(self.value, '__call__')
               for mark, (kind, data, pos) in stream:
                   if mark is ENTER:
                       if callable_value:
&amp;gt;&amp;gt;  for mark, (kind, data, pos) in stream:
Module genshi.filters.transform:714 in __call__
&amp;lt;&amp;lt;          stream = iter(stream)
               next = stream.next
               for mark, event in stream:
                   if mark is None:
                       yield mark, event
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
               for event in stream:
                   yield OUTSIDE, event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
           yield event
           for event in stream:
               yield event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
               for mark, event in stream:
                   kind = event[0]
                   if not (kind is None or kind is ATTR or kind is BREAK):
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:1145 in __call__
&amp;lt;&amp;lt;          :param stream: The marked event stream to filter
               """
               for mark, event in stream:
                   yield mark, event
                   if mark is ENTER:
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:714 in __call__
&amp;lt;&amp;lt;          stream = iter(stream)
               next = stream.next
               for mark, event in stream:
                   if mark is None:
                       yield mark, event
&amp;gt;&amp;gt;  for mark, event in stream:
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
               for event in stream:
                   yield OUTSIDE, event
&amp;gt;&amp;gt;  for event in stream:
Module genshi.template.base:618 in _include
&amp;lt;&amp;lt;                      tmpl = self.loader.load(href, relative_to=event[2][0],
                                                   cls=cls or self.__class__)
                           for event in tmpl.generate(ctxt, **vars):
                               yield event
                       except TemplateNotFound:
&amp;gt;&amp;gt;  for event in tmpl.generate(ctxt, **vars):
Module genshi.template.base:618 in _include
&amp;lt;&amp;lt;                      tmpl = self.loader.load(href, relative_to=event[2][0],
                                                   cls=cls or self.__class__)
                           for event in tmpl.generate(ctxt, **vars):
                               yield event
                       except TemplateNotFound:
&amp;gt;&amp;gt;  for event in tmpl.generate(ctxt, **vars):
Module genshi.template.base:618 in _include
&amp;lt;&amp;lt;                      tmpl = self.loader.load(href, relative_to=event[2][0],
                                                   cls=cls or self.__class__)
                           for event in tmpl.generate(ctxt, **vars):
                               yield event
                       except TemplateNotFound:
&amp;gt;&amp;gt;  for event in tmpl.generate(ctxt, **vars):
Module genshi.template.base:605 in _include
&amp;lt;&amp;lt;          from genshi.template.loader import TemplateNotFound
               for event in stream:
                   if event[0] is INCLUDE:
                       href, cls, fallback = event[1]
&amp;gt;&amp;gt;  for event in stream:
Module genshi.template.markup:378 in _match
&amp;lt;&amp;lt;                      for event in self._match(self._flatten(template, ctxt,
                                                                  **vars),
                                                    ctxt, start=idx + 1, **vars):
                               yield event
&amp;gt;&amp;gt;  ctxt, start=idx + 1, **vars):
Module genshi.template.markup:327 in _match
&amp;lt;&amp;lt;                      break
               for event in stream:
                   # We (currently) only care about start and end events for matching
&amp;gt;&amp;gt;  for event in stream:
Module genshi.template.base:545 in _flatten
&amp;lt;&amp;lt;          while 1:
                   for kind, data, pos in stream:
                       if kind is START and data[1]:
&amp;gt;&amp;gt;  for kind, data, pos in stream:
Module genshi.filters.i18n:177 in _generate
&amp;lt;&amp;lt;                  msgbuf.append(*previous)
                       previous = None
                   for event in msgbuf.translate(gettext(msgbuf.format())):
                       yield event
                   if previous:
&amp;gt;&amp;gt;  for event in msgbuf.translate(gettext(msgbuf.format())):
Module genshi.filters.i18n:1029 in translate
&amp;lt;&amp;lt;                      )
               parts = parse_msg(string)
               parts_counter = {}
               for order, string in parts:
&amp;gt;&amp;gt;  parts = parse_msg(string)
Module genshi.filters.i18n:1143 in parse_msg
&amp;lt;&amp;lt;      if string:
               parts.append((stack[-1], string))
           return parts
&amp;gt;&amp;gt;  parts.append((stack[-1], string))
IndexError: list index out of range
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1226</link>
        <guid isPermaLink="false">http://localhost/ticket/1226</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1227: Display packages' tags in search results</title>
                  <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>
        <link>http://localhost/ticket/1227</link>
        <guid isPermaLink="false">http://localhost/ticket/1227</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1228: Display OpenID login errors</title>
                  <description>&lt;p&gt;
When there are errors when logging into OpenID, these don't get displayed. You just get the login screen again.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1228</link>
        <guid isPermaLink="false">http://localhost/ticket/1228</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1229: Refactor all database code out of the controllers and into the logic layer</title>
                  <description>&lt;p&gt;
Progress can be tracked in this document:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://spreadsheets.google.com/spreadsheet/ccc?key=0Atp3cZFjuIOAdFQzRnVoUHV6ckoyblI5TUdEcnJLVlE&amp;amp;hl=en_US#gid=0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://spreadsheets.google.com/spreadsheet/ccc?key=0Atp3cZFjuIOAdFQzRnVoUHV6ckoyblI5TUdEcnJLVlE&amp;amp;hl=en_US#gid=0&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1229</link>
        <guid isPermaLink="false">http://localhost/ticket/1229</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1230: Make sure plugins tables work in tests.</title>
                  <description>&lt;p&gt;
Dgu tests failed as harvesting table are not created at the correct point.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1230</link>
        <guid isPermaLink="false">http://localhost/ticket/1230</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1231: [super] Management Information Reporting</title>
                  <description>&lt;p&gt;
Child tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/1101" title="enhancement: Integrate googlanalytics into site nav (new)"&gt;#1101&lt;/a&gt; Integrate stats and googlanalytics into site nav
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
We have a spreadsheet from UKLP of statistics we'd like to generate
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1231</link>
        <guid isPermaLink="false">http://localhost/ticket/1231</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1232: [super] Interface improvements</title>
                  <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>
        <link>http://localhost/ticket/1232</link>
        <guid isPermaLink="false">http://localhost/ticket/1232</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1233: [super] Improve wiki-style functionality for history</title>
                  <description>&lt;p&gt;
At the moment we have a good revisioning system but a poor history interface. We need to improve this in a number of areas:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/191" title="enhancement: Searching by modification date (closed: fixed)"&gt;#191&lt;/a&gt; Searching by modification date
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/193" title="enhancement: Searching by time-related field (closed: wontfix)"&gt;#193&lt;/a&gt; Searching by time-related field
&lt;/li&gt;&lt;li&gt;&lt;a class="assigned ticket" href="http://localhost/ticket/301" title="enhancement: Package discussion pages (assigned)"&gt;#301&lt;/a&gt; Package discussion pages
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1236" title="enhancement: View a package at a given revision (closed: fixed)"&gt;#1236&lt;/a&gt; Package history page should provide links to pages at particular revisions, similar to the wikipedia pages
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1236" title="enhancement: View a package at a given revision (closed: fixed)"&gt;#1236&lt;/a&gt; Viewing old revisions or unmoderated changes should have a message at the top of the package page
&lt;/li&gt;&lt;li&gt;Other improvements as per my word doc.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1233</link>
        <guid isPermaLink="false">http://localhost/ticket/1233</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1234: Setting locale error conditions handled badly</title>
                  <description>&lt;p&gt;
Needs tests for error conditions for bad locale and redirect parameters.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1234</link>
        <guid isPermaLink="false">http://localhost/ticket/1234</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1235: [super] Search Improvements</title>
                  <description>&lt;p&gt;
Child tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/234" title="enhancement: UI Review - Autocomplete package names &amp;amp; tags in search (closed: wontfix)"&gt;#234&lt;/a&gt; UI Review - Autocomplete package names &amp;amp; tags in search
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/193" title="enhancement: Searching by time-related field (closed: wontfix)"&gt;#193&lt;/a&gt;        Searching by time-related field
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/191" title="enhancement: Searching by modification date (closed: fixed)"&gt;#191&lt;/a&gt;        Searching by modification date
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/905" title="defect: Unable to search with accented characters in package names (closed: worksforme)"&gt;#905&lt;/a&gt; Unable to search with accented characters in package names
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/906" title="enhancement: Ability to search without accents for accented words (closed: fixed)"&gt;#906&lt;/a&gt; Ability to search without accents for accented words
&lt;/li&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/924" title="enhancement: Search box has no search button (new)"&gt;#924&lt;/a&gt; Search box has no search button
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Broadly speaking though we need to choose PostgreSQL, Solr or something else. We don't want to invest our time maintaining two search backends with a limited abstraction layer between the two.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1235</link>
        <guid isPermaLink="false">http://localhost/ticket/1235</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1236: View a package at a given revision</title>
                  <description>&lt;p&gt;
As a user I want to view a package at a given revision:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;When I visit /package/osm@yyyy-mm-dd or /package/osm@rrrrrrr I should be shown package at date yyyy-mm-dd or revision rrrrrrr.
&lt;/li&gt;&lt;li&gt;viewing this page, it should say it is the old revision, just like wikipedia
&lt;/li&gt;&lt;li&gt;package history page should provide links to these pages
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1236</link>
        <guid isPermaLink="false">http://localhost/ticket/1236</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1238: Viewing a package @date misses non-PackageRevisions</title>
                  <description>&lt;p&gt;
There's a problem with getting old versions of packages using @date. The query looks for the &lt;a class="missing wiki"&gt;PackageRevision?&lt;/a&gt; related to the date, but ignores &lt;a class="missing wiki"&gt;TagRevisions?&lt;/a&gt; etc.
&lt;/p&gt;
&lt;p&gt;
So for example if you compare this table:
&lt;a class="ext-link" href="http://ckan.net/package/history/osm"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/history/osm&lt;/a&gt;
with this view:
&lt;a class="ext-link" href="http://ckan.net/package/osm%402010-11-30%2000%3A21%3A49.627830"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package/osm%402010-11-30%2000%3A21%3A49.627830&lt;/a&gt;
you actually see the 2010-01-13 11:13 revision - the wrong revision.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1238</link>
        <guid isPermaLink="false">http://localhost/ticket/1238</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1239: Remove and re-add tag on package not working</title>
                  <description>&lt;p&gt;
See reports on list at:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2011-July/001103.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2011-July/001103.html&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2011-July/001107.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2011-July/001107.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Tracked this to issue in dictization/model_save whereby was ignoring case where Package Tag already there but in deleted state. Rather than describe at length see fix.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1239</link>
        <guid isPermaLink="false">http://localhost/ticket/1239</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1240: [super] API v4</title>
                  <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>
        <link>http://localhost/ticket/1240</link>
        <guid isPermaLink="false">http://localhost/ticket/1240</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1241: Overview video of http://thedatahub.org</title>
                  <description>&lt;p&gt;
Produce a video explaining some of the things which can be done on the datahub.org
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1241</link>
        <guid isPermaLink="false">http://localhost/ticket/1241</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1242: thedatahub.org's login page</title>
                  <description>&lt;p&gt;
The right hand side of &lt;a class="ext-link" href="http://thedatahub.org/user/login"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;thedatahub.org login screen&lt;/a&gt; is a little confusing:
&lt;/p&gt;
&lt;pre class="wiki"&gt;    Not a member?
    Join CKAN to contribute packages under your own name.
     - Register
     - Reset your password
     - Privacy Policy
&lt;/pre&gt;&lt;p&gt;
Suggested improvements to make:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;replace CKAN with thedatahub.org
&lt;/li&gt;&lt;li&gt;in general, edit the copy to be more inviting
&lt;/li&gt;&lt;li&gt;remove "Reset your password" from that bubble
&lt;/li&gt;&lt;li&gt;move the privacy policy link to somewhere less prominent
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1242</link>
        <guid isPermaLink="false">http://localhost/ticket/1242</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>timmcnamara</dc:creator>

                  <title>#1243: [thedatahub.org] "Upload Data" should provide a nicer</title>
                  <description>&lt;p&gt;
If someone who is not logged in clicks on "Upload Data", they are presented with
&lt;/p&gt;
&lt;pre class="wiki"&gt;    Not authorized to upload files.
&lt;/pre&gt;&lt;p&gt;
This is in emboldened red text. That is, the system is telling a user that they're doing something illegitimate, even though they're actually following an invitation from the main menu.
&lt;/p&gt;
&lt;p&gt;
I propose two options for resolving this:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;only display the "Upload Data" tab if someone is authorised to upload data
&lt;/li&gt;&lt;li&gt;if someone isn't logged int, provide a nice welcome message thanking them for wanting to upload data, but we only allow registered users to do so
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
ENV: thedatahub.org, CKAN 1.4.2b
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1243</link>
        <guid isPermaLink="false">http://localhost/ticket/1243</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1244: Notes field carriage-returns converted to CRLF</title>
                  <description>&lt;p&gt;
When you edit a package in the web form, if the notes field had &lt;tt&gt;\n&lt;/tt&gt; as the End Of Line symbol, it gets lost when you preview or save the package, and the notes field is displayed all on one line.
&lt;/p&gt;
&lt;p&gt;
This can be seen when editing annakarenina (as created by 'paster create-test-data'). The diff shows for example:
&lt;/p&gt;
&lt;pre class="wiki"&gt;- Some test notes
+ Some test notes
?                +
&lt;/pre&gt;&lt;p&gt;
but it would more clearly be shown as:
&lt;/p&gt;
&lt;pre class="wiki"&gt;- Some test notes\n
+ Some test notes
?                ++
&lt;/pre&gt;&lt;p&gt;
This is a significant problem with DGU, since a lot comes in via the API.
&lt;/p&gt;
&lt;p&gt;
It's not clear what we should do about it. We could standardise on \n or \r\n when the form submission comes in. Do different browsers on different platforms do different things with EOLs?
&lt;/p&gt;
&lt;h2 id="Analysis"&gt;Analysis&lt;/h2&gt;
&lt;p&gt;
Displaying the package: the Markdown processor respects both EOLs when displaying the field, putting each line in a &amp;lt;p&amp;gt; tag.
&lt;/p&gt;
&lt;p&gt;
Creating the package edit form: placed into &amp;lt;textfield&amp;gt;.
&lt;/p&gt;
&lt;p&gt;
Browser displaying package edit form: &amp;lt;textfield&amp;gt; displays \n and \r\n as EOL. But \n\n gets compressed to one EOL. But on submission, both are returned as \r\n.
&lt;/p&gt;
&lt;p&gt;
Receiving the edited package: Somewhere along the line the EOL gets converted to \n\n.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1244</link>
        <guid isPermaLink="false">http://localhost/ticket/1244</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1245: Reorganise ckan.org pages</title>
                  <description>&lt;p&gt;
Here is Rufus' plan for ckan.org reorganisation from &lt;a class="ext-link" href="http://ckan.okfnpad.org/documentation"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/documentation&lt;/a&gt; (22/7/11) (ticket made by dread):
&lt;/p&gt;
&lt;pre class="wiki"&gt;/solutions
  /overview &amp;lt;--- current 'about' page (the software)
  /customers &amp;lt;-- say "in addition to our clients..."
  /features &amp;lt;-- needs most work (pictures etc)
/pricing/  &amp;lt;-- simplest thing possible ... talk with Ira (cover pricing and support)
/developers &amp;lt;--- links to http://docs.ckan.org/, getting the software, the wiki, the mailing list /contact
/blog
&lt;/pre&gt;&lt;p&gt;
Tasks:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;add tagline in header - "the data portal software"
&lt;/li&gt;&lt;li&gt;make and add glossy PDF
&lt;/li&gt;&lt;li&gt;change "data hub" to "data portal" passim (if only using one  term)
&lt;/li&gt;&lt;li&gt;add info@…
&lt;/li&gt;&lt;li&gt;image banner on home page - redo screenshots without menus
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1245</link>
        <guid isPermaLink="false">http://localhost/ticket/1245</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>adrian.pohl@…</dc:creator>

                  <title>#1246: Search results on ckan.net are mistakenly all 'open'</title>
                  <description>&lt;p&gt;
All package search results on ckan.net are labelled as 'open' even when their license is closed or unknown: &lt;a class="ext-link" href="http://ckan.net/package"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/package&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1246</link>
        <guid isPermaLink="false">http://localhost/ticket/1246</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1247: Put docs on ReadTheDocs</title>
                  <description>&lt;p&gt;
Put docs on &lt;a class="missing wiki"&gt;ReadTheDocs?&lt;/a&gt; instead of eu13.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1247</link>
        <guid isPermaLink="false">http://localhost/ticket/1247</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1248: License exception</title>
                  <description>&lt;p&gt;
Exception received on test.ckan.net at 10.12 on 29/7/11
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://test.ckan.net/package?__cache=2759373&amp;amp;page=4
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ckan.controllers.package:153 in search
&amp;lt;&amp;lt;                          }
                   query = get.package_search(context,data_dict)
                   c.page = h.Page(
&amp;gt;&amp;gt;  query = get.package_search(context,data_dict)
Module ckan.logic.action.get:514 in package_search
&amp;lt;&amp;lt;      for package in query.results:
               result_dict = table_dictize(package, context)
               result_dict = _extend_package_dict(result_dict,context)
               results.append(result_dict)
&amp;gt;&amp;gt;  result_dict = _extend_package_dict(result_dict,context)
Module ckan.logic.action.get:537 in _extend_package_dict
&amp;lt;&amp;lt;      license_id = package_dict['license_id']
           if license_id:
               isopen = model.Package.get_license_register()[license_id].isopen()
               package_dict['isopen'] = isopen
           else:
&amp;gt;&amp;gt;  isopen = model.Package.get_license_register()[license_id].isopen()
Module ckan.model.license:59 in __getitem__
&amp;lt;&amp;lt;              return default
               else:
                   raise KeyError, "License not found: %s" % key
           def get(self, key, default=None):
&amp;gt;&amp;gt;  raise KeyError, "License not found: %s" % key
KeyError: u'License not found: None'
&lt;/pre&gt;&lt;p&gt;
and a similar one:
&lt;/p&gt;
&lt;pre class="wiki"&gt; http://test.ckan.net/tag/barbecue
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:118 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:221 in __call__
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
               response = self._dispatch_call()
               if not start_response_called:
                   self.start_response = start_response
&amp;gt;&amp;gt;  response = self._dispatch_call()
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ['pylons.action_method'] = func
                   response = self._inspect_call(func)
               else:
                   if log_debug:
&amp;gt;&amp;gt;  response = self._inspect_call(func)
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.__name__, args)
               try:
                   result = self._perform_call(func, args)
               except HTTPException, httpe:
                   if log_debug:
&amp;gt;&amp;gt;  result = self._perform_call(func, args)
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ckan.controllers.tag:2 in read
Module ckan.lib.cache:167 in wrapper
&amp;lt;&amp;lt;      log = __import__("logging").getLogger("proxy_cache")
           def wrapper(func, *args, **kwargs):
               result = func(*args, **kwargs)
               pylons = get_pylons(args)
&amp;gt;&amp;gt;  result = func(*args, **kwargs)
Module ckan.controllers.tag:64 in read
&amp;lt;&amp;lt;          data_dict = {'id':id}
               try:
                   c.tag = get.tag_show(context,data_dict)
               except NotFound:
                   abort(404, _('Tag not found'))
&amp;gt;&amp;gt;  c.tag = get.tag_show(context,data_dict)
Module ckan.logic.action.get:341 in tag_show
&amp;lt;&amp;lt;      extended_packages = []
           for package in tag_dict['packages']:
               extended_packages.append(_extend_package_dict(package,context))
           tag_dict['packages'] = extended_packages
&amp;gt;&amp;gt;  extended_packages.append(_extend_package_dict(package,context))
Module ckan.logic.action.get:537 in _extend_package_dict
&amp;lt;&amp;lt;      license_id = package_dict['license_id']
           if license_id:
               isopen = model.Package.get_license_register()[license_id].isopen()
               package_dict['isopen'] = isopen
           else:
&amp;gt;&amp;gt;  isopen = model.Package.get_license_register()[license_id].isopen()
Module ckan.model.license:59 in __getitem__
&amp;lt;&amp;lt;              return default
               else:
                   raise KeyError, "License not found: %s" % key
           def get(self, key, default=None):
&amp;gt;&amp;gt;  raise KeyError, "License not found: %s" % key
KeyError: u'License not found: CreativeCommonsAttributionCCBY25'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1248</link>
        <guid isPermaLink="false">http://localhost/ticket/1248</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1249: Exclude script tag from extraction for i18n</title>
                  <description>&lt;p&gt;
Currently have this script section put in for i18n. It shouldn't be.
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;script type="text/javascript"&amp;gt;
//&amp;lt;![CDATA[
(function($){
    $.fn.ajaxCreateSlug = function(name, url) {
        var title = this;
        var updater = {
            init: function(title, name) {
                // Add a new element where the validity of the package name can be displayed
                this.name_field = name;
                this.title_field = title;
                this.name_field.parent().append('&amp;lt;div id="package_name_valid_msg"&amp;gt;&amp;lt;/div&amp;gt;');
                this.title_field.blur(this.title_change_handler())
                this.title_field.keyup(this.title_change_handler())
                this.name_field.keyup(this.name_change_handler());
                this.name_field.blur(this.name_blur_handler());
                this.url = url;
            },
....
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1249</link>
        <guid isPermaLink="false">http://localhost/ticket/1249</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1250: Search results should be sorted by score rather than alphabetical</title>
                  <description>&lt;p&gt;
At the moment we sort search results alphabetically. While this is useful for doing 'browse' case where no search bad for all other cases.
&lt;/p&gt;
&lt;p&gt;
Adopt default sort order of 'score' though may wish to keep alphabetical for no search term (i.e. wildcard).
&lt;/p&gt;
&lt;p&gt;
Options:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Default this in solr (no need to touch code) but fragile and affects everything ...
&lt;/li&gt;&lt;li&gt;Do it in code and default to score
&lt;/li&gt;&lt;li&gt;Do it in code and have alphabetical (on name or title?) when no criteria otherwise score
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Aside: may also wish to support search in query api but that is for later!
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1250</link>
        <guid isPermaLink="false">http://localhost/ticket/1250</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1251: Rename wiki.ckan.net to wiki.ckan.org</title>
                  <description>&lt;p&gt;
Inline with general naming policy going forward.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1251</link>
        <guid isPermaLink="false">http://localhost/ticket/1251</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1252: Deprecate ckan.net in favour of thedatahub.org</title>
                  <description>&lt;p&gt;
Deprecate ckan.net in favour of thedatahub.org
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Announce
&lt;/li&gt;&lt;li&gt;Create thedatahub.org and have it run same data as ckan.net
&lt;/li&gt;&lt;li&gt;Announce closing down of ckan.net with 302
&lt;/li&gt;&lt;li&gt;Implement 302 permanent
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also redirect wiki.ckan.net to wiki.ckan.org
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1252</link>
        <guid isPermaLink="false">http://localhost/ticket/1252</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1253: Authz refactor</title>
                  <description>&lt;p&gt;
We agreed on a system that allows overriding the authz checks at a logic function level (e.g. package_create, user_show) and supports the old (current) authz system.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1253</link>
        <guid isPermaLink="false">http://localhost/ticket/1253</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1254: Feature sheet</title>
                  <description>&lt;p&gt;
Compose a feature list for CKAN. Use the existing Feature Matrix. Basic explanation of terms. For use by customers.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1254</link>
        <guid isPermaLink="false">http://localhost/ticket/1254</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1255: Drupal consistancy checks.</title>
                  <description>&lt;p&gt;
Make a robust way to make sure the drupal database is consistent with the ckan data.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1255</link>
        <guid isPermaLink="false">http://localhost/ticket/1255</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1256: fix modification extension for moderation</title>
                  <description>&lt;p&gt;
Solr is not working for moderation, pending changes are not being indexed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1256</link>
        <guid isPermaLink="false">http://localhost/ticket/1256</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1257: Anti-Spam tools</title>
                  <description>&lt;p&gt;
We are getting more and more spam on ckan.net and we need to improve our strategy of combating it. It is bad because google ranks who we link to (which we do want for legitimate links), and our front page contains the latest package edits, so spam is immediately very visible.
&lt;/p&gt;
&lt;p&gt;
Spam:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Package creation
&lt;/li&gt;&lt;li&gt;Package edit
&lt;/li&gt;&lt;li&gt;User creation
&lt;/li&gt;&lt;li&gt;Group creation
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Systems to consider:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Automatic
&lt;ul&gt;&lt;li&gt;captcha
&lt;/li&gt;&lt;li&gt;bayesian scoring
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Sysadmin
&lt;ul&gt;&lt;li&gt;a tool to quickly analyse and remove packages, edits and users
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Helpful users
&lt;ul&gt;&lt;li&gt;button to click indicating spam, leading to any/all of:
&lt;ul&gt;&lt;li&gt;add TODO item (which emails package admin and sysadmins)
&lt;/li&gt;&lt;li&gt;quarantine the package/user so it doesn't show up on the front page and a warning is shown when you view it
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
General thoughts:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We should learn from the wikipedia tools, as they are the experts
&lt;/li&gt;&lt;li&gt;This is a serious problem that is only going to get worse and is a threat to the whole site.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1257</link>
        <guid isPermaLink="false">http://localhost/ticket/1257</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1258: Bring purge revision into ckan repo from vdm</title>
                  <description>&lt;p&gt;
In order to make purge revision work correctly with the moderated edits we need to modify purge revision in vdm.  This is best modified in ckan so we will override the vdm one in the reposotory.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1258</link>
        <guid isPermaLink="false">http://localhost/ticket/1258</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1259: "Add a row" for Extras on Package form</title>
                  <description>&lt;p&gt;
The default package form offers 4 empty extras fields. Like the resource section, it should have an "add more" button to add another row.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1259</link>
        <guid isPermaLink="false">http://localhost/ticket/1259</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1260: Remove duplicate functions from _util.html</title>
                  <description>&lt;p&gt;
There seems to be both a list view for dictized and non dictized data structures for all entities in _util.html at the moment. Probably in the back of someone's mind already, but cleanup here would be nice.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1260</link>
        <guid isPermaLink="false">http://localhost/ticket/1260</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1261: Investigate dots in extras search</title>
                  <description>&lt;p&gt;
It seems that searching for extras_foo:value works with solr, but extras_foo.bar:value doesn't. No theory on why.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1261</link>
        <guid isPermaLink="false">http://localhost/ticket/1261</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1262: Enforce "create-user" permission</title>
                  <description>&lt;p&gt;
This does not seem to have any implications at the moment, it should lock down registration and remove all related links.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1262</link>
        <guid isPermaLink="false">http://localhost/ticket/1262</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1263: Bad name for logic action in API causes Exception</title>
                  <description>&lt;p&gt;
A bad action name:
e.g.
curl &lt;a class="ext-link" href="http://test.ckan.net/api/action/user_showaa"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/api/action/user_showaa&lt;/a&gt; -d '{}'
causes 500 response.
&lt;/p&gt;
&lt;p&gt;
Occurs only on 1.4.3 beta.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1263</link>
        <guid isPermaLink="false">http://localhost/ticket/1263</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1264: Merge ckanext-admin into core</title>
                  <description>&lt;p&gt;
This extension should be in core now -- functionality is basic and very useful.
&lt;/p&gt;
&lt;p&gt;
Copy across from here: &lt;a class="ext-link" href="http://bitbucket.org/okfn/ckanext-admin"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/okfn/ckanext-admin&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Suggest this no longer even be an extension.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1264</link>
        <guid isPermaLink="false">http://localhost/ticket/1264</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1265: user/edit error conditions cause exceptions</title>
                  <description>&lt;p&gt;
We get exceptions on these occasions:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;user/edit if not logged in
&lt;/li&gt;&lt;li&gt;user/edit/bob if bob is not a known user
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
These are a problem only on 1.4.3b.
&lt;/p&gt;
&lt;p&gt;
Introduced in &lt;a class="closed ticket" href="http://localhost/ticket/1229" title="enhancement: Refactor all database code out of the controllers and into the logic layer (closed: fixed)"&gt;#1229&lt;/a&gt; - merge of branch feature-1229-db-out-of-controllers
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1265</link>
        <guid isPermaLink="false">http://localhost/ticket/1265</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1266: Timestamps without microseconds causing exception</title>
                  <description>&lt;p&gt;
I'm not sure why some timestamps are missing microseconds in the ckan.net data, but plenty seem to. This causes this exception when viewing the package rss feed:
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://ckan.net/package/history/sfk_publishing?format=atom&amp;amp;days=7
In Module ckan.lib.helpers:227 in date_str_to_datetime
WebApp Error: &amp;lt;type 'exceptions.ValueError'&amp;gt;: time data '2008-04-13T20:40:20' does not match format '%Y-%m-%dT%H:%M:%S.%f'
&lt;/pre&gt;&lt;p&gt;
Only seen with ckan 1.4.3b
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1266</link>
        <guid isPermaLink="false">http://localhost/ticket/1266</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1267: Random exception: cannot set the body to a unicode value</title>
                  <description>&lt;p&gt;
Occasionally see this problem when producing an error page. Here's an example
&lt;/p&gt;
&lt;pre class="wiki"&gt;WebApp Error: &amp;lt;type 'exceptions.TypeError'&amp;gt;: You cannot set the body to a unicode value without a charset
URL: http://at.ckan.net/authorizationgroup/new
Module weberror.errormiddleware:162 in __call__
&amp;lt;&amp;lt;              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
                   return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
&amp;gt;&amp;gt;  app_iter = self.application(environ, sr_checker)
Module beaker.middleware:73 in __call__
&amp;lt;&amp;lt;                                                     self.cache_manager)
               environ[self.environ_key] = self.cache_manager
               return self.app(environ, start_response)
&amp;gt;&amp;gt;  return self.app(environ, start_response)
Module beaker.middleware:152 in __call__
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)
           def _get_session(self):
&amp;gt;&amp;gt;  return self.wrap_app(environ, session_start_response)
Module routes.middleware:130 in __call__
&amp;lt;&amp;lt;                  environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1]
               response = self.app(environ, start_response)
               # Wrapped in try as in rare cases the attribute will be gone already
&amp;gt;&amp;gt;  response = self.app(environ, start_response)
Module pylons.wsgiapp:125 in __call__
&amp;lt;&amp;lt;
               controller = self.resolve(environ, start_response)
               response = self.dispatch(controller, environ, start_response)
               if 'paste.testing_variables' in environ and hasattr(response,
&amp;gt;&amp;gt;  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:117 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:284 in __call__
&amp;lt;&amp;lt;              if log_debug:
                       log.debug("Calling Response object to return WSGI data")
                   return response(environ, self.start_response)
               if log_debug:
&amp;gt;&amp;gt;  return response(environ, self.start_response)
Module webob.exc:248 in __call__
&amp;lt;&amp;lt;              return []
               if not self.body and not self.empty_body:
                   return self.generate_response(environ, start_response)
               return Response.__call__(self, environ, start_response)
&amp;gt;&amp;gt;  return self.generate_response(environ, start_response)
Module webob.exc:239 in generate_response
&amp;lt;&amp;lt;              status=self.status,
                   headerlist=headerlist,
                   content_type=content_type
               )
               return resp(environ, start_response)
&amp;gt;&amp;gt;  content_type=content_type
Module webob.response:94 in __init__
&amp;lt;&amp;lt;                  if charset is None:
                           raise TypeError(
                               "You cannot set the body to a unicode value without a charset")
                       body = body.encode(charset)
                   self._body = body
&amp;gt;&amp;gt;  "You cannot set the body to a unicode value without a charset")
TypeError: You cannot set the body to a unicode value without a charset
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1267</link>
        <guid isPermaLink="false">http://localhost/ticket/1267</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1268: Speed up listing users by revisions by adding db index</title>
                  <description>&lt;p&gt;
At the moment this appears to be slow (kindly suggests because missing index in db). Page is /user on a ckan instance.
&lt;/p&gt;
&lt;p&gt;
Would this also speed up user page where we recent changes?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1268</link>
        <guid isPermaLink="false">http://localhost/ticket/1268</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1269: User view page shows the packages followed by viewing user not user being viewed</title>
                  <description>&lt;p&gt;
This overlaps with Sean's follow support (for activity streams) and so will be dealt with there.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1269</link>
        <guid isPermaLink="false">http://localhost/ticket/1269</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1270: Default site www.ckan.net is a redirect and loses POSTs</title>
                  <description>&lt;p&gt;
The default site was www.ckan.net, which had an Apache 301 redirect to ckan.net, but the problem was urllib was not rePOSTing stuff. This affected search parameters:
&lt;/p&gt;
&lt;pre class="wiki"&gt;In [1]: import ckanclient
In [2]: c = ckanclient.CkanClient()
In [3]: c2 = ckanclient.CkanClient('http://ckan.net/api')
In [4]: c.package_search('', search_options={'groups':'openspending'})
Out[4]:
{u'count': 2102,
 u'results': &amp;lt;generator object _result_generator at 0x10168b1e0&amp;gt;}
In [5]: c2.package_search('', search_options={'groups':'openspending'})
Out[5]: {u'count': 29, u'results': &amp;lt;generator object _result_generator at 0x10168b410&amp;gt;}
&lt;/pre&gt;&lt;p&gt;
Thanks to borior for finding this and raising it.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1270</link>
        <guid isPermaLink="false">http://localhost/ticket/1270</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1271: CORS support</title>
                  <description>&lt;p&gt;
CORS - &lt;a class="ext-link" href="http://www.w3.org/TR/cors/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.w3.org/TR/cors/&lt;/a&gt; - support.
&lt;/p&gt;
&lt;p&gt;
This is what you do in Apache. Should do this in lib/base.py or similar.
&lt;/p&gt;
&lt;pre class="wiki"&gt;    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Methods "POST, PUT, GET, OPTIONS"
    Header always set Access-Control-Allow-Headers "X-CKAN-API-KEY, Content-Type"
    # Respond to all OPTIONS requests with 200 OK
    # This could be done in the webapp
    # This is need for pre-flighted requests (POSTs/PUTs)
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} OPTIONS
    RewriteRule ^(.*)$ $1 [R=200,L]
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1271</link>
        <guid isPermaLink="false">http://localhost/ticket/1271</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1272: Store spatial extents provided in the package form</title>
                  <description>&lt;p&gt;
Consolidate the extra &lt;tt&gt;spatial&lt;/tt&gt; as the field for providing information about the geographic extent of the package. This will integrate automatically with the spatial search and give developers a single point to develop geospatial features.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1272</link>
        <guid isPermaLink="false">http://localhost/ticket/1272</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1273: Create docs for API v3</title>
                  <description></description>
        <link>http://localhost/ticket/1273</link>
        <guid isPermaLink="false">http://localhost/ticket/1273</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1274: Testing solr search</title>
                  <description>&lt;p&gt;
Copy ckan core postgres package search tests to the ckanext-solr extension and update them so that they use the solr search backend.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1274</link>
        <guid isPermaLink="false">http://localhost/ticket/1274</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1275: Move solr search extension to ckan core</title>
                  <description></description>
        <link>http://localhost/ticket/1275</link>
        <guid isPermaLink="false">http://localhost/ticket/1275</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1276: Apply weighting to search fields in solr</title>
                  <description>&lt;p&gt;
For example:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;name and title should have a higher weight than the notes field
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1276</link>
        <guid isPermaLink="false">http://localhost/ticket/1276</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1277: Use solr query parser for search instead of ckan query parser</title>
                  <description>&lt;p&gt;
See &lt;a class="ext-link" href="http://ckan.okfnpad.org/search"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/search&lt;/a&gt; for details/discussion
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1277</link>
        <guid isPermaLink="false">http://localhost/ticket/1277</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1278: Refactor authorized_query calls</title>
                  <description>&lt;p&gt;
There are some functions that still use the Auhtorizer().authorized_query method:
&lt;/p&gt;
&lt;pre class="wiki"&gt;./ckan/controllers/authorization_group.py:24:        query = ckan.authz.Authorizer().authorized_query(c.user, model.AuthorizationGroup)
./ckan/lib/base.py:237:        groups = ckan.authz.Authorizer.authorized_query(c.user, model.Group,
./ckan/lib/search/sql.py:55:        q = authz.Authorizer().authorized_query(username, model.Group)
./ckan/lib/search/sql.py:118:        q = authz.Authorizer().authorized_query(self.options.get('username'), model.Package)
./ckan/logic/action/get.py:154:    query = Authorizer().authorized_query(user, model.Group, model.Action.EDIT)
./ckan/tests/test_authz.py:158:        q = self.authorizer.authorized_query(self.notadmin.name, model.Package)
./ckan/tests/test_authz.py:353:        q = self.authorizer.authorized_query(self.notmember.name, model.Package)
./ckan/tests/test_authz.py:357:        q = self.authorizer.authorized_query(self.member.name, model.Package)
./ckan/tests/functional/test_authorization_group.py:44:        group_count = Authorizer.authorized_query(u'russianfan', model.AuthorizationGroup).count()
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1278</link>
        <guid isPermaLink="false">http://localhost/ticket/1278</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1279: Refactor or deprecate Authorization Groups</title>
                  <description>&lt;p&gt;
Authorization Groups are going to be deprecated in 1.8
&lt;/p&gt;
&lt;p&gt;
It is still unclear how Authorization Groups fit in the new authz model, so they have been left out of the logic and auth refactoring (Tickets &lt;a class="closed ticket" href="http://localhost/ticket/1229" title="enhancement: Refactor all database code out of the controllers and into the logic layer (closed: fixed)"&gt;#1229&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/1253" title="enhancement: Authz refactor (closed: fixed)"&gt;#1253&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1279</link>
        <guid isPermaLink="false">http://localhost/ticket/1279</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1280: fix sqlalchemy so that it works with postgres 9.0</title>
                  <description>&lt;p&gt;
After the ckan migrate process, sqlalcehmy reflect does not work and causes an error when reflecting indexes.  A bug report needs to be put into sqlalchemy.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1280</link>
        <guid isPermaLink="false">http://localhost/ticket/1280</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1281: Locale change flash message in wrong language</title>
                  <description>&lt;p&gt;
When you change the locale, it displays a flash message "Language has been set to: English" in the original language, not the one we have just changed to.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1281</link>
        <guid isPermaLink="false">http://localhost/ticket/1281</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1282: JS and WUI tidy up</title>
                  <description>&lt;p&gt;
Consolidate js. Remove cruft.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Move stuff to vendor
&lt;ul&gt;&lt;li&gt;Have all vendor libs local (?)
&lt;/li&gt;&lt;li&gt;jquery, jquery-ui etc
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Consolidate autocomplete to use jquery-ui
&lt;ul&gt;&lt;li&gt;package autocomplete (groups)
&lt;/li&gt;&lt;li&gt;tag autocomplete (package)
&lt;/li&gt;&lt;li&gt;user autocomplete (authz group create)
&lt;ul&gt;&lt;li&gt;turns out that authz group edit had autocomplete disabled so refactoring meant enabling ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Move forms.css into main
&lt;/li&gt;&lt;li&gt;Remove tag cloud from front page (can be example going forward)
&lt;/li&gt;&lt;li&gt;Remove bookmarklet (since in wiki at: &lt;a class="ext-link" href="http://wiki.ckan.net/Managing_Data_Packages#How_Do_I_Install_the_CKAN_Bookmarklet.3F"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Managing_Data_Packages#How_Do_I_Install_the_CKAN_Bookmarklet.3F&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;Move name slug generation into standard js and clean up
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Possible:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;JS unit tests for the given pages ...
&lt;/li&gt;&lt;li&gt;Option to use external site to serve js and css (e.g. CDN)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1282</link>
        <guid isPermaLink="false">http://localhost/ticket/1282</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1283: Deleted packages shouldn't be searchable or browsable</title>
                  <description>&lt;p&gt;
A package in deleted state doesn't show to general users, but admins DO see them. The idea is that they can resurrect them if they want. But now we have the trash can that lists deleted packages. So we don't want admins to see the deleted packages anywhere else.
&lt;/p&gt;
&lt;p&gt;
(But an admin should still be able to READ and EDIT a deleted package, so if he clicks on it in the trash list he can see it to decide whether to resurrect and actually be able to change its state.)
&lt;/p&gt;
&lt;p&gt;
Same in the Web interface and API.
&lt;/p&gt;
&lt;p&gt;
This ticket ties in with &lt;a class="assigned ticket" href="http://localhost/ticket/948" title="enhancement: Highlight (to a sysadmin) which packages are deleted (assigned)"&gt;#948&lt;/a&gt; highlighting a package being deleted (when viewing or editing) and follows on from the introduction of the trash can &lt;a class="closed ticket" href="http://localhost/ticket/1076" title="enhancement: Improve revision and package purge system (closed: fixed)"&gt;#1076&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1283</link>
        <guid isPermaLink="false">http://localhost/ticket/1283</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1284: Lots of revisions being created on datahub.org</title>
                  <description>&lt;p&gt;
Revisions aren't assigned to packages. Where are they coming from? This seems to have been occurring since the upgrade to 1.4.3b a couple of weeks ago?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1284</link>
        <guid isPermaLink="false">http://localhost/ticket/1284</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1285: Errors cause emails</title>
                  <description>&lt;p&gt;
Currently a sysadmin gets an email when an exception is not caught. But there are occasions when we DO want to catch an exception so we can fail nicely for the user, but the sysadmin STILL gets an email to know to fix something.
e.g. if there is an exception when search indexes a package. You want to catch the exception and still run any other notify calls.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1285</link>
        <guid isPermaLink="false">http://localhost/ticket/1285</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1286: Remove remaining formalchemy stuff</title>
                  <description>&lt;p&gt;
Stuff I've spotted:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;forms/*
&lt;/li&gt;&lt;li&gt;template/group/edit_form.html
&lt;/li&gt;&lt;li&gt;template/package/edit_form.html
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This can go once new DGU form is in.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1286</link>
        <guid isPermaLink="false">http://localhost/ticket/1286</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1287: NAVL validation errors - Junk fields should be listed explicitly</title>
                  <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>
        <link>http://localhost/ticket/1287</link>
        <guid isPermaLink="false">http://localhost/ticket/1287</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1288: Package edit/creation can't include 'relationships' field</title>
                  <description>&lt;p&gt;
When you create or edit a package (via the API), you aren't able to specify the relationships it has. (If you do you get 409 &lt;tt&gt; {"__junk": ["The input field __junk was not expected."]} &lt;/tt&gt;)
&lt;/p&gt;
&lt;p&gt;
The normal way to create relationships is via /api/rest/relationships/ and this works. But when you GET a package, the dictionary lists all relationship details. So this bug creates a problem for editing a package that has relationships - you want to GET it, make any edits and then PUT it back. The work-around is to delete the 'relationships' key from the dict before you PUT it back.
&lt;/p&gt;
&lt;h2 id="Options"&gt;Options&lt;/h2&gt;
&lt;p&gt;
Ideally, CKAN would read the 'relationships' key and make the necessary changes. This is a chunk of work.
&lt;/p&gt;
&lt;p&gt;
Another good option is to allow an unchanged 'relationships' value, but barf it is edited. This is also a chunk of work.
&lt;/p&gt;
&lt;p&gt;
A bad option would be to just ignore the 'relationships' value, since users will get frustrated changing this value and wonder why it never saves, not understanding it is different to all the rest, without error message.
&lt;/p&gt;
&lt;p&gt;
A final option is to get rid of relationships altogether.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1288</link>
        <guid isPermaLink="false">http://localhost/ticket/1288</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1289: Remove 'relationships'</title>
                  <description>&lt;h2 id="Abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;
Package Relationships have not taken off in the 18 months we've had them in the API. There are some issues with them and we need to spend more time improving them or consider getting rid of them.
&lt;/p&gt;
&lt;h2 id="TheProblem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;
Original use cases are expressed here: &lt;a class="assigned ticket" href="http://localhost/ticket/253" title="enhancement: Package relationships (assigned)"&gt;#253&lt;/a&gt; Here are comments about how we could handle these specific examples better:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;groups of packages - maybe better with a custom tag?
&lt;/li&gt;&lt;li&gt;fragment resources - soon to be covered by 'kind' resource field &lt;a class="closed ticket" href="http://localhost/ticket/957" title="enhancement: new &amp;#34;kind &amp;#34; field added to resources (closed: wontfix)"&gt;#957&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
3&amp;amp;5. derived resource - better to have some sort of resource relationship perhaps?
&lt;/p&gt;
&lt;ol start="4"&gt;&lt;li&gt;linked resource - again better to have some sort of resource relationship perhaps?
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Outstanding issues needing serious effort to fix:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="assigned ticket" href="http://localhost/ticket/256" title="requirement: Package relationships - 3. Edit in WUI (assigned)"&gt;#256&lt;/a&gt; Editing them in Web UI (not done yet)
&lt;/li&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/1288" title="defect: Package edit/creation can't include 'relationships' field (new)"&gt;#1288&lt;/a&gt; Package edit/creation can't include 'relationships' field
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Specification"&gt;Specification&lt;/h2&gt;
&lt;p&gt;
Remove relationships from model, API, tests, Web UI. Data migration to remove from db.
&lt;/p&gt;
&lt;h2 id="Whydoitthisway"&gt;Why do it this way&lt;/h2&gt;
&lt;p&gt;
Getting frustrated having problems with the code, when it's not used much. Often asked about what it's for, but rarely used. Seems an overly complicated design.
&lt;/p&gt;
&lt;h2 id="BackwardsCompatibility"&gt;Backwards Compatibility&lt;/h2&gt;
&lt;p&gt;
n/a
&lt;/p&gt;
&lt;h2 id="Implementationplan"&gt;Implementation plan&lt;/h2&gt;
&lt;h3 id="Deliverables"&gt;Deliverables&lt;/h3&gt;
&lt;p&gt;
See Specification
&lt;/p&gt;
&lt;h3 id="Risksandmitigations"&gt;Risks and mitigations&lt;/h3&gt;
&lt;p&gt;
Risk: a customer suddenly wants this, and the new ways to relate resources are not in place yet.
&lt;/p&gt;
&lt;p&gt;
Mitigation: discuss this decision thoroughly to make sure we are confident the use cases are not important. Discuss with team, ckan-discuss and specifically the LOD people who have some related packages on thedatahub.org.
&lt;/p&gt;
&lt;h3 id="Participants"&gt;Participants&lt;/h3&gt;
&lt;p&gt;
David Read
&lt;/p&gt;
&lt;h3 id="Progress"&gt;Progress&lt;/h3&gt;
&lt;p&gt;
Not yet.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1289</link>
        <guid isPermaLink="false">http://localhost/ticket/1289</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1290: Better error when blank database</title>
                  <description>&lt;p&gt;
When installing CKAN, when doing "paster serve development.ini", lots of users encounter the error for every request:
&lt;/p&gt;
&lt;pre class="wiki"&gt;ProgrammingError: (ProgrammingError) relation "user" does not exist
&lt;/pre&gt;&lt;p&gt;
This is because the database tables have not been created - they have forgotten or missed the "paster db init" step.
&lt;/p&gt;
&lt;p&gt;
Can we provide a better error to say that the database is not initialised yet?
&lt;/p&gt;
&lt;h2 id="Implementationoptions"&gt;Implementation options&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;At the start of every request we reflect the database tables and check they are there. This is rather expensive!
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Uncached requests to the home page start with a cheap database query. If there is an exception then return this error about database setup. I really like Drupal's page for this that has in large letters that the site is currently off-line. Below a line, in small letters, there are developer suggestions on what is wrong and where to look to fix it.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1290</link>
        <guid isPermaLink="false">http://localhost/ticket/1290</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1291: Add activity and activity detail tables.</title>
                  <description>&lt;p&gt;
Add tables described in &lt;a class="ext-link" href="http://ckan.okfnpad.org/notifications"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/notifications&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1291</link>
        <guid isPermaLink="false">http://localhost/ticket/1291</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1292: Internationalization improvements</title>
                  <description>&lt;ul&gt;&lt;li&gt;Review process of releases and updating strings (pot) and translations (po) files
&lt;ul&gt;&lt;li&gt;c.f. &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2011-May/000718.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2011-May/000718.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Get language changing thing to get home page to mostly work - push to key strings translated (or don't advertise the translation?)
&lt;/li&gt;&lt;li&gt;Review long list of strings for improvement
&lt;ul&gt;&lt;li&gt;Consolidate any?
&lt;/li&gt;&lt;li&gt;Get rid of i18n for strings in api
&lt;/li&gt;&lt;li&gt;Try and remove javascript
&lt;/li&gt;&lt;li&gt;Add in extensions
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1374" title="defect: Can't switch to English if default is non-English (closed: fixed)"&gt;#1374&lt;/a&gt; Fix switching to en from other default language
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1417" title="defect: Browser language detection doesn't work (closed: fixed)"&gt;#1417&lt;/a&gt; Fix browser language detection
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1292</link>
        <guid isPermaLink="false">http://localhost/ticket/1292</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1293: Rename Package to Dataset throughout WUI, API</title>
                  <description>&lt;h2 id="Changes"&gt;Changes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;All templates
&lt;/li&gt;&lt;li&gt;[DONE] Routing: /package/ -&amp;gt; /dataset/ (including API)
&lt;/li&gt;&lt;li&gt;[DONE] Tests: self.app.get('/dataset/...') rather than package ...
&lt;ul&gt;&lt;li&gt;One test to check redirect works?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Docs
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Leave"&gt;Leave&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Stay with Package in code e.g. stay with '&lt;a class="missing wiki"&gt;PackageController?&lt;/a&gt;'
&lt;ul&gt;&lt;li&gt;also leave stuff like pkg = .... (gradual migration)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Leave extensions
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Package -&amp;gt; Dataset
&lt;/li&gt;&lt;li&gt;Data Package -&amp;gt; Dataset
&lt;/li&gt;&lt;li&gt;respect capitalization
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1293</link>
        <guid isPermaLink="false">http://localhost/ticket/1293</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1294: [super] Package creation and editing UX improvements</title>
                  <description>&lt;p&gt;
Largely an integration of work from ckanjs
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1295" title="enhancement: Simplify package create form (closed: fixed)"&gt;#1295&lt;/a&gt; Simplify package create form
&lt;/li&gt;&lt;li&gt;Improvements to edit form
&lt;ul&gt;&lt;li&gt;Split edit form into sections
&lt;/li&gt;&lt;li&gt;Remove preview from edit form (introduce inline preview on description/notes field)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1296" title="enhancement: Improved resource adding/editing on dataset/page page (closed: fixed)"&gt;#1296&lt;/a&gt; Improved resource adding/editing on dataset/page page
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/878" title="enhancement: Integrate file upload with workflow around package resources (closed: fixed)"&gt;#878&lt;/a&gt; File upload integrated into resource creation
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1297" title="enhancement: In-place preview of edited description markdown on edit dataset form (closed: fixed)"&gt;#1297&lt;/a&gt; In-place editing of notes field for existing packages
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1294</link>
        <guid isPermaLink="false">http://localhost/ticket/1294</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1295: Simplify package create form</title>
                  <description>&lt;p&gt;
Sub ticket of &lt;a class="closed ticket" href="http://localhost/ticket/1294" title="enhancement: [super] Package creation and editing UX improvements (closed: fixed)"&gt;#1294&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Initial screen just title, name, description (notes), license (and tags?).
&lt;/li&gt;&lt;li&gt;State that you can add data and more information on next screen. This takes you to Package 'view' where you can then do more stuff.
&lt;ul&gt;&lt;li&gt;Flash some instructions? e.g. that resources are missing?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Name slug should by default look uneditable (cf wordpress way to do the slug)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1295</link>
        <guid isPermaLink="false">http://localhost/ticket/1295</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1296: Improved resource adding/editing on dataset/page page</title>
                  <description>&lt;p&gt;
Subticket of &lt;a class="closed ticket" href="http://localhost/ticket/1294" title="enhancement: [super] Package creation and editing UX improvements (closed: fixed)"&gt;#1294&lt;/a&gt;.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Nice way to edit all resource attributes
&lt;/li&gt;&lt;li&gt;Nice way to add new resources
&lt;ul&gt;&lt;li&gt;Including file upload (cf &lt;a class="closed ticket" href="http://localhost/ticket/878" title="enhancement: Integrate file upload with workflow around package resources (closed: fixed)"&gt;#878&lt;/a&gt;).
&lt;ul&gt;&lt;li&gt;Cf work in ckanjs (this can be a straight integration).
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1296</link>
        <guid isPermaLink="false">http://localhost/ticket/1296</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1297: In-place preview of edited description markdown on edit dataset form</title>
                  <description>&lt;p&gt;
Subticket of &lt;a class="closed ticket" href="http://localhost/ticket/1294" title="enhancement: [super] Package creation and editing UX improvements (closed: fixed)"&gt;#1294&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Can integrate from working system on ckanjs.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1297</link>
        <guid isPermaLink="false">http://localhost/ticket/1297</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1298: Generate activites to be put into activities table.</title>
                  <description>&lt;p&gt;
This should be done from the logic layer or automatically from a session extension.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1298</link>
        <guid isPermaLink="false">http://localhost/ticket/1298</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1299: Activity streams table migration</title>
                  <description>&lt;p&gt;
Migrate tables for activity streams
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1299</link>
        <guid isPermaLink="false">http://localhost/ticket/1299</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1300: Core changes to base theme</title>
                  <description>&lt;p&gt;
Core changes to theme in order to make it easier to re-theme:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;page_heading
&lt;/li&gt;&lt;li&gt;side bar menu must be switchable (left to right) (through config or css)
&lt;/li&gt;&lt;li&gt;Add optional_footer to complement optional_head
&lt;ul&gt;&lt;li&gt;And adopt rule for template writers that all extra js must go in optional footer
&lt;/li&gt;&lt;li&gt;That way we could move optional js to the bottom of the page to improve page load times.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Re-add support for body-class ... (seems to be removed by &lt;a class="closed ticket" href="http://localhost/ticket/1108" title="enhancement: Create a more modern theme for CKAN (closed: fixed)"&gt;#1108&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;more divs.
&lt;/li&gt;&lt;li&gt;better labelling for css (and javascript)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1300</link>
        <guid isPermaLink="false">http://localhost/ticket/1300</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1301: Give access to extensions from the old formalchemy controllers</title>
                  <description>&lt;p&gt;
This was removed during the auth refactoring, but it's needed in the old controllers
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1301</link>
        <guid isPermaLink="false">http://localhost/ticket/1301</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1302: Move Resource and Tag search code to logic layer</title>
                  <description>&lt;p&gt;
Resource and Tag search is currently still using the old ckan query parser which is unnecessary. Refactor this out and move to the logic layer.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1302</link>
        <guid isPermaLink="false">http://localhost/ticket/1302</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1303: User can not login again if he has edited his profile</title>
                  <description>&lt;p&gt;
Only happens if the user does not update the password.
Most probably introduced during &lt;a class="closed ticket" href="http://localhost/ticket/1229" title="enhancement: Refactor all database code out of the controllers and into the logic layer (closed: fixed)"&gt;#1229&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1303</link>
        <guid isPermaLink="false">http://localhost/ticket/1303</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1304: Show more descriptive error messages when sending emails</title>
                  <description>&lt;p&gt;
Sending emails is failing in some cases, and the error message just says 'Could not send reset link'.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1304</link>
        <guid isPermaLink="false">http://localhost/ticket/1304</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1305: SMTP config for thedatahub.org and IATI</title>
                  <description>&lt;p&gt;
The email sending functionality (e.g for password reset) does not work on thedatahub.org and IATI (and probably some other instances) when using an address which is not a okfn.org one.
&lt;/p&gt;
&lt;p&gt;
Could not send reset link:
SMTPRecipientsRefused({u'amercadero@…': (550, 'relay not
permitted')},)
&lt;/p&gt;
&lt;p&gt;
As I said, adria.mercader@… works fine.
The SMTP server used mail.okfn.org
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1305</link>
        <guid isPermaLink="false">http://localhost/ticket/1305</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1306: Tests for the logic layer</title>
                  <description>&lt;p&gt;
AFAICT there are no tests for the logic layer at the moment. I imagine this is an issue (if it is not please explain and close as wontfix).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1306</link>
        <guid isPermaLink="false">http://localhost/ticket/1306</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1307: Implement captcha for signup</title>
                  <description>&lt;ul&gt;&lt;li&gt;Major issue with spam signup on thedatahub.org
&lt;/li&gt;&lt;li&gt;Suggest using recaptcha
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Est cost: 1d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1307</link>
        <guid isPermaLink="false">http://localhost/ticket/1307</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1308: 'create package' user case failure</title>
                  <description>&lt;p&gt;
On the CKAN home page there is no suggestion that you can add or register a dataset. The 'Register a dataset' option has been removed at some point! (only visible to users that have registered - why would they do that when the benefits aren't described?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1308</link>
        <guid isPermaLink="false">http://localhost/ticket/1308</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1309: Registering new user requires immediate login</title>
                  <description>&lt;p&gt;
Registering a new user directs you to that user's profile page but does not log you in. There is an empty set of "Recent changes" and no ability to modify the page. Users must follow the login link in the top-right corner to continue.
&lt;/p&gt;
&lt;p&gt;
Registering a new user should immediately log you in.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1309</link>
        <guid isPermaLink="false">http://localhost/ticket/1309</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1310: API GET of a revision that has been approved causes exception</title>
                  <description>&lt;p&gt;
e.g. this particular revision on ckan.net: &lt;a class="ext-link" href="http://ckan.net/api/rest/revision/9601fbcb-03a7-4ebc-981d-5aa16df4852c"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/rest/revision/9601fbcb-03a7-4ebc-981d-5aa16df4852c&lt;/a&gt;
(most others have not been approved)
Causes 500 error.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1310</link>
        <guid isPermaLink="false">http://localhost/ticket/1310</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1311: Modal user register and login form</title>
                  <description>&lt;p&gt;
Subticket of: &lt;a class="closed ticket" href="http://localhost/ticket/1294" title="enhancement: [super] Package creation and editing UX improvements (closed: fixed)"&gt;#1294&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Rather than having to visit a dedicated page it would be good if registration and login could be done from a modal form (separate or combined ...).
&lt;/p&gt;
&lt;h2 id="Why"&gt;Why&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;It could be used from dataset creation page in situations where user needs to be registered / logged in to create a dataset (so we could allow someone to start creating a dataset and only get them to login at the end ...)
&lt;/li&gt;&lt;li&gt;It allows for quicker and easier logging in
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;See Friedrich's work on the datahub
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1311</link>
        <guid isPermaLink="false">http://localhost/ticket/1311</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>florian.marienfeld@…</dc:creator>

                  <title>#1312: Particular characters in JSON cause exception creating package on API</title>
                  <description>&lt;p&gt;
From Florian:
&lt;/p&gt;
&lt;pre class="wiki"&gt;I am having trouble with the characters "=&amp;amp;;".
if they occur e.g. in the title of a package, I get a 400-Bad-Request
when I try to register a package by POSTing to ckan/rest/api/package
However, when I PUT the same package as an edit to
ckan/rest/api/package/existing_package, it works and the title shows
correctly on the front end and API.
&lt;/pre&gt;&lt;h2 id="Reproduced"&gt;Reproduced&lt;/h2&gt;
&lt;pre class="wiki"&gt;(pyenv-ckan)dread@dread-laptop:~/hgroot/ckan$ curl -i http://localhost:5000/api/rest/package -d '{"name": "test3", "title": "Test &amp;amp;"}' -H "Authorization:tester"
HTTP/1.0 400 Bad Request
Server: PasteWSGIServer/0.5 Python/2.6.5
Date: Tue, 06 Sep 2011 14:09:31 GMT
Pragma: no-cache
Cache-Control: no-cache
Content-Type: application/json;charset=utf-8
Content-Length: 87
"Bad request - JSON Error: Unterminated string starting at: line 1 column 27 (char 27)"
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1312</link>
        <guid isPermaLink="false">http://localhost/ticket/1312</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1313: Tweaks to captcha configuration</title>
                  <description>&lt;p&gt;
Awesome to have the captcha implementation and running on thedatahub.org! Here are some further
suggestions concerning the config options, before this goes into a release:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Document "ckan.recaptcha.publickey" and "ckan.recaptcha.privatekey" in doc/configuration.rst
&lt;/li&gt;&lt;li&gt;Which one config option defines whether recaptcha is enabled? There is disagreement between the template and the lib. Maybe better to have a third option for this. When setting the syntax for this, I can see us wanting to use captcha for other operations, like package edit, package create, group create etc. so perhaps we'd want to be able to turn each one on/off separately, using the name of the logic action. e.g. &lt;tt&gt;ckan.recaptcha.enable = user_create, group_create&lt;/tt&gt;
&lt;/li&gt;&lt;li&gt;We got this exception last night from the template:
&lt;pre class="wiki"&gt;Module ?:37 in &amp;lt;Expression u'g.recaptcha_publickey'&amp;gt;
&amp;lt;&amp;lt;          &amp;lt;dd&amp;gt;&amp;lt;input type="password" name="password2" value="" /&amp;gt;&amp;lt;/dd&amp;gt;
               &amp;lt;dd py:if="g.recaptcha_publickey"&amp;gt;
                 &amp;lt;script type="text/javascript"
                   src="http://www.google.com/recaptcha/api/challenge?k=${g.recaptcha_publickey}"&amp;gt;
&amp;gt;&amp;gt;  &amp;lt;dd py:if="g.recaptcha_publickey"&amp;gt;
Module genshi.template.eval:324 in lookup_attr
&amp;lt;&amp;lt;                      val = obj[key]
                       except (KeyError, TypeError):
                           val = cls.undefined(key, owner=obj)
               return val
&amp;gt;&amp;gt;  val = cls.undefined(key, owner=obj)
Module genshi.template.eval:410 in undefined
&amp;lt;&amp;lt;          """Raise an ``UndefinedError`` immediately."""
               __traceback_hide__ = True
               raise UndefinedError(key, owner=owner)
&amp;gt;&amp;gt;  raise UndefinedError(key, owner=owner)
UndefinedError: &amp;lt;ckan.lib.app_globals.Globals object at 0xb8f1182c&amp;gt; has no member named "recaptcha_publickey"
&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
I'm not sure why - might be something to do with the maintenance on the server, but worth double checking, since we don't want exceptions, say if one or other config variable is not defined.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1313</link>
        <guid isPermaLink="false">http://localhost/ticket/1313</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1314: ckanclient search - generator improvements</title>
                  <description>&lt;p&gt;
Apparently the search generator always makes two requests, even if you don't want to see the search results, which might be slow. Can this be optimised?
&lt;/p&gt;
&lt;p&gt;
Maybe we should also provide a second search function that doesn't use the generator - the original simple search function (that leaves the user to deal with limit &amp;amp; offset).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1314</link>
        <guid isPermaLink="false">http://localhost/ticket/1314</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1315: Document /api/action</title>
                  <description>&lt;p&gt;
We need some documentation for the /api/action. Even though it's beta and subject to change it would be good to have a guide.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1315</link>
        <guid isPermaLink="false">http://localhost/ticket/1315</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1316: /api/action uncaught exception if missing necessary parameter</title>
                  <description>&lt;pre class="wiki"&gt;curl http://ckan.net/api/action/package_show -d '{"name": "uk-quango-data"}'
&lt;/pre&gt;&lt;p&gt;
This gives 500 error due to &lt;a class="missing wiki"&gt;KeyError?&lt;/a&gt; (it looked for the 'id' param), rather than 400.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1316</link>
        <guid isPermaLink="false">http://localhost/ticket/1316</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1317: password reset - improve user search</title>
                  <description>&lt;p&gt;
In password reset, it gets confused if you have two similar users. This is because with the string the user provides, it searches several fields, not just name but also fullname and email address, allowing you to search for these. But only name is unique.
&lt;/p&gt;
&lt;p&gt;
Specific problem:
Ira searches for "Irina" then it finds both:
&lt;tt&gt;&amp;lt;User name=irina fullname=Irina email=irina.bolychevsky@okfn.org ]&lt;/tt&gt;
and
&lt;tt&gt;&amp;lt;User name=shevski fullname=Ira email=&amp;gt;&lt;/tt&gt;
(I think)
&lt;/p&gt;
&lt;p&gt;
Maybe need to choose which field it searches?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1317</link>
        <guid isPermaLink="false">http://localhost/ticket/1317</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1318: 'Register user' doesn't log you in</title>
                  <description>&lt;p&gt;
When you register a user, it doesn't seem to be logged in properly straight away. Top-right it invites you to "log in" and "register". Also the "create package" menu option doesn't appear. Going to /user/me sends you to login page. If you then login, then all these things are corrected.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1318</link>
        <guid isPermaLink="false">http://localhost/ticket/1318</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1319: Require an email address on User registration</title>
                  <description>&lt;p&gt;
Superticket: &lt;a class="new ticket" href="http://localhost/ticket/1343" title="enhancement: [super] User related improvements (login, user pages etc) (new)"&gt;#1343&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This avoids difficulties when they forget their password.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;(?) Email validation (navl does not have one!)
&lt;/li&gt;&lt;li&gt;Require email confirmation to be activated (?) (Answer: no, not at present -- see discussion below)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1319</link>
        <guid isPermaLink="false">http://localhost/ticket/1319</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1320: Extend basic markdown to support normal http / https links</title>
                  <description>&lt;p&gt;
It is very annoying that you have to wrap links in &amp;lt;...&amp;gt; and most people don't bother. Extend h.markdown in code and markdown in js to fix this.
&lt;/p&gt;
&lt;p&gt;
(We should also support 'package' links etc in javascript?)
&lt;/p&gt;
&lt;p&gt;
*ADDITIONAL*
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Note that CKAN flavoured markdown will not currently recognise dataset:my_data links (still uses package).
&lt;/li&gt;&lt;li&gt;Move the markdown api to /util/markdown
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1320</link>
        <guid isPermaLink="false">http://localhost/ticket/1320</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1321: Flash message deferred</title>
                  <description>&lt;p&gt;
When you reset a password, the flash message saying "check your email" sometimes doesn't display on the next page. You then click on the link in your email and it displays on that page (i.e. too late).
&lt;/p&gt;
&lt;p&gt;
Seen this on thedatahub.org. To do with the proxy caching?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1321</link>
        <guid isPermaLink="false">http://localhost/ticket/1321</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1322: Action API improvements</title>
                  <description>&lt;p&gt;
Focusing on improving Action API as the v3 API:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;have an optional parameter of the data_dict called "options".  Options would contain items that would get passed into the context. e.g. &lt;tt&gt;{"options" : {"ref_package_by": "id"}}. &lt;/tt&gt;
&lt;/li&gt;&lt;li&gt;instead of using API version to change the way packages are referenced, use the ref_package_by.
&lt;/li&gt;&lt;li&gt;All package_show, group_show etc. to accept an object 'name' as an alternative to object 'id'.
&lt;/li&gt;&lt;li&gt;Action API is v3 of api, replacement for v1 &amp;amp; v2. Default for most urls is still v1, but if url is /api/action then default to v3.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Next steps:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add search API (package, resource,
&lt;/li&gt;&lt;li&gt;Add Util API
&lt;/li&gt;&lt;li&gt;Clarify JSONP still applies
&lt;/li&gt;&lt;li&gt;Add doc strings, clarifying parameters
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1322</link>
        <guid isPermaLink="false">http://localhost/ticket/1322</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1323: GET /authorizationgroup causes Exception when logged in</title>
                  <description>&lt;p&gt;
on thedatahub.org
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1323</link>
        <guid isPermaLink="false">http://localhost/ticket/1323</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1324: Add extra fields to resource table</title>
                  <description>&lt;p&gt;
add extra fields to resource as outlined in
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://wiki.ckan.net/Domain_Model/Resource"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.net/Domain_Model/Resource&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Specifically (all unicode strings except for those noted):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;em&gt;name&lt;/em&gt;: a name for this resource (could be used in a ckan url)
&lt;/li&gt;&lt;li&gt;&lt;em&gt;type&lt;/em&gt;: the type of the resource. One of: file | api | service | listing
&lt;/li&gt;&lt;li&gt;&lt;em&gt;mimetype&lt;/em&gt;: standard mimetype (e.g. for zipped csv would be application/zip)
&lt;/li&gt;&lt;li&gt;&lt;em&gt;mimetype_inner&lt;/em&gt;: mimetype of innermost object (so for example would be text/csv)
&lt;/li&gt;&lt;li&gt;&lt;em&gt;size&lt;/em&gt;: [integer] size of the resource (content length) in bytes. Usually only relevant for resources of type file.
&lt;/li&gt;&lt;li&gt;&lt;em&gt;last_modified&lt;/em&gt;: [datetime] the date when this resource's data was last modified (NB: &lt;em&gt;not&lt;/em&gt; the date when the metadata was modified).
&lt;/li&gt;&lt;li&gt;cache_url: url for cache of object in ckan storage
&lt;/li&gt;&lt;li&gt;cache_last_updated: [datetime] timestamp when cached version was created
&lt;/li&gt;&lt;li&gt;webstore_url:
&lt;/li&gt;&lt;li&gt;webstore_last_updated: [datetime] timestamp when webstore was last updated
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1324</link>
        <guid isPermaLink="false">http://localhost/ticket/1324</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1325: python 2.5 incompatibilities</title>
                  <description>&lt;p&gt;
We claim to support Python 2.5 (useful for Lenny), yet a few problems have crept in:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;'with' statement requires &lt;tt&gt;from __future__ import with_statement&lt;/tt&gt;
&lt;/li&gt;&lt;li&gt;import json from ckan.lib.helpers, rather than directly, since it copes with reverting to simplejson, used in python 2.5.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1325</link>
        <guid isPermaLink="false">http://localhost/ticket/1325</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1326: Write a set of auth plugin functions to integrate with Druapl</title>
                  <description>&lt;p&gt;
Ticket &lt;a class="closed ticket" href="http://localhost/ticket/787" title="task: Auth API (closed: fixed)"&gt;#787&lt;/a&gt; described join auth between CKAN and Drupal. The authentication part is live and implemented. This ticket is a placeholder for work that will be needed in the new auth system to link authorization functions to Drupal. It is dependent on the groups refactor.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1326</link>
        <guid isPermaLink="false">http://localhost/ticket/1326</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1327: [super] Dataset Archiving</title>
                  <description>&lt;p&gt;
Split out of &lt;a class="closed ticket" href="http://localhost/ticket/852" title="enhancement: [super] Dataset upload and archiving (closed: fixed)"&gt;#852&lt;/a&gt;. Automated archiving of datasets (related to QA).
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt; Automated archiving using worker process &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/890" title="enhancement: Introduce timed actions into ckanext-queue (closed: invalid)"&gt;#890&lt;/a&gt; - Timed actions in ckanext-queue
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/891" title="task: Resource download worker daemon (closed: fixed)"&gt;#891&lt;/a&gt; - Resource download worker daemon
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/892" title="enhancement: Make stored data available in WUI - 0.5d (closed: fixed)"&gt;#892&lt;/a&gt; - Make stored data available in WUI
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1327</link>
        <guid isPermaLink="false">http://localhost/ticket/1327</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>minspamboks@…</dc:creator>

                  <title>#1328: Unicode &amp; paster commands</title>
                  <description>&lt;p&gt;
A possible bug in CKAN when I tried deleting users using "paster --plugin=ckan user delete" command.
&lt;/p&gt;
&lt;p&gt;
To reproduce the bug do the following:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Create a user with an ID (which in my case was a user's full name)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
that contains non-unicode caracters like Norwegian "æ", "ø", or "å".
&lt;/p&gt;
&lt;ol start="2"&gt;&lt;li&gt;Make sure that you can see something like the example below:
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
(pyenv) rm@mycomputer:$ paster --plugin=ckan user
Users:
name=Rustæm
&lt;/p&gt;
&lt;ol start="3"&gt;&lt;li&gt;Then try deleting the user with following command:
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
(pyenv) rm@mycomputer:$ paster --plugin=ckan user delete "Rustæm"
&lt;/p&gt;
&lt;p&gt;
You should now get a python encoding error. I know that this is quite
rare case, but in our case it caused some trouble. Could you guys have
a look at this bug?
&lt;/p&gt;
&lt;p&gt;
CKAN ver. 1.3.3.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1328</link>
        <guid isPermaLink="false">http://localhost/ticket/1328</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1329: i18n poor in some templates - missing i18n tags</title>
                  <description>&lt;p&gt;
Just a tip for developers regarding translations:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;When writing templates, mark &amp;lt;p&amp;gt;, &amp;lt;div&amp;gt;, etc elements with the
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
i18:msg attribute, otherwise the messages don't get extracted
properly.
&lt;/p&gt;
&lt;p&gt;
Good: &lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/templates/home/about.html#cl-40"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/templates/home/about.html#cl-40&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;p i18n:msg=""&amp;gt;More about CKAN, and the background to its creation can
   be found in &amp;lt;a
     href="http://m.okfn.org/files/talks/opentech_20080705/"&amp;gt;these
     slides&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;
&lt;/pre&gt;&lt;p&gt;
gives this:
&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/i18n/ca/LC_MESSAGES/ckan.po#cl-1238"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/i18n/ca/LC_MESSAGES/ckan.po#cl-1238&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Bad: &lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/templates/package/new_package_form.html#cl-211"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/templates/package/new_package_form.html#cl-211&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;p class="hints"&amp;gt;
&amp;lt;strong&amp;gt;Important:&amp;lt;/strong&amp;gt; By submitting content, you agree to
release your contributions
 under the &amp;lt;a href="http://opendatacommons.org/licenses/odbl/1.0/"&amp;gt;Open
Database License&amp;lt;/a&amp;gt;. Please &amp;lt;strong&amp;gt;refrain&amp;lt;/strong&amp;gt; from editing
this page if you are &amp;lt;strong&amp;gt;not&amp;lt;/strong&amp;gt; happy to do this.
&amp;lt;/p&amp;gt;
&lt;/pre&gt;&lt;p&gt;
gives this:
&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/i18n/ca/LC_MESSAGES/ckan.po#cl-1384"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/i18n/ca/LC_MESSAGES/ckan.po#cl-1384&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The message is split in different parts that not necessarily match the
grammar or syntax of the translated language.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1329</link>
        <guid isPermaLink="false">http://localhost/ticket/1329</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1330: Deprecate / Remove test_authz.py</title>
                  <description>&lt;p&gt;
test_authz.py appears to test in great detail some very specific additional authz (related to total site lock-down it seems -- introduced I think for hri project).
&lt;/p&gt;
&lt;p&gt;
I think there are simpler ways to get total site lockdown (use external auth!) and this test is slow and delicate (e.g. depends on specific words in templates). Suggest removing. If we don't remove we should at least refactor tests for access to certain pages to use a proper method of testing (e.g. agreed html comments in each page) rather than being depending on the presence of absence of specific wording.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1330</link>
        <guid isPermaLink="false">http://localhost/ticket/1330</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1331: Setting a tag twice causes exception</title>
                  <description>&lt;p&gt;
To reproduce:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Create a package with two tags the same: "bulk bulk"
&lt;/li&gt;&lt;li&gt;Click 'save'
&lt;/li&gt;&lt;li&gt;500 ERROR - 'Server Error'
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1331</link>
        <guid isPermaLink="false">http://localhost/ticket/1331</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1332: i18n IndexError exceptions</title>
                  <description>&lt;p&gt;
We get this i18n error for the URL &lt;a class="ext-link" href="http://no.ckan.net/authorizationgroup"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://no.ckan.net/authorizationgroup&lt;/a&gt; (which runs 1.4.2 with Norwegian translation). I'm not sure why it occurs. Fixing it is low importance though, because this site doesn't use Authorization Group feature
&lt;/p&gt;
&lt;p&gt;
Usually caused by bots. The user does not appear to be logged in.
&lt;/p&gt;
&lt;pre class="wiki"&gt;WebApp Error: &amp;lt;type 'exceptions.IndexError'&amp;gt;: list index out of range
...
Module genshi.filters.i18n:177 in _generate
&amp;lt;&amp;lt;                  msgbuf.append(*previous)
                       previous = None
                   for event in msgbuf.translate(gettext(msgbuf.format())):
                       yield event
                   if previous:
&amp;gt;&amp;gt;  for event in msgbuf.translate(gettext(msgbuf.format())):
Module genshi.filters.i18n:1029 in translate
&amp;lt;&amp;lt;                      )
               parts = parse_msg(string)
               parts_counter = {}
               for order, string in parts:
&amp;gt;&amp;gt;  parts = parse_msg(string)
Module genshi.filters.i18n:1143 in parse_msg
&amp;lt;&amp;lt;      if string:
               parts.append((stack[-1], string))
           return parts
&amp;gt;&amp;gt;  parts.append((stack[-1], string))
IndexError: list index out of range
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1332</link>
        <guid isPermaLink="false">http://localhost/ticket/1332</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1333: Move form converters to ckan core</title>
                  <description>&lt;p&gt;
Functions like convert_to_extras and convert_from_extras will be widely used from extensions and should be on ckan core.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1333</link>
        <guid isPermaLink="false">http://localhost/ticket/1333</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1334: "AttributeError: 'NoneType' object has no attribute 'name'" exception when logging in</title>
                  <description>&lt;p&gt;
On same cases this exception is thrown when logging in:
&lt;/p&gt;
&lt;pre class="wiki"&gt;File '/home/adria/dev/envs/iati/src/ckan/ckan/controllers/user.py', line 252 in logged_in
  user_dict = get_action('user_show')(context,data_dict)
File '/home/adria/dev/envs/iati/src/ckan/ckan/logic/action/get.py', line 414 in user_show
  revision_dict = revision_show(context,{'id':revision.id})
File '/home/adria/dev/envs/iati/src/ckan/ckan/logic/action/get.py', line 332 in revision_show
  ref_package_by=ref_package_by)
File '/home/adria/dev/envs/iati/src/ckan/ckan/model/__init__.py', line 317 in revision_as_dict
  for pkg in revision.packages]
AttributeError: 'NoneType' object has no attribute 'name'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1334</link>
        <guid isPermaLink="false">http://localhost/ticket/1334</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1335: Action API - basic</title>
                  <description>&lt;p&gt;
Provide an API to the logic layer at /api/action.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1335</link>
        <guid isPermaLink="false">http://localhost/ticket/1335</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1336: License fudge</title>
                  <description>&lt;p&gt;
cset:4b59ab34137d ckan/logic/action/get.py:
&lt;/p&gt;
&lt;pre class="wiki"&gt;-            isopen = model.Package.get_license_register()[license_id].isopen()
-            result_dict['isopen'] = isopen
+            try:
+                isopen = model.Package.get_license_register()[license_id].isopen()
+                result_dict['isopen'] = isopen
+            except KeyError:
+                # TODO: create a log message this error?
+                result_dict['isopen'] = False
&lt;/pre&gt;&lt;p&gt;
This change hides problems with the license server and returns potentially incorrect values for openness.
&lt;/p&gt;
&lt;p&gt;
This has been noted as 'temporary fix' but seems to be forgotten about, since it has been merged to default and gone into release 1.4.3.
&lt;/p&gt;
&lt;p&gt;
I suggest the licenses are cached (I thought this was already the case when CKAN first requests them after start-up?). I suggest failure would return 503.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1336</link>
        <guid isPermaLink="false">http://localhost/ticket/1336</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1337: Group extras are JSON endoded in the REST API responses</title>
                  <description>&lt;p&gt;
Instead of this:
&lt;/p&gt;
&lt;pre class="wiki"&gt;extras: {
type: ""Primary source""
license_id: ""localauth-withrights""
publisher_frequency: ""2Pre\u00f1o \u20ac $ \u00e0dri\u00e0""
}
&lt;/pre&gt;&lt;p&gt;
we should return this:
&lt;/p&gt;
&lt;pre class="wiki"&gt;extras: {
type: "Primary source",
license_id: "localauth-withrights",
publisher_frequency: "2Preño € $ àdrià",
}
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1337</link>
        <guid isPermaLink="false">http://localhost/ticket/1337</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1338: Exception when trying to use a custom form schema from an extension</title>
                  <description>&lt;p&gt;
Both with the package and group controllers, when overriding the default _db_to_form_schema method (which does nothing) from an extension, you get an exception because the context is not passed to the validators.
&lt;/p&gt;
&lt;pre class="wiki"&gt;File '/home/adria/dev/envs/iati/src/ckan/ckan/controllers/group.py', line 140 in edit
  old_data, errors = validate(old_data, schema)
File '/home/adria/dev/envs/iati/src/ckan/ckan/lib/navl/dictization_functions.py', line 215 in validate
  converted_data, errors = _validate(flattened, schema, context)
File '/home/adria/dev/envs/iati/src/ckan/ckan/lib/navl/dictization_functions.py', line 270 in _validate
  convert(converter, key, converted_data, errors, context)
File '/home/adria/dev/envs/iati/src/ckan/ckan/lib/navl/dictization_functions.py', line 178 in convert
  converter(key, converted_data, errors, context)
File '/home/adria/dev/envs/iati/src/ckan/ckan/logic/validators.py', line 108 in group_name_validator
  model = context['model']
KeyError: 'model'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1338</link>
        <guid isPermaLink="false">http://localhost/ticket/1338</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1339: Issues / question re navl and data conversion</title>
                  <description>&lt;p&gt;
I ran into a bug with the size field on resources.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;It would not accept an empty value from form (IMO this clearly equates to null/None)
&lt;/li&gt;&lt;li&gt;This could be fixed via using ignore_empty instead of ignore_missing
&lt;/li&gt;&lt;li&gt;However using this means there was no way to empty the field (e.g. i may just want to set the size field back to null not just change to another value)
&lt;/li&gt;&lt;li&gt;similar issues could arise around other fields (such as last_modified ...)
&lt;ul&gt;&lt;li&gt;cf cset:645031d07b60
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
To solve this (cset:58acdcfe6d4e) i created an int_converter temporarily in logic/schema.py (this is almost certainly the wrong place). But I think it raises a bigger issue about the conversion layer and how it works.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1339</link>
        <guid isPermaLink="false">http://localhost/ticket/1339</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1340: Editing non-existent group causes Exception</title>
                  <description>&lt;p&gt;
e.g. &lt;a class="ext-link" href="http://ckan.net/group/edit/history"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/group/edit/history&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.group:135 in edit
&amp;lt;&amp;lt;          try:
                   old_data = get_action('group_show')(context, data_dict)
                   c.grouptitle = old_data.get('title')
                   c.groupname = old_data.get('name')
&amp;gt;&amp;gt;  old_data = get_action('group_show')(context, data_dict)
Module ckan.logic.action.get:347 in group_show
&amp;lt;&amp;lt;      if group is None:
               raise NotFound
           check_access('group_show',context, data_dict)
&amp;gt;&amp;gt;  raise NotFound
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1340</link>
        <guid isPermaLink="false">http://localhost/ticket/1340</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1341: Delete spam users from ckan</title>
                  <description>&lt;p&gt;
Spam users where added to thedatahub and we need to clean them.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1341</link>
        <guid isPermaLink="false">http://localhost/ticket/1341</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1342: Home controller does not capture SearchError exceptions</title>
                  <description>&lt;p&gt;
If there is a problem with the SOLR connection,the home page just shows a 500 Server error, instead of a notice (the package controller shows a notice when visiting &lt;a class="ext-link" href="http://localhost:5000/dataset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/dataset&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
Steps to reproduce:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Change the solr_url parameter in the ini file to something non-existant
&lt;/li&gt;&lt;li&gt;Visit &lt;a class="ext-link" href="http://localhost:5000"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1342</link>
        <guid isPermaLink="false">http://localhost/ticket/1342</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1343: [super] User related improvements (login, user pages etc)</title>
                  <description>&lt;ul&gt;&lt;li&gt;Disallow account creation via openid - &lt;a class="closed ticket" href="http://localhost/ticket/1386" title="enhancement: Disallow account creation via openid (closed: fixed)"&gt;#1386&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Require email field - &lt;a class="closed ticket" href="http://localhost/ticket/1319" title="enhancement: Require an email address on User registration (closed: fixed)"&gt;#1319&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Require email confirmation to be activated (?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Improvements to user page (e.g. show activity and more info about user) - &lt;a class="closed ticket" href="http://localhost/ticket/1396" title="enhancement: Improvements to user page UX - 1d (closed: fixed)"&gt;#1396&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Modal user login - &lt;a class="new ticket" href="http://localhost/ticket/1311" title="enhancement: Modal user register and login form (new)"&gt;#1311&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1343</link>
        <guid isPermaLink="false">http://localhost/ticket/1343</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1344: datetime error json conversion on search</title>
                  <description>&lt;p&gt;
Json decoding error on search, due to date in resources.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1344</link>
        <guid isPermaLink="false">http://localhost/ticket/1344</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1345: Investigate possible memory leak</title>
                  <description>&lt;p&gt;
There is some evidence pointing to CKAN handling memory inefficiently or even leaking under certain conditions:
&lt;/p&gt;
&lt;p&gt;
When we migrated ckan.net/thedatahub.org from eu7.okfn.org (32bit) to s053.okserver.org (64bit) (&lt;a class="ext-link" href="http://trac.okfn.org/ticket/882"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;ticket&lt;/a&gt;) we experienced extraordinary memory usage peaks (&lt;a class="ext-link" href="http://trac.okfn.org/ticket/904"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;ticket&lt;/a&gt;). Here are the observed value with Apache default settings:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;eu7, mpm-prefork: base level ~0.6GB, peaks up to 2GB
&lt;/li&gt;&lt;li&gt;s055, mpm-prefork: base level ~1GB, peaks up to 4GB
&lt;/li&gt;&lt;li&gt;s055, mpm-worker: base level ~1.5GB, peaks up to 6GB
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
William reduced the life-time of a WSGI CKAN process from 500 requests down to 25 requests (&lt;a class="ext-link" href="https://bitbucket.org/okfn/sysadmin/changeset/126290aead28"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;changeset&lt;/a&gt;). This (together with two other tweaks) changed the situation drastically:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;s055, mpm-event: base level ~1.4GB, no peaks
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This suggests that the more requests a CKAN processes serves over time, the more memory it consumes, aka bad memory management or a leak.
&lt;/p&gt;
&lt;p&gt;
To prove this theory, one could reduce the total number of WSGI CKAN processes as much as possible without killing the performance (e.g. down to &lt;em&gt;processes=3&lt;/em&gt;), and then observing the relation between &lt;em&gt;maximum-requests=25...500&lt;/em&gt; and memory consumption.
&lt;/p&gt;
&lt;p&gt;
On 14/09/11 17:49, David Read wrote:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Someone to do a bit of top-down memory-use profiling would be very useful. Also useful would be something in the tests that reported what test cases use lots of memory - this could be in the nose plugin.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
+1
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1345</link>
        <guid isPermaLink="false">http://localhost/ticket/1345</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1346: 'get_authorization_group_dict not found' exception</title>
                  <description>&lt;p&gt;
This stems from a feature to allow you to prefill fields in the authorizationgroup creation form.
&lt;/p&gt;
&lt;p&gt;
e.g. &lt;a class="ext-link" href="http://ckan.net/authorizationgroup/new?name=science"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/authorizationgroup/new?name=science&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
It's not tested, not supported in the new logic layer and therefore broken. I don't think anyone uses it - can remove it.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1346</link>
        <guid isPermaLink="false">http://localhost/ticket/1346</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1347: Exception caused by New Group form POST with bad formed parameter</title>
                  <description>&lt;p&gt;
Exception caused by bots POSTing 'new group' form, but with bad (old-style) parameters.
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;type 'exceptions.ValueError'&amp;gt;: invalid literal for int() with base 10: 'cache'
...
Module ckan.controllers.group:102 in new
&amp;lt;&amp;lt;          if context['save'] and not data:
                   return self._save_new(context)
               data = data or {}
&amp;gt;&amp;gt;  return self._save_new(context)
Module ckan.controllers.group:152 in _save_new
&amp;lt;&amp;lt;          try:
                   data_dict = clean_dict(unflatten(
                       tuplize_dict(parse_params(request.params))))
                   context['message'] = data_dict.get('log_message', '')
                   group = create.group_create(data_dict, context)
&amp;gt;&amp;gt;  tuplize_dict(parse_params(request.params))))
Module ckan.logic:57 in tuplize_dict
&amp;lt;&amp;lt;          for num, key in enumerate(key_list):
                   if num % 2 == 1:
                       key_list[num] = int(key)
               tuplized_dict[tuple(key_list)] = value
           return tuplized_dict
&amp;gt;&amp;gt;  key_list[num] = int(key)
ValueError: invalid literal for int() with base 10: 'cache'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1347</link>
        <guid isPermaLink="false">http://localhost/ticket/1347</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1348: UX polishing (dataset create/view/edit experience)</title>
                  <description>&lt;p&gt;
Tweaking UIs and polishing the work done in &lt;a class="closed ticket" href="http://localhost/ticket/1294" title="enhancement: [super] Package creation and editing UX improvements (closed: fixed)"&gt;#1294&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
## Edit Page ##
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[Done; cset:49e0b059b6f5] Hide upload if  storage not enabled
&lt;/li&gt;&lt;li&gt;[Done; cset:81ff13b42dad] Make 'Add resource' links on edit page clearer and more button-like.
&lt;/li&gt;&lt;li&gt;[Done; cset:03904fc50cbf] Move edit form tabs to the left
&lt;/li&gt;&lt;li&gt;[Done; cset:fde26b87d6ce] API placeholder text should not link to a CSV file
&lt;/li&gt;&lt;li&gt;[Done] We used to autocomplete the format field - restore this functionality
&lt;ul&gt;&lt;li&gt;Works on live. My local db has an empty 'resource_revision' table; maybe 'paster create-test-data' should insert something here?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[Done; cset:1aab499d73db] Summary should contain 'name' (or, if unavailable, use description. Long term: description is to be deprecated)
&lt;/li&gt;&lt;li&gt;[Done] Remove/move instructions where possible (a lot could just be placeholder text on the elements) (other stuff could only show on hover)
&lt;ul&gt;&lt;li&gt;NB: reveal_instructions.js already disabled on edit page
&lt;/li&gt;&lt;li&gt;[RP] have now done this on create -- think we can leave on edit
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[Done; cset:755b1a622199] We have broken 'error' reporting for resource issues. Either need to move that into error summary or somehow not destroy it when we rewrite table on page load ...
&lt;/li&gt;&lt;li&gt;[Done; cset:7ad090cb7855] Add slideDown to Resource expanded view
&lt;/li&gt;&lt;li&gt;[Done; cset:d3595143e506] Need ability to delete resources
&lt;ul&gt;&lt;li&gt;No thought yet given to uploaded resources. Long term re-think probable.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[Done; cset:2430a68a59fc] Empty resource table to resemble view page ("no resources" text)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
## General ##
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[Done; cset:cc0ad47293e5] Highlight the package tab I'm on (view/edit/history)
&lt;ul&gt;&lt;li&gt;More generally, the presence of the #minornavigation bar is very inconsistent throughout the site.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[Done; cset:d5babc3629cf] Remove 'license' filtered search from backend
&lt;/li&gt;&lt;li&gt;[Done] Move script stuff to footer of page
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1348</link>
        <guid isPermaLink="false">http://localhost/ticket/1348</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1349: Template tidying</title>
                  <description>&lt;p&gt;
Various things in templates can be tidied up after work has finished on &lt;a class="closed ticket" href="http://localhost/ticket/1294" title="enhancement: [super] Package creation and editing UX improvements (closed: fixed)"&gt;#1294&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;remove styling in page in group/index.html (put in css main)
&lt;ul&gt;&lt;li&gt;ditto for package/search.html
&lt;/li&gt;&lt;li&gt;ditto for home/index.html
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Forms.css - to merge into style.css; remove explicit imports elsewhere
&lt;ul&gt;&lt;li&gt;@import at the top of style.css @import url(forms.css)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Make a note: Success/failure controllers clash CSS with success/failure flash banners
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1349</link>
        <guid isPermaLink="false">http://localhost/ticket/1349</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1350: i18n of new javascript</title>
                  <description>&lt;p&gt;
New js code running produced in the work following &lt;a class="closed ticket" href="http://localhost/ticket/1294" title="enhancement: [super] Package creation and editing UX improvements (closed: fixed)"&gt;#1294&lt;/a&gt; contains various string literals, and needs proper internationalisation.
&lt;/p&gt;
&lt;p&gt;
See files:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;application.js
&lt;/li&gt;&lt;li&gt;templates.js
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Furthermore, efforts can be made to tidy up strings as described in &lt;a class="closed ticket" href="http://localhost/ticket/1329" title="defect: i18n poor in some templates - missing i18n tags (closed: fixed)"&gt;#1329&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1350</link>
        <guid isPermaLink="false">http://localhost/ticket/1350</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1351: Tidy edit-user form; strip preview functionality</title>
                  <description>&lt;p&gt;
The template for editing a user's profile seems to output the same form twice in one page.
Furthermore, the page is made needlessly complex by the preview functionality. The neat inline preview used in package will make this page a lot neater.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Fix the duplicate form
&lt;/li&gt;&lt;li&gt;Strip the preview functionality from the front-end, replacing it with js editor
&lt;/li&gt;&lt;li&gt;Strip the preview functionality from the back-end and test
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1351</link>
        <guid isPermaLink="false">http://localhost/ticket/1351</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1352: Use logic functions instead of as_dict when indexing entities</title>
                  <description>&lt;p&gt;
The current search implementation uses the output of the the as_dict method of the domain Package object to update the index
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan/src/56c79e3fc44c/ckan/lib/search/index.py#cl-48"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan/src/56c79e3fc44c/ckan/lib/search/index.py#cl-48&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
It also uses package_to_api1 in the &lt;a class="missing wiki"&gt;SynchronousSearch?&lt;/a&gt; plugin:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan/src/f9dfb0506594/ckan/lib/search/__init__.py#cl-93"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan/src/f9dfb0506594/ckan/lib/search/__init__.py#cl-93&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This prevents extensions from being able to index custom properties (e.g. faceting by custom extras not included in the model).
&lt;/p&gt;
&lt;p&gt;
The search should use the logic function to get the package properties:
&lt;/p&gt;
&lt;pre class="wiki"&gt;get_action('package_show')(context,data_dict)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1352</link>
        <guid isPermaLink="false">http://localhost/ticket/1352</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nickstenning</dc:creator>

                  <title>#1353: No UI to remove resources</title>
                  <description>&lt;p&gt;
I have no idea whether this was a deliberate decision or not, but there is a total absence of any UI with which to delete resources from the currently deployed version of thedatahub.org.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1353</link>
        <guid isPermaLink="false">http://localhost/ticket/1353</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1354: Pass the context object to plugins implementing the IPackageController and IGroupController</title>
                  <description>&lt;p&gt;
Plugins implementing some IPackageController or IGroupController operations (i.e. read, create, edit, delete) may need the context used in the logic action. For instance, to access the Session that created a package to perform additional queries from the extension (In that case the main logic action will still perform the final commit).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1354</link>
        <guid isPermaLink="false">http://localhost/ticket/1354</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1355: Package extras property does not include the newly created ones</title>
                  <description>&lt;p&gt;
The extras in the package object sent to the extensions after editing (&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan/src/01efd5649c10/ckan/logic/action/update.py#cl-226"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan/src/01efd5649c10/ckan/logic/action/update.py#cl-226&lt;/a&gt;) do not include the newly added.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1355</link>
        <guid isPermaLink="false">http://localhost/ticket/1355</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1356: Can not recreate a deleted extra</title>
                  <description>&lt;p&gt;
If you delete an extra and later on change your mind, you can not recreate it with the same value (Different value works fine).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1356</link>
        <guid isPermaLink="false">http://localhost/ticket/1356</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1357: Integrate new version of data preview</title>
                  <description>&lt;p&gt;
We have an all new and much improved data preview system developed as part of QA in July. Need to integrate this.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Is pure javascript
&lt;/li&gt;&lt;li&gt;Will have this in CKAN core but considered to be a plugin (so need datapreview in ckan.plugins list to work -- will enable this by default)
&lt;/li&gt;&lt;li&gt;Will depend on the &lt;a class="ext-link" href="http://wiki.ckan.org/DataExplorer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/DataExplorer&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1357</link>
        <guid isPermaLink="false">http://localhost/ticket/1357</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1358: Generate configuration documentation automatically from the deployment_ini_tmpl file</title>
                  <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>
        <link>http://localhost/ticket/1358</link>
        <guid isPermaLink="false">http://localhost/ticket/1358</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1359: Radically simplify standard list of licenses</title>
                  <description>&lt;p&gt;
Major UX grip and incredibly simple to do. May also want to have basic autocomplete support within the list (trivial to do as well I believe).
&lt;/p&gt;
&lt;p&gt;
(Talk to RP about this re how we define lists of licenses).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1359</link>
        <guid isPermaLink="false">http://localhost/ticket/1359</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1360: Remove support for filter by download and filter by openness in search</title>
                  <description>&lt;p&gt;
Deliver little user benefit and easier just to search and then see what is listed as open and with resources.
&lt;/p&gt;
&lt;h2 id="ImplementationDetails"&gt;Implementation Details&lt;/h2&gt;
&lt;p&gt;
Areas to fix:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;UI
&lt;/li&gt;&lt;li&gt;lib/search/...
&lt;/li&gt;&lt;li&gt;tests
&lt;/li&gt;&lt;li&gt;...?
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Cost"&gt;Cost&lt;/h2&gt;
&lt;p&gt;
Est: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1360</link>
        <guid isPermaLink="false">http://localhost/ticket/1360</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1361: Simple search support</title>
                  <description>&lt;p&gt;
Would be nice if CKAN could work out of the box without the need for SOLR (solr is great but complex and heavyweight to install).
&lt;/p&gt;
&lt;p&gt;
Propose:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ckan.simple_search config option
&lt;/li&gt;&lt;li&gt;If set:
&lt;ul&gt;&lt;li&gt;query via simple query to database backend
&lt;/li&gt;&lt;li&gt;do no specialized indexing
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Extras"&gt;Extras&lt;/h2&gt;
&lt;p&gt;
Remove
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="missing wiki"&gt;TagSearchQuery?&lt;/a&gt; from lib/search (just do a search directly)?
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1360" title="enhancement: Remove support for filter by download and filter by openness in search (closed: fixed)"&gt;#1360&lt;/a&gt;: filter by downloadable and filter by open search options
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="PossibleExtras"&gt;Possible Extras&lt;/h2&gt;
&lt;p&gt;
(Probably future improvements)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Re-introduce full-text search indexing where supported in e.g. postgres and use for querying
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1361</link>
        <guid isPermaLink="false">http://localhost/ticket/1361</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1362: Clearing the database should also clear the search index</title>
                  <description>&lt;p&gt;
When paster db clean is run, the search index should also be cleared.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1362</link>
        <guid isPermaLink="false">http://localhost/ticket/1362</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1363: Add task_status table to store qa/archiever/webstore information that does not need to be versioned.</title>
                  <description>&lt;pre class="wiki"&gt;table: task_status
id
entity_id
entity_type
task_type
key
value
last_updated
state
unique(entity_id, task_type, key)
example keys:
last_task_id
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1363</link>
        <guid isPermaLink="false">http://localhost/ticket/1363</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1364: If package in index that is not in ckan error is caused.</title>
                  <description>&lt;p&gt;
We should ignore these but log the packages that are causing this to investigate.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1364</link>
        <guid isPermaLink="false">http://localhost/ticket/1364</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1365: Support old search formats</title>
                  <description>&lt;p&gt;
Lots of things rely on the old (i.e. pre-SOLR) search param formats, including ckanclient / DGU. Need a translation layer to convert these params (in api v1&amp;amp;2) to SOLR syntax.
&lt;/p&gt;
&lt;p&gt;
This functionality was broken by the changes in &lt;a class="closed ticket" href="http://localhost/ticket/1277" title="enhancement: Use solr query parser for search instead of ckan query parser (closed: fixed)"&gt;#1277&lt;/a&gt; which went into 1.5a
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1365</link>
        <guid isPermaLink="false">http://localhost/ticket/1365</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1366: Search inside extra fields</title>
                  <description>&lt;p&gt;
SOLR search doesn't support searching for part of an extra field, but it does for other fields.
&lt;/p&gt;
&lt;p&gt;
i.e. title="One Two Three" matches q=one AND q=title:one
and geographic_coverage="England Scotland" matches q=England BUT NOT q=geographic_coverage:England
&lt;/p&gt;
&lt;p&gt;
This problem emerged when we went to SOLR in &lt;a class="closed ticket" href="http://localhost/ticket/1275" title="enhancement: Move solr search extension to ckan core (closed: fixed)"&gt;#1275&lt;/a&gt; (CKAN 1.5a). Tests were skipped.
&lt;/p&gt;
&lt;p&gt;
This is could be a problem for DGU and maybe elsewhere.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1366</link>
        <guid isPermaLink="false">http://localhost/ticket/1366</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1367: PyPI ckan broken</title>
                  <description>&lt;p&gt;
manifest.cfg was not included in the pypi package, causing &lt;a class="missing wiki"&gt;InvalidRepositoryError?&lt;/a&gt; when you do 'paster db init'.
&lt;/p&gt;
&lt;p&gt;
Appears to affect most CKAN PyPI releases up to and including 1.4.3.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1367</link>
        <guid isPermaLink="false">http://localhost/ticket/1367</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1368: UX polishing and bugfixes</title>
                  <description>&lt;p&gt;
From Ira:
PDF of bugs and suggestions is attached.
&lt;/p&gt;
&lt;p&gt;
This ticket is included in release v1.5. Post-v1.5 UX improvements are collected in &lt;a class="closed ticket" href="http://localhost/ticket/1404" title="enhancement: Search Page UI improvements (closed: wontfix)"&gt;#1404&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt; DONE ?&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[dataset/edit]: Deletions are confirmed with a dialog box
&lt;/li&gt;&lt;li&gt;[dataset/edit]: Long URLs break the edit resources tab. Show name (&amp;amp; 'no name') with a pencil icon.
&lt;/li&gt;&lt;li&gt;[dataset/edit]: Rearrange the delete resources mechanism;
&lt;ul&gt;&lt;li&gt;Use a little minus icon on the far left, followed by a pencil icon for editing.
&lt;/li&gt;&lt;li&gt;The 'delete resource' button can become 'hide'
&lt;/li&gt;&lt;li&gt;Deletions are confirmed with a dialog box
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[dataset/edit]: Rearrange the 'you have unsaved changes' warning;
&lt;ul&gt;&lt;li&gt;Delete the little green plus sign on the right;
&lt;/li&gt;&lt;li&gt;Try a flash banner instead (more general purpose &amp;amp; beautiful)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[dataset/edit]: Try a pencil icon (+'hide' button) rather than the +/- buttons which look a bit like you're adding a dataset.
&lt;/li&gt;&lt;li&gt;[dataset/view]: Subscribe button (&amp;amp; subscribe to history) doesn't work as expected. Modal dialog carrying instructions?
&lt;/li&gt;&lt;li&gt;[dataset/view]: Drop the 'add to a group&amp;gt;&amp;gt;' and 'add tag&amp;gt;&amp;gt;'. Needs inline tag-adder.
&lt;/li&gt;&lt;li&gt;[markdown editor]: Tab colours confuse the user. Inactive button appears to be greyed out.
&lt;/li&gt;&lt;li&gt;[dataset/edit]: The upload file UI mutates and breaks across lines; make it a little more rigid. Verify at different zoom levels.
&lt;/li&gt;&lt;li&gt;[groups/add]: Hide unimportant fields
&lt;/li&gt;&lt;li&gt;[navigation] Add 3D bevel (@see github) to current tab highlight.
&lt;/li&gt;&lt;li&gt;[dataset/create and groups/create]: Slug generator can be tidied. Default: Not editable. @see &lt;a class="ext-link" href="http://groupspaces.com/a/group/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://groupspaces.com/a/group/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;[groups/view]: Show description and owner. To match dataset section.
&lt;/li&gt;&lt;li&gt;[groups/authz]: Tidy to match admin/authz (pretty buttons &amp;amp; spacing). Add navigation bar.
&lt;/li&gt;&lt;li&gt;[groups]: Entire section to use pretty buttons please.
&lt;/li&gt;&lt;li&gt;[about]: Get the about page working on test.ckan.org. (Works locally and on live).
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="missing wiki"&gt; WONTFIX ?&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;[dataset/edit]: Make 'tags' a top level form section; it is too important to go below the fold.&lt;/del&gt; (wontfix)
&lt;/li&gt;&lt;li&gt;&lt;del&gt;[groups]: Clicking a column heading should sort by that column. Default should be 'size', not 'name'.&lt;/del&gt; (ticket &lt;a class="new ticket" href="http://localhost/ticket/1403" title="enhancement: Refactor groups index page (new)"&gt;#1403&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;&lt;del&gt;([groups]: (Investigate) Is it easy to implement a little search-groups feature?)&lt;/del&gt; (ticket &lt;a class="new ticket" href="http://localhost/ticket/1403" title="enhancement: Refactor groups index page (new)"&gt;#1403&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;&lt;del&gt;[*/authz]: Add tooltips to explain column headers. (Not required if mechanism is about to be refactored...)&lt;/del&gt; (wontfix: we need to rethink this mechanism; authorization refactor is coming)
&lt;/li&gt;&lt;li&gt;&lt;del&gt;[general]: 'Authorization' refactor to 'Permissions' on nav-bars.&lt;/del&gt; (wontfix, further discussion. authorization might be less techy...)
&lt;/li&gt;&lt;li&gt;&lt;del&gt;[search]: (Investigate) Can we quickly &amp;amp; easily reintegrate the faceted search-by-license but present it in the sidebar like the other facets?&lt;/del&gt; (wontfix: high cost and maintenance overhead; need compelling user story)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1368</link>
        <guid isPermaLink="false">http://localhost/ticket/1368</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1369: Remove showdown.js from the page download</title>
                  <description>&lt;p&gt;
ckan.js can be rearchitected to avoid instantiating showdown.js in the root namespace. That way, layout_base.html doesn't need to import the script (because we don't use the showdown-dependant parts of ckan.js).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1369</link>
        <guid isPermaLink="false">http://localhost/ticket/1369</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1370: [super] Social sharing for datasets (and resources)</title>
                  <description>&lt;p&gt;
Add a way to share datasets and see mentions of datasets on twitter (and elsewhere)
&lt;/p&gt;
&lt;p&gt;
As a visitor I want to share a link to a dataset I have found. I also want to see how many others have shared this (or mentioned it).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Sharing platform: simplest option is probably twitter but could generalize to e.g. sharethis system which supports, facebook, twitter etc etc.
&lt;ul&gt;&lt;li&gt;Will need a config option for relevant API key e.g. ckan.sharethis.apikey
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Location: Put this at top of sidebar on dataset view (a better suggsetion?)
&lt;/li&gt;&lt;li&gt;Should show how many mentions / shares there are. (very important!)
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Discussion"&gt;Discussion&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;(Tom and Ira and ...): do we really want this, versus e.g. proper follow extension?
&lt;/li&gt;&lt;li&gt;What about bringing conversation back in to CKAN. E.g. show all times this dataset (i.e. its url) was mentioned on twitter. If we do this I think this should be definite +1.
&lt;/li&gt;&lt;li&gt;Also, given our users, I think just doing twitter (identica) may be sufficient (how many people want to share links to datasets on facebook?)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1370</link>
        <guid isPermaLink="false">http://localhost/ticket/1370</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1371: Make logic layer functions for working with task_status table</title>
                  <description>&lt;p&gt;
The background tasks will use the logic API to access the task_status table so new logic layer functions are needed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1371</link>
        <guid isPermaLink="false">http://localhost/ticket/1371</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1372: Refactor archiver to work as a celery task</title>
                  <description>&lt;p&gt;
Take the resource archiver (currently part of ckanext-qa) and make it into a standalone extension that works as a celery task.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1372</link>
        <guid isPermaLink="false">http://localhost/ticket/1372</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1373: home page view does not react to logging in / out</title>
                  <description>&lt;p&gt;
Either: thedatahub.org does not display 'add a dataset' top navigation link or the 'create dataset' main central link to logged in user - instead showing 'sign up' link in the central box. It does however display the 'my account' and 'logout' link in the top right correctly.
&lt;/p&gt;
&lt;p&gt;
Navigating to another part of the site (e.g. search or about or my account) does bring the 'add a dataset' navigation link back and the functionality works.
&lt;/p&gt;
&lt;p&gt;
Works fine on test.ckan.net so only on thedatahub.
&lt;/p&gt;
&lt;p&gt;
Not obviously a caching problem, since I did try clearing cache.
&lt;/p&gt;
&lt;p&gt;
OR: it displays as if you're logged in even when you log out. The links doesn't work and prompt you to log in though.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1373</link>
        <guid isPermaLink="false">http://localhost/ticket/1373</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1374: Can't switch to English if default is non-English</title>
                  <description>&lt;p&gt;
e.g. cz.ckan.net defaults to Czech (config option lang=cs_CZ) but it fails when you try to switch to English.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1374</link>
        <guid isPermaLink="false">http://localhost/ticket/1374</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1375: Define new package id before sending it to the IPackageController plugins</title>
                  <description>&lt;p&gt;
When creating a package, the package_create logic function sends the newly created package object to all plugins implementing the IPackageController interface
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://bitbucket.org/okfn/ckan/src/93194933ea75/ckan/logic/action/create.py#cl-64"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckan/src/93194933ea75/ckan/logic/action/create.py#cl-64&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
At this point, the changes have not yet been commited and the id of the package is not set (It has a default value of make_uuid, which is set when commited). For this reason, plugins have no way of knowing the package id. E.g. the spatial query plugin needs to know this id to link the package extent to the actual package.
&lt;/p&gt;
&lt;p&gt;
One possible solution would be to set the package id in the data dict received by package_create (if it's not defined):
&lt;/p&gt;
&lt;pre class="wiki"&gt;from ckan.model.types import make_uuid
if not 'id' in data or not data['id']:
   data['id'] = make_uuid()
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1375</link>
        <guid isPermaLink="false">http://localhost/ticket/1375</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1376: 404 raised when approving package</title>
                  <description>&lt;p&gt;
Regression found by updating datacatalogs.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1376</link>
        <guid isPermaLink="false">http://localhost/ticket/1376</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1377: Ckan admin repair</title>
                  <description>&lt;p&gt;
Integrating ckanext-admin into core has thrown up a number of problems:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Look &amp;amp; feel does not match the rest of the site
&lt;/li&gt;&lt;li&gt;Tests are not passing
&lt;/li&gt;&lt;li&gt;On the trash page, clicking 'undelete' triggers a purge
&lt;/li&gt;&lt;li&gt;Using the purge functionality is dangerous; deleting and purging the latest revision will corrupt a dataset (&amp;amp; several corrupt datasets have been found on thedatahub.org)
&lt;/li&gt;&lt;li&gt;Trash page can contain nested form tags in certain cases (breaking test harness &amp;amp; form redirection)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1377</link>
        <guid isPermaLink="false">http://localhost/ticket/1377</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1378: New to TheDataHub? - StackOverflow style banner</title>
                  <description>&lt;p&gt;
Implement a banner across the top of the screen giving newbies a link to the about page, and making them feel welcome. See stackoverflow for reference?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1378</link>
        <guid isPermaLink="false">http://localhost/ticket/1378</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1379: Markdown conversion of linked references broken</title>
                  <description>&lt;p&gt;
eg. &lt;a class="ext-link" href="http://thedatahub.org/dataset/us-gov-tarp"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/us-gov-tarp&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
[This Paper][my-paper] is very interesting.
&lt;/p&gt;
&lt;p&gt;
[my-paper]: &lt;a class="ext-link" href="http://somelink.com/paper"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://somelink.com/paper&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Write a test to check this markdown feature works - if not, use external markdown lib rather than webhelpers.markdown. Probably need to add markdown lib to list of requirements.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1379</link>
        <guid isPermaLink="false">http://localhost/ticket/1379</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1380: Making customizing CSS easier</title>
                  <description>&lt;p&gt;
While integrating the new theme and making a large number of UX tweaks, I've allowed the CSS file to bloat out of control with some very specific rules and subtle hacks, as well as a couple of clearfix &amp;lt;div&amp;gt; objects in the markup which isn't really good practice.
&lt;/p&gt;
&lt;p&gt;
In general we want a logical CSS structure which is as easy to modify as possible. You should not find yourself being overwritten by highly specific rules all the time!
&lt;/p&gt;
&lt;h2 id="Actions"&gt;Actions&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;Clean up css
&lt;/li&gt;&lt;li&gt;Add a config option ckan.template_head_end - arbitrary string inserted at end of &amp;lt;head&amp;gt; tag so you can add custom css etc (may also want to update theming docs to reflect possibility of using this)
&lt;/li&gt;&lt;li&gt;(While we're at it): Add ckan.template_footer_end config option to deployment.ini_template. (This already exists, we just haven't told anybody)
&lt;/li&gt;&lt;li&gt;The /users index page isn't linked anywhere. Clean it up and link it in the footer next to Groups etc.
&lt;/li&gt;&lt;li&gt;package/new, package/edit, group/new and group/edit all include their forms differently. Use h.literal in all cases.
&lt;/li&gt;&lt;li&gt;Fix the padding on minornavigation.
&lt;/li&gt;&lt;/ol&gt;&lt;h2 id="Background"&gt;Background&lt;/h2&gt;
&lt;p&gt;
David Read sent me the following as background:
&lt;/p&gt;
&lt;ol class="upperalpha" start="22"&gt;&lt;li&gt;basic theming is described here: &lt;a class="ext-link" href="http://docs.ckan.org/en/latest/theming.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/theming.html&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Deep customisation of the templates is done by creating an extension, with this as a template: &lt;a class="ext-link" href="https://bitbucket.org/okfn/ckanext-exampletheme/overview"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/ckanext-exampletheme/overview&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
That's what Augusto and the Brazilians have done &lt;a class="ext-link" href="http://alpha.dados.gov.br/dados/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://alpha.dados.gov.br/dados/&lt;/a&gt; and their code is here:
hg clone &lt;a class="ext-link" href="http://dev.dados.gov.br/codigo/dev/tema-ckan"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://dev.dados.gov.br/codigo/dev/tema-ckan&lt;/a&gt;
&amp;lt;snip&amp;gt;
Another thing of interest was us becoming compatible with Wordpress themes last December. Richard Pope worked with Rufus on this. I believe the base theme is 'twentyten' and I'm guessing that one would swap that css file with another to change theme, but I don't know. I don't know if this feature has been dropped since then.
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2010-December/000073.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2010-December/000073.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Dave
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1380</link>
        <guid isPermaLink="false">http://localhost/ticket/1380</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1381: Managing groups via package entity API</title>
                  <description>&lt;p&gt;
It is not currently possible to assign or remove groups by adding or removing their group name from the "groups" list on the REST API. This should be allowed, as it is easier than first adding a package and then editing each group it must belong to.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1381</link>
        <guid isPermaLink="false">http://localhost/ticket/1381</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1382: Deleted resources are present for harvested package</title>
                  <description>&lt;p&gt;
Perhaps the importer deletes them before re-importing. We shouldn't have deleted resources, so let's investigate.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1382</link>
        <guid isPermaLink="false">http://localhost/ticket/1382</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1383: Add IResourceChange IResourceUrlChange Interfaces.</title>
                  <description>&lt;p&gt;
Need to add way for extensions to trigger based on resource change and just resource url change.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1383</link>
        <guid isPermaLink="false">http://localhost/ticket/1383</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1384: CKAN wiki needs updating to refer to thedatahub.org instead of ckan.net and datasets instead of packages</title>
                  <description>&lt;p&gt;
Most articles still refer and link to ckan.net, wiki.ckan.net and to packages
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1384</link>
        <guid isPermaLink="false">http://localhost/ticket/1384</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1385: Resolve postgres permissions issues</title>
                  <description>&lt;p&gt;
Currently there is a problem because the docs guide us to set the sqlalchemy url to use 'localhost' i.e. loopback, whereas paster commands don't specify '-h localhost' so use unix sockets (you need to do 'sudo -u postgres'). These should be the same.
&lt;/p&gt;
&lt;p&gt;
Also do we need to tell people to add a line to their postgres authentication config /etc/postgresql/8.4/main/pg_hba.conf
to help things? Florian suggests:
&lt;/p&gt;
&lt;pre class="wiki"&gt;local   std         std                          md5
&lt;/pre&gt;&lt;p&gt;
/etc/postgresql/8.4/main/pg_hba.conf
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1385</link>
        <guid isPermaLink="false">http://localhost/ticket/1385</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1386: Disallow account creation via openid</title>
                  <description>&lt;p&gt;
Superticket: &lt;a class="new ticket" href="http://localhost/ticket/1343" title="enhancement: [super] User related improvements (login, user pages etc) (new)"&gt;#1343&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Creation of accounts from OpenID causes large number of problems:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;No guarantee of other profile info
&lt;/li&gt;&lt;li&gt;Poor username (just from openid)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
We therefore will:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Require creation of user account via register (no auto-creation of accounts via openid)
&lt;ul&gt;&lt;li&gt;sidebar of register page should point to login page rather than openid signin
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ol start="2"&gt;&lt;li&gt;Permit association of an openid with an account ...
&lt;ul&gt;&lt;li&gt;How: paste in your openid url (requires change to edit form to have this)
&lt;ul&gt;&lt;li&gt;won't work for google with their weird openid urls
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[future] Nicer way is to have login via openid while logged in (which association then happening in background)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Migration (for 1+2):
&lt;ul&gt;&lt;li&gt;(?) Generate decent usernames for all existing accounts
&lt;/li&gt;&lt;li&gt;As this is nontrivial suggest instead we allow editing of usernames (by account owner and sysadmins). This is useful in its own right and is a reasonable 80/20 solution.
&lt;ul&gt;&lt;li&gt;This does present the problem of re-associating commits with the new username. Best solution to this would be to switch revisions to point to userid rather than username. See &lt;a class="new ticket" href="http://localhost/ticket/1534" title="enhancement: Change revisions to record userid rather than username (new)"&gt;#1534&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;[optional] Change display_name to always be username
&lt;ul&gt;&lt;li&gt;Change My Account to Username at top right of all pages (once we know
usernames are short ...)
&lt;ul&gt;&lt;li&gt;could do this straight away by truncating long usernames (e.g. truncate
at 20 chars ...)
&lt;/li&gt;&lt;li&gt;Also should we lose the icon?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1386</link>
        <guid isPermaLink="false">http://localhost/ticket/1386</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1387: Not specifying a protocol in dataset url causes broken link to be served on dataset view page</title>
                  <description>&lt;p&gt;
If a user enters a url with no protocol (eg: www.data.gov.uk) in the 'url' field of a dataset, a broken link is created on the view page.
&lt;/p&gt;
&lt;p&gt;
CKAN should probably either put in a &lt;a class="ext-link" href="http://"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://&lt;/a&gt; if no protocol is given, or validation should fail.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1387</link>
        <guid isPermaLink="false">http://localhost/ticket/1387</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1388: etags caching on home page</title>
                  <description>&lt;p&gt;
Needs to update on:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;language - It's broken on thedatahub.org if you change to German and then click on the CKAN icon top-left to go to thedatahub.org again.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
AND
&lt;/p&gt;
&lt;ol start="2"&gt;&lt;li&gt;whether signed in or not - &lt;a class="closed ticket" href="http://localhost/ticket/1373" title="defect: home page view does not react to logging in / out (closed: fixed)"&gt;#1373&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
BUT not latest revisions (which is what it was)
&lt;/p&gt;
&lt;p&gt;
Or get rid of etag caching on this page and others?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1388</link>
        <guid isPermaLink="false">http://localhost/ticket/1388</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1389: Update ckanext-datacatalogs for ckan 1.5</title>
                  <description></description>
        <link>http://localhost/ticket/1389</link>
        <guid isPermaLink="false">http://localhost/ticket/1389</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1390: Update ckanext-moderatededits for ckan 1.5 on datacatalogs.org</title>
                  <description></description>
        <link>http://localhost/ticket/1390</link>
        <guid isPermaLink="false">http://localhost/ticket/1390</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1391: Update datacatalogs.org to ckan 1.5</title>
                  <description></description>
        <link>http://localhost/ticket/1391</link>
        <guid isPermaLink="false">http://localhost/ticket/1391</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1392: Move datacatalogs.org to an OKFN server</title>
                  <description></description>
        <link>http://localhost/ticket/1392</link>
        <guid isPermaLink="false">http://localhost/ticket/1392</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1393: Don't skip search tests</title>
                  <description>&lt;p&gt;
Now we don't use postgres search, all the tests involving search now don't need to be skipped when running on sqlite. Should help coders spot earlier if these tests break.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1393</link>
        <guid isPermaLink="false">http://localhost/ticket/1393</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1394: Resource validation error messages misleading</title>
                  <description>&lt;p&gt;
(Editing a dataset) If the second resource contains any validation error then it says "Resources: Package resource(s) incomplete" and "Resource 1:".
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1394</link>
        <guid isPermaLink="false">http://localhost/ticket/1394</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1395: "Import Error: cannot import name UnicodeMultiDict" when installing ckan from source</title>
                  <description>&lt;p&gt;
At the &lt;em&gt;paster db init&lt;/em&gt; command when installing ckan from source I get the error &lt;em&gt;"Import Error: cannot import name &lt;a class="missing wiki"&gt;UnicodeMultiDict?&lt;/a&gt;"&lt;/em&gt; (happens with both ckan 1.4.2 and today's latest bleeding edge code, on Ubuntu 10.04.3).
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;UnicodeMultiDict?&lt;/a&gt; has been removed in a recent version of python-webob, and the &lt;em&gt;pip install ... lucid_missing.txt&lt;/em&gt; causes a too-new version of python-webob to be installed into ckan's virtualenv (the new webob gets installed as a dependency of formalchemy).
&lt;/p&gt;
&lt;p&gt;
I manually did &lt;em&gt;pip uninstall webob&lt;/em&gt; and then ran &lt;em&gt;paster db init&lt;/em&gt; again and it worked.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1395</link>
        <guid isPermaLink="false">http://localhost/ticket/1395</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1396: Improvements to user page UX - 1d</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Show member since
&lt;/li&gt;&lt;li&gt;Display email (in obfuscated form)
&lt;/li&gt;&lt;li&gt;List all owned datasets (in standard manner)
&lt;ul&gt;&lt;li&gt;Will need change to logic layer to show datasets on user dict (this is useful for the API as well ...)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;(Re)move list of changes
&lt;ul&gt;&lt;li&gt;Should have activity (once activity available)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
WONTFIX:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;?? Allow users to provide a home page, organization (requires migration)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1396</link>
        <guid isPermaLink="false">http://localhost/ticket/1396</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1397: [super] Resource archiving</title>
                  <description>&lt;p&gt;
We want to cache/archive data associated to a resource so it is available if the resource url disappears (and in order to support other processing we may wish to do e.g. webstorer ...)
&lt;/p&gt;
&lt;p&gt;
Etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/queue"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/queue&lt;/a&gt; (most relevant parts inlined here)
&lt;/p&gt;
&lt;h2 id="Preliminaries"&gt;Preliminaries&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Add task_status table to store qa/archiever/webstore information that does not need to be versioned. - &lt;a class="closed ticket" href="http://localhost/ticket/1363" title="enhancement: Add task_status table to store qa/archiever/webstore information that does ... (closed: fixed)"&gt;#1363&lt;/a&gt; (and &lt;a class="closed ticket" href="http://localhost/ticket/1371" title="enhancement: Make logic layer functions for working with task_status table (closed: fixed)"&gt;#1371&lt;/a&gt; - related logic functions)
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Configurationsetupfordaemons"&gt;Configuration setup for daemons&lt;/h3&gt;
&lt;p&gt;
Pass config through to workers i.e site_url, user, api_key.
Need to make site user account. &lt;a class="closed ticket" href="http://localhost/ticket/1408" title="enhancement: Make site user, so tasks can post information back to ckan. (closed: fixed)"&gt;#1408&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
celeryd config:
&lt;/p&gt;
&lt;p&gt;
All providers of tasks will add an item to the following entry point:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[ckan.tasks]
name = ckanext.{name}.tasks:....
&lt;/pre&gt;&lt;p&gt;
celeryconfig.py
&lt;/p&gt;
&lt;pre class="wiki"&gt;from pkg_resources import iter_entry_points
for entry in iter_entry_points:
     celeryimports.appen(....)
CELERY_IMPORTS = celeryimports
&lt;/pre&gt;&lt;h2 id="WorkItems"&gt;Work Items&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Resource change notifications in core - Make an IResourceChange and IResourceUrlChange. [1d] [0.75d] -  &lt;a class="closed ticket" href="http://localhost/ticket/1383" title="enhancement: Add IResourceChange IResourceUrlChange Interfaces. (closed: fixed)"&gt;#1383&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Generate archiving request on resource url change [0.25d][0.25d] - &lt;a class="closed ticket" href="http://localhost/ticket/1399" title="enhancement: Generate archiving request on resource url change (closed: fixed)"&gt;#1399&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Make site user account.
&lt;/li&gt;&lt;li&gt;Make entry point system for celery config
&lt;/li&gt;&lt;li&gt;Archiver daemon &lt;a class="closed ticket" href="http://localhost/ticket/891" title="task: Resource download worker daemon (closed: fixed)"&gt;#891&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;implement link-check function and task (point 2 from Archiver.update above) [1d] [0.5d]
&lt;/li&gt;&lt;li&gt;Rewrite archiver to use external storage. (decide how!)[3d][~2d]
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Write to resource and task status table.[1d][0.75d]
&lt;/li&gt;&lt;li&gt;[Required?] Make archived data available in WUI - &lt;a class="closed ticket" href="http://localhost/ticket/892" title="enhancement: Make stored data available in WUI - 0.5d (closed: fixed)"&gt;#892&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Documentation - &lt;a class="closed ticket" href="http://localhost/ticket/1400" title="enhancement: Document Archiver Extension (closed: fixed)"&gt;#1400&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1397</link>
        <guid isPermaLink="false">http://localhost/ticket/1397</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1398: Automated conversion of resource data into webstore</title>
                  <description>&lt;ul&gt;&lt;li&gt;Possible sibling / requirement: &lt;a class="closed ticket" href="http://localhost/ticket/1397" title="enhancement: [super] Resource archiving (closed: fixed)"&gt;#1397&lt;/a&gt; (resource archiving)
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Setup test environment. 1d
&lt;/li&gt;&lt;li&gt;Make task to upload files to webstorer. 3d
&lt;ul&gt;&lt;li&gt;This includes writing back webstore_url and updated date. 0.5d
&lt;/li&gt;&lt;li&gt;Type guessing of file format. 1d
&lt;/li&gt;&lt;li&gt;Make cron to upload all un webstored resources. 0.5d
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Testing for errors by running cron 2d
&lt;/li&gt;&lt;li&gt;Make nice way to deploy celery 1d.
&lt;/li&gt;&lt;li&gt;Documentation. 1d
&lt;/li&gt;&lt;li&gt;Deployment. 1d
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1398</link>
        <guid isPermaLink="false">http://localhost/ticket/1398</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1399: Generate archiving request on resource url change</title>
                  <description>&lt;p&gt;
Superticket: &lt;a class="closed ticket" href="http://localhost/ticket/1397" title="enhancement: [super] Resource archiving (closed: fixed)"&gt;#1397&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Generate archiving request on resource url change by implementing IResourceUrlChange and sending tasks to celery. [0.25d][0.25d]
&lt;/p&gt;
&lt;p&gt;
Will be part of of ckanext-archiver extension.
&lt;/p&gt;
&lt;p&gt;
Process:
&lt;/p&gt;
&lt;ol class="arabiczero"&gt;&lt;li&gt;A resource is added to CKAN
&lt;/li&gt;&lt;li&gt;IResourceCreate event generated
&lt;/li&gt;&lt;li&gt;IF: resource url points to ckan storage or falls within some other set of exclusion conditions then END else continue
&lt;/li&gt;&lt;li&gt;Generate a Archiver.Update task with resource.id
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1399</link>
        <guid isPermaLink="false">http://localhost/ticket/1399</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1400: Document Archiver Extension</title>
                  <description>&lt;ul&gt;&lt;li&gt;Create page on &lt;a class="ext-link" href="http://wiki.ckan.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/&lt;/a&gt; about setting up a queue (this will merge into core docs when this is stable) - having a queue will now become a generic requirement for a bunch of extensions
&lt;/li&gt;&lt;li&gt;README with install instructions in ckanext-archiver
&lt;/li&gt;&lt;li&gt;Create an entry in &lt;a class="ext-link" href="http://wiki.ckan.org/Extensions"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Extensions&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Write a blog post
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1400</link>
        <guid isPermaLink="false">http://localhost/ticket/1400</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>flofokus</dc:creator>

                  <title>#1401: Some links don't take account when CKAN is mounted at a non-root URL</title>
                  <description>&lt;p&gt;
if you want your ckan to reside not at
&lt;a class="ext-link" href="http://yourhost.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://yourhost.org/&lt;/a&gt;
but rather e.g. at
&lt;a class="ext-link" href="http://yourhost.org/ckan/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://yourhost.org/ckan/&lt;/a&gt;
you can use this hint
&lt;a class="ext-link" href="http://wiki.pylonshq.com/display/pylonsdocs/Configuration+Files"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.pylonshq.com/display/pylonsdocs/Configuration+Files&lt;/a&gt;
and set ckan.site_url accordingly in your .ini.
However, there are some instances where internal links are created without the required prefix.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1401</link>
        <guid isPermaLink="false">http://localhost/ticket/1401</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1402: Migrate repository from mercurial to git</title>
                  <description>&lt;p&gt;
Plan to migrate from mercurial git
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Convert from mercurial to git
&lt;ul&gt;&lt;li&gt;Map named branches to normal branches
&lt;/li&gt;&lt;li&gt;Also, if possible map usernames for RP: rgrp &amp;lt;&lt;a class="ext-link" href="http://rufuspollock.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://rufuspollock.org/&lt;/a&gt;&amp;gt; (mercurial) -&amp;gt; rgrp &amp;lt;rufus.pollock@…&amp;gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Place at &lt;a class="ext-link" href="http://github.com/okfn/ckan"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://github.com/okfn/ckan&lt;/a&gt; (can delete current repo there as an out of date mirror)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Process:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Do trial run
&lt;/li&gt;&lt;li&gt;Announce conversion date / time
&lt;/li&gt;&lt;li&gt;Require everyone to have pushed &lt;strong&gt;all&lt;/strong&gt; outstanding changes at that time
&lt;/li&gt;&lt;li&gt;Do conversion
&lt;/li&gt;&lt;li&gt;Test
&lt;/li&gt;&lt;li&gt;Announce on list and ckan.org/
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1402</link>
        <guid isPermaLink="false">http://localhost/ticket/1402</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1403: Refactor groups index page</title>
                  <description>&lt;p&gt;
Groups are listed alphabetically with paging - not an ideal user experience. We would like to list groups in order of 'popularity': The number of datasets they contain.
&lt;/p&gt;
&lt;p&gt;
Following this chain of thought, then, it would be nice to rearrange the groups table by clicking on column headers and having it sort by that column.
&lt;/p&gt;
&lt;p&gt;
Furthermore, then, we'd like to implement a full-fledged groups search feature (if this is at all feasible).
&lt;/p&gt;
&lt;p&gt;
The forthcoming groups refactor will probably have some bearing on this task.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1403</link>
        <guid isPermaLink="false">http://localhost/ticket/1403</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1404: Search Page UI improvements</title>
                  <description>&lt;p&gt;
[Refactored] :: Follows on from &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt; UX changes.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Declutter the sidebar. No yellow box.
&lt;/li&gt;&lt;li&gt;Facets to go on the left, rather than the right. More logical flow.
&lt;/li&gt;&lt;li&gt;Did you know you can search by author? Probably not. Find a nice way of presenting extended search options.
&lt;/li&gt;&lt;li&gt;Make Datasets in the search page look more like Datasets on the groups pages (ie. like awesome sexy search results).
&lt;ul&gt;&lt;li&gt;Update that look-and-feel to include the new resource icons created in &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1404</link>
        <guid isPermaLink="false">http://localhost/ticket/1404</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jonathan.gray@…</dc:creator>

                  <title>#1405: You can add a package twice to a group</title>
                  <description>&lt;p&gt;
To reproduce (from Jonathan Gray):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;I go to add an item to the group
&lt;/li&gt;&lt;li&gt;As I type, I get autocomplete options (cool!)
&lt;/li&gt;&lt;li&gt;When I click on one, it adds this, and copies the same autocomplete option in the box
&lt;/li&gt;&lt;li&gt;When I click submit, it seems to add the item twice
&lt;/li&gt;&lt;li&gt;On the main group page I think it just shows up once, but when I click edit it shows two identical boxes, both ticked - and the count includes two copies of the same item
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Basically the problem is allowing the same package associated multiple times with a group.
&lt;/p&gt;
&lt;p&gt;
This is an issue on CKAN 1.5b and probably earlier.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1405</link>
        <guid isPermaLink="false">http://localhost/ticket/1405</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1406: Re-enable RSS subscriptions</title>
                  <description>&lt;p&gt;
RSS 'subscribe' buttons appeared in many places on the site but were not very helpful. They took (confused) users pointed to the raw feed code, and Google Reader could not understand the feed. Safari, however, could interpret it correctly.
&lt;/p&gt;
&lt;p&gt;
Their presentation needs to be clear and consistent; the RSS feed really needs testing in a variety of readers; and we need to decide exactly which items should get a feed. (Package updates? Groups?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1406</link>
        <guid isPermaLink="false">http://localhost/ticket/1406</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1407: Stats extension not working</title>
                  <description>&lt;p&gt;
Graphs don't show any more at &lt;a class="ext-link" href="http://thedatahub.org/stats"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/stats&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1407</link>
        <guid isPermaLink="false">http://localhost/ticket/1407</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1408: Make site user, so tasks can post information back to ckan.</title>
                  <description>&lt;p&gt;
Give site user system administrative rights.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1408</link>
        <guid isPermaLink="false">http://localhost/ticket/1408</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1409: Add Gravatars to user profiles</title>
                  <description>&lt;p&gt;
Since we now require email addresses, it's sensible to request users' gravatars to add a little flavour to their user profile (and, potentially, other places eg. comments threads?)
&lt;/p&gt;
&lt;p&gt;
[Reopened: Additional]
Use gravatars in the HTML generated by helpers.py to create lists of users. Eg. on user/list and dataset/history.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1409</link>
        <guid isPermaLink="false">http://localhost/ticket/1409</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1410: Add Gravatars to user profiles</title>
                  <description>&lt;p&gt;
Since we now require email addresses, it's sensible to request users' gravatars to add a little flavour to their user profile (and, potentially, other places eg. comments threads?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1410</link>
        <guid isPermaLink="false">http://localhost/ticket/1410</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1411: Force resource format to be lower case (also mimetype)</title>
                  <description>&lt;p&gt;
Format should be lowercase. Automatically lower case (for extra points have a bit of javascript to force lower case when entering).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Even more points: do a update on thedatahub repo to make all format lower case (or script this as an update?)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1411</link>
        <guid isPermaLink="false">http://localhost/ticket/1411</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1412: application.js crashes when viewing a dataset with no resources</title>
                  <description>&lt;p&gt;
Create a new dataset, don't add any resources to the dataset yet, view the dataset in ckan, if you have firebug enabled you'll see the error "resource is undefined" at line 699 of application.js.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1412</link>
        <guid isPermaLink="false">http://localhost/ticket/1412</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1413: Ask users to 'add email address' when logged in</title>
                  <description>&lt;p&gt;
I'd like us to display a one-off banner that prompts users who log into thedatahub.org to go and update &amp;amp; their profile &amp;amp; fill in their email address (if we could do it just for those who don't have an email address, then even better)
That is, once they log in, they see a banner which says:
Please update your profile [here] and add your email address, so you can receive notifications, be able to reset your password and get updates
&lt;/p&gt;
&lt;p&gt;
Then when we build notifications or if we decide to survey people, we can actually contact them. Email address should be required as standard
&lt;/p&gt;
&lt;p&gt;
DR: Also, mention their Full Name too - v. useful for selecting correct user in group curation
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1413</link>
        <guid isPermaLink="false">http://localhost/ticket/1413</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1414: track user log-ins on thedatahub.org</title>
                  <description>&lt;p&gt;
Set up tracking for user logins so that we have stats about how many active users of thedatahub exist
want to be able to see who logged in the the last x months
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1414</link>
        <guid isPermaLink="false">http://localhost/ticket/1414</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#1415: Comments on current status of ckan deb packages</title>
                  <description>&lt;p&gt;
This is a scratch pad ticket with some comments on the current status of our ckan deb packages. I know that some of it is the deb packaging roadmap anyway, please forgive me if i mention them here again.
&lt;/p&gt;
&lt;p&gt;
Rufus and me re-deployed some community ckan instances onto s022 (see &lt;a class="ext-link" href="http://trac.okfn.org/ticket/926"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.okfn.org/ticket/926&lt;/a&gt;). We followed the documentation
&lt;a class="ext-link" href="http://docs.ckan.org/en/latest/install-from-package.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/install-from-package.html&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Deb package version number: the version of the deb package is "python-ckan 1309471251~149be76faabc+lucid-1", and it's hard to guess from there that it contains a ckan 1.4.2a
&lt;/li&gt;&lt;li&gt;When is 1.4.3/1.5.x expected as deb package?
&lt;/li&gt;&lt;li&gt;There was a bug in the DB upgrade script /usr/share/pyshared/ckan/migration/versions/029_version_groups.py (line 150) which looks like it was fixed 1.4.1==&amp;gt;1.4.2 but was nevertheless present in this deb package.
&lt;/li&gt;&lt;li&gt;The current script /usr/bin/ckan-std-install
&lt;ul&gt;&lt;li&gt;does not set the Apache &lt;a class="missing wiki"&gt;ServerName?&lt;/a&gt; according to the $INSTANCE variable
&lt;/li&gt;&lt;li&gt;automatically configures a ckan extension named after $INSTANCE
&lt;/li&gt;&lt;li&gt;depends on local postgres
&lt;/li&gt;&lt;li&gt;could be replaced with "/usr/bin/ckan-deploy --name=ckan-std --domain=ckan-std.localhost (see next point)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;(i think this is exactly James' plan): have more generic deployment script /usr/bin/ckan-deploy as part of python-ckan which takes arguments like
&lt;ul&gt;&lt;li&gt;--domain=cc.ckan.net
&lt;/li&gt;&lt;li&gt;--aliases=$list-of-domains
&lt;/li&gt;&lt;li&gt;--name=cc (defaults to "domain")
&lt;/li&gt;&lt;li&gt;--no-db (does not configure a DB)
&lt;/li&gt;&lt;li&gt;--sql-alchemy=$DB_CONFIG_STRING (also runs "paster --plugin ckan db upgrade --config")
&lt;/li&gt;&lt;li&gt;--extension $list-of-extesions
&lt;/li&gt;&lt;li&gt;...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1415</link>
        <guid isPermaLink="false">http://localhost/ticket/1415</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1416: Registering with blank email can cause exception</title>
                  <description>&lt;p&gt;
This might well be a bot, but not POSTing the email field should not cause an exception - it should be 400 and then the sysadmin doesn't get these nags.
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://www.publicdata.eu/user/register
...
Module ckan.controllers.user:79 in register
&amp;lt;&amp;lt;              c.login = request.params.getone('login')
                   c.fullname = request.params.getone('fullname')
                   c.email = request.params.getone('email')
                   if not model.User.check_name_available(c.login):
                       h.flash_error(_("That username is not available."))
&amp;gt;&amp;gt;  c.email = request.params.getone('email')
Module webob.multidict:335 in getone
&amp;lt;&amp;lt;          values were found.
               """
               return self._decode_value(self.multi.getone(self._encode_key(key)))
           def mixed(self):
&amp;gt;&amp;gt;  return self._decode_value(self.multi.getone(self._encode_key(key)))
Module webob.multidict:99 in getone
&amp;lt;&amp;lt;          v = self.getall(key)
               if not v:
                   raise KeyError('Key not found: %r' % key)
               if len(v) &amp;gt; 1:
                   raise KeyError('Multiple values match %r: %r' % (key, v))
&amp;gt;&amp;gt;  raise KeyError('Key not found: %r' % key)
KeyError: "Key not found: 'email'"
&lt;/pre&gt;&lt;pre class="wiki"&gt;HTTP_USER_AGENT	'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.3 (build 01218); .NET CLR 1.1.4322)'
webob._parsed_post_vars	(MultiDict([('login', 'ahusernames9'), ('fullname', 'ahusernames9'), ('password1', '******'), ('password2', '******'), ('s', 'Sign up')]), &amp;lt;FakeCGIBody at 0xb9d7c5ec viewing MultiDict([('lo...p')])&amp;gt;)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1416</link>
        <guid isPermaLink="false">http://localhost/ticket/1416</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1417: Browser language detection doesn't work</title>
                  <description>&lt;p&gt;
In Firefox:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Edit | Preferences | Content | Languages - put 'de' at top language
&lt;/li&gt;&lt;li&gt;Clear cookies
&lt;/li&gt;&lt;li&gt;Load thedatahub.org
&lt;/li&gt;&lt;li&gt;it should be in German, but it's in the default language - English.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1417</link>
        <guid isPermaLink="false">http://localhost/ticket/1417</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1418: If default language is not 'en' then you can't switch language to 'en'</title>
                  <description>&lt;p&gt;
e.g. cz.ckan.net has lang=cz but when you click on Home page link "English" it flashes message "Language has been set to: English" but the rest of the page is still Czech.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1418</link>
        <guid isPermaLink="false">http://localhost/ticket/1418</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1419: Can't log in via OpenID</title>
                  <description>&lt;p&gt;
I couldn't log into theDataHub with OpenID today. I tried both Google ID and MyOpenID. Both times the login on the remote auth server went fine, but when it returns you to theDataHub you get error "Login failed. Bad username or password."
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1419</link>
        <guid isPermaLink="false">http://localhost/ticket/1419</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1420: Refactor ckanext-qa to work as a celery task</title>
                  <description>&lt;p&gt;
Currently can run as a celery task launched by paster command.
&lt;/p&gt;
&lt;p&gt;
Still have to add a CKAN plugin so that QA will run when a resource is added or URL changed, and then update the extension controller/templates to look for QA data from the task_status table instead of directly on the resource.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1420</link>
        <guid isPermaLink="false">http://localhost/ticket/1420</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1421: Tag cloud recipe broken</title>
                  <description>&lt;p&gt;
home page doesn't have c.facets setup.
&lt;/p&gt;
&lt;p&gt;
Only affects 1.5 branch - ok 1.4.3.1. Was broken in cset:05f60f2d26e8.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1421</link>
        <guid isPermaLink="false">http://localhost/ticket/1421</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1422: Remove proxy &amp; etag caching</title>
                  <description>&lt;p&gt;
Rufus decided this was more trouble than it was worth.
&lt;/p&gt;
&lt;p&gt;
Removes ckan/lib/cache.py
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1422</link>
        <guid isPermaLink="false">http://localhost/ticket/1422</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markbrough</dc:creator>

                  <title>#1423: Edit resources suggestions</title>
                  <description>&lt;ul&gt;&lt;li&gt;Description vs Name - Edit Resources view is showing the name of the package rather than the description, and a lot (all?) of the packages before the upgrade don't have names, so might be good to swap this round again, e.g.: &lt;a class="ext-link" href="http://thedatahub.org/dataset/edit/iati-registry"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/edit/iati-registry&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Moving resources - Moving them up or down the list used to be quite useful if you had a lot of resources that you might want to leave on the resources page, but only one or two that were actually current and that you wanted to draw attention to. This doesn't exist any more on CKAN but I think it would be good to add it back in.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1423</link>
        <guid isPermaLink="false">http://localhost/ticket/1423</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1424: Openness notice should be clearer</title>
                  <description>&lt;p&gt;
ckan-discuss discussion suggests changes to the 'openness' indicator
( &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-October/001786.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-October/001786.html&lt;/a&gt; )
&lt;/p&gt;
&lt;p&gt;
Dataset view page:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;If there is an explicit but non-OKD compliant license, such as CC-BY-NC, then this should be stated explicitly, perhaps: “This dataset is Not Open. License: Creative Commons Attribution Noncommerical. This is not an open license as it does not meet the Open Knowledge Definition.”
&lt;/li&gt;&lt;li&gt;If the license is marked as “Other::License Not Specified”, then this should be stated explicitly, perhaps:
“This dataset is Not Open. It is published without an explicit license, the publisher reserves all rights to the dataset.”
&lt;/li&gt;&lt;li&gt;3. If the license field was left empty by the contributor of the Data Hub record, then again this should be stated explicitly, perhaps: “This dataset is Not Open. The license of this dataset is unknown or unspecified. Start an enquiry on &lt;a class="missing wiki"&gt;IsItOpenData?&lt;/a&gt; »
&lt;/li&gt;&lt;li&gt;There is a bug so that non-open licenses doesn't have an openness notice.
&lt;/li&gt;&lt;li&gt;If downloadable resources are not available, this should not affect 'openness' - check this has been removed.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1424</link>
        <guid isPermaLink="false">http://localhost/ticket/1424</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1425: Dataset delete button</title>
                  <description>&lt;p&gt;
From Jonathan gray:
&lt;/p&gt;
&lt;p&gt;
At the moment to delete a package you have to go to 'state' and change from 'active' to 'deleted'.
&lt;/p&gt;
&lt;p&gt;
For me this was not very obvious, and someone recently wrote to me about this too.
&lt;/p&gt;
&lt;p&gt;
Its a small issue - but unless you know what 'state: active' refers to, its not obvious what this means, nor that this is where to go if you want to delete a package.
&lt;/p&gt;
&lt;p&gt;
From UI perspective this could be replaced by either a trash can or some text that says 'delete', perhaps with some prompt that explains what happens when you delete a package - explaining that non-admins won't be able to see it, and how you purge, etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1425</link>
        <guid isPermaLink="false">http://localhost/ticket/1425</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1426: Validation errors cause 409 not 400 response</title>
                  <description>&lt;p&gt;
Validation error is incorrect arguments, so should be a "400 Bad Request" response. "409 Conflict" is for when there is a conflict creating two resources with the same identifier. Yet we get 409 for all validation errors.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1426</link>
        <guid isPermaLink="false">http://localhost/ticket/1426</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1427: Tags validation needs to limit length to 100 characters</title>
                  <description>&lt;p&gt;
The tag name is limited in length in the db table to 100 characters. If you try and create a longer one you get an exception. This should cause a &lt;a class="missing wiki"&gt;ValidationError?&lt;/a&gt; and tell the user this sensibly.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1427</link>
        <guid isPermaLink="false">http://localhost/ticket/1427</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1428: config options not used or documented</title>
                  <description>&lt;p&gt;
Need to ensure config options in the deployment.ini_tmpl match up with doc/configuration.rst. Remove any unused ones too.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1428</link>
        <guid isPermaLink="false">http://localhost/ticket/1428</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1429: Provide DOIs for datasets in a CKAN instance</title>
                  <description>&lt;p&gt;
DOI = digital object identifier = &lt;a class="ext-link" href="http://www.doi.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.doi.org/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
As a Publisher I want a DOI for my dataset so that it can be cited by and linked to by others in a standard and easy way.
&lt;/p&gt;
&lt;h2 id="Details"&gt;Details&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Probably implement as extension rather than core
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1429</link>
        <guid isPermaLink="false">http://localhost/ticket/1429</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1430: Documents get mixed between SOLR cores</title>
                  <description>&lt;p&gt;
On some occasions (apparently random), the documents indexed in a specific SOLR core get mixed with different site_ids.
&lt;/p&gt;
&lt;p&gt;
E.g: We look for all documents in the testing.iatiregistry.org core, faceted by site_id. We would expect all documents to have site_id = iati_testing, but some of them have site_id = iatiregistry.org
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://okfn-solr.fry-it.com:8080/solr/testing.iatiregistry.org/select?indent=on&amp;amp;version=2.2&amp;amp;q=*:*&amp;amp;fq=+state:active&amp;amp;facet=true&amp;amp;facet.field=site_id"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://okfn-solr.fry-it.com:8080/solr/testing.iatiregistry.org/select?indent=on&amp;amp;version=2.2&amp;amp;q=*:*&amp;amp;fq=+state:active&amp;amp;facet=true&amp;amp;facet.field=site_id&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;lst name="facet_fields"&amp;gt;
&amp;lt;lst name="site_id"&amp;gt;
&amp;lt;int name="iati_testing"&amp;gt;265&amp;lt;/int&amp;gt;
&amp;lt;int name="iatiregistry.org"&amp;gt;255&amp;lt;/int&amp;gt;
&amp;lt;/lst&amp;gt;
&amp;lt;/lst&amp;gt;
&lt;/pre&gt;&lt;p&gt;
If we compare one of the records which disappeared from the "iati_testing" site_id in both the production and testing SOLR cores
of the server, the records are exactly the same, including the indexed_ts property:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://okfn-solr.fry-it.com:8080/solr/iatiregistry.org/select?indent=on&amp;amp;version=2.2&amp;amp;q=id:97d1ab0d-b203-4757-8f4e-a0c84d2f759f&amp;amp;facet=true&amp;amp;facet.field=site_id"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://okfn-solr.fry-it.com:8080/solr/iatiregistry.org/select?indent=on&amp;amp;version=2.2&amp;amp;q=id:97d1ab0d-b203-4757-8f4e-a0c84d2f759f&amp;amp;facet=true&amp;amp;facet.field=site_id&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://okfn-solr.fry-it.com:8080/solr/testing.iatiregistry.org/select?indent=on&amp;amp;version=2.2&amp;amp;q=id:97d1ab0d-b203-4757-8f4e-a0c84d2f759f&amp;amp;facet=true&amp;amp;facet.field=site_id"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://okfn-solr.fry-it.com:8080/solr/testing.iatiregistry.org/select?indent=on&amp;amp;version=2.2&amp;amp;q=id:97d1ab0d-b203-4757-8f4e-a0c84d2f759f&amp;amp;facet=true&amp;amp;facet.field=site_id&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Note that the response from the URLs shown may vary, as the testing site could have been reindexed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1430</link>
        <guid isPermaLink="false">http://localhost/ticket/1430</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1431: Captcha field - foreign chars cause exception</title>
                  <description>&lt;p&gt;
During registering a user, the user inputs foreign chars into the captcha field.
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://thedatahub.org/user/register
...
Module ckan.lib.captcha:22 in check_recaptcha
&amp;lt;&amp;lt;                                     remoteip=client_ip_address,
                                          challenge=recaptcha_challenge_field,
                                          response=recaptcha_response_field))
           f = urllib2.urlopen(recaptcha_server_name, params)
           data = f.read()
&amp;gt;&amp;gt;  response=recaptcha_response_field))
Module urllib:1267 in urlencode
&amp;lt;&amp;lt;          for k, v in query:
                   k = quote_plus(str(k))
                   v = quote_plus(str(v))
                   l.append(k + '=' + v)
           else:
&amp;gt;&amp;gt;  v = quote_plus(str(v))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xea' in position 0: ordinal not in range(128)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1431</link>
        <guid isPermaLink="false">http://localhost/ticket/1431</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1432: [super] Data processing system for CKAN and Webstore</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1190" title="enhancement: [super] CREP 0004 Data API and Data Processing System (closed: fixed)"&gt;#1190&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
A data processing system which utilizes the  Webstore. One could
get a long way with simple javascript running in the browser for development with this javascript then run offline using something like nodejs. Alternatively one could allow one to specify a url to e.g. a python file which would then be run in a sandbox (with access to some specified set of python modules)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1432</link>
        <guid isPermaLink="false">http://localhost/ticket/1432</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1433: Support SQLAlchemy 0.7</title>
                  <description>&lt;p&gt;
Why: current stable version of sqlalchemy. geoalchemy stuff required 0.7 and likely that some other things will require it soon.
&lt;/p&gt;
&lt;p&gt;
Probably requires work on vdm &lt;a class="ext-link" href="https://bitbucket.org/okfn/vdm"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/vdm&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
NB: should have discussion before making 0.7 the default required version in CKAN core.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1433</link>
        <guid isPermaLink="false">http://localhost/ticket/1433</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1434: Add i18n strings from extensions</title>
                  <description>&lt;p&gt;
Decide which extensions are important.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1434</link>
        <guid isPermaLink="false">http://localhost/ticket/1434</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1435: Switch to continuous.io for buildbot (?)</title>
                  <description></description>
        <link>http://localhost/ticket/1435</link>
        <guid isPermaLink="false">http://localhost/ticket/1435</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1436: Packages with a 'pending' state not listed on groups page</title>
                  <description></description>
        <link>http://localhost/ticket/1436</link>
        <guid isPermaLink="false">http://localhost/ticket/1436</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1437: JSONP parameter in Action API</title>
                  <description>&lt;p&gt;
Action API needs JSONP support - be able to return responses encapsulated in a function of a supplied name. This is important for remote sites running javascript to interact with a CKAN site.
&lt;/p&gt;
&lt;p&gt;
Specifying the callback parameter is the way we've achieved JSONP with the RESTful and Search APIs. It should work like this:
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl http://test.ckan.net/api/action/package_show?callback=jsoncallback -d '{"id": "fd788e57-dce4-481c-832d-497235bf9f78"}'
&lt;/pre&gt;&lt;p&gt;
Or maybe the callback should be specified in the payload in the context or data_dict?
&lt;/p&gt;
&lt;p&gt;
(My understanding is that CORS is similar - when more browsers support it, can we drop JSONP?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1437</link>
        <guid isPermaLink="false">http://localhost/ticket/1437</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1438: Action API - parameter discovery/checking</title>
                  <description>&lt;p&gt;
Many actions in the Action API require parameters. What params are needed should be listed and checked. Because currently, if you get them wrong you simply get a useless 500 error.
&lt;/p&gt;
&lt;p&gt;
Currently they are listed in the docs, extracted from the code manually.
&lt;/p&gt;
&lt;p&gt;
So you could GET /action/api/package_list to receive not only the help text, but a list of arguments.
&lt;/p&gt;
&lt;p&gt;
And if you send an extra or missing argument then an intelligent error message can be returned.
&lt;/p&gt;
&lt;h1 id="implementation"&gt;implementation&lt;/h1&gt;
&lt;p&gt;
How about some sort of decorator on the action function:
&lt;/p&gt;
&lt;pre class="wiki"&gt;@logic_params(id, offset, limit)
def get_package_list(context, data_dict):
    ...
&lt;/pre&gt;&lt;p&gt;
This would do the param checking, and is there a way to extract these params from the function? Or do a registration of the logic function?
&lt;/p&gt;
&lt;p&gt;
I'd certainly like to keep the list of the list of params for the function with the function, for ease of reading the code.
&lt;/p&gt;
&lt;p&gt;
Another good thing would be to pass in the params named as themselves, rather than having them contained in the data_dict.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1438</link>
        <guid isPermaLink="false">http://localhost/ticket/1438</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1439: Action API discoverablility</title>
                  <description>&lt;p&gt;
A good service API needs to be discoverable, so you are not always having to refer to the documentation html.
&lt;/p&gt;
&lt;p&gt;
Maybe /api/action should return a list of actions available? (Currently this returns a 404.)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;It would be nice to sort these into get/create/update/delete.
&lt;/li&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/1438" title="enhancement: Action API - parameter discovery/checking (new)"&gt;#1438&lt;/a&gt; Parameters for each of the actions must be discoverable too
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
/api/action/{action_name} should also return the help text / parameters allowable. (Currently this returns 400 error)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1439</link>
        <guid isPermaLink="false">http://localhost/ticket/1439</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1440: 'paster db load' doesn't update search index</title>
                  <description>&lt;p&gt;
&lt;tt&gt;paster db load ckan.pgdump&lt;/tt&gt; will load in the database but not update the search index, no we're using SOLR.
&lt;/p&gt;
&lt;h1 id="implementation"&gt;implementation&lt;/h1&gt;
&lt;p&gt;
We can't tack on 'rebuild' to this command, because it needs a 'db upgrade' first. I'm tempted to make 'db load' do the upgrade and rebuild all in one command.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1440</link>
        <guid isPermaLink="false">http://localhost/ticket/1440</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1441: Use local ckan logo image</title>
                  <description>&lt;p&gt;
Using local image rather than the same image at assets.okfn.org reduces dependency on another server that may be down, slow or remote. James agrees.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1441</link>
        <guid isPermaLink="false">http://localhost/ticket/1441</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1442: You can't GET then POST a dataset as new</title>
                  <description>&lt;p&gt;
If you try to GET a dataset, purge it then POST it again, it fails checking authz for the group:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.api:278 in create
&amp;lt;&amp;lt;                  (register, subregister))
               try:
                   response_data = action(context, data_dict)
                   location = None
                   if "id" in data_dict:
&amp;gt;&amp;gt;  response_data = action(context, data_dict)
Module ckan.logic.action.create:240 in package_create_rest
&amp;lt;&amp;lt;      api = context.get('api_version') or '1'
           check_access('package_create_rest', context, data_dict)
           dictized_package = package_api_to_dict(data_dict, context)
&amp;gt;&amp;gt;  check_access('package_create_rest', context, data_dict)
Module ckan.logic:129 in check_access
&amp;lt;&amp;lt;          #    log.debug('Valid API key needed to make changes')
               #    raise NotAuthorized
               logic_authorization = new_authz.is_authorized(action, context, data_dict)
               if not logic_authorization['success']:
                   msg = logic_authorization.get('msg','')
&amp;gt;&amp;gt;  logic_authorization = new_authz.is_authorized(action, context, data_dict)
Module ckan.new_authz:16 in is_authorized
&amp;lt;&amp;lt;      auth_function = _get_auth_function(action)
           if auth_function:
               return auth_function(context, data_dict)
           else:
               raise ValueError(_('Authorization function not found: %s' % action))
&amp;gt;&amp;gt;  return auth_function(context, data_dict)
Module ckan.logic.auth.create:115 in package_create_rest
&amp;lt;&amp;lt;          return {'success': False, 'msg': _('Valid API key needed to create a package')}
           return package_create(context, data_dict)
       def group_create_rest(context, data_dict):
&amp;gt;&amp;gt;  return package_create(context, data_dict)
Module ckan.logic.auth.create:15 in package_create
&amp;lt;&amp;lt;      else:
               check2 = check_group_auth(context,data_dict)
               if not check2:
                   return {'success': False, 'msg': _('User %s not authorized to edit these groups') % str(user)}
&amp;gt;&amp;gt;  check2 = check_group_auth(context,data_dict)
Module ckan.logic.auth.create:90 in check_group_auth
&amp;lt;&amp;lt;      groups = set()
           for group_dict in group_dicts:
               id = group_dict.get('id')
               if not id:
                   continue
&amp;gt;&amp;gt;  id = group_dict.get('id')
AttributeError: 'unicode' object has no attribute 'get'
&lt;/pre&gt;&lt;p&gt;
(using RESTful Model API)
&lt;/p&gt;
&lt;p&gt;
The reason is the POST is expecting the group to be expressed as a dict, not the list of names that GET returns.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1442</link>
        <guid isPermaLink="false">http://localhost/ticket/1442</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1443: language detection</title>
                  <description>&lt;p&gt;
If language detected doesn't match any of the offered CKAN languages, you get the default language, but see an error flash up for every page, saying:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Could not change language to 'None': IOError: [Errno 2] No translation file found for domain: 'ckan'
&lt;/pre&gt;&lt;p&gt;
Affects 1.5b only.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1443</link>
        <guid isPermaLink="false">http://localhost/ticket/1443</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1444: Language detection defaults to en_us?</title>
                  <description>&lt;p&gt;
Using curl you always get English, even if ckan.locale_default=de. Find out why. (1.5b)
&lt;/p&gt;
&lt;p&gt;
Maybe we should disable locale detection for this release if lots of people's browsers don't have it set correctly (e.g. chinese with us internet explorer)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1444</link>
        <guid isPermaLink="false">http://localhost/ticket/1444</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1445: Resource View page in WUI</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1032" title="enhancement: [super] Resources in WUI (closed: fixed)"&gt;#1032&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Locate at:  /dataset/{dataset}/resource/{id}
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
See: &lt;a class="ext-link" href="http://wiki.ckan.org/Dataset_View_Page"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Dataset_View_Page&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implemented in branch feature-1445-resource-view.
&lt;/p&gt;
&lt;p&gt;
Still to do:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add inline data explorer to page
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1445</link>
        <guid isPermaLink="false">http://localhost/ticket/1445</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1446: Data Explorer v2</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1602" title="enhancement: [super] Data Previewer / Viewer v2 (closed: fixed)"&gt;#1602&lt;/a&gt; (Data Previewer v2)
&lt;/p&gt;
&lt;p&gt;
We already have first pass of Data Explorer that was released as part of &lt;a class="closed ticket" href="http://localhost/ticket/1357" title="enhancement: Integrate new version of data preview (closed: fixed)"&gt;#1357&lt;/a&gt;.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Merging &lt;a class="ext-link" href="https://github.com/okfn/dataexplorer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/dataexplorer&lt;/a&gt; with &lt;a class="ext-link" href="http://github.com/okfn/recline"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://github.com/okfn/recline&lt;/a&gt; and developing it
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://github.com/okfn/recline/issues"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Tickets include (* indicates improvement over current explorer)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Core Backbone Models representing Dataset and Tabular data: &lt;a class="ext-link" href="https://github.com/okfn/recline/issues/10"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/10&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;New theme: &lt;a class="ext-link" href="https://github.com/okfn/recline/issues/22"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/22&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Read-only mode: &lt;a class="ext-link" href="https://github.com/okfn/recline/issues/17"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/17&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Introduce hash navigation / state support (*): &lt;a class="ext-link" href="https://github.com/okfn/recline/issues/19"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/19&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Re-enable editing in &lt;a class="missing wiki"&gt;DataTable?&lt;/a&gt; (*): &lt;a class="ext-link" href="https://github.com/okfn/recline/issues/13"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/13&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;[super] &lt;a class="missing wiki"&gt;DataTable?&lt;/a&gt; view (in Backbone) (*): &lt;a class="ext-link" href="https://github.com/okfn/recline/issues/14"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/14&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="missing wiki"&gt;DataExplorer?&lt;/a&gt; parent view (*): &lt;a class="ext-link" href="https://github.com/okfn/recline/issues/12"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/12&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Simple graph widget using flot: &lt;a class="ext-link" href="https://github.com/okfn/recline/issues/11"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/11&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Est: 10-15d (should be broken down -- partly is in recline issues)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1446</link>
        <guid isPermaLink="false">http://localhost/ticket/1446</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1447: disk space leakage</title>
                  <description>&lt;p&gt;
Periodically we see some CKAN servers fall over because they run out of disk space. We need to find out if there is a common cause and fix it.
&lt;/p&gt;
&lt;p&gt;
One problem in the past has been file handles running out when creating lots of tiny files in the data directory.
&lt;/p&gt;
&lt;p&gt;
Another problem has been several enourmous backups being created every day - pdeu on eu25.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1447</link>
        <guid isPermaLink="false">http://localhost/ticket/1447</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1448: Set up nice way to do celery deployment.</title>
                  <description>&lt;p&gt;
Celery is awkward to deply, need to find a way to do it more simply.  i.e using celery-pylons and supervisor.  A modified version of celery-pylons may be the best solution. 1d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1448</link>
        <guid isPermaLink="false">http://localhost/ticket/1448</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1449: Improved resource listing on dataset view page</title>
                  <description>&lt;p&gt;
Should list resources in the form of search results rather than as a table.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1449</link>
        <guid isPermaLink="false">http://localhost/ticket/1449</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1450: Simplify dataset view page</title>
                  <description>&lt;p&gt;
See &lt;a class="ext-link" href="http://wiki.ckan.org/Dataset_and_Resource_Pages_Proposal"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Dataset_and_Resource_Pages_Proposal&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Create a collapsible section for the README
&lt;/li&gt;&lt;li&gt;Reduce the number of things on the page
&lt;/li&gt;&lt;li&gt;Tidy up groups and tags in the sidebar
&lt;/li&gt;&lt;li&gt;Resource view becomes a list of search results
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
(additional)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Resource navbar item links to first resource
&lt;/li&gt;&lt;li&gt;Resource navbar has a dropdown menu of all resources in the dataset
&lt;/li&gt;&lt;li&gt;Edit and Authz navbar items should be in a separate logical group to the right
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Very rough summary: create more info section and move stuff out (relayout page e.g. README, tags etc)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1450</link>
        <guid isPermaLink="false">http://localhost/ticket/1450</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1451: Reintegrate download stats on dataset and resource view page - 0.5d</title>
                  <description>&lt;ul&gt;&lt;li&gt;css class: resource-url-analytics
&lt;/li&gt;&lt;li&gt;Assign to the link tag (a) everywhere we want to count (dataset, resource view) - 0.25d
&lt;/li&gt;&lt;li&gt;Display counts in same place ...
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
And deploy on &lt;a class="ext-link" href="http://thedatahub.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/&lt;/a&gt; - 0.25d
&lt;/p&gt;
&lt;p&gt;
Possible: Also move analytics extension into core (decided not to).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1451</link>
        <guid isPermaLink="false">http://localhost/ticket/1451</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1452: Offer detected browser language, rather than auto-switch</title>
                  <description>&lt;p&gt;
There are issues with setting the site's language according to the browser detection:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Many browsers have the language setting incorrectly set. e.g. people who download US versions of Mozilla, pirated US copies in the far east.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Although thedatahub.org has a worldwide audience, many CKAN instances are designed for a particular country's citizens. So Open Berlin should probably be in German as default for all.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
I suggest the site should have a default language saved in the config. The browser language *should* be detected, and that prompts a flash message offering to change to that language. And if you change language that is saved in the cookie (as we currently do).
&lt;/p&gt;
&lt;p&gt;
Then do some testing to see if this suits people.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1452</link>
        <guid isPermaLink="false">http://localhost/ticket/1452</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1453: Flexible tag names</title>
                  <description>&lt;p&gt;
Allowing more flexible tag names:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;allowing spaces
&lt;/li&gt;&lt;li&gt;allow capital letters (search is case in-sensitive)
&lt;/li&gt;&lt;li&gt;allow all punctuation except for commas and double-quotes '"'
&lt;/li&gt;&lt;li&gt;allow unicode
&lt;/li&gt;&lt;li&gt;commas delimit tag names in the package create/edit form
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Effects:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;package creation/edit form.
&lt;/li&gt;&lt;li&gt;/tag/{tagname} uri
&lt;/li&gt;&lt;li&gt;search action
&lt;/li&gt;&lt;li&gt;api controller (search/package-create/edit)
&lt;/li&gt;&lt;li&gt;web controller (search/package-create/edit)
&lt;/li&gt;&lt;li&gt;search api documentation
&lt;/li&gt;&lt;li&gt;autocomplete for tag names
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1453</link>
        <guid isPermaLink="false">http://localhost/ticket/1453</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1454: postgres search code/data removal</title>
                  <description>&lt;p&gt;
We made SOLR the main and only supported way to do CKAN search three
months ago (&lt;a class="closed ticket" href="http://localhost/ticket/1275" title="enhancement: Move solr search extension to ckan core (closed: fixed)"&gt;#1275&lt;/a&gt;), but I notice that we still have remnants of the
postgres full-text search hanging around:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;model code (ckan/model/search_index.py)
&lt;/li&gt;&lt;li&gt;table in the database (package_search)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The presence of these still create sqlalchemy warnings and add to our
db, (&amp;amp; db backups etc), so it would be good to get rid of them if we
are not using them. John says this can probably be removed
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1454</link>
        <guid isPermaLink="false">http://localhost/ticket/1454</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1455: Search results when 'all_fields' don't include 'extra' fields</title>
                  <description>&lt;p&gt;
When you do a search like this:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://thedatahub.org/api/search/package?q=tauberer+census&amp;amp;all_fields=1
&lt;/pre&gt;&lt;p&gt;
the "extra" fields (e.g. "triples", "shortname") get missed off the results. The docs say it should be a "full record" and I don't see any reason why this is missed off.
&lt;/p&gt;
&lt;p&gt;
This is a problem because search all_fields is the only way for clients and front-ends to get packages in bulk. They end up (like lodcloud) doing thousands of requests to get packages individually.
&lt;/p&gt;
&lt;p&gt;
The full record is:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://thedatahub.org/api/rest/dataset/2000-us-census-rdf
{"count": 1, "results": [{"res_description": ["Download", "XML Sitemap", "SPARQL enpdoint", "Example (RDF/XML)"], "name": "2000-us-census-rdf", "license": "Non-OKD Compliant::Creative Commons Non-Commercial (Any)", "author": "Joshua Tauberer", "author_email": "http://razor.occams.info/", "ckan_url": "http://thedatahub.org/dataset/2000-us-census-rdf", "notes": "2000 U.S. Census converted into over a billion RDF triples.\n\nPopulation statistics at various geographic levels, from the U.S. as a whole, down through states, counties, sub-counties (roughly, cities and incorporated towns)\n\nNotes: also found in the of SPARQL Endpoints.\n\nFrom home page:\n\n&amp;gt; * For the detailed Census statistics, you'll have to download the raw Census data files from the Census Bureau, my Perl script and the patch file below and run it yourself because the files are too big for me to offer as a download!\n&amp;gt; \n&amp;gt; * The data and scripts can be reused under Creative Commons Attribution-NonCommercial-ShareAlike.\n", "entity_type": "package", "site_id": "www.ckan.net", "download_url": "http://www.rdfabout.com/demo/census/", "indexed_ts": "2011-11-01T12:52:36.034Z", "url": "http://www.rdfabout.com/demo/census/", "state": "active", "title": "2000 U.S. Census in RDF (rdfabout.com)", "groups": ["lod", "lodcloud"], "res_format": ["", "meta/sitemap", "api/sparql", "example/rdf+xml"], "license_id": "cc-nc", "revision_id": "fcbad0de-79ea-41bd-8e01-eb832a05b732", "res_url": ["http://www.rdfabout.com/demo/census/", "http://www.rdfabout.com/sitemap.xml", "http://www.rdfabout.com/sparql", "http://www.rdfabout.com/rdf/usgov/geo/us/ny"], "id": "551ec435-f198-4d52-9b56-ec0b0be6aec9", "tags": ["census", "data", "demographics", "deref-vocab", "format-dc", "format-geonames", "format-politico", "format-rdf", "geographic", "linkeddata", "lod", "lodcloud.nolinks", "no-license-metadata", "no-provenance-metadata", "no-vocab-mappings", "population", "published-by-third-party", "rdf", "statistics", "us"]}]}
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1455</link>
        <guid isPermaLink="false">http://localhost/ticket/1455</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1456: Use resource description instead of name if both are present</title>
                  <description>&lt;p&gt;
If a resource has both description and name the name is used. Descriptions are generally more, well, descriptive, so let's use those.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1456</link>
        <guid isPermaLink="false">http://localhost/ticket/1456</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly.mathews</dc:creator>

                  <title>#1457: Bug with DataNL instance</title>
                  <description>&lt;blockquote&gt;
&lt;p&gt;
"when logging into &lt;a class="ext-link" href="http://register.data.overheid.nl/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://register.data.overheid.nl/&lt;/a&gt; with OpenID, the /user/me page gives a 404. CKAN version 1.3.4."
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
n the manual it says an API key kan be created via &lt;a class="ext-link" href="http://test.ckan.net/user/me"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/user/me&lt;/a&gt; /. However, when I try the corresponding  &lt;a class="ext-link" href="http://register.data.overheid.nl/user/me"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://register.data.overheid.nl/user/me&lt;/a&gt;, I get a 404 error (not found).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1457</link>
        <guid isPermaLink="false">http://localhost/ticket/1457</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1458: Support previewing kml files in data viewer</title>
                  <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>
        <link>http://localhost/ticket/1458</link>
        <guid isPermaLink="false">http://localhost/ticket/1458</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1459: Featured Dataset feature</title>
                  <description>&lt;p&gt;
Provide way to mark a dataset as featured. Featured database show up on the front page.
&lt;/p&gt;
&lt;p&gt;
TODO: detail this more.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1459</link>
        <guid isPermaLink="false">http://localhost/ticket/1459</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1460: Improve extensions documentation</title>
                  <description>&lt;p&gt;
Current extensions documentation needs some work: &lt;a class="ext-link" href="http://docs.ckan.org/en/latest/plugins.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/plugins.html&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Queue extension section may now be out of date (?)
&lt;/li&gt;&lt;li&gt;Think about how it integrates with &lt;a class="ext-link" href="https://github.com/okfn/ckanext-example"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-example&lt;/a&gt; (especially tutorial and example extension)
&lt;/li&gt;&lt;li&gt;Document all plugin points (auto-extract from CKAN source??)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1460</link>
        <guid isPermaLink="false">http://localhost/ticket/1460</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1461: CkanClient doesn't submit auth headers for GET requests</title>
                  <description>&lt;p&gt;
e.g. package_register_get.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1461</link>
        <guid isPermaLink="false">http://localhost/ticket/1461</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1462: Multi-Instance CKAN Solr Search Issues</title>
                  <description>&lt;p&gt;
With the 1.5 package release, CKAN instances over-write each other's indexes. Adria has a fix.
&lt;/p&gt;
&lt;p&gt;
I'd like to see a new CKAN 1.5.1 release with the Solr changes merged and the Solr site ID set up as part of the install ckan.site_id = dgu-os.okfn.org. I'd also like the ability to search on ID and to have the ID directly visible on the package page.
&lt;/p&gt;
&lt;p&gt;
We need to decide how to do this upgrade without affecting existing CKAN solr indexes.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1462</link>
        <guid isPermaLink="false">http://localhost/ticket/1462</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1463: QA extension no-longer works with packaged CKAN 1.5</title>
                  <description>&lt;p&gt;
The extension needs upgrading:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
No module named webstore.database
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The other option is to delay this functionality and merge with the publisher dashboards after the group refactor.
&lt;/p&gt;
&lt;p&gt;
John, David Raznick, David Read, Ira, what do you think?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1463</link>
        <guid isPermaLink="false">http://localhost/ticket/1463</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1464: Replace RabbitMQ with Celeryd to support running multiple instances</title>
                  <description>&lt;p&gt;
The current harvesting implementation can only have one instance per server.
&lt;/p&gt;
&lt;p&gt;
We could either:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Accept this
&lt;/li&gt;&lt;li&gt;Change the RabbitMQ code to support multiple instances
&lt;/li&gt;&lt;li&gt;Switch the entire harvesting to use Celery
&lt;/li&gt;&lt;li&gt;Wait for James's redis based live feedback based system
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1464</link>
        <guid isPermaLink="false">http://localhost/ticket/1464</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1465: Upgrade the harvester to support publishers properly</title>
                  <description>&lt;p&gt;
At the moment most of the harvesting functionality is only available to sysadmins. This is fine for most cases but going forward we will need to grant each publisher access to their own sources, harvest objects and harvest object errors. This will probably be done based on the groups refactor.
&lt;/p&gt;
&lt;p&gt;
One more pressing concern is giving DGU publishers the ability to make calls to /harvest/object/id. We want them to be able to see documents that faild validation and also to see *all* errors in each document.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1465</link>
        <guid isPermaLink="false">http://localhost/ticket/1465</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1466: Need to support https login for multiple instances as part of the CKAN package install</title>
                  <description></description>
        <link>http://localhost/ticket/1466</link>
        <guid isPermaLink="false">http://localhost/ticket/1466</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1467: CKAN dumps dgu miss certain publisher information</title>
                  <description>&lt;p&gt;
Pawel knows about this so David Read, Pawel and I need to find time to discuss it.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1467</link>
        <guid isPermaLink="false">http://localhost/ticket/1467</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1468: Update the search index for individual packages</title>
                  <description>&lt;p&gt;
When I delete a package from the pylons shell I need to remove that package's entry from the Solr search index. That doesn't happen at the moment.
&lt;/p&gt;
&lt;p&gt;
It would be useful if the search-index rebuild command could take a list of package IDs to rebuild.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1468</link>
        <guid isPermaLink="false">http://localhost/ticket/1468</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1469: Geo-spatial search on the front end</title>
                  <description>&lt;p&gt;
Now that we have a geospatial search API, we should build a front-end that integrates with the existing search for displaying results.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1469</link>
        <guid isPermaLink="false">http://localhost/ticket/1469</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1470: Check user name in the profile form</title>
                  <description></description>
        <link>http://localhost/ticket/1470</link>
        <guid isPermaLink="false">http://localhost/ticket/1470</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1471: Be compatible with new ubuntu release in April</title>
                  <description>&lt;p&gt;
Nils flagged up that Ubuntu launches another LTS in April which we should probably move to. This ticket is to get the ball rolling with what we do. We can always include in our package the exact package versions of deps that we want, but it is good to be in line with the release if possible.
&lt;/p&gt;
&lt;p&gt;
Here's how to see the packages included with it:
&lt;a class="ext-link" href="http://packages.ubuntu.com/search?keywords=python-pylons&amp;amp;searchon=names&amp;amp;suite=all&amp;amp;section=all"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://packages.ubuntu.com/search?keywords=python-pylons&amp;amp;searchon=names&amp;amp;suite=all&amp;amp;section=all&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Pylons 0.9.7 -&amp;gt; 1.0-2 Requires a small amount of work
SQLAlchemy 0.7.3-2 OK
Babel 0.9.6-1 OK
Genshi 0.6-2 Perfect
&lt;/p&gt;
&lt;p&gt;
Another alternative is to move to another web framework, especially minding that Pylons is not being further developed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1471</link>
        <guid isPermaLink="false">http://localhost/ticket/1471</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1472: Convert ckanclient to git and github from mercurial</title>
                  <description></description>
        <link>http://localhost/ticket/1472</link>
        <guid isPermaLink="false">http://localhost/ticket/1472</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1473: max name length validators missing</title>
                  <description>&lt;p&gt;
Max length of package name and version field is 100 characters, but the validators seem to enforce this, although in the web interface the javascript limits typing in these fields, so it just affects the API really.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1473</link>
        <guid isPermaLink="false">http://localhost/ticket/1473</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1474: fix up navl tests</title>
                  <description>&lt;p&gt;
navl tests are being skipped unskip them!
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1474</link>
        <guid isPermaLink="false">http://localhost/ticket/1474</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1475: Create documentation showing how to make an extension that use celery.</title>
                  <description></description>
        <link>http://localhost/ticket/1475</link>
        <guid isPermaLink="false">http://localhost/ticket/1475</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1477: [Super] Group refactor</title>
                  <description>&lt;p&gt;
This is the implementation of the final draft in
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://wiki.ckan.org/Groups_Refactor"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Groups_Refactor&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Steps to complete this will follow (somewhat) in the following order.
&lt;/p&gt;
&lt;p&gt;
Change package_group table to membership. (&lt;a class="closed ticket" href="http://localhost/ticket/1478" title="enhancement: change package_group to members table (closed: fixed)"&gt;#1478&lt;/a&gt;) 3d
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;model migration. (done)
&lt;/li&gt;&lt;li&gt;simplify revisioning  (done)
&lt;/li&gt;&lt;li&gt;Remove any sqlalchemy releations from groups. (done)
&lt;/li&gt;&lt;li&gt;change logic functions (done)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Single type per group (&lt;a class="closed ticket" href="http://localhost/ticket/1531" title="enhancement: Update group create/update so you can add capacities and group types. (closed: fixed)"&gt;#1531&lt;/a&gt;)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;migration add type to group table. (done) 1d
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Add capacity table (&lt;a class="closed ticket" href="http://localhost/ticket/1522" title="enhancement: Add capacity to member table. (closed: fixed)"&gt;#1522&lt;/a&gt;)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;model migration. (done)
&lt;/li&gt;&lt;li&gt;add to logic functions.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Allow other objects to be added to groups. (&lt;a class="closed ticket" href="http://localhost/ticket/1531" title="enhancement: Update group create/update so you can add capacities and group types. (closed: fixed)"&gt;#1531&lt;/a&gt;)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;change logic functions (done)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Adapt thedatahub.org to use new model.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;move auth groups over to groups/members
&lt;/li&gt;&lt;li&gt;change user_object roles to use groups? keep user object roles for time being.
&lt;/li&gt;&lt;li&gt;make create update package/group put the correct items in the group/members/capacity tables.
&lt;/li&gt;&lt;li&gt;work out how ui works.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
--not doing the below as part of this super ticker now &lt;a class="closed ticket" href="http://localhost/ticket/1669" title="enhancement: [super] Publisher profile (closed: fixed)"&gt;#1669&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Create model for dgu.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;adapt auth functions to use auth.
&lt;/li&gt;&lt;li&gt;adapt package_create/update group_create/update to fill in the correct capacties/members.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Adapt Iati, and potentially other custom instances.
&lt;/p&gt;
&lt;p&gt;
Sub-tickets:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1279" title="enhancement: Refactor or deprecate Authorization Groups (closed: duplicate)"&gt;#1279&lt;/a&gt; Deprecate Authorization Groups
&lt;/li&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/1198" title="enhancement: Publisher hierarchy (new)"&gt;#1198&lt;/a&gt; Publisher hierarchy
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1477</link>
        <guid isPermaLink="false">http://localhost/ticket/1477</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1478: change package_group to members table</title>
                  <description>&lt;p&gt;
This will comprise of the following steps.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;model migration.
&lt;/li&gt;&lt;li&gt;simplify revisioning
&lt;/li&gt;&lt;li&gt;Remove any sqlalchemy relations from groups.
&lt;/li&gt;&lt;li&gt;change logic functions
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
estimate 2d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1478</link>
        <guid isPermaLink="false">http://localhost/ticket/1478</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1479: Can't edit a user with a unicode email address</title>
                  <description>&lt;ol&gt;&lt;li&gt;Register User with an email address with a unicode char (e.g. u'\u044e')
&lt;/li&gt;&lt;li&gt;View the User in the UI (/user/) or with 'user_show' Action API
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.user:98 in read
&amp;lt;&amp;lt;          try:
                   user_dict = get_action('user_show')(context,data_dict)
               except NotFound:
                   h.redirect_to(controller='user', action='login', id=None)
&amp;gt;&amp;gt;  user_dict = get_action('user_show')(context,data_dict)
Module ckan.logic.action.get:488 in user_show
&amp;lt;&amp;lt;      check_access('user_show',context, data_dict)
           user_dict = user_dictize(user_obj,context)
           if not (Authorizer().is_sysadmin(unicode(user)) or user == user_obj.name):
&amp;gt;&amp;gt;  user_dict = user_dictize(user_obj,context)
Module ckan.lib.dictization.model_dictize:189 in user_dictize
&amp;lt;&amp;lt;
           result_dict['display_name'] = user.display_name
           result_dict['email_hash'] = user.email_hash
           result_dict['number_of_edits'] = user.number_of_edits()
           result_dict['number_administered_packages'] = user.number_administered_packages()
&amp;gt;&amp;gt;  result_dict['email_hash'] = user.email_hash
Module ckan.model.user:59 in email_hash
&amp;lt;&amp;lt;          if self.email:
                   e = self.email.strip().lower()
               return hashlib.md5(e).hexdigest()
           def get_reference_preferred_for_uri(self):
&amp;gt;&amp;gt;  return hashlib.md5(e).hexdigest()
UnicodeEncodeError: 'ascii' codec can't encode character u'\u044e' in position 17: ordinal not in range(128)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1479</link>
        <guid isPermaLink="false">http://localhost/ticket/1479</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1480: Munge functions in util</title>
                  <description>&lt;p&gt;
munge_title_to_name, munge_tag v. useful for client software importing things into CKAN. I want it for ONS.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1480</link>
        <guid isPermaLink="false">http://localhost/ticket/1480</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1481: License not shown if no resources</title>
                  <description>&lt;p&gt;
The license is not displayed any more, unless there are
resources e.g.
&lt;a class="ext-link" href="http://test.ckan.net/dataset/dtest#section-basic-information"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/dataset/dtest#section-basic-information&lt;/a&gt; is OGL,
but that's not shown.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1481</link>
        <guid isPermaLink="false">http://localhost/ticket/1481</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1482: Minor JS bugs</title>
                  <description>&lt;p&gt;
Three JS bugs have appeared:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The slug editor is not updating the text field again. [Fixed; commit:fadda17383]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The View Dataset page will stop executing javascript if there are no resources. [Fixed; commit:e54b089f6e]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The Add-Dataset and Add-Group URL editor shows the wrong URL for datasets and groups. Broken in this commit:
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/5a01e67"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/5a01e67&lt;/a&gt;
by 'map.explicit=true'. JohnG: Can you look into this? [Fixed; commit:88e88380f6]
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1482</link>
        <guid isPermaLink="false">http://localhost/ticket/1482</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1483: Tasks sometimes fail to update task_status table when trying to report a failure</title>
                  <description>&lt;p&gt;
The error reports do not have a "value".  The original task in the task status table is not made and it tries to make a new task, but can't.
&lt;/p&gt;
&lt;p&gt;
Issue: why is the original task_status entry not made?
&lt;/p&gt;
&lt;p&gt;
kindly: there is a chance of course that the task is quicker than the plugin to get to the point where it needs to update the table.
&lt;/p&gt;
&lt;p&gt;
kindly: so we may have to find a way to update the task status before we run the task.
&lt;/p&gt;
&lt;p&gt;
kindly: I think you can supply a task_id to celery. i.e we make our own guid as the task id. So we can use that one to populate the task status.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1483</link>
        <guid isPermaLink="false">http://localhost/ticket/1483</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1484: Creating package with duplicate tags causes exception</title>
                  <description>&lt;p&gt;
e.g.
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl http://localhost:5000/api/action/package_create -d '{"name":"test5", "tags":[{"name": "tag6"}, {"name": "tag6"}]}' -H 'Authorization:tester'
&lt;/pre&gt;&lt;p&gt;
Also broken in Web UI (adding a package).
&lt;/p&gt;
&lt;p&gt;
Affects API and Web UI in 1.5 and I think all versions from 1.4.1
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1484</link>
        <guid isPermaLink="false">http://localhost/ticket/1484</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1485: Package/Group form extension mechanism so you can add forms for particular package_types</title>
                  <description>&lt;p&gt;
We want to be able to change form depending on package type or group type.
&lt;/p&gt;
&lt;p&gt;
This is dependent on a type field being added to the Package and the Group.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1485</link>
        <guid isPermaLink="false">http://localhost/ticket/1485</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1486: "allow_partial_update" option does not work with resource lists of packages</title>
                  <description>&lt;ol&gt;&lt;li&gt;Call ckan.logic.action.update:package_update()
&lt;/li&gt;&lt;li&gt;Pass in a context dict with "allow_partial_update":True
&lt;/li&gt;&lt;li&gt;Pass in a partial data dict containing only the package's ID and those fields that you want to update (e.g. title).
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
=&amp;gt; All of the package's resource will have their statuses changed to "deleted".
&lt;/p&gt;
&lt;p&gt;
The "allow_partial_update" option should apply to the resource lists of packages, but it does not.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1486</link>
        <guid isPermaLink="false">http://localhost/ticket/1486</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1487: Fix group ordering on homepage</title>
                  <description>&lt;p&gt;
ordering on homepage by name instead of group count
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1487</link>
        <guid isPermaLink="false">http://localhost/ticket/1487</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1488: List of installed extensions - add to the status_show</title>
                  <description>&lt;p&gt;
Add the list of extensions install (config's ckan.plugins) to status_show logic action (See &lt;a class="closed ticket" href="http://localhost/ticket/1087" title="enhancement: version and contact info api call (closed: fixed)"&gt;#1087&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1488</link>
        <guid isPermaLink="false">http://localhost/ticket/1488</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1489: Updating example theme/extension</title>
                  <description>&lt;p&gt;
ckanext-example needs updating for CKAN 1.5:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;theme changes
&lt;/li&gt;&lt;li&gt;new forms
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
About: 'ckanext-exampletheme' was created in Spring 2011 as an example CKAN extension that showed how to customise the look &amp;amp; operation of CKAN. This moved to github and renamed 'ckanext-example'.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1489</link>
        <guid isPermaLink="false">http://localhost/ticket/1489</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1490: Standardize output from package listings coming from the logic layer</title>
                  <description>&lt;p&gt;
Right now, the two logic functions that return a list of packages (package_search &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt; and group_packages_list &lt;a class="missing changeset" title="No default repository defined"&gt;[2]&lt;/a&gt;)use custom functions to generate the output dict. That's suboptimal because:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The template function that renders the package listing (package_list_from_dict) could end up receiving different dicts.
&lt;/li&gt;&lt;li&gt;Not all package properties are available at the template level (e.g extras, tags...). These can be really useful to customize the listing from an extension.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
In general only the functions present in lib/dictization/model_dictize.py should be used to build the output of a logic function, in that case package_dictize. If necessary, they can be modified to include missing properties, like on this particular case the "isopen" property, needed by the template renderer.
&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="https://github.com/okfn/ckan/blob/master/ckan/logic/action/get.py#L685"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/blob/master/ckan/logic/action/get.py#L685&lt;/a&gt;
&lt;a class="missing changeset" title="No default repository defined"&gt;[2]&lt;/a&gt; &lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/master/ckan/logic/action/get.py#L442"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/blob/master/ckan/logic/action/get.py#L442&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1490</link>
        <guid isPermaLink="false">http://localhost/ticket/1490</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1491: Visible strings need internationalisation</title>
                  <description>&lt;p&gt;
Sean spotted that some strings need internationalising, such as flash messages. Generally all strings that appear on the web front-end should be internationalised.
&lt;/p&gt;
&lt;p&gt;
Particular places that need i18n:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ckan/controllers/admin
&lt;/li&gt;&lt;li&gt;ckan/lib/base
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Note: there are some exceptions, such as in i18n.py, very obscure error messages and stuff that only appears on the API.
&lt;/p&gt;
&lt;p&gt;
NB: there is a cost in making a string internationalisable (all our volunteers have to translate it), so we should not be too zealous. We should also look at the i18n/ckan.pot to see if any of the existing strings can be reused.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1491</link>
        <guid isPermaLink="false">http://localhost/ticket/1491</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1492: Interference between extra and relationship fields in API</title>
                  <description>&lt;p&gt;
From Jan Kučera &amp;lt;elquenor@…&amp;gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
I have also tried to use extras fields to store information about relationships between datasets. I found out that if you first add relationship using CKAN API into dataset relationships attribute and than you add extras field for the same relationship with key in format "parent_of:dataset_name" or "child_of:dataset_name", storing this extras field will clear all relationships in relationships attribute stored earlier.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
I might be some kind of bug but I suppose you will know better. Is it possible to use relationships attribute and extras field for relationships at the same time?
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/1492</link>
        <guid isPermaLink="false">http://localhost/ticket/1492</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1493: 'search-index rebuild/clear' doesn't work if no ckan.site_id</title>
                  <description>&lt;p&gt;
You can't delete things from the SOLR search index if the ckan.site_id and ckan.site_url are blank.
&lt;/p&gt;
&lt;p&gt;
Should assert that one of these are set up.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1493</link>
        <guid isPermaLink="false">http://localhost/ticket/1493</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1494: API call for getting a user's public activity stream as rendered rtext</title>
                  <description>&lt;p&gt;
This could be implemented as a separate API call, or the rendered text versions of the activities could be added into the JSON returned by the existing API call.
&lt;/p&gt;
&lt;p&gt;
This requires setting up templates for rendering activity streams items and detail items as nice, human-readable text.
&lt;/p&gt;
&lt;p&gt;
There are some open questions, e.g.: Do we want the entire activity stream rendered as a block of plain text? As HTML? Or do we want a list of JSON objects, where each object contains its textual and/or HTML representations as fields?
&lt;/p&gt;
&lt;p&gt;
Activity stream items and their related detail items are separate objects that each have their own textual representations.
&lt;/p&gt;
&lt;p&gt;
For a mockup of the kind of text messages we want, see:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://datahub.pudo.org/pudo"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.pudo.org/pudo&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
but note that this ticket is just for creating the text snippets themselves, not rendering then in an HTML page or RSS feed. Also the mockup only show activity items and not their detail items.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1494</link>
        <guid isPermaLink="false">http://localhost/ticket/1494</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1495: API call for getting a user's public activity stream</title>
                  <description>&lt;p&gt;
An API call that returns a user's public activity stream in JSON format.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1495</link>
        <guid isPermaLink="false">http://localhost/ticket/1495</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1496: Render a user's activity stream on her user page</title>
                  <description></description>
        <link>http://localhost/ticket/1496</link>
        <guid isPermaLink="false">http://localhost/ticket/1496</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1497: Suppress benign warnings</title>
                  <description>&lt;p&gt;
We really shouldn't have lots of benign stuff printed on stderr when we run every command. It confuses users and hides important stuff.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1497</link>
        <guid isPermaLink="false">http://localhost/ticket/1497</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1498: Support multiple SOLR schema versions</title>
                  <description>&lt;p&gt;
At some point the SOLR schema used by CKAN will need to be changed and the changes won't be always backward compatible, so we need a mechanism to support instances that use older versions of the schema.
This process will involve:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Better documentation on how to deploy SOLR, as single instance or multicore
&lt;/li&gt;&lt;li&gt;A convention on how to tag schema versions and SOLR endpoints to ensure that CKAN instances point to the correct SOLR URL.
&lt;/li&gt;&lt;li&gt;(If possible) Checks in CKAN core that deal with different schema versions.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1498</link>
        <guid isPermaLink="false">http://localhost/ticket/1498</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1499: list/read/delete packages on the command-line</title>
                  <description>&lt;p&gt;
It would be useful to be able to manipulate packages using the paster command-line interface. In particular listing, reading and deleting packages. Seeing which packages were deleted too.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1499</link>
        <guid isPermaLink="false">http://localhost/ticket/1499</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1500: Slug API calls tidy up</title>
                  <description>&lt;ul&gt;&lt;li&gt;API call documented but don't exist any more: dataset create_slug
&lt;/li&gt;&lt;li&gt;API call not documented but exists: is_slug_valid
&lt;/li&gt;&lt;li&gt;API call not documented, badly sited in API and using custom code in controller (not logic layer): /package/autocomplete
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1500</link>
        <guid isPermaLink="false">http://localhost/ticket/1500</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1501: Pagination links broken</title>
                  <description>&lt;p&gt;
Most of the different pagination links are broken and point to wrong locations. e.g:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Dataset listings in group page:
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://test.ckan.net/group/bibliographic"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/group/bibliographic&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Tag letters in tag listing:
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://test.ckan.net/tag"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/tag&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;User listing:
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://test.ckan.net/user"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/user&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Revision listing:
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://test.ckan.net/revision"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/revision&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This is most probably related with:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/1772a5c"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/1772a5c&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1501</link>
        <guid isPermaLink="false">http://localhost/ticket/1501</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1502: Group package list is ordered by revision timestamp instead of alphabetically</title>
                  <description></description>
        <link>http://localhost/ticket/1502</link>
        <guid isPermaLink="false">http://localhost/ticket/1502</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markbrough</dc:creator>

                  <title>#1503: Move from Bitbucket to Github</title>
                  <description>&lt;p&gt;
Reasons: more people familiar with Git, bigger Open Source community on Github.
&lt;/p&gt;
&lt;p&gt;
Keeping track of the move here: &lt;a class="ext-link" href="https://docs.google.com/spreadsheet/ccc?key=0AvCDqUH8jVN8dGNVNEpXLWk3UTlJZXhFMjBPbXVtRmc&amp;amp;hl=en_GB#gid=0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://docs.google.com/spreadsheet/ccc?key=0AvCDqUH8jVN8dGNVNEpXLWk3UTlJZXhFMjBPbXVtRmc&amp;amp;hl=en_GB#gid=0&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1503</link>
        <guid isPermaLink="false">http://localhost/ticket/1503</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1504: Action API given blank data causes exception</title>
                  <description>&lt;p&gt;
This is what caused the exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl http://localhost:5000/api/action/package_search -d='{"q": "osm"}'
&lt;/pre&gt;&lt;p&gt;
The problem is the content-type is formencoding, the '=' is the first character of the request, and so internally the data_dict is set to ' ', which needs to be a dictionary.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1504</link>
        <guid isPermaLink="false">http://localhost/ticket/1504</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1505: SearchError and SearchQueryError cause exception in Action API</title>
                  <description>&lt;p&gt;
This query caused ckan to except because ckan/controllers/api.py doesn't catch &lt;a class="missing wiki"&gt;SearchError?&lt;/a&gt; and &lt;a class="missing wiki"&gt;SearchQueryError?&lt;/a&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl http://localhost:5000/api/action/package_search -d '{"sort": "metadata_modified"}'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1505</link>
        <guid isPermaLink="false">http://localhost/ticket/1505</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1506: [super] UX improvements to dataset edit, create and search + group + user page (Dec 2011)</title>
                  <description>&lt;h2 id="HistoricalParentTickets"&gt;Historical Parent Tickets&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Parent-ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1450" title="enhancement: Simplify dataset view page (closed: fixed)"&gt;#1450&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Parent-ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1032" title="enhancement: [super] Resources in WUI (closed: fixed)"&gt;#1032&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="StepZero"&gt;Step Zero&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;COMPLETELY REDESIGN resource edit process&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="DatasetEdit-Resources"&gt;Dataset Edit-Resources&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Force format field to be lowercase&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Modify backend to serve it up in that format&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Subticket &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;: Add extra fields to resources in Web UI&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Fix display of large datasets (&lt;a class="ext-link" href="http://test.ckan.net/dataset/europeana-lod"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/dataset/europeana-lod&lt;/a&gt;)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;When submitting forms with errors, open the correct resource pane.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;No hint is given that the time format for a resource is in ISO, eg 2005-01-01T10:10:10&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Resource description field to become the markdown editor we use everywhere else.&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="DatasetSettings"&gt;Dataset Settings&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Subticket &lt;a class="closed ticket" href="http://localhost/ticket/1648" title="enhancement: Clarify that additional info = extra fields + add guidance (closed: fixed)"&gt;#1648&lt;/a&gt;: Clarify edit terminology&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Merge Groups and Tags into main Settings section (no point having them on their own and most people will miss this).&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Fix (i.e. allow / show) name editing on dataset edit.&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Fix the slugify so it does not overwrite if i change title after fixing name.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Make slugify encourage people to use shorter names. Either by cutting off (not so good) or showing a warning and saying something like 'hey you may want to cut this down. Hit edit to customize the dataset name now'&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Autocomplete the author/maintainer box (requires API extension?)&lt;/del&gt; [WONTFIX what? it's not like that field is linked to users of the site or anything]
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="DatasetView"&gt;Dataset View&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Fix animation glitch in expanding description&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Can we make the list of files look more like a table? Lose space between files? Lose rounded corners?&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Verify that there are no more (none) placeholder &amp;lt;td&amp;gt; objects (i believe they've been refactored out)&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="DatasetCreate"&gt;Dataset Create&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;"Upload or link data files, APIs and other materials related to your dataset."&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Include the description markdown editor again (keep it small)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Licence should maybe be restored&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;"(Don't worry if you don't know what your licence is)"&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Show the log message field&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Beautify&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Pre-populate the log message field?&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;? Show Home Page field when creating dataset&lt;/del&gt; [WONTFIX don't push it]
&lt;/li&gt;&lt;li&gt;&lt;del&gt;?  Do some Guerilla UX to see whether we need to Redirect to Resources directly after dataset creation?&lt;/del&gt; [WONTFIX doesnt make sense with new resource editor awesomeness]
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Userpages"&gt;User pages&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Improvements to user page UX - 1d - &lt;a class="closed ticket" href="http://localhost/ticket/1396" title="enhancement: Improvements to user page UX - 1d (closed: fixed)"&gt;#1396&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Broken links for non-Gravatar use icons - 0.25d - &lt;a class="closed ticket" href="http://localhost/ticket/1719" title="defect: Broken links for non-Gravatar use icons - 0.25d (closed: fixed)"&gt;#1719&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Etc"&gt;Etc&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Take before and after screenshots
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1506</link>
        <guid isPermaLink="false">http://localhost/ticket/1506</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1507: Minor fixes to dataset add on Group edit form - 0.5d</title>
                  <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>
        <link>http://localhost/ticket/1507</link>
        <guid isPermaLink="false">http://localhost/ticket/1507</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1508: [super] Finalize and deploy some of our major (new) features as of Dec 2011</title>
                  <description>&lt;p&gt;
This ticket is about finalizing, then deploying (to &lt;a class="ext-link" href="http://thedatahub.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/&lt;/a&gt;), and finally announcing some of recent major new features such as:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Deploy wordpresser extension for thedatahub (so we can start blogging) - &lt;a class="closed ticket" href="http://localhost/ticket/1533" title="defect: Make sure ckanext-wordpresser works on CKAN 1.5.1 (closed: wontfix)"&gt;#1533&lt;/a&gt; - WONTFIX
&lt;/li&gt;&lt;li&gt;&lt;del&gt;(Deploy new Resource and Dataset pages (invite comments))&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;Get thedatahub geo-ified i.e. ckanext-spatial - &lt;a class="closed ticket" href="http://localhost/ticket/1601" title="enhancement: [super] Well integrated Geo-spatial support including search (closed: fixed)"&gt;#1601&lt;/a&gt; (?)
&lt;ul&gt;&lt;li&gt;Any additional dev that needs to be done? (e.g. geo in search ...?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;(Deploy / re-enable ckanext-googleanalytics on thedatahub - &lt;a class="closed ticket" href="http://localhost/ticket/1451" title="enhancement: Reintegrate download stats on dataset and resource view page - 0.5d (closed: fixed)"&gt;#1451&lt;/a&gt; (more stuff &lt;a class="closed ticket" href="http://localhost/ticket/1566" title="enhancement: [super] Finalize Google analytics extension (closed: fixed)"&gt;#1566&lt;/a&gt;))&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;Rename the extension to ckanext-analytics?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Custom forms (and use of 'dataset types') - Ticket (??)
&lt;/li&gt;&lt;li&gt;&lt;del&gt;(Get QA deployed and running - &lt;a class="closed ticket" href="http://localhost/ticket/1582" title="enhancement: Deploy QA for thedatahub - 0.5d (closed: fixed)"&gt;#1582&lt;/a&gt;)&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
It would be best if this was done by someone *unfamiliar* with the extensions so feedback could be provided on quality of install docs etc etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1508</link>
        <guid isPermaLink="false">http://localhost/ticket/1508</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1509: Mis-dated old revisions of datasets</title>
                  <description>&lt;p&gt;
e.g. &lt;a class="ext-link" href="http://thedatahub.org/dataset/osm%402011-07-12T12%3A16%3A47.590358"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/osm%402011-07-12T12%3A16%3A47.590358&lt;/a&gt; gives:
&lt;/p&gt;
&lt;pre class="wiki"&gt;This is the current revision of this dataset, as edited at 2011-07-12 12:16.
&lt;/pre&gt;&lt;p&gt;
but it should say the date 2011-07-12 (which is the data being displayed).
&lt;/p&gt;
&lt;p&gt;
The problem is looking at &lt;a class="missing wiki"&gt;PackageRevision?&lt;/a&gt;, when it might be a tag or extra.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1509</link>
        <guid isPermaLink="false">http://localhost/ticket/1509</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1510: Migrate existing data into activity streams database tables</title>
                  <description>&lt;p&gt;
See '### Task 2' in this etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/notifications"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/notifications&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I have no idea yet about how to do this or how long it might take me.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1510</link>
        <guid isPermaLink="false">http://localhost/ticket/1510</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1511: Logic function for getting a user's public activity stream</title>
                  <description>&lt;p&gt;
Add a function to logic.action.get that returns a user's public activity stream as a list of dicts.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1511</link>
        <guid isPermaLink="false">http://localhost/ticket/1511</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1512: Modifying user name makes you semi-log-out</title>
                  <description>&lt;p&gt;
If you modify your user name, it looks like you are logged out, but you are actually logged in and therefore can't login. (Reported by Pablo)
&lt;/p&gt;
&lt;p&gt;
As a work around, you need to logout and log back in.
&lt;/p&gt;
&lt;h1 id="implementation"&gt;implementation&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;We should force this by auto-logging you out (DR: maybe!)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1512</link>
        <guid isPermaLink="false">http://localhost/ticket/1512</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1513: Logged in/out problems</title>
                  <description>&lt;p&gt;
Richard Cyganiak: I often see a problem where half the system thinks that I'm logged in, while the other half insists I'm not. Logout then login again may fix it.
&lt;/p&gt;
&lt;p&gt;
David Read: I think I've seen it several times that the "My Account" link is given (suggesting you're logged in) but when you click it it asks you to log in, which means you weren't.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1513</link>
        <guid isPermaLink="false">http://localhost/ticket/1513</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1514: Modifying user name loses connection with revisions</title>
                  <description>&lt;p&gt;
If you edit your user name, the number of revisions you made returns to 0. This is because in the Revision object, the user's name is stored, rather than the user's ID.
&lt;/p&gt;
&lt;p&gt;
rgrp:  We can reconnect that pretty easily (and have a
longer term solution that involves not using the usernames but the
userids in in the Revision objects so we don't hvae this problem in
future!)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1514</link>
        <guid isPermaLink="false">http://localhost/ticket/1514</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1515: [super] Activity Streams</title>
                  <description>&lt;p&gt;
We want to add "activity streams" (chronological lists of activities) to CKAN.
&lt;/p&gt;
&lt;p&gt;
Activity streams standard: &lt;a class="ext-link" href="http://activitystrea.ms/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://activitystrea.ms/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Super branch where the feature was initially developed (this has now been merged into master): &lt;a class="ext-link" href="https://github.com/okfn/ckan/tree/feature-1515-activity-streams"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/tree/feature-1515-activity-streams&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/notifications"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/notifications&lt;/a&gt; (most relevant parts inlined here)
&lt;/p&gt;
&lt;p&gt;
Friedrich's mockup: &lt;a class="ext-link" href="http://datahub.pudo.org/pudo"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.pudo.org/pudo&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="Tasks"&gt;Tasks&lt;/h2&gt;
&lt;p&gt;
&lt;del&gt;Strikethrough&lt;/del&gt; means the task is done.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;New domain objects Activity and &lt;a class="missing wiki"&gt;ActivityStream?&lt;/a&gt; [2d] &lt;a class="closed ticket" href="http://localhost/ticket/1298" title="enhancement: Generate activites to be put into activities table. (closed: fixed)"&gt;#1298&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Migrate existing data into activity streams model [3.5d] &lt;a class="closed ticket" href="http://localhost/ticket/1510" title="enhancement: Migrate existing data into activity streams database tables (closed: wontfix)"&gt;#1510&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;Generate activities when objects are saved [4d] &lt;a class="closed ticket" href="http://localhost/ticket/1298" title="enhancement: Generate activites to be put into activities table. (closed: fixed)"&gt;#1298&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;Get the activity stream for a given user as a JSONifiable list of dictionaries [1d] &lt;a class="closed ticket" href="http://localhost/ticket/1511" title="enhancement: Logic function for getting a user's public activity stream (closed: fixed)"&gt;#1511&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;API call for getting a user's public activity stream as JSON [0.5d] &lt;a class="closed ticket" href="http://localhost/ticket/1495" title="enhancement: API call for getting a user's public activity stream (closed: fixed)"&gt;#1495&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;API call for getting a user's public activity stream as rendered text, HTML, etc. [5d] &lt;a class="closed ticket" href="http://localhost/ticket/1494" title="enhancement: API call for getting a user's public activity stream as rendered rtext (closed: wontfix)"&gt;#1494&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;Render a user's activity stream on her user page [3d] &lt;a class="closed ticket" href="http://localhost/ticket/1496" title="enhancement: Render a user's activity stream on her user page (closed: fixed)"&gt;#1496&lt;/a&gt;&lt;/del&gt; (needs review/page design work)
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;Generate activities for other types of objects besides users (e.g. packages, groups, tags, extras, and save them in the database.&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;Logic functions for getting activity streams for packages, groups, and users.&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;API calls for getting activity streams of packages, groups, and users&lt;/del&gt; as JSON.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;Rendering activity streams for packages and groups etc. into their pages.&lt;/del&gt; (done but disabled pending page design work)
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;API calls for inserting events into activity streams.&lt;/del&gt; (Still need to handle activity details in the API, ticketed).
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Conform to activitystrea.ms standard
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Enable users to subscribe to and unsubscribe from activity streams, see an aggregated activity stream on their dashboard page.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Generate aggregated activity streams for arbitrary sets of multiple activity sources/streams
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Email notifications
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Extension point for extensions to register themselves as renderers for different types of activity
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Deploy to UAT [0.5d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Docs and announce [1d]
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1515</link>
        <guid isPermaLink="false">http://localhost/ticket/1515</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1516: Update SOLR schema after 1.5.1 release and set up multicore SOLR instances if needed</title>
                  <description>&lt;p&gt;
CKAN 1.5.1 will introduce changes in the SOLR schema and functions to support multiple schema versions. Unfortunately the changes in the schema will be backwards incompatible so either both CKAN and SOLR are upgraded, or SOLR is configured as multicore, with one core for each schema. The solr cores would look like:
&lt;/p&gt;
&lt;p&gt;
&lt;tt&gt;http://&amp;lt;solr-server&amp;gt;/solr/schema-&amp;lt;version&amp;gt;&lt;/tt&gt;
&lt;/p&gt;
&lt;p&gt;
Different scenarios:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Single SOLR instance used by only one CKAN site (e.g. SOLR running on the same machine):
&lt;ul&gt;&lt;li&gt;Update CKAN
&lt;/li&gt;&lt;li&gt;Update SOLR schema (symlink to suitable version in CKAN source)
&lt;/li&gt;&lt;li&gt;Rebuild search index
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Single SOLR instance used by multiple CKAN sites.
&lt;ul&gt;&lt;li&gt;Update CKAN source
&lt;/li&gt;&lt;li&gt;Configure SOLR as multicore, one core for version 1.2 and another for 1.3 of the schema (symlink to appropriate version in CKAN source)
&lt;/li&gt;&lt;li&gt;Update solr_url on each of the CKAN sites with the suitable core
&lt;/li&gt;&lt;li&gt;Rebuild search index
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
These are the SOLR and CKAN instances that need to be updated (Please add any missing ones):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Same machine as the CKAN site:
&lt;ul&gt;&lt;li&gt;&lt;del&gt;test.ckan.net&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;iati.test.ckan.net&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;data.gov.uk/ catalogue.data.gov.uk (confirm)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;s046.okserver.org&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;iatiregistry.org&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;s052.okserver.org&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;datacatalogs.org&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;s004.okserver.org / eu4.okfn.org / solr.okfn.org&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;thedatahub.org (=www.ckan.net)
&lt;/li&gt;&lt;li&gt;datagm.org.uk
&lt;/li&gt;&lt;li&gt;&lt;del&gt;publicdata.eu&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;hri.fi (dev.fvh.fi?)
&lt;/li&gt;&lt;li&gt;it.ckan.net
&lt;/li&gt;&lt;li&gt;ie.ckan.net
&lt;/li&gt;&lt;li&gt;cz.ckan.net
&lt;/li&gt;&lt;li&gt;register.data.overheid.nl (nl.ckan.net?)
&lt;/li&gt;&lt;li&gt;no.ckan.net / datakilder.no
&lt;/li&gt;&lt;li&gt;br.ckan.net
&lt;/li&gt;&lt;li&gt;colorado.ckan.net
&lt;/li&gt;&lt;li&gt;at.ckan.net
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
TODO: which SOLR server are using these instances?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;data.norge.no
&lt;/li&gt;&lt;li&gt;nederland.ckan.net
&lt;/li&gt;&lt;li&gt;lt.ckan.net
&lt;/li&gt;&lt;li&gt;pl.ckan.net
&lt;/li&gt;&lt;li&gt;datadotmontreal.ca/
&lt;/li&gt;&lt;li&gt;ca.ckan.net / datadotgc.com
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1516</link>
        <guid isPermaLink="false">http://localhost/ticket/1516</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1517: Accessing resource view sometimes auto-downloads the resource</title>
                  <description>&lt;p&gt;
Clicking any of the links to a resource page in the dataset viewer seems to load the page and immediately start downloading the resource file.
&lt;/p&gt;
&lt;p&gt;
For example, being here: &lt;a class="ext-link" href="http://test.ckan.net/dataset/europeana-lod"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/dataset/europeana-lod&lt;/a&gt;
and clicking on any of the links to the first resource.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1517</link>
        <guid isPermaLink="false">http://localhost/ticket/1517</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markbrough</dc:creator>

                  <title>#1518: CKAN Upload fails if filename has spaces in it</title>
                  <description>&lt;p&gt;
E.g. uploading a file with spaces in it:
OECD Monthly Exchange Rates.zip
&lt;/p&gt;
&lt;p&gt;
Gives a 404 Not Found response to the following file:
&lt;a class="ext-link" href="http://test.ckan.org/api/storage/metadata/2011-12-05T193046/OECD%20Monthly%20Exchange%20Rates.zip"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.org/api/storage/metadata/2011-12-05T193046/OECD%20Monthly%20Exchange%20Rates.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The upload wheel keeps spinning and the user is not informed that the upload has failed.
&lt;/p&gt;
&lt;p&gt;
Analysis: turns out that google storage (possibly s3 but not checked) replaces with ' ' in keys with '+' on upload. This breaks things because we try and look up metadata about upload using the filename/key we put in but of course that does not exist because google has changed name.
&lt;/p&gt;
&lt;p&gt;
Fix is trivial: replace ' ' in keys / filenames with '-'.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1518</link>
        <guid isPermaLink="false">http://localhost/ticket/1518</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1519: combine stats and analytics extensions into one in UI as well as deployment</title>
                  <description>&lt;p&gt;
Makes more sense to only have one comprehensive stats/analytics extension, so when people are looking to add a stats extension they won't have to add two which may be confusing (is one an old version of the other? why do I have to add two? what's the difference? etc)
&lt;/p&gt;
&lt;p&gt;
User-wise we need a way to display our stats with google analytics in the same place
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1519</link>
        <guid isPermaLink="false">http://localhost/ticket/1519</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1520: Disable name changing</title>
                  <description>&lt;p&gt;
Because of &lt;a class="closed ticket" href="http://localhost/ticket/1514" title="defect: Modifying user name loses connection with revisions (closed: duplicate)"&gt;#1514&lt;/a&gt; we should just disable name changing, until &lt;a class="closed ticket" href="http://localhost/ticket/1514" title="defect: Modifying user name loses connection with revisions (closed: duplicate)"&gt;#1514&lt;/a&gt; is done.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1520</link>
        <guid isPermaLink="false">http://localhost/ticket/1520</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1521: [super] Groups UI and UX improvements in v1.6 from Cygri</title>
                  <description>&lt;p&gt;
Various UX and UI improvements to groups.
&lt;/p&gt;
&lt;p&gt;
Etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/feature-1521-groups-ux"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/feature-1521-groups-ux&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="Improvedgroups"&gt;Improved groups&lt;/h2&gt;
&lt;p&gt;
From Richard Cyganiak.
&lt;/p&gt;
&lt;p&gt;
This is a set of proposals to make the groups feature more powerful. As a result, currently separate CKAN instances such as &lt;a class="ext-link" href="http://ie.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ie.ckan.net/&lt;/a&gt; could be turned into a simple group on the &lt;a class="ext-link" href="http://thedatahub.org"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Data Hub&lt;/a&gt; without losing their separate identity.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;&lt;strong&gt;Group homepages:&lt;/strong&gt; Make the group pages more attractive and welcoming as homepages. The main Data Hub homepage does a great job at this now – can the group pages be made more like that? They're quite uninformative and bland right now.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Subdomains for groups:&lt;/strong&gt; Enable subdomains such as &lt;tt&gt;ie.thedatahub.org&lt;/tt&gt; as aliases for &lt;tt&gt;thedatahub.org/group/ireland&lt;/tt&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;&lt;strong&gt;Search within the group:&lt;/strong&gt; Have a big search box that searches just within the group on the group page, with a look like on &lt;a class="ext-link" href="http://thedatahub.org/dataset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Have an &lt;strong&gt;Add a dataset to this group&lt;/strong&gt; link on the group page, perhaps in the sidebar.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;&lt;strong&gt;Navigation within the group:&lt;/strong&gt; Have some more navigation starting points on the group page, e.g., the Tags + Resource Format sidebar from &lt;a class="ext-link" href="http://thedatahub.org/dataset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;&lt;strong&gt;Group documentation:&lt;/strong&gt; Add the ability to add more “About this group” text, or pages like “FAQ” and “Extra field conventions”.&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;The only place where one can currently put group-specific text is before the dataset list. Putting much text there is bad as it moves the datasets below the fold.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;Can the top-level sections of a group's description be automatically turned into separate pages that are linked from the sidebar? With headlines &lt;em&gt;About&lt;/em&gt;, &lt;em&gt;Frequently Asked Questions&lt;/em&gt; and &lt;em&gt;How to get involved&lt;/em&gt;, we'd then get three links in the sidebar that point to &lt;tt&gt;datahub.org/group/ireland/about&lt;/tt&gt;, &lt;tt&gt;datahub.org/group/ireland/frequently-asked-questions&lt;/tt&gt;, &lt;tt&gt;datahub.org/group/ireland/how-to-get-involved&lt;/tt&gt;
&lt;ul&gt;&lt;li&gt;RP: WONTFIX this is being considered for future (generally useful) but  cost/benefit here was low particularly as it wasn't clear what optimal implementation was.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Additional"&gt;Additional&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Display members of a group as well as admins (if less than 10? If more than 10 display count only ...?)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;Better group index page (sort by number of dataset, allow searching ...) - &lt;a class="new ticket" href="http://localhost/ticket/1403" title="enhancement: Refactor groups index page (new)"&gt;#1403&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Add search to groups: &lt;a class="ext-link" href="http://thedatahub.org/group"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/group&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Way to filter by activity, number of datasets
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1597" title="enhancement: Tag search - filter by group (closed: fixed)"&gt;#1597&lt;/a&gt; &lt;strong&gt;Tag search, filtered by group&lt;/strong&gt;
&lt;ul&gt;&lt;li&gt;RP: not worth it in terms of benefit/cost IMO
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Steps"&gt;Steps&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;"Add Dataset" button on action bar&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Make it a dropdown? -&amp;gt; New Dataset / Existing Dataset&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Redirect Add Existing -&amp;gt; Edit&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Check permissions&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Expandable "about this group" box&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Implement simplest search-this-group box&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;turn the list of datasets into a dynamic list of search results&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;pagination&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Matching set of facets in the sidebar (matches 'real' search page)&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Deleteable, displayed facets&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Nice-To-Have"&gt;Nice-To-Have&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Get rid of the old group_package_show action (confirm with team)
&lt;/li&gt;&lt;li&gt;Tabbed "about this group" box (extract headers?)
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Scrollable group members widget in the sidebar&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1521</link>
        <guid isPermaLink="false">http://localhost/ticket/1521</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1522: Add capacity to member table.</title>
                  <description>&lt;p&gt;
Need to add capacities to member tables.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1522</link>
        <guid isPermaLink="false">http://localhost/ticket/1522</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1523: [super]</title>
                  <description>&lt;p&gt;
Form refactor.
&lt;/p&gt;
&lt;p&gt;
New create/edit package form wizard for DGU.  See attached spec.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1523</link>
        <guid isPermaLink="false">http://localhost/ticket/1523</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1524: New Release of Latest MI Reports</title>
                  <description></description>
        <link>http://localhost/ticket/1524</link>
        <guid isPermaLink="false">http://localhost/ticket/1524</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1525: [super] DGU package form refactor</title>
                  <description>&lt;p&gt;
Form refactor. New create/edit package form wizard for DGU.
&lt;/p&gt;
&lt;p&gt;
Etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/dgu-package-form"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/dgu-package-form&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Tasks:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1526" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1526&lt;/a&gt; : Simple one-page form.
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1527" title="enhancement: Break DGU package edit form into sections (closed: fixed)"&gt;#1527&lt;/a&gt; : Tab-ify the form using JS.  No validation between steps.
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1541" title="task: Setup server for the DGU form-refactor. (closed: fixed)"&gt;#1541&lt;/a&gt; : Setup server for the DGU form-refactor.
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1537" title="enhancement: Package create form wizard (closed: fixed)"&gt;#1537&lt;/a&gt; : Package create form wizard
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1538" title="enhancement: Store partially-filled in package form data as a draft. (closed: wontfix)"&gt;#1538&lt;/a&gt; : &lt;del&gt;Store partially-filled in package form data as a draft.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1539" title="enhancement: Package forms auto-save (closed: wontfix)"&gt;#1539&lt;/a&gt; : &lt;del&gt;Package forms auto-save&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
How the rest of the work is carried out is up for discussion, as it depends on the approach taken.  Whether to continue with validation using AJAX queries, or whether to break the form down into multi pages.  &lt;a class="ext-link" href="https://docs.google.com/spreadsheet/ccc?key=0Av2RfDDpj67zdGpSdFlKVjNrQmFXV3lHbGM3ZFlDdnc&amp;amp;hl=en_US#gid=1"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Google doc outlining design(s)&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1525</link>
        <guid isPermaLink="false">http://localhost/ticket/1525</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1526: [super] Update and test existing DGU package form</title>
                  <description>&lt;p&gt;
Re-create behaviour of old form without using form-alchemy.  And unit test.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[X] write high-level functional tests for the form.  Creation / edition / validation.
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 6 days (3 days x 2)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 3 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] write the html
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 2 days (1 day x 2)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 1.3 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] modify the existing validation schema
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 2 days (1 day x 2)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 1.3 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 1 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] split resources into types: individual, time-series, and additional.
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 2 days
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 2.5 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] contact information is derived from Publisher, but can be altered for each dataset. &lt;a class="closed ticket" href="http://localhost/ticket/1526#1617" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1617&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 4 days
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 4 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
(Waiting on publisher integration)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] foi contact information is derived from user, but can be altered for each dataset. &lt;a class="closed ticket" href="http://localhost/ticket/1526#1617" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1617&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 1 days
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 1 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
(Waiting on publisher integration)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] provide stubs for the theme and sub-themes &lt;a class="closed ticket" href="http://localhost/ticket/1526#1618" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1618&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 1 days
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] provide stubs for the publisher hierarchy &lt;a class="closed ticket" href="http://localhost/ticket/1526#1619" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1619&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 2 days
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 0.5 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 1.5 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Note - the groups refactor is essentially ready to be used. And this would be a good test case for it.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] don't allow package-type selection when editing a package
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Can't change a dataset from containing time-series resources to one containing individual resources or visa-versa. (&lt;a class="closed ticket" href="http://localhost/ticket/1620" title="enhancement: Update and test existing DGU package form : don't allow package-type ... (closed: fixed)"&gt;#1620&lt;/a&gt;)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 0.5 days
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/1526</link>
        <guid isPermaLink="false">http://localhost/ticket/1526</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1527: Break DGU package edit form into sections</title>
                  <description>&lt;ul&gt;&lt;li&gt;use javascript to selectively hide/show parts of the form
&lt;/li&gt;&lt;li&gt;there's no validation between steps at this stage.  It's still a
"big save button at the end".
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1527</link>
        <guid isPermaLink="false">http://localhost/ticket/1527</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1528: Gravatar next to My Account link on all pages</title>
                  <description>&lt;p&gt;
Rather than the anonymous 'user' icon in the top-right corner, we could display your gravatar on all pages when you are logged in.
&lt;/p&gt;
&lt;p&gt;
This was suggested by Richard Cyganiak:
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-November/001825.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-November/001825.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1528</link>
        <guid isPermaLink="false">http://localhost/ticket/1528</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1529: Display user name when logged in</title>
                  <description>&lt;p&gt;
Currently when you log in it says "logged-in". Most sites show your user-name and this is helpful when you have more than one account or human using the computer.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1529</link>
        <guid isPermaLink="false">http://localhost/ticket/1529</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>lucychambers</dc:creator>

                  <title>#1530: URL field help text in wrong place</title>
                  <description>&lt;p&gt;
Confusion between entering values in the title and name/url fields in datacatalogs.org.
&lt;/p&gt;
&lt;p&gt;
The help text "Url must be purely lowercase alphanumeric (ascii) characters and these symbols: -_" applies to the name/url field, yet in Lucy's browser the text that is actually hovering over the title field in my browser.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1530</link>
        <guid isPermaLink="false">http://localhost/ticket/1530</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1531: Update group create/update so you can add capacities and group types.</title>
                  <description>&lt;p&gt;
The new members table needs a way so you can add arbitrary domain objects against them.
&lt;/p&gt;
&lt;p&gt;
We need to extend the group schema to accept types, and instead of just being able to add packages to groups add members with their capacities that associated with different table rows.
&lt;/p&gt;
&lt;p&gt;
4d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1531</link>
        <guid isPermaLink="false">http://localhost/ticket/1531</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1532: Registration with OpenID has misleading error message</title>
                  <description>&lt;p&gt;
The log-in page says "Login using Open ID" and gives instructions for signing up. YET this is only available to users who've already added openid to their account. If you have not done this and then sign-in via OpenID (which is successful from the OpenID end) then you are told "Login failed. Bad username or password." in a flash message.
&lt;/p&gt;
&lt;p&gt;
Proposed solution (i don't know if this is possible):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;When you log-in for the first time via OpenID, it doesn't actually log you in in CKAN. It just sends you to the 'Create User' page with the OpenID field pre-filled, and puts up a flash message "This OpenID account is not yet registered on thedatahub. Please complete your details.". This allows you to complete the registration and logs you in, and allows you to log-in directly with OpenID in the future.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Alternatives:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Just change the error message to be 'You need to register in CKAN first. Quote your OpenID in the registration form to use it in future.'
&lt;/li&gt;&lt;li&gt;Remove OpenID altogether
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1532</link>
        <guid isPermaLink="false">http://localhost/ticket/1532</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1533: Make sure ckanext-wordpresser works on CKAN 1.5.1</title>
                  <description>&lt;p&gt;
Superceded by &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;
&lt;/p&gt;
&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1508" title="enhancement: [super] Finalize and deploy some of our major (new) features as of Dec ... (closed: fixed)"&gt;#1508&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/wordpresser"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/wordpresser&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The wordpresser extension does not work with ckan 1.5.1. The wordpress page is not loaded.
&lt;/p&gt;
&lt;p&gt;
Looks like this changeset may be involved
&lt;a class="ext-link" href="https://github.com/okfn/ckanext-wordpresser/commit/0efa0649896a7339865f178a302be639ddc561e1"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-wordpresser/commit/0efa0649896a7339865f178a302be639ddc561e1&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I think that even before that changeset, the page was shown without any margins.
&lt;/p&gt;
&lt;p&gt;
In any case, the extension seems to be too sensible to changes in the ckan layout so perhaps it should take into account the CKAN version and have a fixed set of xpaths and templates that work for each version
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1533</link>
        <guid isPermaLink="false">http://localhost/ticket/1533</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1534: Change revisions to record userid rather than username</title>
                  <description>&lt;p&gt;
The use of username is problematic because username's can change.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Change all revision creation code to use user id (simplest is to change c.author field in lib/base.py (?))
&lt;ul&gt;&lt;li&gt;(?) Add a field ipaddr for ip address of anonymous users? (or just keep putting this in author field on Revision and then acception that those won't match when we do a look up against user table)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Change user view page to look up against user id rather than name
&lt;/li&gt;&lt;li&gt;Perform migration on existing Revision objects
&lt;ul&gt;&lt;li&gt;Match should probably be against both openid and username when searching Revisions' author field (especially true on CKAN where some people have already changed their username from being their openid)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1534</link>
        <guid isPermaLink="false">http://localhost/ticket/1534</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1535: Plump for auth header of: X-CKAN-API-KEY</title>
                  <description>&lt;p&gt;
When using the API, the apikey needs to be supplied in a header called 'Authorization'. Because some proxys / deployments use this header for other things, a configurable header was provided as an alternative, with default "X-CKAN-API-KEY".
&lt;/p&gt;
&lt;p&gt;
Rufus suggests having *one* way for this.
a) making this not configurable any more
b) making X-CKAN-API-KEY the default
&lt;/p&gt;
&lt;p&gt;
(keep Authorization allowed, but not documented, for backwards compatibility)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1535</link>
        <guid isPermaLink="false">http://localhost/ticket/1535</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1536: Group deletion doesn't work</title>
                  <description>&lt;p&gt;
In the Web interface and API, an administrator can set the 'state' field of a group to 'deleted' but this change is ignored in the save/submit and it doesn't get deleted.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1536</link>
        <guid isPermaLink="false">http://localhost/ticket/1536</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1537: Package create form wizard</title>
                  <description>&lt;p&gt;
Create the form wizard for the package-new form.
&lt;/p&gt;
&lt;p&gt;
Each section of the form will be a separate page as this was decided to be simpler than the alternative of making AJAX calls for validation at each stage. (*)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;separate pages for each section of the form
&lt;/li&gt;&lt;li&gt;validation carried out at each stage against the whole schema.  Each section/page declares a list of schema keys that need to validate for that section to validate, and thus move onto the next section.
&lt;/li&gt;&lt;li&gt;no draft saving to be performed in this ticket.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
(*) - although the javascript alternative will probably provide better UX (each step would require a page-load in the wizard approach), it was decided that:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;with the javascript approach it would be harder to test the workflow.
&lt;/li&gt;&lt;li&gt;with the javascript approach there would be additional work displaying validation correctly.  Although not that complicated, it was felt to add another point of failure.
&lt;/li&gt;&lt;li&gt;the multi-page wizard is quicker and easier to implement, and if it provided poor UX, then the javascript approach would be used instead.
&lt;/li&gt;&lt;li&gt;the multi-page wizard wouldn't preclude a javascript-tabbing create-form for other cases (where the wizard workflow wasn't such a good match, eg on the hedatahub.org)
&lt;/li&gt;&lt;li&gt;the multi-page wizard wouldn't preclude a javascript-tabbing edit-form.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1537</link>
        <guid isPermaLink="false">http://localhost/ticket/1537</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1538: Store partially-filled in package form data as a draft.</title>
                  <description>&lt;p&gt;
Allow a user to save a partially-complete and probably invalid package-create form in order to come back to it later.
&lt;/p&gt;
&lt;p&gt;
We decided on blob storage over a state field on the package:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;prevents a history of the drafts being stored in the revision history.  This is a particular problem if we start auto-saving, say every 20s.
&lt;/li&gt;&lt;li&gt;the blob can store arbitrary extra data, such as how far through the wizard we are.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1538</link>
        <guid isPermaLink="false">http://localhost/ticket/1538</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1539: Package forms auto-save</title>
                  <description>&lt;p&gt;
Using the saved-draft feature, we enable auto-save for the package-new and package-edit forms.
&lt;/p&gt;
&lt;p&gt;
An AJAX call is made every N seconds, and the auto-saved blob is updated.
&lt;/p&gt;
&lt;p&gt;
note - we don't want to overwrite a previously save draft, but we will want to overwrite the last autosave.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1539</link>
        <guid isPermaLink="false">http://localhost/ticket/1539</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1540: Search API returns an error if empty parameters are provided</title>
                  <description>&lt;p&gt;
Both in 1.5.1b:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://thedatahub.org/api/search/dataset?groups=lodcloud&amp;amp;title="&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/api/search/dataset?groups=lodcloud&amp;amp;title=&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
and 1.5.2a (current master):
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://test.ckan.net/api/search/dataset?groups=lodcloud&amp;amp;title="&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/api/search/dataset?groups=lodcloud&amp;amp;title=&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Although the error message in 1.5.2a is more verbose:
&lt;/p&gt;
&lt;p&gt;
"Bad request - Bad search option: HTTP code=400, reason=org.apache.lucene.queryParser.&lt;a class="missing wiki"&gt;ParseException?&lt;/a&gt;: Cannot parse 'groups:lodcloud title:': Encountered \"&amp;lt;EOF&amp;gt;\" at line 1, column 22. Was expecting one of:     \"(\" ...     \"*\" ...     &amp;lt;QUOTED&amp;gt; ...     &amp;lt;TERM&amp;gt; ...     &amp;lt;PREFIXTERM&amp;gt; ...     &amp;lt;WILDTERM&amp;gt; ...     \"[\" ...     \"{\" ...     &amp;lt;NUMBER&amp;gt; ..."
&lt;/p&gt;
&lt;p&gt;
Some parameter validation before sending it to Solr should do the trick
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1540</link>
        <guid isPermaLink="false">http://localhost/ticket/1540</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1541: Setup server for the DGU form-refactor.</title>
                  <description>&lt;p&gt;
To enable us to show DGU work in progress, for feedback.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1541</link>
        <guid isPermaLink="false">http://localhost/ticket/1541</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1542: Buttons to purge spam datasets and groups</title>
                  <description>&lt;p&gt;
A sysadmin should be able to easily examine a suspect group or package, determine if it was created by a spammer (as opposed to being a legitimate object that has been graffitied by a spammer) and purge it.
&lt;/p&gt;
&lt;p&gt;
The existing two-stage revision delete is currently unreliable and perhaps too laborious.
&lt;/p&gt;
&lt;p&gt;
Olav and Richard have needs along this line.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1542</link>
        <guid isPermaLink="false">http://localhost/ticket/1542</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1543: Pagination links in the dataset listings don't keep the current filters</title>
                  <description>&lt;p&gt;
E.g.
Pagination links on this page don't include groups=lodcloud
&lt;a class="ext-link" href="http://thedatahub.org/dataset?groups=lodcloud"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset?groups=lodcloud&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Not sure if related to &lt;a class="closed ticket" href="http://localhost/ticket/1501" title="defect: Pagination links broken (closed: fixed)"&gt;#1501&lt;/a&gt; (probably not)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1543</link>
        <guid isPermaLink="false">http://localhost/ticket/1543</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1544: delete old git branches</title>
                  <description>&lt;p&gt;
We have 150 odd branches (&lt;tt&gt;git branch -a&lt;/tt&gt;) - most of them old - we should prune them. At very least, branches that have been merged in should be deleted. Look at old branches that haven't been merged in and wonder why.
&lt;/p&gt;
&lt;p&gt;
May be of some use:
&lt;/p&gt;
&lt;pre class="wiki"&gt;git branch --merged
git branch --no-merged
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1544</link>
        <guid isPermaLink="false">http://localhost/ticket/1544</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1545: Remove external asset dependencies</title>
                  <description>&lt;p&gt;
CKAN is pulling a number of resources from external locations. This causes problems when connectivity is limited and you have to work locally. Maybe some of them cold be moved to CKAN source to avoid external requests.
&lt;/p&gt;
&lt;p&gt;
Quick search:
&lt;/p&gt;
&lt;pre class="wiki"&gt;
./ckan/templates/layout_base.html:            &amp;lt;img src="http://assets.okfn.org/images/logo/okf_logo_white_and_green_tiny.png" id="footer-okf-logo" /&amp;gt;
./ckan/templates/layout_base.html:            &amp;lt;a href="http://opendefinition.org/"&amp;gt;&amp;lt;img alt="This Content and Data is Open" src="http://assets.okfn.org/images/ok_buttons/od_80x15_blue.png" style="border: none ; margin-bottom: -4px;"/&amp;gt;&amp;lt;/a&amp;gt;
./ckan/templates/package/resource_read.html:                &amp;lt;img src="http://assets.okfn.org/images/ok_buttons/od_80x15_blue.png" alt="[Open Data]" /&amp;gt;
./ckan/templates/package/read.html:          &amp;lt;img src="http://assets.okfn.org/images/ok_buttons/od_80x15_blue.png" alt="[Open Data]" /&amp;gt;&amp;lt;/a&amp;gt;
./ckan/templates/_util.html:                    &amp;lt;img src="http://assets.okfn.org/images/ok_buttons/od_80x15_blue.png" alt="[Open Data]" /&amp;gt;
./ckan/templates/_util.html:                  &amp;lt;img src="http://assets.okfn.org/images/ok_buttons/od_80x15_blue.png" alt="[Open Data]" /&amp;gt;
./ckan/public/scripts/vendor/ckanjs/1.0.0/ckanjs.js:      this.$dialog.html('&amp;lt;h2&amp;gt;Loading results...&amp;lt;/h2&amp;gt;&amp;lt;img src="http://assets.okfn.org/images/icons/ajaxload-circle.gif" /&amp;gt;');
./ckan/public/scripts/vendor/ckanjs/1.0.0/ckanjs.js:          self.setMessage('Uploading file ... &amp;lt;img src="http://assets.okfn.org/images/icons/ajaxload-circle.gif" class="spinner" /&amp;gt;');
./ckan/public/scripts/vendor/ckanjs/1.0.0/ckanjs.js:      self.setMessage('Checking upload permissions ... &amp;lt;img src="http://assets.okfn.org/images/icons/ajaxload-circle.gif" class="spinner" /&amp;gt;');
Binary file ./ckan/lib/app_globals.pyc matches
./ckan/lib/app_globals.py:                                  'http://assets.okfn.org/p/ckan/img/ckan.ico')
./ckan/config/deployment.ini_tmpl:ckan.favicon = http://assets.okfn.org/p/ckan/img/ckan.ico
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1545</link>
        <guid isPermaLink="false">http://localhost/ticket/1545</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1546: Package metadata_created returns the wrong date</title>
                  <description>&lt;p&gt;
metadata_created seems to be returning the date of the earliest revision (for all packages), rather than the earliest revision for a specific package.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1546</link>
        <guid isPermaLink="false">http://localhost/ticket/1546</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1547: Add search methods (before and after) to the IPackageController interface</title>
                  <description>&lt;p&gt;
Time estimate: 1d
&lt;/p&gt;
&lt;p&gt;
Add a two search method to the IPackageController interface so extensions can:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Modify the query being sent to Solr
&lt;/li&gt;&lt;/ul&gt;&lt;pre class="wiki"&gt;
def before_search(search_params):
    return search_params
&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;Modify the results returned (&lt;tt&gt;after_search&lt;/tt&gt;)
&lt;/li&gt;&lt;/ul&gt;&lt;pre class="wiki"&gt;
def after_search(search_results, search_params):
    return search_results
&lt;/pre&gt;&lt;p&gt;
Please see this pad for implementation details:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://ckan.okfnpad.org/search"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/search&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1547</link>
        <guid isPermaLink="false">http://localhost/ticket/1547</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1548: Simplfy inheritance in functional tests</title>
                  <description>&lt;p&gt;
It's hard to understand what's going on with the functional tests because there is so much going on in inherited classes. Would be better to be explicit in constructors, even if it involves cut &amp;amp; paste.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1548</link>
        <guid isPermaLink="false">http://localhost/ticket/1548</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1549: [super] Short link tool</title>
                  <description>&lt;p&gt;
It would be great to have a CKAN extension that allowed users (or CKAN itself) to generate short links to other URIs (both internal and external). Once created, shortlinks made by CKAN should be changeable. This would allow uploaded content to be moved without the user's link changing at all. The tool itself might also be of use as a general link-shortener to users other than the CKAN system itself.
&lt;/p&gt;
&lt;p&gt;
Another useful feature would be for this to also collect some simple analytics such as the referrer and client IP for future reference. I'm not yet sure what we would do with the analytics other than some sort of popularity metric.
&lt;/p&gt;
&lt;p&gt;
Questions:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Core, or Extension, or Self-hosted?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1549</link>
        <guid isPermaLink="false">http://localhost/ticket/1549</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1550: Allow simple auth via the API</title>
                  <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>
        <link>http://localhost/ticket/1550</link>
        <guid isPermaLink="false">http://localhost/ticket/1550</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1551: CKAN auth for webstore changes</title>
                  <description>&lt;p&gt;
Webstore should use auth api ( &lt;a class="assigned ticket" href="http://localhost/ticket/1550" title="enhancement: Allow simple auth via the API (assigned)"&gt;#1550&lt;/a&gt; ) for authenticating users accessing webstore rather than talking directly to the CKAN database. We also need it to suppose /user/  urls and /userid/ for accessing databases.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1551</link>
        <guid isPermaLink="false">http://localhost/ticket/1551</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1552: Be able to set password on the command line when creating users</title>
                  <description>&lt;p&gt;
(instead of using the prompt) - needed for deployment
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1552</link>
        <guid isPermaLink="false">http://localhost/ticket/1552</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1553: Upload handles non-logged in user badly</title>
                  <description>&lt;p&gt;
When you install ckanext-store (Storage extension) then CKAN displays 'Upload a file' button in the dataset/resource edit tab.
&lt;/p&gt;
&lt;p&gt;
If you are not logged in, then this feature doesn't work, but there is nothing to indicate this. The button should be disabled.
&lt;/p&gt;
&lt;p&gt;
Furthermore, it lets you think you are starting the upload process, the spinner spins, it says 'Uploading...' and stays like that for a long while.
&lt;/p&gt;
&lt;p&gt;
This is a problem CKAN 1.4.3(ish) - 1.5.1 (current version) when you install the current ckanext-storage.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1553</link>
        <guid isPermaLink="false">http://localhost/ticket/1553</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1557: Complete Webstore Preview Extension</title>
                  <description>&lt;p&gt;
Finish any work out standing on web store preview extension to be able to package and release.
&lt;/p&gt;
&lt;p&gt;
Ref James and I going through existing features and trying to mention any polishing that needed doing to get exiting features ready for release with projects such as CKAN hosted.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1557</link>
        <guid isPermaLink="false">http://localhost/ticket/1557</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1558: Publisher Tools</title>
                  <description>&lt;p&gt;
Summarise final set of requirements for this and finish development and test. Estimated 10 working days.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1558</link>
        <guid isPermaLink="false">http://localhost/ticket/1558</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1559: Comments Extension / Disqus</title>
                  <description>&lt;p&gt;
Polish off comments extension dev and test. estimate 2 days.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1559</link>
        <guid isPermaLink="false">http://localhost/ticket/1559</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1560: Follow extension</title>
                  <description>&lt;p&gt;
Estimate 2 days to finish dev and test.
&lt;/p&gt;
&lt;p&gt;
David can you add any info needed here?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1560</link>
        <guid isPermaLink="false">http://localhost/ticket/1560</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1561: To do extension</title>
                  <description>&lt;p&gt;
Can we finish this ready for release on data hub and CKAN Hosted.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1561</link>
        <guid isPermaLink="false">http://localhost/ticket/1561</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1562: Finish Geo Spatial</title>
                  <description>&lt;p&gt;
Estimated 4 weeks of Adria's time. I guess this will need to be broken down into more tickets. This feature is being requested by a number of potential customers and we have some ideas of requirements between Rufus and Jilly for this. This is the most popular new feature we talk about to new clients.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1562</link>
        <guid isPermaLink="false">http://localhost/ticket/1562</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1563: Finish Data Storage</title>
                  <description>&lt;p&gt;
Unsure what needs to happen here. Need to list outstanding tasks and implement.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1563</link>
        <guid isPermaLink="false">http://localhost/ticket/1563</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1564: Structured Data (Data API)</title>
                  <description>&lt;p&gt;
Basic websotre exists but this may be not what is described yet.
&lt;/p&gt;
&lt;p&gt;
CKAN provides a rich API for the data itself, allowing users to query retrieve and use data instantly from datasets in CKAN without needing to download or process it first.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1564</link>
        <guid isPermaLink="false">http://localhost/ticket/1564</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1565: Admin dashboard finished?</title>
                  <description>&lt;p&gt;
Is testing complete and ready for release?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1565</link>
        <guid isPermaLink="false">http://localhost/ticket/1565</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1566: [super] Finalize Google analytics extension</title>
                  <description>&lt;ul&gt;&lt;li&gt;&lt;del&gt;(Deploy it)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;Integrate with stats plugin (now that is in core) - &lt;a class="new ticket" href="http://localhost/ticket/1101" title="enhancement: Integrate googlanalytics into site nav (new)"&gt;#1101&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Blog about it &lt;a class="new ticket" href="http://localhost/ticket/1581" title="enhancement: Blog post about Google Analytics extension for CKAN (new)"&gt;#1581&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;(Other tickets re upgrading for v1.5.1 - done but where are tickets?)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1566</link>
        <guid isPermaLink="false">http://localhost/ticket/1566</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1567: Finish QA extension</title>
                  <description>&lt;p&gt;
Requires change to celeryd. Estimated 4 weeks.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1567</link>
        <guid isPermaLink="false">http://localhost/ticket/1567</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1568: Moderated Edits</title>
                  <description>&lt;p&gt;
Can this be released as a standard CKAN feature?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1568</link>
        <guid isPermaLink="false">http://localhost/ticket/1568</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1569: Wordpressser</title>
                  <description>&lt;p&gt;
How much effort will this be to be ready to use?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1569</link>
        <guid isPermaLink="false">http://localhost/ticket/1569</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1570: Integrated file Storage</title>
                  <description>&lt;p&gt;
Is this ready for release? What needs to be done?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1570</link>
        <guid isPermaLink="false">http://localhost/ticket/1570</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1571: [super] Issues Extension</title>
                  <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>
        <link>http://localhost/ticket/1571</link>
        <guid isPermaLink="false">http://localhost/ticket/1571</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1572: Meta data Harvester</title>
                  <description>&lt;p&gt;
Need to write custom harvesters for each client. Is it worth having one for data hub?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1572</link>
        <guid isPermaLink="false">http://localhost/ticket/1572</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>jilly mathews</dc:creator>

                  <title>#1573: Apps and Ideas</title>
                  <description>&lt;p&gt;
Estimate 2 weeks for someone to finish and test.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1573</link>
        <guid isPermaLink="false">http://localhost/ticket/1573</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1574: [super] Storage changes including automated save to Webstore</title>
                  <description>&lt;p&gt;
Allow uploading of files to push the data into webstore.  Initially we were going to suggest changes to ckanext-storage but after further analysis we arrived at the conclusion that this should be implemented by ckanext-archiver as it already handles archiving of data from various sources and would be the best place to 'archive' to webstore.
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;A user wants to upload a file to CKAN, and so chooses the file upload option as they do currently with ckanext-storage. The file upload itself should be handled by this code internal to core (see &lt;a class="closed ticket" href="http://localhost/ticket/1608" title="enhancement: Merge storage into Core (closed: fixed)"&gt;#1608&lt;/a&gt;) but still using ofs [5d]
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;The user is provided the link to the file as currently.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;The archiver's update task will check configuration to determine if it should upload some mime-types (tabular formats) to webstore. Configuration should also determine where webstore is. (see &lt;a class="closed ticket" href="http://localhost/ticket/1609" title="enhancement: Celery task for ckanext-archiver to write to webstore. (closed: fixed)"&gt;#1609&lt;/a&gt;) [5d] - took 6
&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;It should be stored in webstore using {username}/{resource-id} where {username} is the name of the user uploading the original file.
&lt;/li&gt;&lt;/ul&gt;&lt;ol start="4"&gt;&lt;li&gt;The archiver will continue to move the file into permanent storage as per current practice.
&lt;/li&gt;&lt;/ol&gt;&lt;h2 id="Tickets"&gt;Tickets&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1608" title="enhancement: Merge storage into Core (closed: fixed)"&gt;#1608&lt;/a&gt; Merge storage into Core [5d]
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1609" title="enhancement: Celery task for ckanext-archiver to write to webstore. (closed: fixed)"&gt;#1609&lt;/a&gt; Celery task for ckanext-archiver to write to webstore. [5d] (took 6)
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1687" title="enhancement: Deploy new storage changes from master to datahub (closed: invalid)"&gt;#1687&lt;/a&gt;: Deploy to datahub [1d]
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1681" title="enhancement: Core storage document (closed: fixed)"&gt;#1681&lt;/a&gt;: Core storage documentation [1d?]
&lt;ul&gt;&lt;li&gt;Internal (perhaps in README somewhere or wiki): how does process work, where does data end up and in what order etc
&lt;/li&gt;&lt;li&gt;External: here's how to configure it and here's what you get ... (goes in main sphinx docs)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1574</link>
        <guid isPermaLink="false">http://localhost/ticket/1574</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1575: tag punctuation lost in ca.ckan.net import</title>
                  <description>&lt;p&gt;
Last week I imported ca.ckan.net datasets into thedatahub.org, but the tags seem to have lost their dashes, underscores and dots.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1575</link>
        <guid isPermaLink="false">http://localhost/ticket/1575</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1576: Move stats extension back into core - 0.5d</title>
                  <description>&lt;ul&gt;&lt;li&gt;Move into core (keeping as an extension) and default enable
&lt;/li&gt;&lt;li&gt;Do we need tests for controller? (No: already there)
&lt;/li&gt;&lt;li&gt;Documentation (?) - e.g. of basic config options
&lt;/li&gt;&lt;li&gt;Remove lib/stats.py which is still in core
&lt;ul&gt;&lt;li&gt;dread moved it to extension in &lt;a class="ext-link" href="https://github.com/okfn/ckanext-stats/commit/293b2544737d8ab7610884bd5e999ee37f1ab813"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-stats/commit/293b2544737d8ab7610884bd5e999ee37f1ab813&lt;/a&gt; but did not remove from core
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Deprecation notice on ckanext-stats repo and update extension registry
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Est: 0.5d.
&lt;/p&gt;
&lt;p&gt;
Questions:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Why do this?
&lt;ul&gt;&lt;li&gt;tiny extension with few dependencies - and really nice to have out of the box
&lt;/li&gt;&lt;li&gt;trial for doing this on larger scale
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Do we keep as extension (even if in core)?
&lt;ul&gt;&lt;li&gt;Ans: Yes, keep as extension because:
&lt;ul&gt;&lt;li&gt;Already set up that way
&lt;/li&gt;&lt;li&gt;Cleaner
&lt;/li&gt;&lt;li&gt;Easier to disable / enable
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;How do we integrate with main them (e.g. have stats link)
&lt;ul&gt;&lt;li&gt;Ans: not sure (this is part of more general issue of how we update theme for varying changes elsewhere). Best answer is to have some widgetization in theme.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Hide ratings section (at least until we reinstate ratings &lt;a class="new ticket" href="http://localhost/ticket/1598" title="enhancement: Reinstate Ratings (new)"&gt;#1598&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Ans: no, let's not bother (and having ratings there encourages us to do &lt;a class="new ticket" href="http://localhost/ticket/1598" title="enhancement: Reinstate Ratings (new)"&gt;#1598&lt;/a&gt; and/or find out whether people are interested in ratings)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1576</link>
        <guid isPermaLink="false">http://localhost/ticket/1576</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1577: Can't upload file with foreign chars in filename</title>
                  <description>&lt;p&gt;
Looks like uploading a file with foreign characters fails due to encoding reasons.
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://thedatahub.org/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ%C3%AD-%C4%8Cesk%C3%A9-republiky-_-P%C5%99%C3%ADprava-rozpo%C4%8Dtu.pdf
Module weberror.errormiddleware:162 in __call__
&amp;lt;&amp;lt;              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
                   return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
&amp;gt;&amp;gt;  app_iter = self.application(environ, sr_checker)
Module beaker.middleware:73 in __call__
&amp;lt;&amp;lt;                                                     self.cache_manager)
               environ[self.environ_key] = self.cache_manager
               return self.app(environ, start_response)
&amp;gt;&amp;gt;  return self.app(environ, start_response)
Module beaker.middleware:152 in __call__
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)
           def _get_session(self):
&amp;gt;&amp;gt;  return self.wrap_app(environ, session_start_response)
Module routes.middleware:130 in __call__
&amp;lt;&amp;lt;                  environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1]
               response = self.app(environ, start_response)
               # Wrapped in try as in rare cases the attribute will be gone already
&amp;gt;&amp;gt;  response = self.app(environ, start_response)
Module pylons.wsgiapp:125 in __call__
&amp;lt;&amp;lt;
               controller = self.resolve(environ, start_response)
               response = self.dispatch(controller, environ, start_response)
               if 'paste.testing_variables' in environ and hasattr(response,
&amp;gt;&amp;gt;  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:123 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:221 in __call__
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
               response = self._dispatch_call()
               if not start_response_called:
                   self.start_response = start_response
&amp;gt;&amp;gt;  response = self._dispatch_call()
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ['pylons.action_method'] = func
                   response = self._inspect_call(func)
               else:
                   if log_debug:
&amp;gt;&amp;gt;  response = self._inspect_call(func)
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.__name__, args)
               try:
                   result = self._perform_call(func, args)
               except HTTPException, httpe:
                   if log_debug:
&amp;gt;&amp;gt;  result = self._perform_call(func, args)
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ckanext.storage.controller:2 in auth_form
Module ckan.lib.jsonp:26 in jsonpify
&amp;lt;&amp;lt;      Very much modelled after pylons.decorators.jsonify .
           """
           data = func(*args, **kwargs)
           return to_jsonp(data)
&amp;gt;&amp;gt;  data = func(*args, **kwargs)
Module ckanext.storage.controller:301 in auth_form
&amp;lt;&amp;lt;          method = 'POST'
               authorize(method, bucket, label, c.userobj, self.ofs)
               data = self._get_form_data(label)
               return data
&amp;gt;&amp;gt;  authorize(method, bucket, label, c.userobj, self.ofs)
Module ckanext.storage.controller:79 in authorize
&amp;lt;&amp;lt;      if method != 'GET':
               # do not allow overwriting
               if ofs.exists(bucket, key):
                   abort(409)
               # now check user stuff
&amp;gt;&amp;gt;  if ofs.exists(bucket, key):
Module ofs.remote.botostore:53 in exists
&amp;lt;&amp;lt;          if bucket is None:
                   return False
               return (label is None) or (label in bucket)
           def claim_bucket(self, bucket):
&amp;gt;&amp;gt;  return (label is None) or (label in bucket)
Module boto.s3.bucket:87 in __contains__
&amp;lt;&amp;lt;      def __contains__(self, key_name):
              return not (self.get_key(key_name) is None)
           def startElement(self, name, attrs, connection):
&amp;gt;&amp;gt;  return not (self.get_key(key_name) is None)
Module boto.s3.bucket:144 in get_key
&amp;lt;&amp;lt;          response = self.connection.make_request('HEAD', self.name, key_name,
                                                       headers=headers,
                                                       query_args=query_args)
               # Allow any success status (2xx) - for example this lets us
               # support Range gets, which return status 206:
&amp;gt;&amp;gt;  query_args=query_args)
Module boto.s3.connection:388 in make_request
&amp;lt;&amp;lt;          if isinstance(key, Key):
                   key = key.name
               path = self.calling_format.build_path_base(bucket, key)
               boto.log.debug('path=%s' % path)
               auth_path = self.calling_format.build_auth_path(bucket, key)
&amp;gt;&amp;gt;  path = self.calling_format.build_path_base(bucket, key)
Module boto.s3.connection:88 in build_path_base
&amp;lt;&amp;lt;      def build_path_base(self, bucket, key=''):
               return '/%s' % urllib.quote(key)
       class SubdomainCallingFormat(_CallingFormat):
&amp;gt;&amp;gt;  return '/%s' % urllib.quote(key)
Module urllib:1222 in quote
&amp;lt;&amp;lt;              safe_map[c] = (c in safe) and c or ('%%%02X' % i)
               _safemaps[cachekey] = safe_map
           res = map(safe_map.__getitem__, s)
           return ''.join(res)
&amp;gt;&amp;gt;  res = map(safe_map.__getitem__, s)
KeyError: u'\xed'
CGI Variables
AUTH_TYPE	'cookie'
CONTENT_TYPE	'; charset=utf-8'
DOCUMENT_ROOT	'/htdocs'
GATEWAY_INTERFACE	'CGI/1.1'
HTTP_ACCEPT	'*/*'
HTTP_ACCEPT_CHARSET	'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
HTTP_ACCEPT_ENCODING	'gzip,deflate,sdch'
HTTP_ACCEPT_LANGUAGE	'en-US,en;q=0.8'
HTTP_CACHE_CONTROL	'max-age=259200'
HTTP_CONNECTION	'keep-alive'
HTTP_COOKIE	'thedatahub_net=27a7f095fcca1ea6b36df996d595e3278b16f4538862bf7f88d49e2000b9246547c8fd0e; auth_tkt="f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode"; auth_tkt="f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode"; ckan_user=elenaibp; ckan_display_name="Elena Mondo"; ckan_apikey=decd48b1-49ee-4250-bff4-98ccca9c02a5; hide_welcome_message=1; __utma=119670349.1809834699.1323782464.1324293066.1324298316.4; __utmb=119670349.3.10.1324298316; __utmc=119670349; __utmz=119670349.1323782464.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)'
HTTP_HOST	'thedatahub.org'
HTTP_REFERER	'http://thedatahub.org/dataset/edit/budget-library-czeck-republic'
HTTP_USER_AGENT	'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7'
HTTP_VIA	'1.1 localhost (squid/3.0.STABLE19)'
HTTP_X_FORWARDED_FOR	'87.114.74.190'
HTTP_X_REQUESTED_WITH	'XMLHttpRequest'
PATH	'/usr/local/bin:/usr/bin:/bin'
PATH_INFO	'/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf'
PATH_TRANSLATED	'/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf'
REMOTE_ADDR	'193.34.146.142'
REMOTE_PORT	'55419'
REMOTE_USER	u'elenaibp'
REMOTE_USER_DATA	'userid_type:unicode'
REMOTE_USER_TOKENS	['']
REQUEST_METHOD	'GET'
REQUEST_URI	'/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ%C3%AD-%C4%8Cesk%C3%A9-republiky-_-P%C5%99%C3%ADprava-rozpo%C4%8Dtu.pdf'
SCRIPT_FILENAME	'/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py'
SCRIPT_URI	'http://thedatahub.org/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf'
SCRIPT_URL	'/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf'
SERVER_ADDR	'193.34.146.146'
SERVER_ADMIN	'[no address given]'
SERVER_NAME	'thedatahub.org'
SERVER_PORT	'80'
SERVER_PROTOCOL	'HTTP/1.0'
SERVER_SIGNATURE	'&amp;lt;address&amp;gt;Apache/2.2.14 (Ubuntu) Server at thedatahub.org Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE	'Apache/2.2.14 (Ubuntu)'
WSGI Variables
application	&amp;lt;beaker.middleware.CacheMiddleware object at 0x7f22601c7dd0&amp;gt;
beaker.cache	&amp;lt;beaker.cache.CacheManager object at 0x7f22601c7b50&amp;gt;
beaker.get_session	&amp;lt;bound method SessionMiddleware._get_session of &amp;lt;beaker.middleware.SessionMiddleware object at 0x7f22601c7a90&amp;gt;&amp;gt;
beaker.session	{'_accessed_time': 1324298703.071357, '_creation_time': 1324293077.4139669}
mod_wsgi.application_group	'ckan.net|'
mod_wsgi.callable_object	'application'
mod_wsgi.listener_host	''
mod_wsgi.listener_port	'80'
mod_wsgi.process_group	'ckan.net'
mod_wsgi.reload_mechanism	'1'
mod_wsgi.script_reloading	'1'
mod_wsgi.version	(2, 8)
paste.cookies	(&amp;lt;SimpleCookie: __utma='119670349.1809834699.1323782464.1324293066.1324298316.4' __utmb='119670349.3.10.1324298316' __utmc='119670349' __utmz='119670349.1323782464.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode' ckan_apikey='decd48b1-49ee-4250-bff4-98ccca9c02a5' ckan_display_name='Elena Mondo' ckan_user='elenaibp' hide_welcome_message='1' thedatahub_net='27a7f095fcca1ea6b36df996d595e3278b16f4538862bf7f88d49e2000b9246547c8fd0e'&amp;gt;, 'thedatahub_net=27a7f095fcca1ea6b36df996d595e3278b16f4538862bf7f88d49e2000b9246547c8fd0e; auth_tkt="f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode"; auth_tkt="f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode"; ckan_user=elenaibp; ckan_display_name="Elena Mondo"; ckan_apikey=decd48b1-49ee-4250-bff4-98ccca9c02a5; hide_welcome_message=1; _ _utma=119670349.1809834699.1323782464.1324293066.1324298316.4; __utmb=119670349.3.10...)|utmcmd=(none)')
paste.registry	&amp;lt;paste.registry.Registry object at 0x7f226194df50&amp;gt;
paste.throw_errors	True
pylons.action_method	&amp;lt;bound method StorageAPIController.auth_form of &amp;lt;ckanext.storage.controller.StorageAPIController object at 0x7f2261dad990&amp;gt;&amp;gt;
pylons.controller	&amp;lt;ckanext.storage.controller.StorageAPIController object at 0x7f2261dad990&amp;gt;
pylons.environ_config	{'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons	&amp;lt;pylons.util.PylonsContext object at 0x7f2261daddd0&amp;gt;
pylons.routes_dict	{'action': u'auth_form', 'controller': u'ckanext.storage.controller:StorageAPIController', 'label': u'2011-12-19T124447/Ministerstvo-financ\xed-\u010cesk\xe9-republiky-_-P\u0159\xedprava-rozpo\u010dtu.pdf'}
repoze.who.identity	&amp;lt;repoze.who identity (hidden, dict-like) at 139785645747120&amp;gt;
repoze.who.logger	&amp;lt;logging.Logger instance at 0x7f225e23c098&amp;gt;
repoze.who.plugins	{'openid': &amp;lt;OpenIdIdentificationPlugin 139785625065680&amp;gt;, 'friendlyform': &amp;lt;FriendlyFormPlugin 139785618095248&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.UsernamePasswordAuthenticator object at 0x7f2260874c10&amp;gt;, 'auth_tkt': &amp;lt;AuthTktCookiePlugin 139785625065808&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f2260874c90&amp;gt;}
routes.route	&amp;lt;routes.route.Route object at 0x7f22601a1090&amp;gt;
routes.url	&amp;lt;routes.util.URLGenerator object at 0x7f2261dadf50&amp;gt;
webob._parsed_query_vars	(GET([]), '')
webob.adhoc_attrs	{'language': 'en-us'}
wsgi process	'Multiprocess'
wsgi.file_wrapper	&amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f2261da9af8&amp;gt;
wsgiorg.routing_args	(&amp;lt;routes.util.URLGenerator object at 0x7f2261dadf50&amp;gt;, {'action': u'auth_form', 'controller': u'ckanext.storage.controller:StorageAPIController', 'label': u'2011-12-19T124447/Ministerstvo-financ\xed-\u010cesk\xe9-republiky-_-P\u0159\xedprava-rozpo\u010dtu.pdf'})
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1577</link>
        <guid isPermaLink="false">http://localhost/ticket/1577</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1578: [super] Re-enable and refactor ratings</title>
                  <description></description>
        <link>http://localhost/ticket/1578</link>
        <guid isPermaLink="false">http://localhost/ticket/1578</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1579: Full text search in Webstore</title>
                  <description>&lt;p&gt;
We should allow full text search within databases for individual databases, although we may want to wait for any pending ports to postgres.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1579</link>
        <guid isPermaLink="false">http://localhost/ticket/1579</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1580: Documenting TaskStatus table and QA changes - 0.5d</title>
                  <description>&lt;ul&gt;&lt;li&gt;Write up: task status table in  &lt;a class="ext-link" href="http://wiki.ckan.org/Domain_Model"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Domain_Model&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Write up: &lt;a class="ext-link" href="http://wiki.ckan.org/Data_Quality"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Data_Quality&lt;/a&gt; to reflect current state of play (move all old material to "Discussion / Talk" page)
&lt;/li&gt;&lt;li&gt;Ping ckan-discuss re new Data Quality page
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1580</link>
        <guid isPermaLink="false">http://localhost/ticket/1580</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1581: Blog post about Google Analytics extension for CKAN</title>
                  <description>&lt;p&gt;
The CKAN Google Analytics extension has been updated to work with the latest version of CKAN, could make for a nice blog post.
&lt;/p&gt;
&lt;p&gt;
Can ping John Glover in January for any details required.
&lt;/p&gt;
&lt;p&gt;
Key link is: &lt;a class="ext-link" href="http://thedatahub.org/analytics/dataset/top"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/analytics/dataset/top&lt;/a&gt; though this should probably move to be under stats (e.g. &lt;a class="ext-link" href="http://thedatahub.org/stats/usage"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/stats/usage&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1581</link>
        <guid isPermaLink="false">http://localhost/ticket/1581</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1582: Deploy QA for thedatahub - 0.5d</title>
                  <description>&lt;ul&gt;&lt;li&gt;deploy celery
&lt;/li&gt;&lt;li&gt;deploy QA and archiver tasks
&lt;/li&gt;&lt;li&gt;write up a blog post announcing QA on thedatahub
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1582</link>
        <guid isPermaLink="false">http://localhost/ticket/1582</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1583: Integrate QA into frontend - 1d</title>
                  <description>&lt;p&gt;
Tasks:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;On dataset view page, add star rating after each resource view url. Probably similar to current format label after url.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Add star rating to resource view page, along with a way of displaying the reason for the rating and tips to improve. Should be unobtrusive.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Fix the table at &lt;a class="ext-link" href="http://thedatahub.org/qa/dataset/broken_resource_links"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/qa/dataset/broken_resource_links&lt;/a&gt; - URLs should be truncated to a fixed not-too-long length and the other fields line up (eg by using a table)~
&lt;/del&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Handle 404s by showing that 'we think this resource is 404ing'.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Handle the absence of QA data on a resource (currently nothing is displayed. Maybe that's fine.&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Do we need to integrate the 'reason for rating' string into the UI?&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Next Steps:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Use db dump of thedatahub.org for final testing.&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1583</link>
        <guid isPermaLink="false">http://localhost/ticket/1583</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1584: QA report improvements - 2.5d</title>
                  <description>&lt;p&gt;
Super: &lt;a class="closed ticket" href="http://localhost/ticket/1594" title="enhancement: [super] QA Improvements (closed: wontfix)"&gt;#1594&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;qa/{username}
&lt;/li&gt;&lt;li&gt;qa/{groupname}
&lt;/li&gt;&lt;li&gt;paginate QA results
&lt;/li&gt;&lt;li&gt;search / filter QA results
&lt;/li&gt;&lt;li&gt;&lt;del&gt;list organisation report by default, but can disable via config option&lt;/del&gt; (done)
&lt;/li&gt;&lt;li&gt;UX tidy up of report pages - hide border if no sidebar, etc
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1584</link>
        <guid isPermaLink="false">http://localhost/ticket/1584</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1585: Security fix</title>
                  <description>&lt;p&gt;
(details embargoed until 31/1/2012)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1585</link>
        <guid isPermaLink="false">http://localhost/ticket/1585</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1586: 'Sort by' field for package search</title>
                  <description>&lt;p&gt;
We default to sort packages search results by "search rank", but we can change it to be "name", "title", "metadata_modified" date, "metadata_created" date. It works in the API now, so let's have (say) a drop-down in the Web UI for this.
&lt;/p&gt;
&lt;p&gt;
Follows on from &lt;a class="closed ticket" href="http://localhost/ticket/191" title="enhancement: Searching by modification date (closed: fixed)"&gt;#191&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1586</link>
        <guid isPermaLink="false">http://localhost/ticket/1586</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1587: QA - Check license as part of 5 star rating</title>
                  <description>&lt;p&gt;
Super: &lt;a class="closed ticket" href="http://localhost/ticket/1594" title="enhancement: [super] QA Improvements (closed: wontfix)"&gt;#1594&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
From Richard Cyganiak on the CKAN discuss list:
&lt;/p&gt;
&lt;p&gt;
According to (most of) the definitions of the five-star scheme, the first star already requires an open license, so a dataset shouldn't get any stars at all if it's not under an open license.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1587</link>
        <guid isPermaLink="false">http://localhost/ticket/1587</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1588: QA - Give SPARQL endpoints a 4 star rating</title>
                  <description>&lt;p&gt;
Super: &lt;a class="closed ticket" href="http://localhost/ticket/1594" title="enhancement: [super] QA Improvements (closed: wontfix)"&gt;#1594&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
From Richard Cyganiak on the CKAN Discuss list:
&lt;/p&gt;
&lt;p&gt;
Besides considering the media type of resources, it would also make sense to check for the presence of a SPARQL endpoint. SPARQL endpoints are recorded for more than 300 datasets on the Data Hub using the pseudo-type "api/sparql". A few more are recorded with the format "SPARQL". I suggest that datasets with such resources should also be considered for the fourth star.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1588</link>
        <guid isPermaLink="false">http://localhost/ticket/1588</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1589: QA - Give 5 star rating to datasets with link metadata</title>
                  <description>&lt;p&gt;
Super: &lt;a class="closed ticket" href="http://localhost/ticket/1594" title="enhancement: [super] QA Improvements (closed: wontfix)"&gt;#1594&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
From Richard Cyganiak on the CKAN Discuss list:
&lt;/p&gt;
&lt;p&gt;
Regarding the fifth star (is the dataset linked to others?). This cannot be automatically determined just by looking at the format. It either requires inspection of the actual data, or information about links in the metadata. As you're probably aware, we've established conventions for recording information on data links in CKAN &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;, as part of the work of the lodcloud group on the Data Hub. Link information is captured for hundreds of datasets. I would claim that we have the majority of four-star datasets covered there, and hence you can determine if they should get the fifth star by checking for the presence of a links:xxx field.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1589</link>
        <guid isPermaLink="false">http://localhost/ticket/1589</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1590: Create customized feeds for the IATI Registry</title>
                  <description>&lt;p&gt;
We need a way to track changes on the registry (datasets edited or updated), globally and on a per country/publisher/etc. basis. RSS and Atom feeds are really popular, and after closing &lt;a class="closed ticket" href="http://localhost/ticket/191" title="enhancement: Searching by modification date (closed: fixed)"&gt;#191&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/1498" title="enhancement: Support multiple SOLR schema versions (closed: fixed)"&gt;#1498&lt;/a&gt; crating them from the search results should be fairly easy.
&lt;/p&gt;
&lt;p&gt;
The following URLs are pretty self-explanatory:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://localhost:5000/feed/registry.rss
http://localhost:5000/feed/country/AF.rss
http://localhost:5000/feed/publisher/worldbank.rss
http://localhost:5000/feed/organisation_type/10.rss
&lt;/pre&gt;&lt;p&gt;
As we need to implement custom wrappers for countries, publishers, etc, we might as well offer a fully customizable feed, e.g.:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://localhost:5000/feed/custom.rss?q=activity_count:[* TO 100]
http://localhost:5000/feed/custom.rss?publishertype=primary_source
&lt;/pre&gt;&lt;p&gt;
Apart from the actual feeds, there will be a small amount of work at  the template level to add the links to the suitable pages (and maybe a generic page showing all available feeds)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1590</link>
        <guid isPermaLink="false">http://localhost/ticket/1590</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1591: Upgrade CKAN 1.5 instances</title>
                  <description>&lt;p&gt;
CKAN 1.5 installations need to be upgrade to 1.5.1.
&lt;/p&gt;
&lt;p&gt;
Working methodically through the CKANs on &lt;a class="ext-link" href="http://datacatalogs.org/group/ckan"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datacatalogs.org/group/ckan&lt;/a&gt; :
&lt;/p&gt;
&lt;p&gt;
At 1.5:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ckan-brazil &lt;a class="ext-link" href="http://br.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://br.ckan.net/&lt;/a&gt; s057 - DONE
&lt;/li&gt;&lt;li&gt;ckan_ireland &lt;a class="ext-link" href="http://ie.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ie.ckan.net/&lt;/a&gt; s057 - DONE
&lt;/li&gt;&lt;li&gt;cz-ckan-net &lt;a class="ext-link" href="http://cz.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://cz.ckan.net/&lt;/a&gt; s057 - DONE
&lt;/li&gt;&lt;li&gt;datakilder-no &lt;a class="ext-link" href="http://no.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://no.ckan.net/&lt;/a&gt; s057 - DONE
&lt;/li&gt;&lt;li&gt;data_gov_uk &lt;a class="ext-link" href="http://catalogue.data.gov.uk/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://catalogue.data.gov.uk/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;datacatalogs-org &lt;a class="ext-link" href="http://datacatalogs.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datacatalogs.org/&lt;/a&gt; s054 - DONE
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Other versions:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;berlin-open-data &lt;a class="ext-link" href="http://daten.berlin.de/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://daten.berlin.de/&lt;/a&gt; CKAN hidden
&lt;/li&gt;&lt;li&gt;ckan-italia &lt;a class="ext-link" href="http://it.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://it.ckan.net/&lt;/a&gt; 1.3.3b
&lt;/li&gt;&lt;li&gt;ckan-poland &lt;a class="ext-link" href="http://pl.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://pl.ckan.net/&lt;/a&gt; Down
&lt;/li&gt;&lt;li&gt;data-norge-no &lt;a class="ext-link" href="http://data.norge.no/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://data.norge.no/&lt;/a&gt; CKAN hidden
&lt;/li&gt;&lt;li&gt;datadotgc-ca &lt;a class="ext-link" href="http://datadotgc.ca/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datadotgc.ca/&lt;/a&gt; &lt;a class="ext-link" href="http://ca.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ca.ckan.net/&lt;/a&gt; 1.4.2a
&lt;/li&gt;&lt;li&gt;datagm &lt;a class="ext-link" href="http://www.datagm.org.uk/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.datagm.org.uk/&lt;/a&gt; 1.3.3
&lt;/li&gt;&lt;li&gt;datagov-ru &lt;a class="ext-link" href="http://datagov.ru/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datagov.ru/&lt;/a&gt; CKAN hidden
&lt;/li&gt;&lt;li&gt;datospublicos-org &lt;a class="ext-link" href="http://datospublicos.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datospublicos.org/&lt;/a&gt; 1.4.2
&lt;/li&gt;&lt;li&gt;iati-registry &lt;a class="ext-link" href="http://iatiregistry.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://iatiregistry.org/&lt;/a&gt; 1.5.1c
&lt;/li&gt;&lt;li&gt;katalog-offene-daten-oesterreich &lt;a class="ext-link" href="http://offener.datenkatalog.at/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://offener.datenkatalog.at/&lt;/a&gt; 1.3.3b
&lt;/li&gt;&lt;li&gt;nosdonnees_fr &lt;a class="ext-link" href="http://www.nosdonnees.fr/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.nosdonnees.fr/&lt;/a&gt; 1.3.1a
&lt;/li&gt;&lt;li&gt;opengov-fi &lt;a class="ext-link" href="http://opengov.fi/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://opengov.fi/&lt;/a&gt; CKAN hidden
&lt;/li&gt;&lt;li&gt;opengov_es &lt;a class="ext-link" href="http://opengov.es/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://opengov.es/&lt;/a&gt; 1.2
&lt;/li&gt;&lt;li&gt;publicdata-eu &lt;a class="ext-link" href="http://publicdata.eu/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://publicdata.eu/&lt;/a&gt; 1.4.2a
&lt;/li&gt;&lt;li&gt;the-data-hub &lt;a class="ext-link" href="http://thedatahub.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/&lt;/a&gt; 1.5.1
&lt;/li&gt;&lt;li&gt;helsinki_finland &lt;a class="ext-link" href="http://hri.fi/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://hri.fi/&lt;/a&gt; CKAN hidden
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Now deleted from datacatalogs.org:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ckan-belgium &lt;a class="ext-link" href="http://be.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://be.ckan.net/&lt;/a&gt; Migrated
&lt;/li&gt;&lt;li&gt;si-ckan-net &lt;a class="ext-link" href="http://si.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://si.ckan.net/&lt;/a&gt; migrated
&lt;/li&gt;&lt;li&gt;gr-ckan-net &lt;a class="ext-link" href="http://gr.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://gr.ckan.net/&lt;/a&gt; Migrated
&lt;/li&gt;&lt;li&gt;hu-ckan-net &lt;a class="ext-link" href="http://hu.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://hu.ckan.net/&lt;/a&gt; Migrated
&lt;/li&gt;&lt;li&gt;ckan-lithuania &lt;a class="ext-link" href="http://lt.ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lt.ckan.net/&lt;/a&gt; Migrated
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1591</link>
        <guid isPermaLink="false">http://localhost/ticket/1591</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1592: Add metadata_modified and metadata_created to package_dictize output</title>
                  <description>&lt;p&gt;
The dict returned by package_dictize does not include metadata_modified and metadata_created. These are really useful properties, so it's worth having them on the standard package dict representation, which is used in several places, like at the template level.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1592</link>
        <guid isPermaLink="false">http://localhost/ticket/1592</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1593: [super] Create feeds from search results</title>
                  <description>&lt;p&gt;
Recent changes (see &lt;a class="closed ticket" href="http://localhost/ticket/191" title="enhancement: Searching by modification date (closed: fixed)"&gt;#191&lt;/a&gt; and &lt;a class="closed ticket" href="http://localhost/ticket/1498" title="enhancement: Support multiple SOLR schema versions (closed: fixed)"&gt;#1498&lt;/a&gt;) have made really easy to get search results ordered chronologically, and creating RSS or Atom feeds from them is relatively easy.
&lt;/p&gt;
&lt;p&gt;
Feeds are extremely popular and there are several tools for consuming them, so it would be a great way to allow users to follow datasets related with their topics of interest.
&lt;/p&gt;
&lt;p&gt;
Apart from the general feed with changes on the whole instance, other different "pre-set" feed endpoints could be implemented. The most obvious choices for custom feeds could be groups and tags:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://&amp;lt;ckan_server&amp;gt;/feed/group/{id}.{format:rss|atom}
http://&amp;lt;ckan_server&amp;gt;/feed/tag/{id}.{format:rss|atom}
&lt;/pre&gt;&lt;p&gt;
These could be shown on the group/tag page, both on the &amp;lt;head&amp;gt; section, so browsers can autodiscover them, and on the UI, with a message like "Subscribe to this group/tag".
&lt;/p&gt;
&lt;p&gt;
Another powerful option is to have a custom feed builder that accepts the same parameters as the search page, so users can subscribe to whatever query they are interested on
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://&amp;lt;ckan_server&amp;gt;/feed/custom.{format:rss|atom}?res_format=api%2Fsparql
http://&amp;lt;ckan_server&amp;gt;/feed/custom.{format:rss|atom}?q=tags:animal*
&lt;/pre&gt;&lt;p&gt;
On this case a message "Subscribe to these search results" would appear.
&lt;/p&gt;
&lt;p&gt;
Note that a lot of work on this front needs to be done for the IATI registry project (see &lt;a class="closed ticket" href="http://localhost/ticket/1590" title="enhancement: Create customized feeds for the IATI Registry (closed: fixed)"&gt;#1590&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Other tickets related:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1592" title="enhancement: Add metadata_modified and metadata_created to package_dictize output (closed: fixed)"&gt;#1592&lt;/a&gt;: metadata_modified and metadata_created are not included in the search results, so an extra query for each package is needed right now.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1593</link>
        <guid isPermaLink="false">http://localhost/ticket/1593</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1594: [super] QA Improvements</title>
                  <description>&lt;p&gt;
Now that QA has been updated for Celery and CKAN 1.5.1, there are a number of improvements that we should probably implement.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Integrate QA into frontend - 1d - &lt;a class="closed ticket" href="http://localhost/ticket/1583" title="enhancement: Integrate QA into frontend - 1d (closed: fixed)"&gt;#1583&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;QA report improvements - 2.5d - &lt;a class="new ticket" href="http://localhost/ticket/1584" title="enhancement: QA report improvements - 2.5d (new)"&gt;#1584&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;QA - Check license as part of 5 star rating - &lt;a class="closed ticket" href="http://localhost/ticket/1587" title="enhancement: QA - Check license as part of 5 star rating (closed: fixed)"&gt;#1587&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;QA - Give SPARQL endpoints a 4 star rating - &lt;a class="new ticket" href="http://localhost/ticket/1588" title="enhancement: QA - Give SPARQL endpoints a 4 star rating (new)"&gt;#1588&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;QA - Give 5 star rating to datasets with link metadata - &lt;a class="new ticket" href="http://localhost/ticket/1589" title="enhancement: QA - Give 5 star rating to datasets with link metadata (new)"&gt;#1589&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Main pad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/qa"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/qa&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Some QA discussion (relating to Celery in particular) at &lt;a class="ext-link" href="http://ckan.okfnpad.org/queue"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/queue&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1594</link>
        <guid isPermaLink="false">http://localhost/ticket/1594</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1595: Editing of a Group leads to recording a change against all associated datasets</title>
                  <description>&lt;p&gt;
Or at least it appears that way from revision log which displays all Group datasets against the changelog, see &lt;a class="ext-link" href="http://thedatahub.org/revision/4cdeeb42-3281-4f53-a29d-c694e1fd9217"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/revision/4cdeeb42-3281-4f53-a29d-c694e1fd9217&lt;/a&gt; -- not apparent from that page but see my user page: &lt;a class="ext-link" href="http://thedatahub.org/user/rufuspollock"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/user/rufuspollock&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This may turn out to be a UX bug rather than a real bug ...
&lt;/p&gt;
&lt;p&gt;
Assigning to kindly for review and comment.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1595</link>
        <guid isPermaLink="false">http://localhost/ticket/1595</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1596: Refactor authz roles</title>
                  <description>&lt;p&gt;
Suggestions from rgrp:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Get rid of Roles, and replace them with direct assignment of actions, even though there are many actions, and extensions can add arbitrary ones.
&lt;/li&gt;&lt;li&gt;Debatable whether we should cut the number of actions to correspond to the three roles defined by the base system.
&lt;/li&gt;&lt;li&gt;Have a method of finding roles (or, in future, actions) relevant to a given protection object (e.g. FILE-UPLOAD(ER) not relevant to Packages)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
(This ticket is split off from &lt;a class="closed ticket" href="http://localhost/ticket/1065" title="enhancement: [super] Change Authorization System (closed: fixed)"&gt;#1065&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1596</link>
        <guid isPermaLink="false">http://localhost/ticket/1596</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1597: Tag search - filter by group</title>
                  <description>&lt;p&gt;
I want to browse tags, but filtered for a particular group. Currently our tag API doesn't allow for filtering by group.
&lt;/p&gt;
&lt;p&gt;
This is important for improving groups as communities within a site &lt;a class="closed ticket" href="http://localhost/ticket/1521" title="enhancement: [super] Groups UI and UX improvements in v1.6 from Cygri (closed: fixed)"&gt;#1521&lt;/a&gt;. It would be easy to do this by adding an option to filter by a group. BUT are there any other use cases that would warrant a more complete faceted tag search?
&lt;/p&gt;
&lt;p&gt;
--
&lt;/p&gt;
&lt;p&gt;
BTW I can currently draw a tag cloud for a group - I can get the top tags used in a group like this:
&lt;/p&gt;
&lt;p&gt;
curl &lt;a class="ext-link" href="http://thedatahub.org/api/action/package_search"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/api/action/package_search&lt;/a&gt; -d
'{"q":"groups:country-ca", "facet.field":"tags", "rows":"0"}'
&lt;/p&gt;
&lt;p&gt;
but it only contains the top 20 tags.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1597</link>
        <guid isPermaLink="false">http://localhost/ticket/1597</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1598: Reinstate Ratings</title>
                  <description>&lt;p&gt;
Ratings were disabled approximately a year ago because:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Unclear purpose and UX. What did ratings tell you? How useful were they?
&lt;/li&gt;&lt;li&gt;Spamming (esp by bots: you could submit an anonymous rating via a GET request which caused problems)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Both problems are solvable and it would be nice to have this feature reinstated.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Purpose: can make this more purposable by limiting to logged in users (or at least distinguishing logged in from non-logged in users)
&lt;ul&gt;&lt;li&gt;Even better we could allow ratings to be made public (I'm interested in what someone else I respect finds important)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Spamming: limit to logged in users and / or use AJAX over an API to submit ...
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1598</link>
        <guid isPermaLink="false">http://localhost/ticket/1598</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1599: [contrib] Simple embeddable dataset count widget (esp for group count)</title>
                  <description>&lt;p&gt;
Simple embeddable widget for use on 3rd party sites showing dataset counts for a given search query. Have a specific version just for groups.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Simple group count widget in JS for embedding in wordpress and elsewhere
&lt;ul&gt;&lt;li&gt;Requested by several people (e.g Guo Xu from Econ working group). Already have something like this in CKAN JS for doing an embeddable search box.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;All you need to do is do a dataset query over the API e.g. &lt;a class="ext-link" href="http://thedatahub.org/api/search/dataset?groups=economics"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/api/search/dataset?groups=economics&lt;/a&gt; and then embed in some html!
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Estimate: 30m (for someone who knows their jquery).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1599</link>
        <guid isPermaLink="false">http://localhost/ticket/1599</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1600: [super] User guide with integrated help in the WUI</title>
                  <description>&lt;p&gt;
Provide help to users in the WUI, with this linking to a detailed user guide.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;User guide (suggest at help.thedatahub.org (or possibly help.ckan.org)
&lt;/li&gt;&lt;li&gt;Snippets in the WUI with links to full user guide.
&lt;ul&gt;&lt;li&gt;Provide helper methods for creating these links with config options for setting path to user guide so that the link location can vary on install by install basis
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;General info about publishing/working with/etc data (where we don't duplicate elsewhere)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Est: (?) 5-10d
&lt;/p&gt;
&lt;h2 id="Topics"&gt;Topics&lt;/h2&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="http://ckan.okfnpad.org/datahub-help"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/datahub-help&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Step-by-step for adding a dataset including tips
&lt;ul&gt;&lt;li&gt;Reuse: &lt;a class="ext-link" href="http://datapatterns.org/datahub.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datapatterns.org/datahub.html&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Quick overview of relevant parts of domain model (dataset and resource)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;API (perhaps link to main docs)
&lt;/li&gt;&lt;li&gt;Command line interface and dpm
&lt;/li&gt;&lt;li&gt;Using groups
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Whydothis"&gt;Why do this&lt;/h2&gt;
&lt;p&gt;
We already have wiki.ckan.org and docs.ckan.org. Why do this?
&lt;/p&gt;
&lt;p&gt;
Answer for docs:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;This is administrative guide and focused on general CKAN software.
&lt;/li&gt;&lt;li&gt;Hard to provide completely generic help.
&lt;/li&gt;&lt;li&gt;Integratable with the &lt;a class="missing wiki"&gt;DataHub?&lt;/a&gt; site
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Answer for wiki:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;No spam
&lt;/li&gt;&lt;li&gt;General feeling that wikis are a little bit loose and untidy. We want this to be smart, clean and useful.
&lt;/li&gt;&lt;li&gt;Integratable with the &lt;a class="missing wiki"&gt;DataHub?&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1600</link>
        <guid isPermaLink="false">http://localhost/ticket/1600</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1601: [super] Well integrated Geo-spatial support including search</title>
                  <description>&lt;p&gt;
Need thoughts from Adria and James. RP thoughts
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Integration into WUI search: &lt;a class="closed ticket" href="http://localhost/ticket/1469" title="enhancement: Geo-spatial search on the front end (closed: fixed)"&gt;#1469&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;JS Editor for adding/editing spatial attribute: &lt;a class="new ticket" href="http://localhost/ticket/1818" title="enhancement: Spatial metadata editor (new)"&gt;#1818&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Theme/template hook for adding the map e.g. on dataset page (or elsewhere)
&lt;/li&gt;&lt;li&gt;Clear Documentation
&lt;/li&gt;&lt;li&gt;Deployment
&lt;/li&gt;&lt;li&gt;Announce post
&lt;/li&gt;&lt;li&gt;(?) Map page for stats section showing location of datasets
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Extras (probably separate):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;csw support ...
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1601</link>
        <guid isPermaLink="false">http://localhost/ticket/1601</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1602: [super] Data Previewer / Viewer v2</title>
                  <description>&lt;p&gt;
We already have first pass of Data Preview that was done as part of &lt;a class="closed ticket" href="http://localhost/ticket/1357" title="enhancement: Integrate new version of data preview (closed: fixed)"&gt;#1357&lt;/a&gt;. This is about v2 of this. Two main components:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A new version of the separate Data Explorer library (now called Recline Data Explorer) - &lt;a class="closed ticket" href="http://localhost/ticket/1446" title="enhancement: Data Explorer v2 (closed: fixed)"&gt;#1446&lt;/a&gt; &lt;strong&gt;Est: 10-15d&lt;/strong&gt;
&lt;ul&gt;&lt;li&gt;Why:
&lt;ul&gt;&lt;li&gt;Cleaner, backbone based solution.
&lt;/li&gt;&lt;li&gt;Provides editing support if wanted.
&lt;/li&gt;&lt;li&gt;Collaboration with Max Ogden
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Integrate this into CKAN (into resource view page) - see &lt;a class="closed ticket" href="http://localhost/ticket/1630" title="enhancement: Integrate Data Explorer v2 into Data Viewer (closed: fixed)"&gt;#1630&lt;/a&gt; &lt;strong&gt;Est: 1d&lt;/strong&gt;
&lt;/li&gt;&lt;li&gt;Improvements to Data Viewer / Previewer system in CKAN itself - &lt;strong&gt;Est: 2-3d&lt;/strong&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;(Update Data Preview-er (View-er) to support images ...)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;(WONTFIX here - (?) Update Data Preview-er to support geodata - &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;)&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1602</link>
        <guid isPermaLink="false">http://localhost/ticket/1602</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1603: Search query builder</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="new ticket" href="http://localhost/ticket/1745" title="enhancement: Dataset search UX improvements as of Jan 2012 (new)"&gt;#1745&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Ability to build up search query using a nice javascript-y interface.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add facets by selecting attribute and adding -&amp;gt; search facet options in dropdown -&amp;gt; added to search (with 'x' to remove -- as we currently do).
&lt;ul&gt;&lt;li&gt;(a bit like the data.hri.fi)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Some improvements to css
&lt;ul&gt;&lt;li&gt;See &lt;a class="ext-link" href="http://eutr.ep.io/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://eutr.ep.io/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Improvements to faceting
&lt;ul&gt;&lt;li&gt;Ability to configure faceting and number of items to show (?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Pure JS search implementation to make it easy to reuse across site
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1603</link>
        <guid isPermaLink="false">http://localhost/ticket/1603</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1604: Get ckanext-moderatededits working with CKAN 1.5+ templates</title>
                  <description>&lt;p&gt;
ckanext-moderatededits requires an old and possibly development version of CKAN. It would be good to update it for later CKAN versions.
&lt;/p&gt;
&lt;p&gt;
According to the README, you need CKAN from branch feature-1141-moderated-edits-ajax but the changelog suggests this branch went into version 1.4.2. So it possibly works with 1.4.2 and 1.4.3(.1). But CKAN 1.5 has revamped templates, so the genshi stream filters definitely don't work.
&lt;/p&gt;
&lt;p&gt;
BTW history_ajax/read_ajax calls have been deprecated in CKAN since 1.5.2a and will need fixing up to use the Action API too as part of this.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1604</link>
        <guid isPermaLink="false">http://localhost/ticket/1604</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1605: [super] Multilingual support in CKAN</title>
                  <description>&lt;p&gt;
Multi-language:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;dataset and resource metadata (and other objects such as groups?)
&lt;ul&gt;&lt;li&gt;Options for implementation in &lt;a class="ext-link" href="http://ckan.okfnpad.org/multilingual"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/multilingual&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Field values in taxonomy (e.g. country names - Eurovoc)
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1665" title="task: Begin doing research into eurovoc (closed: fixed)"&gt;#1665&lt;/a&gt; Research into Eurovoc
&lt;/li&gt;&lt;li&gt;Display Taxonomy in different languages
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Field values not in taxonomy (e.g. title &amp;amp; description)
&lt;ul&gt;&lt;li&gt;Use extra fields e.g. _i18n_title_fr = Le data.
&lt;/li&gt;&lt;li&gt;(If lots of fields would need translating then would consider having a new package for each language, linked together with &lt;a class="missing wiki"&gt;PackageRelationships?&lt;/a&gt;. But I think it is just title and description (resource description etc. are so minor, not worth translating?), so using extra field better.)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;EC extension (templates, form)
&lt;ul&gt;&lt;li&gt;Currently the pot file is just for CKAN core. New pot file for CKAN core and this extension? Or separate ones for extensions?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1605</link>
        <guid isPermaLink="false">http://localhost/ticket/1605</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1606: metadata license config option</title>
                  <description>&lt;p&gt;
Add a config option to choose the metadata licence. Set default to Open Database License.
&lt;/p&gt;
&lt;p&gt;
Currently the dataset edit form says "Important: By submitting content, you agree to release your contributions under the Open Database License." This is hard-coded, but not suitable for when DGU uses the CKAN form - they use the OGL.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1606</link>
        <guid isPermaLink="false">http://localhost/ticket/1606</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1607: [super] Data.gov.uk Maintenance Refactor and UKLP Development Support</title>
                  <description>&lt;p&gt;
A ticket to collect all of the changes needed for CKAN to become the 'data' tab on DGU.
&lt;/p&gt;
&lt;p&gt;
Design doc: &lt;a class="ext-link" href="https://docs.google.com/document/d/19h9bA1G4cQkv031m8jNCu6FEB3a8qpXUmdPAguM-Ofs/edit?hl=en_GB"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://docs.google.com/document/d/19h9bA1G4cQkv031m8jNCu6FEB3a8qpXUmdPAguM-Ofs/edit?hl=en_GB&lt;/a&gt;  The design doc is the authoritative source of tasks.  This ticket acts as a synopsis.
&lt;/p&gt;
&lt;p&gt;
Current sprint (2012-02-20):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;7a. &lt;del&gt;Public Publisher Dashboard (including QA Work and notifications) MUST PHASE 1&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;6. &lt;del&gt;Publisher Registration Improvements MUST PHASE 1&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;3. &lt;del&gt;&lt;a class="missing wiki"&gt;Themes/Taxonomy?&lt;/a&gt; as well as tags WONT PHASE 2&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;32. &lt;del&gt;Browse by Tags PHASE 1 MUST&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;12. &lt;del&gt;&lt;a class="missing wiki"&gt;Edit/Delete?&lt;/a&gt; for Harvested Datasets MUST URGENT PHASE 1&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;13. &lt;del&gt;Provider labelling MUST PHASE 1 [UKLP &lt;a class="closed ticket" href="http://localhost/ticket/14" title="enhancement: Update a release (closed: invalid)"&gt;#14&lt;/a&gt; MUST]&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;17. &lt;del&gt;Filter “UK Location Records” MUST PHASE 1 [UKLP &lt;a class="closed ticket" href="http://localhost/ticket/21" title="enhancement: Undelete a package (closed: fixed)"&gt;#21&lt;/a&gt; SHOULD]&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;22. &lt;del&gt;Mixed Licenses MUST PHASE 2&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Plus, brought forward from last sprint:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Publisher hierarchy support&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Improved dataset creation tools (form) - &lt;a class="closed ticket" href="http://localhost/ticket/1525" title="enhancement: [super] DGU package form refactor (closed: fixed)"&gt;#1525&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Edit/delete for harvested datasets&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Overview of tasks: see the design doc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1607</link>
        <guid isPermaLink="false">http://localhost/ticket/1607</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1608: Merge storage into Core</title>
                  <description>&lt;p&gt;
As part of &lt;a class="closed ticket" href="http://localhost/ticket/1608#1574" title="enhancement: Merge storage into Core (closed: fixed)"&gt;Storage Changes&lt;/a&gt; and &lt;a class="ext-link" href="http://ckan.okfnpad.org/newstorage"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/newstorage&lt;/a&gt; it was decided to merge ckanext-storage back into core.
&lt;/p&gt;
&lt;p&gt;
Other changes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Remove /storage/upload page (we have frontend integration elsewhere now and we should also ensure that upload items relate to a resource or other domain object).
&lt;/li&gt;&lt;li&gt;Provide a local path as well as remote path for form upload requests in API so that frontend can see url to CKAN path rather than cloud storage path ...
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1608</link>
        <guid isPermaLink="false">http://localhost/ticket/1608</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1609: Celery task for ckanext-archiver to write to webstore.</title>
                  <description>&lt;p&gt;
From super Storage changes - &lt;a class="closed ticket" href="http://localhost/ticket/1574" title="enhancement: [super] Storage changes including automated save to Webstore (closed: fixed)"&gt;#1574&lt;/a&gt; - and &lt;a class="ext-link" href="http://ckan.okfnpad.org/newstorage"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/newstorage&lt;/a&gt; we determined that ckanext-archiver should have a celery task for grabbing local file uploads and writing to webstore
&lt;/p&gt;
&lt;h2 id="Analysis"&gt;Analysis&lt;/h2&gt;
&lt;p&gt;
When I upload a file to CKAN:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;End up with file in permanent storage
&lt;/li&gt;&lt;li&gt;IF file is ot type ... csv,xls,xlsx,sqlite,.sql
&lt;ul&gt;&lt;li&gt;End up with new db in webstore
&lt;ul&gt;&lt;li&gt;Where? {username}/{resource-id}/...
&lt;ul&gt;&lt;li&gt;If a single table: name it after the file name (appropriately slugified)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A resource *always* corresponds to a 'database' in webstore ...
&lt;/li&gt;&lt;li&gt;In Data Explorer have "Sheets" tab ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Resource url = /dataset/{x}/resource/{y}/link -&amp;gt; cached_url ...
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1609</link>
        <guid isPermaLink="false">http://localhost/ticket/1609</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1610: Move webstore to Postgres instead of Sqlite</title>
                  <description>&lt;p&gt;
The default backing store for webstore should be Postgres and not sqlite.  This was agreed as part of the &lt;a class="closed ticket" href="http://localhost/ticket/1574" title="enhancement: [super] Storage changes including automated save to Webstore (closed: fixed)"&gt;#1574&lt;/a&gt; storage changes and on &lt;a class="ext-link" href="http://ckan.okfnpad.org/newstorage"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/newstorage&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1610</link>
        <guid isPermaLink="false">http://localhost/ticket/1610</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1611: Implement auth API calls for webstore/external use</title>
                  <description>&lt;p&gt;
As part of &lt;a class="closed ticket" href="http://localhost/ticket/1574" title="enhancement: [super] Storage changes including automated save to Webstore (closed: fixed)"&gt;#1574&lt;/a&gt; we decided that it would be better for webstore (and future external services) to be able to authenticate simply with CKAN-Core.
&lt;/p&gt;
&lt;p&gt;
Currently webstore access the CKAN database to obtain the key for the user but it would be better if this connection was not so tightly bound and that webstore used an API as any other external service might.
&lt;/p&gt;
&lt;p&gt;
Need to discuss further with dread
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1611</link>
        <guid isPermaLink="false">http://localhost/ticket/1611</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1612: Group view page slow</title>
                  <description>&lt;p&gt;
Group show that lists packages is slow due to not using query in pagination.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1612</link>
        <guid isPermaLink="false">http://localhost/ticket/1612</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1613: Post-dataset-edit URL has #section</title>
                  <description>&lt;ol&gt;&lt;li&gt;Viewing a dataset, hit 'Edit'
&lt;/li&gt;&lt;li&gt;Click on the "Basic Information" tab (note: URL has suffix   #section-basic-information
&lt;/li&gt;&lt;li&gt;Click 'Save'
&lt;/li&gt;&lt;li&gt;URL still has suffix #section-basic-information
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Affects 1.5, 1.5.1, 1.5.2a
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1613</link>
        <guid isPermaLink="false">http://localhost/ticket/1613</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1614: remove po files from git diff</title>
                  <description>&lt;p&gt;
Its a pain to see the difference between branches as there are normally a lot of po file transaction. Make the default be see that they have changed without actually show the diffs themselves.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1614</link>
        <guid isPermaLink="false">http://localhost/ticket/1614</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>thejimmyg</dc:creator>

                  <title>#1615: CKAN Should work behind a proxy server</title>
                  <description>&lt;p&gt;
This would allow deployment via Nginx or Apache using proxy to Paster, uWSGI. At the moment CKAN isn't aware of the proxy's IP address so when you perform an action which does a redirect (such as adding a package), CKAN redirects you to the *internal IP* not the external *proxy IP*.
&lt;/p&gt;
&lt;p&gt;
We would like this work to facilitate testing within VMs as part of our new build infrastructure.
&lt;/p&gt;
&lt;p&gt;
It would also be nice if CKAN worked when mounted at a path other than /. That could be dealt with in another ticket because it isn't a problem at the moment.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1615</link>
        <guid isPermaLink="false">http://localhost/ticket/1615</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1616: Catch exceptions when rebuilding the search index</title>
                  <description>&lt;p&gt;
Right now if an exception is found while reindexing, the whole process stops and the remaining datasets are left out of the index. The process should continue after logging the exception. If more than a certain number of exceptions occur in a row, the process should stop.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1616</link>
        <guid isPermaLink="false">http://localhost/ticket/1616</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1617: Update and test existing DGU package form : publisher / foi information</title>
                  <description>&lt;p&gt;
[Child of &lt;a class="closed ticket" href="http://localhost/ticket/1526" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1526&lt;/a&gt;]
&lt;/p&gt;
&lt;p&gt;
Contact/FOI information is derived from &lt;a class="missing wiki"&gt;Publisher/User?&lt;/a&gt;, but can be altered for each dataset.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Original estimate: 4 days
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Time spent: 0 days
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Time remaining: 4 days
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/1617</link>
        <guid isPermaLink="false">http://localhost/ticket/1617</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1618: Update and test existing DGU package form : provide stubs for the theme and sub-themes</title>
                  <description>&lt;p&gt;
[Child of &lt;a class="closed ticket" href="http://localhost/ticket/1526" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1526&lt;/a&gt;]
&lt;/p&gt;
&lt;p&gt;
Provide the interface for the themes and subthemes hierarchy.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1618</link>
        <guid isPermaLink="false">http://localhost/ticket/1618</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1619: Update and test existing DGU package form : provide stubs for the publisher hierarchy</title>
                  <description>&lt;p&gt;
[Child of &lt;a class="closed ticket" href="http://localhost/ticket/1526" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1526&lt;/a&gt;]
&lt;/p&gt;
&lt;p&gt;
Create the interface used to retrieve publisher and authz information from the publisher hierarchy.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1619</link>
        <guid isPermaLink="false">http://localhost/ticket/1619</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1620: Update and test existing DGU package form : don't allow package-type selection when editing a package</title>
                  <description>&lt;p&gt;
[Child of &lt;a class="closed ticket" href="http://localhost/ticket/1526" title="enhancement: [super] Update and test existing DGU package form (closed: fixed)"&gt;#1526&lt;/a&gt;]
&lt;/p&gt;
&lt;p&gt;
Can't change a dataset from containing time-series resources to one containing individual resources or visa-versa.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1620</link>
        <guid isPermaLink="false">http://localhost/ticket/1620</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1621: UnicodeDecodeError when validating user password</title>
                  <description>&lt;p&gt;
A test case is currently failing for me on master:
&lt;/p&gt;
&lt;pre class="wiki"&gt;ERROR: ckan.tests.functional.test_user.TestUserController.test_user_create_unicode
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/seanh/pyenv/lib/python2.6/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/seanh/pyenv/src/ckan/ckan/tests/functional/test_user.py", line 342, in test_user_create_unicode
    res = res.follow()
  File "/usr/lib/pymodules/python2.6/paste/fixture.py", line 603, in follow
    return self.test_app.get(location, **kw)
  File "/usr/lib/pymodules/python2.6/paste/fixture.py", line 208, in get
    return self.do_request(req, status=status)
  File "/usr/lib/pymodules/python2.6/paste/fixture.py", line 389, in do_request
    **req.environ)
  File "/usr/lib/pymodules/python2.6/paste/wsgilib.py", line 343, in raw_interactive
    app_iter = application(basic_environ, start_response)
  File "/usr/lib/pymodules/python2.6/paste/lint.py", line 170, in lint_app
    iterator = application(environ, start_response_wrapper)
  File "/usr/lib/pymodules/python2.6/paste/cascade.py", line 130, in __call__
    return self.apps[-1](environ, start_response)
  File "/usr/lib/pymodules/python2.6/paste/registry.py", line 350, in __call__
    app_iter = self.application(environ, start_response)
  File "/usr/lib/pymodules/python2.6/repoze/who/middleware.py", line 69, in __call__
    auth_ids = self.authenticate(environ, classification, ids)
  File "/usr/lib/pymodules/python2.6/repoze/who/middleware.py", line 201, in authenticate
    userid = plugin.authenticate(environ, identity)
  File "/home/seanh/pyenv/src/ckan/ckan/lib/authenticator.py", line 29, in authenticate
    if user.validate_password(identity.get('password')):
  File "/home/seanh/pyenv/src/ckan/ckan/model/user.py", line 113, in validate_password
    hashed_pass = sha1(password_8bit + self.password[:40])
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 12: ordinal not in range(128)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1621</link>
        <guid isPermaLink="false">http://localhost/ticket/1621</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1622: Deploy QA on DGU UAT test server - 0.5d</title>
                  <description>&lt;ul&gt;&lt;li&gt;Update CKAN on DGU UAT to 1.5.1
&lt;/li&gt;&lt;li&gt;Deploy Celery
&lt;/li&gt;&lt;li&gt;Deploy QA extension
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1622</link>
        <guid isPermaLink="false">http://localhost/ticket/1622</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1623: Dump to exclude deleted objects</title>
                  <description>&lt;p&gt;
The database dump currently contains all Packages and their associated objects, even those that have been set to state=deleted. We should exclude these from the dump now.
&lt;/p&gt;
&lt;p&gt;
Dump = paster db simple-dump-csv/json
&lt;/p&gt;
&lt;h2 id="reasoning"&gt;reasoning&lt;/h2&gt;
&lt;p&gt;
The dumps are designed for end-users to be able to run scripts on the mass of data. Since end-users don't see state=deleted packages then they shouldn't need them in the dump. In fact their presence in the dump probably confuses them.
&lt;/p&gt;
&lt;p&gt;
Admins get the full database anyway in the backup pg_dump.
&lt;/p&gt;
&lt;p&gt;
We only included them in the user dump because it was designed before use of state=deleted was established.
&lt;/p&gt;
&lt;p&gt;
Time estimate: 2h
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1623</link>
        <guid isPermaLink="false">http://localhost/ticket/1623</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1624: Typo in dataset edit mode</title>
                  <description>&lt;p&gt;
Futher Information -&amp;gt; Further Information
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1624</link>
        <guid isPermaLink="false">http://localhost/ticket/1624</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1625: Add activity stream events for new/changed users</title>
                  <description>&lt;p&gt;
This requires adding a logic function for emitting an activity stream event, and then editing the logic functions for creating or updating users and making them call the new emit event function. This same emit event function can later be used to emit activity stream events for other types of object as well.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1625</link>
        <guid isPermaLink="false">http://localhost/ticket/1625</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1626: 'About CKAN' page update</title>
                  <description>&lt;p&gt;
thedatahub.org/about contains info that is very general to the CKAN and really quite technical. The text should be changed to be both specific to thedatahub.org and provide the context in a non-technical way. It should be easy to customise the About page to be appropriate for say new-york.ckan.net - a bit of info about who runs it, plus the general stuff about CKAN powering it and it was written by OKF to further open data.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1626</link>
        <guid isPermaLink="false">http://localhost/ticket/1626</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1627: favicon broken</title>
                  <description>&lt;p&gt;
On thedatahub.org the favicon doesn't display. i.e. the CKAN logo should appear in the browser's tab.
&lt;/p&gt;
&lt;p&gt;
Original ticket &lt;a class="closed ticket" href="http://localhost/ticket/48" title="enhancement: Create favicon (closed: fixed)"&gt;#48&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1627</link>
        <guid isPermaLink="false">http://localhost/ticket/1627</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1628: get ckanext-dgu working with ckan 1.5.1</title>
                  <description>&lt;p&gt;
johnglover said: I can confirm that even with the mapping fix, the ckanext-dgu dgu_form plugin template does not work properly with 1.5.1, so should probably not be installed at present. The edit page is ugly but should work (eg: &lt;a class="ext-link" href="http://dgu-os.okfn.org/dataset/edit/abandoned-vehicles"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://dgu-os.okfn.org/dataset/edit/abandoned-vehicles&lt;/a&gt;), but the 'add a dataset' page is broken (eg: &lt;a class="ext-link" href="http://dgu-os.okfn.org/dataset/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://dgu-os.okfn.org/dataset/new&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1628</link>
        <guid isPermaLink="false">http://localhost/ticket/1628</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1629: permissions changed during upgrade to 1.5.1</title>
                  <description>&lt;p&gt;
This was seen on datacatalogs. When we upgraded it 1.5 to 1.5.1 we saw some permissions being reset so that it could be spammed. Anonymous and logged in users were given anon_editor and editor permissions. I don't know what the previous config was. Permissions for sysadmins remain unaffected.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1629</link>
        <guid isPermaLink="false">http://localhost/ticket/1629</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1630: Integrate Data Explorer v2 into Data Viewer</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1602" title="enhancement: [super] Data Previewer / Viewer v2 (closed: fixed)"&gt;#1602&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Steps:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Include (or git submodule) data explorer into vendor
&lt;/li&gt;&lt;li&gt;Update existing js integration code
&lt;/li&gt;&lt;li&gt;Fix css and any bugs
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Est: 1d
&lt;/p&gt;
&lt;p&gt;
Actual: 1d
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1630</link>
        <guid isPermaLink="false">http://localhost/ticket/1630</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1631: Add activity stream events for new/changed groups</title>
                  <description></description>
        <link>http://localhost/ticket/1631</link>
        <guid isPermaLink="false">http://localhost/ticket/1631</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1632: Render a group's activity stream on its' page</title>
                  <description>&lt;p&gt;
Add logic functions for getting the activity stream for a group in JSON and rendered HTML formats, add HTML activity stream into group page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1632</link>
        <guid isPermaLink="false">http://localhost/ticket/1632</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1633: Render a dataset's activity stream on its' page</title>
                  <description>&lt;p&gt;
Add logic functions for getting the activity stream for a dataset in JSON and rendered HTML formats, add HTML activity stream into dataset page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1633</link>
        <guid isPermaLink="false">http://localhost/ticket/1633</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1634: Allow users to follow/unfollow activity streams of other users, datasets and groups</title>
                  <description>&lt;p&gt;
This is a fairly big feature to add. Analysis: &lt;a class="ext-link" href="http://ckan.okfnpad.org/27"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/27&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This ticket is related to &lt;a class="new ticket" href="http://localhost/ticket/1635" title="enhancement: Email notifications (e.g. for activity streams) (new)"&gt;#1635&lt;/a&gt; (email notifications for activity streams) which is about managing a list of activity streams for which the user receives email notifications. There are decisions to be made about how the two will work together.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1634</link>
        <guid isPermaLink="false">http://localhost/ticket/1634</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1635: Email notifications (e.g. for activity streams)</title>
                  <description>&lt;p&gt;
CKAN should be able to send email notifications to users.
&lt;/p&gt;
&lt;p&gt;
Maybe have a notifications table in the db, and a server-side job that runs periodically and consumes rows from this table, mailing them to the users.
&lt;/p&gt;
&lt;p&gt;
One thing that we may want to send users notifications of is activity stream events. So the activity streams code would have to add rows to the notifications table for the mailer job to consume. But remember that email notifications feature is separate from activity streams - we may want to send notifications of other things as well.
&lt;/p&gt;
&lt;p&gt;
Need to implement (at least some of) &lt;a class="closed ticket" href="http://localhost/ticket/1634" title="enhancement: Allow users to follow/unfollow activity streams of other users, datasets ... (closed: duplicate)"&gt;#1634&lt;/a&gt; before this can be implemented, in order to have something to send notifications about.
&lt;/p&gt;
&lt;p&gt;
Analysis here: &lt;a class="ext-link" href="http://ckan.okfnpad.org/27"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/27&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1635</link>
        <guid isPermaLink="false">http://localhost/ticket/1635</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1636: Purge items from activity streams when object (package etc.) purged from CKAN</title>
                  <description></description>
        <link>http://localhost/ticket/1636</link>
        <guid isPermaLink="false">http://localhost/ticket/1636</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1637: API call for getting the list of activity detail items for a given activty stream item</title>
                  <description>&lt;p&gt;
(and add test cases for it)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1637</link>
        <guid isPermaLink="false">http://localhost/ticket/1637</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1638: Don't use JsonType in activity streams</title>
                  <description>&lt;p&gt;
Dump and load JSON explicitly instead.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1638</link>
        <guid isPermaLink="false">http://localhost/ticket/1638</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1639: Move activity streams CSS into external file</title>
                  <description>&lt;p&gt;
The HTML and CSS for the activity streams templates needs to be tidied up. Currently the CSS is inlined in the templates themselves, and there is much unnecessary repetition of CSS.
&lt;/p&gt;
&lt;p&gt;
Perhaps put this one in hold until there has been some design discussion about how the activity streams and the user, dataset and group pages with activity streams should look?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1639</link>
        <guid isPermaLink="false">http://localhost/ticket/1639</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1640: Setup publicdata.eu harvester for Serbian CKAN datasets</title>
                  <description>&lt;p&gt;
Set-up publicdata.eu to harvest datasets at rs.ckan.net (Serbian community CKAN).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1640</link>
        <guid isPermaLink="false">http://localhost/ticket/1640</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1641: ckanext-archiver: Content-length header not reliable to check if resource has been modified</title>
                  <description>&lt;p&gt;
The download task in ckanext-archiver performs a HEAD request on the resource URL and checks if the "Content-Type" and "Content-Length" headers differ from the values stored to see if the resource needs to be updated &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The "Content-Length" header, although widely used, is not mandatory and some servers don't provide it, e.g.:
&lt;/p&gt;
&lt;pre class="wiki"&gt;$ curl -I http://portfolio.theglobalfund.org/en/IATI/Activities?countryCode=AFG
HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: text/xml
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Set-Cookie: ASP.NET_SessionId=3qhqekddgmre0kmk5cynq0sy; path=/; HttpOnly
X-AspNetMvc-Version: 3.0
content-disposition: attachment; filename=AFG_IATI_12012012.xml
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 12 Jan 2012 12:36:43 GMT
&lt;/pre&gt;&lt;p&gt;
Also worth noting that &lt;a class="ext-link" href="http://docs.python-requests.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;requests&lt;/a&gt;, the python library that uses ckanext-archiver, sets an "Accept-Encoding: gzip" header by default, which depending on the configuration of the remote web server, may prevent the "Content-Length" server from being sent, e.g.:
&lt;/p&gt;
&lt;pre class="wiki"&gt;$ curl -H "Accept-Encoding: gzip" -I http://iatistandard.org/published-temp/adb-activities.xml
HTTP/1.1 200 OK
Date: Thu, 12 Jan 2012 12:12:46 GMT
Server: Apache
Last-Modified: Mon, 28 Nov 2011 15:55:35 GMT
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: application/xml
curl -I http://iatistandard.org/published-temp/adb-activities.xml
HTTP/1.1 200 OK
Date: Thu, 12 Jan 2012 11:56:23 GMT
Server: Apache
Last-Modified: Mon, 28 Nov 2011 15:55:35 GMT
Accept-Ranges: bytes
Content-Length: 2686720
Vary: Accept-Encoding
Content-Type: application/xml
&lt;/pre&gt;&lt;p&gt;
All this can lead to some resources never getting updated, and of course the size property of the resource not being set.
&lt;/p&gt;
&lt;p&gt;
As we need to download the resource anyway, it would be better to check if the real length of the data has been modified (and store it).
&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="https://github.com/okfn/ckanext-archiver/blob/0a189262dca4ab5b286fb6a02b4ab8a201f639f3/ckanext/archiver/tasks.py#L72"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-archiver/blob/0a189262dca4ab5b286fb6a02b4ab8a201f639f3/ckanext/archiver/tasks.py#L72&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1641</link>
        <guid isPermaLink="false">http://localhost/ticket/1641</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>pudo</dc:creator>

                  <title>#1642: Extra link generators generate garbled HTML</title>
                  <description>&lt;p&gt;
I had a package descriptions with URLs that contain "group:foo". This produces garbled output as the system tries to generate two sets of links: the outer link and an inner link.
&lt;/p&gt;
&lt;p&gt;
Need to fix the parser.
&lt;/p&gt;
&lt;p&gt;
Text:
&lt;/p&gt;
&lt;p&gt;
Webdienst basierende Bereitstellung von Geobasisdaten der Freien und Hansestadt Hamburg. Folgende Geobasisdaten werden als &lt;a class="missing wiki"&gt;WebMapTileService?&lt;/a&gt; (WMT-S) für die Dauer des Wettbewerbs netzbasiert unter der Creative Commons Lizenz zur Verfügung gestellt: Digitale Orthophotos 40 cm Auflösung (Layer: apps4d_DOP40), Digitale Stadtkarte (Layer: apps4d_DISK), Digitale Regionalkarte (Layer: apps4d_DIRK), Digitale Karte 1:5000 (Layer: apps4d_DK5).
&lt;/p&gt;
&lt;p&gt;
Metadateneinträge zu den Daten im PortalU:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[apps4d_DOP40](&lt;a class="ext-link" href="http://www.portalu.de/trefferanzeige?docuuid=D6082285-6CAC-49C5-B7ED-B5A72BC17DEC&amp;amp;plugid=/kug-group:kug-iplug-udk-db_hh"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.portalu.de/trefferanzeige?docuuid=D6082285-6CAC-49C5-B7ED-B5A72BC17DEC&amp;amp;plugid=/kug-group:kug-iplug-udk-db_hh&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;[apps4d_DISK](&lt;a class="ext-link" href="http://www.portalu.de/trefferanzeige?docuuid=D2DA3359-3DC9-4CA4-AE9B-7C63D53B220F&amp;amp;plugid=/kug-group:kug-iplug-udk-db_hh"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.portalu.de/trefferanzeige?docuuid=D2DA3359-3DC9-4CA4-AE9B-7C63D53B220F&amp;amp;plugid=/kug-group:kug-iplug-udk-db_hh&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;[apps4d_DIRK](&lt;a class="ext-link" href="http://www.portalu.de/trefferanzeige?docuuid=B7DDD599-F677-4C80-BED5-F11D82D5D1DD&amp;amp;plugid=/kug-group:kug-iplug-udk-db_hh"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.portalu.de/trefferanzeige?docuuid=B7DDD599-F677-4C80-BED5-F11D82D5D1DD&amp;amp;plugid=/kug-group:kug-iplug-udk-db_hh&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;[apps4d_DK5](&lt;a class="ext-link" href="http://www.portalu.de/trefferanzeige?docuuid=2AE6D23E-48A5-4D85-BC0A-160737E0C8D2&amp;amp;plugid=/kug-group:kug-iplug-udk-db_hh"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.portalu.de/trefferanzeige?docuuid=2AE6D23E-48A5-4D85-BC0A-160737E0C8D2&amp;amp;plugid=/kug-group:kug-iplug-udk-db_hh&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
One fix is quoting the URLs
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1642</link>
        <guid isPermaLink="false">http://localhost/ticket/1642</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1643: Add fixed tags to thedatahub for better browsing</title>
                  <description>&lt;p&gt;
Similar to publicdata.eu, want to have themed areas such as finance, environment, census, etc and country tags
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1643</link>
        <guid isPermaLink="false">http://localhost/ticket/1643</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1644: Order default dataset page by most downloaded resources on thedatahub</title>
                  <description>&lt;p&gt;
Instead of alphabetically as we do currently, alternatively by most viewed datasets
&lt;/p&gt;
&lt;p&gt;
for &lt;a class="ext-link" href="http://thedatahub.org/dataset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1644</link>
        <guid isPermaLink="false">http://localhost/ticket/1644</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1645: Update and test existing DGU package form : Apply a simple theme</title>
                  <description>&lt;p&gt;
Theme the DGU form.
&lt;/p&gt;
&lt;p&gt;
Doesn't need to be an exact replica of DGU, but just enough to show it's possible.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1645</link>
        <guid isPermaLink="false">http://localhost/ticket/1645</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1646: Resource navigator options display spuriously</title>
                  <description>&lt;p&gt;
When viewing a dataset, the "Resources" navigation button contained the Resource titles on the Resource navigator button, instead of in a drop-down mouse-hover menu.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://thedatahub.org/dataset/realtime-birth-data-in-bulgaria/resource/66fc5831-ce01-4954-9beb-e2889ef8a20f"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/realtime-birth-data-in-bulgaria/resource/66fc5831-ce01-4954-9beb-e2889ef8a20f&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;Chrome/Linux?&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1646</link>
        <guid isPermaLink="false">http://localhost/ticket/1646</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1647: add links to ckan discuss &amp; dev to thedatahub</title>
                  <description>&lt;p&gt;
In the footer as well as more clearly &amp;amp; directly on the About page
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1647</link>
        <guid isPermaLink="false">http://localhost/ticket/1647</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1648: Clarify that additional info = extra fields + add guidance</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Need to decide which term to use and then have the same for editing as well as viewing a dataset.
&lt;/p&gt;
&lt;p&gt;
In creating/editing a dataset, want more explanation about adding extra fields (probably as a tooltip or similar).. i.e. that this let's you add extra custom metadata such as 'location: uk' which is then searchable etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1648</link>
        <guid isPermaLink="false">http://localhost/ticket/1648</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1649: Verify RDF Extension (ckanext-rdf) works</title>
                  <description>&lt;ul&gt;&lt;li&gt;Make sure that the extension works as it should and isn't broken on current releases [3d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Make it work with the EC schema, including extras [2d]
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1649</link>
        <guid isPermaLink="false">http://localhost/ticket/1649</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1650: Add new language/translation of fields for datasets.</title>
                  <description>&lt;p&gt;
Datasets should have a field that specifies the language used in the dataset, this should be a two character ISO 639-1 code (see &lt;a class="ext-link" href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes&lt;/a&gt; for list) . Also make sure all tests and migrations are resolved. [2d]
&lt;/p&gt;
&lt;p&gt;
Determine the best approach to having 'translation_of' references to show which dataset the current one is a translation of.  This may be a translation of field, or a 'copied from' field or another form of package relationship. [2d]
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1650</link>
        <guid isPermaLink="false">http://localhost/ticket/1650</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1651: Explicit link mapper</title>
                  <description>&lt;p&gt;
In this commit &lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/1772a5c"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/1772a5c&lt;/a&gt; John Glover set map.explicit=True in ckan/config/routing.py.
&lt;/p&gt;
&lt;p&gt;
The reason this was done was to avoid links collecting parameters.
e.g. if you were on page /dataset/{id}/resource/{resource_id} then by default all the links on that page generated by url_for (Routes) would include the id and resource_id parameters as well. To avoid this, you had to go through all the links and add id=None and resource_id=None to the url_for parameters.
&lt;/p&gt;
&lt;p&gt;
When map.explicit was changed to True, the value of the controller, action, id and any parameters were no longer automatically carried over into the generated links for the page. So previously links within the same controller didn't need to specify the controller (for example), but now they did. So when we did this we also had to fix up links that weren't explicit:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/88e88380f61965f58fb105095e76a78673ce3e2c"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/88e88380f61965f58fb105095e76a78673ce3e2c&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1501" title="defect: Pagination links broken (closed: fixed)"&gt;#1501&lt;/a&gt; Pagination links
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/52d71102d9b07693ea240d4a66e8adb43e515414"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/52d71102d9b07693ea240d4a66e8adb43e515414&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
John made the config change on 5/11/2011 which was merged to master &lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/5a01e67"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/5a01e67&lt;/a&gt; 21/11/2011. The related fixes mentioned were in within the same week. This all went into release 1.5.1. The requirement
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1651</link>
        <guid isPermaLink="false">http://localhost/ticket/1651</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1652: How we intergrate with Drupal Multiligual?</title>
                  <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>
        <link>http://localhost/ticket/1652</link>
        <guid isPermaLink="false">http://localhost/ticket/1652</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1653: Change URLs for multilingual site</title>
                  <description>&lt;p&gt;
To support multiple languages we should have an easy way to specify the language as part of the URL, so that URLs are both specific and we also reduce the dependency on the session.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Analysis [1d] - Find the best way of implementing this and how everyone else does their language URLs.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Write Middleware + update url_for to take account of the language. [2d]
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Document the language setup, and how to replicate it. [1d]
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1653</link>
        <guid isPermaLink="false">http://localhost/ticket/1653</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1654: [super] Update Publicdata.eu to the latest CKAN stable version</title>
                  <description>&lt;p&gt;
Tasks include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1813" title="task: Upadate ckanext-pdeu to work with CKAN 1.6 (closed: fixed)"&gt;#1813&lt;/a&gt; Update ckanext-pdeu (4d)
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1814" title="enhancement: Check publicadata.eu harvesters (closed: fixed)"&gt;#1814&lt;/a&gt; Update harvesters (2d)
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1649" title="enhancement: Verify RDF Extension (ckanext-rdf) works (closed: fixed)"&gt;#1649&lt;/a&gt; Verify ckanext-rdf works with latest CKAN (3d)
&lt;/li&gt;&lt;li&gt;&lt;a class="new ticket" href="http://localhost/ticket/1815" title="task: Reenable Sparql endpoint on publicdata.eu (new)"&gt;#1815&lt;/a&gt; Reenable Sparql endpoint (?)
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1816" title="enhancement: Update ckanext-apps to work with CKAN 1.5.1 - 1.6 (closed: fixed)"&gt;#1816&lt;/a&gt; Update ckanext-apps (2-3d)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1654</link>
        <guid isPermaLink="false">http://localhost/ticket/1654</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1655: Setup issues on s025 (Publicdata.eu)</title>
                  <description>&lt;p&gt;
Time estimate: 2d
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Fix logs (apache, ckan, harvest): rotate, set suitable levels
&lt;/li&gt;&lt;li&gt;Fix harvesting jobs: supervisord for gather consumer, cron job
&lt;/li&gt;&lt;li&gt;Fix backups
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also it may be worth setting up a test instance ( on s023 ?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1655</link>
        <guid isPermaLink="false">http://localhost/ticket/1655</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1656: Configuration for reverse proxying</title>
                  <description>&lt;p&gt;
Provide configuration for reverse proxying that will correctly handle the mapping of a URL to a sub-folder (using X-SCRIPT-NAME)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Analysis of the best solution [1d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Implement reverse proxying in tandem with &lt;a class="closed ticket" href="http://localhost/ticket/1653" title="enhancement: Change URLs for multilingual site (closed: fixed)"&gt;#1653&lt;/a&gt;  [2d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Document and store the configuration files. [1d]
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1656</link>
        <guid isPermaLink="false">http://localhost/ticket/1656</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1657: Configuration for reverse proxying</title>
                  <description>&lt;p&gt;
Provide configuration for reverse proxying that will correctly handle the mapping of a URL to a sub-folder (using X-SCRIPT-NAME)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Analysis of the best solution [1d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Implement reverse proxying in tandem with &lt;a class="closed ticket" href="http://localhost/ticket/1653" title="enhancement: Change URLs for multilingual site (closed: fixed)"&gt;#1653&lt;/a&gt;  [2d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Document and store the configuration files. [1d]
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1657</link>
        <guid isPermaLink="false">http://localhost/ticket/1657</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1658: Implement proxy caching</title>
                  <description>&lt;p&gt;
Implement proxy caching for performance gains
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Analysis of best solution and what we can deliver in a reasonable time [2d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Checks for presence of cookie 'auth_tkt' and appropriate setup for media  [2d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Remove session requirements for user who isn't logged in [3d]
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Document the configuration and setup so that it can be easily modified and replicated [1d]
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1658</link>
        <guid isPermaLink="false">http://localhost/ticket/1658</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1659: Cannot logout if CKAN mounted at non-root url</title>
                  <description>&lt;p&gt;
If you set WSGIScriptAlias to mount CKAN at a URL other than / then you cannot logout without adjusting the OpenID logged_out_url to match in who.ini config. e.g.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[plugin:openid]
...
logged_out_url = /sub/dir/user/logged_out
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Note: all the other URLs in who.ini should not have the /sub/dir/ - it is just this one that doesn't take account of the mounting point.
&lt;/p&gt;
&lt;p&gt;
The solution is to fix-up the repoze.who OpenID plugin to take account of the mounting point.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1659</link>
        <guid isPermaLink="false">http://localhost/ticket/1659</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>lucychambers</dc:creator>

                  <title>#1660: CSV preview broken - OpenSpending</title>
                  <description>&lt;p&gt;
This CSV resource used to preview but now the format appears to be unsupported: "We are unable to preview this type of resource: x-osdata-csv"
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://thedatahub.org/dataset/lbhf-spending-2010/resource/9661abbd-2816-4d58-8b20-3cb0eb770c69"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/lbhf-spending-2010/resource/9661abbd-2816-4d58-8b20-3cb0eb770c69&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This is used as an example by the &lt;a class="missing wiki"&gt;OpenSpending?&lt;/a&gt; team all the time.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1660</link>
        <guid isPermaLink="false">http://localhost/ticket/1660</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1661: Wrong Routes version installed by CKAN package</title>
                  <description>&lt;p&gt;
Jaakko Louhio reported that the wrong Routes version got installed during CKAN's package install.
&lt;/p&gt;
&lt;p&gt;
He is using Ubuntu 10.04 and he believes it install Routes 1.12.3 instead of what we use which is 1.11.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1661</link>
        <guid isPermaLink="false">http://localhost/ticket/1661</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1662: OpenID not compatible with mounting CKAN at non-root URL</title>
                  <description>&lt;p&gt;
Mounting CKAN at a non-root URL was made to work properly here: &lt;a class="closed ticket" href="http://localhost/ticket/1659" title="defect: Cannot logout if CKAN mounted at non-root url (closed: fixed)"&gt;#1659&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Unfortunately OpenID doesn't play nicely and would require some work to get working.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1662</link>
        <guid isPermaLink="false">http://localhost/ticket/1662</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1663: API call for creating an activity streams event</title>
                  <description>&lt;p&gt;
The create_activity() logic function already exists, but validation and authorization need to be added before it's hooked up to an API call.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1663</link>
        <guid isPermaLink="false">http://localhost/ticket/1663</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1664: Smarter group activity streams</title>
                  <description>&lt;p&gt;
We already have simple activity streams for groups that have new group or group updated events (see &lt;a class="closed ticket" href="http://localhost/ticket/1631" title="enhancement: Add activity stream events for new/changed groups (closed: fixed)"&gt;#1631&lt;/a&gt;). Smarter/more useful group activity streams would also contain the events for things related to the group: users, datasets, other groups, etc.
&lt;/p&gt;
&lt;p&gt;
This should just mean using a more complex SQL query in the group_activity_list() logic function.
&lt;/p&gt;
&lt;p&gt;
Things might get tricky when a user or dataset joins a group, this may show up as two events (the user or dataset was modified, and the group was modified). We may want to have two separate events for this (one to go in the user or dataset activity stream and one for the group), or maybe we just want one 'user/dataset joined group' event.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1664</link>
        <guid isPermaLink="false">http://localhost/ticket/1664</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1665: Begin doing research into eurovoc</title>
                  <description>&lt;p&gt;
How big is it? How are we going to store it? etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1665</link>
        <guid isPermaLink="false">http://localhost/ticket/1665</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1666: Add activity stream events for tags</title>
                  <description>&lt;p&gt;
...and show them on the tag pages.
&lt;/p&gt;
&lt;p&gt;
This means adding tag_activity_list() and tag_activity_list_html() logic functions, adding the templating to render tags as HTML, and adding the tag HTML into the tag pages.
&lt;/p&gt;
&lt;p&gt;
What exactly should go into a tag's activity stream? As with datasets we may want a more complex SQL query, where events from objects related to the tag (datasets, users, etc.) appear in the tag's stream.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1666</link>
        <guid isPermaLink="false">http://localhost/ticket/1666</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1667: Add an extension point for rendering activity streams</title>
                  <description>&lt;p&gt;
Currently rendering of activity stream events to HTML works by looking up a rendering function in a dictionary that maps activity types ('new package', 'changed group', etc.) to rendering functions that take an activity stream event and return the rendered HTML.
&lt;/p&gt;
&lt;p&gt;
There needs to be an extension point where extensions can register their own rendering functions for particular activity types.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1667</link>
        <guid isPermaLink="false">http://localhost/ticket/1667</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1668: repoze version discrepency</title>
                  <description>&lt;p&gt;
There's a discrepency in repoze.who versions between the source and package installs:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;repoze.who - package 1.0.18 vs source 1.0.19
&lt;/li&gt;&lt;li&gt;repoze.who-friendlyform - package 1.0b3 vs source 1.0.8
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
We get a test failure &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt; with the 1.0b3 version (from the ubuntu 10.04 python-repoze.who-plugins package). But we've not noticed any problems on s057 instances (br, no, ie etc) which have the package versions of repoze.who.
&lt;/p&gt;
&lt;p&gt;
The reason the package install uses the earlier packaged versions rather than the ones we'd like is that repoze uses all sorts of horrendous import hacks, making it too difficult to put into our 'ckan-conflict' source package.
&lt;/p&gt;
&lt;p&gt;
James suggests we 'do something horrible like dynamically patch repoze on CKAN import'.
&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://buildbot.okfn.org/builders/builder-ckan/builds/1371/steps/shell/logs/stdio"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://buildbot.okfn.org/builders/builder-ckan/builds/1371/steps/shell/logs/stdio&lt;/a&gt;
ERROR: ckan.tests.functional.test_user.&lt;a class="missing wiki"&gt;TestUserController?&lt;/a&gt;.test_user_create_unicode
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1668</link>
        <guid isPermaLink="false">http://localhost/ticket/1668</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1669: [super] Publisher profile</title>
                  <description>&lt;p&gt;
Implement the necessary backend changes to build profile for publishers using the group refactor.
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="http://ckan.okfnpad.org/publisherprofiles"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/publisherprofiles&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Subtickets are at:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Publisher profile analysis &lt;a class="closed ticket" href="http://localhost/ticket/1670" title="enhancement: Publisher profile documentation (closed: fixed)"&gt;#1670&lt;/a&gt; [2d]
&lt;/li&gt;&lt;li&gt;Publisher profile sysadmin authz &lt;a class="closed ticket" href="http://localhost/ticket/1671" title="enhancement: Publisher profile sysadmin authz (closed: fixed)"&gt;#1671&lt;/a&gt; [1d]
&lt;/li&gt;&lt;li&gt;Publisher profile user authz &lt;a class="closed ticket" href="http://localhost/ticket/1672" title="enhancement: Publisher profile user authz (closed: fixed)"&gt;#1672&lt;/a&gt; [1d]
&lt;/li&gt;&lt;li&gt;Test auth logic hooks for publisher profile &lt;a class="closed ticket" href="http://localhost/ticket/1674" title="enhancement: Test auth logic hooks for publisher profile (closed: fixed)"&gt;#1674&lt;/a&gt; [3d]
&lt;/li&gt;&lt;li&gt;Publisher admin authz &lt;a class="closed ticket" href="http://localhost/ticket/1675" title="enhancement: Publisher admin authz (closed: fixed)"&gt;#1675&lt;/a&gt; [3d]
&lt;/li&gt;&lt;li&gt;Publisher editor authz &lt;a class="closed ticket" href="http://localhost/ticket/1676" title="enhancement: Publisher editor authz (closed: fixed)"&gt;#1676&lt;/a&gt; [2d]
&lt;/li&gt;&lt;li&gt;Add approval status field to groups &lt;a class="closed ticket" href="http://localhost/ticket/1673" title="enhancement: Add approval status field to groups (closed: fixed)"&gt;#1673&lt;/a&gt; [1d]
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1669</link>
        <guid isPermaLink="false">http://localhost/ticket/1669</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1670: Publisher profile documentation</title>
                  <description>&lt;p&gt;
Super &lt;a class="closed ticket" href="http://localhost/ticket/1669" title="enhancement: [super] Publisher profile (closed: fixed)"&gt;#1669&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Analysis of all permissions for users given their publishers to ensure that we have covered all of the bases and haven't missed any use-cases.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1670</link>
        <guid isPermaLink="false">http://localhost/ticket/1670</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1671: Publisher profile sysadmin authz</title>
                  <description>&lt;p&gt;
Super &lt;a class="closed ticket" href="http://localhost/ticket/1669" title="enhancement: [super] Publisher profile (closed: fixed)"&gt;#1669&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implement authz for sysadmins in publisher profile
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1671</link>
        <guid isPermaLink="false">http://localhost/ticket/1671</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1672: Publisher profile user authz</title>
                  <description>&lt;p&gt;
Super &lt;a class="closed ticket" href="http://localhost/ticket/1669" title="enhancement: [super] Publisher profile (closed: fixed)"&gt;#1669&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Authz for normal users in publisher profile as per sysadmin
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1672</link>
        <guid isPermaLink="false">http://localhost/ticket/1672</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1673: Add approval status field to groups</title>
                  <description>&lt;p&gt;
Super &lt;a class="closed ticket" href="http://localhost/ticket/1669" title="enhancement: [super] Publisher profile (closed: fixed)"&gt;#1669&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
As groups need to be authorised in some cases, particularly publisher profiles, we need a field to denote how this is managed.
&lt;/p&gt;
&lt;p&gt;
We should add an 'approval_status' field that will be used to denote its status.  By default this will be "approved" but this will allow us to override it with a "pending" or "denied" status.  The latter should also change the main status of the Group.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1673</link>
        <guid isPermaLink="false">http://localhost/ticket/1673</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1674: Test auth logic hooks for publisher profile</title>
                  <description>&lt;p&gt;
Super &lt;a class="closed ticket" href="http://localhost/ticket/1669" title="enhancement: [super] Publisher profile (closed: fixed)"&gt;#1669&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Test all of the new auth logic hooks for publisher profile to make sure they work as expected. Also make sure that we have a test to compare the naming of the core auth funcs with the profile hooks (so we can see what may have changed in one but not the other).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1674</link>
        <guid isPermaLink="false">http://localhost/ticket/1674</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1675: Publisher admin authz</title>
                  <description>&lt;p&gt;
Super &lt;a class="closed ticket" href="http://localhost/ticket/1669" title="enhancement: [super] Publisher profile (closed: fixed)"&gt;#1669&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Authz for the publisher admin (who has permission to administer the publisher group themselves).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1675</link>
        <guid isPermaLink="false">http://localhost/ticket/1675</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1676: Publisher editor authz</title>
                  <description>&lt;p&gt;
Super &lt;a class="closed ticket" href="http://localhost/ticket/1669" title="enhancement: [super] Publisher profile (closed: fixed)"&gt;#1669&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Editor authz for publisher groups need to be implemented and tested.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1676</link>
        <guid isPermaLink="false">http://localhost/ticket/1676</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1677: Make synchronous search the default behaviour</title>
                  <description>&lt;p&gt;
Right now you need to explicitly load the synchronous_search plugin in your ini file, when this is probably the behaviour that all users expect by default.
We could keep a config flag to deactivate it, but synchronous search should be the default behaviour.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1677</link>
        <guid isPermaLink="false">http://localhost/ticket/1677</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1678: Make synchronous search the default behaviour</title>
                  <description>&lt;p&gt;
Right now you need to explicitly load the synchronous_search plugin in your ini file, when this is probably the behaviour that all users expect by default.
We could keep a config flag to deactivate it, but synchronous search should be the default behaviour.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1678</link>
        <guid isPermaLink="false">http://localhost/ticket/1678</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1679: Default roles problem</title>
                  <description>&lt;p&gt;
The 'editor', 'anon_editor' and 'reader' roles are intended to have immutable actions. This was designed to prevent their names being subverted - e.g. an editor should always be able to edit! It also meant that when we add Actions (e.g. DELETE-PACKAGE) then it can be added sensibly to these roles in an upgrade just by changing the defaults table (ckan/model/authz.py).
&lt;/p&gt;
&lt;p&gt;
The problem is that this immutability is only enforced on 'db upgrade'. So you can happily change the editor role using the paster command and it works, right up until you do an upgrade and realise permissions are different.
&lt;/p&gt;
&lt;p&gt;
We should stop the paster commands being able to edit these roles. Or get rid of the immutability completely. Views?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1679</link>
        <guid isPermaLink="false">http://localhost/ticket/1679</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1680: Group refactor top level element</title>
                  <description>&lt;p&gt;
The new group refactor allows for a hierarchy of groups where each group has a type - to be able to implement a tree of groups.
&lt;/p&gt;
&lt;p&gt;
It will need a flag within the group to denote that it is a top level group, to circumvent the need to determine whether the group is a child of a parent node (for a specific use case - a publisher representing the department that only contains publishers).
&lt;/p&gt;
&lt;p&gt;
Suggest 'is_top_level'
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1680</link>
        <guid isPermaLink="false">http://localhost/ticket/1680</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1681: Core storage document</title>
                  <description>&lt;p&gt;
Document all of the changes and usage for &lt;a class="closed ticket" href="http://localhost/ticket/1574" title="enhancement: [super] Storage changes including automated save to Webstore (closed: fixed)"&gt;#1574&lt;/a&gt; so that we can mark it 'done done'.
&lt;/p&gt;
&lt;p&gt;
Make sure we document any setup issues/processes and the settings.py setup required for CKAN so that Mark can announce next week and it should be easily deployable/testable.
&lt;/p&gt;
&lt;p&gt;
Internal (perhaps in README somewhere or wiki): how does process work, where does data end up and in what order etc
&lt;/p&gt;
&lt;p&gt;
External: here's how to configure it and here's what you get ... (goes in main sphinx docs)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1681</link>
        <guid isPermaLink="false">http://localhost/ticket/1681</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1682: [super] Translatability for EC</title>
                  <description>&lt;p&gt;
We need to be able to translate:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;EC extension (templates, form)
&lt;ul&gt;&lt;li&gt;Currently the pot file is just for CKAN core. New pot file for CKAN core and this extension? Or separate ones for extensions?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Field values in taxonomy (e.g. country names - Eurovoc)
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1665" title="task: Begin doing research into eurovoc (closed: fixed)"&gt;#1665&lt;/a&gt; Research into Eurovoc
&lt;/li&gt;&lt;li&gt;Display Taxonomy in different languages
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Field values not in taxonomy (e.g. title &amp;amp; description)
&lt;ul&gt;&lt;li&gt;Use extra fields e.g. _i18n_title_fr = Le data.
&lt;/li&gt;&lt;li&gt;(If lots of fields would need translating then would consider having a new package for each language, linked together with &lt;a class="missing wiki"&gt;PackageRelationships?&lt;/a&gt;. But I think it is just title and description (resource description etc. are so minor, not worth translating?), so using extra field better.)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Timescale to complete this - &lt;a class="missing wiki"&gt;Mar/Apr?&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Related work to interface with:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Eurovoc - Sean
&lt;/li&gt;&lt;li&gt;i18n in search index - Adria
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1682</link>
        <guid isPermaLink="false">http://localhost/ticket/1682</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1683: Dataset search results - last item out of order</title>
                  <description>&lt;p&gt;
On each page of package search results, all the items are neatly sorted apart from the last item of the page. SOLR gets the sorting of the results incorrect.
&lt;/p&gt;
&lt;p&gt;
This is a known issue: &lt;a class="ext-link" href="https://issues.apache.org/jira/browse/SOLR-1777"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://issues.apache.org/jira/browse/SOLR-1777&lt;/a&gt; affecting SOLR 1.4 only (which comes with Ubuntu 10.04)
&lt;/p&gt;
&lt;p&gt;
It is highlighted in CKAN test ckan/tests/functional/test_pagination.py:TestPaginationPackage of commit 39096ed54bda86d043521b08b2e14fc5e283a0ff which fails most of the time it is run (passes intermittently).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1683</link>
        <guid isPermaLink="false">http://localhost/ticket/1683</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1684: Remove all config from ckanext-archiver</title>
                  <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>
        <link>http://localhost/ticket/1684</link>
        <guid isPermaLink="false">http://localhost/ticket/1684</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1685: Move archiver download function to core</title>
                  <description>&lt;p&gt;
Archiver is included in some places just for access to download(), we should move this to lib in core.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1685</link>
        <guid isPermaLink="false">http://localhost/ticket/1685</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1686: Add activity events for when a dataset is added to or removed from a group</title>
                  <description></description>
        <link>http://localhost/ticket/1686</link>
        <guid isPermaLink="false">http://localhost/ticket/1686</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1687: Deploy new storage changes from master to datahub</title>
                  <description>&lt;p&gt;
We need to deploy the new storage changes (and webstore) to thedatahub for further testing
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1687</link>
        <guid isPermaLink="false">http://localhost/ticket/1687</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1688: API for changing the permissions on an object</title>
                  <description>&lt;p&gt;
We need an API for changing the authorization (permissions) on a model object.
&lt;/p&gt;
&lt;p&gt;
This was neglected in &lt;a class="closed ticket" href="http://localhost/ticket/1253" title="enhancement: Authz refactor (closed: fixed)"&gt;#1253&lt;/a&gt; because of various changes to authz were looming. But six months later it still hasn't been done.
&lt;/p&gt;
&lt;p&gt;
Suggest this is just moving _add_user_object_role from ckan/lib/base.py to the logic layer, but no doubt it will be more complicated.
&lt;/p&gt;
&lt;p&gt;
Estimate: 3 days
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1688</link>
        <guid isPermaLink="false">http://localhost/ticket/1688</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1689: List deleted datasets in API</title>
                  <description>&lt;p&gt;
The admin extension allows deleted datasets to be viewed, but there is no equivalent in the API. The package_list API call filters to just 'state=active' datasets.
&lt;/p&gt;
&lt;p&gt;
'state' could be a parameter on the package_list call
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Easy to call and implement
&lt;/li&gt;&lt;li&gt;But getting permissions right for the different state values may not be easy - maybe a separate logic function is better?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1689</link>
        <guid isPermaLink="false">http://localhost/ticket/1689</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1690: Rename storage settings with the ckan prefix</title>
                  <description>&lt;p&gt;
Missed the ckan prefix on the storage settings names so this needs to be fixed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1690</link>
        <guid isPermaLink="false">http://localhost/ticket/1690</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1691: paster user create command takes password on command line</title>
                  <description>&lt;p&gt;
Needed to support automated deployment more easily.
&lt;/p&gt;
&lt;p&gt;
Est: 15m
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1691</link>
        <guid isPermaLink="false">http://localhost/ticket/1691</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1692: Add image attribute to Dataset and Group</title>
                  <description>&lt;p&gt;
Add image attribute for Dataset and Group which would be shown in prominent place.
&lt;/p&gt;
&lt;p&gt;
For dataset this could be a relevant image and for Group this would be more of a logo.
&lt;/p&gt;
&lt;p&gt;
I think this has very high value from a UX point of view.
&lt;/p&gt;
&lt;h2 id="Issues"&gt;Issues&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Do we need to support uploading and storing the image (or do users store elsewhere)
&lt;ul&gt;&lt;li&gt;Could use something like transloadit service
&lt;/li&gt;&lt;li&gt;Use our own storage facility with a reserved directory
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Do we need to do resizing etc?
&lt;ul&gt;&lt;li&gt;Maybe. Perhaps can prefer this in reasonably small size and then just size down in css for thumbnails etc.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1692</link>
        <guid isPermaLink="false">http://localhost/ticket/1692</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1693: register_pluggable_behaviour should not be in routing</title>
                  <description>&lt;p&gt;
We should try and move register_pluggable_behaviour into environment and out of routing as it is causing import issues when using simple search.
&lt;/p&gt;
&lt;p&gt;
These functions already take a map and so they should be fine any time after the call to make_map
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1693</link>
        <guid isPermaLink="false">http://localhost/ticket/1693</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1694: Add quick functional test(s) for activity streams HTML rendering</title>
                  <description>&lt;p&gt;
The activity streams feature is already thoroughly tested via the logic layer and API calls, but there needs to be a quick test of the rendering code, e.g. fetch a user's page (thus testing that ckan doesn't crash while rendering it) and then assert that the expected activity streams HTML is in the fetched HTML.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1694</link>
        <guid isPermaLink="false">http://localhost/ticket/1694</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1695: Relationships - improvements</title>
                  <description>&lt;p&gt;
Suggested by Richard Cyganiak in &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2012-January/001977.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2012-January/001977.html&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;new relationship type links_to / linked_from
&lt;ul&gt;&lt;li&gt;Maybe with extra 'count' property?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;creating a new relationship should be post to the relationship register, not the source entity.
&lt;/li&gt;&lt;li&gt;add missing doc about creating a new relationship
&lt;/li&gt;&lt;li&gt;'Model Formats' section seems to be missed out of the docs since release 1.4.2. See: &lt;a class="ext-link" href="http://readthedocs.org/docs/ckan/en/ckan-1.4.2/api/version2.html#model-formats"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://readthedocs.org/docs/ckan/en/ckan-1.4.2/api/version2.html#model-formats&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1695</link>
        <guid isPermaLink="false">http://localhost/ticket/1695</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1696: Maintain backwards compatibility with older way of creating custom forms</title>
                  <description>&lt;p&gt;
To maintain backwards compatibility, the package controller (new/edit) should check to see if the controller has a package_form variable defined, and if so render the form pointed to by this variable before calling the new self._package_form() function.
&lt;/p&gt;
&lt;p&gt;
This behaviour is now deprecated however.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1696</link>
        <guid isPermaLink="false">http://localhost/ticket/1696</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1697: A Configurable list of states for a Dataset</title>
                  <description>&lt;p&gt;
Currently have 'active' and 'deleted' suggest also:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;'draft'
&lt;/li&gt;&lt;li&gt;'hidden'
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
(Do we need both). Also write out workflows related to these.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1697</link>
        <guid isPermaLink="false">http://localhost/ticket/1697</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1698: [super] Tag Taxonomies</title>
                  <description>&lt;p&gt;
Add drupal-like "taxonomies" to CKAN.
&lt;/p&gt;
&lt;p&gt;
Etherpad with user stories, feature list, design and implementation discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://ckan.okfnpad.org/22"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/22&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Branch where this is being developed is feature-1698-tag-taxonomies:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckan/compare/master...feature-1698-tag-taxonomies"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/compare/master...feature-1698-tag-taxonomies&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Tickets related to this have &lt;a class="ext-link" href="http://trac.ckan.org/query?status=accepted&amp;amp;status=assigned&amp;amp;status=closed&amp;amp;status=new&amp;amp;status=reopened&amp;amp;group=owner&amp;amp;max=1000&amp;amp;order=milestone&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=keywords&amp;amp;keywords=~taxonomies"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;keyword taxonomies&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1698</link>
        <guid isPermaLink="false">http://localhost/ticket/1698</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1699: Setup Ckan on tenforce test server</title>
                  <description>&lt;p&gt;
Need to setup server in tenforce test server.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1699</link>
        <guid isPermaLink="false">http://localhost/ticket/1699</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1700: Document server setup for ckan server.</title>
                  <description>&lt;p&gt;
Document deployment on tenforce test server.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1700</link>
        <guid isPermaLink="false">http://localhost/ticket/1700</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1701: Normalize character encoding for ckan search.</title>
                  <description>&lt;p&gt;
Make sure accented characters are normalized when indexed and when searched for.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1701</link>
        <guid isPermaLink="false">http://localhost/ticket/1701</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1702: Normalize character encoding for ckan search.</title>
                  <description>&lt;p&gt;
Make sure accented characters are normalized when indexed and when searched for.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1702</link>
        <guid isPermaLink="false">http://localhost/ticket/1702</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1703: Make custom fields for ecportal form based on prototype metamodel</title>
                  <description>&lt;p&gt;
The prototype portal gave us a list of classifiers that are expected for the initial launch.  Add then to ckanext-ecportal.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1703</link>
        <guid isPermaLink="false">http://localhost/ticket/1703</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1704: Import test datasets from prototype into ckan.</title>
                  <description>&lt;p&gt;
Eurostat datasets mainly.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1704</link>
        <guid isPermaLink="false">http://localhost/ticket/1704</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1705: Implement Vocabularies domain model and API</title>
                  <description>&lt;p&gt;
Add Vocabulary domain class, add logic functions for creating, updating, listing, getting, deleting vocabularies, add tests.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1705</link>
        <guid isPermaLink="false">http://localhost/ticket/1705</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1706: Tag taxonomies package schema</title>
                  <description>&lt;p&gt;
Enable ckanext's to add new vocabularies to default_package_schema(), use the new vocabularies in templates for dataset view, create, edit pages, helper function for extensions to create a vocabulary schema for a given vocabulary name (must match a vocab already in the db) and add it to default package schema.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1706</link>
        <guid isPermaLink="false">http://localhost/ticket/1706</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1707: Over-long URLs in QA ext broken links list</title>
                  <description>&lt;p&gt;
From Mark on the ckan-dev list:
&lt;/p&gt;
&lt;p&gt;
In the table of broken links at
&amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/qa/dataset/broken_resource_links"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/qa/dataset/broken_resource_links&lt;/a&gt;&amp;gt;, the links as
printed should be abridged to a fixed length (but link to the full
URL). Otherwise the 'reason' column vanishes off the screen. Also a
table would probably be better since as things stand the 'reasons' are
not lined up
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1707</link>
        <guid isPermaLink="false">http://localhost/ticket/1707</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1708: SOLR configuration lost</title>
                  <description>&lt;p&gt;
The SOLR url, user and password defined in the CKAN config file are ignored and the default SOLR url is used.
&lt;/p&gt;
&lt;p&gt;
This causes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;"0 datasets" displayed on the home page
&lt;/li&gt;&lt;li&gt;Dataset searches result in 0 results and a small message "There was an error while searching". (Nothing about it in the logs)
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Toreproduce"&gt;To reproduce&lt;/h2&gt;
&lt;p&gt;
This bug is only visible if your SOLR instance is not at the default place. To quickly reproduce this problem, setup your machine as a SOLR multicore instance and run: "paster db clean &amp;amp;&amp;amp; paster create-test-data &amp;amp;&amp;amp; paster serve development.ini". It quits with the error: "solr.core.&lt;a class="missing wiki"&gt;SolrException?&lt;/a&gt;: HTTP code=400, reason=Missing solr core name in path"
&lt;/p&gt;
&lt;h2 id="Codeaffected"&gt;Code affected&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Does not affect any released versions (1.5.1 is clean).
&lt;/li&gt;&lt;li&gt;Introduced to master: &lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/627382e6ff575146da221efc50321a41152d8b0f"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/627382e6ff575146da221efc50321a41152d8b0f&lt;/a&gt; by Ross
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1708</link>
        <guid isPermaLink="false">http://localhost/ticket/1708</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1709: Simple_search fails with all packages</title>
                  <description>&lt;p&gt;
The home page always shows the total number of packages as 0, because the query is '*:*' and SQL search doesn't know how to handle it.
&lt;/p&gt;
&lt;p&gt;
Also, simple_search configuration is not documented.
&lt;/p&gt;
&lt;p&gt;
Also, no tests for sql search.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1709</link>
        <guid isPermaLink="false">http://localhost/ticket/1709</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1710: 'Announce' email list for thedatahub</title>
                  <description>&lt;p&gt;
We want to make email announcements to users of thedatahub.org.
&lt;/p&gt;
&lt;p&gt;
The most simple way to do this is to get a dump of the email addresses and subscribe/invite them to a mailman list.
&lt;/p&gt;
&lt;p&gt;
Different ways to do it:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;'paster dump-users-csv' creates a CSV file. Apache serves up the directory using password protection. Is this secure enough?
&lt;/li&gt;&lt;li&gt;CKAN admin pages provides a button to produce the CSV and download it. A config option may be necessary to enable this (disabled by default).
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Something more advanced in the future could be:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CKAN tells mailman about new subscribers using the mailman web interface. Could be brittle.
&lt;/li&gt;&lt;li&gt;Mailman doesn't have an Internet API, but it does have a python interface. So CKAN could tell mailman about new subscribers using a python proxy. There may be one out there, or maybe easy to do. But annoying to have to maintain another process running on machine.
&lt;/li&gt;&lt;li&gt;CKAN sends out the emails itself. A sysadmin is given a form. Users have an opt in/out option in their account. But receiving emails is a sensitive thing so it would need to be right first time, and there are several risks to this approach.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1710</link>
        <guid isPermaLink="false">http://localhost/ticket/1710</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1711: Resource validation page</title>
                  <description>&lt;ul&gt;&lt;li&gt;On the resources tab, there's a "Check Resources" button which, when clicked makes an ajax request
with the list of URLs entered by the user.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The server checka each link for errors and header information about the linked resource.  (Using
ckanext/archiver/tasks.py:link_checker()).
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The server returns a list of dicts (json), containing information about the linked resource, and
the client uses that to:
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;populate the format field of each resource
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
The (guessed) 'file_extension' populates the '&lt;span class="underline"&gt;format' field.  If it's 'htm' or 'html',
then we assume it's a listing page, and so don't populate the format field with 'htm' or
'html'.
&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;provide feedback if a URL appears to be invalid
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
If the URL doesn't appear to be a URL at all, or returns a HTTP error, or times-out, then
URL field is highlighted in red to indicate it's a bad URL.  A tooltip shows the
error message to the user.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[Optional] provide feedback if a URL appears to point to "Additional Information" - ie the
Resource should be entered under "Additional Resources", rather than "Timeseries" or
"Individual" datasets.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Analysis and further description on etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/dgu-package-form"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/dgu-package-form&lt;/a&gt;? [Section I]
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1711</link>
        <guid isPermaLink="false">http://localhost/ticket/1711</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1712: DGU /data page</title>
                  <description>&lt;p&gt;
CKAN provides the /data page page of data.gov.uk
&lt;/p&gt;
&lt;p&gt;
Breakdown of tasks:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[x] Analysis / refinement of spec.
&lt;/li&gt;&lt;li&gt;[x] Log-in / register as publisher
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
(Waiting on publisher form)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[x] Population of "browse by publisher"
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
list groups ordered by most datasets
(Waiting on publisher integration)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[ ] &lt;del&gt;Browse by nation&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;[ ] &lt;del&gt;Featured datasets&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Now a possible integration point with drupal
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] Tag cloud
&lt;/li&gt;&lt;li&gt;[X] Developers section
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1712</link>
        <guid isPermaLink="false">http://localhost/ticket/1712</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1713: DGU dataset search page</title>
                  <description>&lt;p&gt;
Search results page of DGU.
&lt;/p&gt;
&lt;p&gt;
Breakdown:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[X] ensure faceting by group (publisher) works
[X] allow faceting by UKLP dataset type
[X] allow faceting by INSPIRE
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/1713</link>
        <guid isPermaLink="false">http://localhost/ticket/1713</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1714: DGU dataset view page</title>
                  <description>&lt;p&gt;
Dataset read page for DGU
&lt;/p&gt;
&lt;p&gt;
Breakdown:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[X] Fix missing title
&lt;/li&gt;&lt;li&gt;[X] Links to the social media stuff
&lt;ul&gt;&lt;li&gt;"Share your app"
&lt;/li&gt;&lt;li&gt;"Share your idea"
&lt;/li&gt;&lt;li&gt;"Request new data"
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;[ ] &lt;del&gt;Presentation of additional information should be broken into sections&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Content is there.  Don't do anything until theming/design work is undertaken.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[ ] &lt;del&gt;"More like this": links to similar datasets.&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Dropping
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[N] &lt;del&gt;Stars&lt;/del&gt; (I think these are being removed)
&lt;/li&gt;&lt;li&gt;[ ] &lt;del&gt;Comments&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Possible integration point with Drupal.  Needs it own ticket.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;[X] Give feedback to department
&lt;/li&gt;&lt;li&gt;[X] Tidy up the QA stars
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1714</link>
        <guid isPermaLink="false">http://localhost/ticket/1714</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1715: Search index multilingual</title>
                  <description>&lt;p&gt;
Need to make solr schema work for many languages. Get stopwords and choose correct analysis for each.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1715</link>
        <guid isPermaLink="false">http://localhost/ticket/1715</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1716: move or change save warning on edit dataset page [a:0.1d]</title>
                  <description>&lt;p&gt;
To allow navigation between sections to still work, also potentially rephrase to avoid confusion that you have to save every time to add a tag or resource and can't say add description, tag and resource in one go
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1716</link>
        <guid isPermaLink="false">http://localhost/ticket/1716</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#1717: [super] Search UX improvements</title>
                  <description>&lt;ol&gt;&lt;li&gt;Make it possible to search by tag (e.g. by typing tag:csv into the search bar and clicking enter, it should add the 'csv' tag facet to the search)
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Rename and standardise the list of format tags, on search page this should also be called 'Format' instead of 'res_format' (in the right hand side bar on search page).
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Make it possible to view full list of tags, formats and groups by clicking on the name. From here you should be table to click on a classification and go back to a search page faceted by that classification. E.g. from search page, click on 'tags', on tag page click on 'london' or whatever, and be navigated back to search page with search within 'london' tag only.  Or y'know, a better way of doing it.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;More standard classifications, such as 'Location' and 'Theme' - like on publicdata.eu
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;Blue search button should be displayed in line with the search bar, not underneath
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="6"&gt;&lt;li&gt;Datasets should be displayed in order of most viewed or downloaded instead of alphabetically. For alphabetic search we could consider adding a way to facet by first letter of dataset name
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/1717</link>
        <guid isPermaLink="false">http://localhost/ticket/1717</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1718: Deprecated JS properties used</title>
                  <description>&lt;p&gt;
I get this warning when viewing the home page:
&lt;/p&gt;
&lt;pre class="wiki"&gt;event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.
&lt;/pre&gt;&lt;p&gt;
CKAN: latest master
Browser: Chrome Ubuntu
&lt;/p&gt;
&lt;p&gt;
Minor, but worth checking?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1718</link>
        <guid isPermaLink="false">http://localhost/ticket/1718</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1719: Broken links for non-Gravatar use icons - 0.25d</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
e.g. &lt;a class="ext-link" href="http://thedatahub.org/user"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/user&lt;/a&gt; The users with Gravatar have their nice user icons, but the majority of users (without Gravatars) have 'broken link' symbols. Same problem wherever users are shown, such as the dataset history pages.
&lt;/p&gt;
&lt;p&gt;
Broken on 1.5.2b - currently on thedatahub.org.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1719</link>
        <guid isPermaLink="false">http://localhost/ticket/1719</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1720: Add converter functions to convert tags (with a given taxonomy) to/from tags field</title>
                  <description>&lt;p&gt;
Part of &lt;a class="closed ticket" href="http://localhost/ticket/1698" title="enhancement: [super] Tag Taxonomies (closed: fixed)"&gt;#1698&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1720</link>
        <guid isPermaLink="false">http://localhost/ticket/1720</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1721: Tag taxonomies table migration</title>
                  <description></description>
        <link>http://localhost/ticket/1721</link>
        <guid isPermaLink="false">http://localhost/ticket/1721</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1722: Update the package model for vocabularies</title>
                  <description>&lt;p&gt;
See the etherpad for notes: &lt;a class="ext-link" href="http://ckan.okfnpad.org/22"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/22&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1722</link>
        <guid isPermaLink="false">http://localhost/ticket/1722</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1723: Update tests for taxonomies</title>
                  <description>&lt;p&gt;
In the tag-taxonomies branch tags now (optionally) belong to vocabularies and where tags previously had unique names, a CKAN instance can now have two tags with the same name as long as they belong to different vocabularies. The tests for the tags model should probably be updated to reflect this.
&lt;/p&gt;
&lt;p&gt;
Other tests might also need to be updated.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1723</link>
        <guid isPermaLink="false">http://localhost/ticket/1723</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1724: Update logic action functions for vocabularies</title>
                  <description>&lt;p&gt;
&lt;tt&gt;ckan/logic/action/get.py:tag_list()&lt;/tt&gt;
Currently (I think) just returns all tags in the CKAN instance that the user has access to.
Needs an optional argument to get only tags from a particular vocabulary?
When called with no argument, should only return free tags?
Also add an optional dataset argument, so you can get tags for a given dataset and/or vocabulary?
&lt;/p&gt;
&lt;p&gt;
&lt;tt&gt;ckan/logic/action/get.py:tag_autocomplete()&lt;/tt&gt;
Add optional argument to get only tags for a given vocab? When called with no argument, should get only free tags?
&lt;/p&gt;
&lt;p&gt;
&lt;tt&gt;ckan/logic/action/get.py:tag_search()&lt;/tt&gt;
Again, optional arguments for restricting by vocabulary and/or dataset.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1724</link>
        <guid isPermaLink="false">http://localhost/ticket/1724</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1725: Tag autocompletion and commas don't mix</title>
                  <description>&lt;p&gt;
If you use tag autocompletion, it automatically adds a comma after the tag. This is fine if you are going to add another tag, but not fine if it is the last one. If you don't manually remove the final comma than you get form validation error "Tag string: Tag "" length is less than minimum 2"
&lt;/p&gt;
&lt;p&gt;
Affects only version 1.5.2a.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1725</link>
        <guid isPermaLink="false">http://localhost/ticket/1725</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1726: Update harvesting model</title>
                  <description>&lt;p&gt;
We need:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;"current" column in harvest_object
&lt;/li&gt;&lt;li&gt;"harvest_source_id" column in harvest_object, foreign key to harvest_source
&lt;/li&gt;&lt;li&gt;"title" column in harvest_source
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The extension should check on startup if the db needs updating and run the necessary scripts.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1726</link>
        <guid isPermaLink="false">http://localhost/ticket/1726</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1727: Add "current" property to harvest objects</title>
                  <description>&lt;p&gt;
Right now is quite difficult to get the most current version of a package via the harvest objects, and the queries involved are prone to errors.
A new "current" field will be added which will identify unequivocally the most recent harvested object.
Unfortunately this will involve some major changes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Model update (See &lt;a class="closed ticket" href="http://localhost/ticket/1726" title="enhancement: Update harvesting model (closed: fixed)"&gt;#1726&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;Update queries for getting harvest sources' datasets
&lt;/li&gt;&lt;li&gt;Update ckanext-csw queries for getting the objects
&lt;/li&gt;&lt;li&gt;Update inspire and ckan harvesters
&lt;/li&gt;&lt;li&gt;Document new field
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1727</link>
        <guid isPermaLink="false">http://localhost/ticket/1727</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1728: Update UKLP harvesters</title>
                  <description>&lt;p&gt;
Three small changes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Set Resource type to None instead of 'Undefined'
&lt;/li&gt;&lt;li&gt;Set extra 'UKLP' = True instead of 'INSPIRE' = True
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
These two changes will require manual update of the database.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Allow datasets to be updated if the old source is inactive, even if the metadata date hasn't changed:
&lt;/li&gt;&lt;/ul&gt;&lt;pre class="wiki"&gt;    if last_harvested_object.metadata_modified_date is None \
       or last_harvested_object.metadata_modified_date &amp;lt; self.obj.metadata_modified_date \
       or self.force_import \
       or last_harvested_object.metadata_modified_date == self.obj.metadata_modified_date and last_harvested_object.source.active is False:
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1728</link>
        <guid isPermaLink="false">http://localhost/ticket/1728</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1729: Helper function for extensions to add vocabularies to a ckan instance</title>
                  <description>&lt;p&gt;
Add a helper function to make it easy for extensions to add new vocabularies to default_package_schema(). The helper function should take the name or ID of a vocabulary (which should already exist in the db) and add the necessary key: [schema] entry to default_package_schema(), with the necessary validation, authorisation, transformation.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1729</link>
        <guid isPermaLink="false">http://localhost/ticket/1729</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1730: Form field for vocabularies</title>
                  <description>&lt;p&gt;
A function that takes a vocabulary name or ID as argument and returns a nice select box for selecting items from that given vocabulary. Meant to be used by form templates, to make it easy for them to integrate custom vocabularies. Could use &lt;a class="ext-link" href="http://harvesthq.github.com/chosen/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://harvesthq.github.com/chosen/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1730</link>
        <guid isPermaLink="false">http://localhost/ticket/1730</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1731: Publisher support for harvesting</title>
                  <description>&lt;p&gt;
Estimate: 4-5d
&lt;/p&gt;
&lt;p&gt;
Only sysadmins can manage harvest sources right now, we need to allow publishers to handle their own sources.
&lt;/p&gt;
&lt;p&gt;
We need to decide if there will be two different profiles on ckanext-harvest, the current one with only sysadmins allowed to manage the harvesting and a new one supporting publishers (ckan core can be configured to not use the publisher model)
&lt;/p&gt;
&lt;p&gt;
Tasks include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Auth checks on the different controller actions (and the command line interface?)
&lt;/li&gt;&lt;li&gt;Modify the index page to just show sources the logged user has permissions on.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
(Talk with Ross about the specific functions to use)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Create/edit form to show a dropdown with the user available publishers.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1731</link>
        <guid isPermaLink="false">http://localhost/ticket/1731</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1732: Update CKAN's search for taxonomies</title>
                  <description>&lt;p&gt;
Initially we'll just add all tags from all vocabularies into the existing tags search facet (this should happen automatically). Later we want to enable templates to use separate search facets for different vocabularies.
&lt;/p&gt;
&lt;p&gt;
Also need to make sure that search terms are matched against the texts of the tag names themselves (should happen already) and maybe also against the texts of the vocabulary names?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1732</link>
        <guid isPermaLink="false">http://localhost/ticket/1732</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1733: Delete (inactivate) harvest sources</title>
                  <description>&lt;p&gt;
Right now harvest sources can be inactivated (only via the cli), but we need to make sure:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Expose this on the web interface (only for sysadmins, see &lt;a class="closed ticket" href="http://localhost/ticket/1731" title="enhancement: Publisher support for harvesting (closed: fixed)"&gt;#1731&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;Inactive sources are not shown in the web interface
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also for deleted packages:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
a) Deleted packages get state="deleted" (not actually purged) so they are hidden on front end
ACTION: need a button on the front end for "Delete" for sysamdins
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Done in &lt;a class="closed ticket" href="http://localhost/ticket/1425" title="enhancement: Dataset delete button (closed: fixed)"&gt;#1425&lt;/a&gt;. Not sure if the button is only shown to sysadmins.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
b) No undelete: If you reharvest a deleted package, it remains deleted
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;Publisher should create a new record with new identifier and same/different content as applicable.
&lt;/li&gt;&lt;li&gt;If publisher reharvests, a deleted document they get a error and are told to create new identifier for their updated.
&lt;/li&gt;&lt;li&gt;You won't get the state where a package is updated in its deleted state
&lt;/li&gt;&lt;li&gt;If they change the ID and reharvest, a new record appears on DGU.
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;p&gt;
c) Update CSW interface so that export doesn't export deleted packages
d) Check geospatial search doesn't search deleted pacakges
e) Check deleted packages don't appear in harvest source details, or in the counts or anywhere in the harvest interface or API.
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/1733</link>
        <guid isPermaLink="false">http://localhost/ticket/1733</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1734: [super] Updates on harvesting for UKLP</title>
                  <description>&lt;p&gt;
Some changes are needed in ckanext-harvest to support the new piece of work in the UKLP harvesters, mainly related to the deletion of existing sources.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1726" title="enhancement: Update harvesting model (closed: fixed)"&gt;#1726&lt;/a&gt; Update harvesting model
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1727" title="enhancement: Add &amp;#34;current&amp;#34; property to harvest objects (closed: fixed)"&gt;#1727&lt;/a&gt; Add "current" field to harvesting objects
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1728" title="enhancement: Update UKLP harvesters (closed: fixed)"&gt;#1728&lt;/a&gt; Update UKLP harvesters
&lt;/li&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1733" title="enhancement: Delete (inactivate) harvest sources (closed: fixed)"&gt;#1733&lt;/a&gt; Delete (inactivate) harvest sources
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
At some point we also want to support a publisher model for the harvesting:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="closed ticket" href="http://localhost/ticket/1731" title="enhancement: Publisher support for harvesting (closed: fixed)"&gt;#1731&lt;/a&gt; Publisher support for harvesting
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1734</link>
        <guid isPermaLink="false">http://localhost/ticket/1734</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1735: "Unsaved changes" warning briefly when you click "Save"</title>
                  <description>&lt;p&gt;
Super ticket &lt;a class="closed ticket" href="http://localhost/ticket/1744" title="enhancement: UX improvements to dataset edit as of Dec 2011 (closed: fixed)"&gt;#1744&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
If you edit a dataset, simply add a tag and click on "Save" then you get the message "You have unsaved changed. Make sure to click 'Save Changes' below before leaving this page." inserted whilst the submission takes place. (This is because the click moves focus away from the tag field). This (reasonably common) edge-case could usefully be squashed.
&lt;/p&gt;
&lt;p&gt;
Also note typo: "unsaved changed"
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1735</link>
        <guid isPermaLink="false">http://localhost/ticket/1735</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1736: [Super] Multilingual Metadata</title>
                  <description>&lt;p&gt;
Translate all areas of metatdata to selected language. This includes finding datasets in all languages.
&lt;/p&gt;
&lt;p&gt;
Multilingal Metadata:
Tasks:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add translation table. 2d
&lt;/li&gt;&lt;li&gt;Api to add translation 3d
&lt;/li&gt;&lt;li&gt;Add extention point to dataset view. 3d
&lt;/li&gt;&lt;li&gt;Add extension point to search index to add translations. 2d.
&lt;/li&gt;&lt;li&gt;Add all eurovoc data to translations. 1d.
&lt;/li&gt;&lt;li&gt;Make multilingual solr schema 2d &lt;a class="closed ticket" href="http://localhost/ticket/1715" title="enhancement: Search index multilingual (closed: fixed)"&gt;#1715&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1736</link>
        <guid isPermaLink="false">http://localhost/ticket/1736</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1737: Expose solr-based search API</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="new ticket" href="http://localhost/ticket/1745" title="enhancement: Dataset search UX improvements as of Jan 2012 (new)"&gt;#1745&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Convert /api/rest/dataset to be search query (i.e. take arguments in ?....)
&lt;/li&gt;&lt;li&gt;Directly expose solr though may want to override limit. See &lt;a class="ext-link" href="https://github.com/okfn/openspending/blob/master/openspending/ui/controllers/api.py#L48"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/openspending/blob/master/openspending/ui/controllers/api.py#L48&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Required for some improvements to UX (such as autocomplete and better search).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1737</link>
        <guid isPermaLink="false">http://localhost/ticket/1737</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1738: Add extension point to search index, so can modify dataset dict before index.</title>
                  <description>&lt;p&gt;
It is useful for extensions to add or change items that go into the search index. Add an extension point for this.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1738</link>
        <guid isPermaLink="false">http://localhost/ticket/1738</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1739: Fix issues where tests where not run.</title>
                  <description>&lt;p&gt;
Test failures in master due to tom and rufus not running tests. 0.3d.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1739</link>
        <guid isPermaLink="false">http://localhost/ticket/1739</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1740: Get rid of `from module import ...`</title>
                  <description>&lt;p&gt;
It's really bad to do &lt;tt&gt;from module import *&lt;/tt&gt; and CKAN has a lot of them. I suggest a three-pronged approach:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Don't add any more of them.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;When you're programming if you see an easy opportunity to remove one then do so.
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;At some point we should task someone to go through the code and remove them all (which is what this ticket is for), but this will be a big job and may break things.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
We should also get rid of most or all of the &lt;tt&gt;from module import foo&lt;/tt&gt; and &lt;tt&gt;from module import foo, bar&lt;/tt&gt; statements.
&lt;/p&gt;
&lt;p&gt;
I think the right thing to do is just &lt;tt&gt;import module&lt;/tt&gt; and then use &lt;tt&gt;module.foo&lt;/tt&gt; in your code. But if you find yourself doing &lt;tt&gt;module.foo.bar&lt;/tt&gt; then you may have a code smell.
&lt;/p&gt;
&lt;p&gt;
See: &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>
        <link>http://localhost/ticket/1740</link>
        <guid isPermaLink="false">http://localhost/ticket/1740</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1741: Add extention point to dataset view.</title>
                  <description>&lt;p&gt;
Need to add extension point to change the data_dict that passed to the dataset view template. This extensions modify what data gets shown.
&lt;/p&gt;
&lt;p&gt;
Tasks include:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Fix up data_dict and templates so that the pkg objects do not get used in the templates.  This is to assure that all data passed is modifiable. (2d) (complete)
&lt;/li&gt;&lt;li&gt;Add extension point to Ipackage controller (1d)
&lt;/li&gt;&lt;li&gt;Test (1d)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1741</link>
        <guid isPermaLink="false">http://localhost/ticket/1741</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1742: Naming of a new package/group can clash with a route</title>
                  <description>&lt;p&gt;
It is possible to create a group or a dataset called new, or edit, which will then be inaccessible as it is blocked by the existing routes with those names.
&lt;/p&gt;
&lt;p&gt;
We should maintain a list of invalid names in the verification that happens behind the scenes in the UI.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1742</link>
        <guid isPermaLink="false">http://localhost/ticket/1742</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1743: Activity streams still link to deleted things</title>
                  <description>&lt;p&gt;
For example, after deleting a dataset old activity stream events will still hyperlink to that dataset.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1743</link>
        <guid isPermaLink="false">http://localhost/ticket/1743</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1744: UX improvements to dataset edit as of Dec 2011</title>
                  <description>&lt;p&gt;
Super ticket: &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Show edit summary form again, at least on edit pages (and prefill it for create to something sensible like: Creating dataset {title} {name})&lt;/del&gt; [Done &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;]
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Fix drop down for resource types in resource add/edit to limit to fixed set of options (as per &lt;a class="ext-link" href="http://wiki.ckan.org/Domain_Model/Resource"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Domain_Model/Resource&lt;/a&gt;)&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;See also &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-December/001860.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-December/001860.html&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Allow reordering of resources (or: and this is somewhat more complex but possibly simpler: allow editing of a resource_order field and we use that to sort resources (this is more like wordpress page_order -- these two options could become the same if we just hijack the existing position field on the join table and get rid of ordereredlist extension))&lt;/del&gt; [DONE &lt;a class="closed ticket" href="http://localhost/ticket/1506" title="enhancement: [super] UX improvements to dataset edit, create and search + group + user ... (closed: fixed)"&gt;#1506&lt;/a&gt;]
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Radically simplify set of licenses&lt;/del&gt; [DONE &lt;a class="closed ticket" href="http://localhost/ticket/1359" title="enhancement: Radically simplify standard list of licenses (closed: fixed)"&gt;#1359&lt;/a&gt;]
&lt;/li&gt;&lt;li&gt;&lt;del&gt;"Unsaved changes" warning briefly when you click "Save" &lt;a class="closed ticket" href="http://localhost/ticket/1735" title="enhancement: &amp;#34;Unsaved changes&amp;#34; warning briefly when you click &amp;#34;Save&amp;#34; (closed: wontfix)"&gt;#1735&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;"Unsaved changed" typo on dataset edit page&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1744</link>
        <guid isPermaLink="false">http://localhost/ticket/1744</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1745: Dataset search UX improvements as of Jan 2012</title>
                  <description>&lt;p&gt;
Changes to make search both more exploratory and more satisfying to use
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Search query build - &lt;a class="closed ticket" href="http://localhost/ticket/1603" title="enhancement: Search query builder (closed: duplicate)"&gt;#1603&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Ability to add new facet fields "live"
&lt;/li&gt;&lt;li&gt;That is add fields which then contain faceted options (a bit like data.hri.fi)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;(??) Autocomplete  / drop down on search (i.e. search while you type)
&lt;ul&gt;&lt;li&gt;Dubious about value / cost ratio here
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Probably would involve to pure JS and HTML implementation.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
Probably require
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; API changes to expose solr style API directly &lt;a class="closed ticket" href="http://localhost/ticket/1737" title="enhancement: Expose solr-based search API (closed: fixed)"&gt;#1737&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1745</link>
        <guid isPermaLink="false">http://localhost/ticket/1745</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1746: Activity streams pagination</title>
                  <description>&lt;p&gt;
Currently user, package and group activity streams only return the most recent 15 activities, even though all activities are kept in the db. Do we want to add pagination - to both the API and the HTML pages - to support retrieving older activities?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1746</link>
        <guid isPermaLink="false">http://localhost/ticket/1746</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1747: Expire old activities</title>
                  <description>&lt;p&gt;
Currently the activity streams database tables just get longer and longer over time. Do we want to eventually delete the oldest activities, to keep the length of the table within limits?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1747</link>
        <guid isPermaLink="false">http://localhost/ticket/1747</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1748: Make activity streams conform to http://activitystrea.ms/ standard</title>
                  <description>&lt;p&gt;
At the very least we should make our JSON output conform to their spec:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://activitystrea.ms/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://activitystrea.ms/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1748</link>
        <guid isPermaLink="false">http://localhost/ticket/1748</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1749: Allow creating activity details through API</title>
                  <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>
        <link>http://localhost/ticket/1749</link>
        <guid isPermaLink="false">http://localhost/ticket/1749</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1750: Move ckan/lib/activity.py into the model</title>
                  <description>&lt;p&gt;
Move ckan/lib/activity.py moved to into the model - say ckan/model/activity_extension.py, because it's so tightly knit with the model code, whereas most of the lib code is used in the controllers.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1750</link>
        <guid isPermaLink="false">http://localhost/ticket/1750</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1751: DGU dataset form: collection of updates from feedback</title>
                  <description>&lt;p&gt;
A collection of improvements to the dataset creation/edition form (feedback form DGU).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[x] validation error formatting
&lt;/li&gt;&lt;li&gt;[x] geograohic coverage: add local authority
&lt;/li&gt;&lt;li&gt;[x] resource format field
&lt;/li&gt;&lt;li&gt;[x] resource format auto-complete
&lt;/li&gt;&lt;li&gt;[x] renamed data tab -&amp;gt; files tab
&lt;/li&gt;&lt;li&gt;[x] integrate Adris'a INSPIRE changeset, and migration scripts as part of build
&lt;/li&gt;&lt;li&gt;[x] remove "discontinued" from the update frequency
&lt;/li&gt;&lt;li&gt;[x] disable the disabling of save
&lt;/li&gt;&lt;li&gt;[x] Remove ability to edit url on the edit-form (and remove "url not available")
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1751</link>
        <guid isPermaLink="false">http://localhost/ticket/1751</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1752: DGU: collection of updates from feedback</title>
                  <description>&lt;ul&gt;&lt;li&gt;[x] hide black stars on the data-view page
&lt;/li&gt;&lt;li&gt;[x] Edit on view form (if you have the right permission)
&lt;/li&gt;&lt;li&gt;[x] RES_FORMAT ~&amp;gt; Resource Format
&lt;/li&gt;&lt;li&gt;[x] Map Based Search -&amp;gt; UK Location Map Based Search
&lt;/li&gt;&lt;li&gt;[x] Note at the top right expalining that these are seach filters (if they are) -&amp;gt; this requires "add a dataset" and "other access" to be moved to a different place (just some whitespace is fine)
&lt;/li&gt;&lt;li&gt;[x] Display publisher and provider (UKLP records only).
&lt;/li&gt;&lt;li&gt;[x] analysis of filter by OGL / non-OGL
&lt;/li&gt;&lt;li&gt;[x] provide /dump on the build server
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1752</link>
        <guid isPermaLink="false">http://localhost/ticket/1752</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1753: Last fixes of Webstorer + Deploy on the DataHub</title>
                  <description>&lt;ul&gt;&lt;li&gt;Upgrade to new &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; system
&lt;/li&gt;&lt;li&gt;Better support for unicode etc
&lt;/li&gt;&lt;li&gt;? Rename to &lt;a class="missing wiki"&gt;DataStorer?&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Deploy
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1753</link>
        <guid isPermaLink="false">http://localhost/ticket/1753</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1754: Add activities for extras</title>
                  <description>&lt;p&gt;
When an extra is added to or removed from a dataset or is updated, an activity should go in the dataset's and user's activity streams.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1754</link>
        <guid isPermaLink="false">http://localhost/ticket/1754</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1755: DGU Alpha paged view of publishers</title>
                  <description>&lt;p&gt;
The publisher index page should show an alpha paged list of publishers.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1755</link>
        <guid isPermaLink="false">http://localhost/ticket/1755</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1756: DGU Treeview of hierarchical publishers</title>
                  <description>&lt;p&gt;
The publisher index page should show a treeview of the publishers within the system. Probably behind a tab.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1756</link>
        <guid isPermaLink="false">http://localhost/ticket/1756</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1757: DGU Hide administrators from public view</title>
                  <description>&lt;p&gt;
On publisher view page - hide administrators from public view - only logged in admins of group should see them.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1757</link>
        <guid isPermaLink="false">http://localhost/ticket/1757</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1758: DGU Check user management auth</title>
                  <description>&lt;p&gt;
Ensure publisher edit page only allows admins to manage users. &lt;a class="closed ticket" href="http://localhost/ticket/1675" title="enhancement: Publisher admin authz (closed: fixed)"&gt;#1675&lt;/a&gt; is related.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1758</link>
        <guid isPermaLink="false">http://localhost/ticket/1758</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1759: DGU Create publisher form access</title>
                  <description>&lt;p&gt;
Only sysadmin can access create publisher form.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1759</link>
        <guid isPermaLink="false">http://localhost/ticket/1759</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1760: DGU Extract current publisher hierarchy</title>
                  <description>&lt;blockquote&gt;
&lt;p&gt;
Get access to live Drupal MySQL database to get latest publisher list for migration.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Write a one-off script for import of the data.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1760</link>
        <guid isPermaLink="false">http://localhost/ticket/1760</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1761: DGU History visibility</title>
                  <description>&lt;p&gt;
History on user profile should only be visible to a user who is a member of at least one group.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1761</link>
        <guid isPermaLink="false">http://localhost/ticket/1761</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1762: DGU Join publisher form</title>
                  <description>&lt;p&gt;
A new form for create publisher -&amp;gt; Add publisher access to your account'
New wizard
Autocomplete publisher name if linked from publisher view.
Email address used to publish should be activated/validated on first use. Original email still used to log in.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1762</link>
        <guid isPermaLink="false">http://localhost/ticket/1762</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1763: Add some simple model-level tests for activity streams</title>
                  <description></description>
        <link>http://localhost/ticket/1763</link>
        <guid isPermaLink="false">http://localhost/ticket/1763</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1764: Move activity streams API tests into tests/logic</title>
                  <description>&lt;p&gt;
Which is where the other API tests have now been moved.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1764</link>
        <guid isPermaLink="false">http://localhost/ticket/1764</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1765: Enhance Tag and Package models with vocabularies</title>
                  <description>&lt;p&gt;
Add a vocabulary column to the tags database table, change tags to have unique (tag_name, vocabulary_id) instrad of unique tag name, update methods in the Tag and Package classes to deal with the fact that tags may belong to vocabularies and that tag names are no longer unique.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1765</link>
        <guid isPermaLink="false">http://localhost/ticket/1765</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1766: Update and deploy EC Portal theme</title>
                  <description></description>
        <link>http://localhost/ticket/1766</link>
        <guid isPermaLink="false">http://localhost/ticket/1766</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1767: Write end-to-end functional tests for tag vocabularies</title>
                  <description>&lt;p&gt;
Need to test:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;API call to create new vocab
&lt;/li&gt;&lt;li&gt;API call to add tags with a given vocab
&lt;/li&gt;&lt;li&gt;API call to update tags
&lt;/li&gt;&lt;li&gt;Dummy plugin to test that updating tags works via WUI
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1767</link>
        <guid isPermaLink="false">http://localhost/ticket/1767</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1768: DGU: 7a. Public Publisher Dashboard (including QA Work and notifications) MUST PHASE 1</title>
                  <description></description>
        <link>http://localhost/ticket/1768</link>
        <guid isPermaLink="false">http://localhost/ticket/1768</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1769: 6. Publisher Registration Improvements MUST PHASE 1</title>
                  <description></description>
        <link>http://localhost/ticket/1769</link>
        <guid isPermaLink="false">http://localhost/ticket/1769</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1770: 3. Themes/Taxonomy as well as tags WONT PHASE 2</title>
                  <description></description>
        <link>http://localhost/ticket/1770</link>
        <guid isPermaLink="false">http://localhost/ticket/1770</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1771: 32. Browse by Tags PHASE 1 MUST</title>
                  <description></description>
        <link>http://localhost/ticket/1771</link>
        <guid isPermaLink="false">http://localhost/ticket/1771</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1772: 13. Provider labelling MUST PHASE 1 [UKLP #14 MUST]</title>
                  <description></description>
        <link>http://localhost/ticket/1772</link>
        <guid isPermaLink="false">http://localhost/ticket/1772</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1773: 17. Filter “UK Location Records” MUST PHASE 1 [UKLP #21 SHOULD]</title>
                  <description></description>
        <link>http://localhost/ticket/1773</link>
        <guid isPermaLink="false">http://localhost/ticket/1773</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#1774: 22. Mixed Licenses MUST PHASE 2</title>
                  <description></description>
        <link>http://localhost/ticket/1774</link>
        <guid isPermaLink="false">http://localhost/ticket/1774</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1775: Enable adding many tags at once to controlled vocabularies via API</title>
                  <description>&lt;p&gt;
We already have API calls for adding one tag or removing one tag at a time to/from a vocab. Want more convenient ways to add or remove many in one call, or just pass in a list of tags to completely replace a vocab's current list.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add tags_create() function that calls the existing tag_create() many times?
&lt;/li&gt;&lt;li&gt;Also tags_delete()?
&lt;/li&gt;&lt;li&gt;Or just let tag_create() and tag_delete() accept a list?
&lt;/li&gt;&lt;li&gt;Add tags argument to vocabulary_update() to pass in a list of tags to replace the vocab's current tags? (But it should still be possible to simply rename a vocab without changing its tags and without having to pass in the tag list.)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1775</link>
        <guid isPermaLink="false">http://localhost/ticket/1775</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1776: Granular editing of vocabulary tags</title>
                  <description>&lt;p&gt;
Add API calls for adding one or more tags to and removing one or more tags from a vocabulary, without affecting the other tags in that vocabulary and without having to pass the full list of the vocabulary's tags.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1776</link>
        <guid isPermaLink="false">http://localhost/ticket/1776</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1777: Write about multilingual features for ec.</title>
                  <description>&lt;p&gt;
Basic description of multilingual features intended to be supported.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1777</link>
        <guid isPermaLink="false">http://localhost/ticket/1777</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1778: Replace classmethod's with module-level functions</title>
                  <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>
        <link>http://localhost/ticket/1778</link>
        <guid isPermaLink="false">http://localhost/ticket/1778</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1779: Add multilingual translation table.</title>
                  <description>&lt;p&gt;
A new table with 3 columns should be added. term, term_tranlastion, language_code.  This table will be used for all translations, including tags.  The table should have indexs on both the term and (term, language_code) combination.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1779</link>
        <guid isPermaLink="false">http://localhost/ticket/1779</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1780: Api to add translations.</title>
                  <description>&lt;p&gt;
Add api to translation to the term_translation table.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;add to logic 2d
&lt;/li&gt;&lt;li&gt;test 2d
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1780</link>
        <guid isPermaLink="false">http://localhost/ticket/1780</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1781: Api to add translations.</title>
                  <description>&lt;p&gt;
Add api to translation to the term_translation table.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;add to logic 2d
&lt;/li&gt;&lt;li&gt;test 1d
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1781</link>
        <guid isPermaLink="false">http://localhost/ticket/1781</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1782: Improvements to datasets page UX (Feb 2012)</title>
                  <description>&lt;ul&gt;&lt;li&gt;Relationships in sidebar [WONTFIX yet without some link to documentation or datastructure, something for me to render?]
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Icons for *types* of resources in resource list&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;List of 'Owners' (administrators) at top right of sidebar (a la group page)
&lt;ul&gt;&lt;li&gt;Much prefer owner to administrator ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1782</link>
        <guid isPermaLink="false">http://localhost/ticket/1782</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1783: Locale change exception when unicode in URL</title>
                  <description>&lt;p&gt;
If the current page URL has unicode in it (e.g. &lt;tt&gt;u'/tag/biocombust\xedveis'&lt;/tt&gt;) then I'm not sure how why it isn't more encoded, but we are seeing links such as &lt;tt&gt;http://beta.dados.gov.br/dados/locale?locale=hu&amp;amp;return_to=/dados/tag/biocombust%C3%ADveis&amp;amp;hash=7fd941b5ba1a28bc84406c4191bf07b45a42a251&lt;/tt&gt; which cause an exception when the foreign character is passed to ckan.lib.hash.get_message_hash().
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1783</link>
        <guid isPermaLink="false">http://localhost/ticket/1783</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1784: Links to renamed objects break</title>
                  <description>&lt;p&gt;
The HTML templates for some activity stream activities link to objects (packages, resources, etc.) by their names, e.g. /dataset/foo, but if the object has since been renamed then the link will be broken.
&lt;/p&gt;
&lt;p&gt;
Possible solutions are to use the object ID to find its current name at rendering time and link to that, or link to the object by ID rather than by name.
&lt;/p&gt;
&lt;p&gt;
Linking by ID is both simpler to implement and better. Links by ID are ugly, but they are permanent and don't break when an object is renamed. We should be using links by ID everywhere on CKAN, so that when third-party sites copy-paste our URLs and link to us, their links don't break later.
&lt;/p&gt;
&lt;p&gt;
Fixing this means fixing the dataset_link(), resource_link(), group_link() etc. functions in ckan/lib/helpers.py which will change the links everywhere in CKAN where those functions are used to link to objects (which should be everywhere where we link to an object).
&lt;/p&gt;
&lt;p&gt;
If we want to have nice looking by-name URLs and what them to be permanent, then we need to change CKAN so that objects cannot be renamed.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1784</link>
        <guid isPermaLink="false">http://localhost/ticket/1784</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1785: Replace 'Revisions' page with site-wide activity stream</title>
                  <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>
        <link>http://localhost/ticket/1785</link>
        <guid isPermaLink="false">http://localhost/ticket/1785</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>mirko.spasic@…</dc:creator>

                  <title>#1786: Relationships lost when editing package</title>
                  <description>&lt;p&gt;
If I have a relationship between two packages, and then I edit any property of one of them (Author email, for example), the relationship will automatically be lost.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1786</link>
        <guid isPermaLink="false">http://localhost/ticket/1786</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1787: [super] Improve RESTful API</title>
                  <description>&lt;ul&gt;&lt;li&gt;Lists of entities should be full URLs, rather than just the names
&lt;/li&gt;&lt;li&gt;Discoverability - /api/v3/rest should list the entity types that can be listed
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This could be v3 of the RESTful interface.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1787</link>
        <guid isPermaLink="false">http://localhost/ticket/1787</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#1788: IE7 compatibility problems</title>
                  <description>&lt;p&gt;
From Antonia Acuno, via Ira:
&lt;/p&gt;
&lt;p&gt;
It appears that the current layout for the datahub does not work in
IE7, which would mean a problem for us as most gov uses it and is one
of those we have to support...any views?
&lt;/p&gt;
&lt;p&gt;
Tested in several gov departments computers, so a common enough issue.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://imgur.com/ip4xa"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://imgur.com/ip4xa&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
From Rufus:
We haven't officially supported IE7 so far but can put engineering
effort into this if absolutely needed. I note that IE 7 is now 3y out
of date and is likely a security risk. Obviously this is something to
ask Antonio about.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1788</link>
        <guid isPermaLink="false">http://localhost/ticket/1788</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1789: Implement a tag_update() logic action function</title>
                  <description>&lt;p&gt;
So users can rename a tag and/or move it between vocabularies using the API.
&lt;/p&gt;
&lt;p&gt;
Currently we have create_tag() and delete_tag(), but if you were to 'update' a tag by deleting it and then recreating it all the datasets that had that tag will have lost it and you'll have to re-add it to them all.
&lt;/p&gt;
&lt;p&gt;
What should happen to datasets that have the tag, if the tag gets moved between vocabularies? All the datasets just keep the tag with the new vocabulary? This will become a problem if/when we support 'radio button'-style vocabularies (where each dataset can only have one tag from the vocabulary).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1789</link>
        <guid isPermaLink="false">http://localhost/ticket/1789</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1790: Click to delete tags, rather than have all existing tags in the tag text box</title>
                  <description>&lt;p&gt;
From Pablo:
&lt;/p&gt;
&lt;p&gt;
Editing the tags field is clumsy when there are too many tags. Could
show existing effectively as tags (like delicious), then allow clicks
to delete. New tags added via text box.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1790</link>
        <guid isPermaLink="false">http://localhost/ticket/1790</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1791: Changing locale on /dataset/new causes exception</title>
                  <description>&lt;p&gt;
When you are on the /dataset/new page and you try and change locale then you get a 500 error.
&lt;/p&gt;
&lt;p&gt;
This is because it adds the '&lt;span class="underline"&gt;cache' parameter, to ensure any proxy cache in the chain does not just send the cached page.
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
e.g.
&lt;a class="ext-link" href="http://127.0.0.1:5000/dataset/new?__cache=37713707"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://127.0.0.1:5000/dataset/new?__cache=37713707&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1791</link>
        <guid isPermaLink="false">http://localhost/ticket/1791</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1792: [super] api to use same validation and logic as wui forms.</title>
                  <description>&lt;p&gt;
The api currently uses the default validation schemas regardless of the form you specified on the front end.  There should be a way to post through the api using the same validation rules.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1792</link>
        <guid isPermaLink="false">http://localhost/ticket/1792</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1793: Publisher changes</title>
                  <description>&lt;p&gt;
Changes to publishers for customer
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1793</link>
        <guid isPermaLink="false">http://localhost/ticket/1793</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1794: Publisher changes</title>
                  <description>&lt;p&gt;
Changes to publishers for customer that would otherwise clutter up the master branch.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1794</link>
        <guid isPermaLink="false">http://localhost/ticket/1794</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1795: Add approval_status to Package (as for Group)</title>
                  <description>&lt;p&gt;
The Package model should have a approval_status as the Group model does.
See migration 049.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1795</link>
        <guid isPermaLink="false">http://localhost/ticket/1795</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1796: Get rid of lxml dependency</title>
                  <description>&lt;p&gt;
lxml is used in CKAN core in two places:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ckan/lib/helpers.py:239 Parsing Markdown and ensuring it is valid XML (i.e. tags close nicely so the HTML of the rest of the CKAN page is not disruptable).
&lt;/li&gt;&lt;li&gt;reading the SOLR config XML to determine what version it is.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Both of these could be done with xml.dom built into Python and would save us a sizeable and slightly problematic dependency.
&lt;/p&gt;
&lt;p&gt;
lxml is needed by these extensions: ckanext-inspire, ckanext-harvest, ckanext-csw &amp;amp; ckanext-wordpresser, so we'd have to add this to their requirements.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1796</link>
        <guid isPermaLink="false">http://localhost/ticket/1796</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1797: [super] Webstore v2 - Integrated and based on ElasticSearch</title>
                  <description>&lt;p&gt;
Main tasks:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Integrated seamlessly into CKAN (authorization etc)
&lt;/li&gt;&lt;li&gt;Based off &lt;a class="missing wiki"&gt;ElasticSearch?&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Etherpad: &lt;a class="ext-link" href="http://ckan.okfnpad.org/webstore"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/webstore&lt;/a&gt;
&lt;/p&gt;
&lt;h1 id="Tasks"&gt;Tasks&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;New API point (config + controller) [0.75d]&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;/api/data/{resource-id}
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Authorization [0.5d]&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Documentation [0.25d]&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Upgrade data viewer to use ES [0.5d]&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Convert webstorer to new setup - &lt;a class="ext-link" href="http://github.com/okfn/ckanext-webstorer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://github.com/okfn/ckanext-webstorer&lt;/a&gt; [1d] - &lt;a class="closed ticket" href="http://localhost/ticket/1753" title="enhancement: Last fixes of Webstorer + Deploy on the DataHub (closed: fixed)"&gt;#1753&lt;/a&gt;&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;See below
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;"Create &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; Resource" in Resource creation (??)
&lt;ul&gt;&lt;li&gt;Just creates a resource with blank url and datastore enabled (webstore_url non null)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Tick box to enable &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; in Resource edit form (for time being would just set webstore_url to any non-null/non-empty value)&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;Also need to use this info in &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; extension?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;del&gt;Create nice instructions on Resource page about using the &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Rename webstore -&amp;gt; datastore&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Deploy [0.5d]&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h1 id="Details"&gt;Details&lt;/h1&gt;
&lt;h2 id="LayoutonES"&gt;Layout on ES&lt;/h2&gt;
&lt;pre class="wiki"&gt;elasticsearch/{index}/{type-id}
index = ckan-{ckan-id}
type-id = resource-id (1)
&lt;/pre&gt;&lt;h2 id="Requestpath"&gt;Request path&lt;/h2&gt;
&lt;p&gt;
Req =&amp;gt; Nginx =&amp;gt; CKAN App (authz) =&amp;gt; req to elasticsearch and returns results
&lt;/p&gt;
&lt;p&gt;
See as an example: &lt;a class="ext-link" href="https://github.com/okfn/elastic-proxy"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/elastic-proxy&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="Questions"&gt;Questions&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;How do we decide what to use in the viewer e.g. Webstore data versus &lt;a class="missing wiki"&gt;DataProxy?&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Check for existence of webstore_url on Resource (should really be webstore_enabled boolean or similar, however we stick with url for the time being because it exists and we avoid migration). If exists use Webstore o/w don't.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;How do we decide when webstore is activated
&lt;ul&gt;&lt;li&gt;Ans: see previous.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Do we (and how do we) allow for resources which are just for webstores
&lt;ul&gt;&lt;li&gt;Ans: we have to set webstore_url = True ... on save. Or add a big button saying: "Create Blank Resource" ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;How does webstorer work ...
&lt;ul&gt;&lt;li&gt;CSV import - NS: make sure we add e.g. rownum or &lt;span class="underline"&gt;id&lt;/span&gt; = rownum ...
&lt;/li&gt;&lt;li&gt;Separate mini-service (webstorer.thedatahub.org ...)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;How do we selectively disable recline where not appropriate (e.g. query support makes no sense for &lt;a class="missing wiki"&gt;DataProxy?&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Ans: do not bother at present. Focus on Webstore route.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Where does geodata support come in (in Recline or separately)
&lt;ul&gt;&lt;li&gt;This is a separate issue
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 id="UserStory1"&gt;User Story 1&lt;/h2&gt;
&lt;p&gt;
User -&amp;gt; CKAN instance -&amp;gt; Add Dataset -&amp;gt; Adds a Resource via uploading a CSV file -&amp;gt; Save
&lt;/p&gt;
&lt;p&gt;
=&amp;gt; Result = New Dataset + Resource + Data API to resource and nice Preview of the data
&lt;/p&gt;
&lt;p&gt;
Solution:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Allow normal upload process
&lt;/li&gt;&lt;li&gt;Webstorer queue task which should get triggered by new resource. Check the resource and if it can convert into the associated resource webstore database.
&lt;/li&gt;&lt;li&gt;Update the resource in some way (set webstore_url)
&lt;/li&gt;&lt;/ol&gt;&lt;h1 id="UserStories"&gt;User Stories&lt;/h1&gt;
&lt;h2 id="UserStory2"&gt;User Story 2&lt;/h2&gt;
&lt;p&gt;
User -&amp;gt; CKAN instance -&amp;gt; Add Dataset -&amp;gt; Adds a Resource via linking to some remote file (CSV or otherwise) or uploading some data (CSV or otherwise)
&lt;/p&gt;
&lt;p&gt;
=&amp;gt; Result = New Dataset + Resource + nice Preview of the data (wherever possible)
&lt;/p&gt;
&lt;h2 id="UserStory3"&gt;User Story 3&lt;/h2&gt;
&lt;p&gt;
User -&amp;gt; CKAN instance -&amp;gt; Add Dataset -&amp;gt; Adds a Resource which will be webstore database in CKAN -&amp;gt; User saves data to this data store.
&lt;/p&gt;
&lt;p&gt;
=&amp;gt; Result = New Dataset + Resource (Webstore resource) which can now be written to or read from by the user
&lt;/p&gt;
&lt;p&gt;
Solution: just create a resource with blank url (or better, have a new option to create webstore resource ...)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1797</link>
        <guid isPermaLink="false">http://localhost/ticket/1797</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1798: API search in non-q fields has exception for unicode characters</title>
                  <description>&lt;p&gt;
You get an exception if you use the API to search packages and specify a non-ascii character in a field other than q.
&lt;/p&gt;
&lt;p&gt;
For example:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://catalogue.data.gov.uk/api/search/package?title=%E2%80%93
&lt;/pre&gt;&lt;p&gt;
This "N-dash" (Unicode character 2013) causes this exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.api:460 in search
&amp;lt;&amp;lt;                      if ver in u'12':
                               # Otherwise, put all unrecognised ones into the q parameter
                               params = convert_legacy_parameters_to_solr(params)
                           query = query_for(model.Package)
                           results = query.run(params)
&amp;gt;&amp;gt;  params = convert_legacy_parameters_to_solr(params)
Module ckan.lib.search.query:38 in convert_legacy_parameters_to_solr
&amp;lt;&amp;lt;      for search_key in non_solr_params:
               value_obj = legacy_params[search_key]
               value = str(value_obj).replace('+', ' ')
               if search_key == 'all_fields':
                   if value:
&amp;gt;&amp;gt;  value = str(value_obj).replace('+', ' ')
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 30: ordinal not in range(128)
&lt;/pre&gt;&lt;p&gt;
This problem affects CKAN 1.5 and 1.5.1 only.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1798</link>
        <guid isPermaLink="false">http://localhost/ticket/1798</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1799: To login as a different user or register, you need to logout first</title>
                  <description>&lt;p&gt;
When you are logged in, you cannot login as a different user before first logging out. (This is a restricting in repoze.who, which gives priority to an existing recognised identity over another one you supply.)
&lt;/p&gt;
&lt;p&gt;
Yet, the CKAN login form appears when you try to do something you're not allowed to, even if you are logged in already. You login with a different identity and nothing happens - you remain as the first identity - this is incorrect.
&lt;/p&gt;
&lt;p&gt;
(It is also a little confusing to be sent to the log-in page, although we do have a flash message explaining, and you might want to relogin as a superuser if you can.)
&lt;/p&gt;
&lt;p&gt;
Whilst in this area, it would be worth fixing the problem for developers where you are logged in, do "paster db clean" and then try to log in - &lt;a class="missing wiki"&gt;AuthTkt?&lt;/a&gt; recognises your old cookie but the User object doesn't exist, so you get an error logging in. In this instance we should tell people to log-out.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1799</link>
        <guid isPermaLink="false">http://localhost/ticket/1799</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1800: Tidy up *_list() and *_search() functions in ckan/logic/action/get.py</title>
                  <description>&lt;p&gt;
For consistency all the *_list() functions should list objects only and not accept an optional search query. There should be *_search() functions whenever search is needed.
&lt;/p&gt;
&lt;p&gt;
Currently it is inconsistent, e.g. package_list() and resource_list() do not accept a search query option and there are package_search() and resource_search(), but user_list() does accept a query and there is no user_search(). tag_list() also accepts a query, and there is also a tag_search() that apparently duplicates the search functionality.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1800</link>
        <guid isPermaLink="false">http://localhost/ticket/1800</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1801: No links to password reset</title>
                  <description>&lt;p&gt;
You can reset your password (&lt;a class="closed ticket" href="http://localhost/ticket/1186" title="enhancement: Password reset facility (closed: fixed)"&gt;#1186&lt;/a&gt;) but you have to know the URI (/user/reset) - there is no link to this page!
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1801</link>
        <guid isPermaLink="false">http://localhost/ticket/1801</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1802: Investigate CKAN deployment on Windows</title>
                  <description>&lt;p&gt;
See how possible it is to run CKAN on a Windows server.
&lt;/p&gt;
&lt;p&gt;
Plan:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Get CKAN code and dependencies installed on Windows
&lt;ul&gt;&lt;li&gt;ideally as similar to standard package install as possible
&lt;/li&gt;&lt;li&gt;virtualenv/pip should work
&lt;/li&gt;&lt;li&gt;try Cygwin to help
&lt;/li&gt;&lt;li&gt;SOLR and Postgres could potentially run on other servers if necessary.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Try to run on Apache
&lt;/li&gt;&lt;li&gt;See if there are any issues
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1802</link>
        <guid isPermaLink="false">http://localhost/ticket/1802</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#1803: clean up routes</title>
                  <description></description>
        <link>http://localhost/ticket/1803</link>
        <guid isPermaLink="false">http://localhost/ticket/1803</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1804: CKAN mounted at URL - changing language problem</title>
                  <description>&lt;p&gt;
e.g. &lt;a class="ext-link" href="http://189.9.137.65/dados/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://189.9.137.65/dados/&lt;/a&gt; clicking on Deutsch link is &lt;tt&gt;http://189.9.137.65/dados/locale?locale=de&amp;amp;return_to=%2Fdados%2F&amp;amp;hash=1dc17c315c419df850da0dd3599eefa9da76fbeb&lt;/tt&gt; and redirect goes to &lt;tt&gt;http://189.9.137.65/dados/dados/?__cache=97995106&lt;/tt&gt; so /dados/dados/ when it should be /dados.
&lt;/p&gt;
&lt;p&gt;
Affects CKAN 1.6b only (not yet released).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1804</link>
        <guid isPermaLink="false">http://localhost/ticket/1804</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#1805: Error pages do not translate</title>
                  <description>&lt;p&gt;
eg 404 page
&lt;/p&gt;
&lt;p&gt;
create a 404 error via a bad url - translation links go to /document/error not the actual bad url
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1805</link>
        <guid isPermaLink="false">http://localhost/ticket/1805</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#1806: make drop down language selector</title>
                  <description>&lt;p&gt;
language chooser should look like the ec one
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1806</link>
        <guid isPermaLink="false">http://localhost/ticket/1806</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1807: Recently added/updated datasets for EC portal</title>
                  <description>&lt;p&gt;
For EC Portal need a page (or HTML snippet embedded in the front page?) listing recently added or updated datasets.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Could be generated from the activity streams
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Should it list datasets only, or other activities as well?
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;May be related to &lt;a class="accepted ticket" href="http://localhost/ticket/1785" title="enhancement: Replace 'Revisions' page with site-wide activity stream (accepted)"&gt;#1785&lt;/a&gt; (Replace 'Revisions' page with site-wide activity stream)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1807</link>
        <guid isPermaLink="false">http://localhost/ticket/1807</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1808: Translation of content on dataset view pages</title>
                  <description>&lt;p&gt;
All data is that is translatable should be translated when viewed.
&lt;/p&gt;
&lt;p&gt;
This includes tag names will be  ID codes. When viewing a dataset page, look up the current language of the interface (ckan_lang or something in the environs) and display the string for the tag in that language.
&lt;/p&gt;
&lt;p&gt;
Related to the dataset view extension points for translation, recently added by kindly/=.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1808</link>
        <guid isPermaLink="false">http://localhost/ticket/1808</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1809: Catch request exceptions in archiver link_checker task</title>
                  <description>&lt;p&gt;
Some request exceptions are currently not being caught (see the celery log on thedatahub for examples)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1809</link>
        <guid isPermaLink="false">http://localhost/ticket/1809</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1810: Store list of Eurovoc tag names and IDs</title>
                  <description>&lt;ul&gt;&lt;li&gt;Tag list not be added to CKAN core, what is the best way to do this in an extension?
&lt;/li&gt;&lt;li&gt;Does the list need to be updated via API/WUI?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1810</link>
        <guid isPermaLink="false">http://localhost/ticket/1810</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1811: Translate Eurovoc tags from ID to dataset language</title>
                  <description></description>
        <link>http://localhost/ticket/1811</link>
        <guid isPermaLink="false">http://localhost/ticket/1811</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1812: Restrict editing rights/permissions based on publisher</title>
                  <description>&lt;ul&gt;&lt;li&gt;see how this currently works with DGU first
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1812</link>
        <guid isPermaLink="false">http://localhost/ticket/1812</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1813: Upadate ckanext-pdeu to work with CKAN 1.6</title>
                  <description>&lt;p&gt;
Tasks include:
&lt;/p&gt;
&lt;p&gt;
Estimate 4d
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Update requirements (git)
&lt;/li&gt;&lt;li&gt;Search facets error
&lt;/li&gt;&lt;li&gt;Error on dataset read (extras in context)
&lt;/li&gt;&lt;li&gt;Url generator for rdf
&lt;/li&gt;&lt;li&gt;Make templates work with latest theme
&lt;/li&gt;&lt;li&gt;Use dicts in templates (isopen())
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1813</link>
        <guid isPermaLink="false">http://localhost/ticket/1813</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1814: Check publicadata.eu harvesters</title>
                  <description>&lt;p&gt;
Estimate 2d
&lt;/p&gt;
&lt;p&gt;
Once ckanext-pdeu is running on CKAN 1.6, upgrade ckanext-harvest to be able to update the CKAN harvesters (default tags and extras).
&lt;/p&gt;
&lt;p&gt;
Also check non-CKAN harvesters (specially scrappers) to see if they are still working.
&lt;/p&gt;
&lt;p&gt;
Make a list of current harvesters with status and potential ones.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1814</link>
        <guid isPermaLink="false">http://localhost/ticket/1814</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1815: Reenable Sparql endpoint on publicdata.eu</title>
                  <description>&lt;p&gt;
Estimate: ?
&lt;/p&gt;
&lt;p&gt;
The 4store Sparql endpoint has been down for a long time.
It needs to be reenabled and we need to check that the necessary informtion is pushed when creating /editing a dataset.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1815</link>
        <guid isPermaLink="false">http://localhost/ticket/1815</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1816: Update ckanext-apps to work with CKAN 1.5.1 - 1.6</title>
                  <description>&lt;p&gt;
Estimate [2-3d]
&lt;/p&gt;
&lt;p&gt;
If possible, it should work with both 1.5.1 and 1.6.
&lt;/p&gt;
&lt;p&gt;
Needed for PDEU, also at some point for IATI
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1816</link>
        <guid isPermaLink="false">http://localhost/ticket/1816</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#1817: Importer for EC publisher info</title>
                  <description>&lt;ul&gt;&lt;li&gt;write importer for publisher info (currently in JSON format), add to ckanext-ecportal
&lt;/li&gt;&lt;li&gt;add group translations to translations table
&lt;/li&gt;&lt;li&gt;run on test server
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1817</link>
        <guid isPermaLink="false">http://localhost/ticket/1817</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#1818: Spatial metadata editor</title>
                  <description>&lt;p&gt;
Estimate 2.5d
&lt;/p&gt;
&lt;p&gt;
Right now users need to manually enter a geojson value in the 'spatial' extra field in order to define a geometry for a dataset.
&lt;/p&gt;
&lt;p&gt;
We need a map widget on the edit form that allows users to draw the geometry on top of a map. This will be based on the draw functions offered by &lt;a class="missing wiki"&gt;OpenLayers?&lt;/a&gt; &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;, &lt;a class="missing changeset" title="No default repository defined"&gt;[2]&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Things to take into account:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Integration with the form sections.
&lt;/li&gt;&lt;li&gt;Allow some degree of configuration (default extent, limit geometry types...)
&lt;/li&gt;&lt;/ul&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://openlayers.org/dev/examples/draw-feature.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://openlayers.org/dev/examples/draw-feature.html&lt;/a&gt;
&lt;a class="missing changeset" title="No default repository defined"&gt;[2]&lt;/a&gt; &lt;a class="ext-link" href="http://openlayers.org/dev/examples/modify-feature.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://openlayers.org/dev/examples/modify-feature.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1818</link>
        <guid isPermaLink="false">http://localhost/ticket/1818</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1819: change search index code to use package_dictize instead of obj.to_dict</title>
                  <description>&lt;p&gt;
Search index code needs to use package_dictize so that it can get the new vocablurary information and is more consistant with the rest of the system.  This is in preperation for their translation being put in the search indexer.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1819</link>
        <guid isPermaLink="false">http://localhost/ticket/1819</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1820: Index multilingual data when mulilingual extension is added.</title>
                  <description>&lt;p&gt;
All translated fields and vocabularies need to be added to search index in the correct fields.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1820</link>
        <guid isPermaLink="false">http://localhost/ticket/1820</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1821: create internal multilingual extension that brings together all multilingual features</title>
                  <description>&lt;p&gt;
This extension point needs to combine.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; Making sure the correct data get put in search index.
&lt;/li&gt;&lt;li&gt; Make the search queries are modified to weight multilingual search correctly.
&lt;/li&gt;&lt;li&gt; View pages, including search results are translated.
&lt;/li&gt;&lt;li&gt; Bring together all search schema modifications.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1821</link>
        <guid isPermaLink="false">http://localhost/ticket/1821</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1822: Weight mulilingual searches correctly</title>
                  <description>&lt;p&gt;
Dismax query across languages. Titles and selected languages, weighted more highly.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1822</link>
        <guid isPermaLink="false">http://localhost/ticket/1822</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1823: Spring clean bin directory</title>
                  <description>&lt;p&gt;
Huge number of accumulated (and likely unnecessary) scripts in /bin directory.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1823</link>
        <guid isPermaLink="false">http://localhost/ticket/1823</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1824: Add vocabulary pages</title>
                  <description>&lt;p&gt;
For a free tag foo you can visit the page at /tag/foo and see a list of all the datasets that have the tag foo, and when the tag appears on dataset view pages etc. it's linked to this tag page.
&lt;/p&gt;
&lt;p&gt;
We should do the same thing for vocabulary tags. A tag bar in vocabulary baz should be hyperlinked to a page /tag/baz/bar, or perhaps /vocab/baz/bar.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1824</link>
        <guid isPermaLink="false">http://localhost/ticket/1824</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#1825: Write docs for vocabularies API</title>
                  <description>&lt;p&gt;
Done on branch feature-1698-tag-taxonomies
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1825</link>
        <guid isPermaLink="false">http://localhost/ticket/1825</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#1826: weight queries so that title is more important than rest of body</title>
                  <description>&lt;p&gt;
Currently everything is considered equally when doing a normal search. Use dismax when there is not a fielded search to get round this. This is part of the work for &lt;a class="closed ticket" href="http://localhost/ticket/1822" title="enhancement: Weight mulilingual searches correctly (closed: fixed)"&gt;#1822&lt;/a&gt; as the dismax option is needed for multilingual search.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1826</link>
        <guid isPermaLink="false">http://localhost/ticket/1826</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1827: 'Register' link should be hidden if you not allowed to register</title>
                  <description>&lt;pre class="wiki"&gt;I have just deny visitors the create-user permission:
sudo -u ckanstd paster --plugin=ckan roles deny reader create-user -c /etc/ckan/std/std.ini
sudo -u ckanstd paster --plugin=ckan roles deny anon_editor create-user -c /etc/ckan/std/std.ini
and after restarting, the register link is *not* hidden, but now when you access the register page, it shows you this message "Unauthorized to create a user" (when not logged in). But anyway that is an improvement.
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/1827</link>
        <guid isPermaLink="false">http://localhost/ticket/1827</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#1828: Upgrade to Recline v0.3</title>
                  <description>&lt;p&gt;
Recline v0.3 has introduced some breaking changes in API and usage. Upgrade to use it.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1828</link>
        <guid isPermaLink="false">http://localhost/ticket/1828</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1829: Changing back to English prints the flash message in the previous non-English language</title>
                  <description>&lt;p&gt;
On the homepage click "francais" and then "English". The flash message reads "Le langage a été fixé à: français" when it should say "The language is now: English".
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/1829</link>
        <guid isPermaLink="false">http://localhost/ticket/1829</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1830: OpenID disablable</title>
                  <description>&lt;p&gt;
Allow OpenID to be disabled as a login option.
&lt;/p&gt;
&lt;p&gt;
Currently (CKAN 1.6) there is a config option openid_enabled which stops the login option being displayed, but:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;In the User edit form you can still add your OpenID
&lt;/li&gt;&lt;li&gt;The repoze.who.openid middleware is still required - can it be avoided?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1830</link>
        <guid isPermaLink="false">http://localhost/ticket/1830</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#1831: Login with email address</title>
                  <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>
        <link>http://localhost/ticket/1831</link>
        <guid isPermaLink="false">http://localhost/ticket/1831</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#1832: dataset purge API</title>
                  <description>&lt;p&gt;
Purging datasets (deleting them fully, not just changing the state to 'deleted') is important for users testing dataset creation over the API on a test CKAN instance.
&lt;/p&gt;
&lt;p&gt;
Without this, they need to resort to more difficult methods such as:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;cleaning and reloading the database
&lt;/li&gt;&lt;li&gt;setting the test datasets to state 'deleted' and also appending a suffix '_00' and incrementing the number until there is no clash of names.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Requested for NHSIC.
&lt;/p&gt;
&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;This could slot into the Action API.
&lt;/li&gt;&lt;li&gt;Of course we would need to ensure the user's had been given the specific right to purge.
&lt;/li&gt;&lt;li&gt;I suggest we log the full details of the dataset being purged.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/1832</link>
        <guid isPermaLink="false">http://localhost/ticket/1832</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zydio</dc:creator>

                  <title>#2197: Storage Metadata API: add/update not working with local file storage (Pairtree)</title>
                  <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>
        <link>http://localhost/ticket/2197</link>
        <guid isPermaLink="false">http://localhost/ticket/2197</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zydio</dc:creator>

                  <title>#2198: API documentation is missing Storage Metadata API info</title>
                  <description>&lt;p&gt;
Now that ckanext-storage is back into the core (v1.6), CKAN documentation should probably contain info on &lt;a class="ext-link" href="https://github.com/okfn/ckanext-storage/blob/master/README.rst"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Storate Metadata API&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2198</link>
        <guid isPermaLink="false">http://localhost/ticket/2198</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2199: Translation of content on dataset search pages</title>
                  <description></description>
        <link>http://localhost/ticket/2199</link>
        <guid isPermaLink="false">http://localhost/ticket/2199</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2200: Add vocabulary_id option to tag_show() logic action function</title>
                  <description>&lt;p&gt;
Currently tag_show() only works with free tags, it's not possible to get a tag_show for a vocabulary tag.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2200</link>
        <guid isPermaLink="false">http://localhost/ticket/2200</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2201: Add citation info to Dataset and Resource page</title>
                  <description>&lt;p&gt;
Suggest:
&lt;/p&gt;
&lt;p&gt;
%title. %author. Retrieved %date. %site_title.
&lt;/p&gt;
&lt;p&gt;
For resource: %title = %dataset_title. %resource_name.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2201</link>
        <guid isPermaLink="false">http://localhost/ticket/2201</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2202: Display page view count on dataset and resource pages</title>
                  <description>&lt;p&gt;
Just like we display download counts we should display view counts.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2202</link>
        <guid isPermaLink="false">http://localhost/ticket/2202</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2203: Data Viewer support for PDF</title>
                  <description>&lt;ul&gt;&lt;li&gt;Boot viewer for format/mimetype: application/pdf, application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf
&lt;/li&gt;&lt;li&gt;propose we use pdf.js - &lt;a class="ext-link" href="https://github.com/mozilla/pdf.js"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/mozilla/pdf.js&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;We could also try iframing for browsers with native support but this seems more complex
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2203</link>
        <guid isPermaLink="false">http://localhost/ticket/2203</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2204: [super] Related (Stuff) Extension</title>
                  <description>&lt;p&gt;
This is a reworking of the existing apps extension.
&lt;/p&gt;
&lt;p&gt;
Initial proposal at &lt;a class="ext-link" href="http://wiki.ckan.org/Proposals#Apps_in_CKAN"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Proposals#Apps_in_CKAN&lt;/a&gt; and &lt;a class="ext-link" href="http://wiki.ckan.org/Proposals#References.2FLinks_in_CKAN"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Proposals#References.2FLinks_in_CKAN&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="Naming"&gt;Naming&lt;/h2&gt;
&lt;p&gt;
What do we call this extension?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;related
&lt;ul&gt;&lt;li&gt;RP best IMO but perhaps too close to separate relationships concept?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;relatedstuff
&lt;/li&gt;&lt;li&gt;links
&lt;/li&gt;&lt;li&gt;references
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Proposal"&gt;Proposal&lt;/h2&gt;
&lt;p&gt;
"Related Stuff": Apps as in an application (website/service/tool) that uses this dataset (as in Apps and Ideas extension)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;This case seems a general example of wanting to link some external thing to a dataset (e.g. this policy paper refs this dataset, this application uses this dataset, this visualization is built on this dataset cf &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-discuss/2011-August/001607.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-discuss/2011-August/001607.html&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Implementation"&gt;Implementation&lt;/h2&gt;
&lt;p&gt;
New table named Related with following structure
&lt;/p&gt;
&lt;pre class="wiki"&gt;|| id (int) || type || title || description (markdown) || image_url || owner_id || url || created (timestamp)
&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;type = Idea | App | API | Visualization | Post | Paper | News Article
&lt;ul&gt;&lt;li&gt;Suggest we make this a ckan.ini config option (comma separated ...?)
&lt;ul&gt;&lt;li&gt;Do we want the possibility of different templates for different types of Related objects?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;image: ?? Depends where we store images. Simplest option would be to change to image_url and leave it to users to have already uploaded an image somewhere. If not we need to support image uploading and storage. See &lt;a class="closed ticket" href="http://localhost/ticket/1692" title="enhancement: Add image attribute to Dataset and Group (closed: wontfix)"&gt;#1692&lt;/a&gt; (add image attribute to datasets and groups) for more discussion, once implemented the URL here can be an internal url.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;owner_id = user_id or creating user (see authorization below)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Related2Dataset (note that related_id, dataset_id tuple should be unique). This allows for m2m connections. If a given related item is only with one dataset this could be simplified. May contain status so dataset owner can turn this on/off.
&lt;/p&gt;
&lt;pre class="wiki"&gt;|| id || dataset_id || related_id || status
&lt;/pre&gt;&lt;p&gt;
status should be used to allow for a dataset owner (for dataset_id) to de-activate the relationship between the dataset and the related.
&lt;/p&gt;
&lt;h3 id="Url"&gt;Url&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;/dataset/{dataset-name}/related/{related-item-id}/{related-item-title-stringified}
&lt;ul&gt;&lt;li&gt;If a reference item could exist in its own right (and perhaps refer to multiple datasets then it should get its own url at e.g. /related/{id}
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;/dataset/{dataset-name}/related/add =&amp;gt; Modal dialog on related tab so we can use API to create them.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
/dataset/{id}/related &amp;lt;- list
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;use image_url for small icon etc, title description (shortened?)
&lt;/li&gt;&lt;li&gt;Click through to full related item (optional)
&lt;/li&gt;&lt;li&gt;dataset owner is shown show / hide button ... (or on /dataset/{id}/related/{id} )
&lt;/li&gt;&lt;li&gt;related owner sees an edit button / icon (pops up modal)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
/dataset/{id}/related/{id} (optional)
&lt;/p&gt;
&lt;p&gt;
/dataset/{id} will have a Related tab (with bubble with count).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Drop down with Add Related -&amp;gt; Pop-up modal and save via API
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
(Not used: /related/add with dataset prefilled ... )
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
/related/{id}/edit
&lt;/p&gt;
&lt;h3 id="Authorization"&gt;Authorization&lt;/h3&gt;
&lt;p&gt;
Addition of related item be considered orthogonal to datasets (and hence with separate authorization i.e. i can add the info that site X uses dataset Y without needing permission to edit dataset Y).
&lt;/p&gt;
&lt;p&gt;
Thus any logged in user could add a Related item. We set the owner of the related item to creating user and going forward only that user or a sysadmin can update or delete.
&lt;/p&gt;
&lt;p&gt;
NB: we could have a system where datasets owners have to approve related items before they show up next to their dataset. This would add substantial complexity so I propose we leave out of phase 1.
&lt;/p&gt;
&lt;h3 id="Tasksandestimates7.5d"&gt;Tasks and estimates {7.5d}&lt;/h3&gt;
&lt;p&gt;
[x] Model + Migration for Related table. {0.75d}
&lt;/p&gt;
&lt;p&gt;
[x] Controller for Related (or relevant sections in Package controller). {0.75d}
&lt;/p&gt;
&lt;p&gt;
[x] Routing setup. {0.25d}
&lt;/p&gt;
&lt;p&gt;
[x] Schema for related. {0.5d}
&lt;/p&gt;
&lt;p&gt;
[x] Logic layer actions. {1.0d}
&lt;/p&gt;
&lt;p&gt;
[x] Auth (default + publisher). {0.5d}
&lt;/p&gt;
&lt;p&gt;
[x] Templates + Dataset changes (new tab etc). {1.0d}
&lt;/p&gt;
&lt;p&gt;
[x] JS Application for adding Related objects in a modal. {1.0d}
&lt;/p&gt;
&lt;p&gt;
[x] Testing. {0.75d}
&lt;/p&gt;
&lt;p&gt;
[x] Dataset owner disabling of Related (via M2M table). {0.5d}
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Updated to allow author of related to delete as well
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
[x] Documentation. {0.25d}
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2204</link>
        <guid isPermaLink="false">http://localhost/ticket/2204</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2205: Document Tag Vocab schema/form setup</title>
                  <description></description>
        <link>http://localhost/ticket/2205</link>
        <guid isPermaLink="false">http://localhost/ticket/2205</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2206: Change site header to match latest ODP template</title>
                  <description></description>
        <link>http://localhost/ticket/2206</link>
        <guid isPermaLink="false">http://localhost/ticket/2206</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2207: Fix recently changed datasets activity stream on exportal site</title>
                  <description>&lt;p&gt;
Apparently it's working when developers run it locally but not on the demo site.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2207</link>
        <guid isPermaLink="false">http://localhost/ticket/2207</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2208: Export strings from ckan and ckanext-ecportal to combined pot file</title>
                  <description>&lt;p&gt;
All strings from the ckanext-ecportal extension (and from CKAN core) need to be exported to a pot file to send to tenforce.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2208</link>
        <guid isPermaLink="false">http://localhost/ticket/2208</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2209: Object-&gt;RDF mapping</title>
                  <description>&lt;p&gt;
Super is &lt;a class="missing changeset" title="No default repository defined"&gt;[1649]&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We need to provide customisable mappings between CKAN models and RDF. This needs to be easily configurable for different clients and should take into account objects related to the model being mapped.
&lt;/p&gt;
&lt;p&gt;
Current contenders for impl are:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;ordf.org's Object Description Mapper (which uses OWL)
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;RDFAlchemy, although this looks like it may result in fixed mappings
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;A custom scheme with a simple json file
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;A template based approach using Genshi templates?
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Approach is to get a mapping complete of the attributes directly in the package class, and then provide mappings for related objects (tags/resources etc).
&lt;/p&gt;
&lt;p&gt;
We'll then need to be able to publish the RDF to a triplestore.
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="http://ckan.okfnpad.org/rdfmapping"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/rdfmapping&lt;/a&gt; for further analysis.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2209</link>
        <guid isPermaLink="false">http://localhost/ticket/2209</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2210: Add method to group for adding members</title>
                  <description>&lt;p&gt;
It is necessary to add a helper method to Group for adding members to that group so that
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;nobody needs to work with the Member model
&lt;/li&gt;&lt;li&gt;It handles existing membership and existing membership with a different capacity
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2210</link>
        <guid isPermaLink="false">http://localhost/ticket/2210</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2211: Logic layer access to publisher functionality</title>
                  <description>&lt;p&gt;
Most of the get_group/add_member style calls should be handled, or at least provided via logic layer.
&lt;/p&gt;
&lt;p&gt;
Don't need to break existing code, but do need to provide access via logic layer
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2211</link>
        <guid isPermaLink="false">http://localhost/ticket/2211</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2212: Import latest data into demo site</title>
                  <description></description>
        <link>http://localhost/ticket/2212</link>
        <guid isPermaLink="false">http://localhost/ticket/2212</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2213: Update geographical coverage tags</title>
                  <description>&lt;ul&gt;&lt;li&gt;&lt;del&gt;create importer for geo tags&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;add translations to database&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;translate tags in WUI&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;test&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;deploy&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;document how to add a geo coverage field in &lt;a class="ext-link" href="http://docs.ckan.org/en/latest/forms.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/forms.html&lt;/a&gt;&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2213</link>
        <guid isPermaLink="false">http://localhost/ticket/2213</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2214: Translation of content on group view pages</title>
                  <description></description>
        <link>http://localhost/ticket/2214</link>
        <guid isPermaLink="false">http://localhost/ticket/2214</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2215: Translation of content on group list page</title>
                  <description></description>
        <link>http://localhost/ticket/2215</link>
        <guid isPermaLink="false">http://localhost/ticket/2215</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2216: Translation of selected facets on search pages</title>
                  <description></description>
        <link>http://localhost/ticket/2216</link>
        <guid isPermaLink="false">http://localhost/ticket/2216</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2217: Translation of content on tag list page</title>
                  <description></description>
        <link>http://localhost/ticket/2217</link>
        <guid isPermaLink="false">http://localhost/ticket/2217</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2218: Translation of content on tag pages</title>
                  <description></description>
        <link>http://localhost/ticket/2218</link>
        <guid isPermaLink="false">http://localhost/ticket/2218</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2219: Translation of datasets and tags on user pages</title>
                  <description>&lt;p&gt;
User names and descriptions are not translated.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2219</link>
        <guid isPermaLink="false">http://localhost/ticket/2219</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2220: make ckan cacheable</title>
                  <description>&lt;p&gt;
need to sort cookies etc
&lt;/p&gt;
&lt;p&gt;
should work with nginx and varnish
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2220</link>
        <guid isPermaLink="false">http://localhost/ticket/2220</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#2221: Tests are broken for some of us: NotAPairTreeStoreException</title>
                  <description>&lt;p&gt;
Since my last pull I'm getting a strange new error which is presumably to do with my local config or assumptions about the storage extension.
&lt;/p&gt;
&lt;p&gt;
Test output here:
&lt;a class="ext-link" href="https://gist.github.com/2007985"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/2007985&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2221</link>
        <guid isPermaLink="false">http://localhost/ticket/2221</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#2222: Tests are broken for some of us: NotAPairTreeStoreException</title>
                  <description>&lt;p&gt;
Since my last pull I'm getting a strange new error which is presumably to do with my local config or assumptions about the storage extension.
&lt;/p&gt;
&lt;p&gt;
Test output here:
&lt;a class="ext-link" href="https://gist.github.com/2007985"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/2007985&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2222</link>
        <guid isPermaLink="false">http://localhost/ticket/2222</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2223: Switch to bootstrap from blueprint</title>
                  <description>&lt;p&gt;
Why?
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We already use quite a bit of boostrap
&lt;/li&gt;&lt;li&gt;We already plan to use bootstrap JS
&lt;/li&gt;&lt;li&gt;Bootstrap is excellent and pretty light
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2223</link>
        <guid isPermaLink="false">http://localhost/ticket/2223</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2224: Simplify javascript and css dependencies and add minified version</title>
                  <description>&lt;ul&gt;&lt;li&gt;Get rid of jquery UI
&lt;ul&gt;&lt;li&gt;Requires switching to bootstrap lookahead plus a small bit of coding for ajax part (see &lt;a class="ext-link" href="https://gist.github.com/2007241"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/2007241&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Remove modernizr (what do we use it for?)
&lt;/li&gt;&lt;li&gt;Convert jquery.tmpl to jquery mustache (?)
&lt;/li&gt;&lt;li&gt;Remove ckanjs moving core parts of it directly into our code.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Compress everything for releases and add minified version to build (with switch to enable use of this?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2224</link>
        <guid isPermaLink="false">http://localhost/ticket/2224</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2225: Run jshint on our javascript and clean up as needed</title>
                  <description></description>
        <link>http://localhost/ticket/2225</link>
        <guid isPermaLink="false">http://localhost/ticket/2225</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2226: [super] Refactor and improve documentation (v1.7)</title>
                  <description>&lt;p&gt;
Documentation is key to the success of projects!
&lt;/p&gt;
&lt;h1 id="Movematerialintomaindocsfromwiki"&gt;Move material into main docs from wiki&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://wiki.ckan.org/Writing_asynchronous_tasks"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Writing_asynchronous_tasks&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://wiki.ckan.org/Domain_Model"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Domain_Model&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://wiki.ckan.org/Deployment"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.ckan.org/Deployment&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h1 id="CreateaUserGuide"&gt;Create a User Guide&lt;/h1&gt;
&lt;p&gt;
Basic step-by-step on getting started with CKAN (See start on set of slides here e.g. &lt;a class="ext-link" href="http://blog.thedatahub.org/2012/03/02/tutorial-publish-data-with-the-datahub/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://blog.thedatahub.org/2012/03/02/tutorial-publish-data-with-the-datahub/&lt;/a&gt;)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Publishing data
&lt;/li&gt;&lt;li&gt;Authorization and workflows
&lt;ul&gt;&lt;li&gt;Publisher Profile (Workflow)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1 id="Breakintosections"&gt;Break into sections&lt;/h1&gt;
&lt;p&gt;
Suggest something like:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# General
* Intro
* Conceptual Overview
* What CKAN helps you do (http://ckan.org/)
* FAQ ? (or point to the wiki)
# For Administrators
* Installation and Setup
  * Configuration options
* Customization - Theming etc
* Authorization and Workflows
* Storage
# For Users (Publishers, Data Wranglers, etc etc)
* Walkthrough of publishing a dataset
* Storage
* API (see Developers section)
# CKAN Developers
* Domain Model
* API
* Extensions
* i18n
CKAN Developers
* Buildbot
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2226</link>
        <guid isPermaLink="false">http://localhost/ticket/2226</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2227: Tests are slow and broken</title>
                  <description>&lt;p&gt;
not all tests run and they take too long :(
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2227</link>
        <guid isPermaLink="false">http://localhost/ticket/2227</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2228: IGroupForm should allow overriding of non-edit templates</title>
                  <description>&lt;p&gt;
IGroupForm should allow overriding of non-edit templates so that it can specify the index +/or search +/or view.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2228</link>
        <guid isPermaLink="false">http://localhost/ticket/2228</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2229: Cleanup plugin system after some test failed to run.</title>
                  <description>&lt;p&gt;
The logic test did not have &lt;span class="underline"&gt;init&lt;/span&gt;. This caused lots of tests to fail because there were mock extensions that ran automatically in them. Fix plugin system so this can work.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2229</link>
        <guid isPermaLink="false">http://localhost/ticket/2229</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2230: Tidy up of search facets code duplication</title>
                  <description>&lt;p&gt;
Because of a clash between two development branches there is some duplication of code to do with code facets (note: at the time of writing the code duplication exists only on the feature-1821-multilingual-extension branch, but this will be merged into master at some point):
&lt;/p&gt;
&lt;p&gt;
The package_search() function is adding the search facets to the search results twice with two different data structures, with keys "facets" and "new_facets". It should be reduced to just the new facets (with the key changed to "facets").
&lt;/p&gt;
&lt;p&gt;
Also the group and package controllers are adding both facets and new_facets to the context, should be new_facets only (but renamed to facets).
&lt;/p&gt;
&lt;p&gt;
The facet_items() function in helpers.py should be removed, it uses the old facets structure and shouldn't be needed anymore with the new facets structure.
&lt;/p&gt;
&lt;p&gt;
In facets.html, facet_sidebar() should be removed as it uses the old facets structure and facet_div() implements the same functionality but uses the new facets.
&lt;/p&gt;
&lt;p&gt;
In facets.html, facet_list_items() will have to be updated to not use the facet_items() helper and to use the new facets structure instead.
&lt;/p&gt;
&lt;p&gt;
Anywhere that "new_facets" appears it will have to be changed to "facets" (e.g. in the ckanext/multilingual/plugin.py.
&lt;/p&gt;
&lt;p&gt;
This is the merge commit that introduced the duplication: &lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/1153aa876f54c22289e460aeececea22d1d4d51d"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/1153aa876f54c22289e460aeececea22d1d4d51d&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This is the earlier commit where the search facets were refactored: &lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/3970e52008b75933fda1be1d488bed2578d98c9c"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/3970e52008b75933fda1be1d488bed2578d98c9c&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2230</link>
        <guid isPermaLink="false">http://localhost/ticket/2230</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2231: Base harvester broken on 1.6.1</title>
                  <description>&lt;p&gt;
On its current version, ckanext-harvest passed a custom schema to package_create and package_update to allow defining an id for new packages (the same as in remote ckan instances) &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Recent changes in the logic layer have made that the context object is no longer directly read from the context, but only get from plugins &lt;a class="missing changeset" title="No default repository defined"&gt;[2]&lt;/a&gt;. This makes the schema sent from ckanext-harvest to be ignored and the harvesting fails because the id field is not expected
&lt;/p&gt;
&lt;pre class="wiki"&gt;ValidationError: {'Id': u'The input field id was not expected.'}
&lt;/pre&gt;&lt;p&gt;
We need a way to either:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Be more flexible accepting schemas on the logic functions
&lt;/li&gt;&lt;li&gt;Modify the harvester plugin to implement the necessary interface
&lt;/li&gt;&lt;/ol&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="https://github.com/okfn/ckanext-harvest/blob/master/ckanext/harvest/harvesters/base.py#L115"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-harvest/blob/master/ckanext/harvest/harvesters/base.py#L115&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing changeset" title="No default repository defined"&gt;[2]&lt;/a&gt; &lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/0c07d3be846777318b35c31325215dff00e99313/ckan/logic/action/create.py#L38"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/blob/0c07d3be846777318b35c31325215dff00e99313/ckan/logic/action/create.py#L38&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2231</link>
        <guid isPermaLink="false">http://localhost/ticket/2231</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2232: Unicode Exception when rebuilding the search index</title>
                  <description>&lt;p&gt;
In some cases this exception is fired when building the search index. As explained in &lt;a class="closed ticket" href="http://localhost/ticket/1616" title="defect: Catch exceptions when rebuilding the search index (closed: fixed)"&gt;#1616&lt;/a&gt; this makes the whole process stop.
&lt;/p&gt;
&lt;pre class="wiki"&gt;
  File "/var/lib/ckan/pdeu/pyenv/lib/python2.6/site-packages/solr/core.py", line 326, in wrapper
    return self._update(content, query)
  File "/var/lib/ckan/pdeu/pyenv/lib/python2.6/site-packages/solr/core.py", line 550, in _update
    rsp = self._post(selector, request, self.xmlheaders)
  File "/var/lib/ckan/pdeu/pyenv/lib/python2.6/site-packages/solr/core.py", line 639, in _post
    return check_response_status(self.conn.getresponse())
  File "/var/lib/ckan/pdeu/pyenv/lib/python2.6/site-packages/solr/core.py", line 1096, in check_response_status
    raise ex
SolrException: HTTP code=400, reason=ParseError at [row,col]:[1,2354] Message: An invalid XML character (Unicode: 0x1) was found in the element content of the document.
Traceback (most recent call last):
  File "/var/lib/ckan/pdeu/pyenv/bin/paster", line 9, in &amp;lt;module&amp;gt;
    load_entry_point('PasteScript==1.7.3', 'console_scripts', 'paster')()
  File "/var/lib/ckan/pdeu/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 84, in run
    invoke(command, command_name, options, args[1:])
  File "/var/lib/ckan/pdeu/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 123, in invoke
    exit_code = runner.run(args)
  File "/var/lib/ckan/pdeu/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 218, in run
    result = self.command()
  File "/var/lib/ckan/pdeu/pyenv/src/ckan/ckan/lib/cli.py", line 298, in command
    rebuild()
  File "/var/lib/ckan/pdeu/pyenv/src/ckan/ckan/lib/search/__init__.py", line 134, in rebuild
    {'id': pkg.id}
  File "/var/lib/ckan/pdeu/pyenv/src/ckan/ckan/lib/search/index.py", line 54, in insert_dict
    return self.update_dict(data)
  File "/var/lib/ckan/pdeu/pyenv/src/ckan/ckan/lib/search/index.py", line 79, in update_dict
    self.index_package(pkg_dict)
  File "/var/lib/ckan/pdeu/pyenv/src/ckan/ckan/lib/search/index.py", line 153, in index_package
    raise SearchIndexError(e)
ckan.lib.search.common.SearchIndexError: HTTP code=400, reason=ParseError at [row,col]:[1,2354] Message: An invalid XML character (Unicode: 0x1) was found in the element content of the document.
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2232</link>
        <guid isPermaLink="false">http://localhost/ticket/2232</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2233: Make package show, use custom json schema</title>
                  <description>&lt;p&gt;
There is a disrepency between what we put in and get out when using a custom form/api. Narrow this gap by making sure package_show shows the correct serilization.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2233</link>
        <guid isPermaLink="false">http://localhost/ticket/2233</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2234: Write a CKAN extension for pulling items from RSS/Atom feeds into CKAN templates</title>
                  <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>
        <link>http://localhost/ticket/2234</link>
        <guid isPermaLink="false">http://localhost/ticket/2234</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2235: Group drop down on dataset edit should use chosen and sort groups by name</title>
                  <description></description>
        <link>http://localhost/ticket/2235</link>
        <guid isPermaLink="false">http://localhost/ticket/2235</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2236: Updates to Recline and integrate them</title>
                  <description>&lt;ul&gt;&lt;li&gt;(Recline) Better graphing (multiple graph types etc)
&lt;/li&gt;&lt;li&gt;(Recline) Bootstrapify
&lt;/li&gt;&lt;li&gt;Integrate
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2236</link>
        <guid isPermaLink="false">http://localhost/ticket/2236</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2237: Make way to split up tests and run tests with different db.</title>
                  <description></description>
        <link>http://localhost/ticket/2237</link>
        <guid isPermaLink="false">http://localhost/ticket/2237</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2238: Deploy some test vocabs and publishers on test.ckan.net, check tutorial-style instructions for these</title>
                  <description></description>
        <link>http://localhost/ticket/2238</link>
        <guid isPermaLink="false">http://localhost/ticket/2238</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2239: EC ODP RDF/N3 templates</title>
                  <description>&lt;p&gt;
Implement the EC/ODP template for RDF to match the requested schemas.
&lt;/p&gt;
&lt;p&gt;
Using the previous work on allowing for templatised RDF representations we should implement the proposed schema for EC/ODP.
&lt;/p&gt;
&lt;p&gt;
We also agreed to allow upload of RDF as an extra (raised to top level in package schema) which will instead be used for the RDF template.  On insertion extra CKAN triples will be added... initially this is just owl:sameAs although we're awaiting EC/ODP agreement on which triples we should add to show the CKAN link.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2239</link>
        <guid isPermaLink="false">http://localhost/ticket/2239</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2240: Document CityData ideas</title>
                  <description>&lt;p&gt;
Document the ideas raised on 14/03 for &lt;a class="missing wiki"&gt;CityData?&lt;/a&gt; and distribute to team for discussion
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2240</link>
        <guid isPermaLink="false">http://localhost/ticket/2240</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2241: Look into making test_activity.py faster</title>
                  <description>&lt;p&gt;
...but only if it can be done reasonably quickly.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2241</link>
        <guid isPermaLink="false">http://localhost/ticket/2241</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2242: Research buildbot possibilities for CKAN</title>
                  <description></description>
        <link>http://localhost/ticket/2242</link>
        <guid isPermaLink="false">http://localhost/ticket/2242</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2243: Fix ckanext-example</title>
                  <description></description>
        <link>http://localhost/ticket/2243</link>
        <guid isPermaLink="false">http://localhost/ticket/2243</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2244: clean up auth</title>
                  <description>&lt;ul&gt;&lt;li&gt;cache admins etc
&lt;/li&gt;&lt;li&gt;aim to move check_access so independent of logic function
&lt;/li&gt;&lt;li&gt;general spruce up
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2244</link>
        <guid isPermaLink="false">http://localhost/ticket/2244</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2245: Update documentation for writing CKAN extensions</title>
                  <description></description>
        <link>http://localhost/ticket/2245</link>
        <guid isPermaLink="false">http://localhost/ticket/2245</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2246: Change published_by metadata field to reference group instead of a custom extra</title>
                  <description>&lt;ul&gt;&lt;li&gt;probably needs a new converter, as needs to be usable via API as 'published_by'.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2246</link>
        <guid isPermaLink="false">http://localhost/ticket/2246</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#2247: Resource preview glitch in some browsers</title>
                  <description>&lt;p&gt;
From Ira:
Preview for google spreadsheets are not displaying correctly for me in Firefox v.10.0.02, fine in Chrome.
&lt;a class="ext-link" href="http://i.imgur.com/KJaqz.png"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://i.imgur.com/KJaqz.png&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2247</link>
        <guid isPermaLink="false">http://localhost/ticket/2247</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2248: Update docs for creating custom forms</title>
                  <description>&lt;p&gt;
Should describe implementing IDatasetForm, subclassing controllers is deprecated
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2248</link>
        <guid isPermaLink="false">http://localhost/ticket/2248</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2249: Fix google spreadsheet to work with DataStore.</title>
                  <description>&lt;p&gt;
Need google spreadsheet app to work with the new datastore.  This should simplify it a lot.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2249</link>
        <guid isPermaLink="false">http://localhost/ticket/2249</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2250: Setup nginx and datastore on ecportal</title>
                  <description></description>
        <link>http://localhost/ticket/2250</link>
        <guid isPermaLink="false">http://localhost/ticket/2250</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2251: Internal analytics for ckan.</title>
                  <description>&lt;p&gt;
Page views and Resources clicks need to be tracked.
&lt;/p&gt;
&lt;h2 id="UserStories"&gt;User Stories&lt;/h2&gt;
&lt;p&gt;
US1 As a Site Admin / Visitor (?) I want to see how often a page has been viewed (every page) and how often resources have been downloaded.
&lt;/p&gt;
&lt;p&gt;
US1a Next to a resource or a dataset see how often it has been downloaded / viewed
&lt;/p&gt;
&lt;p&gt;
US1b I want to see datasets or resources ranked by most downloaded or viewed
&lt;/p&gt;
&lt;p&gt;
US1c See a trend graph for a dataset (and resources)
&lt;/p&gt;
&lt;p&gt;
Adminstrative Dashboard (?)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;I want to see the traffic breakdown by country to my site ...
&lt;/li&gt;&lt;li&gt;Ditto for browser type, language, etc etc
&lt;/li&gt;&lt;li&gt;I want to see it graphed over time ...
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="ImplementationDetails"&gt;Implementation Details&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;How do we store this data in CKAN?
&lt;/li&gt;&lt;li&gt;How do we track (and store)?
&lt;/li&gt;&lt;li&gt;How do we display
&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Config option ckan.status.enabled = False (by default)
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="StoringData"&gt;Storing Data&lt;/h3&gt;
&lt;p&gt;
How does ckanext-googleanalytics do this? Current table:
&lt;/p&gt;
&lt;p&gt;
package_id | count_recent | count_total
&lt;/p&gt;
&lt;p&gt;
Move to a new stats_summary table
&lt;/p&gt;
&lt;p&gt;
id | item_id | object_type | stats_type (total, month_yyyy_mm, ...) | value
&lt;/p&gt;
&lt;p&gt;
Do we store this data into the search (solr) so we can search by it?
&lt;/p&gt;
&lt;h3 id="DisplayingData"&gt;Displaying Data&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Helper functions / dictize:
&lt;ul&gt;&lt;li&gt;Helper function: h.stats_get(object_type, id, stats_type)
&lt;ul&gt;&lt;li&gt;h.stats_top_ranked(object_type, number) -&amp;gt; returns object_dicts or just labels or ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Change to dictize
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Location in the default theme (do we show for example in search results too!)
&lt;/li&gt;&lt;li&gt;Support for ranking by most popular in search?
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="TrackingData"&gt;Tracking Data&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Our own solution (just write to site_tracking)
&lt;/li&gt;&lt;li&gt;Google analytics (plus extension for retrieving data) &amp;lt;- would need a refactor
&lt;/li&gt;&lt;li&gt;Piwiki
&lt;/li&gt;&lt;/ul&gt;&lt;h4 id="OwnSolution"&gt;Own Solution&lt;/h4&gt;
&lt;p&gt;
(For later: not as part of this ticket probably)
&lt;/p&gt;
&lt;p&gt;
site_tracking table
&lt;/p&gt;
&lt;p&gt;
id | url | timestamp | action (page_view, resource_download) |
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Make javascript to make request to ckan to store clicks and page views.
&lt;/li&gt;&lt;li&gt;Add middleware so these requests do not go through pylons and just store data quickly.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2251</link>
        <guid isPermaLink="false">http://localhost/ticket/2251</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2252: UKLP harvesters returning errors when importing due to schema changes</title>
                  <description>&lt;p&gt;
See trace below.
&lt;/p&gt;
&lt;p&gt;
As in &lt;a class="closed ticket" href="http://localhost/ticket/2231" title="defect: Base harvester broken on 1.6.1 (closed: fixed)"&gt;#2231&lt;/a&gt;, the schema passed with the context is no longer used on the logic layer (in this case the one used on the DGU form is used). This can be fixed allowing a schema to be passed with the context.
&lt;/p&gt;
&lt;pre class="wiki"&gt;  File "/var/lib/ckan/std/pyenv/src/ckanext-inspire/ckanext/inspire/harvesters.py", line 139, in import_stage
    self.import_gemini_object(harvest_object.content)
  File "/var/lib/ckan/std/pyenv/src/ckanext-inspire/ckanext/inspire/harvesters.py", line 163, in import_gemini_object
    package = self.write_package_from_gemini_string(unicode_gemini_string)
  File "/var/lib/ckan/std/pyenv/src/ckanext-inspire/ckanext/inspire/harvesters.py", line 386, in write_package_from_gemin
    package = self._create_package_from_data(package_dict, package = package)
  File "/var/lib/ckan/std/pyenv/src/ckanext-inspire/ckanext/inspire/harvesters.py", line 486, in _create_package_from_dat
    package_dict = action_function(context, package_dict)
  File "/usr/lib/pymodules/python2.6/ckan/logic/action/update.py", line 169, in package_update
    data, errors = validate(data_dict, schema, context)
  File "/usr/lib/pymodules/python2.6/ckan/lib/navl/dictization_functions.py", line 216, in validate
    converted_data, errors = _validate(flattened, schema, context)
  File "/usr/lib/pymodules/python2.6/ckan/lib/navl/dictization_functions.py", line 289, in _validate
    convert(converter, key, converted_data, errors, context)
  File "/usr/lib/pymodules/python2.6/ckan/lib/navl/dictization_functions.py", line 179, in convert
    converter(key, converted_data, errors, context)
  File "/var/lib/ckan/std/pyenv/src/ckanext-dgu/ckanext/dgu/validators.py", line 81, in validate_license
    if data[('license_id',)]== '__extra__':
KeyError: ('access_constraints',)
2012-03-19 10:47:41,736 ERROR [ckanext.inspire.harvesters] Error importing Gemini document: ('access_constraints',)
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2252</link>
        <guid isPermaLink="false">http://localhost/ticket/2252</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2253: CMAP [super]</title>
                  <description>&lt;p&gt;
Somewhere for CMAP stuff not in other tickets
&lt;/p&gt;
&lt;p&gt;
need to create some general tickets
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;template changes
&lt;/li&gt;&lt;li&gt;general demo server setup
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2253</link>
        <guid isPermaLink="false">http://localhost/ticket/2253</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2254: better hooks for templates</title>
                  <description>&lt;p&gt;
TD look at issues and then email ckan-dev
&lt;/p&gt;
&lt;p&gt;
meeting notes from 21-3-2012
general ideas non specific
&lt;/p&gt;
&lt;p&gt;
Problem:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We want to remove the Transformer usage due to performance and its close tie to genshi
&lt;/li&gt;&lt;li&gt;Want a standard way for core code and extensions to put code into the templates where *templates request it* (templates control insertion rather than extensions ...)
&lt;/li&gt;&lt;li&gt;Stacking versus overwriting on entry points
&lt;ul&gt;&lt;li&gt;Relationship to h.requires('jquery', version) - &lt;a class="ext-link" href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://codex.wordpress.org/Function_Reference/wp_enqueue_script&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Options:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;placeholders or helper methods
&lt;/li&gt;&lt;li&gt;{{user _info}} {{sub_menu}} is this equivalent to &amp;lt;span class="insert-user-info"&amp;gt;&amp;lt;/span&amp;gt;
&lt;ul&gt;&lt;li&gt;[xyz arguments] -&amp;gt; h.load_snippet('xyz', ...)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;${h.snipit()}
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2254</link>
        <guid isPermaLink="false">http://localhost/ticket/2254</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2255: Organizations (Privacy + Ownership)</title>
                  <description>&lt;p&gt;
[x] The publisher_form extension and the 'publisher' component of the system will be renamed to organizations to both make its functionality clear, and to differentiate it from the publish auth profile.
&lt;/p&gt;
&lt;p&gt;
Ownership of datasets is important and this ticket will enforce membership for a dataset to a single individual organization.  The workflow for adding a dataset to a publisher/organization will stay the same but there will be no mechanism for adding existing datasets to an organization from within the organization forms.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] New datasets can be created from the organization form, in which case the organization will be set in the dataset form dropdown (with privacy set to private - see below)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Datasets created from direct access to /dataset/new will have a drop down showing all of the organizations available to the current user.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] When editing a dataset the organization can only be changed if the current user is the admin of the current organization, and only then to one of the organizations available to the current user.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
Only Organization admin can see the edit Organization form.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[x] Privacy will be enforced by changing the dataset form to have a public/private switch next to the organization drop-down which will be set as the capacity with which the dataset is added to an Organization.  Private means visible only within the Organization, and should be the default.
&lt;/p&gt;
&lt;p&gt;
[x] Search will be affected as the public/private status of a dataset will need to be added to the schema
&lt;/p&gt;
&lt;p&gt;
[x] Only public datasets showing in site search, and private showing in organization dataset search (if user is within the organization).
&lt;/p&gt;
&lt;p&gt;
[x] Make sure resources are restricted in visibility if the parent dataset is private
&lt;/p&gt;
&lt;p&gt;
[x] Documentation should be updated to reflect these changes.
&lt;/p&gt;
&lt;p&gt;
[x] Verify, then add, then re-add to documentation.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A User joins or creates an Organization
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;If creator of the Organization User becomes administrator of the Organization otherwise they become a Member.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;del&gt;Creation of new Organization must be approved by a System Administrator&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;New Members must be approved by the Organization Administrator
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2255</link>
        <guid isPermaLink="false">http://localhost/ticket/2255</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2256: remove TDH from core</title>
                  <description>&lt;p&gt;
make core independent of TDH and make core as minimal app
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2256</link>
        <guid isPermaLink="false">http://localhost/ticket/2256</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2257: cleanup template vars</title>
                  <description>&lt;p&gt;
look at reducing what is pulled into templates eg ckan.lib.helpers
ensure that these changes don't break existing extensions etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2257</link>
        <guid isPermaLink="false">http://localhost/ticket/2257</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2258: Customizable contributor agreement</title>
                  <description>&lt;ul&gt;&lt;li&gt;Customize text at bottom of forms
&lt;/li&gt;&lt;li&gt;Also need to make clear that this does not apply to the data itself (that is covered by the license you choose on your dataset ...)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2258</link>
        <guid isPermaLink="false">http://localhost/ticket/2258</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2259: Update ecportal theme for master changes (bootstrap)</title>
                  <description>&lt;p&gt;
Some recent changes caused things to break in ckanext-ecportal:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;change from blueprint to bootstrap
&lt;/li&gt;&lt;li&gt;other style / css changes (eg: tables, resource view notes field ID, etc. Forms are also broken, but that will be addressed in &lt;a class="closed ticket" href="http://localhost/ticket/2262" title="enhancement: Update ecportal form and dataset style/ux to match CKAN master (closed: fixed)"&gt;#2262&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;change to going through db_to_form_schema on package_show
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2259</link>
        <guid isPermaLink="false">http://localhost/ticket/2259</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2260: Update ecportal theme to match latest changes to tenforce theme</title>
                  <description></description>
        <link>http://localhost/ticket/2260</link>
        <guid isPermaLink="false">http://localhost/ticket/2260</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2261: All links need to option to change where language is placed in url.</title>
                  <description>&lt;p&gt;
For the ecportal case we need links to be like the following
&lt;/p&gt;
&lt;p&gt;
(%host)/open-data/en/data/(.*)&lt;br /&gt;
(%host)/open-data/fr/data/(.*)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2261</link>
        <guid isPermaLink="false">http://localhost/ticket/2261</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2262: Update ecportal form and dataset style/ux to match CKAN master</title>
                  <description></description>
        <link>http://localhost/ticket/2262</link>
        <guid isPermaLink="false">http://localhost/ticket/2262</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2263: IATI: Get "Record updated" field from the registry</title>
                  <description>&lt;p&gt;
Don't provide a field in the form or spreadsheet import for this, just use dataset.metadata_modified.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2263</link>
        <guid isPermaLink="false">http://localhost/ticket/2263</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2264: Do an audit of string translations in CKAN core and ckanext-ecportal</title>
                  <description>&lt;p&gt;
Check to see that all the strings are getting translated, i.e. that all user-visible strings are being passed to gettext. Fix any strings that are not getting translated.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2264</link>
        <guid isPermaLink="false">http://localhost/ticket/2264</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2265: 'More Like This' for a dataset</title>
                  <description>&lt;p&gt;
When viewing a dataset, it would be nice to show a couple of 'Related Datasets'. i.e. ones that are similar.
&lt;/p&gt;
&lt;p&gt;
SOLR has a feature for finding documents similar to a particular document, called 'More Like This'.
&lt;/p&gt;
&lt;p&gt;
We would like this for DGU.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2265</link>
        <guid isPermaLink="false">http://localhost/ticket/2265</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2266: Can't delete all of a package's resources over REST API</title>
                  <description>&lt;p&gt;
Nothing happens if you set resources=[] or resources=null.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2266</link>
        <guid isPermaLink="false">http://localhost/ticket/2266</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2267: Add generator=ckan tag in head</title>
                  <description>&lt;p&gt;
Add generator=ckan tag in head of templates to identify site as generated by CKAN
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2267</link>
        <guid isPermaLink="false">http://localhost/ticket/2267</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2268: UKLP Use same schema as form for harvested records</title>
                  <description>&lt;p&gt;
Datasets created via the harvesting (UKLP ones) and the ones created via the form use a different schema. That could lead to problems. We need to discuss the best approach.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2268</link>
        <guid isPermaLink="false">http://localhost/ticket/2268</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2269: EC ODP review and server setup</title>
                  <description>&lt;ul&gt;&lt;li&gt;code review with D.R. for ckanext-ecportal
&lt;/li&gt;&lt;li&gt;merge and test all multilingual code
&lt;/li&gt;&lt;li&gt;fix server issues: routing, Git access to CKAN repository
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Bugs to fix:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;rename groups to publishers&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;update home page layout (recent updates along side publishers)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;don't add 'en' to main menu links if english&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;resource edit page, fix missing images&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;change dataset 'settings' to 'edit'&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;translate 'published by' drop-down list&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;fix JS on 'add a dataset page'&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;prepopulate 'published_by' when clicking 'add a dataset' from group&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;chosen broken (dataset edit) if in different language&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2269</link>
        <guid isPermaLink="false">http://localhost/ticket/2269</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2270: DataExplorer overview</title>
                  <description>&lt;ul&gt;&lt;li&gt;get up to speed with &lt;a class="missing wiki"&gt;DataExplorer?&lt;/a&gt; code (and dependencies like Backbone)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2270</link>
        <guid isPermaLink="false">http://localhost/ticket/2270</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2271: IATI: Some datasets not being indexed</title>
                  <description>&lt;p&gt;
When importing a CSV file for a certain publisher, records don't come up on the search index.
After some investigation this has tunrn out to be caused by the records being deleted. We need to investigate if this was caused by the import or just made by the users.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2271</link>
        <guid isPermaLink="false">http://localhost/ticket/2271</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2272: Setup jenkins on the new dev server</title>
                  <description></description>
        <link>http://localhost/ticket/2272</link>
        <guid isPermaLink="false">http://localhost/ticket/2272</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2273: Review publisher organisations code with Ross</title>
                  <description></description>
        <link>http://localhost/ticket/2273</link>
        <guid isPermaLink="false">http://localhost/ticket/2273</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2274: Review multilingual branch with kindly, merge into master</title>
                  <description></description>
        <link>http://localhost/ticket/2274</link>
        <guid isPermaLink="false">http://localhost/ticket/2274</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2275: Implement group logos</title>
                  <description>&lt;p&gt;
Groups should be able to specify a URL to an image file for a group logo, the image will be shown on the group page.
&lt;/p&gt;
&lt;p&gt;
&lt;del&gt;Actually uploading an image file (rather than giving a URL) and cropping and resizing the file will be done later, for now just give a URL.&lt;/del&gt; (later ticket)
&lt;/p&gt;
&lt;p&gt;
&lt;del&gt;Further customisation of group pages (CSS, templates) also for later.&lt;/del&gt; (not sure if we really want this, but in a later ticket if so)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2275</link>
        <guid isPermaLink="false">http://localhost/ticket/2275</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2276: Upgrade Slovakia CKAN instance</title>
                  <description></description>
        <link>http://localhost/ticket/2276</link>
        <guid isPermaLink="false">http://localhost/ticket/2276</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2277: Use the new atom feeds in IATI</title>
                  <description>&lt;p&gt;
Atom feeds have been implemented in core in &lt;a class="closed ticket" href="http://localhost/ticket/1593" title="enhancement: [super] Create feeds from search results (closed: fixed)"&gt;#1593&lt;/a&gt;.  The IATI-specific implementation can now be removed when IATI move to CKAN &amp;gt;= 1.6.1
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2277</link>
        <guid isPermaLink="false">http://localhost/ticket/2277</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2278: DataStore enabled is disabled by default but is needed for DataStorer to run</title>
                  <description>&lt;p&gt;
Major UX gotcha reported by several people is that &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; is disabled by default and must be enabled for &lt;a class="missing wiki"&gt;DataStorer?&lt;/a&gt; to run and import data.
&lt;/p&gt;
&lt;p&gt;
Suggest switch to enable datastore by default for file and file.upload types (disable for API). People can always disable if they want.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2278</link>
        <guid isPermaLink="false">http://localhost/ticket/2278</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2279: Write tutorial for our DataStore API / Data Explorer</title>
                  <description>&lt;p&gt;
Unfortunately ES is a little bit complex / opaque to newcomers. Need to write a simple tutorial walking through this.
&lt;/p&gt;
&lt;p&gt;
This is documentation / example only (no code!)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2279</link>
        <guid isPermaLink="false">http://localhost/ticket/2279</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2280: Move ecportal to organizations, add history template</title>
                  <description></description>
        <link>http://localhost/ticket/2280</link>
        <guid isPermaLink="false">http://localhost/ticket/2280</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2281: Pagination styling converted to Bootstrap</title>
                  <description>&lt;p&gt;
Make the search results pagination styled by Bootstrap.
&lt;/p&gt;
&lt;p&gt;
Needs putting into a &amp;lt;ul&amp;gt; structure. Current page and '..' need become links that are styled disabled.
&lt;/p&gt;
&lt;p&gt;
Wanted by DGU.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2281</link>
        <guid isPermaLink="false">http://localhost/ticket/2281</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2282: log api calls for users</title>
                  <description>&lt;p&gt;
This was part of &lt;a class="closed ticket" href="http://localhost/ticket/2251" title="enhancement: Internal analytics for ckan. (closed: fixed)"&gt;#2251&lt;/a&gt; but is now it's own ticket.
&lt;/p&gt;
&lt;p&gt;
we need clarity on this.  The use cases so far have been possible limiting api calls for users.
&lt;/p&gt;
&lt;p&gt;
so we want to monitor the user or ip address
&lt;/p&gt;
&lt;p&gt;
what about the api calls?
&lt;/p&gt;
&lt;p&gt;
do we want to record all calls or just some?  do we want to record the type of call and to what level of detail?
&lt;/p&gt;
&lt;p&gt;
recording the url just seems to specific to me.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2282</link>
        <guid isPermaLink="false">http://localhost/ticket/2282</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2283: [super] Data Previewer / Viewer v3</title>
                  <description>&lt;ul&gt;&lt;li&gt;Basic geo map
&lt;/li&gt;&lt;li&gt;Facets
&lt;/li&gt;&lt;li&gt;Filtering
&lt;/li&gt;&lt;li&gt;Pivot table support (?)
&lt;/li&gt;&lt;li&gt;Export data (?)
&lt;/li&gt;&lt;li&gt;Save data query and share
&lt;/li&gt;&lt;li&gt;More and better graphing
&lt;/li&gt;&lt;li&gt;Embedding! - /resource/../embed
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
User stories and analysis: &lt;a class="ext-link" href="http://ckan.okfnpad.org/feature-2283-data-viewer-v3"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/feature-2283-data-viewer-v3&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2283</link>
        <guid isPermaLink="false">http://localhost/ticket/2283</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2284: Local queries/views/viz in Related stuff.</title>
                  <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>
        <link>http://localhost/ticket/2284</link>
        <guid isPermaLink="false">http://localhost/ticket/2284</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2285: Data Previewer / Viewer v3 : Embedding! - /resource/../embed</title>
                  <description>&lt;p&gt;
Allow a user to embed the data viewer in their webpage.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[x] Embedding widget [1d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;[x] The embed page [1-2d]
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;[x] Documentation and Announce [0.5d]
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Depends upon:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[x] Recline improvements &lt;a class="closed ticket" href="http://localhost/ticket/2285?d" title="enhancement: Data Previewer / Viewer v3 : Embedding! - /resource/../embed (closed: fixed)"&gt;?d&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
All the above, plus user stories are fleshed out in &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://ckan.okfnpad.org/feature-2283-data-viewer-v3"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/feature-2283-data-viewer-v3&lt;/a&gt;?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2285</link>
        <guid isPermaLink="false">http://localhost/ticket/2285</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>zephod</dc:creator>

                  <title>#2286: Upgrade to boostrap v2.0.2</title>
                  <description>&lt;p&gt;
I minified bootstrap and apparently downgraded the version. This breaks things in Recline, and creates weird discrepancies (DGU uses 2.0.2 and had some problems importing HTML from &lt;a class="missing wiki"&gt;TheDataHub?&lt;/a&gt; core, for example.)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Switch to the latest minifed CSS + JS
&lt;/li&gt;&lt;li&gt;QA-sweep the site, especially dataset/edit
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2286</link>
        <guid isPermaLink="false">http://localhost/ticket/2286</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2287: Consistent datetime and time period strings localization</title>
                  <description>&lt;p&gt;
Find all places where date, times and time periods are rendered as strings in CKAN. Make them all go through the same code path (e.g. the helper function in helpers.py) with localization support.
&lt;/p&gt;
&lt;p&gt;
For example, on the user index page right now there are time period strings like "less than 1 month" that currently do not get translated (and the way they're implemented doesn't look i18n-friendly).
&lt;/p&gt;
&lt;p&gt;
ISO date format everywhere might be a good idea.
&lt;/p&gt;
&lt;p&gt;
Need to consider local timezone issues.
&lt;/p&gt;
&lt;p&gt;
Python standard library and Babel may have useful helpers for this.
&lt;/p&gt;
&lt;p&gt;
Should the local timezone displayed be a global setting per CKAN instance? Or should it change depending on the location of the user who is viewing the page?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2287</link>
        <guid isPermaLink="false">http://localhost/ticket/2287</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2288: Fix i18n of strings on auth group add/edit pages</title>
                  <description>&lt;p&gt;
There are a couple of strings on the authorization group add/edit form that are not being translated:
&lt;/p&gt;
&lt;p&gt;
"Name: Please enter a value" (error message when you try to add an auth group with no name)
&lt;/p&gt;
&lt;p&gt;
"User name"
&lt;/p&gt;
&lt;p&gt;
"Save" button
&lt;/p&gt;
&lt;p&gt;
The form seems to be built using &lt;a class="missing wiki"&gt;FormBuilder?&lt;/a&gt;. See ckan/forms/authorizationgroup.py, builder.set_displayed_fields()
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2288</link>
        <guid isPermaLink="false">http://localhost/ticket/2288</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2289: Flash messages are not being translated?</title>
                  <description>&lt;p&gt;
There are a couple of flash messages in ckan/controllers/user.py that show up in English, even if another language is in use, and even though the strings are marked for translation with gettext and have translations in the po and mo files:
&lt;/p&gt;
&lt;p&gt;
"[USER NAME] is now logged in"
&lt;/p&gt;
&lt;p&gt;
"Login failed. Bad username or password. (Or if using OpenID, it hasn't been associated with a user account.)"
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2289</link>
        <guid isPermaLink="false">http://localhost/ticket/2289</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2290: Mark facet titles in search pages for translation</title>
                  <description>&lt;p&gt;
The strings Tags, Res_format and Groups on e.g. the package index page should be marked for translation. These strings have been refactored in the feature-1821-multilingual-extension branch, so wait until that branch has been merged into master.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2290</link>
        <guid isPermaLink="false">http://localhost/ticket/2290</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2291: DataStorer incorrectly attempts to store JSON in DataStore</title>
                  <description>&lt;p&gt;
See &lt;a class="ext-link" href="http://thedatahub.org/dataset/ecb13156-cf11-4e91-b51c-f287d154276e/resource/5db67915-40cb-467e-9d72-194ea4973670"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/ecb13156-cf11-4e91-b51c-f287d154276e/resource/5db67915-40cb-467e-9d72-194ea4973670&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This was marked as json format (and is JSON) but appears to have been imported as a quasi-CSV. Either this hsould not be imported at all or it should be imported as JSON ... (which is straightforward to do).
&lt;/p&gt;
&lt;p&gt;
Assigning to David for triage and review.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2291</link>
        <guid isPermaLink="false">http://localhost/ticket/2291</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2292: Group edit form no longer allows for adding of multiple datasets at once</title>
                  <description>&lt;p&gt;
Can only add one dataset at a time now (not sure when this broke but was working ~2-3m ago).
&lt;/p&gt;
&lt;p&gt;
Assigning to seanh for review and estimation. I'd rate this as quite annoying but not absolutely critical (hence assigned priority).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2292</link>
        <guid isPermaLink="false">http://localhost/ticket/2292</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2293: Rename of Group results in disappearance of associated datasets from group page</title>
                  <description>&lt;p&gt;
Rename of group makes all the datasets associated with the group disappear on the group listing page. (But they are still there if you look at edit).
&lt;/p&gt;
&lt;p&gt;
Suspect this is because we are using group name (rather than id!!) in the search index ...
&lt;/p&gt;
&lt;p&gt;
As group rename should be rare I'm marking this as minor though actual effect is major.
&lt;/p&gt;
&lt;p&gt;
Assigning to rossjones for review and cost assessment.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2293</link>
        <guid isPermaLink="false">http://localhost/ticket/2293</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2294: Unauthorized action on Data API gets 302 rather than 401 or similar</title>
                  <description>&lt;p&gt;
Well known issue that 401 *in API* end up with 302 redirect to login page (which makes no sense and is very confusing for clients).
&lt;/p&gt;
&lt;p&gt;
Fix this by ensuring that error messsages on API get passed through correctly.
&lt;/p&gt;
&lt;p&gt;
Minor because affect is annoying but not terminal
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2294</link>
        <guid isPermaLink="false">http://localhost/ticket/2294</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2295: Migrate CKAN packaging and apt.ckan.org from dgu-buildbot</title>
                  <description>&lt;ul&gt;&lt;li&gt;Create Jenkins task for packaging CKAN
&lt;/li&gt;&lt;li&gt;... and publishing to s3://apt.ckan.org
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2295</link>
        <guid isPermaLink="false">http://localhost/ticket/2295</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2296: Initial analysis of moderated edits</title>
                  <description>&lt;p&gt;
What needs doing, and how long will it take?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2296</link>
        <guid isPermaLink="false">http://localhost/ticket/2296</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2297: Initial analysis of follow support</title>
                  <description></description>
        <link>http://localhost/ticket/2297</link>
        <guid isPermaLink="false">http://localhost/ticket/2297</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2298: Add sort-by controls to the search results page</title>
                  <description>&lt;p&gt;
Sort-by functionality was exposed through the package controller in &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;.  But no controls were added to the search-page.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;What should the sortBy controls/widget look like?
&lt;/li&gt;&lt;li&gt;Which fields should be exposed?
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The above commit is in the release-1.6.1 branch, so this work is dependant upon release-1.6.1 from being merged into master.
&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="https://github.com/okfn/ckan/commit/8685c6000d1cb211928b4dbc63990fb72d884f8c"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/8685c6000d1cb211928b4dbc63990fb72d884f8c&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2298</link>
        <guid isPermaLink="false">http://localhost/ticket/2298</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2299: Set Slovakas default language on data.gov.sk</title>
                  <description></description>
        <link>http://localhost/ticket/2299</link>
        <guid isPermaLink="false">http://localhost/ticket/2299</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2300: Write initial docs for multilingual branch</title>
                  <description></description>
        <link>http://localhost/ticket/2300</link>
        <guid isPermaLink="false">http://localhost/ticket/2300</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2301: Replace old-style string formatting with format() method (at least in strings marked for translation)</title>
                  <description>&lt;p&gt;
Some strings in CKAN are passed to gettext with more than one %s in them, this is no good as translators may need to change the order of substituted words.
&lt;/p&gt;
&lt;p&gt;
Strings should not use the old style % substitution, they should use the new format method in Python 2.6+, e.g.:
&lt;/p&gt;
&lt;p&gt;
'This {food} is {adjective}.'.format(food='spam', adjective='absolutely horrible')
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://docs.python.org/release/2.6.8/tutorial/inputoutput.html#fancier-output-formatting"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.python.org/release/2.6.8/tutorial/inputoutput.html#fancier-output-formatting&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We should probably only change strings that are marked for translation and that contain multiple %s, don't want to make too much work or cause too many strings to change and need to be re-translated.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2301</link>
        <guid isPermaLink="false">http://localhost/ticket/2301</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2302: Simple theming</title>
                  <description>&lt;p&gt;
Needs re-testing after the ODS re-theme.
====
&lt;/p&gt;
&lt;p&gt;
Simple image upload, text changes and css updates for a single instance.  All done on a single configuration/admin page
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="http://ckan.okfnpad.org/simple-themes"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/simple-themes&lt;/a&gt; for user stories
&lt;/p&gt;
&lt;p&gt;
[x] Initial version will only take an image_url rather than allowing an upload.
&lt;/p&gt;
&lt;p&gt;
[x] New page with form for title, tagline, image loader etc.
&lt;/p&gt;
&lt;p&gt;
[x] Allow the user to paste in values for the CSS, do we really want a colour swatch?
&lt;/p&gt;
&lt;p&gt;
[x] Generate local CSS override which should *somehow* override colors in the original CSS.
&lt;/p&gt;
&lt;p&gt;
[x] Allow user to provide text for an about page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2302</link>
        <guid isPermaLink="false">http://localhost/ticket/2302</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2303: Move ECPortal rdf dump paster</title>
                  <description>&lt;p&gt;
Move ECPortal rdf dump paster command into core so that it can be run on thedatahub for  virtuoso install.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2303</link>
        <guid isPermaLink="false">http://localhost/ticket/2303</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2304: Watching/following of dataset/users</title>
                  <description>&lt;p&gt;
User story &lt;a class="closed ticket" href="http://localhost/ticket/37" title="enhancement: Purge a Revision (i.e. purge all changes associated with that revision) (closed: fixed)"&gt;#037&lt;/a&gt; here: &lt;a class="ext-link" href="http://ckan.okfnpad.org/feature-1515-activity-streams-user-stories"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/feature-1515-activity-streams-user-stories&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Technical analysis here: &lt;a class="ext-link" href="http://ckan.okfnpad.org/27"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/27&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2304</link>
        <guid isPermaLink="false">http://localhost/ticket/2304</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2305: User dashboard with private consolidated activity stream</title>
                  <description>&lt;p&gt;
User story &lt;a class="closed ticket" href="http://localhost/ticket/35" title="defect: IP Address for non-logged in users is always 127.0.0.1 when deployed ... (closed: fixed)"&gt;#035&lt;/a&gt; here: &lt;a class="ext-link" href="http://ckan.okfnpad.org/feature-1515-activity-streams-user-stories"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/feature-1515-activity-streams-user-stories&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Technical analysis here: &lt;a class="ext-link" href="http://ckan.okfnpad.org/27"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.okfnpad.org/27&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2305</link>
        <guid isPermaLink="false">http://localhost/ticket/2305</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2306: Updates to metadata model</title>
                  <description>&lt;p&gt;
Finalised metadata model requires several changes to our existing model:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;new extra: alternative title
&lt;/li&gt;&lt;li&gt;new extra: identifier
&lt;/li&gt;&lt;li&gt;new extra: interop level
&lt;/li&gt;&lt;li&gt;new extra: version description
&lt;/li&gt;&lt;li&gt;new extra: dataset status
&lt;/li&gt;&lt;li&gt;dataset type: change to fixed vocab
&lt;/li&gt;&lt;li&gt;resource types: prefix with documentation/distribution/etc for clarity, add new resource types
&lt;/li&gt;&lt;li&gt;rename update frequency to accrual periodicity
&lt;/li&gt;&lt;li&gt;add new fixed vocab field: language coverage
&lt;/li&gt;&lt;li&gt;resources: missing issued date - add as new core field called 'created'
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Also add functional tests for full metadata model.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2306</link>
        <guid isPermaLink="false">http://localhost/ticket/2306</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2307: Merge 1.6.1 into master</title>
                  <description>&lt;p&gt;
There are a number of features developed against 1.6.1 that need to be merged into master.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2307</link>
        <guid isPermaLink="false">http://localhost/ticket/2307</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2308: Merge facet html snippets in the multi-lingual branch</title>
                  <description>&lt;p&gt;
Seanh and icmurray both touched on the html snippets in facets.html.  So there's a merge issue.  icmurray to merge changes in the multi-lingual branch prior to merging into master.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2308</link>
        <guid isPermaLink="false">http://localhost/ticket/2308</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2309: Organizations review with SH</title>
                  <description>&lt;p&gt;
Review organizations code with Sean and explain the key parts.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2309</link>
        <guid isPermaLink="false">http://localhost/ticket/2309</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2310: Refactor the search-query construction in feeds.py</title>
                  <description>&lt;p&gt;
The feeds controller, used to construct atom feeds, duplicates code found in the package controller's search action (in order to construct the custom feed).
&lt;/p&gt;
&lt;p&gt;
Refactor this to remove duplication.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2310</link>
        <guid isPermaLink="false">http://localhost/ticket/2310</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2311: disqus - improvements</title>
                  <description>&lt;p&gt;
get working on TDH
&lt;/p&gt;
&lt;p&gt;
look at removing stream filters
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2311</link>
        <guid isPermaLink="false">http://localhost/ticket/2311</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2312: Analysis of how datasets could belong to users instead of Groups</title>
                  <description>&lt;p&gt;
&lt;strong&gt; DUPLICATE OF &lt;a class="assigned ticket" href="http://localhost/ticket/2548" title="enhancement: Object ownership for groups/package (assigned)"&gt;#2548&lt;/a&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
Currently datasets can only be part of a group but that is quite heavyweight when a single user wants to upload a single dataset.  To resolve this it would be great if a dataset could be attached to a user directly - find out how.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2312</link>
        <guid isPermaLink="false">http://localhost/ticket/2312</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2313: Deprecate old facet data structures and related functions.</title>
                  <description>&lt;p&gt;
In branch feature-1821-multilingual-extension, a new faceting datastructure was introduced.  This makes the old one and related functions obsolete.  These have been marked as deprecated for the 1.7 release, and should be removed for the 1.8 release.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;helpers.py:facet_items()
&lt;/li&gt;&lt;li&gt;facets.html:facet_sidebar()
&lt;/li&gt;&lt;li&gt;uses of c.facets (rather than c.new_facets)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2313</link>
        <guid isPermaLink="false">http://localhost/ticket/2313</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2314: parse_rfc_2822 tests failing in some timezones</title>
                  <description>&lt;p&gt;
These two tests:
&lt;/p&gt;
&lt;p&gt;
ckan.tests.lib.test_helpers.&lt;a class="missing wiki"&gt;TestHelpers?&lt;/a&gt;.test_parse_rfc_2822_gmt_case
&lt;/p&gt;
&lt;p&gt;
ckan.tests.lib.test_helpers.&lt;a class="missing wiki"&gt;TestHelpers?&lt;/a&gt;.test_parse_rfc_2822_with_offset
&lt;/p&gt;
&lt;p&gt;
have been failing in certain timezones. In the UK they pass, if you're in Germany they'll fail.
&lt;/p&gt;
&lt;p&gt;
The function being tested uses datetime.datetime.fromtimestamp() which uses the local time, but the tests compare the results against hardcoded strings, so the tests cannot work in different timezones.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2314</link>
        <guid isPermaLink="false">http://localhost/ticket/2314</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2315: Change Cookie expiry</title>
                  <description>&lt;p&gt;
Change login cookie from a default expiry of 50 years to 2 years. You can also uncheck a 'remember me' checkbox on the login form for the cookie to just last the session.
&lt;/p&gt;
&lt;p&gt;
Background conversation on ckan-dev:
&lt;/p&gt;
&lt;p&gt;
DR: I wonder if anyone objects to the expiry of the login cookie to be
changed from 50 years to 2 years? 50 years might be appropriate for
thedatahub.org, but for government sites it seems (to me) to be too
lax.
&lt;/p&gt;
&lt;p&gt;
Toby: is this the repoze.who cookie?  If so that seems sensible to me.
&lt;/p&gt;
&lt;p&gt;
Rufus: Definitely agree. I would also like to see introduction of a standard
"remember me" checkbox (set to true by default). At the moment a login
lasts forever (until you logout) automatically.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2315</link>
        <guid isPermaLink="false">http://localhost/ticket/2315</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2316: add resource status api to see the state of celely tasks</title>
                  <description>&lt;p&gt;
add resource_status_show action function to see the state of celery tasks.
&lt;/p&gt;
&lt;p&gt;
Need to get information from both out task status table and the celery_taskmeta table.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2316</link>
        <guid isPermaLink="false">http://localhost/ticket/2316</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2317: Corrections to dataset creation form for v1.7</title>
                  <description>&lt;ul&gt;&lt;li&gt;Add home page url
&lt;/li&gt;&lt;li&gt;Remove group option (seen it confuse several users) - perhaps replace with tags (?)
&lt;/li&gt;&lt;li&gt;Check form looks ok in portugese (seems to be a problem with css)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2317</link>
        <guid isPermaLink="false">http://localhost/ticket/2317</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2318: Bug with Portugese translation and Javascript</title>
                  <description>&lt;p&gt;
If you switch to Portugese and try to add a resource on dataset edit it will fail. This is because there is a string translation in js_strings.html that has quotes in it. When this is inserted into the file this causes a js exception which then prevents any further js processing.
&lt;/p&gt;
&lt;p&gt;
Specifically:
&lt;/p&gt;
&lt;pre class="wiki"&gt;CKAN.Strings.youHaveUnsavedChanges = "Você tem alterações não salvas. Certifique-se de ter clicado "Salvar Alterações" abaixo antes de sair desta página.";
Uncaught SyntaxError: Unexpected identifier
&lt;/pre&gt;&lt;p&gt;
To fix is simple i imagine: need to escape " correctly in js_strings.html (or translations used).
&lt;/p&gt;
&lt;p&gt;
I have temporarily patched this live in order to allow the hackday here to continue.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2318</link>
        <guid isPermaLink="false">http://localhost/ticket/2318</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2319: Better auto-complete for groups on dataset edit page</title>
                  <description>&lt;p&gt;
Use jquery chosen?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2319</link>
        <guid isPermaLink="false">http://localhost/ticket/2319</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2320: Introduce new state: archived</title>
                  <description>&lt;p&gt;
Some datasets become obsolete: e.g. &lt;a class="ext-link" href="http://datahub.io/dataset/uncdb"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.io/dataset/uncdb&lt;/a&gt; Do not want to delete them but want them marked as archived or deprecated or something.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2320</link>
        <guid isPermaLink="false">http://localhost/ticket/2320</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2321: Use resource names/titles in URLs</title>
                  <description>&lt;p&gt;
Would make them much nicer but requires:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Ensure uniqueness (or deal with ambiguity)
&lt;/li&gt;&lt;li&gt;(?) Slug/names versus titles
&lt;ul&gt;&lt;li&gt;Aside: what is currently called name should probably be title
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2321</link>
        <guid isPermaLink="false">http://localhost/ticket/2321</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2322: Convenience offset on end of resource urls: /raw, /api, /viewer</title>
                  <description>&lt;h2 id="Raw"&gt;Raw&lt;/h2&gt;
&lt;p&gt;
/raw or /download (latter may be better)
&lt;/p&gt;
&lt;pre class="wiki"&gt;/dataset/{id}/resource/{resource-id}/raw
=&amp;gt; redirects to resource url (download)
&lt;/pre&gt;&lt;h2 id="API"&gt;API&lt;/h2&gt;
&lt;pre class="wiki"&gt;/dataset/{id}/resource/{resource-id}/api[/....]
=&amp;gt; either redirects or directly serves /api/data/{resource-id}
&lt;/pre&gt;&lt;h2 id="ViewerExplorer"&gt;Viewer (Explorer?)&lt;/h2&gt;
&lt;p&gt;
Do data viewer but without anything else showing (full-screen?). this would not be just the data explorer but other cases too (including iframe etc ...)
&lt;/p&gt;
&lt;pre class="wiki"&gt;/dataset/{id}/resource/{resource-id}/viewer
Resource (pre)-viewer without anything else (perhaps include resource title)
&lt;/pre&gt;&lt;hr /&gt;
&lt;p&gt;
Assigning for kindly for review.
&lt;/p&gt;
&lt;p&gt;
These would take about 20m to implement and would be *very* convenient from my experience of using the data API.
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
Implementation at enhancement-2322-convenience-urls
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2322</link>
        <guid isPermaLink="false">http://localhost/ticket/2322</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2323: Auto-complete in organizations</title>
                  <description>&lt;p&gt;
Apparently auto-complete in Organizations may not work.  Check and fix.
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/5eca7d5e37c0ef392b768b8b3768b2c3f93448b5"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/5eca7d5e37c0ef392b768b8b3768b2c3f93448b5&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2323</link>
        <guid isPermaLink="false">http://localhost/ticket/2323</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2324: Link API docs to relevant version not just latest</title>
                  <description>&lt;p&gt;
The link to the API docs in the footer always points to the latests docs, which may not be correct for the particular CKAN version.
&lt;/p&gt;
&lt;p&gt;
Also, remove the 'API' link (to /api/1) as pointless and misleading
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2324</link>
        <guid isPermaLink="false">http://localhost/ticket/2324</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2325: Format alphabet pager (tags page) for bootstrap</title>
                  <description>&lt;p&gt;
Also need to fix bug where 'Other' is never highlighted.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2325</link>
        <guid isPermaLink="false">http://localhost/ticket/2325</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2326: dataset permalinks</title>
                  <description>&lt;p&gt;
create permalinks
&lt;/p&gt;
&lt;p&gt;
eg \dataset\~a5-DQ\nice-name
&lt;/p&gt;
&lt;p&gt;
~XXXXX defines the permalink the nice-name is ignored
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;packages table needs a new field for this data
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;existing datasets need updating
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;new datasets need the identifier creating
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;routing needs updating
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;needs to work for all urls like edit
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Once this is implemented we can decide when we will use permalinks vs the normal urls.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2326</link>
        <guid isPermaLink="false">http://localhost/ticket/2326</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2327: Upgrade solr schema to version 1.4</title>
                  <description>&lt;ul&gt;&lt;li&gt;Add Ascii folding filter to text fields.
&lt;/li&gt;&lt;li&gt;Add capacity field for public, private access.
&lt;/li&gt;&lt;li&gt;Add title_string so you can sort alphabetically on title.
&lt;/li&gt;&lt;li&gt;Fields related to analytics, access and view counts.
&lt;/li&gt;&lt;li&gt;Add data_dict field for the whole package_dict.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Actual implementation of data_dict adding will be added later.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2327</link>
        <guid isPermaLink="false">http://localhost/ticket/2327</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2328: Link to Catalog API for each Dataset, Group and Tag</title>
                  <description>&lt;p&gt;
At the moment no way for a normal user to find JSON versions of this material. Would it be worth adding back a link somewhere on the page?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2328</link>
        <guid isPermaLink="false">http://localhost/ticket/2328</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2329: Add back in RSS/Atom links on relevant pages</title>
                  <description>&lt;p&gt;
E.g. on dataset page, on revision page, on user page and on search results.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2329</link>
        <guid isPermaLink="false">http://localhost/ticket/2329</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2330: Make api read-actions GETable</title>
                  <description>&lt;p&gt;
Whitelist any GETable api actions, and optionally construct the query from url params rather than body.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2330</link>
        <guid isPermaLink="false">http://localhost/ticket/2330</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2331: Search should AND terms not OR terms</title>
                  <description>&lt;p&gt;
Appears current default search in CKAN ORs terms rather than ANDing them (i.e. adding more terms increasing number of items found rather than reducing it).
&lt;/p&gt;
&lt;p&gt;
Not sure when this crept in or if it has been there for a long time.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2331</link>
        <guid isPermaLink="false">http://localhost/ticket/2331</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2332: Fixes for v1.7 release</title>
                  <description>&lt;p&gt;
A place to list crucial fixes for v1.7 release:
&lt;/p&gt;
&lt;p&gt;
Related extension:
&lt;/p&gt;
&lt;p&gt;
All not complete now moved to &lt;a class="closed ticket" href="http://localhost/ticket/2347" title="enhancement: Related stuff dashboard and changes (closed: fixed)"&gt;#2347&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Related Item has comments on index page (they should not show up here -- why is this happening!)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Related item should be to left of history (history could in fact move to RHS)&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;What about losing icons since we duplicate for related item
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Related item plus sign is very poorly aligned within box
&lt;ul&gt;&lt;li&gt;Add related items should be in drop down like for resources (?) to make it easy to add items
&lt;/li&gt;&lt;li&gt;Hover should show a title that gives some information about what related are (not at all clear)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Related item only includes App, Idea, Visualization but not API  | Post | Paper | News Article options as in original ticket &lt;a class="closed ticket" href="http://localhost/ticket/2204" title="enhancement: [super] Related (Stuff) Extension (closed: fixed)"&gt;#2204&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Search results:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="reopened ticket" href="http://localhost/ticket/2331" title="defect: Search should AND terms not OR terms (reopened)"&gt;#2331&lt;/a&gt; - search should add not or
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Search results should be similar across group pages and normal search results (suggest adopting group page style)&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;Search results resource link should link to resource page rather than url for that resource
&lt;/li&gt;&lt;li&gt;Suggest we could tidy this a bit (e.g. have resources in mini-sidebar of search result ...?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Data viewer:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Merge updates to Recline (that did go in before deadline but do not seem to have made v1.7 branch) &lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/146a5c1130cc77cb2ad2c6ef6b3a53074908bf07"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/146a5c1130cc77cb2ad2c6ef6b3a53074908bf07&lt;/a&gt;&lt;/del&gt;
&lt;ul&gt;&lt;li&gt;Ensure still using read-only (this seems to have been lost in upgrade)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Do not show failed preview with red-bar (esp when just empty datastore ...)
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
a) Data Viewer checks if datastore is empty nad falls back to ther options if emtpy
b) &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; enabled is off by default and only turned on either explicitly by user or by &lt;a class="missing wiki"&gt;DataStorer?&lt;/a&gt; on successful store ...
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;&lt;li&gt;(? not really a fix) Give out a link as well as embed instructions (I often want to link to the explorer in a given state)
&lt;ul&gt;&lt;li&gt;Should this link to the resource page or to a dedicated viewer page - cf # 2322 (resource sub-urls like /download, /api ...)
&lt;/li&gt;&lt;li&gt;Do &lt;a class="closed ticket" href="http://localhost/ticket/2322" title="enhancement: Convenience offset on end of resource urls: /raw, /api, /viewer (closed: fixed)"&gt;#2322&lt;/a&gt; ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Decent powered by icon for the Embed for the &lt;a class="missing wiki"&gt;DataHub?&lt;/a&gt; (make this text customizable and allow html ...)
&lt;/li&gt;&lt;li&gt;Embed link uses uuid rather than dataset name (this goes to perma-url question ...)
&lt;/li&gt;&lt;li&gt;Data viewer embed url includes all the resource info
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Dataset page:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Put home page link somewhere more prominent (e.g. the top of the sidebar)
&lt;/li&gt;&lt;li&gt;Put author more prominent (at top right)
&lt;/li&gt;&lt;li&gt;(? - new work) List CKAN owners at top right in sidebar
&lt;/li&gt;&lt;li&gt;Make resources stand out more
&lt;/li&gt;&lt;li&gt;Rename resources tab and heading to Data &amp;amp; Resources
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Dataset edit and create:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Corrections to dataset creation form for v1.7 - &lt;a class="closed ticket" href="http://localhost/ticket/2317" title="enhancement: Corrections to dataset creation form for v1.7 (closed: wontfix)"&gt;#2317&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Better auto-complete for groups on dataset edit/new page - &lt;a class="closed ticket" href="http://localhost/ticket/2319" title="enhancement: Better auto-complete for groups on dataset edit page (closed: wontfix)"&gt;#2319&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Remove groups box and replace with tags on the new page (or is this needed for organizations stuff?)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Description / notes text area is not wide enough.
&lt;ul&gt;&lt;li&gt;Should also be larger on edit page
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Problem with date instructions on add/edit resource: "Dates are in ISO Format — eg. 2012-12-25 or %c2010-05-31T14:30%d."
&lt;/li&gt;&lt;li&gt;Add/edit resource: new code to auto-check urls being added is great but from UX point of view has draw back that (esp on low speed connections) page just seems to hang for a long time with nothing happening. I wonder if either
&lt;ul&gt;&lt;li&gt;A) this could happen after resource created on form (e.g. it creates, and then an overlay comes up saying: checking url and gathering url information or similar)
&lt;/li&gt;&lt;li&gt;Or B) we still do this before creating new resource form on page but we still should show something like a spinner and some info like "checking url and gathering url info ...)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Resource view:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Do not show no description in no description (just show dataset info)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Theme:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Fix spacing above page title (i.e. dataset title etc)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Bootstrap 2.0.2 (@zephod was *supposed* to have done this) - should be trivial and gives important bugfixes for data viewer&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Fix subnav width on resources pages (does not extend all the way to the right like it should)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Fix spacing of top menu and search box (do not look right)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;Group pages:
&lt;ul&gt;&lt;li&gt;view page: image / logo is really poorly locate and sized, see e.g. &lt;a class="ext-link" href="http://datahub.io/group/wikimedia"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.io/group/wikimedia&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;view page: admin heading on RHS sidebar is wrongly indented&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Miscellaneous:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Ensure that we out-of-the-box config for CKAN has (&lt;a class="closed ticket" href="http://localhost/ticket/2388" title="enhancement: Update &amp;#34;out of the box&amp;#34; settings for CKAN (closed: fixed)"&gt;#2388&lt;/a&gt;):
&lt;ul&gt;&lt;li&gt;Only logged in users able to create
&lt;/li&gt;&lt;li&gt;Creation permissions have only creators able to update a dataset
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Deployments (without deployment we cannot know these are working):
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;del&gt;Social extension&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;&lt;del&gt;Analytics&lt;/del&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2332</link>
        <guid isPermaLink="false">http://localhost/ticket/2332</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2333: Introduce new resource type datastore</title>
                  <description>&lt;p&gt;
This is a resource that is *just* in the datastore. At the moment there are hacky ways to do this (create resource with meaningless URL etc) but we should do this properly:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;New Option: &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; Table in add a resource form
&lt;/li&gt;&lt;li&gt;URL field is disabled (or points at /api/data or something rather pointless)
&lt;/li&gt;&lt;li&gt;Download button is disabled
&lt;ul&gt;&lt;li&gt;Better would be to find a way to serialize an ES table or stream it ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2333</link>
        <guid isPermaLink="false">http://localhost/ticket/2333</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2334: Improved data import</title>
                  <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>
        <link>http://localhost/ticket/2334</link>
        <guid isPermaLink="false">http://localhost/ticket/2334</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2335: Unicode characters don't work in CKAN ini files</title>
                  <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>
        <link>http://localhost/ticket/2335</link>
        <guid isPermaLink="false">http://localhost/ticket/2335</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2336: Move Jenkins' install script into ckan core so it can be versioned</title>
                  <description></description>
        <link>http://localhost/ticket/2336</link>
        <guid isPermaLink="false">http://localhost/ticket/2336</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2337: Sort out ini file confusion in docs</title>
                  <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>
        <link>http://localhost/ticket/2337</link>
        <guid isPermaLink="false">http://localhost/ticket/2337</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2338: Help with setup of new test instance for EC ODP (running on RedHat)</title>
                  <description>&lt;p&gt;
I won't be needed for this during the current sprint, closing.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2338</link>
        <guid isPermaLink="false">http://localhost/ticket/2338</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2339: Demo install on RHEL/CentOS, and install instructions</title>
                  <description></description>
        <link>http://localhost/ticket/2339</link>
        <guid isPermaLink="false">http://localhost/ticket/2339</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2340: Get Jenkins to automatically run core extensions tests</title>
                  <description></description>
        <link>http://localhost/ticket/2340</link>
        <guid isPermaLink="false">http://localhost/ticket/2340</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2341: Fix Jenkins issue when testing branches that contain model changes</title>
                  <description></description>
        <link>http://localhost/ticket/2341</link>
        <guid isPermaLink="false">http://localhost/ticket/2341</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2342: Fix Jenkins issue when testing branches with different solr schema versions</title>
                  <description></description>
        <link>http://localhost/ticket/2342</link>
        <guid isPermaLink="false">http://localhost/ticket/2342</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2343: Convert all non-free metadata fields to vocabulary fields</title>
                  <description>&lt;ul&gt;&lt;li&gt;convert non-free fields to vocab fields (eg: interoperability_level)
&lt;/li&gt;&lt;li&gt;store values as JSON files in the ecportal repo
&lt;/li&gt;&lt;li&gt;translate output on dataset view page
&lt;/li&gt;&lt;li&gt;add tests
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2343</link>
        <guid isPermaLink="false">http://localhost/ticket/2343</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2344: Get jenkins install script into CKAN core</title>
                  <description>&lt;p&gt;
After checking out a commit to test from CKAN's &lt;a class="missing wiki"&gt;GitHub?&lt;/a&gt;, Jenkins runs a script that creates a new virtual environment and installs CKAN and its dependencies into it, and does some other necessary tasks. Jenkins then runs the tests in this virtualenv.
&lt;/p&gt;
&lt;p&gt;
The install script may have to change from one commit to the next as CKAN's install instructions change, so it would be good if the script was shipped in CKAN core. That way Jenkins will run different versions of the script depending on which commit it's testing and if the tests fail because the script is wrong then that's actually a bug that needs to be fixed in CKAN core. Also the CKAN install instructions could be simplified a lot by just having users run this script instead of doing each step by hand.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2344</link>
        <guid isPermaLink="false">http://localhost/ticket/2344</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2345: Rewrite action API docs using autodoc</title>
                  <description></description>
        <link>http://localhost/ticket/2345</link>
        <guid isPermaLink="false">http://localhost/ticket/2345</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2346: EC ODP Theme updates</title>
                  <description>&lt;p&gt;
Changes:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;tidy up activity feed on home page or replace with search results (by modified date)
&lt;/li&gt;&lt;li&gt;&lt;del&gt;move ckan menu to a left sidebar (see Sam's template)&lt;/del&gt; (not doing this now)
&lt;/li&gt;&lt;li&gt;update templates with changes from master
&lt;/li&gt;&lt;li&gt;use local image in language dropdown (ecportal.js)
&lt;/li&gt;&lt;li&gt;update dataset read template
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
To discuss:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;should we rename 'organization' to 'publisher'? Requires updating all templates and the url mapping.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2346</link>
        <guid isPermaLink="false">http://localhost/ticket/2346</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2347: Related stuff dashboard and changes</title>
                  <description>&lt;p&gt;
Some additions to the related stuff functionality to make it more useful post the 1.7 release.
&lt;/p&gt;
&lt;p&gt;
[x] Edit item (after checking auth)
&lt;/p&gt;
&lt;p&gt;
[x] My related things on my user page
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Show user created related things on the users' page with links direct to the related page of that dataset. {0.5d}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
[x] Related stuff usage counts { 1d }
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Record the number of times the link for a related item is clicked.  This is likely to mean that the link fires to call CKAN and then redirects to the actual URL.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[x] Un-attached related items {0.25d}
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Allow related items to be created without being attached to datasets.  This may mean that the dataset field is optional in the API.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[ ] Dashboard for related
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
A dashboard for related items, site-wide (not package specific) and orderable by date, views, {rating}, popularity of the dataset.  Would be useful (possibly) for site-admin to mark one or more as 'featured'
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Dashboard + Controller (Related) {1d}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Ordering at logic layer (date, views, rating, popularity of package, featured) {1d}
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] date
[x] views
[x] featured
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] 'Featured' related item with mechanism to fetch it. {0.5d}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] UI within dashboard for sysadmins to check/uncheck feature status {0.5d}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[x] Changing auth for related.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Currently auth is based on deletion being possible by dataset owner and the related owner but it may be that a lot of the auth for related items should be configured to have more restrictive auth.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Implement auth changes for publisher auth profile. { 0.5d }
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[x] General issues
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Serverside validation of URLs
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Activity updates
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Make optional
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Related item only includes App, Idea, Visualization but not API | Post | Paper | News Article options as in original ticket &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;/blockquote&gt;
&lt;p&gt;
[ ] UI Changes
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] General tidy up, fix form etc (icon for menu bar)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ]  Highlight featured items py:if=&amp;#34;related.featured"
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] Show either view count or popularity ${ related.view_count }
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] A user's related items should be on their home page
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] Related item plus sign is very poorly aligned within box
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] Add related items should be in drop down like for resources (?) to make it easy to add items
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] Hover should show a title that gives some information about what related are (not at all clear)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
"Apps, Ideas, Visualization and other material related to this dataset"
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[x] Related is a pretty terrible name in the UI - much better to have it called Apps, Ideas etc (perhaps title tag could even give more details e.g. "Apps, Ideas, Visualization and other material related to this dataset") -- btw i thought this was in &lt;a class="closed ticket" href="http://localhost/ticket/2332" title="enhancement: Fixes for v1.7 release (closed: fixed)"&gt;#2332&lt;/a&gt; but realize it wasn't (apologies for that!)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Went with Apps &amp;amp; Ideas (for now)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
[x] Documentation, documentation, documentation - AFAICT I can't see anything in v1.7 or master docs. I imagine this would be a short section like &lt;a class="ext-link" href="http://docs.ckan.org/en/ckan-1.7/commenting.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/ckan-1.7/commenting.html&lt;/a&gt; (and probably coming right after that in the ToC) which says
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;What it does
&lt;/li&gt;&lt;li&gt;How to enable (and perhaps includes a nice-screenshot!)
&lt;/li&gt;&lt;li&gt;How to customize (e.g. can one customize the list of options of things one can create (e.g. can I set it to just be app and idea or ...)
&lt;/li&gt;&lt;li&gt;Also liase with Mark W re a blog post about this from the user perspective (a screenshot walkthrough ...)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
[ ] Clearly mark the old extension as deprecated from v1.7 forward: &lt;a class="ext-link" href="https://github.com/okfn/ckanext-apps"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-apps&lt;/a&gt; (I just met someone last week who was working on integrating this and had no idea it was replaced by something better in v1.7)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2347</link>
        <guid isPermaLink="false">http://localhost/ticket/2347</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2348: Java client library for CKAN</title>
                  <description>&lt;p&gt;
Start a Java library for interacting with the CKAN Action API.
&lt;/p&gt;
&lt;p&gt;
Currently requires support for Groups, Tags, Resources,  and Search.
&lt;/p&gt;
&lt;p&gt;
An example app would be very useful.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2348</link>
        <guid isPermaLink="false">http://localhost/ticket/2348</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2349: Make sure semantic.datahub.io gets created</title>
                  <description>&lt;p&gt;
[x] Redeploy Sparql endpoint
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
Done at linkeddata.openlinksw.com/sparql
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[x] Make sure it is available at datahub.io/sparql or semantic.datahub.io/sparql
&lt;/p&gt;
&lt;p&gt;
[x] Generate daily dumps
&lt;/p&gt;
&lt;p&gt;
[x] Make dumps available via web
&lt;/p&gt;
&lt;p&gt;
[x] Notify Hugh once running
&lt;/p&gt;
&lt;p&gt;
[x] Announce to LD guys
&lt;/p&gt;
&lt;p&gt;
[x]  Think about how we can apply this to publicdata.eu (can we do the same?) ... (being done elsewhere)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2349</link>
        <guid isPermaLink="false">http://localhost/ticket/2349</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2350: Hooks  in package controller for validating form data</title>
                  <description>&lt;p&gt;
When the validation schema was moved from the package controller into the logic layer, the schema's role was changed from that of processing a form and validating data; to just validating data.  Whilst is makes sense to have a schema for validating data as it comes in and leaves the logic layer; there's no longer the hook available to &lt;a class="missing wiki"&gt;PackageController?&lt;/a&gt; subclasses to do form validation/processing.
&lt;/p&gt;
&lt;p&gt;
Add a hook into _save_new() and save_edit() prior to the logic-layer call which subclasses can then override.
&lt;/p&gt;
&lt;p&gt;
NB - form processing/validation *is* different to validating data.  For example, many data can be inferred from a user's input; or there may be aspects of the form that need to be filled in, but do not make sense to pass as data into the logic-layer, eg. agreeing to T&amp;amp;Cs.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;[ ] Add hooks
&lt;/li&gt;&lt;li&gt;[ ] Use in ckanext-example
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2350</link>
        <guid isPermaLink="false">http://localhost/ticket/2350</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2351: Install EC Portal on CentOS</title>
                  <description>&lt;p&gt;
Install and document (step-by-step) CKAN (and dependencies, and extensions) onto VM on s031.okserver.org which has CentOS 6.2 installed.  Paying particular attention to the fact that we won't have root access on the staging nor production servers, and so a) anything that requires root access must be documented carefully; and b) we want to be able to perform maintenance without being root.
&lt;/p&gt;
&lt;h2 id="Maintenance"&gt;Maintenance&lt;/h2&gt;
&lt;p&gt;
We want to have &lt;em&gt;non-root&lt;/em&gt; access to:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CKAN logs; (relevant) apache logs; qa process' logs; rdf cron logs
&lt;/li&gt;&lt;li&gt;restarting CKAN
&lt;/li&gt;&lt;li&gt;restarting qa processes
&lt;/li&gt;&lt;li&gt;changing/disabling rdf cronjob
&lt;/li&gt;&lt;li&gt;our database (through sql)
&lt;/li&gt;&lt;li&gt;restarting solr
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="CKANandDependencies"&gt;CKAN and Dependencies&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;CKAN installed from source
&lt;/li&gt;&lt;li&gt;Required plugins: synchronous_search ecportal ecportal_form organizations multilingual_dataset multilingual_group multilingual_tag qa
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Extraconfiguration"&gt;Extra configuration&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;uploads
&lt;/li&gt;&lt;li&gt;analytics (toby)
&lt;/li&gt;&lt;li&gt;qa
&lt;/li&gt;&lt;li&gt;rdf cron
&lt;/li&gt;&lt;li&gt;caching
&lt;/li&gt;&lt;li&gt;datastore
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Thingstoremember"&gt;Things to remember&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Use ckanext/multilingual/solr/schema.xml and stopword files
&lt;/li&gt;&lt;li&gt;Use nginx as proxy.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2351</link>
        <guid isPermaLink="false">http://localhost/ticket/2351</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2352: Fix autodoc on CKAN's readthedocs</title>
                  <description></description>
        <link>http://localhost/ticket/2352</link>
        <guid isPermaLink="false">http://localhost/ticket/2352</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2353: Provisional user stories for CMS + Blogging</title>
                  <description>&lt;p&gt;
Provide some provisional user stories for the CMS/Blogging feature.  Should include some of the functionality from wordpresser but be more generic.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2353</link>
        <guid isPermaLink="false">http://localhost/ticket/2353</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2354: Front end performance improvements [super]</title>
                  <description>&lt;p&gt;
Try and increase the page load times for the front end.
&lt;/p&gt;
&lt;h1 id="Now"&gt;Now&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;Always include scripts at the bottom
&lt;/li&gt;&lt;li&gt;Include CSS at the top
&lt;/li&gt;&lt;li&gt;Load fonts with JS
&lt;/li&gt;&lt;li&gt;Concatenate and minify &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; files
&lt;/li&gt;&lt;li&gt;Create a build script to load dependancies seperately
&lt;/li&gt;&lt;li&gt;Enable Gzip compression on resources
&lt;/li&gt;&lt;li&gt;Enable future cache headers on resources
&lt;/li&gt;&lt;/ul&gt;&lt;h1 id="Next"&gt;Next&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;Support serving assets from a CDN
&lt;/li&gt;&lt;li&gt;Look into optimising the CSS - Remove large portions of unused CSS
&lt;/li&gt;&lt;li&gt;Remove extreaneous libraries, can jQuery UI be replaced with bootstrap?
&lt;/li&gt;&lt;/ul&gt;&lt;h1 id="Tools"&gt;Tools&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;Webkit Inspector Audits
&lt;/li&gt;&lt;li&gt;YSlow Firebug Plugin - &lt;a class="ext-link" href="http://yslow.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://yslow.org/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Speed Tracer -  &lt;a class="ext-link" href="https://chrome.google.com/webstore/detail/ognampngfcbddbfemdapefohjiobgbdl"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://chrome.google.com/webstore/detail/ognampngfcbddbfemdapefohjiobgbdl&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h1 id="ContinuousIntegration"&gt;Continuous Integration&lt;/h1&gt;
&lt;p&gt;
YSlow can be hooked up to Jenkins via Phantom JS
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2354</link>
        <guid isPermaLink="false">http://localhost/ticket/2354</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2355: [super] make extensions cleaner</title>
                  <description>&lt;ul&gt;&lt;li&gt;Do an analysis of why upgrades are problematic
&lt;/li&gt;&lt;li&gt;What can we do better
&lt;/li&gt;&lt;li&gt;Decide what to implement
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2355</link>
        <guid isPermaLink="false">http://localhost/ticket/2355</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2356: Localise JavaScript strings</title>
                  <description></description>
        <link>http://localhost/ticket/2356</link>
        <guid isPermaLink="false">http://localhost/ticket/2356</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2357: Create build script for front-end resources</title>
                  <description>&lt;p&gt;
Should minify and concatenate &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; and CSS as part of &lt;a class="closed ticket" href="http://localhost/ticket/2354" title="enhancement: Front end performance improvements [super] (closed: wontfix)"&gt;#2354&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2357</link>
        <guid isPermaLink="false">http://localhost/ticket/2357</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2358: Finish off Release 1.7</title>
                  <description>&lt;p&gt;
Various stuff related with release 1.7:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Review patches sent to the release branch
&lt;/li&gt;&lt;li&gt;Regularly update TDH with latest changes
&lt;/li&gt;&lt;li&gt;write changelog, announce email, etc
&lt;/li&gt;&lt;li&gt;...
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2358</link>
        <guid isPermaLink="false">http://localhost/ticket/2358</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2359: Investigate pycsw integration</title>
                  <description>&lt;p&gt;
Tom Kralidis kindly told us on IRC &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt; that the latest trunk of pycsw includes support for wsgi and different backends, which sounds like could be really useful for CKAN integration.
&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://irclogs.okfn.org/ckan/2012-04-25.txt"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://irclogs.okfn.org/ckan/2012-04-25.txt&lt;/a&gt; 17:16
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2359</link>
        <guid isPermaLink="false">http://localhost/ticket/2359</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2360: Finish INSPIRE support proposal</title>
                  <description>&lt;p&gt;
I've been writing a doc with different issues regarding INSPIRE support in CKAN. It is mostly done, except for some sections on CSW support. Depends on &lt;a class="closed ticket" href="http://localhost/ticket/2359" title="task: Investigate pycsw integration (closed: fixed)"&gt;#2359&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2360</link>
        <guid isPermaLink="false">http://localhost/ticket/2360</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2361: Install ckanext-googleanalytics and ckanext-stats on PDEU</title>
                  <description>&lt;p&gt;
ditto
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2361</link>
        <guid isPermaLink="false">http://localhost/ticket/2361</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2362: Improve plugin documentaion, including examples.</title>
                  <description>&lt;p&gt;
Improve documentation for plugins and add examples. Could use ckanext-example as a base.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2362</link>
        <guid isPermaLink="false">http://localhost/ticket/2362</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2363: Documentation of best caching practice.</title>
                  <description>&lt;p&gt;
Need better documentation on best practices in making page loads faster for non logged in users.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2363</link>
        <guid isPermaLink="false">http://localhost/ticket/2363</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2364: Investigation of payment gateways</title>
                  <description>&lt;p&gt;
Need to investigate alternative payment gateways
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2364</link>
        <guid isPermaLink="false">http://localhost/ticket/2364</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2365: Investigation of multisite</title>
                  <description>&lt;p&gt;
What would as a multisite CKAN look like?
&lt;/p&gt;
&lt;p&gt;
This is really part of the work around turnkey/hosted CKAN
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2365</link>
        <guid isPermaLink="false">http://localhost/ticket/2365</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2366: Remove Authorization Groups</title>
                  <description>&lt;p&gt;
1.7 will hide the link on the footer and put a deprecation notice on the related pages, but they should be completely removed on 1.8.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2366</link>
        <guid isPermaLink="false">http://localhost/ticket/2366</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2367: Style the analytics view counts on datasets</title>
                  <description>&lt;p&gt;
Currently an eye and a number, needs to look a little nicer.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2367</link>
        <guid isPermaLink="false">http://localhost/ticket/2367</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2368: Fix OS X Lion install instructions on wiki</title>
                  <description>&lt;p&gt;
Solr install instructions install the wrong version
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2368</link>
        <guid isPermaLink="false">http://localhost/ticket/2368</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2369: Pull latest translations from Transifex into CKAN 1.7</title>
                  <description></description>
        <link>http://localhost/ticket/2369</link>
        <guid isPermaLink="false">http://localhost/ticket/2369</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2370: Add examples of all config settings in default config file</title>
                  <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>
        <link>http://localhost/ticket/2370</link>
        <guid isPermaLink="false">http://localhost/ticket/2370</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2371: fanstatic integration</title>
                  <description>&lt;p&gt;
aims
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;allow templates to specify needed css/js
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;allow split js files to be bundled (including plugin supplied if possible - stage 2)
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;serve minified in production/ non-minified in dev
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;possibly look at doing the minification via paster - maybe as different ticket
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2371</link>
        <guid isPermaLink="false">http://localhost/ticket/2371</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2372: Create frontend style guide</title>
                  <description>&lt;p&gt;
This should cover formatting and best practices for HTML, CSS and &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Perhaps this should sit in it's own repository (ckan-styleguides?) or gh-pages branch.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2372</link>
        <guid isPermaLink="false">http://localhost/ticket/2372</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2373: Group autocomplete doesn't work with multiple words</title>
                  <description>&lt;p&gt;
e.g. 'Cabinet Office' returns 0 results, whereas 'Cabinet' returns 'Cabinet Office'.
&lt;/p&gt;
&lt;pre class="wiki"&gt;/api/2/util/authorizationgroup/autocomplete?q=Cabinet%20Office
&lt;/pre&gt;&lt;p&gt;
This feature only seems to be used by DGU at the moment (I think)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2373</link>
        <guid isPermaLink="false">http://localhost/ticket/2373</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2374: tag search paging</title>
                  <description>&lt;p&gt;
Currently in the logic function tag_search you can specify limit and offset, but no count is returned. Therefore pagination is not possible for tag results. This is desired though.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2374</link>
        <guid isPermaLink="false">http://localhost/ticket/2374</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2375: Create new base theme</title>
                  <description>&lt;p&gt;
As designed by Sam Smith -&amp;gt; &lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/&lt;/a&gt;
Also to be used as the demo theme although I think they will diverge at some point. At the moment they should be implemented as one and the same.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2375</link>
        <guid isPermaLink="false">http://localhost/ticket/2375</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2376: Fix "no-sidebar" front page layout issue with CKAN 1.7 in some languages</title>
                  <description>&lt;p&gt;
This needs to be fixed in the CKAN templates ("no-sidebar" should not be marked for translation) but for 1.7 just fixed it in the translation files.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2376</link>
        <guid isPermaLink="false">http://localhost/ticket/2376</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2377: Upgrade data.gov.sk to CKAN 1.7 and apply their new theme</title>
                  <description></description>
        <link>http://localhost/ticket/2377</link>
        <guid isPermaLink="false">http://localhost/ticket/2377</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2378: Extract metadata directly from resources that contain it.</title>
                  <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>
        <link>http://localhost/ticket/2378</link>
        <guid isPermaLink="false">http://localhost/ticket/2378</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2379: RDF output, api/sparql</title>
                  <description>&lt;p&gt;
From:
Pierre-Yves Vandenbussche
&lt;/p&gt;
&lt;p&gt;
In my use case I need to fetch every sparql endpoint associated to a dataset. With the previous version of your endpoint, I was doing this query:
SELECT DISTINCT ?dataset ?endpoint ?title ?identifier WHERE {
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
?dataset &amp;lt;&lt;a class="ext-link" href="http://www.w3.org/ns/dcat#distribution"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.w3.org/ns/dcat#distribution&lt;/a&gt;&amp;gt; ?distribution.
?distribution &amp;lt;&lt;a class="ext-link" href="http://purl.org/dc/terms/format"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://purl.org/dc/terms/format&lt;/a&gt;&amp;gt; [ &amp;lt;&lt;a class="ext-link" href="http://moat-project.org/ns#taggedWithTag"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://moat-project.org/ns#taggedWithTag&lt;/a&gt;&amp;gt; [ &amp;lt;&lt;a class="ext-link" href="http://moat-project.org/ns#name"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://moat-project.org/ns#name&lt;/a&gt;&amp;gt; "api/sparql" ] ].
?distribution &amp;lt;&lt;a class="ext-link" href="http://www.w3.org/ns/dcat#accessURL"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.w3.org/ns/dcat#accessURL&lt;/a&gt;&amp;gt; ?endpoint.
?dataset &amp;lt;&lt;a class="ext-link" href="http://purl.org/dc/terms/title"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://purl.org/dc/terms/title&lt;/a&gt;&amp;gt; ?title.
?dataset &amp;lt;&lt;a class="ext-link" href="http://purl.org/dc/terms/identifier"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://purl.org/dc/terms/identifier&lt;/a&gt;&amp;gt; ?identifier.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
} ORDER BY ?title
&lt;/p&gt;
&lt;p&gt;
Using your new version,dcterms:title of a dataset is now a rdfs:label ... OK
&lt;/p&gt;
&lt;p&gt;
Unfortunately, I don't have the information of "api/sparql"  anymore. So I can not differentiate between a dump file and a SPARQL endpoint...
&lt;span class="underline"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Add the required information to the RDF template.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2379</link>
        <guid isPermaLink="false">http://localhost/ticket/2379</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2380: DataGM Upgrade</title>
                  <description>&lt;p&gt;
Provide a new test install of DataGM based on the ODS demo site being completed through June.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2380</link>
        <guid isPermaLink="false">http://localhost/ticket/2380</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2381: Related item count on ALL dataset pages</title>
                  <description>&lt;p&gt;
Make sure the related item count is available on all dataset pages (inc. follow) when it is enabled.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2381</link>
        <guid isPermaLink="false">http://localhost/ticket/2381</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2382: Investigate options for basic geocoding</title>
                  <description>&lt;p&gt;
A simple way for geocoding place names would be very useful, e.g in the spatial search, defining a geometry for a dataset (on the form or bulk)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2382</link>
        <guid isPermaLink="false">http://localhost/ticket/2382</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2383: Date on add/edit resource breaks if offset is specified</title>
                  <description></description>
        <link>http://localhost/ticket/2383</link>
        <guid isPermaLink="false">http://localhost/ticket/2383</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2384: Rights tool factored out</title>
                  <description>&lt;p&gt;
The command line tool 'rights' is quite handy but it is glued to the CLI. I'm going to factor out the bit which searches for objects etc so it can be used by &lt;a class="missing wiki"&gt;CreateTestData?&lt;/a&gt; etc and will be used by DGU.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2384</link>
        <guid isPermaLink="false">http://localhost/ticket/2384</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2385: Specifying capacity in search api call</title>
                  <description>&lt;p&gt;
Currently you can specify the capacity in the API search, this should be stripped and default to public for now.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2385</link>
        <guid isPermaLink="false">http://localhost/ticket/2385</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2386: Setup feature-2375-demo-theme test server</title>
                  <description></description>
        <link>http://localhost/ticket/2386</link>
        <guid isPermaLink="false">http://localhost/ticket/2386</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2387: Upgrade cz.ckan.net to CKAN 1.7</title>
                  <description></description>
        <link>http://localhost/ticket/2387</link>
        <guid isPermaLink="false">http://localhost/ticket/2387</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2388: Update "out of the box" settings for CKAN</title>
                  <description>&lt;ul&gt;&lt;li&gt;Only logged in users able to create
&lt;/li&gt;&lt;li&gt;Creation permissions have only creators able to update a dataset
&lt;/li&gt;&lt;li&gt;Synchronous search is enabled (&lt;a class="closed ticket" href="http://localhost/ticket/1678" title="enhancement: Make synchronous search the default behaviour (closed: fixed)"&gt;#1678&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2388</link>
        <guid isPermaLink="false">http://localhost/ticket/2388</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2389: More robust handling of DataExplorer errors</title>
                  <description>&lt;p&gt;
US-0a
&lt;/p&gt;
&lt;p&gt;
Do not show failed preview with red-bar (esp when just empty datastore ...)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Data Viewer checks if datastore is empty nad falls back to ther options if emtpy
&lt;/li&gt;&lt;li&gt;&lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; enabled is off by default and only turned on either explicitly by user or by &lt;a class="missing wiki"&gt;DataStorer?&lt;/a&gt; on successful store ...
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Loading/showing error reports
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2389</link>
        <guid isPermaLink="false">http://localhost/ticket/2389</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2390: create_test_data for multiple users, rights</title>
                  <description>&lt;p&gt;
It would be useful (well for DGU, but no doubt for core too) to have be able to create multiple users with full properties using one commit. Also to be able to create rights (&lt;a class="missing wiki"&gt;UserObjectRoles?&lt;/a&gt;).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2390</link>
        <guid isPermaLink="false">http://localhost/ticket/2390</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2391: Fix cz.ckan.org theme and customisations</title>
                  <description></description>
        <link>http://localhost/ticket/2391</link>
        <guid isPermaLink="false">http://localhost/ticket/2391</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2392: Add language field to dataset</title>
                  <description>&lt;p&gt;
An extra field on datasets called "metadata_language".  The language that the meta-data is in.  Drop-down list needs to be translatable.     Default value is "English".
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2392</link>
        <guid isPermaLink="false">http://localhost/ticket/2392</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2393: Map licenses with countryCode to license name without countryCode</title>
                  <description>&lt;p&gt;
Map licenses: given &lt;a class="ext-link" href="http://creativecommons.org/licenses/by/2.5/{countrycode}/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://creativecommons.org/licenses/by/2.5/{countrycode}/&lt;/a&gt; as a license value through the API, convert it to &lt;a class="ext-link" href="http://www.opendefinition.org/licenses/cc-by"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.opendefinition.org/licenses/cc-by&lt;/a&gt; .  Should also work if given &lt;a class="ext-link" href="http://www.opendefinition.org/licenses/cc-by"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.opendefinition.org/licenses/cc-by&lt;/a&gt;  .  NOTE: the API may send through a list of licenses; in this situation, take the head of the list.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2393</link>
        <guid isPermaLink="false">http://localhost/ticket/2393</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2394: Separate off create_test_data CLI</title>
                  <description>&lt;p&gt;
We need to separate the CLI part of &lt;a class="missing wiki"&gt;CreateTestData?&lt;/a&gt; from the bit which creates test fixtures. This is because of the problem with imports and logging. Otherwise we have to do unpythonic things to get logging to work when deriving from &lt;a class="missing wiki"&gt;CreateTestData?&lt;/a&gt; from an extension such as ecportal / dgu. I've only introduced logging into &lt;a class="missing wiki"&gt;CreateTestData?&lt;/a&gt; but I think it is a good thing to have. This change doesn't cause breakages
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2394</link>
        <guid isPermaLink="false">http://localhost/ticket/2394</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2395: paster db clean/init don't work when spatial extension enabled</title>
                  <description>&lt;p&gt;
If you have a spatial enabled database then if you don't disable the spatial extension in the CKAN config temporarily then you get errors when you run paster db clean and paster db init.
&lt;/p&gt;
&lt;p&gt;
Can't you just modify the clean and init functions to run without extensions enabled?
&lt;/p&gt;
&lt;p&gt;
The wider problem is that extensions do their own inits every time you do load_environment, which seems crazy and inefficient to me, since this occurs every time a request comes into CKAN. But that is another problem/ticket.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2395</link>
        <guid isPermaLink="false">http://localhost/ticket/2395</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2396: Tag list page loads very slowly</title>
                  <description></description>
        <link>http://localhost/ticket/2396</link>
        <guid isPermaLink="false">http://localhost/ticket/2396</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2397: Write CKAN docstring guidelines</title>
                  <description></description>
        <link>http://localhost/ticket/2397</link>
        <guid isPermaLink="false">http://localhost/ticket/2397</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2398: Ubuntu 10.04 source install instructions not working?</title>
                  <description></description>
        <link>http://localhost/ticket/2398</link>
        <guid isPermaLink="false">http://localhost/ticket/2398</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2399: Model cleanup in CKAN core has broken ckanext-spatial</title>
                  <description>&lt;p&gt;
root@lucid32:/usr/local/feature-2375-demo-theme/pyenv/src/ckan# sudo -u www-data /usr/local/feature-2375-demo-theme/pyenv/bin/paster --plugin=ckanext-spatial spatial initdb 4326 --config=/usr/local/feature-2375-demo-theme/pyenv/src/ckan/development.ini
Traceback (most recent call last):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/bin/paster", line 9, in &amp;lt;module&amp;gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
load_entry_point('&lt;a class="missing wiki"&gt;PasteScript?&lt;/a&gt;==1.7.3', 'console_scripts', 'paster')()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 84, in run
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
invoke(command, command_name, options, args[1:])
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 123, in invoke
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
exit_code = runner.run(args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 218, in run
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self.command()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/src/ckanext-spatial/ckanext/spatial/commands/spatial.py", line 38, in command
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self._load_config()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/src/ckan/ckan/lib/cli.py", line 53, in _load_config
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
load_environment(conf.global_conf, conf.local_conf)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/src/ckan/ckan/config/environment.py", line 204, in load_environment
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
plugin.configure(config)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/src/ckanext-spatial/ckanext/spatial/plugin.py", line 60, in configure
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
setup_model()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/src/ckanext-spatial/ckanext/spatial/model.py", line 20, in setup
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
define_spatial_tables(srid)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
File "/usr/local/feature-2375-demo-theme/pyenv/src/ckanext-spatial/ckanext/spatial/model.py", line 66, in define_spatial_tables
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
package_extent_table = Table('package_extent', metadata,
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;NameError?&lt;/a&gt;: global name 'metadata' is not defined
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2399</link>
        <guid isPermaLink="false">http://localhost/ticket/2399</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2400: Password reset fails</title>
                  <description>&lt;p&gt;
One user reports that after resetting the password via the reset form he was unable to log in again. He did have an email address associated and received the reset email. After updating his password, login failed
&lt;/p&gt;
&lt;pre class="wiki"&gt;"Login failed. Bad username or password. (Or if using OpenID, it hasn't been associated with a user account.)"
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2400</link>
        <guid isPermaLink="false">http://localhost/ticket/2400</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2401: CLI for time/speed profiling</title>
                  <description>&lt;p&gt;
To enable you to easily track down what is taking all the time when you make a request.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2401</link>
        <guid isPermaLink="false">http://localhost/ticket/2401</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2402: search result speedup.</title>
                  <description>&lt;p&gt;
Search results are slow as we do many package_dictize.  Store the package_dict in the search index so that we do not have to hit the database for each of them.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2402</link>
        <guid isPermaLink="false">http://localhost/ticket/2402</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2403: home page speed improvements</title>
                  <description>&lt;p&gt;
Home page loads *all* groups and dictizes them, it should only dictize the top 10 or so from the search facets.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2403</link>
        <guid isPermaLink="false">http://localhost/ticket/2403</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2404: Auto-screenshot for related items</title>
                  <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>
        <link>http://localhost/ticket/2404</link>
        <guid isPermaLink="false">http://localhost/ticket/2404</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2405: Improvements to data viewer embed</title>
                  <description>&lt;ul&gt;&lt;li&gt;Decent powered by icon for the Embed for the &lt;a class="missing wiki"&gt;DataHub?&lt;/a&gt;? (make this text customizable and allow html ...)
&lt;ul&gt;&lt;li&gt;Current icon and text looks really bad
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Embed link uses uuid rather than dataset name (this goes to perma-url question ...)
&lt;/li&gt;&lt;li&gt;Data viewer embed url includes all the resource info (not needed -- just url and backend info ...)
&lt;/li&gt;&lt;li&gt;Embed extension urls do not respect original domain but instead use site_url (I'm guessing). E.g. datahub.io domain ends up with links to embed on thedatahub.org
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2405</link>
        <guid isPermaLink="false">http://localhost/ticket/2405</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2406: Errors in source install doc</title>
                  <description>&lt;p&gt;
There are a few errors or unclarities in the source install doc - see
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2012-May/002203.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2012-May/002203.html&lt;/a&gt;
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2012-May/002204.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2012-May/002204.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2406</link>
        <guid isPermaLink="false">http://localhost/ticket/2406</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2407: 'Access denied' message is unhelpful</title>
                  <description>&lt;p&gt;
This chap tried to use the API to add a dataset to a group and got the uninformative message 'Access denied':
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2012-May/002229.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2012-May/002229.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The problem was he didn't have access to the group. A message like 'You don't have access to the group "LODcloud"' would have been clearer.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2407</link>
        <guid isPermaLink="false">http://localhost/ticket/2407</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2408: Only 4 'extras' can be added at a time</title>
                  <description>&lt;p&gt;
The settings &amp;gt; extras page for a dataset allows extra fields to be added, but only four can be added a time in a single atomic update. It would be helpful to have an 'add another' button on the form that can be used any number of times.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2408</link>
        <guid isPermaLink="false">http://localhost/ticket/2408</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2409: Accept headers not handled correctly</title>
                  <description>&lt;p&gt;
CKAN returns HTML when an Accept header should make it return RDF/XML:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2012-May/002237.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2012-May/002237.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2409</link>
        <guid isPermaLink="false">http://localhost/ticket/2409</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2410: New RDF serialization required VOID vocab for related datasets</title>
                  <description>&lt;p&gt;
Taken from &lt;a class="ext-link" href="http://lists.okfn.org/pipermail/ckan-dev/2012-May/002218.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2012-May/002218.html&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
A few months ago, the RDF provided when dereferencing a dataset's URI was very useful.
It described the datasets using many of the "right" RDF vocabularies (dcterms, void, etc).
&lt;/p&gt;
&lt;p&gt;
The RDF that is returned now no longer has these nice descriptions.
Instead, it seems to be a mindless transcription of the CKAN record.
&lt;/p&gt;
&lt;p&gt;
For example, the older descriptions gave:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states&lt;/a&gt;&amp;gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
void:subset [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
void:target &amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states&lt;/a&gt;&amp;gt;, &amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/geonames-semantic-web"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/geonames-semantic-web&lt;/a&gt;&amp;gt; ;
void:triples 50 ;
a void:Linkset
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
], [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
void:target &amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/dbpedia"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/dbpedia&lt;/a&gt;&amp;gt;, &amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states&lt;/a&gt;&amp;gt; ;
void:triples 52 ;
a void:Linkset
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
], [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
void:target &amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states&lt;/a&gt;&amp;gt;, &amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/govtrack"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/govtrack&lt;/a&gt;&amp;gt; ;
void:triples 52 ;
a void:Linkset
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
] ;
void:triples 130005 ;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
but now it's simply:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states&lt;/a&gt;&amp;gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
dct:relation  [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
rdf:value "130005" ;
rdfs:label "triples"
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
], [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
rdf:value "52" ;
rdfs:label "links:dbpedia"
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
], [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
rdf:value "50" ;
rdfs:label "links:geonames-semantic-web"
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
], [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
rdf:value "52" ;
rdfs:label "links:govtrack"
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
] ;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
My old copies of the dataset descriptions mentioned a "GoLD CKAN 1.0" that was credited for the nicer modeling.
&lt;/p&gt;
&lt;p&gt;
Where did that go? Can we get it back?
&lt;/p&gt;
&lt;p&gt;
Thanks,
Tim Lebo
&lt;/p&gt;
&lt;p&gt;
&amp;lt;&lt;a class="ext-link" href="http://semantic.ckan.net/record/91d2c0de-75a4-4bb6-b260-bc2946e1be8b"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://semantic.ckan.net/record/91d2c0de-75a4-4bb6-b260-bc2946e1be8b&lt;/a&gt;&amp;gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
dc:source &amp;lt;&lt;a class="ext-link" href="http://ckan.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/&lt;/a&gt;&amp;gt; ;
opmv:wasGeneratedBy [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
opmv:used &amp;lt;&lt;a class="ext-link" href="http://ckan.net/api/rest/package/farmers-markets-geographic-data-united-states"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/rest/package/farmers-markets-geographic-data-united-states&lt;/a&gt;&amp;gt;, &amp;lt;&lt;a class="ext-link" href="http://ckan.net/api/rest/revision/9c2545b8-ebf1-42bf-ac92-633ff5ceba3f"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/rest/revision/9c2545b8-ebf1-42bf-ac92-633ff5ceba3f&lt;/a&gt;&amp;gt; ;
opmv:wasControlledBy [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
a foaf:Agent ;
foaf:name "GoLD CKAN 1.0"
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
] ;
opmv:wasPerformedAt [
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
a time:Instant ;
time:inXSDDateTime "2012-01-31T05:34:32Z&amp;#34;^^xsd:dateTime
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
] ;
a opmv:Process
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
] ;
a dcat:CatalogRecord ;
dcat:dataset &amp;lt;&lt;a class="ext-link" href="http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/farmers-markets-geographic-data-united-states&lt;/a&gt;&amp;gt; ;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
…
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2410</link>
        <guid isPermaLink="false">http://localhost/ticket/2410</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2411: .ini file is a mess</title>
                  <description>&lt;p&gt;
The .ini file needs cleaning up in assorted ways which Toby will expand upon.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2411</link>
        <guid isPermaLink="false">http://localhost/ticket/2411</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2412: More than one resource invalidatiing breaks dataset edit form</title>
                  <description>&lt;p&gt;
When attempting to add more than one resource at once, if more than one resource invalidates, this results in a js error, leaving the form in an inconsistent state.
&lt;/p&gt;
&lt;p&gt;
Repro:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Go to /dataset/new
&lt;/li&gt;&lt;li&gt;Add a new resource.  Fill in one of the fields with an invalid value. eg - last_modified, or size...
&lt;/li&gt;&lt;li&gt;Add another resource, doing the same thing: make one of the fields invalid.
&lt;/li&gt;&lt;li&gt;Try to save the dataset.
&lt;/li&gt;&lt;li&gt;The entered resource information will be lost, and a js error "Uncaught Error: Can't add the same model to a set twice,: backbone.js:586" will be thrown.
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/2412</link>
        <guid isPermaLink="false">http://localhost/ticket/2412</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2413: Replace/Fork autoneg</title>
                  <description>&lt;p&gt;
Take revelvant parts of autoneg ( &lt;a class="ext-link" href="https://github.com/wwaites/autoneg.git"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/wwaites/autoneg.git&lt;/a&gt; ) so that we can remove the dependency (just for two functions) and thereby remove flup as well.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2413</link>
        <guid isPermaLink="false">http://localhost/ticket/2413</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2414: Remove LXML as a dependency on core CKAN</title>
                  <description>&lt;p&gt;
Core CKAN currently has a dependency on LXML and it would be nice if we could remove it (although this *may* be indirectly through genshi).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2414</link>
        <guid isPermaLink="false">http://localhost/ticket/2414</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2415: Confusing message on attempting to register new account with upper case</title>
                  <description>&lt;p&gt;
On registering a new account, if you try to use a capital letter in your 'Login', you get the unhelpful error message:
&lt;/p&gt;
&lt;p&gt;
"The form contains invalid entries: Name: Url must be purely lowercase alphanumeric (ascii) characters and these symbols: -_"
&lt;/p&gt;
&lt;p&gt;
What does 'Name' or 'Url' have to do with anything? It means 'Login must be ...'
&lt;/p&gt;
&lt;p&gt;
But even better would be to make the login case-insensitive and allow capitals to be entered.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2415</link>
        <guid isPermaLink="false">http://localhost/ticket/2415</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2416: Normalise resource/data types</title>
                  <description>&lt;p&gt;
Currently we have far too many types that are essentially the same format. The new demo theme is using icons for common types. So we need to normalise the common formats into pretty strings. e.g. application/json, JSON, .json and json all should be output as “json”
&lt;/p&gt;
&lt;p&gt;
See the following Basecamp thread for UI examples and discussion.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61906351/comments#comment_179681056"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61906351/comments#comment_179681056&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2416</link>
        <guid isPermaLink="false">http://localhost/ticket/2416</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2417: Clean up output for dataset search results</title>
                  <description>&lt;p&gt;
Currently due to the data structure the search result filters are output incorrectly. Repeating the facet with each tag.
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset?tags=fibre&amp;amp;tags=terrestrial&amp;amp;q=Africa"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset?tags=fibre&amp;amp;tags=terrestrial&amp;amp;q=Africa&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
It outputs:
&lt;/p&gt;
&lt;p&gt;
Tags: fibre Tags: terrestrial
&lt;/p&gt;
&lt;p&gt;
It should be:
&lt;/p&gt;
&lt;p&gt;
Tags: fibre terrestrial
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2417</link>
        <guid isPermaLink="false">http://localhost/ticket/2417</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2418: Facets disappear once selected</title>
                  <description>&lt;p&gt;
Currently facets in the new demo site disappear from the sidebar once they are selected.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset?tags=fibre&amp;amp;tags=terrestrial&amp;amp;q=Africa"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset?tags=fibre&amp;amp;tags=terrestrial&amp;amp;q=Africa&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Instead they should be marked with an "active" class and clicking the link should remove the filter in the same way as clicking the cross in a token below the search field works.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2418</link>
        <guid isPermaLink="false">http://localhost/ticket/2418</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2419: Add dataset form needs hooking up to action/controller</title>
                  <description>&lt;p&gt;
Currently for some reason I'm not getting the errors/data dict in the package/new.html template.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2419</link>
        <guid isPermaLink="false">http://localhost/ticket/2419</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2420: @depreciated decorator</title>
                  <description>&lt;p&gt;
create a depreciated decorator to wrap functions we intend to remove
&lt;/p&gt;
&lt;p&gt;
logs a warning
maybe check that 'depreciated' is included in the docstring too
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2420</link>
        <guid isPermaLink="false">http://localhost/ticket/2420</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2421: demo-theme pills break in dataset search</title>
                  <description>&lt;p&gt;
if pills cross onto 2 lines they split which they shouldn't to see just add some tags/formats till it breaks
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2421</link>
        <guid isPermaLink="false">http://localhost/ticket/2421</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2422: Paster rights command appears broken</title>
                  <description>&lt;p&gt;
Reported in IRC by @floapps
&lt;/p&gt;
&lt;p&gt;
In previous ckan versions i could use paster commands to remove reader rights from visitors on all packages
and this would then throw the user to login screen when trying to see a dataset but, when i did this in ckan 1.7, i could still see all datasets as a visitor
&lt;/p&gt;
&lt;p&gt;
Using &lt;a class="ext-link" href="http://docs.ckan.org/en/latest/authorization.html#permissions-publisher-mode"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/authorization.html#permissions-publisher-mode&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
paster rights remove visitor reader package:all
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Also has an empty list of roles in config for default visitor roles
&lt;/p&gt;
&lt;p&gt;
I tested on my local install and could replicate with that command doing nothing. Neither affects existing or newly created datasets.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2422</link>
        <guid isPermaLink="false">http://localhost/ticket/2422</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2423: Get rid of CKAN's lxml dependency</title>
                  <description></description>
        <link>http://localhost/ticket/2423</link>
        <guid isPermaLink="false">http://localhost/ticket/2423</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2424: Get rid of CKAN's autoneg dependency</title>
                  <description></description>
        <link>http://localhost/ticket/2424</link>
        <guid isPermaLink="false">http://localhost/ticket/2424</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2425: Get rid of CKAN's flup dependency</title>
                  <description></description>
        <link>http://localhost/ticket/2425</link>
        <guid isPermaLink="false">http://localhost/ticket/2425</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2426: Get rid of CKAN's formalchemy dependency</title>
                  <description></description>
        <link>http://localhost/ticket/2426</link>
        <guid isPermaLink="false">http://localhost/ticket/2426</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2427: Reduce cruft installed into CKAN's virtualenv due to Pylons</title>
                  <description></description>
        <link>http://localhost/ticket/2427</link>
        <guid isPermaLink="false">http://localhost/ticket/2427</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2428: Reduce/sort out CKAN's dependencies</title>
                  <description>&lt;p&gt;
This ticket depends on &lt;a class="closed ticket" href="http://localhost/ticket/2423" title="enhancement: Get rid of CKAN's lxml dependency (closed: duplicate)"&gt;#2423&lt;/a&gt;, &lt;a class="closed ticket" href="http://localhost/ticket/2424" title="enhancement: Get rid of CKAN's autoneg dependency (closed: duplicate)"&gt;#2424&lt;/a&gt;, &lt;a class="closed ticket" href="http://localhost/ticket/2425" title="enhancement: Get rid of CKAN's flup dependency (closed: fixed)"&gt;#2425&lt;/a&gt;, &lt;a class="new ticket" href="http://localhost/ticket/2426" title="enhancement: Get rid of CKAN's formalchemy dependency (new)"&gt;#2426&lt;/a&gt; and &lt;a class="new ticket" href="http://localhost/ticket/2427" title="enhancement: Reduce cruft installed into CKAN's virtualenv due to Pylons (new)"&gt;#2427&lt;/a&gt;.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Try to remove as many of CKAN's dependencies as possible
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Try to update as many of the remaining ones as possible
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Try to get rid of some dependencies that are fetched from random hg or git servers instead of pypi
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Then try to get the order of deps in the requirements files right so that you end up with the right versions of everything
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Each module in the dependencies file should specify the exact version, to protect us from changes due to them upgrading versions under us and breaking things or changing their own deps
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Consider shipping dependencies with ckan instead of pip installing them?
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;This is related to moving CKAN to Ubuntu 12.04
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Add a test case that runs pip freeze and tests that all the right versions of deps are installed?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2428</link>
        <guid isPermaLink="false">http://localhost/ticket/2428</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2429: Get track to send notifications when tickets get assigned to peopel</title>
                  <description></description>
        <link>http://localhost/ticket/2429</link>
        <guid isPermaLink="false">http://localhost/ticket/2429</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2430: Look into marking tickets as dependent on other tickets in trac</title>
                  <description></description>
        <link>http://localhost/ticket/2430</link>
        <guid isPermaLink="false">http://localhost/ticket/2430</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2431: Trac git integration</title>
                  <description></description>
        <link>http://localhost/ticket/2431</link>
        <guid isPermaLink="false">http://localhost/ticket/2431</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2432: Draft new trac methodology</title>
                  <description>&lt;p&gt;
We want a new way of working with trac tickets and milestones etc:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We will have a single queue of tickets, ordered by priority, that we all work on
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Tickets only get into the queue after triaging (which the devs do at regular intervals), so we and others can use new trac tickets as a dumping ground for any and all CKAN bugs and ideas without messing up the priority queue. Therefore the priority queue needs to be a special CKAN milestone or something. The devs need to regularly go through the inbox of untriaged tickets and triage them all, moving them all out of the inbox.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Will we also assign tickets from the priority queue to individual devs in sprint planning meetings like we currently do?
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2432</link>
        <guid isPermaLink="false">http://localhost/ticket/2432</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2433: API uses name not id for some version 3 calls</title>
                  <description>&lt;p&gt;
see &lt;a class="ext-link" href="https://github.com/okfn/ckan/pull/5"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/pull/5&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2433</link>
        <guid isPermaLink="false">http://localhost/ticket/2433</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2434: Fix autodoc on readthedocs again</title>
                  <description></description>
        <link>http://localhost/ticket/2434</link>
        <guid isPermaLink="false">http://localhost/ticket/2434</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2435: ckanext-qa doesn't work with CKAN 1.7+</title>
                  <description></description>
        <link>http://localhost/ticket/2435</link>
        <guid isPermaLink="false">http://localhost/ticket/2435</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2436: Write instructions for booting CKAN demo instances on s031</title>
                  <description></description>
        <link>http://localhost/ticket/2436</link>
        <guid isPermaLink="false">http://localhost/ticket/2436</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2437: Add coding standards to CKAN docs</title>
                  <description>&lt;ul&gt;&lt;li&gt;[ ] Write up python coding standards as discussed at dev-meetup into CKAN docs.  (Mostly written-up as part of dev-meetup notes.)
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;[ ] Collate frontend coding standards (&lt;a class="ext-link" href="http://aron.github.com/ckan-style/styleguide/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://aron.github.com/ckan-style/styleguide/&lt;/a&gt;) into same doc(s).
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2437</link>
        <guid isPermaLink="false">http://localhost/ticket/2437</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2438: resource_search action not accessible via GET request</title>
                  <description>&lt;p&gt;
This action is not currently usable via a GET request as it relies upon a nested dict of fields.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2438</link>
        <guid isPermaLink="false">http://localhost/ticket/2438</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2439: tag_search and tag_autocomplete not fully available via GET request</title>
                  <description>&lt;p&gt;
&lt;tt&gt;tag_search&lt;/tt&gt; and &lt;tt&gt;tag_autocomplete&lt;/tt&gt;: The &lt;tt&gt;fields&lt;/tt&gt; argument is not available when accessing this action with a GET request.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2439</link>
        <guid isPermaLink="false">http://localhost/ticket/2439</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2440: Create demo homepage</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61696765/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61696765/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2440</link>
        <guid isPermaLink="false">http://localhost/ticket/2440</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2441: Create demo search page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61906351/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61906351/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2441</link>
        <guid isPermaLink="false">http://localhost/ticket/2441</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2442: Create demo dataset overview</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61752357/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61752357/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/adur_district_spending"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/adur_district_spending&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2442</link>
        <guid isPermaLink="false">http://localhost/ticket/2442</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2443: Create demo dataset data (resource) page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62308209/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62308209/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
(to be added once test server is working)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2443</link>
        <guid isPermaLink="false">http://localhost/ticket/2443</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2444: Create demo dataset related page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62821386/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62821386/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/adur_district_spending/related"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/adur_district_spending/related&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2444</link>
        <guid isPermaLink="false">http://localhost/ticket/2444</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2445: Create demo dataset add related page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62821386/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62821386/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/adur_district_spending/related/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/adur_district_spending/related/new&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Needs a new endpoint at /dataset/DATASET/related/new this should have a form containing the following fields.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Title (required)
&lt;/li&gt;&lt;li&gt;Type of item (Application|Visualisation)
&lt;/li&gt;&lt;li&gt;Description
&lt;/li&gt;&lt;li&gt;URL (required)
&lt;/li&gt;&lt;li&gt;Image URL
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
When submitted if  an item is created it should redirect (303) back to /dataset/DATASET/related with a flash message saying "Related item was successfully created".
&lt;/p&gt;
&lt;p&gt;
If failed to create it should redirect (303) back to the form and populate the error messages, see add dataset for examples (&lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/feature-2375-demo-theme/ckan/templates/package/new_package_form.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/blob/feature-2375-demo-theme/ckan/templates/package/new_package_form.html&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2445</link>
        <guid isPermaLink="false">http://localhost/ticket/2445</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2446: Create demo dataset history/comparison page</title>
                  <description>&lt;p&gt;
This is a low priority for the demo site.
&lt;/p&gt;
&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62414120/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62414120/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/history/adur_district_spending"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/history/adur_district_spending&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2446</link>
        <guid isPermaLink="false">http://localhost/ticket/2446</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2447: Create demo add dataset page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62234769/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62234769/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new&lt;/a&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new_resource"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new_resource&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2447</link>
        <guid isPermaLink="false">http://localhost/ticket/2447</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2448: Create demo groups overview page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61911712/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61911712/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/group"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/group&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2448</link>
        <guid isPermaLink="false">http://localhost/ticket/2448</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2449: Create demo group page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61911712/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61911712/comments&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/group/test-group"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/group/test-group&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2449</link>
        <guid isPermaLink="false">http://localhost/ticket/2449</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2450: Create demo add group form</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61911712/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61911712/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/group/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/group/new&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2450</link>
        <guid isPermaLink="false">http://localhost/ticket/2450</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2451: Create demo user list page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62268474/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62268474/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/user"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2451</link>
        <guid isPermaLink="false">http://localhost/ticket/2451</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2452: Create demo user profile page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62268474/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62268474/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/user/aron"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user/aron&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2452</link>
        <guid isPermaLink="false">http://localhost/ticket/2452</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2453: Create demo edit user profile page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62268474/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62268474/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/user/edit"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user/edit&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2453</link>
        <guid isPermaLink="false">http://localhost/ticket/2453</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2454: Create demo login page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62935295/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62935295/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/en/user/login"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/user/login&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2454</link>
        <guid isPermaLink="false">http://localhost/ticket/2454</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2455: Create demo register page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62998362/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62998362/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/en/user/register"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/user/register&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2455</link>
        <guid isPermaLink="false">http://localhost/ticket/2455</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2456: Create demo forgot password page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62935295/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62935295/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/en/user/reset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/user/reset&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2456</link>
        <guid isPermaLink="false">http://localhost/ticket/2456</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2457: Create demo tags list page</title>
                  <description>&lt;p&gt;
This includes the tag page as well for now.
&lt;/p&gt;
&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62998445/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62998445/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/en/tag"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/tag&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2457</link>
        <guid isPermaLink="false">http://localhost/ticket/2457</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2458: Create demo statistics page</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62998513/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62998513/comments&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/en/stats"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/stats&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2458</link>
        <guid isPermaLink="false">http://localhost/ticket/2458</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2459: Faceting improvements: fix tags and decide on facet fields</title>
                  <description>&lt;ul&gt;&lt;li&gt;the facet tags should only show free (non-vocab) tags
&lt;/li&gt;&lt;li&gt;decide on what fields to include in search facet list
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2459</link>
        <guid isPermaLink="false">http://localhost/ticket/2459</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2460: Hide private datasets in 'top publishers' and 'recent updates' on home page</title>
                  <description></description>
        <link>http://localhost/ticket/2460</link>
        <guid isPermaLink="false">http://localhost/ticket/2460</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2461: Create demo revisions page</title>
                  <description>&lt;p&gt;
I believe this is to be merged in with site activity.
&lt;/p&gt;
&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/en/revision"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/revision&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2461</link>
        <guid isPermaLink="false">http://localhost/ticket/2461</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2462: Add converter to rename resource_type field to type</title>
                  <description></description>
        <link>http://localhost/ticket/2462</link>
        <guid isPermaLink="false">http://localhost/ticket/2462</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2463: Fix whitespace bug in breadcrumbs when zoomed in (Google Chrome)</title>
                  <description></description>
        <link>http://localhost/ticket/2463</link>
        <guid isPermaLink="false">http://localhost/ticket/2463</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2464: Rename 'organization' to 'publisher'</title>
                  <description>&lt;ul&gt;&lt;li&gt;Already done for basic publisher forms (index, read, edit), but needs to be done for additional forms (in particular, form paths like 'organization_apply' that are hardcoded into the organizations controller).
&lt;/li&gt;&lt;li&gt;change organization mapping to /publisher
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2464</link>
        <guid isPermaLink="false">http://localhost/ticket/2464</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2465: Make sure dropdown lists on dataset edit form are sorted</title>
                  <description></description>
        <link>http://localhost/ticket/2465</link>
        <guid isPermaLink="false">http://localhost/ticket/2465</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2466: Fix spam handling on trac</title>
                  <description></description>
        <link>http://localhost/ticket/2466</link>
        <guid isPermaLink="false">http://localhost/ticket/2466</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2467: Fix stats extension frontend</title>
                  <description>&lt;p&gt;
After moving to Bootstrap the tables on the frontend look broken.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2467</link>
        <guid isPermaLink="false">http://localhost/ticket/2467</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2468: Finish off SlickGrid based Recline view</title>
                  <description>&lt;p&gt;
Please see these &lt;a class="missing wiki"&gt;GitHub?&lt;/a&gt; issues:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/recline/issues/130"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/130&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/recline/issues/131"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/recline/issues/131&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2468</link>
        <guid isPermaLink="false">http://localhost/ticket/2468</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2469: Find a better way to deploy CKAN instances</title>
                  <description>&lt;p&gt;
We want a much quicker and easier way of deploying multiple CKAN instances to the same or multiple servers and managing them (e.g. configuration, themes, extensions, upgrades, and adding new instances). Currently we just deploy and manage each instance separately, which doesn't scale.. We'd also want to have (as far as possible) one single way of deploying CKAN that works across different situations, e.g. deployment server, demo server, jenkins, local deployment for development, these should share the same tools for installing CKAN and its dependencies.
&lt;/p&gt;
&lt;p&gt;
Components that this might include:
&lt;/p&gt;
&lt;p&gt;
Virtualenv bootstrap script &lt;a class="ext-link" href="https://gist.github.com/2206132"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/2206132&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Ansible &lt;a class="ext-link" href="http://ansible.github.com/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ansible.github.com/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
CKAN deb package
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2469</link>
        <guid isPermaLink="false">http://localhost/ticket/2469</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2470: Fix inconsistency in package_list snippet</title>
                  <description>&lt;p&gt;
Datasets listed in search results have not gone through schema validation (but on the user page they do), so package_list snippet currently has to display both 'notes' and 'description'.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2470</link>
        <guid isPermaLink="false">http://localhost/ticket/2470</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2471: ckan.org bug</title>
                  <description>&lt;p&gt;
If you go to &lt;a href="http://ckan.org/features/geospatial/"&gt;http://ckan.org/features/geospatial/&lt;/a&gt; there is a problem with the pop up tag shown (and zoomed in) - missing status and description.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2471</link>
        <guid isPermaLink="false">http://localhost/ticket/2471</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2472: clean up datastore controller to get rid of datastore_url enables checks</title>
                  <description>&lt;p&gt;
Datastore_url enabled checks are useless.
&lt;/p&gt;
&lt;p&gt;
We should probably change this to datastore_url = 'active' and only update the flag to when a attempt at a post is made.
&lt;/p&gt;
&lt;p&gt;
This will need to be removed from the form at some point.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2472</link>
        <guid isPermaLink="false">http://localhost/ticket/2472</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2473: Make datstorer store field ordering in _meta field</title>
                  <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>
        <link>http://localhost/ticket/2473</link>
        <guid isPermaLink="false">http://localhost/ticket/2473</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2474: Trial Jinja 2 as templating system</title>
                  <description>&lt;p&gt;
Percieved benefits of switching to Jinja 2
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Block inheritance for base templates which is much simpler to understand.
&lt;/li&gt;&lt;li&gt;Large number of developers (and designers) are familiar with it due to its
similarities with the Django templates.
&lt;/li&gt;&lt;li&gt;Should be much faster at parsing and rendering templates.
&lt;/li&gt;&lt;li&gt;Has localisation support.
&lt;/li&gt;&lt;li&gt;Good documentation both on it's website and on sites like Stack Overflow.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
We should convert a couple of existing templates to test the switchover and then get peoples feedback.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2474</link>
        <guid isPermaLink="false">http://localhost/ticket/2474</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2475: Upgrade trac.ckan.org to trac 0.12.3</title>
                  <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>
        <link>http://localhost/ticket/2475</link>
        <guid isPermaLink="false">http://localhost/ticket/2475</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2476: Check that translating lists of strings is being tested in multilingual tests</title>
                  <description>&lt;p&gt;
Check that lists of strings are being correctly translated. See &lt;a class="ext-link" href="https://github.com/okfn/ckan/commit/f1d68c3d2d4d25a0c0f8a89a68940643fc19b156"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/f1d68c3d2d4d25a0c0f8a89a68940643fc19b156&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2476</link>
        <guid isPermaLink="false">http://localhost/ticket/2476</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2477: Add extensions section to readthedocs</title>
                  <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>
        <link>http://localhost/ticket/2477</link>
        <guid isPermaLink="false">http://localhost/ticket/2477</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2478: Get NeverNotifyUpdaterPlugin installed on trac.ckan.org</title>
                  <description></description>
        <link>http://localhost/ticket/2478</link>
        <guid isPermaLink="false">http://localhost/ticket/2478</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2479: Meanings of Author and Maintainer fields are unclear</title>
                  <description>&lt;p&gt;
CKAN's default schema has fields for Author ('The name of the main contact, for enquiries about this particular dataset') and 'Maintainer ('another important contact person'). The distinction is not clear. Also the fields are often left blank.
&lt;/p&gt;
&lt;p&gt;
The roles that seems most important are those of the original owner/publisher of the data, and the person maintaining the CKAN record/copy of it. So I suggest:
&lt;/p&gt;
&lt;p&gt;
(1) Rename the fields 'Owner' and 'Maintainer'.
&lt;/p&gt;
&lt;p&gt;
(2) Change the explanatory text for the relevant fields:
&lt;/p&gt;
&lt;p&gt;
Owner: 'The person or organisation who create/collect/publish the data in this dataset.'
Owner e-mail: 'E-mail address for enquiries to the Owner named above.'
Maintainer: 'The person maintaining this dataset on [name of CKAN instance], if different from the above.'
Maintainer e-mail: 'E-mail address for enquiries to the Maintainer named above.'
&lt;/p&gt;
&lt;p&gt;
(3) When a logged-in user creates a new dataset, the main form should have a checkbox, checked by default, marked 'I am the maintainer of this dataset'. If checked, the Maintainer name and e-mail fields are populated from the user's profile.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2479</link>
        <guid isPermaLink="false">http://localhost/ticket/2479</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2480: Better message when dataset has no resources</title>
                  <description>&lt;p&gt;
If a dataset has no resources the resources list currently says
'(none)'.
&lt;/p&gt;
&lt;p&gt;
Here is a suggested improvement, provided that a maintainer is named: 'There are no data resources here yet. For information about this data, contact the dataset maintainer.'
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2480</link>
        <guid isPermaLink="false">http://localhost/ticket/2480</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2481: Move Coding_Standards.rst into Sphinx</title>
                  <description></description>
        <link>http://localhost/ticket/2481</link>
        <guid isPermaLink="false">http://localhost/ticket/2481</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2482: related items dataset page 500 error</title>
                  <description></description>
        <link>http://localhost/ticket/2482</link>
        <guid isPermaLink="false">http://localhost/ticket/2482</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2483: Non-local resources should not have Download links</title>
                  <description>&lt;p&gt;
At present, a resource which is just a URL link to an external resource has a 'Download' button on the resource page. This gives the misleading impression that the resource is stored locally.
&lt;/p&gt;
&lt;p&gt;
This is related to another small UI issue: I think the URL of a resource should be much more prominent, not buried in the 'Additional Information' table.
&lt;/p&gt;
&lt;p&gt;
Suggested fix:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Put the URL prominently at the top of the resource page (above the preview) (and make it link to the resource)
&lt;/li&gt;&lt;li&gt;Disable the Download button unless the resource is stored locally.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2483</link>
        <guid isPermaLink="false">http://localhost/ticket/2483</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2484: move follower functionality into helper functions</title>
                  <description></description>
        <link>http://localhost/ticket/2484</link>
        <guid isPermaLink="false">http://localhost/ticket/2484</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>nils.toedtmann</dc:creator>

                  <title>#2485: Encourage leak containment by limiting the number of requests a CKAN process serves</title>
                  <description>&lt;p&gt;
CKAN has &lt;a class="closed ticket" href="http://localhost/ticket/1345" title="enhancement: Investigate possible memory leak (closed: fixed)"&gt;memory leaks&lt;/a&gt;. They can be contained by limiting the time-to-live of a ckan process. An easy way to achieve this is to limit the number of requests a ckan server process can serve before it gets killed and replaced.
&lt;/p&gt;
&lt;p&gt;
One should ...
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;research ways to limit requests-per-process with the different web servers (see below for a start);
&lt;/li&gt;&lt;li&gt;explain these safeguards in the CKAN documentation and encourage users to apply them;
&lt;/li&gt;&lt;li&gt;consider the helper script &lt;strong&gt;&lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/master/ckan_deb/usr/bin/ckan-create-instance"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;ckan-create-instance&lt;/a&gt;&lt;/strong&gt; to generate Apache configs with &lt;strong&gt;WSGIDaemonProcess ... maximum-requests=XY&lt;/strong&gt; being active instead of &lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/master/ckan_deb/usr/lib/ckan/common.sh#L262"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;commented out&lt;/a&gt;. Or at least let it warn the user to use &lt;strong&gt;MaxRequestsPerChild&lt;/strong&gt;;
&lt;/li&gt;&lt;li&gt;Investigate current CKAN deployments whether they suffer from mem leaks, and if so contain them.
&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;
&lt;p&gt;
How to limit requests-per-process
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Apache:
&lt;ul&gt;&lt;li&gt;Use &lt;strong&gt;WSGIDaemonProcess&lt;/strong&gt; with &lt;strong&gt;maximum-requests=50&lt;/strong&gt; or whatever limit is appropriate. We did this sucessfully on &lt;a class="ext-link" href="http://trac.okfn.org/ticket/904"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;datahub.io&lt;/a&gt; and the &lt;a class="ext-link" href="http://trac.okfn.org/ticket/1245"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;ckan farm&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;(This need to be verified) Without WSGIDaemonProcess, &lt;strong&gt;MaxRequestsPerChild 50&lt;/strong&gt; should achieve the same.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;nginx/supervisord: to be researched.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2485</link>
        <guid isPermaLink="false">http://localhost/ticket/2485</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2486: Should be able to use . in dataset names</title>
                  <description></description>
        <link>http://localhost/ticket/2486</link>
        <guid isPermaLink="false">http://localhost/ticket/2486</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2487: Don't preview text/html</title>
                  <description>&lt;p&gt;
Quite a few of the current test dataset resources have their format incorrectly specified as text/html. Attempting to preview these results in the browser trying to automatically download the resource, so for now we will not preview this format.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2487</link>
        <guid isPermaLink="false">http://localhost/ticket/2487</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2488: Group update via API fails validation with organization and publisher profile enabled</title>
                  <description>&lt;p&gt;
Reported on IRC by 'floapps'.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;when posting a group update with {packages: [package-1, package-2, etc.]}, getting &lt;a class="missing wiki"&gt;ValidationError?&lt;/a&gt;: {'Packages': {'name': &lt;a class="missing wiki"&gt;Missing value?&lt;/a&gt;}}, although package objects did contain a name field
&lt;/li&gt;&lt;li&gt;same API call worked with organization and publisher profile disabled
&lt;/li&gt;&lt;li&gt;also worked if added a form_to_db_schema_options function which used default_update_group_schema for api updates instead of default_group_schema
&lt;/li&gt;&lt;li&gt;tried on both 1.7 and 1.7.1b
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2488</link>
        <guid isPermaLink="false">http://localhost/ticket/2488</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2489: Select publisher when dataset created via 'publisher &gt; add dataset'</title>
                  <description>&lt;p&gt;
When clicking 'add dataset' on a publisher/group page, the new dataset form should select the appropriate group.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2489</link>
        <guid isPermaLink="false">http://localhost/ticket/2489</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2490: Dataset term translation isn't working on user pages, ckanext/multilingual test failing</title>
                  <description></description>
        <link>http://localhost/ticket/2490</link>
        <guid isPermaLink="false">http://localhost/ticket/2490</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2491: Demo related page is missing breadcrumb</title>
                  <description>&lt;p&gt;
The following pages are missing complete breadcrumbs.
&lt;/p&gt;
&lt;p&gt;
Add related page:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/adur_district_spending/related/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/adur_district_spending/related/new&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Needs to look like.
&lt;/p&gt;
&lt;p&gt;
Dataset &amp;gt; {dataset_title} &amp;gt; Related &amp;gt; Create Related
&lt;/p&gt;
&lt;p&gt;
Template here: &lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/feature-2375-demo-theme/ckan/templates/related/pages/form_page.html#L6"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/blob/feature-2375-demo-theme/ckan/templates/related/pages/form_page.html#L6&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Same deal with Edit related.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/adur_district_spending/related/edit/5f9e665b-3e3c-428f-88b1-8554189cf14a"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/adur_district_spending/related/edit/5f9e665b-3e3c-428f-88b1-8554189cf14a&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Needs to look like.
&lt;/p&gt;
&lt;p&gt;
Dataset &amp;gt; {dataset_title} &amp;gt; Related &amp;gt; Edit Related
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/feature-2375-demo-theme/ckan/templates/related/edit.html#L5"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/blob/feature-2375-demo-theme/ckan/templates/related/edit.html#L5&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2491</link>
        <guid isPermaLink="false">http://localhost/ticket/2491</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2492: Demo create related form has broken error output</title>
                  <description>&lt;p&gt;
See: &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/adur_district_spending/related/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/adur_district_spending/related/new&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Submit the form to see broken formatting.
&lt;/p&gt;
&lt;p&gt;
eg. [u'Missing value']
&lt;/p&gt;
&lt;p&gt;
&lt;a style="padding:0; border:none" href="http://localhost/attachment/ticket/2492/ckan-broken-error.png"&gt;&lt;img src="http://localhost/raw-attachment/ticket/2492/ckan-broken-error.png" alt="Example of broken image" title="Example of broken image" /&gt;&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2492</link>
        <guid isPermaLink="false">http://localhost/ticket/2492</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2493: Demo site 404 needs some love</title>
                  <description>&lt;p&gt;
templates/error_document_template.html
&lt;/p&gt;
&lt;p&gt;
I've converted the 404 page to the new style but we probably want to serve this as a 'full page' ie content is 100% page width not sidebar and primary content
&lt;/p&gt;
&lt;p&gt;
just go to a non-existant url to see
&lt;/p&gt;
&lt;p&gt;
Discusion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/63374042/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/63374042/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/404"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/404&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2493</link>
        <guid isPermaLink="false">http://localhost/ticket/2493</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2494: Demo site has server error for a 404</title>
                  <description>&lt;p&gt;
Example
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/not-here"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/not-here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Should show the 404 template.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2494</link>
        <guid isPermaLink="false">http://localhost/ticket/2494</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2495: Stats page has lost styling ...</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://datahub.io/stats"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.io/stats&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2495</link>
        <guid isPermaLink="false">http://localhost/ticket/2495</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2496: get debug fixed in demo branch</title>
                  <description>&lt;p&gt;
stacktrace
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2496</link>
        <guid isPermaLink="false">http://localhost/ticket/2496</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2497: abort loses language settings</title>
                  <description>&lt;p&gt;
if not logged in then go to add dataset url
the language is lost
&lt;/p&gt;
&lt;p&gt;
check if this is a ckan 1.7 issue
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2497</link>
        <guid isPermaLink="false">http://localhost/ticket/2497</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2498: on loggin redirect to requested page</title>
                  <description></description>
        <link>http://localhost/ticket/2498</link>
        <guid isPermaLink="false">http://localhost/ticket/2498</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2499: Documentation for the internal analytics</title>
                  <description>&lt;p&gt;
There's no docs for setting up the internal analytics, nor what it provides.
&lt;/p&gt;
&lt;h2 id="Setup"&gt;Setup&lt;/h2&gt;
&lt;p&gt;
Add:  &lt;tt&gt;ckan.tracking_enabled = true&lt;/tt&gt; to .ini file
&lt;/p&gt;
&lt;p&gt;
Run: &lt;tt&gt;paster tracking -c dev.ini&lt;/tt&gt;
&lt;/p&gt;
&lt;h2 id="Relatedlinks"&gt;Related links&lt;/h2&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://trac.ckan.org/ticket/2251"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.ckan.org/ticket/2251&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2499</link>
        <guid isPermaLink="false">http://localhost/ticket/2499</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2500: get_action should raise an exception if the action requested doesn't exist</title>
                  <description>&lt;h2 id="Originalbugreport:"&gt;Original bug report:&lt;/h2&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Hi CKAN devs,
&lt;/p&gt;
&lt;p&gt;
Can I request that ckan.logic.get_action raises an exception if
the action requested doesn't exist?
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Two of us had a frustrating time tracking down an exception this
morning. It's difficult when the exception is raised in python in a
template because you don't get a line number. The problem was caused
by a new logic function being added to another extension, and we
hadn't updated the code there. So if get_action raised an proper
exception rather than silently returning None then I think we'd have
found the problem quicker.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
I'd write the code for this, but as I understand that the new system
would require a ticket, branch, pull request, code review, merge. It
seems a lot to do for such a small thing.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Dave
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/2500</link>
        <guid isPermaLink="false">http://localhost/ticket/2500</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2501: Implement three step dataset creation in demo site</title>
                  <description>&lt;p&gt;
New form should allow three steps.
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Add basic fields to create a dataset
&lt;/li&gt;&lt;li&gt;Add a data resource to the dataset (this can be repeated multiple times using "Save and add another"
&lt;/li&gt;&lt;li&gt;Add final metadata to the dataset.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
It should be possible to jump backward through the steps by clicking the arrows at the top.
Errors in fields should be validated for each step when the next button is clicked.
&lt;/p&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2501</link>
        <guid isPermaLink="false">http://localhost/ticket/2501</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2502: Create Jinja block for common helpers</title>
                  <description>&lt;p&gt;
Most important is {% snippet %} but {% url_for %} would be great too.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2502</link>
        <guid isPermaLink="false">http://localhost/ticket/2502</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2503: Look into allowing theme extensions to extend base templates</title>
                  <description>&lt;p&gt;
For example:
&lt;/p&gt;
&lt;p&gt;
Creating a template in ckanext-demo/templates/base.html containing something like
&lt;/p&gt;
&lt;pre class="wiki"&gt;{% ckan_extends "base.html" %}
&lt;/pre&gt;&lt;p&gt;
Will extend ckan/templates/base.html
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2503</link>
        <guid isPermaLink="false">http://localhost/ticket/2503</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2504: Remove all Genshi templates from demo theme</title>
                  <description></description>
        <link>http://localhost/ticket/2504</link>
        <guid isPermaLink="false">http://localhost/ticket/2504</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2505: Docs improvements for 1.7.1</title>
                  <description>&lt;p&gt;
There are some areas where the documentation could use some improvement and it would be good to have it available for 1.7.1.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add an introduction to harvesting support
&lt;/li&gt;&lt;li&gt;Add an introduction to CSW support
&lt;/li&gt;&lt;li&gt;Better upgrade docs: Some users suggested improvements to the upgrade docs on the list &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;. Also we should mention how the upgrade would work for point point releases
&lt;/li&gt;&lt;li&gt;Source install: see &lt;a class="new ticket" href="http://localhost/ticket/2406" title="defect: Errors in source install doc (new)"&gt;#2406&lt;/a&gt;
&lt;/li&gt;&lt;/ul&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-dev/2012-May/002178.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lists.okfn.org/pipermail/ckan-dev/2012-May/002178.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2505</link>
        <guid isPermaLink="false">http://localhost/ticket/2505</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2506: Pull latest translations from Transifex into CKAN 1.7.1</title>
                  <description></description>
        <link>http://localhost/ticket/2506</link>
        <guid isPermaLink="false">http://localhost/ticket/2506</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2507: Search button on dataset search page wraps onto next line</title>
                  <description>&lt;p&gt;
If you change the language to one where the word for 'Search' is longer than the English word (e.g. fr) then the search button wraps onto the next line, below the text field, which looks bad.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2507</link>
        <guid isPermaLink="false">http://localhost/ticket/2507</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2508: Make it possible to run CKAN tests for each language</title>
                  <description>&lt;p&gt;
Mistakes in translated strings can cause CKAN to crash or otherwise not work, but it's not practical to manually test every page and function of CKAN in every language that we have new translations for before a CKAN release. It'd be great if the tests could automatically be run for each language.
&lt;/p&gt;
&lt;p&gt;
This is probably a big job, we would have to get the tests to respect a language setting in the ini file, check for any individual test cases that specify the language (e.g. in the URL), and also fix test cases that look for specific English words in HTML output, etc.
&lt;/p&gt;
&lt;p&gt;
In the meantime, a good stop-gap solution might be a script that tests for common mistakes in the po files.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2508</link>
        <guid isPermaLink="false">http://localhost/ticket/2508</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2509: UI style broken on organization read page</title>
                  <description>&lt;p&gt;
Looks like some of the style has been updated/changed on the group read page but the changes haven't been applied to the organizations read page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2509</link>
        <guid isPermaLink="false">http://localhost/ticket/2509</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2510: Demo tag lists should link to the search page</title>
                  <description>&lt;p&gt;
Instead of pointing to /tags/{tagname} all tag links should just point to a dataset search filtered by that tag.
&lt;/p&gt;
&lt;p&gt;
Examples are on the homepage and the dataset pages.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2510</link>
        <guid isPermaLink="false">http://localhost/ticket/2510</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2511: header logo should be link to /</title>
                  <description></description>
        <link>http://localhost/ticket/2511</link>
        <guid isPermaLink="false">http://localhost/ticket/2511</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2512: Bad link on demo site.</title>
                  <description>&lt;p&gt;
On the group read page &lt;a class="ext-link" href="http://s031.okserver.org:2375/group/nhs"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/group/nhs&lt;/a&gt; the add dataset button goes to the edit group page instead of the add dataset url.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2512</link>
        <guid isPermaLink="false">http://localhost/ticket/2512</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2513: Dataproxy should not default to utf8</title>
                  <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>
        <link>http://localhost/ticket/2513</link>
        <guid isPermaLink="false">http://localhost/ticket/2513</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2514: Follow/unfollow button looks weird</title>
                  <description>&lt;p&gt;
It's in the tab bar (maybe not the right place for a button? but I wanted it to be next to the follower tab and count) and doesn't like very much like a button
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2514</link>
        <guid isPermaLink="false">http://localhost/ticket/2514</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2515: Related tab doesn't look selected when selected</title>
                  <description>&lt;p&gt;
The related tab on the dataset page doesn't change its appearance when selected like the other tabs do
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2515</link>
        <guid isPermaLink="false">http://localhost/ticket/2515</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2516: Make 'Assign to:' field on trac.ckan.org into a dropdown list</title>
                  <description>&lt;p&gt;
there's a setting for this
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2516</link>
        <guid isPermaLink="false">http://localhost/ticket/2516</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2517: Test installation instructions for EC ODP on CentOS 6.2</title>
                  <description>&lt;ul&gt;&lt;li&gt;created repo for final list of instructions: &lt;a class="ext-link" href="http://github.com/okfn/ecportal-server-setup"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://github.com/okfn/ecportal-server-setup&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2517</link>
        <guid isPermaLink="false">http://localhost/ticket/2517</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2518: Create EC ODP CKAN release branch</title>
                  <description>&lt;ul&gt;&lt;li&gt;branch from 1.7.1
&lt;/li&gt;&lt;li&gt;apply CKAN patches that are current part of installation instructions
&lt;/li&gt;&lt;li&gt;create i18n patch so custom i18n directories can be specified via a config option
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2518</link>
        <guid isPermaLink="false">http://localhost/ticket/2518</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2519: Dataproxy (converters) enhancement</title>
                  <description>&lt;p&gt;
Whilst the error messages returned from the dataproxy are informative, they aren't particularly human readable.  It isn't clear to the user whether they should retry, or whether the format of their data is causing the problem etc...
&lt;/p&gt;
&lt;p&gt;
Would be lovely if the error messages returned contained a human readable version of the error.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2519</link>
        <guid isPermaLink="false">http://localhost/ticket/2519</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2520: Document undocumented config options</title>
                  <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>
        <link>http://localhost/ticket/2520</link>
        <guid isPermaLink="false">http://localhost/ticket/2520</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2521: synchronous_search plugin missing from deployment.ini_tmpl</title>
                  <description>&lt;p&gt;
It still contains the old build_search_index_synchronously which no longer works
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2521</link>
        <guid isPermaLink="false">http://localhost/ticket/2521</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2522: view user gatavar not sqaure</title>
                  <description>&lt;p&gt;
the user pic should be square on the user read page
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2522</link>
        <guid isPermaLink="false">http://localhost/ticket/2522</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2523: New package metadata form needs creating</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/dataset/new_metadata/dataset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/dataset/new_metadata/dataset&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Controller : package
Action : new_metadata
&lt;/p&gt;
&lt;p&gt;
template package/snippets/package_metadata_form.html
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2523</link>
        <guid isPermaLink="false">http://localhost/ticket/2523</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2524: If there are no translation files for selected language fall back to default lang.</title>
                  <description>&lt;p&gt;
If a user selects a language there are no mo files for then an error is raised.  Revert to default language instead.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2524</link>
        <guid isPermaLink="false">http://localhost/ticket/2524</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2525: Demo theme should auto-generate slugs on forms</title>
                  <description></description>
        <link>http://localhost/ticket/2525</link>
        <guid isPermaLink="false">http://localhost/ticket/2525</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2526: Demo theme new custom form fields should be created when needed</title>
                  <description>&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new_metadata"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new_metadata&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2526</link>
        <guid isPermaLink="false">http://localhost/ticket/2526</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2527: Implement a method of loading templates into the demo site</title>
                  <description>&lt;p&gt;
&lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; needs to be able to insert html templates into the document.
&lt;/p&gt;
&lt;p&gt;
There are three common solutions to templating at the moment.
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Insert the html into &amp;lt;script&amp;gt; tags at the bottom of the page and pull them in using the DOM and innerHTML. This is a very simple solution but not very portable.
&lt;/li&gt;&lt;li&gt;Request the HTML snippets as plain text/html using XHR. This adds an extra HTTP request per template but is very clean. It would also be possible to inline the HTML into the JS at the minification stage for production.
&lt;/li&gt;&lt;li&gt;Include the HTML in &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; strings (horrible to maintain and bloats the js)
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
It makes sense to keep these with the other templates so that we can take advantage of localisation where possible. This indicates 1 or 2.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2527</link>
        <guid isPermaLink="false">http://localhost/ticket/2527</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2528: Create demo edit dataset page</title>
                  <description>&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/edit/5b451cab-8671-4513-91c4-257784c1f484"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/edit/5b451cab-8671-4513-91c4-257784c1f484&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2528</link>
        <guid isPermaLink="false">http://localhost/ticket/2528</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2529: DataHub (or CKAN) widgets</title>
                  <description>&lt;p&gt;
Simple widgets in pure JS. For example:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Count of datasets in a group (could generalise to a query but not sure how useful that is ...)
&lt;/li&gt;&lt;li&gt;Embeddable list of top X (5) datasets for a given query
&lt;/li&gt;&lt;li&gt;Embeddable list of *my* datasets
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Either these live at: {site}/widgets and we have some kind of generator (form where I choose my group, or my query).
&lt;/p&gt;
&lt;p&gt;
Or: we have this attached to areas of site where relevant.
&lt;/p&gt;
&lt;p&gt;
Can combine the 2 so that the latter links to the former. Think first will be easier to do and possibly more useful long-term (e.g. can just link people to that page).
&lt;/p&gt;
&lt;p&gt;
Cf. &lt;a class="ext-link" href="http://okfnlabs.org/ckanjs/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://okfnlabs.org/ckanjs/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2529</link>
        <guid isPermaLink="false">http://localhost/ticket/2529</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2530: DataHub purge fails on some revisions</title>
                  <description>&lt;p&gt;
See &lt;a class="ext-link" href="http://datahub.io/ckan-admin/trash"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.io/ckan-admin/trash&lt;/a&gt; and try to purge revisions (*not* datasets). It will fail on some of the revisions with errors like:
&lt;/p&gt;
&lt;p&gt;
Problem purging revision 391db9e8-df57-4e0e-8fe6-d4e0c2318344: (&lt;a class="missing wiki"&gt;IntegrityError?&lt;/a&gt;) update or delete on table "revision" violates foreign key constraint "group_extra_revision_revision_id_fkey" on table "group_extra_revision" DETAIL: Key (id)=(391db9e8-df57-4e0e-8fe6-d4e0c2318344) is still referenced from table "group_extra_revision". 'DELETE FROM revision WHERE revision.id = %(id)s' {'id': u'391db9e8-df57-4e0e-8fe6-d4e0c2318344'}
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2530</link>
        <guid isPermaLink="false">http://localhost/ticket/2530</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2531: New state option: archived / deprecated</title>
                  <description>&lt;p&gt;
Deleted means things will get purged at some point.
&lt;/p&gt;
&lt;p&gt;
Archived means they stay around but get hidden from search results and a big warning notice gets displayed saying this is archived / deprecated.
&lt;/p&gt;
&lt;p&gt;
@richard cyganiak ...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2531</link>
        <guid isPermaLink="false">http://localhost/ticket/2531</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2532: show activity steam for user no js</title>
                  <description>&lt;p&gt;
We should allow the user activity stream to be accessible with no js by passing a param or something.  Need to agree how we hide/show basically agree what classes we use.
&lt;/p&gt;
&lt;p&gt;
This should be a generalised solution that we can use in other places as needed.
&lt;/p&gt;
&lt;p&gt;
I think this just needs discussion
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2532</link>
        <guid isPermaLink="false">http://localhost/ticket/2532</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2533: ckanext-harvest is broken with ckan 1.8b</title>
                  <description>&lt;p&gt;
Looks like recent CKAN cleanups broke some imports:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://gist.github.com/2935639"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/2935639&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2533</link>
        <guid isPermaLink="false">http://localhost/ticket/2533</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2534: ckanext-spatial is broken with CKAN 1.8b</title>
                  <description>&lt;p&gt;
Looks like recent cleanups in CKAN broke an import in the extension:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://gist.github.com/2935688"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/2935688&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2534</link>
        <guid isPermaLink="false">http://localhost/ticket/2534</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2535: SSL certificate for DataHub + https by default</title>
                  <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>
        <link>http://localhost/ticket/2535</link>
        <guid isPermaLink="false">http://localhost/ticket/2535</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2536: cleanup activity streams</title>
                  <description></description>
        <link>http://localhost/ticket/2536</link>
        <guid isPermaLink="false">http://localhost/ticket/2536</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2537: Test and document ckanbuild</title>
                  <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>
        <link>http://localhost/ticket/2537</link>
        <guid isPermaLink="false">http://localhost/ticket/2537</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2538: Add multiple-instance support to ckanbuild</title>
                  <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>
        <link>http://localhost/ticket/2538</link>
        <guid isPermaLink="false">http://localhost/ticket/2538</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2539: Investigate the existing ckan debian package for ckanbuild</title>
                  <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>
        <link>http://localhost/ticket/2539</link>
        <guid isPermaLink="false">http://localhost/ticket/2539</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2540: Implement a way of upgrading ckan sites using ckanbuild</title>
                  <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>
        <link>http://localhost/ticket/2540</link>
        <guid isPermaLink="false">http://localhost/ticket/2540</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2541: Add non-core extensions to ckanbuild</title>
                  <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>
        <link>http://localhost/ticket/2541</link>
        <guid isPermaLink="false">http://localhost/ticket/2541</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2542: Create jenkins job to run ckanbuild, and run tests</title>
                  <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>
        <link>http://localhost/ticket/2542</link>
        <guid isPermaLink="false">http://localhost/ticket/2542</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2543: facet.sort is not available in the package_search action</title>
                  <description>&lt;p&gt;
Not all solr facet parameters are available through the pcakage_search action.  In particular, &lt;tt&gt;facet.sort&lt;/tt&gt; has been asked for; but this ticket should check to see if there are other parameters that would be easy to add too.
&lt;/p&gt;
&lt;p&gt;
See: &lt;a class="ext-link" href="http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2543</link>
        <guid isPermaLink="false">http://localhost/ticket/2543</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2544: facet.sort is not available in the package_search action</title>
                  <description>&lt;p&gt;
Not all solr facet parameters are available through the pcakage_search action.  In particular, &lt;tt&gt;facet.sort&lt;/tt&gt; has been asked for; but this ticket should check to see if there are other parameters that would be easy to add too.
&lt;/p&gt;
&lt;p&gt;
See: &lt;a class="ext-link" href="http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2544</link>
        <guid isPermaLink="false">http://localhost/ticket/2544</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2545: Need to build DataGM site based on ODS</title>
                  <description>&lt;h2 id="Requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;
We need to clone the demo ODS site for DataGM as soon as we have a mostly working demo so that the DataGM team can try it out and comment/feedback on functionality.
&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;
[ ] Deploy demo DataGM site.
&lt;/p&gt;
&lt;h2 id="Estimates"&gt;Estimates&lt;/h2&gt;
</description>
        <link>http://localhost/ticket/2545</link>
        <guid isPermaLink="false">http://localhost/ticket/2545</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2546: ODS Managing homepage content</title>
                  <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>
        <link>http://localhost/ticket/2546</link>
        <guid isPermaLink="false">http://localhost/ticket/2546</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2547: ODS Initial data sets</title>
                  <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>
        <link>http://localhost/ticket/2547</link>
        <guid isPermaLink="false">http://localhost/ticket/2547</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2548: Object ownership for groups/package</title>
                  <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>
        <link>http://localhost/ticket/2548</link>
        <guid isPermaLink="false">http://localhost/ticket/2548</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2549: Merge organization logic into groups</title>
                  <description>&lt;h2 id="Requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;
Merge the organizations plugin into the core groups functionality. Most of this is templating and a small number of changes to the group controller.
&lt;/p&gt;
&lt;p&gt;
Investigate the possibility of removing the Membership model and using FKs.
&lt;/p&gt;
&lt;h2 id="Interface"&gt;Interface&lt;/h2&gt;
&lt;p&gt;
This is likely to consist of:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Updating the templates in templates/group/
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Configuring whether we want to constrain datasets to a single group (as per organizations)
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Implementing the separate user management (add users to group).
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Checking the publisher auth to not necessarily rely on group type = 'organization'
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Making sure that the changes still work with publisher auth.
&lt;/li&gt;&lt;/ul&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;
[ ] Code
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] Configuration
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] &lt;a class="missing wiki"&gt;Model/Migration?&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[ ] Fix templates
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[ ] Documentation
&lt;/p&gt;
&lt;h2 id="Estimates"&gt;Estimates&lt;/h2&gt;
</description>
        <link>http://localhost/ticket/2549</link>
        <guid isPermaLink="false">http://localhost/ticket/2549</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2550: User types</title>
                  <description>&lt;h2 id="Requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;
In the data hub plugin we require the ability to differentiate users between those that have paid for a service, and those that haven't. The distinction isn't boolean as there may be levels of service for paid users, so it may be that we need a 'type' of user where there are various grades of 'paid' which are likely to be strings (specific to the data hub).
&lt;/p&gt;
&lt;h2 id="Requiredinterface"&gt;Required interface&lt;/h2&gt;
&lt;p&gt;
Once changes have been made to the user schema, for a given user we want to be able to:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;determine if they have a paid or a free account, and
&lt;/li&gt;&lt;li&gt;get a string name of the type of paid account.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Care should be taken to ensure that the 'paid' status of the user cannot be set through the API and only by the datahub plugin.
&lt;/p&gt;
&lt;h2 id="UserStories"&gt;User Stories&lt;/h2&gt;
&lt;p&gt;
User stories related to the management, setting and changing of a user's payment level, as well as historical information on payments should be done as part of the work that includes actually allowing purchases.  For now it is adequate that we can manually control these things through paster commands.
&lt;/p&gt;
&lt;p&gt;
Payments types should be linear as I don't believe for this type of service a pick-and-mix modular model would work well. Organizations will inherit the payment level of their owner, so currently there is no requirement for it to affect organizations at all.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;As a sysadmin I would like to be able to use a paster command to
manually set a user's payment level, or remove it entirely.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;As a sysadmin I would like to be able to run a paster command to
view a list of users who have a payment plan, grouped by the plan
that they have.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;As a sysadmin I would like to be able to use the API to change the
payment status of a specific user through user_create and user_update.
This shouldn't be available to anybody else.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;As a user, and only if I have one, I'd like to see my current payment
level on my user profile page.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;h2 id="Tasks"&gt;Tasks&lt;/h2&gt;
&lt;p&gt;
[x] Tests
&lt;/p&gt;
&lt;p&gt;
[x] Plugin based migration
&lt;/p&gt;
&lt;p&gt;
[x] Code
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] Model
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
[x] API
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
[x] Documentation
&lt;/p&gt;
&lt;h2 id="Estimates"&gt;Estimates&lt;/h2&gt;
</description>
        <link>http://localhost/ticket/2550</link>
        <guid isPermaLink="false">http://localhost/ticket/2550</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2551: Feature metrics</title>
                  <description>&lt;h2 id="Requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;
Would be useful if we could extend the Google Analytics extension to push track events to GA so that we can determine how the system is being used, and where we can optimise the workflow.
&lt;/p&gt;
&lt;p&gt;
Assuming it isn't configured to be off, track events should be added to some key action buttons so that the information on what users are doing is logged for analysis.
&lt;/p&gt;
&lt;h2 id="Interface"&gt;Interface&lt;/h2&gt;
&lt;p&gt;
This could possibly just be a list of JS calls to $('x').click(_gaq.push('track'...))
&lt;/p&gt;
&lt;h2 id="UserStories"&gt;User Stories&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;As a developer I would like to know which components of the system are used the most so I can streamline the processes.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;As a support developer I would like to know which parts add complexity to the system for minimal gain and could possibly be removed, de-prioritised.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
For which metrics, as many of the following as possible that are achievable without changing the templates. I think for now it is enough to just record counts of these pages/actions.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Any group link on homepage
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Clicking on username (to go to profile)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;In user profile, clicking on Edit Profile
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Clicking Save Changes on Edit Profile page
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Clicking on any dataset link on User Profile page
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Any of the group links on /group
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Clicking any of the right hand sidebar tags on /group/X
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Visiting /group/history/X
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Compare Button on /group/history/X
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Compare Button on /dataset/history/X
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Tags on right hand sidebar of /dataset/X
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Download button on any /dataset/X/resource/* page
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Data API button on any /dataset/X/resource/* page
&lt;/li&gt;&lt;/ul&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;
[ ] &lt;a class="missing wiki"&gt;Code/Config?&lt;/a&gt; changes
&lt;/p&gt;
&lt;p&gt;
[ ] Documentation
&lt;/p&gt;
&lt;h2 id="Estimates"&gt;Estimates&lt;/h2&gt;
</description>
        <link>http://localhost/ticket/2551</link>
        <guid isPermaLink="false">http://localhost/ticket/2551</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2552: Controlling access to features</title>
                  <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>
        <link>http://localhost/ticket/2552</link>
        <guid isPermaLink="false">http://localhost/ticket/2552</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2553: Create a get snippet api action</title>
                  <description>&lt;p&gt;
just passes template name
&lt;/p&gt;
&lt;p&gt;
?template_name=...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2553</link>
        <guid isPermaLink="false">http://localhost/ticket/2553</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2554: Research Virtuoso cartridges</title>
                  <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>
        <link>http://localhost/ticket/2554</link>
        <guid isPermaLink="false">http://localhost/ticket/2554</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2555: Demo site needs a breadcrumb helper</title>
                  <description>&lt;p&gt;
Something to make building breadcrumbs a bit nicer
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2555</link>
        <guid isPermaLink="false">http://localhost/ticket/2555</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2556: Update module styles on the demo theme</title>
                  <description>&lt;p&gt;
They've become inconsistent as the design has changed.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Remove white stripe
&lt;/li&gt;&lt;li&gt;Make text sizes consistent
&lt;/li&gt;&lt;li&gt;Make white space around text boxes consistent
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2556</link>
        <guid isPermaLink="false">http://localhost/ticket/2556</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2557: Demo issues on the search dataset page</title>
                  <description>&lt;ul&gt;&lt;li&gt;Crosses have disappeared
&lt;/li&gt;&lt;li&gt;Formats should stretch across the page
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2557</link>
        <guid isPermaLink="false">http://localhost/ticket/2557</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2558: Demo site add dataset has missing functionality</title>
                  <description>&lt;ul&gt;&lt;li&gt;Needs tags
&lt;/li&gt;&lt;li&gt;Needs groups
&lt;/li&gt;&lt;li&gt;Needs slug
&lt;/li&gt;&lt;li&gt;Licenses links to something
&lt;/li&gt;&lt;li&gt;Needs tooltips (Ira to write some tooltips)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2558</link>
        <guid isPermaLink="false">http://localhost/ticket/2558</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2559: Demo theme add resource has missing functionality</title>
                  <description>&lt;ul&gt;&lt;li&gt;Show resources in the sidebar
&lt;/li&gt;&lt;li&gt;Allow people to go backward and forward
&lt;/li&gt;&lt;li&gt;Have a back button on each form
&lt;/li&gt;&lt;li&gt;Lose resource type
&lt;/li&gt;&lt;li&gt;Add extras as optional metadata
&lt;/li&gt;&lt;li&gt;Remove save
&lt;/li&gt;&lt;li&gt;Add back/Previous
&lt;/li&gt;&lt;li&gt;Add Another
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2559</link>
        <guid isPermaLink="false">http://localhost/ticket/2559</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2560: Demo theme add metadata is missing functionality</title>
                  <description>&lt;ul&gt;&lt;li&gt;Hide remove button when adding new field
&lt;/li&gt;&lt;li&gt;Finish takes you to the newly created dataset
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2560</link>
        <guid isPermaLink="false">http://localhost/ticket/2560</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2561: Demo theme edit dataset is missing functionality</title>
                  <description>&lt;ul&gt;&lt;li&gt;Add tags
&lt;/li&gt;&lt;li&gt;Add groups
&lt;/li&gt;&lt;li&gt;&lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; for custom fields
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2561</link>
        <guid isPermaLink="false">http://localhost/ticket/2561</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2562: Demo theme tag improvements</title>
                  <description>&lt;p&gt;
Tags should be implemented in two sections.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Custom predefined tags using vocabularies
&lt;/li&gt;&lt;li&gt;Provide suggestions, auto completion then fallback to free text
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2562</link>
        <guid isPermaLink="false">http://localhost/ticket/2562</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2563: Add font based icons to the demo theme</title>
                  <description>&lt;p&gt;
Allowing them to be displayed in many sizes, colours and resolutions.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://www.zurb.com/playground/foundation-icons"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.zurb.com/playground/foundation-icons&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2563</link>
        <guid isPermaLink="false">http://localhost/ticket/2563</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2564: Updates to additional info fields on datasets</title>
                  <description>&lt;p&gt;
E.g. &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/adur_district_spending/resource/04127ad5-77e5-4a08-9f40-12d3c383e460"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/adur_district_spending/resource/04127ad5-77e5-4a08-9f40-12d3c383e460&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
When there are no maintainer/contact details or extra fields we should hide the additional info box completely. Otherwise hide the last updated and licence fields which are already displayed in sidebar.
&lt;/p&gt;
&lt;p&gt;
Update sidebar to provide context - so 'CSV' -&amp;gt; 'CSV format' + 'unknown' -&amp;gt; 'Last updated: unknown'
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2564</link>
        <guid isPermaLink="false">http://localhost/ticket/2564</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2565: Social links to open in new tab/JS lightbox</title>
                  <description>&lt;p&gt;
Share this (twitter/fb) links open in new tab (no JS) or nice lightbox of some description in demo
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2565</link>
        <guid isPermaLink="false">http://localhost/ticket/2565</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2566: add back buttons to create dataset process</title>
                  <description></description>
        <link>http://localhost/ticket/2566</link>
        <guid isPermaLink="false">http://localhost/ticket/2566</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2567: remove resource type field from add data step</title>
                  <description>&lt;p&gt;
No real need/use for this for demo/ODS yet
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2567</link>
        <guid isPermaLink="false">http://localhost/ticket/2567</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2568: Crop/shorten titles in breadcrumb headings</title>
                  <description>&lt;p&gt;
So that they don't interfere with buttons such as here: &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/afterfibre/resource/5d19f9fa-c5a4-426c-84de-c624d6e8c3b3"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/afterfibre/resource/5d19f9fa-c5a4-426c-84de-c624d6e8c3b3&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2568</link>
        <guid isPermaLink="false">http://localhost/ticket/2568</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2569: add other resources to sidebar of resource pages</title>
                  <description>&lt;p&gt;
Allow user to navigate directly from one resource page to another via resource box in sidebar
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2569</link>
        <guid isPermaLink="false">http://localhost/ticket/2569</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2570: add 'back to dataset' button to resource pages</title>
                  <description>&lt;p&gt;
Suggest making this consistent with &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/adur_district_spending/related"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/adur_district_spending/related&lt;/a&gt; by adding same button in top right of resource pages
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2570</link>
        <guid isPermaLink="false">http://localhost/ticket/2570</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2571: implement logic.action.create.resource_create()</title>
                  <description>&lt;p&gt;
This function is incomplete
&lt;/p&gt;
&lt;p&gt;
If you want I can do this but I need guidance over how to do this properly. ie would I go through lib.dictization.model_save.package_resource_list_save() which looks wrong to me as I'd need the package.  resource_dict_save() seems better but to be honest the total lack of docstrings etc makes me feel ill.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2571</link>
        <guid isPermaLink="false">http://localhost/ticket/2571</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2572: clean up stats plugin</title>
                  <description>&lt;p&gt;
attempt to disengage the stats plugin from core as much as possible
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2572</link>
        <guid isPermaLink="false">http://localhost/ticket/2572</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2573: package_search does not allow solr's per-field facet parameters</title>
                  <description>&lt;p&gt;
Solr allows its facet parameters to be specified on a per-field basis, eg. &lt;tt&gt;facet.limit&lt;/tt&gt; applies to &lt;em&gt;all&lt;/em&gt; facet fields, but solr allows it to be overriden for a specific field, eg. &lt;tt&gt;facet.tags.limit&lt;/tt&gt;.
&lt;/p&gt;
&lt;p&gt;
We don't support this at the moment because we have a whitelist of valid solr query parameters that we accept.  See &lt;tt&gt;ckan.lib.search.query.VALID_SOLR_PARAMETERS&lt;/tt&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2573</link>
        <guid isPermaLink="false">http://localhost/ticket/2573</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2574: look at package states</title>
                  <description>&lt;p&gt;
we want to be able to add new datasets but not have them indexed or seem by people
&lt;/p&gt;
&lt;p&gt;
is the vdm.state the place to do this
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2574</link>
        <guid isPermaLink="false">http://localhost/ticket/2574</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2575: Licenses have i18n issues (was Inconsistent language on license dropdown)</title>
                  <description>&lt;p&gt;
License titles at least for some of them need translating.  This wants to be done in a more efficient and simple manner than currently exists.
&lt;/p&gt;
&lt;p&gt;
the original problem was:
&lt;/p&gt;
&lt;p&gt;
The license dropdown on the dataset form shows titles in Swedish by default. Changing the language seems to default to English, but after refreshing the page a couple of times it shows a wrong language again.
&lt;/p&gt;
&lt;p&gt;
Thanks to pudo for reporting.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2575</link>
        <guid isPermaLink="false">http://localhost/ticket/2575</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2576: resource side box in dataset resource view broken</title>
                  <description>&lt;p&gt;
assuming you have datahub data
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/en/dataset/2008_facility_ghg_emissions_by_province_territory/resource/28650645-8878-4826-9405-f20b9dfa4c12"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/en/dataset/2008_facility_ghg_emissions_by_province_territory/resource/28650645-8878-4826-9405-f20b9dfa4c12&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
also the breadcrumb becomes overly long too
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2576</link>
        <guid isPermaLink="false">http://localhost/ticket/2576</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2577: Dataproxy raises 500 when it can't get CSV</title>
                  <description>&lt;p&gt;
When given a url parameter for a file it cannot fetch, the app raises a 500 instead of something useful.
&lt;/p&gt;
&lt;p&gt;
Better error reporting in the JSON would be useful
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2577</link>
        <guid isPermaLink="false">http://localhost/ticket/2577</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2578: demo theme breaks the tests</title>
                  <description>&lt;p&gt;
The demo branch fails huge numbers of tests.
&lt;/p&gt;
&lt;p&gt;
many are going to be template based - these need to be sorted - ideally we need to get them to work with legacy/new templates but see how we go on that one
&lt;/p&gt;
&lt;p&gt;
anyhow this is not a priority whilst we are branched but needs resolving before we merge into master
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2578</link>
        <guid isPermaLink="false">http://localhost/ticket/2578</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2579: move sort_by functions into lib.helpers</title>
                  <description>&lt;p&gt;
make these more available but keep existing functionality so not to break any users
&lt;/p&gt;
&lt;p&gt;
remove_field()
&lt;/p&gt;
&lt;p&gt;
drill_down_url()
&lt;/p&gt;
&lt;p&gt;
etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2579</link>
        <guid isPermaLink="false">http://localhost/ticket/2579</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2580: create resource validation</title>
                  <description>&lt;p&gt;
david I've got the add resource working but it is happy to add empty resources which implies that it isn't doing validation correctly.
&lt;/p&gt;
&lt;p&gt;
I'm not sure what the validation rules are so hard to test this - I'm coming through as an api call
&lt;/p&gt;
&lt;p&gt;
let me know if i can help
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2580</link>
        <guid isPermaLink="false">http://localhost/ticket/2580</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2581: allow state = 'draft'</title>
                  <description>&lt;p&gt;
pass some stuff through the context
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2581</link>
        <guid isPermaLink="false">http://localhost/ticket/2581</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2582: Do not hide notes / readme on dataset pages</title>
                  <description>&lt;p&gt;
Current we hide most of readme and then let users reveal it. Stop doing this and if necessary add a quick link down to resources section. (Maybe also rename resources to Data and Resources ...?)
&lt;/p&gt;
&lt;p&gt;
Aside: believe I have mentioned this somewhere a month + ago but could not find the ticket.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2582</link>
        <guid isPermaLink="false">http://localhost/ticket/2582</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2583: make sure that we implement authentication where needed</title>
                  <description>&lt;p&gt;
in development many auth checks may have been lost we need to check they are still working etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2583</link>
        <guid isPermaLink="false">http://localhost/ticket/2583</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2584: edit profile needs new theme</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/user/edit/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/user/edit/&lt;/a&gt;&amp;lt;my user name&amp;gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2584</link>
        <guid isPermaLink="false">http://localhost/ticket/2584</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2585: Escape solr control characters in search queries, add advanced search screen</title>
                  <description>&lt;p&gt;
Suggestion from David Read:
&lt;/p&gt;
&lt;p&gt;
We noticed that some search queries produce unexpected search results in CKAN, due to them containing special characters. For example if you were to search for "Spend over £25,000 - NHS Leeds" then it would not come up with the dataset with that exact name. It was excluding datasets with the word "NHS" due to the dash/minus sign. It works fine if you escape the minus sign: "Spend over £25,000 \- NHS Leeds".
&lt;/p&gt;
&lt;p&gt;
So in data.gov.uk I've added escaping of such control characters in
our plugin and this useful routine:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://fragmentsofcode.wordpress.com/2010/03/10/escape-special-characters-for-solrlucene-query/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://fragmentsofcode.wordpress.com/2010/03/10/escape-special-characters-for-solrlucene-query/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Perhaps you would consider providing this in CKAN core in future?
&lt;/p&gt;
&lt;p&gt;
I think there is an occasional case when power users would want to use the special characters - brackets, +, -, boolean operators etc. but maybe these could be reserved for an 'advanced search' screen?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2585</link>
        <guid isPermaLink="false">http://localhost/ticket/2585</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2586: edit dataset - tags broken</title>
                  <description>&lt;p&gt;
tags is list not string
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2586</link>
        <guid isPermaLink="false">http://localhost/ticket/2586</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2587: author/maintainer not shown if email missing</title>
                  <description>&lt;p&gt;
is this the expected behaviour seems crap to me, should we just see the author but just no link
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2587</link>
        <guid isPermaLink="false">http://localhost/ticket/2587</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2588: search index for new package</title>
                  <description>&lt;p&gt;
when package is added it does not seem to get indexed
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2588</link>
        <guid isPermaLink="false">http://localhost/ticket/2588</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2589: users can view draft datasets</title>
                  <description>&lt;p&gt;
need to add some logic for this
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2589</link>
        <guid isPermaLink="false">http://localhost/ticket/2589</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2590: Publisher dashboard</title>
                  <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>
        <link>http://localhost/ticket/2590</link>
        <guid isPermaLink="false">http://localhost/ticket/2590</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2591: postgres unicode problems postgres v9.1.4</title>
                  <description>&lt;p&gt;
sqlalchemy fails on postgres 9.1.4 when unicode is returned
&lt;/p&gt;
&lt;p&gt;
see &lt;a class="ext-link" href="http://docs.sqlalchemy.org/en/rel_0_7/dialects/postgresql.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.sqlalchemy.org/en/rel_0_7/dialects/postgresql.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2591</link>
        <guid isPermaLink="false">http://localhost/ticket/2591</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2592: Update and simplify source install instructions</title>
                  <description>&lt;p&gt;
Make the same instructions work for Ubuntu Lucid and Precise and make them simpler
&lt;/p&gt;
&lt;p&gt;
Also see &lt;a class="closed ticket" href="http://localhost/ticket/1471" title="enhancement: Be compatible with new ubuntu release in April (closed: fixed)"&gt;#1471&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2592</link>
        <guid isPermaLink="false">http://localhost/ticket/2592</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2593: Setup nginx caching for EC ODP</title>
                  <description>&lt;p&gt;
Add caching config to ecportal-server-setup repository.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2593</link>
        <guid isPermaLink="false">http://localhost/ticket/2593</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2594: Add EU27 to EC ODP geographical coverage field</title>
                  <description>&lt;p&gt;
EU27 option seems to have been removed at some point, needs to be added back to geographical coverage vocabulary and tested.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2594</link>
        <guid isPermaLink="false">http://localhost/ticket/2594</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2595: Demo add dataset needs to remember which stages have been visited</title>
                  <description>&lt;p&gt;
For example.
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Start on stage one
&lt;/li&gt;&lt;li&gt;Add dataset click next
&lt;/li&gt;&lt;li&gt;Click previous
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Expect Stage 1 to be "active", stage two to be "complete"
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Start on stage one
&lt;/li&gt;&lt;li&gt;Add dataset click next
&lt;/li&gt;&lt;li&gt;Click next
&lt;/li&gt;&lt;li&gt;Click previous
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Expect Stage 2 to be "active", stage one and three to be "complete"
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Start on stage one
&lt;/li&gt;&lt;li&gt;Add dataset click next
&lt;/li&gt;&lt;li&gt;Click next
&lt;/li&gt;&lt;li&gt;Click previous
&lt;/li&gt;&lt;li&gt;Click previous
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Expect Stage 1 to be "active", stage two and three to be "complete"
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2595</link>
        <guid isPermaLink="false">http://localhost/ticket/2595</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2596: Create demo extension</title>
                  <description>&lt;p&gt;
Should have all supported extensions enabled, those that don't work should be disabled and ticketed. Also needs a customised homepage.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2596</link>
        <guid isPermaLink="false">http://localhost/ticket/2596</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2597: Demo add dataset throws error if tags are empty</title>
                  <description>&lt;ol&gt;&lt;li&gt;Go to new dataset
&lt;/li&gt;&lt;li&gt;Add a slug
&lt;/li&gt;&lt;li&gt;Click next
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Get error.
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://localhost:5000/dataset/new
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/weberror/evalexception.py', line 431 in respond
  app_iter = self.application(environ, detect_start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__
  resp = self.call_func(req, *args, **self.kwargs)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func
  return self.func(req, *args, **kwargs)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/publisher.py', line 234 in __call__
  return request.get_response(self.app)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__
  resp = self.call_func(req, *args, **self.kwargs)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func
  return self.func(req, *args, **kwargs)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/injector.py', line 52 in __call__
  response = request.get_response(self.app)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/lib/base.py', line 258 in __call__
  res = WSGIController.__call__(self, environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call
  return func(**args)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 422 in new
  return self._save_new(context)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 703 in _save_new
  return self.new(data_dict, errors, error_summary)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 430 in new
  data['tag_string'] = ', '.join(h.dict_list_reduce(c.pkg_dict['tags'], 'name'))
TypeError: string indices must be integers, not str
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2597</link>
        <guid isPermaLink="false">http://localhost/ticket/2597</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2598: stages css broken in FF</title>
                  <description>&lt;p&gt;
I see X where none should be
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2598</link>
        <guid isPermaLink="false">http://localhost/ticket/2598</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2599: Test in IE</title>
                  <description>&lt;p&gt;
can we promote this to phase 3?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2599</link>
        <guid isPermaLink="false">http://localhost/ticket/2599</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2600: Replace broken "Login to Add an Organization" button</title>
                  <description>&lt;p&gt;
If you're not logged in and you click this button, it takes you to the add group page not the login page. Anyway, the default behaviour everywhere else in CKAN is to hide buttons that you don't have permission to use (e.g. add dataset, edit dataset, etc.)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2600</link>
        <guid isPermaLink="false">http://localhost/ticket/2600</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2601: 500 Server Error when editing datasets with organizations plugins enabled</title>
                  <description>&lt;p&gt;
Add the organizations and organizations_dataset plugins to ini file, run ckan, login, create an organization, create a dataset and put in organization, edit the dataset and set organization to none, try to edit the dataset again (you must be sysadmin to do this) and get a 500:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Error - &amp;lt;class 'genshi.template.eval.UndefinedError'&amp;gt;: [] has no member named "get"
URL: http://127.0.0.1:5000/dataset/edit/fooset
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/beaker/middleware.py', line 155 in __call__
  return self.wrap_app(environ, session_start_response)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/home/seanh/Projects/ckan/ckan/ckan/lib/base.py', line 221 in __call__
  res = WSGIController.__call__(self, environ, start_response)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call
  return func(**args)
File '/home/seanh/Projects/ckan/ckan/ckan/controllers/package.py', line 499 in edit
  extra_vars=vars)
File '/home/seanh/Projects/ckan/ckan/ckan/lib/base.py', line 148 in render
  return cached_template(template_name, render_template, loader_class=loader_class)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/templating.py', line 249 in cached_template
  return render_func()
File '/home/seanh/Projects/ckan/ckan/ckan/lib/base.py', line 101 in render_template
  return literal(stream.render(method=method, encoding=None, strip_whitespace=True))
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/core.py', line 183 in render
  return encode(generator, method=method, encoding=encoding, out=out)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 57 in encode
  return _encode(''.join(list(iterator)))
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 339 in __call__
  for kind, data, pos in stream:
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 670 in __call__
  for kind, data, pos in stream:
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 771 in __call__
  for kind, data, pos in chain(stream, [(None, None, None)]):
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 586 in __call__
  for ev in stream:
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/core.py', line 288 in _ensure
  for event in stream:
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/base.py', line 605 in _include
  for event in stream:
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/markup.py', line 327 in _match
  for event in stream:
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/base.py', line 545 in _flatten
  for kind, data, pos in stream:
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/directives.py', line 169 in _generate
  attrs = _eval_expr(self.expr, ctxt, vars)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/base.py', line 277 in _eval_expr
  retval = expr.evaluate(ctxt)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/eval.py', line 178 in evaluate
  return eval(self.code, _globals, {'__data__': data})
File '/home/seanh/Projects/ckan/ckan/ckanext/organizations/templates/organization_package_form.html', line 110 in &amp;lt;Expression u"{'selected':'selected'} if organization.get('id','') == group['id'] else {}"&amp;gt;
  &amp;lt;option value="${group['id']}" py:attrs="{'selected':'selected'} if organization.get('id','') == group['id'] else {}"&amp;gt;${group['title']}&amp;lt;/option&amp;gt;
File '/home/seanh/Projects/ckan/ckan/ckan/config/environment.py', line 248 in genshi_lookup_attr
  val = cls.undefined(key, owner=obj)
File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/eval.py', line 410 in undefined
  raise UndefinedError(key, owner=owner)
UndefinedError: [] has no member named "get"
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2601</link>
        <guid isPermaLink="false">http://localhost/ticket/2601</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2602: Users can set a dataset's organization to None, and then they cannot edit it</title>
                  <description>&lt;p&gt;
With the organizations and organizations_dataset plugins enabled login and create a new dataset, adding it to a group that you are a member of. Edit the dataset and set the group to none. Now you can no longer edit your own dataset. (You can also specify None for the organization when first creating the dataset, same problem.)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2602</link>
        <guid isPermaLink="false">http://localhost/ticket/2602</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2603: Remove deprecated 'fields' parameter from resource_search</title>
                  <description>&lt;p&gt;
The fields parameter of resource_search was deprecated when fixing &lt;a class="closed ticket" href="http://localhost/ticket/2438" title="enhancement: resource_search action not accessible via GET request (closed: fixed)"&gt;#2438&lt;/a&gt;.  It can be removed in release 1.9, and the action tidied up as a result.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2603</link>
        <guid isPermaLink="false">http://localhost/ticket/2603</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2604: Add Requests as requirement for tests</title>
                  <description>&lt;p&gt;
Requests (&lt;a class="ext-link" href="http://python-requests.org"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://python-requests.org&lt;/a&gt;) is really useful to deal with http requests and saves a lot of time.
&lt;/p&gt;
&lt;p&gt;
I propose we include it as a requirement for the tests for the time being, and even for core if necessary at a later stage.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2604</link>
        <guid isPermaLink="false">http://localhost/ticket/2604</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2605: Problem with user.get_groups</title>
                  <description>&lt;p&gt;
From DR at DGU
&lt;/p&gt;
&lt;p&gt;
Basically get_groups() appears to cache its results, but this falls
down when subsequent calls are in a different session. We get this
when saving a dataset. get_groups() first gets called in the
controller when it is trying to work out what permissions the user
has. It later gets called, and by this time c.userobj is detached, so
get_groups() fails.
&lt;/p&gt;
&lt;p&gt;
I'm working around this by refreshing c.userobj (from c.user) before
calling get_groups(), but I wonder if the get_groups caching could
detect the detached session and bypass the cache in this case?
&lt;/p&gt;
&lt;p&gt;
diff at &lt;a class="ext-link" href="https://gist.github.com/3003117"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/3003117&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2605</link>
        <guid isPermaLink="false">http://localhost/ticket/2605</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2606: make fanstatic use full path</title>
                  <description>&lt;p&gt;
ckan/main not main
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2606</link>
        <guid isPermaLink="false">http://localhost/ticket/2606</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2607: 'Upload a file' appears on resource form when storage not enabled</title>
                  <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>
        <link>http://localhost/ticket/2607</link>
        <guid isPermaLink="false">http://localhost/ticket/2607</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2608: Uploading a file to a resource hangs</title>
                  <description>&lt;p&gt;
I'm not seeing any javascript or python error, the upload just hangs.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2608</link>
        <guid isPermaLink="false">http://localhost/ticket/2608</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2609: Demo theme errors when creating a dataset without a resource</title>
                  <description>&lt;ol&gt;&lt;li&gt;Complete step one of add dataset
&lt;/li&gt;&lt;li&gt;Click next without adding any resource data.
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Page errors.
&lt;/p&gt;
&lt;pre class="wiki"&gt;URL: http://localhost:5000/dataset/new_resource/asdasd
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/weberror/evalexception.py', line 431 in respond
  app_iter = self.application(environ, detect_start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__
  resp = self.call_func(req, *args, **self.kwargs)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func
  return self.func(req, *args, **kwargs)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/publisher.py', line 234 in __call__
  return request.get_response(self.app)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__
  resp = self.call_func(req, *args, **self.kwargs)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func
  return self.func(req, *args, **kwargs)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/injector.py', line 52 in __call__
  response = request.get_response(self.app)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/lib/base.py', line 258 in __call__
  res = WSGIController.__call__(self, environ, start_response)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call
  return func(**args)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 495 in new_resource
  get_action('resource_create')(context, data)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/logic/action/create.py', line 240 in resource_create
  raise ValidationError(errors, _error_summary(errors))
ValidationError: {u'URL': u'Missing value'}
&lt;/pre&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/dataset/new_resource/asdasd"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/dataset/new_resource/asdasd&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2609</link>
        <guid isPermaLink="false">http://localhost/ticket/2609</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2610: Text / link changes</title>
                  <description>&lt;p&gt;
In the footer:
Change 'Powered by &lt;a class="missing wiki"&gt;CityData?&lt;/a&gt;' to Powered by &lt;a class="missing wiki"&gt;DataSuite?&lt;/a&gt; (with link to ckan.org/datasuite)
&lt;/p&gt;
&lt;p&gt;
Links in left hand side of footer should change to a link to ckan.org, link to OKFN, link to ckan.org/datasuite/about and link to Pricing Page (on ckan.org .. will be /datasuite/solutions)
&lt;/p&gt;
&lt;p&gt;
In create dataset form, prefilled tag examples should include one example with a space, e.g. "mental health"
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2610</link>
        <guid isPermaLink="false">http://localhost/ticket/2610</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2611: Text / link changes</title>
                  <description>&lt;p&gt;
In the footer:
Change 'Powered by &lt;a class="missing wiki"&gt;CityData?&lt;/a&gt;' to Powered by &lt;a class="missing wiki"&gt;DataSuite?&lt;/a&gt; (with link to ckan.org/datasuite)
&lt;/p&gt;
&lt;p&gt;
Links in left hand side of footer should change to a link to ckan.org, link to OKFN, link to ckan.org/datasuite/about and link to Pricing Page (on ckan.org .. will be /datasuite/solutions)
&lt;/p&gt;
&lt;p&gt;
In create dataset form, prefilled tag examples should include one example with a space, e.g. "mental health"
&lt;/p&gt;
&lt;p&gt;
Change 'Groups' to 'Publishers' everywhere
&lt;/p&gt;
&lt;p&gt;
Homepage copy/images (Ira to supply?)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2611</link>
        <guid isPermaLink="false">http://localhost/ticket/2611</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2612: Hide options based on auth</title>
                  <description>&lt;p&gt;
For example, hide the 'edit' button on user profiles &lt;a class="ext-link" href="http://s031.okserver.org:2375/user/ross2#activity"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user/ross2#activity&lt;/a&gt; unless I'm logged in as Ross
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2612</link>
        <guid isPermaLink="false">http://localhost/ticket/2612</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2613: Javascript functionality</title>
                  <description>&lt;ol&gt;&lt;li&gt;file uploads on dataset creation
&lt;/li&gt;&lt;li&gt;create dataset validation
&lt;/li&gt;&lt;li&gt;create dataset slugs
&lt;/li&gt;&lt;li&gt;Add dataset to group process: pop-up allowing you to quickly search for a pick a dataset to add to group. Must check you have necc auth over dataset to be added
validation of user name
&lt;/li&gt;&lt;li&gt;Language box
&lt;/li&gt;&lt;li&gt;toggling activity stream
&lt;/li&gt;&lt;li&gt;Search sorting
&lt;/li&gt;&lt;li&gt;autocomplete on tags
&lt;/li&gt;&lt;li&gt;add and remove custom fields on forms
&lt;/li&gt;&lt;li&gt;the rest:
tooltip on popular datasets with number of views
&lt;/li&gt;&lt;/ol&gt;&lt;blockquote&gt;
&lt;p&gt;
facets to update automatically
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
creating a dataset without reloading page between steps
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
hover on licences information
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
autocomplete on search terms
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
group filtering
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
add comment to datasets
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
social share buttons in lightboxes
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
dataset counts on homepage?
&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/2613</link>
        <guid isPermaLink="false">http://localhost/ticket/2613</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2614: improve the documentation around less/node</title>
                  <description>&lt;p&gt;
needs to move to a better home
&lt;/p&gt;
&lt;p&gt;
better ubuntu install instructions plus test they work
&lt;/p&gt;
&lt;p&gt;
&lt;tt&gt;apt-get install nodejs&lt;/tt&gt;
&lt;/p&gt;
&lt;p&gt;
integrate with paster
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2614</link>
        <guid isPermaLink="false">http://localhost/ticket/2614</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2615: Add activity stream activity when a user starts to follow something</title>
                  <description></description>
        <link>http://localhost/ticket/2615</link>
        <guid isPermaLink="false">http://localhost/ticket/2615</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2616: Improve display of split stages in demo</title>
                  <description>&lt;p&gt;
Currently stages of the same colour blur together, these could do with a nice divider.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2616</link>
        <guid isPermaLink="false">http://localhost/ticket/2616</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2617: Move data preview into demo</title>
                  <description></description>
        <link>http://localhost/ticket/2617</link>
        <guid isPermaLink="false">http://localhost/ticket/2617</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2618: allow nested js resources</title>
                  <description></description>
        <link>http://localhost/ticket/2618</link>
        <guid isPermaLink="false">http://localhost/ticket/2618</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2619: Omit private datasets from public activity streams</title>
                  <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>
        <link>http://localhost/ticket/2619</link>
        <guid isPermaLink="false">http://localhost/ticket/2619</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2620: Pass a  related item into the dataset tempate</title>
                  <description>&lt;p&gt;
See the related sidebar box
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/adur_district_spending"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/adur_district_spending&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
If a package has related items the first (or a random) related item should be passed into the snippet.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2620</link>
        <guid isPermaLink="false">http://localhost/ticket/2620</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2621: Remove the deprecated 'fields' parameter from tag_search and tag_autocomplete</title>
                  <description>&lt;p&gt;
This was deprecated in 1.8 as it wasn't accessible via GET requests due to being a dict.  See &lt;a class="closed ticket" href="http://localhost/ticket/2439" title="defect: tag_search and tag_autocomplete not fully available via GET request (closed: fixed)"&gt;#2439&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
In a future release of CKAN (probably 1.9) it can be removed.
&lt;/p&gt;
&lt;p&gt;
Internal uses of it were removed in &lt;a class="closed ticket" href="http://localhost/ticket/2439" title="defect: tag_search and tag_autocomplete not fully available via GET request (closed: fixed)"&gt;#2439&lt;/a&gt;, but there are tests that still use it.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2621</link>
        <guid isPermaLink="false">http://localhost/ticket/2621</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2622: Login fails in Opera 12</title>
                  <description>&lt;p&gt;
Try to login to CKAN using Opera 12, get "Login failed. Bad username or password. (Or if using OpenID, it hasn't been associated with a user account.)"
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2622</link>
        <guid isPermaLink="false">http://localhost/ticket/2622</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2623: Organization join/authorization buttons weirdness</title>
                  <description>&lt;p&gt;
Enable the organizations and organizations_dataset plugins. Start CKAN. Login and create a new organization. Logout. Login with a different account that is a sysadmin. Go to the organization you just created with the other account. There are Edit and Join buttons. Click on the Edit button, and the Join button changes to Authorization.
&lt;/p&gt;
&lt;p&gt;
It should probably be an Authorization button right from the start if you are a sysadmin.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2623</link>
        <guid isPermaLink="false">http://localhost/ticket/2623</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2624: Organizations breaks dataset tag editing</title>
                  <description>&lt;p&gt;
Enable the organizations and organizations_dataset plugins, login to ckan, create a group, create a dataset and add it to the group. Edit the dataset, add some tags to it. The new tags are not saved when you submit.
&lt;/p&gt;
&lt;p&gt;
Disable the organizations and organizations_dataset plugins and tag editing works again.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2624</link>
        <guid isPermaLink="false">http://localhost/ticket/2624</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2625: Add i18n strings from non-core but supported extensions to ckan.pot file</title>
                  <description>&lt;p&gt;
Have to decide which non-core extensions are going to be supported first.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2625</link>
        <guid isPermaLink="false">http://localhost/ticket/2625</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2626: ff render issue in edit dataset</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/dataset/edit/2010-nigeria-budget"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/dataset/edit/2010-nigeria-budget&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
the edit url button appears too high up
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2626</link>
        <guid isPermaLink="false">http://localhost/ticket/2626</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2627: IDatasetForm.form_to_db_schema() is not called</title>
                  <description>&lt;p&gt;
IDatasetForm's form_to_db_schema() method is not getting called by ckan
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2627</link>
        <guid isPermaLink="false">http://localhost/ticket/2627</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2628: Add docs for upgrading a source install</title>
                  <description></description>
        <link>http://localhost/ticket/2628</link>
        <guid isPermaLink="false">http://localhost/ticket/2628</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2629: Move ckanext-examplevocabs into master and document</title>
                  <description></description>
        <link>http://localhost/ticket/2629</link>
        <guid isPermaLink="false">http://localhost/ticket/2629</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2630: UPdate docs after IDatasetForm schema change</title>
                  <description></description>
        <link>http://localhost/ticket/2630</link>
        <guid isPermaLink="false">http://localhost/ticket/2630</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2631: Style activity stream in user profile</title>
                  <description></description>
        <link>http://localhost/ticket/2631</link>
        <guid isPermaLink="false">http://localhost/ticket/2631</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2632: check allowed helpers exist</title>
                  <description>&lt;p&gt;
in lib helpers make sure the allowed function lists functions exist or throw an error.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2632</link>
        <guid isPermaLink="false">http://localhost/ticket/2632</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2633: for dev always look for templates</title>
                  <description>&lt;p&gt;
so we find newly created templates
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2633</link>
        <guid isPermaLink="false">http://localhost/ticket/2633</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2634: change log - helper function limited in 1.8</title>
                  <description>&lt;p&gt;
make sure documented
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2634</link>
        <guid isPermaLink="false">http://localhost/ticket/2634</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2635: Non-destructive SOLR reindex</title>
                  <description>&lt;p&gt;
You can't run the search-index reindex on a live server because it will give us bad results for 2 to 3 hours while it runs. Can there be an option that doesn't delete the entire index at the start?
&lt;/p&gt;
&lt;p&gt;
Instead it could just delete any items that don't exist any more, then delete them and regenerate them one by one. So the total number of datasets doesn't change much.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2635</link>
        <guid isPermaLink="false">http://localhost/ticket/2635</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2636: Style activity stream in user profile</title>
                  <description></description>
        <link>http://localhost/ticket/2636</link>
        <guid isPermaLink="false">http://localhost/ticket/2636</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2637: Submit search form when user changes sort order</title>
                  <description></description>
        <link>http://localhost/ticket/2637</link>
        <guid isPermaLink="false">http://localhost/ticket/2637</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2638: add a get from request param helper function</title>
                  <description></description>
        <link>http://localhost/ticket/2638</link>
        <guid isPermaLink="false">http://localhost/ticket/2638</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2639: Update recline version for 1.8 release</title>
                  <description>&lt;p&gt;
New recline version has significant improvements like the &lt;a class="missing wiki"&gt;SlickGrid?&lt;/a&gt; based grid view, it'd be good to have it on 1.8.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2639</link>
        <guid isPermaLink="false">http://localhost/ticket/2639</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2640: Update recline on the demo site</title>
                  <description>&lt;p&gt;
Depends on &lt;a class="closed ticket" href="http://localhost/ticket/2639" title="enhancement: Update recline version for 1.8 release (closed: fixed)"&gt;#2639&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2640</link>
        <guid isPermaLink="false">http://localhost/ticket/2640</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2641: Adapt spatial widgets to new theme</title>
                  <description>&lt;p&gt;
Dataset extent map and spatial filter need to adapted to the new theme, as they are not showing up now
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2641</link>
        <guid isPermaLink="false">http://localhost/ticket/2641</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2642: Adapt harvest frontend to new theme</title>
                  <description></description>
        <link>http://localhost/ticket/2642</link>
        <guid isPermaLink="false">http://localhost/ticket/2642</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2643: Demo homepage redesign</title>
                  <description>&lt;p&gt;
Discussion:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61696765/comments"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61696765/comments&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2643</link>
        <guid isPermaLink="false">http://localhost/ticket/2643</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2644: user dashboard for demo theme</title>
                  <description>&lt;p&gt;
we now have a user dashboard that needs theming not sure if we need sam to look at it
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/user/dashboard"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/user/dashboard&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2644</link>
        <guid isPermaLink="false">http://localhost/ticket/2644</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2645: Update server setup to use local files</title>
                  <description>&lt;p&gt;
Server setup scripts need to have two distinct steps:
&lt;/p&gt;
&lt;p&gt;
1) Download all files that aren't in RHEL repositories, create RPMs where necessary (python virtualenv).
&lt;/p&gt;
&lt;p&gt;
2) Install from local files.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2645</link>
        <guid isPermaLink="false">http://localhost/ticket/2645</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2646: delete dataset</title>
                  <description>&lt;p&gt;
make it so
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2646</link>
        <guid isPermaLink="false">http://localhost/ticket/2646</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2647: api bullshit button</title>
                  <description>&lt;p&gt;
make it as a snippet calling thing like aron would love
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2647</link>
        <guid isPermaLink="false">http://localhost/ticket/2647</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2648: Add file upload to the demo site</title>
                  <description></description>
        <link>http://localhost/ticket/2648</link>
        <guid isPermaLink="false">http://localhost/ticket/2648</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2649: Description on resources not rendered as markdown</title>
                  <description>&lt;p&gt;
When a resource doesn't have a description, it is rendered as markdown from the description of the dataset.
&lt;/p&gt;
&lt;p&gt;
If the resource does have a description it isn't rendered as markdown ..
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2649</link>
        <guid isPermaLink="false">http://localhost/ticket/2649</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2650: Description on resources not rendered as markdown</title>
                  <description>&lt;p&gt;
When a resource doesn't have a description, it is rendered as markdown from the description of the dataset.
&lt;/p&gt;
&lt;p&gt;
If the resource does have a description it isn't rendered as markdown ..
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2650</link>
        <guid isPermaLink="false">http://localhost/ticket/2650</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2651: Check support for TSV which doesn't appear to work well.</title>
                  <description>&lt;p&gt;
TSV support doesn't seem to work very well, may be the mimetype ( text/tab-separated-values )
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2651</link>
        <guid isPermaLink="false">http://localhost/ticket/2651</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2652: get qa working with the demo</title>
                  <description></description>
        <link>http://localhost/ticket/2652</link>
        <guid isPermaLink="false">http://localhost/ticket/2652</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2653: Requesting file upload authentication fails on demo</title>
                  <description>&lt;p&gt;
Try: &lt;a class="ext-link" href="http://localhost:5000/api/storage/auth/form/photo-of-a-duck"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/api/storage/auth/form/photo-of-a-duck&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Gets:
&lt;/p&gt;
&lt;pre class="wiki"&gt;File '&amp;lt;string&amp;gt;', line 2 in auth_form
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/lib/jsonp.py', line 26 in jsonpify
  data = func(*args, **kwargs)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/storage.py', line 407 in auth_form
  authorize(method, bucket, label, c.userobj, self.ofs)
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/storage.py', line 200 in ofs
  StorageAPIController._ofs_impl = get_ofs()
File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/storage.py', line 71 in get_ofs
  storage_backend = config['ofs.impl']
File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/paste/registry.py', line 146 in __getitem__
  return self._current_obj()[key]
KeyError: 'ofs.impl'
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2653</link>
        <guid isPermaLink="false">http://localhost/ticket/2653</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2654: UI support for ordering groups on group_read page</title>
                  <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>
        <link>http://localhost/ticket/2654</link>
        <guid isPermaLink="false">http://localhost/ticket/2654</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2655: updating datasets loses data</title>
                  <description>&lt;p&gt;
Editing and saving a resource wipes the data from the dataset. Happened with &lt;a class="ext-link" href="http://demo.ckan.org/dataset/my-tes"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/dataset/my-tes&lt;/a&gt; I clicked on edit, changed a tag, clicked update and the data was gone!
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2655</link>
        <guid isPermaLink="false">http://localhost/ticket/2655</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2656: Feed with few results has bad paging link, causing exception</title>
                  <description>&lt;p&gt;
This page &lt;a class="ext-link" href="http://thedatahub.org/feeds/custom.atom?q=wombat"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/feeds/custom.atom?q=wombat&lt;/a&gt; has 0 results and contains a link to &lt;a class="ext-link" href="http://thedatahub.org/feeds/custom.atom?q=wombat&amp;amp;amp;page=0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/feeds/custom.atom?q=wombat&amp;amp;amp;page=0&lt;/a&gt; which the page=0 causes this exception:
&lt;/p&gt;
&lt;pre class="wiki"&gt;ckan.lib.search.common.SearchError'&amp;gt;: SOLR returned an error running query
Error: "'start' parameter cannot be negative"
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2656</link>
        <guid isPermaLink="false">http://localhost/ticket/2656</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2657: hide history button on group pages until retheme</title>
                  <description>&lt;p&gt;
History button in top right of &lt;a class="ext-link" href="http://demo.ckan.org/group/data-explorer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/group/data-explorer&lt;/a&gt; goes to &lt;a class="ext-link" href="http://demo.ckan.org/group/history/data-explorer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/group/history/data-explorer&lt;/a&gt; and needs hiding
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2657</link>
        <guid isPermaLink="false">http://localhost/ticket/2657</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2658: On Demo change 'Groups' to 'Publishers' everywhere</title>
                  <description>&lt;p&gt;
Can we do this as a localisation?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2658</link>
        <guid isPermaLink="false">http://localhost/ticket/2658</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2659: HTML preview window in demo too small</title>
                  <description>&lt;p&gt;
See &lt;a class="ext-link" href="http://demo.ckan.org/dataset/example-dataset/resource/d8797e51-b497-46ca-a274-8675533d110b"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/dataset/example-dataset/resource/d8797e51-b497-46ca-a274-8675533d110b&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
David previously fixed this on some version of demo, seems to have regressed. Just want the window to be longer
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2659</link>
        <guid isPermaLink="false">http://localhost/ticket/2659</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2660: server error when updating dataset</title>
                  <description>&lt;p&gt;
same as yesterday: &lt;a class="ext-link" href="http://demo.ckan.org/dataset/edit/newcastle-city-council-payments-over-500"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/dataset/edit/newcastle-city-council-payments-over-500&lt;/a&gt;
clicking update/save returns error
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2660</link>
        <guid isPermaLink="false">http://localhost/ticket/2660</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2661: delete dataset/group javascript confirm</title>
                  <description>&lt;p&gt;
in 2375-demo-theme-development
&lt;/p&gt;
&lt;p&gt;
templates/package/confirm_delete.html needs to be made to look nice note some writing in black
&lt;/p&gt;
&lt;p&gt;
delete button needs nice home on dataset/edit
&lt;/p&gt;
&lt;p&gt;
you can add js support add ?confirm=yes to url on dataset button to force delete
&lt;/p&gt;
&lt;p&gt;
Please note delete is not yet implemented - but will be in the next few hours
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2661</link>
        <guid isPermaLink="false">http://localhost/ticket/2661</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2662: adding colons in tags results in server error on demo</title>
                  <description>&lt;p&gt;
changing a tag from "country-uk" to "country:uk" and updating gives server error
&lt;/p&gt;
&lt;p&gt;
otherwise updating metadata / adding tags seem fine
&lt;/p&gt;
&lt;p&gt;
either we should allow colons or form should return a message indicating what characters are allowed
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2662</link>
        <guid isPermaLink="false">http://localhost/ticket/2662</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2663: h.resource_display_name needs love</title>
                  <description>&lt;p&gt;
This function is shit and needs cleaning up and a doc string
&lt;/p&gt;
&lt;p&gt;
description is markdown and should be treated properly
&lt;/p&gt;
&lt;p&gt;
either we should truncate all or leave it to the templates but work universally
&lt;/p&gt;
&lt;p&gt;
url if no name / desc this is in demo-theme branch
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2663</link>
        <guid isPermaLink="false">http://localhost/ticket/2663</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2664: tags with : cause crazy error message on add dataset in demo</title>
                  <description></description>
        <link>http://localhost/ticket/2664</link>
        <guid isPermaLink="false">http://localhost/ticket/2664</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2665: add dataset stages need to be form buttonable</title>
                  <description>&lt;p&gt;
the stages snippet needs to be inside &amp;lt;form&amp;gt; so I can make some links buttons - eg stage 1 -&amp;gt; stage 2 I want to save the dataset not just move to add resource
&lt;/p&gt;
&lt;p&gt;
if you can just move it within the form html leaving everything else the same - I can then add buttons and pass back for styling
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2665</link>
        <guid isPermaLink="false">http://localhost/ticket/2665</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2666: templates/package/resource_edit.html</title>
                  <description>&lt;p&gt;
There is a new template for editing resources outside of the add dataset logic
&lt;/p&gt;
&lt;p&gt;
this is the template it just throws some crap onto the page at the moment - we need to create a form - the form will end up with the usual data/edit stuff but for now you can use the resource to populate the form and I can then change it to use data - I just want to know which fields we'll have
&lt;/p&gt;
&lt;p&gt;
templates/package/resource_edit.html
&lt;/p&gt;
&lt;p&gt;
when done reassign to me and I'll get it functioning
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2666</link>
        <guid isPermaLink="false">http://localhost/ticket/2666</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2667: edit resource needs form</title>
                  <description>&lt;p&gt;
I thought I'd made this ticket before but can't find it.  When we have a fully created dataset we need to be able to edit the resources.
&lt;/p&gt;
&lt;p&gt;
template: package/resource_edit.html
&lt;/p&gt;
&lt;p&gt;
when you've made a form reassign to me and I'll get it working
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2667</link>
        <guid isPermaLink="false">http://localhost/ticket/2667</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2668: Permission for sysadmin to read a deleted publisher</title>
                  <description>&lt;p&gt;
As a sysadmin I should be able to view deleted groups/publishers (publisher profile) but I can't.
&lt;/p&gt;
&lt;p&gt;
In addition, there don't seem to be tests for permissions of deleted publishers.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2668</link>
        <guid isPermaLink="false">http://localhost/ticket/2668</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2669: style [Draft]</title>
                  <description>&lt;p&gt;
I've added [Draft] to partial completed datasets in the package list and read  commit 6a8e74d0
&lt;/p&gt;
&lt;p&gt;
templates/snippets/package_list.html
&lt;/p&gt;
&lt;p&gt;
templates/package/read.html
&lt;/p&gt;
&lt;p&gt;
do you want to style them in some way?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2669</link>
        <guid isPermaLink="false">http://localhost/ticket/2669</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2670: model.Group.get_children_groups returns deleted groups</title>
                  <description>&lt;p&gt;
I believe it should only return active ones. On DGU we see deleted publishers popping up.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2670</link>
        <guid isPermaLink="false">http://localhost/ticket/2670</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2671: fix allow_partial_update</title>
                  <description>&lt;p&gt;
need to be able to delete stuff explicitly
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2671</link>
        <guid isPermaLink="false">http://localhost/ticket/2671</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2672: Session.is_modified should use passive=True</title>
                  <description>&lt;p&gt;
According to sqlalchemy docs &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;, when calling Session.is_modified(), the &lt;tt&gt;passive&lt;/tt&gt; argument needs to be passed in as True.
&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://docs.sqlalchemy.org/en/rel_0_7/orm/session.html?highlight=is_modified#sqlalchemy.orm.session.Session.is_modified"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.sqlalchemy.org/en/rel_0_7/orm/session.html?highlight=is_modified#sqlalchemy.orm.session.Session.is_modified&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2672</link>
        <guid isPermaLink="false">http://localhost/ticket/2672</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2673: simplify set of options for resources</title>
                  <description>&lt;p&gt;
Far too many resource options. Lets restrict back to data file and API. Visualizations etc can either get linked in description or in the Related items.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2673</link>
        <guid isPermaLink="false">http://localhost/ticket/2673</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2674: Data preview not loading on s031</title>
                  <description>&lt;p&gt;
Not loading for all resources as far as I can tell; e.g. &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Fine on demo.ckan.org
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2674</link>
        <guid isPermaLink="false">http://localhost/ticket/2674</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2675: editing related item uses 'create' button instead of save</title>
                  <description>&lt;p&gt;
see &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/gold-prices/related/edit/46ba1174-3666-486e-b822-b5b45ffbb703"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/gold-prices/related/edit/46ba1174-3666-486e-b822-b5b45ffbb703&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
when editing a record, button at bottom right should change to save instead of create
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2675</link>
        <guid isPermaLink="false">http://localhost/ticket/2675</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2676: no way to browse through related items on dataset page</title>
                  <description>&lt;p&gt;
Need to add JS (presumably?) to the related app box on dataset page: &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/gold-prices"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/gold-prices&lt;/a&gt; to allow user to scroll through when multiple related items exist
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2676</link>
        <guid isPermaLink="false">http://localhost/ticket/2676</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2677: related item links should open in new tab</title>
                  <description>&lt;p&gt;
Clicking on the blue buttons or images on related page &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/gold-prices/related"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/gold-prices/related&lt;/a&gt; should take you to a new tab instead of navigating you away
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2677</link>
        <guid isPermaLink="false">http://localhost/ticket/2677</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2678: No UI for deleting a related item</title>
                  <description>&lt;p&gt;
Needs to be a way for admins (owners of dataset) to delete related items. I suggest adding a button to the edit page
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/gold-prices/related/edit/d3249863-040a-4f55-a5d8-c86697d0b7b8"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/gold-prices/related/edit/d3249863-040a-4f55-a5d8-c86697d0b7b8&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2678</link>
        <guid isPermaLink="false">http://localhost/ticket/2678</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2679: Change default behaviour of TemplateController.view to 404.</title>
                  <description>&lt;p&gt;
The current behaviour of &lt;a class="missing wiki"&gt;TemplateController?&lt;/a&gt;.view() (which is the fallback controller should all others fail) is to attempt to render (as a genshi template) the requested file.
&lt;/p&gt;
&lt;p&gt;
Although this may be a feature that some instances want.  In general, it leads to:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;500s when attempting to access a normal template (eg - &lt;a class="ext-link" href="http://datahub.io/importer/preview"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.io/importer/preview&lt;/a&gt;)
&lt;/li&gt;&lt;li&gt;A way of inadvertantly serving things you may not want to serve.  (Small risk, as it needs to be renderable as a genshi template).
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Solution:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Change the controller to 404
&lt;/li&gt;&lt;li&gt;Ensure there's a way for existing ckan instances to override that behaviour should they need it.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2679</link>
        <guid isPermaLink="false">http://localhost/ticket/2679</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2680: review group deletion</title>
                  <description>&lt;p&gt;
Super admins &amp;amp; owners/creators of groups need a way to delete them
&lt;/p&gt;
&lt;p&gt;
Is the auth model in place for all this stuff? May be worth sitting down and going through how this should work
&lt;/p&gt;
&lt;p&gt;
Currently can change state from active to deleted - this is not ery user friendly (want a button with a 2 step process maybe?) &amp;amp; I'd like to know who can view this option? Everyone who can edit a group? Who can edit?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2680</link>
        <guid isPermaLink="false">http://localhost/ticket/2680</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2681: autofill on resource format</title>
                  <description>&lt;p&gt;
This is pretty key for standardization.
&lt;/p&gt;
&lt;p&gt;
Also would like us to change the grey text to be: e.g. CSV, JSON, [more examples... i have no idea what they key ones are tbh]
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2681</link>
        <guid isPermaLink="false">http://localhost/ticket/2681</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2682: CKAN's internal tracking counts each view twice, needs unit tests</title>
                  <description>&lt;p&gt;
CKAN's internal tracking seems to count each page view twice, the problem appears to be with the SQL in the update_tracking() method in ckan/lib/cli.py.
&lt;/p&gt;
&lt;p&gt;
The internal tracking feature needs some tests, and some of the code could maybe do with some more explanatory comments, e.g. what is the intended difference between count and running_total?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2682</link>
        <guid isPermaLink="false">http://localhost/ticket/2682</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2683: Add no-cache header to _tracking API call's response to make sure it doesn't get cached</title>
                  <description></description>
        <link>http://localhost/ticket/2683</link>
        <guid isPermaLink="false">http://localhost/ticket/2683</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2684: .js leaving forms warning</title>
                  <description>&lt;p&gt;
I think it would be nice to have all form pages monitor their forms - excluding search ones - and if a field has changed then warn the user that they have not saved the form data but are leaving the page.
&lt;/p&gt;
&lt;p&gt;
This would help with things like changing resources on the add dataset resource form etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2684</link>
        <guid isPermaLink="false">http://localhost/ticket/2684</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2685: delete buttons should be form buttons</title>
                  <description>&lt;p&gt;
stop bots/browsers etc following links and auto deleting stuff
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2685</link>
        <guid isPermaLink="false">http://localhost/ticket/2685</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2686: enabling datastore &amp; data API breaks recline</title>
                  <description>&lt;p&gt;
First I noticed that the gold prices dataset preview was not displaying &amp;amp; has data API enabled
Secondly I tried enabling datastore for &lt;a class="ext-link" href="http://datahub.io/dataset/adur_district_spending/resource/281dffa6-ea9b-4446-be41-05dced06591f"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.io/dataset/adur_district_spending/resource/281dffa6-ea9b-4446-be41-05dced06591f&lt;/a&gt; and after I saved the preview no longer worked. Unticking the datastore &amp;amp; data api checkbox brought it back
&lt;/p&gt;
&lt;p&gt;
Is this a known issue?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2686</link>
        <guid isPermaLink="false">http://localhost/ticket/2686</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2687: uploading file breaks add dataset process</title>
                  <description>&lt;p&gt;
Once you upload a file, all the buttons on the page stop working. You can't complete &amp;amp; go to next step or save &amp;amp; add another or go to previous
&lt;/p&gt;
&lt;p&gt;
Clicking on these just seems to re-load the page
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new_resource/super"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new_resource/super&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2687</link>
        <guid isPermaLink="false">http://localhost/ticket/2687</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2688: Allow ordering of groups in WUI</title>
                  <description>&lt;p&gt;
Currently the group_index page just shows the entire list of groups, forcing the ordering to be by name.  It would be better if it could be sortable by name (or reversed) or by package_count (or reversed)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2688</link>
        <guid isPermaLink="false">http://localhost/ticket/2688</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2689: clicking on 'save &amp; add another' doesn't act as expected</title>
                  <description>&lt;p&gt;
Clicking on 'save &amp;amp; add another' button here &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new_resource/yo"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new_resource/yo&lt;/a&gt; takes you to step 3 instead of leaving you on step 2 when you haven't added any data.
&lt;/p&gt;
&lt;p&gt;
Instead it should show an alert/ message that no data has been added &amp;amp; that you need to link to a file or upload something
&lt;/p&gt;
&lt;p&gt;
Also, can upload be option 2 instead of 3?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2689</link>
        <guid isPermaLink="false">http://localhost/ticket/2689</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2690: long URL misaligns edit button for slug</title>
                  <description>&lt;p&gt;
See attachment. Just need to amke sure that there's enough spacing around the edit button and that it lines up so it doesn't look too wierd
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2690</link>
        <guid isPermaLink="false">http://localhost/ticket/2690</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2691: Tag 404 error</title>
                  <description>&lt;p&gt;
404 Not Found The resource could not be found.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2691</link>
        <guid isPermaLink="false">http://localhost/ticket/2691</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2692: 'add your own data' link in no search results wrong</title>
                  <description>&lt;p&gt;
the "add your own data"  link in "Try another search term, browse the datasets below or add your own data." here &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset?q=stuff"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset?q=stuff&lt;/a&gt; doesn't take you to add a dataset, just back to the search/datasets page
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2692</link>
        <guid isPermaLink="false">http://localhost/ticket/2692</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2693: License is out of date</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/master/LICENSE.txt"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/blob/master/LICENSE.txt&lt;/a&gt; mentions requires/lucid_conflict.txt which is no longer the case for 1.8 and needs updating
&lt;/p&gt;
&lt;p&gt;
not sure where requirements-testing/docs fit in
&lt;/p&gt;
&lt;p&gt;
@sean I've assigned this to you as you changed the requirements and my plate is full feel free to pass on to someone else
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2693</link>
        <guid isPermaLink="false">http://localhost/ticket/2693</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2694: index page 500 error</title>
                  <description>&lt;p&gt;
we need to have proper fix for this - not sure if there is some caching issue
&lt;/p&gt;
&lt;p&gt;
this around the group search
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2694</link>
        <guid isPermaLink="false">http://localhost/ticket/2694</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2695: autocomplete for tags</title>
                  <description>&lt;p&gt;
in dataset creation / edit form
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2695</link>
        <guid isPermaLink="false">http://localhost/ticket/2695</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2696: autocomplete for resource format</title>
                  <description>&lt;p&gt;
in create/edit dataset forms
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2696</link>
        <guid isPermaLink="false">http://localhost/ticket/2696</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2697: create dataset validation</title>
                  <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>
        <link>http://localhost/ticket/2697</link>
        <guid isPermaLink="false">http://localhost/ticket/2697</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2698: markdown preview</title>
                  <description>&lt;p&gt;
for description / other fields with markdown support
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2698</link>
        <guid isPermaLink="false">http://localhost/ticket/2698</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2699: workflow for associating datasets with groups</title>
                  <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>
        <link>http://localhost/ticket/2699</link>
        <guid isPermaLink="false">http://localhost/ticket/2699</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2700: language box</title>
                  <description>&lt;p&gt;
lang box improvements: styling, images, submit upon selection
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2700</link>
        <guid isPermaLink="false">http://localhost/ticket/2700</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2701: add comments to datasets</title>
                  <description>&lt;p&gt;
disqus??
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2701</link>
        <guid isPermaLink="false">http://localhost/ticket/2701</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2702: Future Javascript wishlist for demo</title>
                  <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>
        <link>http://localhost/ticket/2702</link>
        <guid isPermaLink="false">http://localhost/ticket/2702</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2703: add new resource to existing dataset</title>
                  <description>&lt;p&gt;
with add button on dataset page and in 'data &amp;amp; resource' section when there's no data
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2703</link>
        <guid isPermaLink="false">http://localhost/ticket/2703</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2704: add list of resources to edit dataset page sidebar</title>
                  <description>&lt;p&gt;
when editing a dataset (e.g. here: &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/edit/afghanistan-election-data"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/edit/afghanistan-election-data&lt;/a&gt;) add sidebar list of resources for user to click &amp;amp; browse through taking you to the relevant resource edit pages
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2704</link>
        <guid isPermaLink="false">http://localhost/ticket/2704</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2705: add link to edit dataset page from edit review page</title>
                  <description>&lt;p&gt;
e.g. on &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/afghanistan-election-data/resource_edit/f6331f99-51f6-44d9-95b9-b20f3b74f360"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/afghanistan-election-data/resource_edit/f6331f99-51f6-44d9-95b9-b20f3b74f360&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;amp; ensure consistant with sidebar of edit dataset page
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2705</link>
        <guid isPermaLink="false">http://localhost/ticket/2705</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2706: hide all prefilled fileds from resource edit form page</title>
                  <description>&lt;p&gt;
i.e. mimetype, size, last updated etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2706</link>
        <guid isPermaLink="false">http://localhost/ticket/2706</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2707: Tidy up additional info boxes on dataset and resource pages</title>
                  <description>&lt;p&gt;
This currently looks terrible. Some simple things we should do to improve this.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Localise and captitalise known (non custom) keys into human titles. eg. "size", "created_at", "mime_type".
&lt;/li&gt;&lt;li&gt;Apply units to values of known keys where possible eg. "size in appropiate units"
&lt;/li&gt;&lt;li&gt;Convert dates into a more human friendly format. We can avoid localisation hell by using an ISO format like YYYY/MM/DD hh:mm:ss which is still better than ISO8061
&lt;/li&gt;&lt;li&gt;Move the non user fields to the top of the table.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2707</link>
        <guid isPermaLink="false">http://localhost/ticket/2707</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2708: limit extra data for package/group show</title>
                  <description>&lt;blockquote&gt;
&lt;p&gt;
context&lt;a class="missing wiki"&gt;package_limits?&lt;/a&gt; = { 'tags': 5,     &amp;lt;- get first 5
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
'extras': 0,   &amp;lt;- get all
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
only get what you ask for have to be explicit
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
context&lt;a class="missing wiki"&gt;group_limits?&lt;/a&gt; = {}   only main item
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
start with datasets/groups expand if we like it
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2708</link>
        <guid isPermaLink="false">http://localhost/ticket/2708</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2709: Atom feeds are undocumented</title>
                  <description>&lt;p&gt;
There doesn't seem to be any documentation yet for Atom feeds.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2709</link>
        <guid isPermaLink="false">http://localhost/ticket/2709</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2710: make the api_info.html not look like shit</title>
                  <description>&lt;p&gt;
you know the score
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2710</link>
        <guid isPermaLink="false">http://localhost/ticket/2710</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2711: bin/less dies for toby</title>
                  <description>&lt;p&gt;
it would be nice if this didn't fall over when the dir is removed maybe a linux only issue?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2711</link>
        <guid isPermaLink="false">http://localhost/ticket/2711</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2712: delete resource functionality needed</title>
                  <description>&lt;p&gt;
we need a delete_resource logic action and enable for resources
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2712</link>
        <guid isPermaLink="false">http://localhost/ticket/2712</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2713: button colour not set properly in variables.css</title>
                  <description>&lt;p&gt;
to reproduce run
&lt;/p&gt;
&lt;p&gt;
paster color fuchsia -c development.ini
&lt;/p&gt;
&lt;p&gt;
then go to &lt;a class="ext-link" href="http://localhost:5000/dataset/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/dataset/new&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Add button is blue gradient at the top this should be overridden in variables.less
&lt;/p&gt;
&lt;p&gt;
when added send this ticket to me and i'll update the color command to change it
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2713</link>
        <guid isPermaLink="false">http://localhost/ticket/2713</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2714: XLS preview not working</title>
                  <description>&lt;p&gt;
see &lt;a class="ext-link" href="http://demo.ckan.org/dataset/vif-2012-population-totals/resource/e7b8401a-c410-4902-9e5a-6dbd78834873"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/dataset/vif-2012-population-totals/resource/e7b8401a-c410-4902-9e5a-6dbd78834873&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
what XLS previews do we support?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2714</link>
        <guid isPermaLink="false">http://localhost/ticket/2714</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2715: inactive sidebar widgets</title>
                  <description>&lt;p&gt;
hide trackbacks &amp;amp; subscribe wboxes on dataset pages until we add disqus
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2715</link>
        <guid isPermaLink="false">http://localhost/ticket/2715</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2716: truncate long resource names</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/hi-people/resource/4558c365-fd7a-4f0e-9f2a-90ad47db6b39"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/hi-people/resource/4558c365-fd7a-4f0e-9f2a-90ad47db6b39&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2716</link>
        <guid isPermaLink="false">http://localhost/ticket/2716</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2717: French breaks the demo header</title>
                  <description>&lt;p&gt;
when language is french
&lt;/p&gt;
&lt;p&gt;
a) the menu overlaps the logo
&lt;/p&gt;
&lt;p&gt;
b) much of the logo becomes unclickable
&lt;/p&gt;
&lt;p&gt;
@shevski
&lt;/p&gt;
&lt;p&gt;
a) seems like you  b) is aron
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2717</link>
        <guid isPermaLink="false">http://localhost/ticket/2717</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2718: can't add dataset to more than one group</title>
                  <description>&lt;p&gt;
trying to add a dataset to another group means it's no longer part of the first group
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://demo.ckan.org/dataset/edit/afterfibre"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/dataset/edit/afterfibre&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2718</link>
        <guid isPermaLink="false">http://localhost/ticket/2718</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2719: Feeds controller does not catch NotAuthorized exception</title>
                  <description>&lt;p&gt;
Results in bad user experience and &lt;a class="missing wiki"&gt;WebApp?&lt;/a&gt; errors emailed out. Seen in 1.7.1
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2719</link>
        <guid isPermaLink="false">http://localhost/ticket/2719</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2720: no padding around gravitars on all users page</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/user"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
needs some spacing between the image &amp;amp; user name
&lt;/p&gt;
&lt;p&gt;
We could also display some stats here (e.g. number of dataset created, timestamp of last activity)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2720</link>
        <guid isPermaLink="false">http://localhost/ticket/2720</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2721: deleted groups should not show on 'Add to Groups' dropdown</title>
                  <description>&lt;p&gt;
Groups previously deleted still show up in the add dataset process in step 3 'Additional info'
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new_metadata/ff"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new_metadata/ff&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2721</link>
        <guid isPermaLink="false">http://localhost/ticket/2721</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2722: Ordering or search of datasets of a group brings up 'no results'</title>
                  <description>&lt;ol&gt;&lt;li&gt;go to a group, e.g. &lt;a class="ext-link" href="http://s031.okserver.org:2375/group/data-explorer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/group/data-explorer&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Order by anything, e.g. choose 'popular' and click go
&lt;/li&gt;&lt;li&gt;"sorry no datasets found" message appears instead of ordering the group datasets in wanted order
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/group/data-explorer?q=&amp;amp;sort=views_recent+desc"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/group/data-explorer?q=&amp;amp;sort=views_recent+desc&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2722</link>
        <guid isPermaLink="false">http://localhost/ticket/2722</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2723: Search result summary badly displayed</title>
                  <description>&lt;p&gt;
Text goes over the order by text, with drop down floating on top meaning it's all impossible to read
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset?q=unemployment%2C+data&amp;amp;sort=metadata_modified+desc"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset?q=unemployment%2C+data&amp;amp;sort=metadata_modified+desc&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2723</link>
        <guid isPermaLink="false">http://localhost/ticket/2723</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2724: Inconsistent labelling / UX on draft datasets</title>
                  <description>&lt;ol&gt;&lt;li&gt;One of the datasets here: &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/user/shevski"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/user/shevski&lt;/a&gt; has [DRAFT] after it. It's not clear why this has been added -&amp;gt; user confusion
&lt;/li&gt;&lt;li&gt;The draft dataset is not clickable in the dataset list
&lt;/li&gt;&lt;li&gt;The ff dataset (same as the ff [DRAFT] dataset) in the Activity Steam section a) is clickable and b) does not have [DRAFT] after it
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/2724</link>
        <guid isPermaLink="false">http://localhost/ticket/2724</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2725: Case sensitivity on tags</title>
                  <description>&lt;p&gt;
My feeling is that 'country-US' and 'country-us' should be the same tag. However currently tags with caps are treated differently
&lt;/p&gt;
&lt;p&gt;
see &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/test-dataset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/test-dataset&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
with TEST and test - there also get indexed twice in the search page
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2725</link>
        <guid isPermaLink="false">http://localhost/ticket/2725</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2726: confusing logic on data preview formats</title>
                  <description>&lt;ol&gt;&lt;li&gt;If a user enters the wrong format on a file that can be previewed - it simply won't be previewed (e.g. a CSV or XML file that can be filled in with JSON in format will just not work or check this
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;If I incorrectly edit format to one that data preview will try to preview it will work even for a format that it doesn't accept (sometimes) e.g. this PDF file I changed the metadata to HTML &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/test-dataset/resource/9d27a9d9-36ec-460e-9edb-6dff7ba4fc28"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/test-dataset/resource/9d27a9d9-36ec-460e-9edb-6dff7ba4fc28&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/2726</link>
        <guid isPermaLink="false">http://localhost/ticket/2726</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2727: long resource name breaks sidebar navigation box</title>
                  <description>&lt;p&gt;
see &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/test-dataset/resource_edit/9d27a9d9-36ec-460e-9edb-6dff7ba4fc28"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/test-dataset/resource_edit/9d27a9d9-36ec-460e-9edb-6dff7ba4fc28&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;amp; image attached
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2727</link>
        <guid isPermaLink="false">http://localhost/ticket/2727</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2728: deleted group shows on search index - for admins</title>
                  <description>&lt;p&gt;
'test-group', which has been deleted,shows up on main search page under groups - and can be filtered by - see &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset?groups=test-group"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset?groups=test-group&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2728</link>
        <guid isPermaLink="false">http://localhost/ticket/2728</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2729: searching for tags:[tag] works but tag:[tag] doesn't</title>
                  <description>&lt;p&gt;
which is confusing since you can only search for one tag like this at a time. I.e.
tags:economics,cvs or tags:economics, csv or tags:economics+CSV doesn't work for example; therefore tag:economics, should also work!
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset?q=tags%3Aeconomics&amp;amp;sort=relevance+asc"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset?q=tags%3Aeconomics&amp;amp;sort=relevance+asc&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2729</link>
        <guid isPermaLink="false">http://localhost/ticket/2729</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2730: please change pricing footer link</title>
                  <description>&lt;p&gt;
Pricing &amp;lt;ckan.org/datasuite/solutions&amp;gt; needs to go to &amp;lt;ckan.org/datasuite/services&amp;gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://ckan.org/datasuite/services/"&gt;http://ckan.org/datasuite/services/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2730</link>
        <guid isPermaLink="false">http://localhost/ticket/2730</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2731: Some sites permanently 'down for maintenance'</title>
                  <description>&lt;p&gt;
A large number of XXX.ckan.net sites give the following message:
&lt;/p&gt;
&lt;p&gt;
"This Site is Down for Maintenance
We apologize for the inconvenience.
~ The Open Knowledge Foundation sysadmins."
&lt;/p&gt;
&lt;p&gt;
The message is unhelpful and patently false - the sites do not exist. Some of them were supposed to have been redirected to a relevant group at thedatahub.org in this ticket (now closed):
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://trac.okfn.org/ticket/933"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.okfn.org/ticket/933&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
However, the redirection only seems to have worked in one case, &lt;a class="ext-link" href="http://si.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://si.ckan.net&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The problem still affects the following sites - the first 4 of which have supposedly been merged:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://lt.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://lt.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://hu.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://hu.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://be.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://be.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://gr.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://gr.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://nz.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://nz.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://bg.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bg.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://fi.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://fi.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://katalogdanych.centrumcyfrowe.pl"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://katalogdanych.centrumcyfrowe.pl&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://pl.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://pl.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://southampton.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://southampton.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://sl.ckan.net"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://sl.ckan.net&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Please sort this out by redirecting, removing the sites, giving a more helpful (and accurate) failure message, etc, as appropriate.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2731</link>
        <guid isPermaLink="false">http://localhost/ticket/2731</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2732: New file upload functionality</title>
                  <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>
        <link>http://localhost/ticket/2732</link>
        <guid isPermaLink="false">http://localhost/ticket/2732</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#2733: Datastore logic functions</title>
                  <description>&lt;h2 id="Wheredoesthedatago"&gt;Where does the data go?&lt;/h2&gt;
&lt;p&gt;
In a postgres database configured by the ckan.datastore_write_url config option which is a sqlalchemy url.
&lt;/p&gt;
&lt;p&gt;
The user should have rights to create tables.
&lt;/p&gt;
&lt;h2 id="Whatstheapilike"&gt;Whats the api like?&lt;/h2&gt;
&lt;p&gt;
We will just implement it as logic functions like the rest of CKAN and will part of core.  After that we may add some nicer api functions that use these but that is a secondary concern.
&lt;/p&gt;
&lt;h2 id="Whataretheinitiallogicfunctions"&gt;What are the initial logic functions?&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;datastore_create
&lt;/li&gt;&lt;li&gt;datastore_delete
&lt;/li&gt;&lt;li&gt;datastore_show
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="WhatistheJSONinputformatfordatastore_create"&gt;What is the JSON input format for datastore_create&lt;/h2&gt;
&lt;p&gt;
To begin with it can have the following keys. It is fairly consistent with Max Ogdens' gut servers.  Except adds resource_id.
&lt;/p&gt;
&lt;pre class="wiki"&gt;{
resource_id: resource_id # the data is going to be stored against.
fields: a list of dictionaries of fields/columns and their extra metadata.
records: a list of dictionaries of the data eg  [{"dob": "2005", "some_stuff": ['a', b']}, ..]
}
&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;The first row will be used to guess types not in the fields and the guessed types will be added to the headers permanently. Consecutive rows have to conform to the field definitions.
&lt;/li&gt;&lt;li&gt;rows: can be empty so that you can just set the fields
&lt;/li&gt;&lt;li&gt;fields are optional but needed if you want to do type hinting or add extra information for certain columns or to explicitly define ordering.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
eg:  [{"id": "dob", "type": "timestamp" }, {"id": "some_stuff", "type": "text"},  ...].
A header items values can not be changed after it has been defined nor can the ordering of them be changed.  They can be extended though.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Any error results in total failure!! For now pass back the actual error.
&lt;/li&gt;&lt;li&gt;Should be transactional
&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Whatjsondoesdatastore_deletetake"&gt;What json does datastore_delete take?&lt;/h2&gt;
&lt;pre class="wiki"&gt;{
resource_id: resource_id # the data is going to be deleted.
filters: dictionary of matching conditions to delete
    e.g  {'key1': 'a. 'key2': 'b'}  this will be equivalent to "delete from table where key1 = 'a' and key2 = 'b' ".
    No filters (either not present or not defined) then delete the table. If we want truncate then add truncate: true to truncate the table.
}
&lt;/pre&gt;&lt;h2 id="Whatjsondoesdatastore_searchtake"&gt;What json does datastore_search take?&lt;/h2&gt;
&lt;pre class="wiki"&gt;{
resource_id: resource_id # the data is going to be selected.
filters : dictionary of matching conditions to select
    e.g  {'key1': 'a. 'key2': 'b'}  this will be equivalent to "select * from table where key1 = 'a' and key2 = 'b' "
q: full text query
limit: limit the amount of rows to size default 100
offset: offset the amount of rows
fields:  list of fields return in that order, defaults (empty or not present) to all fields in fields order.
sort: comma separated field names with ordering e.g "fieldname1, fieldname2 desc"
}
&lt;/pre&gt;&lt;p&gt;
Some free code: &lt;a class="ext-link" href="https://gist.github.com/3163864"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/3163864&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="Whatjsondoesdatastore_searchreturn"&gt;What json does datastore_search return?&lt;/h2&gt;
&lt;pre class="wiki"&gt;{
fields: same type as datastore_create accepts (i.e. with metadata)
offset: The same offset that was supplied in datastore_show
limit: The original limit
filters: The filters that were applied in data_show
total: # total matching records without size or offset
records: [same as data_create] # list of matching results
}
&lt;/pre&gt;&lt;p&gt;
On error will return:
&lt;/p&gt;
&lt;pre class="wiki"&gt;{
__error__: … sql error …
}
&lt;/pre&gt;&lt;h2 id="Whattypesareallowed"&gt;What types are allowed?&lt;/h2&gt;
&lt;p&gt;
Aim to support as many postgres/postgis types that have string representations.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://www.postgresql.org/docs/9.1/static/datatype.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.postgresql.org/docs/9.1/static/datatype.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://www.postgresql.org/docs/9.1/static/sql-createdomain.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.postgresql.org/docs/9.1/static/sql-createdomain.html&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="IDs"&gt;IDs&lt;/h2&gt;
&lt;p&gt;
Each row in a table will be given an _id column which has an id generated by us which you can use in queries.
&lt;/p&gt;
&lt;h2 id="OtherFeatures"&gt;Other Features&lt;/h2&gt;
&lt;p&gt;
Each row will store the _full_text index of all the data in the row. At some later point there will most likely be a way to index fields add constraints etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2733</link>
        <guid isPermaLink="false">http://localhost/ticket/2733</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2734: once format on resource form has errored, no longer submits form</title>
                  <description>&lt;p&gt;
Steps to reproduce:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;go to edit a resource, e.g. &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/ted/resource_edit/a621a6ad-6f1c-46d1-b858-03cdb7a25c07"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/ted/resource_edit/a621a6ad-6f1c-46d1-b858-03cdb7a25c07&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Change the format field to something it doesn't get. e.g. add a comma "HTML,"
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Get message: "The form contains invalid entries:
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Last modified: Date format incorrect
Size: Invalid integer"
&lt;/p&gt;
&lt;ol start="4"&gt;&lt;li&gt;Format field reverts, try to re-save/submit form - i.e. click on "update resource"
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="5"&gt;&lt;li&gt;nothing happens (same if you even try changing the format field
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/2734</link>
        <guid isPermaLink="false">http://localhost/ticket/2734</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2735: Dataset order on user page</title>
                  <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>
        <link>http://localhost/ticket/2735</link>
        <guid isPermaLink="false">http://localhost/ticket/2735</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2736: Archiver fixes</title>
                  <description>&lt;p&gt;
We need to check the archiver to make sure it works as we would expect after the changes in &lt;a class="assigned ticket" href="http://localhost/ticket/2732" title="enhancement: New file upload functionality (assigned)"&gt;#2732&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Receive notification of a file that needs processing
&lt;/li&gt;&lt;li&gt;Check the file's DB entry and upload the file to the configured remote service
&lt;/li&gt;&lt;li&gt;Update the URL of the file (both in the file's DB entry and the resource)
&lt;/li&gt;&lt;li&gt;Once we're sure the file is safely archived, we should mark the file as being archived
&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
so that we know it can safely be deleted at some point.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Maybe this could/should be implemented as a service rather than a celery task?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2736</link>
        <guid isPermaLink="false">http://localhost/ticket/2736</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2737: change help/prefilled text in format field</title>
                  <description>&lt;p&gt;
Should be basic format (which is what the datastore wants &amp;amp; what we display to users) e.g. "CSV, XML, JSON etc"
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new_resource/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new_resource/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2737</link>
        <guid isPermaLink="false">http://localhost/ticket/2737</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2738: Data API</title>
                  <description>&lt;p&gt;
Why is datastore not enabled for this resource &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/frere/resource/cdeddb39-b0cb-4762-aa5b-f80fc892d4dd"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/frere/resource/cdeddb39-b0cb-4762-aa5b-f80fc892d4dd&lt;/a&gt; ?
&lt;/p&gt;
&lt;p&gt;
Is this going to be a site wide setting? How do new resources get added to datastore? Or are we just using the dataproxy for demo?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2738</link>
        <guid isPermaLink="false">http://localhost/ticket/2738</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2739: Help text for format field</title>
                  <description>&lt;p&gt;
Can we please add some text next to the format field when user adding a new resource along the lines of:
&lt;/p&gt;
&lt;p&gt;
"This will be generated automatically, but you can edit if you wish"
&lt;/p&gt;
&lt;p&gt;
It always seems to work better when the user does not fill it themselves...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2739</link>
        <guid isPermaLink="false">http://localhost/ticket/2739</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2740: misleading breadcrumbs</title>
                  <description>&lt;p&gt;
When adding a resource, the breadcrumb should say "add data" or "add resource" not "create dataset" as you see here:
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new_resource/frere"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new_resource/frere&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2740</link>
        <guid isPermaLink="false">http://localhost/ticket/2740</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2741: admin index styling</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/ckan-admin"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/ckan-admin&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
you need to be an admin
&lt;/p&gt;
&lt;p&gt;
paster sysadmin add &amp;lt;username&amp;gt; -c dev.ini
&lt;/p&gt;
&lt;p&gt;
we need to get links to other admin pages etc - I think this will want to be flexible so extensions can add extra links etc - but that can come later
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2741</link>
        <guid isPermaLink="false">http://localhost/ticket/2741</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2742: admin authz styling</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/ckan-admin/authz"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/ckan-admin/authz&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
you need to be an admin
&lt;/p&gt;
&lt;p&gt;
paster sysadmin add &amp;lt;username&amp;gt; -c dev.ini
&lt;/p&gt;
&lt;p&gt;
like &lt;a class="closed ticket" href="http://localhost/ticket/2741" title="enhancement: admin index styling (closed: fixed)"&gt;#2741&lt;/a&gt; we need other admin links
&lt;/p&gt;
&lt;p&gt;
you may want to make the inputs use your form macros - I've just done a basic port
&lt;/p&gt;
&lt;p&gt;
also we will need to get all the tables done but looks like we need to get auth groups working for that
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2742</link>
        <guid isPermaLink="false">http://localhost/ticket/2742</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2743: add dataset button within group</title>
                  <description>&lt;p&gt;
Currently the 'add dataset' button on a group page &lt;a class="ext-link" href="http://s031.okserver.org:2375/group/another-group-in-the-wall"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/group/another-group-in-the-wall&lt;/a&gt; goes to edit group. This is confusing since the interface for this is no way streamlined or helpful.
&lt;/p&gt;
&lt;p&gt;
Can we get this to go to the create dataset process instead (ideally with the group pre-chosen) for now?
&lt;/p&gt;
&lt;p&gt;
Further on will need to re-think &amp;amp; plan the workflow for publishers which will be a large part of new work
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2743</link>
        <guid isPermaLink="false">http://localhost/ticket/2743</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2744: license dropdown is cramped</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/new&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
license dropdown - when open we need some line spacing at least in FF
I think it'd be nice to fix this in phase 2
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2744</link>
        <guid isPermaLink="false">http://localhost/ticket/2744</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2745: Password reset returns an exception if the key parameter is missing</title>
                  <description>&lt;p&gt;
Instead of showing a notice, the password reset page throws an exception if the key parameter is missing:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Module ckan.controllers.user:329 in perform_reset
         c.reset_key = request.params.get('key')
               if not mailer.verify_reset_link(user_obj, c.reset_key):
                   h.flash_error(_('Invalid reset key. Please try again.'))
                   abort(403)
 if not mailer.verify_reset_link(user_obj, c.reset_key):
Module ckan.lib.mailer:100 in verify_reset_link
     if not user.reset_key or len(user.reset_key) &amp;lt; 5:
               return False
           return key.strip() == user.reset_key
 return key.strip() == user.reset_key
AttributeError: 'NoneType' object has no attribute 'strip'
&lt;/pre&gt;&lt;p&gt;
Apart from the obvious fix of checking for the 'key' parameter, it seems like is quite common to get these reset urls without the key parameter, so I suspect some email clients might strip the query params when building the links. We could avoid this problem by making the key part of the url instead of a param:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://thedatahub.org/en/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d/b4c2d03fa8"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/en/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d/b4c2d03fa8&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
instead of:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://thedatahub.org/en/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key=b4c2d03fa8"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/en/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key=b4c2d03fa8&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2745</link>
        <guid isPermaLink="false">http://localhost/ticket/2745</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2746: help bubble on demo homepage missing</title>
                  <description>&lt;p&gt;
Hey, this is still missing. It's the one with the add dataset text
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2746</link>
        <guid isPermaLink="false">http://localhost/ticket/2746</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2747: Breadcrumb should use title not URL of dataset</title>
                  <description>&lt;p&gt;
For example here: &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/new_resource/gold-prices"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/new_resource/gold-prices&lt;/a&gt;
The breadcrumb shows "gold-prices" which is not the title of the dataset
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2747</link>
        <guid isPermaLink="false">http://localhost/ticket/2747</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2748: add 'add new resource' button to sidebar</title>
                  <description>&lt;p&gt;
When editing a resource you see the current and any other existing resources in sidebar
&lt;/p&gt;
&lt;p&gt;
(e.g. see &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/format-error-test/resource_edit/d1eac556-c16f-44af-8148-5e3467b57cf8?inner_span=True"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/format-error-test/resource_edit/d1eac556-c16f-44af-8148-5e3467b57cf8?inner_span=True&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Would be good to have a pretty 'add new' slightly transparent resource folder/pointer undearneath - letting you add resources from the end resource page
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2748</link>
        <guid isPermaLink="false">http://localhost/ticket/2748</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2749: page title issue with super() super()</title>
                  <description>&lt;p&gt;
title broken for
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/new_resource/gold-prices"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/new_resource/gold-prices&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
we have inherited the title from the extended page not from the base
&lt;/p&gt;
&lt;p&gt;
should be 'add data - ckan' not 'add data - create dataset - ckan'
&lt;/p&gt;
&lt;p&gt;
any idea how we fix this?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2749</link>
        <guid isPermaLink="false">http://localhost/ticket/2749</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2750: javascript translations need ripping</title>
                  <description>&lt;p&gt;
we need to ensure that translations in .js files are ripper for translation
&lt;/p&gt;
&lt;p&gt;
look at what is available as preference to creating our own
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2750</link>
        <guid isPermaLink="false">http://localhost/ticket/2750</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2751: check translations for full demo site</title>
                  <description>&lt;p&gt;
need to check everything gets translated - sean did this before so will have info
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2751</link>
        <guid isPermaLink="false">http://localhost/ticket/2751</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2752: Navigation highlight missing</title>
                  <description>&lt;p&gt;
When navigating to &lt;a class="ext-link" href="http://s031.okserver.org:2375/group"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/group&lt;/a&gt; on the demo server, the Group link in the navbar is not highlighted in the same was as the other links are when visiting those pages.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2752</link>
        <guid isPermaLink="false">http://localhost/ticket/2752</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2753: rename breadcrumb on user page</title>
                  <description>&lt;p&gt;
Currently lower case 'active' is the name of this page: &lt;a class="ext-link" href="http://s031.okserver.org:2375/user"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Should be 'All Users' or 'Active Users'
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2753</link>
        <guid isPermaLink="false">http://localhost/ticket/2753</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2754: Add + icon to two buttons</title>
                  <description>&lt;p&gt;
Specifically the 'add resource' button and the 'add item' button in related section
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2754</link>
        <guid isPermaLink="false">http://localhost/ticket/2754</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2755: user pages very slow to load</title>
                  <description>&lt;p&gt;
navigating to a user page -one's own or &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/user/ira"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/user/ira&lt;/a&gt; or &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/user/shevski"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/user/shevski&lt;/a&gt;, even when signed out is noticeably slower than navigating between other parts of the site; over 2 seconds. Maybe even 3
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2755</link>
        <guid isPermaLink="false">http://localhost/ticket/2755</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2756: Fix handling of extras in group read</title>
                  <description>&lt;p&gt;
It doesn't pass extras_as_string
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2756</link>
        <guid isPermaLink="false">http://localhost/ticket/2756</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2757: Write documentation for upgrading a CKAN install from an older to a newer version of CKAN</title>
                  <description></description>
        <link>http://localhost/ticket/2757</link>
        <guid isPermaLink="false">http://localhost/ticket/2757</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2758: file storage gives error if config not available but no useful user information</title>
                  <description>&lt;p&gt;
We get an error which should be improved the actual problem is this but not passed to user
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
⇝ &lt;a class="missing wiki"&gt;KeyError?&lt;/a&gt;: 'ofs.impl'
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
View as:   Interactive (full)  |  Text (full)  |  XML (full)
Module ckan.controllers.storage:2 in auth_form         view
Module ckan.lib.jsonp:26 in jsonpify         view
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
data = func(*args, &lt;strong&gt;kwargs)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.storage:407 in auth_form         view
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
authorize(method, bucket, label, c.userobj, self.ofs)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.storage:200 in ofs         view
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
StorageAPIController._ofs_impl = get_ofs()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.storage:71 in get_ofs         view
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
storage_backend = config&lt;a class="missing wiki"&gt;ofs.impl?&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module paste.registry:146 in &lt;span class="underline"&gt;getitem&lt;/span&gt;         view
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self._current_obj()[key]
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;KeyError?&lt;/a&gt;: 'ofs.impl'
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2758</link>
        <guid isPermaLink="false">http://localhost/ticket/2758</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2759: resource upload pointer incorrect</title>
                  <description>&lt;p&gt;
On the add resource forms new or existing dataset
&lt;/p&gt;
&lt;p&gt;
when hovering over &lt;tt&gt;Upload a file&lt;/tt&gt; css cursor should be pointer not text
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2759</link>
        <guid isPermaLink="false">http://localhost/ticket/2759</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2760: fix spacing between data API button and other buttons on dataset page</title>
                  <description>&lt;p&gt;
see spacing between 'download' button and 'data api' button
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/afterfibre/resource/66f5b980-06db-4ccd-a005-c18de4d68a4b"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/afterfibre/resource/66f5b980-06db-4ccd-a005-c18de4d68a4b&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2760</link>
        <guid isPermaLink="false">http://localhost/ticket/2760</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2761: Document all the errors you can get when setting up filestore, and how to fix them</title>
                  <description>&lt;p&gt;
Add it to a 'Troubleshooting' section on the filestore page: &lt;a class="ext-link" href="http://docs.ckan.org/en/ckan-1.7.1/filestore.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/ckan-1.7.1/filestore.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
For the error messages and their solutions, see various threads on ckan-dev
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2761</link>
        <guid isPermaLink="false">http://localhost/ticket/2761</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2762: test_related.py crashes</title>
                  <description>&lt;p&gt;
/home/seanh/Projects/ckan/ckan/ckan/tests/functional/test_related.py
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;ImportError?&lt;/a&gt; (cannot import name assert_regexp_matches)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2762</link>
        <guid isPermaLink="false">http://localhost/ticket/2762</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2763: Multilingual tests failing</title>
                  <description>&lt;p&gt;
test_multilingual_plugin.&lt;a class="missing wiki"&gt;TestDatasetTermTranslation?&lt;/a&gt;.test_dataset_index_translation, test_multilingual_plugin.&lt;a class="missing wiki"&gt;TestDatasetTermTranslation?&lt;/a&gt;.test_group_read_translation both failing for me on master
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2763</link>
        <guid isPermaLink="false">http://localhost/ticket/2763</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2764: Simplify filestore</title>
                  <description>&lt;p&gt;
Definitely do:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Local file filestore: Remove pairtree (and OFS) and do something very simple
&lt;/li&gt;&lt;li&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Options:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Local file only. Allow for uploaders to GS / S3 in the background
&lt;ul&gt;&lt;li&gt;Advantages: simpler, if local upload can do progress bars etc etc
&lt;/li&gt;&lt;li&gt;Disadvantages: strain for web-app (upload a 2GB file what happens)
&lt;ul&gt;&lt;li&gt;This is probably fixable ...
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Stick with how we are
&lt;/li&gt;&lt;/ol&gt;&lt;h3 id="Newfilestorewithoutpairtree"&gt;New filestore without pairtree&lt;/h3&gt;
&lt;p&gt;
Each uploaded file is located on disk at:
&lt;/p&gt;
&lt;p&gt;
{uuid}/{filename}
&lt;/p&gt;
&lt;p&gt;
Alternative:
&lt;/p&gt;
&lt;p&gt;
yyyy/mm/dd/{uuid}/{filename}
&lt;/p&gt;
&lt;p&gt;
Need the uuid to avoid collisions.
&lt;/p&gt;
&lt;p&gt;
Metadata: Store no metadata.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2764</link>
        <guid isPermaLink="false">http://localhost/ticket/2764</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2765: Demo login error messages</title>
                  <description>&lt;p&gt;
I'd suggest we add a generic "failed to login, invalid fields" in the error_summary block. Then more specific "this field is required" when a required field is left empty.
&lt;/p&gt;
&lt;p&gt;
So in general, provide an error dict
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2765</link>
        <guid isPermaLink="false">http://localhost/ticket/2765</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2766: prevent draft datasets making it to activity stream</title>
                  <description>&lt;p&gt;
The new ckan creates datasets as part of a 3 phase process.  To allow for this partially created datasets can have a state that is 'draft' or 'draft-complete'.  These datasets should not be seen as active by the activity stream.
&lt;/p&gt;
&lt;p&gt;
If we click 'add dataset' and then complete the first phase of adding a dataset then we end up having a activity stream created.  When we add a resource in the next phase (add data) again an activity stream item xxx added resource to dataset is created
&lt;/p&gt;
&lt;p&gt;
We do not want these adding.  Essentially if a dataset has a state.startswith('draft') then we want the activity stream to ignore all actions involving it.
&lt;/p&gt;
&lt;p&gt;
finally when the state is changed form state.startswith('draft') to state=='active' we want a xxx has created dataset ... to be added to the stream.
&lt;/p&gt;
&lt;p&gt;
The best way to do this would be to branch from 2375-demo-theme-stable and get it to work there.
&lt;/p&gt;
&lt;p&gt;
Let me know if you need any help with this ticket or a better explanation of the problem.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2766</link>
        <guid isPermaLink="false">http://localhost/ticket/2766</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2767: Upgrade macro form.select to use tuples instead of dicts</title>
                  <description>&lt;p&gt;
This keeps the intended order.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2767</link>
        <guid isPermaLink="false">http://localhost/ticket/2767</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2768: normalise excel to xls</title>
                  <description>&lt;p&gt;
so that data proxy works
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2768</link>
        <guid isPermaLink="false">http://localhost/ticket/2768</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2769: add site wide related page</title>
                  <description>&lt;p&gt;
Can we add the related dashboard (&lt;a class="ext-link" href="http://trac.ckan.org/ticket/2347"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.ckan.org/ticket/2347&lt;/a&gt;) to demo - central place to show off all the related stuff added.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2769</link>
        <guid isPermaLink="false">http://localhost/ticket/2769</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2770: Some strings potentially not marked for translation</title>
                  <description>&lt;p&gt;
Luca De Santis reported these strings not marked in 1.7.1:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;ul&gt;&lt;li&gt;/user/login.html ("Remember me" &amp;amp; "Sign in")
&lt;/li&gt;&lt;li&gt;/package/search.html and template/package/group/read.html (Tags, Resource Formats, Groups)
&lt;/li&gt;&lt;li&gt;/package/resource_read.html (the "No description" message)
&lt;/li&gt;&lt;li&gt;the "Add related item" dialog (some strings are i18n savvy, others not)
&lt;/li&gt;&lt;li&gt;the stats page (labels on the graphs)
&lt;/li&gt;&lt;li&gt;the history page (as far as the log messages are concerned).
&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;
&lt;p&gt;
lets check that they are marked in 1.8
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2770</link>
        <guid isPermaLink="false">http://localhost/ticket/2770</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2771: Documentation and examples for IDatasetForm and IGroupForm</title>
                  <description>&lt;p&gt;
Add minimal, working IDatasetForm and IGroupForm example extensions to core, with tests.
&lt;/p&gt;
&lt;p&gt;
The IDatasetForm example should use tag vocabularies (two birds with one stone)
&lt;/p&gt;
&lt;p&gt;
The IDatasetForm and IGroupForm docs are not very good (and are somewhat spread around different doc chapters), fix them up, and reference the new working examples.
&lt;/p&gt;
&lt;p&gt;
Tab Vocabularies docs should reference IDatasetForm example.
&lt;/p&gt;
&lt;p&gt;
When using convert_to/from_extras() you have to remove any free extras from the form or it won't work, this needs to be documented (in the docstring maybe)
&lt;/p&gt;
&lt;p&gt;
There have been recent changes to the schemas that IDatasetForm and IGroupForm use, make sure the docs are up to date.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2771</link>
        <guid isPermaLink="false">http://localhost/ticket/2771</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2772: Update transifex for 1.8 translations</title>
                  <description>&lt;p&gt;
Upload the new pot file/resource on transifex, put out the call for translations. Some recent commits on master need to be merged into 1.8 first
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2772</link>
        <guid isPermaLink="false">http://localhost/ticket/2772</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2773: About page needs improving</title>
                  <description>&lt;p&gt;
The about page for the &lt;a class="missing wiki"&gt;DataHub?&lt;/a&gt; (thedatahub.org/about) could be improved. More importantly the default about page for a generic CKAN instance should be completely different - focus more on Open Data rather than the community hub idea (as this is more relevant for most installations) and remove specific references to tdh.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2773</link>
        <guid isPermaLink="false">http://localhost/ticket/2773</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2774: Provide a method of passing localised strings into the JavaScript</title>
                  <description>&lt;p&gt;
We need to be able to do the following:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Rip the localised strings from the &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; source code. These are strings that look like &lt;tt&gt;_('String')&lt;/tt&gt;, &lt;tt&gt;translate('String') &lt;/tt&gt; and &lt;tt&gt; isPlural('String') &lt;/tt&gt;.
&lt;/li&gt;&lt;li&gt;An endpoint that provides the translations in the correct locale for the user.
&lt;/li&gt;&lt;li&gt;The endpoint should provide the locale as JSON (possibly using &lt;a class="ext-link" href="http://jsgettext.berlios.de/doc/html/po2json.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://jsgettext.berlios.de/doc/html/po2json.html&lt;/a&gt; or similar tool)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; can then read this file on page load.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2774</link>
        <guid isPermaLink="false">http://localhost/ticket/2774</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2775: Add bin/less to paster serve command</title>
                  <description>&lt;p&gt;
Ideally the ./bin/less command would be run when the server is started.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Also it would be good to have a paster command to build the production CSS with {{{ ./bin/less --production }}
&lt;/li&gt;&lt;li&gt;The command could also detect missing node binaries and redirect to the documentation.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2775</link>
        <guid isPermaLink="false">http://localhost/ticket/2775</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2776: add styled text field for header title</title>
                  <description>&lt;p&gt;
to use on demos instead of the ckan logo &amp;amp; tag line.
&lt;/p&gt;
&lt;p&gt;
Design here: &lt;a class="ext-link" href="https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/63387712/comments#190457381"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/63387712/comments#190457381&lt;/a&gt;
(First, text only one at the bottom)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2776</link>
        <guid isPermaLink="false">http://localhost/ticket/2776</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2777: bug: user attributes</title>
                  <description></description>
        <link>http://localhost/ticket/2777</link>
        <guid isPermaLink="false">http://localhost/ticket/2777</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2778: apps dashboard needs some design love</title>
                  <description>&lt;p&gt;
apps dashboard available at &lt;a class="ext-link" href="http://localhost:5000/apps"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/apps&lt;/a&gt; in main dev branch
&lt;/p&gt;
&lt;p&gt;
I have got this to work in the demo however
&lt;/p&gt;
&lt;p&gt;
a) it is a bit ugly
&lt;/p&gt;
&lt;p&gt;
b) the template could do with some sorting eg the dropdowns should be being created in a nicer way
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2778</link>
        <guid isPermaLink="false">http://localhost/ticket/2778</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2779: add 'deleted' to deleted datasets that admins can view</title>
                  <description>&lt;p&gt;
Currently, as a logged in admin, you can view deleted datasets just as if they are live datasets. Nothing distinguishes them apart from normal datasets other than they don't show up on the dataset page
&lt;/p&gt;
&lt;p&gt;
This is potentially very confusing
Can we add some kind of banner / label to deleted datasets to show they have been deleted?
&lt;/p&gt;
&lt;p&gt;
&amp;amp; Do you guys need Sam to design this?
&lt;/p&gt;
&lt;p&gt;
Related ticket for undeleting datasets -  &lt;a class="ext-link" href="http://trac.ckan.org/ticket/2780"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.ckan.org/ticket/2780&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2779</link>
        <guid isPermaLink="false">http://localhost/ticket/2779</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2780: way for admins to undelete datasets</title>
                  <description>&lt;p&gt;
Since admins can see deleted datasets - there should be a way for them
a) to know they are currently deleted &amp;amp; not viewable by normal users - ticket: &lt;a class="closed ticket" href="http://localhost/ticket/2779" title="enhancement: add 'deleted' to deleted datasets that admins can view (closed: fixed)"&gt;#2779&lt;/a&gt;
b) way to undelete such datasets - this ticket
&lt;/p&gt;
&lt;p&gt;
I suggest a button on the edit form instead of the delete button
i.e. remove normal delete button with 'deleted dataset, only admins can view' with undelete button next to the message?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2780</link>
        <guid isPermaLink="false">http://localhost/ticket/2780</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2781: add way to edit homepage text to simple theming</title>
                  <description>&lt;p&gt;
demo.ckan.org has a small field for adding text on homepage
current text:
"Welcome to the CKAN demo
Try out standard CKAN functionality in a sandbox environment. Search for datasets directly from the homepage or by navigating to the Datasets search page where you can facet by tags, groups and format."
&lt;/p&gt;
&lt;p&gt;
Want to make this editable for demos
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2781</link>
        <guid isPermaLink="false">http://localhost/ticket/2781</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2782: integrate with leaflet for demo background generation</title>
                  <description>&lt;p&gt;
use &lt;a class="ext-link" href="http://leaflet.cloudmade.com/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://leaflet.cloudmade.com/&lt;/a&gt; properly to generate map backgrounds for demo instances
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2782</link>
        <guid isPermaLink="false">http://localhost/ticket/2782</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2783: Way to generate homepage backgrounds for demos/ckan hosted</title>
                  <description>&lt;p&gt;
Really we want this for CKAN Hosted &amp;amp; for creating demos.
&lt;/p&gt;
&lt;p&gt;
Currently we're using &lt;a class="ext-link" href="http://leaflet.cloudmade.com/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://leaflet.cloudmade.com/&lt;/a&gt; - but by finding the area &amp;amp; taking screenshots. Would be better to interate with the app so that:
a) this happens automatically and
b) correct attribution will be visible on maps
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2783</link>
        <guid isPermaLink="false">http://localhost/ticket/2783</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2784: model dictize sensitive data</title>
                  <description>&lt;p&gt;
The model dictize layer doesn't consistently remove sensitive data from the dictized models.  It should use the current context to decide whether to include sensitive data or not.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2784</link>
        <guid isPermaLink="false">http://localhost/ticket/2784</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2785: Allow resources to be re-ordered</title>
                  <description>&lt;p&gt;
Not sure where this functionality should be added, possibly in one of the sidebar widgets when editing a resource?
&lt;/p&gt;
&lt;p&gt;
Ira, what are your thoughts?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2785</link>
        <guid isPermaLink="false">http://localhost/ticket/2785</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2786: target blank HTML downloads</title>
                  <description>&lt;p&gt;
e.g. if I click on download here: &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/example-dataset/resource/d8797e51-b497-46ca-a274-8675533d110b"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/example-dataset/resource/d8797e51-b497-46ca-a274-8675533d110b&lt;/a&gt; can it take me to a new tab instead of navigating away from ckan?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2786</link>
        <guid isPermaLink="false">http://localhost/ticket/2786</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2787: Ensure templates_legacy directory is loaded for extensions</title>
                  <description>&lt;p&gt;
Currently the stats plugin has a template and templates_legacy directory. We need to ensure that the templates in templates_legacy are loaded.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2787</link>
        <guid isPermaLink="false">http://localhost/ticket/2787</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2788: Speed improvements on creating/updating and indexing</title>
                  <description>&lt;p&gt;
Specially needed when importing large numbers of datasets.
&lt;/p&gt;
&lt;p&gt;
Profiling the import command from the harvesting extension has shown some areas where improvements could be made.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2788</link>
        <guid isPermaLink="false">http://localhost/ticket/2788</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2789: logo fixups</title>
                  <description>&lt;p&gt;
With the text logo I'd like the tag line to be under the site name so some css like
&lt;/p&gt;
&lt;p&gt;
&lt;tt&gt;float:left;clear:left;font-size:13px;line-height:0.1;&lt;/tt&gt;
&lt;/p&gt;
&lt;p&gt;
Also the site name can be larger if no tagline
&lt;/p&gt;
&lt;p&gt;
commit daac54dbd856  I've added a new global g.header_css that sets the hgroup class to
&lt;/p&gt;
&lt;p&gt;
'header-image'
'header-text-logo'
'header-text-logo-tagline'
&lt;/p&gt;
&lt;p&gt;
I think maybe we should also have 'header-image-css'  for the equivalent of the class="logo" in the link to allow/stop the image replacement
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2789</link>
        <guid isPermaLink="false">http://localhost/ticket/2789</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2790: logic.action.user_show is slow</title>
                  <description>&lt;p&gt;
This is a very slow call it would benefit from the sort of speed-ups that package-search received
&lt;/p&gt;
&lt;p&gt;
for me locally this is taking 6 seconds for rufus using the datahub data I have.  I think a lot of this is the dataset retrival/dictization
&lt;/p&gt;
&lt;p&gt;
can we just grab json blobs from solr?
&lt;/p&gt;
&lt;p&gt;
also is it possible to specify a sort order/paging?
&lt;/p&gt;
&lt;p&gt;
I've put this as a demo-theme ticket as it is an big issue on the demo we are at 25 second page loads - which i can get down to about 8.8 secs so this is the main pain point now
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2790</link>
        <guid isPermaLink="false">http://localhost/ticket/2790</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2791: Logo fix</title>
                  <description>&lt;p&gt;
@aron
&lt;/p&gt;
&lt;p&gt;
We should be able to have longish tag lines that look ok currently they wrap and stop the logo text being clickable
&lt;/p&gt;
&lt;p&gt;
Can we have &lt;tt&gt;white-space:nowrap;&lt;/tt&gt; for the tagline so long ones don't wrap and maybe look at aligning long ones
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2791</link>
        <guid isPermaLink="false">http://localhost/ticket/2791</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2792: dropdown fixes - open correctly</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/&lt;/a&gt;  language dropdown expands downwards it should open upwards
&lt;/p&gt;
&lt;p&gt;
select2 can do this see &lt;a class="ext-link" href="http://ivaynberg.github.com/select2/#documentation"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ivaynberg.github.com/select2/#documentation&lt;/a&gt; can you see if we can get this in ckan demo
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2792</link>
        <guid isPermaLink="false">http://localhost/ticket/2792</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2793: Markdown of resource page not rendered as markdown</title>
                  <description>&lt;p&gt;
As per &lt;a class="closed ticket" href="http://localhost/ticket/2650" title="enhancement: Description on resources not rendered as markdown (closed: fixed)"&gt;#2650&lt;/a&gt; (on master/1.8 now)
&lt;/p&gt;
&lt;p&gt;
If the resource has a description it isn't rendered as markdown ..
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2793</link>
        <guid isPermaLink="false">http://localhost/ticket/2793</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2794: top buttons missing on edit resource</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/resource-markdown/resource_edit/ba1b094d-697c-47c4-a72a-6c2557da5409"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/resource-markdown/resource_edit/ba1b094d-697c-47c4-a72a-6c2557da5409&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
should have &lt;tt&gt;back to resource&lt;/tt&gt; as a minimum
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2794</link>
        <guid isPermaLink="false">http://localhost/ticket/2794</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2795: Check validation of HTML, CSS, JS</title>
                  <description>&lt;p&gt;
Ensure that we are being standards compliant
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2795</link>
        <guid isPermaLink="false">http://localhost/ticket/2795</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2796: Need a datahub one-pager</title>
                  <description>&lt;p&gt;
A one-pager explaining what the datahub is and with howto/examples for new users. This would make it much easier to explain the value in using the datahub for storing data.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2796</link>
        <guid isPermaLink="false">http://localhost/ticket/2796</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2797: plain_textarea styling</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/ckan-admin/config"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/ckan-admin/config&lt;/a&gt; uses a plain (non markup) textarea for custom css
&lt;/p&gt;
&lt;p&gt;
I've added form macro plain_textarea to provide one, however it renders without a bottom border due to markup textarea styling can you fix this - thanks
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2797</link>
        <guid isPermaLink="false">http://localhost/ticket/2797</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2798: Admin Config reset</title>
                  <description>&lt;p&gt;
this want to
&lt;/p&gt;
&lt;p&gt;
a) be a link on the left of the form like deletes
&lt;/p&gt;
&lt;p&gt;
b) needs a confirm like delete
&lt;/p&gt;
&lt;p&gt;
c) wants to work with the autoform
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2798</link>
        <guid isPermaLink="false">http://localhost/ticket/2798</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2799: Translations for demo not picking up {% trans %} blocks</title>
                  <description>&lt;p&gt;
Also they seem to be missing the odd &lt;tt&gt; _() &lt;/tt&gt; block. Such in the new package form.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/2375-demo-theme-development/ckan/templates/package/snippets/package_form.html#L44"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/blob/2375-demo-theme-development/ckan/templates/package/snippets/package_form.html#L44&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2799</link>
        <guid isPermaLink="false">http://localhost/ticket/2799</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2800: tooltip on popular datasets with number of views</title>
                  <description>&lt;p&gt;
be good to do this in phase 3
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2800</link>
        <guid isPermaLink="false">http://localhost/ticket/2800</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2801: no way to see full description of a related item</title>
                  <description>&lt;p&gt;
e.g. see here: &lt;a class="ext-link" href="http://s031.okserver.org:2375/apps"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/apps&lt;/a&gt;
same with related page on a dataset
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2801</link>
        <guid isPermaLink="false">http://localhost/ticket/2801</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2802: Need to tweak the JSON formatting of the localisations</title>
                  <description>&lt;p&gt;
This is what we need the JSON to look like. Taken from the Jed documentation (&lt;a class="ext-link" href="http://slexaxton.github.com/Jed/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://slexaxton.github.com/Jed/&lt;/a&gt;).
&lt;/p&gt;
&lt;pre class="wiki"&gt;{
      // The empty string key is used as the configuration
      // block for each domain
      "" : {
        // Domain name
        "domain" : "the_domain",
        // Language code
        "lang" : "en",
        // Plural form function for language
        "plural_forms" : "nplurals=2; plural=(n != 1);"
      },
      // Other keys in a domain contain arrays as values
      // that map to the translations for that key.
      // Gettext suggests that you use english as your keys
      // in case the key isn't found, and it can just pass
      // the value directly through.
      // Note: by convention, the 0-index location of the translations
      // is never accessed. It's just a thing, I guess.
      "a key" : [ null, "the translation", "the plural translations", ... ],
      // The plural form string is converted into a function
      // and the value that's passed into the gettext call
      // is passed into the plural form function. It's result
      // (plus 1) is the index that the translation comes from.
      // We're using sprintf interpolation on our keys so we can
      // then sub in the _actual_ values into the result.
      "%d key" : [ null, "%d key", "%d keys" ],
      // Contexts are keys that are just prefixed with a context string
      // with a unicode \u0004 as the delimiter.
      // You can use it for anything. Usually it's just for being content aware
      // in some way (e.g. male vs. female, product vs. category)
      "context\u0004%d key": [ null, "context %d key", "context %d keys" ]
    }
&lt;/pre&gt;&lt;p&gt;
This looks like an appropriate python library to do the formatting. &lt;a class="ext-link" href="http://pypi.python.org/pypi/pojson/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://pypi.python.org/pypi/pojson/&lt;/a&gt; but I'll leave to your discretion.
&lt;/p&gt;
&lt;p&gt;
Finally an API endpoint that returns the appropriate request would save us making requests to the i18n directory.
&lt;/p&gt;
&lt;pre class="wiki"&gt;/api/i18n/{locale}
&lt;/pre&gt;&lt;p&gt;
For example if the current url is &lt;a class="ext-link" href="http://localhost:5000/pl/dataset"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/pl/dataset&lt;/a&gt; then the client would request:
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://localhost:5000/api/i18n/pl
&lt;/pre&gt;&lt;p&gt;
This should return the Content-Type: application/json and a 200 with an appropriate JSON body (this can be the language requested or an appropriate fallback). I think that if the fallback is the default language (in most cases English) then we just return a 204 No Content to save data.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2802</link>
        <guid isPermaLink="false">http://localhost/ticket/2802</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2803: Convert all JS translations to use keywords</title>
                  <description></description>
        <link>http://localhost/ticket/2803</link>
        <guid isPermaLink="false">http://localhost/ticket/2803</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2804: please make download button blue</title>
                  <description>&lt;p&gt;
on resource pages (e.g. &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360&lt;/a&gt;), same as old ckan
for continuity and to highlight!
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2804</link>
        <guid isPermaLink="false">http://localhost/ticket/2804</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2805: zh_TW has no Plural-Forms</title>
                  <description>&lt;p&gt;
the .po file for zh_TW does not contain Plural-Forms which breaks the i18n &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; Extractions for ckan-demo.
&lt;/p&gt;
&lt;p&gt;
I've added the following which may or may not be correct - from web search
"Plural-Forms: nplurals=1; plural=0\n"
&lt;/p&gt;
&lt;p&gt;
I suspect it will get overwritten when translations are pulled from transiflex so passing to you as you are the expert in that realm
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2805</link>
        <guid isPermaLink="false">http://localhost/ticket/2805</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2806: way to read full group description</title>
                  <description>&lt;p&gt;
e.g. currently no way to read full description for the 'data explorer examples' group here:http://s031.okserver.org:2375/group/data-explorer
&lt;/p&gt;
&lt;p&gt;
Can we add a 'read more' link that expands and contracts the sidebar box or similar?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2806</link>
        <guid isPermaLink="false">http://localhost/ticket/2806</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2807: autocomplete.js error</title>
                  <description>&lt;p&gt;
@aron,
&lt;/p&gt;
&lt;p&gt;
edit dataset has a js error
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;TypeError?&lt;/a&gt;: options is undefined
[Break On This Error]
&lt;/p&gt;
&lt;p&gt;
this.lookup(options.term, options.callback);
&lt;/p&gt;
&lt;p&gt;
autocomplete.js (line 231)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2807</link>
        <guid isPermaLink="false">http://localhost/ticket/2807</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2808: Confirm delete dialog badly placed on small screen</title>
                  <description>&lt;p&gt;
If you make your browser window short - say half screen height on a page with delete eg &lt;a class="ext-link" href="http://localhost:5000/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
the dialog box is partially off the screen - it should try to stay on screen
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2808</link>
        <guid isPermaLink="false">http://localhost/ticket/2808</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2809: _ not defined for modules</title>
                  <description>&lt;p&gt;
eg on confirm delete
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://localhost:5000/zh_TW/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/zh_TW/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
_(....) gives [object Object] not translation
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2809</link>
        <guid isPermaLink="false">http://localhost/ticket/2809</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2810: heroku ckan support</title>
                  <description>&lt;p&gt;
Get ckan working on heroku
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2810</link>
        <guid isPermaLink="false">http://localhost/ticket/2810</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2811: Author doesn't show on dataset read page</title>
                  <description>&lt;p&gt;
Edit a dataset and add an author, dataset read page still says 'author not given'. If you fill out both the author and author email fields then it works.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2811</link>
        <guid isPermaLink="false">http://localhost/ticket/2811</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2812: Groups description needs improving</title>
                  <description>&lt;p&gt;
The 'What are Groups?' text at &amp;lt;&lt;a class="ext-link" href="http://demo.ckan.org/group"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/group&lt;/a&gt;&amp;gt; is a
bit naff. Here is a suggested replacement:
&lt;/p&gt;
&lt;p&gt;
What are groups?
&lt;/p&gt;
&lt;p&gt;
Groups allow you to group users and data together so that they are
easier to manage. For example datasets in a group could be visible
only to group members, or publicly visible but only editable by group
members.
&lt;/p&gt;
&lt;p&gt;
Groups can be used to collect together datasets from a single
publisher, or related to a particular project, for example.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2812</link>
        <guid isPermaLink="false">http://localhost/ticket/2812</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2813: Confusing sidebar on demo dataset page</title>
                  <description>&lt;p&gt;
On a dataset page on demo.ckan.org, the left sidebar is confusing.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;It starts with some random links. Actually they are links to groups which the dataset is in, but this isn't clear.
&lt;/li&gt;&lt;li&gt;The sidebar elements that are actually part of the dataset are 'Datset extent' and 'License', so these should be right at the top (if they belong in the sidebar at all), instead of which they are right at the bottom in the junk part of the page (i.e. probably lower than the bottom of the main page, and hence lower than anyone will scroll).
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2813</link>
        <guid isPermaLink="false">http://localhost/ticket/2813</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2814: Demo: upload file behaves oddly</title>
                  <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>
        <link>http://localhost/ticket/2814</link>
        <guid isPermaLink="false">http://localhost/ticket/2814</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2815: db_to_form_package_schema() strips tracking summary, isopen</title>
                  <description>&lt;p&gt;
If an IDatasetForm plugin with a db_to_form_schema() based on db_to_form_package_schema() (which is in turn based on default_package_schema()) is in use then the 'tracking_summary' dict and the 'isopen' bool get stripped from package dicts during validation, e.g. during package_show(), and these values are then not available to templates.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2815</link>
        <guid isPermaLink="false">http://localhost/ticket/2815</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2816: DomainObjectOperation not in model</title>
                  <description>&lt;p&gt;
Over-enthusiastic removal of some model items
&lt;/p&gt;
&lt;p&gt;
this breaks qa extension
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2816</link>
        <guid isPermaLink="false">http://localhost/ticket/2816</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2817: Item Type Reverts on Invalid URL</title>
                  <description>&lt;p&gt;
Problem: When creating a related item, if you put in a invalid URL it loses the choice of Item Type (e.g. Visualisation, Application) and reverts to the first time (API).
Expected: It remembers which one was chosen
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2817</link>
        <guid isPermaLink="false">http://localhost/ticket/2817</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2818: Improve related item schema</title>
                  <description>&lt;p&gt;
Problem: When creating a related item (e.g. a Visualisation), if you don't put in a URL it succeeds, but on the related items and apps pages it renders it as a link to the same page.
Expected: Always require a URL and it should only submit
if one is added
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2818</link>
        <guid isPermaLink="false">http://localhost/ticket/2818</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2819: Related Item Summary of Descriptions Markdown Issue</title>
                  <description>&lt;p&gt;
Problem: When creating a related item it mentions that you can use markdown in the description, however markdown doesn't render in apps page nor in related items page.
Expected: Make shortened descriptions (on apps page &amp;amp; related items page) render markdown
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2819</link>
        <guid isPermaLink="false">http://localhost/ticket/2819</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2820: English Language: Visualization -&gt; Visualisation</title>
                  <description>&lt;p&gt;
Problem: In the English version (which has a UK flag, indicating British English), the word "Visualization" is used. For an example see the "Filter by type" drop down on the /apps page.
Expected: This should be "Visualisation" in British English. Any instances of "Visualize" should be changed to "Visualise" too.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2820</link>
        <guid isPermaLink="false">http://localhost/ticket/2820</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2821: Featured Items on Filter</title>
                  <description>&lt;p&gt;
Problem: On /apps page in the Filter Results box there is a "Only show featured items" checkbox, on selection it comes up with 0 solutions.
Expected: Presumably an admin can create "featured items" so that they can be randomly selected on front page (is this correct)? If there are no "featured items" in the whole database can this check box be hidden?
Bug is: no UI or obvious way to create featured items. Also the
checkbox looks un-styled
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2821</link>
        <guid isPermaLink="false">http://localhost/ticket/2821</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2822: Resource additional info titles format/i18n</title>
                  <description>&lt;p&gt;
the title for additional info should be translated
&lt;/p&gt;
&lt;p&gt;
capitalised etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2822</link>
        <guid isPermaLink="false">http://localhost/ticket/2822</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2823: resource additional info title order</title>
                  <description>&lt;p&gt;
Order the items so that none user fields are first from ticket &lt;a class="closed ticket" href="http://localhost/ticket/2707" title="enhancement: Tidy up additional info boxes on dataset and resource pages (closed: fixed)"&gt;#2707&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2823</link>
        <guid isPermaLink="false">http://localhost/ticket/2823</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2824: Multiple of the same Flag Issues</title>
                  <description>&lt;p&gt;
There is some bizarre language flag issues.
1) Log in to &lt;a class="ext-link" href="http://s031.okserver.org:2375/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/&lt;/a&gt; (I'm logged in as danieljohnlewis)
2) Visit the apps page: &lt;a class="ext-link" href="http://s031.okserver.org:2375/apps"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/apps&lt;/a&gt;
3) Have a look at the languages drop down, flags look fine (although Deutsche does have an EU flag rather than the German flag.. but that's irrelevant)
4) Change filters to, say, type: Application and sort: Newest, and apply. Web address becomes: &lt;a class="ext-link" href="http://s031.okserver.org:2375/apps?page=1&amp;amp;type=application&amp;amp;sort=created_desc"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/apps?page=1&amp;amp;type=application&amp;amp;sort=created_desc&lt;/a&gt;
5) Look at the languages drop down: Flags are largely incorrect, with more than one country having the same flag.
&lt;/p&gt;
&lt;p&gt;
Please see the attached screenshot.
&lt;/p&gt;
&lt;p&gt;
Note: this was originally tested with Google Chrome on Linux (Ubuntu).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2824</link>
        <guid isPermaLink="false">http://localhost/ticket/2824</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2825: Loss of URL encoding on language change on apps page</title>
                  <description>&lt;p&gt;
Problem: On /apps page if you start in one language, filter the data, and then change languages it loses the correct format for the HTTP Get Parameters (and therefore loses the filters). Example, start in English language, change filter settings to to Application and Newest, change language to German.
Expected: Retain correct format for HTTP Get Parameters so that the filter settings are retained. Solution will involve not turning "=" into "%3D" in the URL, i.e. turn off URL encoding.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2825</link>
        <guid isPermaLink="false">http://localhost/ticket/2825</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2826: Null group image</title>
                  <description>&lt;p&gt;
Problem: Example group ( &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/group/example-group"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/group/example-group&lt;/a&gt; ) has a broken image, image not found. Link either incorrect, or no image set, if no image set then shouldn't it show a default image?
Expected: There should be an image.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2826</link>
        <guid isPermaLink="false">http://localhost/ticket/2826</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2827: View Item - RSS Feed Issues</title>
                  <description>&lt;p&gt;
Problem: Server Error (HTTP Code 500) when trying to see information related to an RSS feed... example: &lt;a class="ext-link" href="http://s031.okserver.org:2375/en/dataset/testerisation/resource/974df29e-77bb-4b5e-982c-cb7a295c1923"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/en/dataset/testerisation/resource/974df29e-77bb-4b5e-982c-cb7a295c1923&lt;/a&gt;
Expected: A page that looks a bit more like this: &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/epims-lod2/resource/97531bd8-e75c-4efa-bfa2-bb51d0ba90d0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/epims-lod2/resource/97531bd8-e75c-4efa-bfa2-bb51d0ba90d0&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2827</link>
        <guid isPermaLink="false">http://localhost/ticket/2827</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2828: Draft datasets are confusing - tickets need creating</title>
                  <description>&lt;p&gt;
reported as editing datasets incorrect
&lt;/p&gt;
&lt;p&gt;
e.g. clicking on edit here &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/ff"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/ff&lt;/a&gt;
takes you to create dataset page &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/edit/ff"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/edit/ff&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
but this is the correct behaviour of a draft dataset
&lt;/p&gt;
&lt;p&gt;
We need to show draft datasets correctly
&lt;/p&gt;
&lt;p&gt;
proper tickets need making for the different issues after review of issues with them - who can see, where, admins and viewing, orgs too etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2828</link>
        <guid isPermaLink="false">http://localhost/ticket/2828</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2829: Archiver fails on 403 http response</title>
                  <description>&lt;p&gt;
Had this issue with the archiver on my local machine need to be logged in (I am admin) to see via web front end
&lt;/p&gt;
&lt;pre class="wiki"&gt;$ paster archiver update -c ../ckan/development.ini
2012-08-09 11:01:37,636 INFO  [ckanext.archiver.commands] Archival of dataset resource data added to celery queue: opencontext-chogha-mish-fauna (1 resources)
2012-08-09 11:01:37,671 INFO  [ckanext.archiver.commands] Getting dataset metadata: south-african-national-gov-budget-2012-13
2012-08-09 11:01:37,900 INFO  [ckan.lib.base]  /api/action/package_show render time 0.043 seconds
Traceback (most recent call last):
  File "/home/toby/okfn/pyenv/bin/paster", line 8, in &amp;lt;module&amp;gt;
    load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()
  File "/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/script/command.py", line 104, in run
    invoke(command, command_name, options, args[1:])
  File "/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/script/command.py", line 143, in invoke
    exit_code = runner.run(args)
  File "/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/script/command.py", line 238, in run
    result = self.command()
  File "/home/toby/okfn/pyenv/src/ckanext-archiver/ckanext/archiver/commands.py", line 98, in command
    response = app.post(api_url + '/package_show', data)
  File "/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/fixture.py", line 262, in post
    expect_errors=expect_errors)
  File "/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/fixture.py", line 243, in _gen_request
    return self.do_request(req, status=status)
  File "/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/fixture.py", line 406, in do_request
    self._check_status(status, res)
  File "/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/fixture.py", line 439, in _check_status
    res.body))
paste.fixture.AppError: Bad response: 403 Forbidden (not 200 OK or 3xx redirect for /api/action/package_show)
{"help": "Return the metadata of a dataset (package) and its resources.\n\n    :param id: the id or name of the dataset\n    :type id: string\n\n    :rtype: dictionary\n\n    ", "success": false, "error": {"message": "Access denied", "__type": "Authorization Error"}}
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2829</link>
        <guid isPermaLink="false">http://localhost/ticket/2829</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2830: Need method to undelete groups</title>
                  <description>&lt;p&gt;
need controller action and front-end method
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2830</link>
        <guid isPermaLink="false">http://localhost/ticket/2830</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2831: Create a limited subset of markdown that's supported</title>
                  <description>&lt;p&gt;
Allowing people to use the full range of markdown results in extremely messy output across the site. I'd suggest limiting support to only a subset of common use cases.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Allow all inline elements, this allows bold, italic, code and links.
&lt;/li&gt;&lt;li&gt;Allow lists.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Disallow
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Horizontal Rules
&lt;/li&gt;&lt;li&gt;Headings
&lt;/li&gt;&lt;li&gt;Block quote and code (this may turn out to be useful and so could be included)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This way you get markdowns paragraph handling and a few inline styles without breaking the entire layout of the page.
&lt;/p&gt;
&lt;p&gt;
Here's the full syntax if anyone is interested &lt;a class="ext-link" href="http://daringfireball.net/projects/markdown/syntax"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://daringfireball.net/projects/markdown/syntax&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2831</link>
        <guid isPermaLink="false">http://localhost/ticket/2831</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2832: can't add a dataset to more than one group</title>
                  <description>&lt;p&gt;
add to groups is a drop down menu where you can only choose one
needs a new UI &amp;amp; logic allowing user to add new groups &amp;amp; potentially remove from other lists
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2832</link>
        <guid isPermaLink="false">http://localhost/ticket/2832</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2833: Load module templates before calling .initialize()</title>
                  <description>&lt;p&gt;
I think this would be a nice feature for remote loading templates if the options.template value ends in ".html".
&lt;/p&gt;
&lt;pre class="wiki"&gt;ckan.module('my-module', {
  options: {
    template: 'my-template.html'
  },
  initialize: function () {
    this.template // This is the loaded template.
  }
});
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2833</link>
        <guid isPermaLink="false">http://localhost/ticket/2833</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2834: Defer all publish calls until all modules have been initialised</title>
                  <description>&lt;p&gt;
Currently if a module uses sandbox.publish() in its initilaize() function then any modules initialised afterwards will miss the event.
&lt;/p&gt;
&lt;p&gt;
We should queue all calls to .publish() in the pubsub module in an array until all modules have loaded then iterate over and execute them.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2834</link>
        <guid isPermaLink="false">http://localhost/ticket/2834</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2835: Client module needs a template loading method</title>
                  <description>&lt;pre class="wiki"&gt;Client#getTemplate(name, params, success, error);
&lt;/pre&gt;&lt;p&gt;
Where params, success and error are optional arguments. test/index.html already has an implementation called loadFixture().
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2835</link>
        <guid isPermaLink="false">http://localhost/ticket/2835</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2836: Need extra info for forms</title>
                  <description>&lt;p&gt;
like we have on the form here
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/harvest/new"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/harvest/new&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
you said it partly exists so maybe I just need some training
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2836</link>
        <guid isPermaLink="false">http://localhost/ticket/2836</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2837: checkbox styling</title>
                  <description>&lt;p&gt;
Is this done I know checkboxes are a pain but it looks a bit out of place compared to the other items.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2837</link>
        <guid isPermaLink="false">http://localhost/ticket/2837</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2838: Context variables accepted by action functions need to be documented</title>
                  <description>&lt;p&gt;
I was doing this:
&lt;/p&gt;
&lt;pre class="wiki"&gt;context = {'model': base.model, 'session': base.model.Session,
                    'user': toolkit.c.user or toolkit.c.author,
                    'extras_as_string': True}
group_dict = logic.get_action('group_show')(context,
                    {'id': group_id})
&lt;/pre&gt;&lt;p&gt;
in an extension and one of the group_dicts fields, one that uses convert_to/from_extras, was coming out with the wrong value. It took me ages to realise that I had to pass &lt;tt&gt;'extras_as_string': True&lt;/tt&gt; in the context. I don't think this or other context variables are documented anywhere.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2838</link>
        <guid isPermaLink="false">http://localhost/ticket/2838</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2839: Specifying sort order breaks search results on group page</title>
                  <description>&lt;p&gt;
Create a group, create some datasets and add them to the group, then view the group's page with a sort-order specified in the URL, e.g. &lt;tt&gt;/group/foo?q=&amp;amp;sort=title_string+asc&lt;/tt&gt;, no datasets are displayed even though there are datasets in the group that match the search query. Remove the sort order from the URL and the datasets will appear.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2839</link>
        <guid isPermaLink="false">http://localhost/ticket/2839</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2840: tag line styling</title>
                  <description>&lt;p&gt;
@aron
&lt;/p&gt;
&lt;p&gt;
Is it possible to get the tagline text to float  the other way
&lt;/p&gt;
&lt;p&gt;
at the moment we have
&lt;/p&gt;
&lt;p&gt;
...........Title
Tag line to here
&lt;/p&gt;
&lt;p&gt;
I'd like
&lt;/p&gt;
&lt;p&gt;
...........Title
...........Tag line to here
&lt;/p&gt;
&lt;p&gt;
is this possible or too much pain
&lt;/p&gt;
&lt;p&gt;
based partly on this comment
Markw wrote
&lt;/p&gt;
&lt;p&gt;
A minor problem visible on the home page
&amp;lt;&lt;a class="ext-link" href="http://s031.okserver.org:2375/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/&lt;/a&gt;&amp;gt; and other pages, when viewing in both
Chrome and Firefox:
&lt;/p&gt;
&lt;p&gt;
if the browser width is not very wide, the tag line 'Open source data
portal' vanishes off the *left* hand side of the screen. For some
reason the browser doesn't even recognise this with a horizontal
scroll bar (as it does when stuff is off the *right* hand side) - it
just chops off the text.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2840</link>
        <guid isPermaLink="false">http://localhost/ticket/2840</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2841: Slug generation fails on demo dev</title>
                  <description>&lt;p&gt;
On the add dataset form, slug generation fails with JS error:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Uncaught TypeError: Object [object Object] has no method 'incompleteFormWarning'    basic-form.js:5
&lt;/pre&gt;</description>
        <link>http://localhost/ticket/2841</link>
        <guid isPermaLink="false">http://localhost/ticket/2841</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2842: Allow sort ordering of dataset listings on group pages</title>
                  <description></description>
        <link>http://localhost/ticket/2842</link>
        <guid isPermaLink="false">http://localhost/ticket/2842</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2843: Adding existing datasets to organizations is broken</title>
                  <description>&lt;p&gt;
On the organization read page there is only an 'Add Dataset' button, not a drop-down with add new dataset or add existing dataset as on the default group page.
&lt;/p&gt;
&lt;p&gt;
On the organization edit page you do have the drop-down, but if you click add existing dataset nothing happens except it appends #datasets to the URL
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2843</link>
        <guid isPermaLink="false">http://localhost/ticket/2843</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2844: SQL-only (no solr) version of CKAN</title>
                  <description>&lt;ul&gt;&lt;li&gt;&lt;del&gt;Search needs to run of local DB (again)&lt;/del&gt;
&lt;/li&gt;&lt;li&gt;paster db clean attemps to connect to SOLR (still works as does db first but then excepts which is not nice UX)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2844</link>
        <guid isPermaLink="false">http://localhost/ticket/2844</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2845: Editing an organization removes all datasets from the organization</title>
                  <description>&lt;p&gt;
Run CKAN with the publisher profile and organizations plugins enabled. Make an organization. Make a dataset and add it to the organization. Edit the organization and change e.g. its description. After saving the organization, all its datasets have been removed from the organization and now belong to no organization.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2845</link>
        <guid isPermaLink="false">http://localhost/ticket/2845</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2846: Organizations allows you to set an organization as the parent organization of itself</title>
                  <description>&lt;p&gt;
that doesn't make any sense
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2846</link>
        <guid isPermaLink="false">http://localhost/ticket/2846</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2847: 'show inactive sources' checkbox displaying incorrectly</title>
                  <description>&lt;p&gt;
On harvest page: &lt;a class="ext-link" href="http://s031.okserver.org:2375/harvest"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/harvest&lt;/a&gt; the checkbox appears above the text and not clear what it refers to/
&lt;/p&gt;
&lt;p&gt;
Beter to relocate to the left (as on publicdata.eu) see screenshots attached.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2847</link>
        <guid isPermaLink="false">http://localhost/ticket/2847</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2848: no dataset descriptions on front page</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://s031.okserver.org:2375/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2848</link>
        <guid isPermaLink="false">http://localhost/ticket/2848</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2849: header tagline misalighned</title>
                  <description>&lt;p&gt;
should be left alighned, not right aligned. Otherwise tag line disappears left off the page.
&lt;/p&gt;
&lt;p&gt;
See: header here: &lt;a class="ext-link" href="http://s031.okserver.org:2375/ckan-admin/config"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/ckan-admin/config&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2849</link>
        <guid isPermaLink="false">http://localhost/ticket/2849</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>aron.carroll</dc:creator>

                  <title>#2850: Add JSON support for IE7</title>
                  <description>&lt;p&gt;
The &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; just isn't going to work without it. Look into either the newer JSON3:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://bestiejs.github.com/json3/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bestiejs.github.com/json3/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
or the old faithful:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/douglascrockford/JSON-js/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/douglascrockford/JSON-js/&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2850</link>
        <guid isPermaLink="false">http://localhost/ticket/2850</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2851: Preview of PDF tries to connect to datastore</title>
                  <description>&lt;p&gt;
e.g. &lt;a class="ext-link" href="http://datahub.io/dataset/ccc-gistemp/resource/80ebdbd6-d91b-4fef-9db4-d3dfbd7e868e"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://datahub.io/dataset/ccc-gistemp/resource/80ebdbd6-d91b-4fef-9db4-d3dfbd7e868e&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
CKAN attempts to render the PDF as a datastore tabular date even though the mimetype of the PDF is correctly specified.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2851</link>
        <guid isPermaLink="false">http://localhost/ticket/2851</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2852: better message for trying to refresh inactive sources in harvest</title>
                  <description>&lt;p&gt;
Currently if you try to refresh (i.e. schedule the harvester to re-run) an inactive source (one who's state is 'withdrawn' - e.g. &lt;a class="ext-link" href="http://s031.okserver.org:2375/harvest/3feea629-32d8-4431-9957-9f31d32864f1"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/harvest/3feea629-32d8-4431-9957-9f31d32864f1&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
you get the error message: "An error occurred: [Can not create jobs on inactive sources]"
&lt;/p&gt;
&lt;p&gt;
This could be better and not red, e.g. and info box (maybe yellow) saying that "Cannot re-run harvesting on inactive sources. Please first change the status to 'active'"
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2852</link>
        <guid isPermaLink="false">http://localhost/ticket/2852</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2853: unclear error message in refreshing harvest source</title>
                  <description>&lt;p&gt;
Tried to refresh the datagm harvest source to get error message:
&lt;/p&gt;
&lt;p&gt;
"An error occurred: [There already is an unrun job for this source]"
&lt;/p&gt;
&lt;p&gt;
This is unclear and not sure why it created an error. We should have something informative such as "A harvest has already been scheduled for this source"
&lt;/p&gt;
&lt;p&gt;
Do we have a date/time for when this has been scheduled that we can display?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2853</link>
        <guid isPermaLink="false">http://localhost/ticket/2853</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2854: no way to see which dataset an app is related to on /apps page</title>
                  <description>&lt;p&gt;
e.g. from &lt;a class="ext-link" href="http://s031.okserver.org:2375/apps?page=1"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/apps?page=1&lt;/a&gt; you cannot edit a related item as an admin or view what dataset the item is related to
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2854</link>
        <guid isPermaLink="false">http://localhost/ticket/2854</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2855: language box no longer functional</title>
                  <description>&lt;p&gt;
e.g. tried changing the lang here: &lt;a class="ext-link" href="http://s031.okserver.org:2375/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/&lt;/a&gt; to no effect. Doesn't work on any other pages either. Flags have also dissappeared
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2855</link>
        <guid isPermaLink="false">http://localhost/ticket/2855</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2856: server error when clicking on deleted app link</title>
                  <description>&lt;ol&gt;&lt;li&gt;go to &lt;a class="ext-link" href="http://s031.okserver.org:2375/user/okfn"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user/okfn&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Click on activity stream
&lt;/li&gt;&lt;li&gt;Click on 'Deletion test' related item that's linked to in entries 1 &amp;amp; 2
&lt;/li&gt;&lt;li&gt;Server error
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/2856</link>
        <guid isPermaLink="false">http://localhost/ticket/2856</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2857: no UI to follow another user although option on dashboard</title>
                  <description>&lt;p&gt;
e.g. second option in left hand sidebar is follow another user' &lt;a class="ext-link" href="http://s031.okserver.org:2375/user/dashboard"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user/dashboard&lt;/a&gt; but if you click on that and then any user, there's no follow button
&lt;/p&gt;
&lt;p&gt;
to me the dashboard user stuff is highly unfinished and probably should not be included unless someone is very keen for it
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2857</link>
        <guid isPermaLink="false">http://localhost/ticket/2857</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2858: Harvester tweaks</title>
                  <description>&lt;p&gt;
I've had a look at the new harvesting theme, it looks great, thanks. I
did some minor changes and reworded the errors as per tickets &lt;a class="closed ticket" href="http://localhost/ticket/2852" title="enhancement: better message for trying to refresh inactive sources in harvest (closed: fixed)"&gt;#2852&lt;/a&gt;
and &lt;a class="closed ticket" href="http://localhost/ticket/2853" title="enhancement: unclear error message in refreshing harvest source (closed: fixed)"&gt;#2853&lt;/a&gt;, but I kept the messages red, as the only other ones
available ("flash_notice") are blue and are not very prominent.
&lt;/p&gt;
&lt;p&gt;
Toby, on the old form there was a list of descriptions for all
available harvesters which could be nice to have back. I couldn't find
an easy way with the new form macro, so I don't know how easy would be
to implement
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://i.imgur.com/pzS8z.png"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://i.imgur.com/pzS8z.png&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2858</link>
        <guid isPermaLink="false">http://localhost/ticket/2858</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2859: Fix the build</title>
                  <description>&lt;p&gt;
The requires files have been removed.  These were required by buildkit.
&lt;/p&gt;
&lt;p&gt;
We've lost the information regarding which packages were already in ubuntu repos, which conflicted and which were missing.  But perhaps we can just package everything up.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2859</link>
        <guid isPermaLink="false">http://localhost/ticket/2859</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2860: target blank link in qa report</title>
                  <description>&lt;p&gt;
can we get the link going to an explanation of the 5 star system on page &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; to open in new tab? it's leaving demo all together so better to open in new tab than navigate away
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2860</link>
        <guid isPermaLink="false">http://localhost/ticket/2860</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2861: Add qa breadcrumb</title>
                  <description>&lt;p&gt;
can we add in the breadcrumb navigation to qa pages so that you can go back to &lt;a class="ext-link" href="http://s031.okserver.org:2375/qa"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/qa&lt;/a&gt; from sub pages such as &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;
</description>
        <link>http://localhost/ticket/2861</link>
        <guid isPermaLink="false">http://localhost/ticket/2861</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>markw</dc:creator>

                  <title>#2862: Revised revised groups description</title>
                  <description>&lt;p&gt;
Revised text for 'What are groups?' box at demo.ckan.org/group (after discussion with IB re &lt;a class="closed ticket" href="http://localhost/ticket/2812" title="enhancement: Groups description needs improving (closed: invalid)"&gt;#2812&lt;/a&gt;):
&lt;/p&gt;
&lt;p&gt;
What are groups?
&lt;/p&gt;
&lt;p&gt;
Groups allow you to group users and data together so that they are easier to manage. Group owners can assign roles and authorisations, giving each project or department control of its own data publishing.
&lt;/p&gt;
&lt;p&gt;
Users can browse or facet by groups, which could be an organisation (for example, the Department of Health) or topic (e.g. Transport, Health), making it easier to find the data they are looking for.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2862</link>
        <guid isPermaLink="false">http://localhost/ticket/2862</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2863: non-admin users can edit other's draft datasets</title>
                  <description>&lt;p&gt;
edit button shows up for daniel lewis for &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/ff"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/ff&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2863</link>
        <guid isPermaLink="false">http://localhost/ticket/2863</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2864: don't show `create one now` message on other's user pages</title>
                  <description>&lt;p&gt;
e.g. I can see 'You haven't created any datasets. Create one now?. ' &lt;a class="ext-link" href="http://s031.okserver.org:2375/user/kindly"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user/kindly&lt;/a&gt; when logged in as shevski
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2864</link>
        <guid isPermaLink="false">http://localhost/ticket/2864</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2865: 1.8 unicode error</title>
                  <description>&lt;p&gt;
URL: &lt;a class="ext-link" href="http://thedatahub.org/el/tag/jutatt%C3%A1sok"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/el/tag/jutatt%C3%A1sok&lt;/a&gt;
Module weberror.errormiddleware:162 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;              &lt;span class="underline"&gt;traceback_supplement&lt;/span&gt; = Supplement, self, environ
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
sr_checker = &lt;a class="missing wiki"&gt;ResponseStartChecker?&lt;/a&gt;(start_response)
app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
app_iter = self.application(environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                                     self.cache_manager)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
environ[self.environ_key] = self.cache_manager
return self.app(environ, start_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:155 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return start_response(status, headers, exc_info)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _get_session(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.middleware:131 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                               r'\1', oldpath)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# Wrapped in try as in rare cases the attribute will be gone already
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:125 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if 'paste.testing_variables' in environ and hasattr(response,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
log.debug("Calling controller class with WSGI interface")
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def load_test_env(self, environ):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:239 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
finally:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
model.Session.remove()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:221 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
if not start_response_called:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.start_response = start_response
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ&lt;a class="missing wiki"&gt;pylons.action_method?&lt;/a&gt; = func
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.&lt;span class="underline"&gt;name&lt;/span&gt;, args)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except HTTPException, httpe:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = 'before_and_this'
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _inspect_call(self, func):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.template:30 in view
&amp;lt;&amp;lt;          """
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return render(url)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except &lt;a class="missing wiki"&gt;TemplateNotFound?&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if url.endswith('.html'):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return render(url)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:153 in render
&amp;lt;&amp;lt;      try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return cached_template(template_name, render_template,
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
loader_class=loader_class)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except ckan.exceptions.&lt;a class="missing wiki"&gt;CkanUrlException?&lt;/a&gt;, e:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
loader_class=loader_class)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.templating:249 in cached_template
&amp;lt;&amp;lt;          return content
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return render_func()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return render_func()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:95 in render_template
&amp;lt;&amp;lt;          template = globs&lt;a class="missing wiki"&gt;app_globals?&lt;/a&gt;.genshi_loader.load(template_name,
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
cls=loader_class)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
stream = template.generate(&lt;strong&gt;globs)
&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
cls=loader_class)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.template.loader:223 in load
&amp;lt;&amp;lt;                      loadfunc = directory(loadfunc)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
filepath, filename, fileobj, uptodate = loadfunc(filename)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except IOError:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
continue
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
filepath, filename, fileobj, uptodate = loadfunc(filename)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.template.loader:286 in _load_from_directory
&amp;lt;&amp;lt;          def _load_from_directory(filename):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
filepath = os.path.join(path, filename)
fileobj = open(filepath, 'U')
mtime = os.path.getmtime(filepath)
def _uptodate():
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
fileobj = open(filepath, 'U')
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;UnicodeEncodeError?&lt;/a&gt;: 'ascii' codec can't encode character u'\xe1' in position 73: ordinal not in range(128)
CGI Variables
CKAN_CURRENT_URL        '/el/tag/jutatt%C3%A1sok'
CKAN_LANG        'en'
CKAN_LANG_IS_DEFAULT        True
CKAN_PAGE_CACHABLE        True
CONTENT_TYPE        '; charset=utf-8'
DOCUMENT_ROOT        '/etc/apache2/htdocs'
GATEWAY_INTERFACE        'CGI/1.1'
HTTP_ACCEPT        '*/*'
HTTP_ACCEPT_ENCODING        'gzip,deflate'
HTTP_CONNECTION        'close'
HTTP_FROM        'googlebot(at)googlebot.com'
HTTP_HOST        'thedatahub.org'
HTTP_USER_AGENT        'Mozilla/5.0 (compatible; Googlebot/2.1; +&lt;a class="ext-link" href="http://www.google.com/bot.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.google.com/bot.html&lt;/a&gt;)'
PATH_INFO        '/el/tag/jutatt\xc3\xa1sok'
PATH_TRANSLATED        '/etc/ckan/datahub/apache.wsgi/el/tag/jutatt\xc3\xa1sok'
REMOTE_ADDR        '127.0.0.1'
REMOTE_PORT        '49520'
REQUEST_METHOD        'GET'
REQUEST_URI        '/el/tag/jutatt%c3%a1sok'
SCRIPT_FILENAME        '/etc/ckan/datahub/apache.wsgi'
SERVER_ADDR        '127.0.0.1'
SERVER_ADMIN        '[no address given]'
SERVER_NAME        'thedatahub.org'
SERVER_PORT        '80'
SERVER_PROTOCOL        'HTTP/1.0'
SERVER_SIGNATURE        '&amp;lt;address&amp;gt;Apache/2.2.22 (Ubuntu) Server at thedatahub.org Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE        'Apache/2.2.22 (Ubuntu)'
WSGI Variables
application        &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0x7f5312a51650&amp;gt;
beaker.cache        &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0x7f5312a51790&amp;gt;
beaker.get_session        &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0x7f5312a516d0&amp;gt;&amp;gt;
beaker.session        {'_accessed_time': 1345113298.778472, '_creation_time': 1345113298.778472}
mod_wsgi.application_group        'ckan.net|'
mod_wsgi.callable_object        'application'
mod_wsgi.handler_script        &lt;em&gt;
mod_wsgi.input_chunked        '0'
mod_wsgi.listener_host        &lt;/em&gt;
mod_wsgi.listener_port        '8080'
mod_wsgi.process_group        'datahub'
mod_wsgi.request_handler        'wsgi-script'
mod_wsgi.script_reloading        '1'
mod_wsgi.version        (3, 3)
paste.cookies        (&amp;lt;SimpleCookie: &amp;gt;, &lt;em&gt;)
paste.registry        &amp;lt;paste.registry.Registry object at 0x7f5309add610&amp;gt;
paste.throw_errors        True
pylons.action_method        &amp;lt;bound method &lt;a class="missing wiki"&gt;TemplateController?&lt;/a&gt;.view of &amp;lt;ckan.controllers.template.&lt;a class="missing wiki"&gt;TemplateController?&lt;/a&gt; object at 0x7f52b0ea2d10&amp;gt;&amp;gt;
pylons.controller        &amp;lt;ckan.controllers.template.&lt;a class="missing wiki"&gt;TemplateController?&lt;/a&gt; object at 0x7f52b0ea2d10&amp;gt;
pylons.environ_config        {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons        &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0x7f52b0ea2b90&amp;gt;
pylons.routes_dict        {'url': u'el/tag/jutatt\xe1sok', 'action': u'view', 'controller': u'template'}
repoze.who.logger        &amp;lt;logging.Logger object at 0x7f53127b2b50&amp;gt;
repoze.who.plugins        {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 139994769488336&amp;gt;, 'friendlyform': &amp;lt;&lt;a class="missing wiki"&gt;FriendlyFormPlugin?&lt;/a&gt; 139994769488528&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.&lt;a class="missing wiki"&gt;UsernamePasswordAuthenticator?&lt;/a&gt; object at 0x7f5312d893d0&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 139994771858704&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f5312d89350&amp;gt;}
routes.route        &amp;lt;routes.route.Route object at 0x7f531296ea10&amp;gt;
routes.url        &amp;lt;routes.util.URLGenerator object at 0x7f5309add810&amp;gt;
webob._parsed_query_vars        (GET([]), &lt;/em&gt;)
webob.adhoc_attrs        {'language': 'en-us'}
wsgi process        'Multi process AND threads (?)'
wsgi.file_wrapper        &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f52d4004990&amp;gt;
wsgi.version        (1, 1)
wsgiorg.routing_args        (&amp;lt;routes.util.URLGenerator object at 0x7f5309add810&amp;gt;, {'url': u'el/tag/jutatt\xe1sok', 'action': u'view', 'controller': u'template'})
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2865</link>
        <guid isPermaLink="false">http://localhost/ticket/2865</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2866: 1.8 template error</title>
                  <description>&lt;p&gt;
URL: &lt;a class="ext-link" href="http://thedatahub.org/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key%3Db4c2d03fa8"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key%3Db4c2d03fa8&lt;/a&gt;
Module weberror.errormiddleware:162 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;              &lt;span class="underline"&gt;traceback_supplement&lt;/span&gt; = Supplement, self, environ
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
sr_checker = &lt;a class="missing wiki"&gt;ResponseStartChecker?&lt;/a&gt;(start_response)
app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
app_iter = self.application(environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                                     self.cache_manager)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
environ[self.environ_key] = self.cache_manager
return self.app(environ, start_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:155 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return start_response(status, headers, exc_info)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _get_session(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.middleware:131 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                               r'\1', oldpath)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# Wrapped in try as in rare cases the attribute will be gone already
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:125 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if 'paste.testing_variables' in environ and hasattr(response,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
log.debug("Calling controller class with WSGI interface")
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def load_test_env(self, environ):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:239 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
finally:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
model.Session.remove()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:221 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
if not start_response_called:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.start_response = start_response
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ&lt;a class="missing wiki"&gt;pylons.action_method?&lt;/a&gt; = func
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.&lt;span class="underline"&gt;name&lt;/span&gt;, args)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except HTTPException, httpe:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = 'before_and_this'
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _inspect_call(self, func):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.user:409 in perform_reset
&amp;lt;&amp;lt;          c.reset_key = request.params.get('key')
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if not mailer.verify_reset_link(user_obj, c.reset_key):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
h.flash_error(_('Invalid reset key. Please try again.'))
abort(403)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
if not mailer.verify_reset_link(user_obj, c.reset_key):
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.mailer:100 in verify_reset_link
&amp;lt;&amp;lt;      if not user.reset_key or len(user.reset_key) &amp;lt; 5:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return False
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return key.strip() == user.reset_key
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return key.strip() == user.reset_key
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;AttributeError?&lt;/a&gt;: '&lt;a class="missing wiki"&gt;NoneType?&lt;/a&gt;' object has no attribute 'strip'
CGI Variables
CKAN_CURRENT_URL        '/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key%253Db4c2d03fa8'
CKAN_LANG        'it'
CONTENT_TYPE        '; charset=utf-8'
DOCUMENT_ROOT        '/etc/apache2/htdocs'
GATEWAY_INTERFACE        'CGI/1.1'
HTTP_ACCEPT        '*/*'
HTTP_ACCEPT_ENCODING        'gzip,deflate'
HTTP_CONNECTION        'close'
HTTP_FROM        'googlebot(at)googlebot.com'
HTTP_HOST        'thedatahub.org'
HTTP_USER_AGENT        'Mozilla/5.0 (compatible; Googlebot/2.1; +&lt;a class="ext-link" href="http://www.google.com/bot.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.google.com/bot.html&lt;/a&gt;)'
PATH_INFO        '/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d'
PATH_TRANSLATED        '/etc/ckan/datahub/apache.wsgi/it/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d'
QUERY_STRING        'key%3Db4c2d03fa8'
REMOTE_ADDR        '127.0.0.1'
REMOTE_PORT        '54634'
REQUEST_METHOD        'GET'
REQUEST_URI        '/it/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key%3Db4c2d03fa8'
SCRIPT_FILENAME        '/etc/ckan/datahub/apache.wsgi'
SERVER_ADDR        '127.0.0.1'
SERVER_ADMIN        '[no address given]'
SERVER_NAME        'thedatahub.org'
SERVER_PORT        '80'
SERVER_PROTOCOL        'HTTP/1.0'
SERVER_SIGNATURE        '&amp;lt;address&amp;gt;Apache/2.2.22 (Ubuntu) Server at thedatahub.org Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE        'Apache/2.2.22 (Ubuntu)'
WSGI Variables
application        &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0x7f5312a51650&amp;gt;
beaker.cache        &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0x7f5312a51790&amp;gt;
beaker.get_session        &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0x7f5312a516d0&amp;gt;&amp;gt;
beaker.session        {'_accessed_time': 1345066159.520708, '_creation_time': 1345066159.520708}
mod_wsgi.application_group        'ckan.net|'
mod_wsgi.callable_object        'application'
mod_wsgi.handler_script        &lt;em&gt;
mod_wsgi.input_chunked        '0'
mod_wsgi.listener_host        &lt;/em&gt;
mod_wsgi.listener_port        '8080'
mod_wsgi.process_group        'datahub'
mod_wsgi.request_handler        'wsgi-script'
mod_wsgi.script_reloading        '1'
mod_wsgi.version        (3, 3)
paste.cookies        (&amp;lt;SimpleCookie: &amp;gt;, &lt;em&gt;)
paste.parsed_dict_querystring        (&lt;a class="missing wiki"&gt;MultiDict?&lt;/a&gt;([('key=b4c2d03fa8', &lt;/em&gt;)]), 'key%3Db4c2d03fa8')
paste.parsed_querystring        ([('key=b4c2d03fa8', &lt;em&gt;)], 'key%3Db4c2d03fa8')
paste.registry        &amp;lt;paste.registry.Registry object at 0x7f52eba637d0&amp;gt;
paste.throw_errors        True
pylons.action_method        &amp;lt;bound method &lt;a class="missing wiki"&gt;UserController?&lt;/a&gt;.perform_reset of &amp;lt;ckan.controllers.user.&lt;a class="missing wiki"&gt;UserController?&lt;/a&gt; object at 0x7f52e49f7a50&amp;gt;&amp;gt;
pylons.controller        &amp;lt;ckan.controllers.user.&lt;a class="missing wiki"&gt;UserController?&lt;/a&gt; object at 0x7f52e49f7a50&amp;gt;
pylons.environ_config        {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons        &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0x7f52f5649ad0&amp;gt;
pylons.routes_dict        {'action': u'perform_reset', 'controller': u'user', 'id': u'3086e91c-fe09-4a98-92e1-19de67a9ac9d'}
repoze.who.logger        &amp;lt;logging.Logger object at 0x7f53127b2b50&amp;gt;
repoze.who.plugins        {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 139994769488336&amp;gt;, 'friendlyform': &amp;lt;&lt;a class="missing wiki"&gt;FriendlyFormPlugin?&lt;/a&gt; 139994769488528&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.&lt;a class="missing wiki"&gt;UsernamePasswordAuthenticator?&lt;/a&gt; object at 0x7f5312d893d0&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 139994771858704&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f5312d89350&amp;gt;}
routes.route        &amp;lt;routes.route.Route object at 0x7f5312961ad0&amp;gt;
routes.url        &amp;lt;routes.util.URLGenerator object at 0x7f52de7f6390&amp;gt;
webob._parsed_query_vars        (GET([('key=b4c2d03fa8', &lt;/em&gt;)]), 'key%3Db4c2d03fa8')
webob.adhoc_attrs        {'language': 'en-us'}
wsgi process        'Multi process AND threads (?)'
wsgi.file_wrapper        &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f52fc4f1a08&amp;gt;
wsgi.version        (1, 1)
wsgiorg.routing_args        (&amp;lt;routes.util.URLGenerator object at 0x7f52de7f6390&amp;gt;, {'action': u'perform_reset', 'controller': u'user', 'id': u'3086e91c-fe09-4a98-92e1-19de67a9ac9d'})
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2866</link>
        <guid isPermaLink="false">http://localhost/ticket/2866</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2867: 1.8 url_for error</title>
                  <description>&lt;p&gt;
From: &amp;lt;thedatahub.org@…&amp;gt;
Date: Thu, Aug 16, 2012 at 10:30 AM
Subject: &lt;a class="missing wiki"&gt;WebApp?&lt;/a&gt; Error: &amp;lt;class 'routes.util.&lt;a class="missing wiki"&gt;GenerationException?&lt;/a&gt;'&amp;gt;: url_for can only return a string, got unicode instead: &lt;a class="ext-link" href="https://ckannet-storage.commondatastorage.googleapis.com/file/fd3e00d9-eb0d-479b-8303-38909e5400ca?Signature=cmuU3CzRHQ86F3aZ0gljxv%2B3IqQ%3D&amp;amp;Expires=1345109432&amp;amp;AWSAccessKeyId=GOOGC6OU3AYPNY47B66M&amp;amp;x-goog-meta-uploaded-by=d5c8ed25-70de-4035-b29d-ddbe363913c6"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://ckannet-storage.commondatastorage.googleapis.com/file/fd3e00d9-eb0d-479b-8303-38909e5400ca?Signature=cmuU3CzRHQ86F3aZ0gljxv%2B3IqQ%3D&amp;amp;Expires=1345109432&amp;amp;AWSAccessKeyId=GOOGC6OU3AYPNY47B66M&amp;amp;x-goog-meta-uploaded-by=d5c8ed25-70de-4035-b29d-ddbe363913c6&lt;/a&gt;
To: ckan-sysadmin@…, kindly@…
&lt;/p&gt;
&lt;p&gt;
URL: &lt;a class="ext-link" href="http://ckan.net/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca&lt;/a&gt;
Module weberror.errormiddleware:162 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;              &lt;span class="underline"&gt;traceback_supplement&lt;/span&gt; = Supplement, self, environ
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
sr_checker = &lt;a class="missing wiki"&gt;ResponseStartChecker?&lt;/a&gt;(start_response)
app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
app_iter = self.application(environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                                     self.cache_manager)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
environ[self.environ_key] = self.cache_manager
return self.app(environ, start_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:155 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return start_response(status, headers, exc_info)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _get_session(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.middleware:131 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                               r'\1', oldpath)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# Wrapped in try as in rare cases the attribute will be gone already
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:125 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if 'paste.testing_variables' in environ and hasattr(response,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
log.debug("Calling controller class with WSGI interface")
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def load_test_env(self, environ):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:239 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
finally:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
model.Session.remove()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:221 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
if not start_response_called:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.start_response = start_response
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ&lt;a class="missing wiki"&gt;pylons.action_method?&lt;/a&gt; = func
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.&lt;span class="underline"&gt;name&lt;/span&gt;, args)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except HTTPException, httpe:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = 'before_and_this'
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _inspect_call(self, func):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.storage:190 in file
&amp;lt;&amp;lt;              return fapp(request.environ, self.start_response)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
h.redirect_to(file_url)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
h.redirect_to(file_url)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.helpers:57 in redirect_to
&amp;lt;&amp;lt;      if are_there_flash_messages():
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kw&lt;a class="missing wiki"&gt;__no_cache__?&lt;/a&gt; = True
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return _redirect_to(url_for(*args, &lt;strong&gt;kw))
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def url(*args, &lt;strong&gt;kw):
&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return _redirect_to(url_for(*args, &lt;strong&gt;kw))
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.helpers:79 in url_for
&amp;lt;&amp;lt;          # fix ver to include the slash
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kw&lt;a class="missing wiki"&gt;ver?&lt;/a&gt; = '/%s' % ver
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
my_url = _routes_default_url_for(*args, &lt;strong&gt;kw)
kw&lt;a class="missing wiki"&gt;__ckan_no_root?&lt;/a&gt; = no_root
return _add_i18n_to_url(my_url, locale=locale, &lt;/strong&gt;kw)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
my_url = _routes_default_url_for(*args, &lt;strong&gt;kw)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.util:265 in url_for
&amp;lt;&amp;lt;      if not isinstance(url, str) and url is not None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise &lt;a class="missing wiki"&gt;GenerationException?&lt;/a&gt;("url_for can only return a string, got "
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
"unicode instead: %s" % url)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
if url is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise &lt;a class="missing wiki"&gt;GenerationException?&lt;/a&gt;(
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
"unicode instead: %s" % url)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;GenerationException?&lt;/a&gt;: url_for can only return a string, got unicode instead: &lt;a class="ext-link" href="https://ckannet-storage.commondatastorage.googleapis.com/file/fd3e00d9-eb0d-479b-8303-38909e5400ca?Signature=cmuU3CzRHQ86F3aZ0gljxv%2B3IqQ%3D&amp;amp;Expires=1345109432&amp;amp;AWSAccessKeyId=GOOGC6OU3AYPNY47B66M&amp;amp;x-goog-meta-uploaded-by=d5c8ed25-70de-4035-b29d-ddbe363913c6"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://ckannet-storage.commondatastorage.googleapis.com/file/fd3e00d9-eb0d-479b-8303-38909e5400ca?Signature=cmuU3CzRHQ86F3aZ0gljxv%2B3IqQ%3D&amp;amp;Expires=1345109432&amp;amp;AWSAccessKeyId=GOOGC6OU3AYPNY47B66M&amp;amp;x-goog-meta-uploaded-by=d5c8ed25-70de-4035-b29d-ddbe363913c6&lt;/a&gt;
CGI Variables
CKAN_CURRENT_URL        '/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca'
CKAN_LANG        'en'
CKAN_LANG_IS_DEFAULT        True
CONTENT_TYPE        '; charset=utf-8'
DOCUMENT_ROOT        '/etc/apache2/htdocs'
GATEWAY_INTERFACE        'CGI/1.1'
HTTP_ACCEPT        '*/*'
HTTP_ACCEPT_CHARSET        'utf-8;q=0.7,iso-8859-1;q=0.2,*;q=0.1'
HTTP_CONNECTION        'close'
HTTP_HOST        'ckan.net'
HTTP_USER_AGENT        'Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@…)'
PATH_INFO        '/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca'
PATH_TRANSLATED        '/etc/ckan/datahub/apache.wsgi/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca'
REMOTE_ADDR        '127.0.0.1'
REMOTE_PORT        '37236'
REQUEST_METHOD        'GET'
REQUEST_URI        '/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca'
SCRIPT_FILENAME        '/etc/ckan/datahub/apache.wsgi'
SERVER_ADDR        '127.0.0.1'
SERVER_ADMIN        '[no address given]'
SERVER_NAME        'ckan.net'
SERVER_PORT        '80'
SERVER_PROTOCOL        'HTTP/1.0'
SERVER_SIGNATURE        '&amp;lt;address&amp;gt;Apache/2.2.22 (Ubuntu) Server at ckan.net Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE        'Apache/2.2.22 (Ubuntu)'
WSGI Variables
application        &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0x7f5312a51650&amp;gt;
beaker.cache        &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0x7f5312a51790&amp;gt;
beaker.get_session        &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0x7f5312a516d0&amp;gt;&amp;gt;
beaker.session        {'_accessed_time': 1345109433.273328, '_creation_time': 1345109433.273328}
mod_wsgi.application_group        'ckan.net|'
mod_wsgi.callable_object        'application'
mod_wsgi.handler_script        &lt;em&gt;
mod_wsgi.input_chunked        '0'
mod_wsgi.listener_host        &lt;/em&gt;
mod_wsgi.listener_port        '8080'
mod_wsgi.process_group        'datahub'
mod_wsgi.request_handler        'wsgi-script'
mod_wsgi.script_reloading        '1'
mod_wsgi.version        (3, 3)
paste.cookies        (&amp;lt;SimpleCookie: &amp;gt;, &lt;em&gt;)
paste.registry        &amp;lt;paste.registry.Registry object at 0x7f5303b05610&amp;gt;
paste.throw_errors        True
pylons.action_method        &amp;lt;bound method &lt;a class="missing wiki"&gt;StorageController?&lt;/a&gt;.file of &amp;lt;ckan.controllers.storage.&lt;a class="missing wiki"&gt;StorageController?&lt;/a&gt; object at 0x7f530891fa10&amp;gt;&amp;gt;
pylons.controller        &amp;lt;ckan.controllers.storage.&lt;a class="missing wiki"&gt;StorageController?&lt;/a&gt; object at 0x7f530891fa10&amp;gt;
pylons.environ_config        {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons        &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0x7f52f864f850&amp;gt;
pylons.routes_dict        {'action': u'file', 'controller': u'ckan.controllers.storage:StorageController', 'label': u'file/fd3e00d9-eb0d-479b-8303-38909e5400ca'}
repoze.who.logger        &amp;lt;logging.Logger object at 0x7f53127b2b50&amp;gt;
repoze.who.plugins        {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 139994769488336&amp;gt;, 'friendlyform': &amp;lt;&lt;a class="missing wiki"&gt;FriendlyFormPlugin?&lt;/a&gt; 139994769488528&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.&lt;a class="missing wiki"&gt;UsernamePasswordAuthenticator?&lt;/a&gt; object at 0x7f5312d893d0&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 139994771858704&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f5312d89350&amp;gt;}
routes.route        &amp;lt;routes.route.Route object at 0x7f531296e690&amp;gt;
routes.url        &amp;lt;routes.util.URLGenerator object at 0x7f52f82cd450&amp;gt;
webob._parsed_query_vars        (GET([]), &lt;/em&gt;)
webob.adhoc_attrs        {'language': 'en-us'}
wsgi process        'Multi process AND threads (?)'
wsgi.file_wrapper        &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f52f5870cd8&amp;gt;
wsgi.version        (1, 1)
wsgiorg.routing_args        (&amp;lt;routes.util.URLGenerator object at 0x7f52f82cd450&amp;gt;, {'action': u'file', 'controller': u'ckan.controllers.storage:StorageController', 'label': u'file/fd3e00d9-eb0d-479b-8303-38909e5400ca'})
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2867</link>
        <guid isPermaLink="false">http://localhost/ticket/2867</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2868: 1.8 SOLR error</title>
                  <description>&lt;p&gt;
From: &amp;lt;thedatahub.org@…&amp;gt;
Date: Wed, Aug 15, 2012 at 8:34 AM
Subject: &lt;a class="missing wiki"&gt;WebApp?&lt;/a&gt; Error: &amp;lt;class 'ckan.lib.search.common.&lt;a class="missing wiki"&gt;SearchError?&lt;/a&gt;'&amp;gt;: SOLR returned an error running query: {'sort': 'metadata_modified desc', 'fq': u'groups:&amp;#34;welcome&amp;#34; capacity:&amp;#34;public&amp;#34; +site_id:&amp;#34;www.ckan.net&amp;#34; +state:active', 'facet.mincount': 1, 'rows': 21, 'facet.limit': '50', 'facet': 'true', 'q': '*:*', 'start': -20, 'wt': 'json', 'fl': 'id data_dict'} Error: "'start' parameter cannot be negative"
To: ckan-sysadmin@…, kindly@…
&lt;/p&gt;
&lt;p&gt;
URL: &lt;a class="ext-link" href="http://thedatahub.org/feeds/group/welcome.atom?page=0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/feeds/group/welcome.atom?page=0&lt;/a&gt;
Module weberror.errormiddleware:162 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;              &lt;span class="underline"&gt;traceback_supplement&lt;/span&gt; = Supplement, self, environ
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
sr_checker = &lt;a class="missing wiki"&gt;ResponseStartChecker?&lt;/a&gt;(start_response)
app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
app_iter = self.application(environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                                     self.cache_manager)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
environ[self.environ_key] = self.cache_manager
return self.app(environ, start_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:155 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return start_response(status, headers, exc_info)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _get_session(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.middleware:131 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                               r'\1', oldpath)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# Wrapped in try as in rare cases the attribute will be gone already
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:125 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if 'paste.testing_variables' in environ and hasattr(response,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
log.debug("Calling controller class with WSGI interface")
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def load_test_env(self, environ):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:239 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
finally:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
model.Session.remove()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:221 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
if not start_response_called:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.start_response = start_response
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ&lt;a class="missing wiki"&gt;pylons.action_method?&lt;/a&gt; = func
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.&lt;span class="underline"&gt;name&lt;/span&gt;, args)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except HTTPException, httpe:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = 'before_and_this'
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _inspect_call(self, func):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.feed:180 in group
&amp;lt;&amp;lt;          data_dict&lt;a class="missing wiki"&gt;fq?&lt;/a&gt; = 'groups:&amp;#34;%s&amp;#34;' % id
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
item_count, results = _package_search(data_dict)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
navigation_urls = self._navigation_urls(params,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
item_count, results = _package_search(data_dict)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.feed:57 in _package_search
&amp;lt;&amp;lt;      # package_search action modifies the data_dict, so keep our copy intact.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
query = get_action('package_search')(context, data_dict.copy())
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return query&lt;a class="missing wiki"&gt;count?&lt;/a&gt;, query&lt;a class="missing wiki"&gt;results?&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
query = get_action('package_search')(context, data_dict.copy())
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.logic.action.get:1130 in package_search
&amp;lt;&amp;lt;          query = search.query_for(model.Package)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
query.run(data_dict)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for package in query.results:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
query.run(data_dict)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.search.query:350 in run
&amp;lt;&amp;lt;          except &lt;a class="missing wiki"&gt;SolrException?&lt;/a&gt;, e:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise &lt;a class="missing wiki"&gt;SearchError?&lt;/a&gt;('SOLR returned an error running query: %r Error: %r' %
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
(query, e.reason))
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
data = json.loads(solr_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
(query, e.reason))
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;SearchError?&lt;/a&gt;: SOLR returned an error running query: {'sort': 'metadata_modified desc', 'fq': u'groups:&amp;#34;welcome&amp;#34; capacity:&amp;#34;public&amp;#34; +site_id:&amp;#34;www.ckan.net&amp;#34; +state:active', 'facet.mincount': 1, 'rows': 21, 'facet.limit': '50', 'facet': 'true', 'q': '*:*', 'start': -20, 'wt': 'json', 'fl': 'id data_dict'} Error: "'start' parameter cannot be negative"
CGI Variables
CKAN_CURRENT_URL        '/feeds/group/welcome.atom?page%3D0'
CKAN_LANG        'ja'
CONTENT_TYPE        '; charset=utf-8'
DOCUMENT_ROOT        '/etc/apache2/htdocs'
GATEWAY_INTERFACE        'CGI/1.1'
HTTP_ACCEPT        '*/*'
HTTP_ACCEPT_ENCODING        'gzip,deflate'
HTTP_CONNECTION        'close'
HTTP_FROM        'googlebot(at)googlebot.com'
HTTP_HOST        'thedatahub.org'
HTTP_USER_AGENT        'Mozilla/5.0 (compatible; Googlebot/2.1; +&lt;a class="ext-link" href="http://www.google.com/bot.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.google.com/bot.html&lt;/a&gt;)'
PATH_INFO        '/feeds/group/welcome.atom'
PATH_TRANSLATED        '/etc/ckan/datahub/apache.wsgi/ja/feeds/group/welcome.atom'
QUERY_STRING        'page=0'
REMOTE_ADDR        '127.0.0.1'
REMOTE_PORT        '33139'
REQUEST_METHOD        'GET'
REQUEST_URI        '/ja/feeds/group/welcome.atom?page=0'
SCRIPT_FILENAME        '/etc/ckan/datahub/apache.wsgi'
SERVER_ADDR        '127.0.0.1'
SERVER_ADMIN        '[no address given]'
SERVER_NAME        'thedatahub.org'
SERVER_PORT        '80'
SERVER_PROTOCOL        'HTTP/1.0'
SERVER_SIGNATURE        '&amp;lt;address&amp;gt;Apache/2.2.22 (Ubuntu) Server at thedatahub.org Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE        'Apache/2.2.22 (Ubuntu)'
WSGI Variables
application        &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0x7f5312a51650&amp;gt;
beaker.cache        &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0x7f5312a51790&amp;gt;
beaker.get_session        &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0x7f5312a516d0&amp;gt;&amp;gt;
beaker.session        {'_accessed_time': 1345016040.884951, '_creation_time': 1345016040.884951}
mod_wsgi.application_group        'ckan.net|'
mod_wsgi.callable_object        'application'
mod_wsgi.handler_script        &lt;em&gt;
mod_wsgi.input_chunked        '0'
mod_wsgi.listener_host        &lt;/em&gt;
mod_wsgi.listener_port        '8080'
mod_wsgi.process_group        'datahub'
mod_wsgi.request_handler        'wsgi-script'
mod_wsgi.script_reloading        '1'
mod_wsgi.version        (3, 3)
paste.cookies        (&amp;lt;SimpleCookie: &amp;gt;, &lt;em&gt;)
paste.parsed_dict_querystring        (&lt;a class="missing wiki"&gt;MultiDict?&lt;/a&gt;([('page', '0')]), 'page=0')
paste.parsed_querystring        ([('page', '0')], 'page=0')
paste.registry        &amp;lt;paste.registry.Registry object at 0x7f5302eef7d0&amp;gt;
paste.throw_errors        True
pylons.action_method        &amp;lt;bound method &lt;a class="missing wiki"&gt;FeedController?&lt;/a&gt;.group of &amp;lt;ckan.controllers.feed.&lt;a class="missing wiki"&gt;FeedController?&lt;/a&gt; object at 0x7f52f0341750&amp;gt;&amp;gt;
pylons.controller        &amp;lt;ckan.controllers.feed.&lt;a class="missing wiki"&gt;FeedController?&lt;/a&gt; object at 0x7f52f0341750&amp;gt;
pylons.environ_config        {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons        &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0x7f52f0341450&amp;gt;
pylons.routes_dict        {'action': u'group', 'controller': u'feed', 'id': u'welcome'}
repoze.who.logger        &amp;lt;logging.Logger object at 0x7f53127b2b50&amp;gt;
repoze.who.plugins        {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 139994769488336&amp;gt;, 'friendlyform': &amp;lt;&lt;a class="missing wiki"&gt;FriendlyFormPlugin?&lt;/a&gt; 139994769488528&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.&lt;a class="missing wiki"&gt;UsernamePasswordAuthenticator?&lt;/a&gt; object at 0x7f5312d893d0&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 139994771858704&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f5312d89350&amp;gt;}
routes.route        &amp;lt;routes.route.Route object at 0x7f5312961e90&amp;gt;
routes.url        &amp;lt;routes.util.URLGenerator object at 0x7f52f0341210&amp;gt;
webob._parsed_query_vars        (GET([('page', '0')]), 'page=0')
webob.adhoc_attrs        {'language': 'en-us'}
wsgi process        'Multi process AND threads (?)'
wsgi.file_wrapper        &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f52ed4873f0&amp;gt;
wsgi.version        (1, 1)
wsgiorg.routing_args        (&amp;lt;routes.util.URLGenerator object at 0x7f52f0341210&amp;gt;, {'action': u'group', 'controller': u'feed', 'id': u'welcome'})
&lt;/em&gt;&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2868</link>
        <guid isPermaLink="false">http://localhost/ticket/2868</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2869: user profile not linked on disqus until page refresh</title>
                  <description>&lt;p&gt;
Reported by Daniel:
&lt;/p&gt;
&lt;p&gt;
Problem: DISQUS comments don't appear with profile details (inc. username).
How to reproduce:
1) Go to a dataset, e.g. I went to &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/ff"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/ff&lt;/a&gt;
2) I logged into DISQUS using the Google Authentication, e.g. in my case that is okfn.daniel.lewis@…
3) I made a comment and submitted
4) It comes up with the comment, but no linked profile until the page gets refreshed
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2869</link>
        <guid isPermaLink="false">http://localhost/ticket/2869</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2870: 1.8 tag_list not defined</title>
                  <description>&lt;p&gt;
From: &amp;lt;thedatahub.org@…&amp;gt;
Date: Thu, Aug 16, 2012 at 3:20 AM
Subject: &lt;a class="missing wiki"&gt;WebApp?&lt;/a&gt; Error: &amp;lt;class 'genshi.template.eval.&lt;a class="missing wiki"&gt;UndefinedError?&lt;/a&gt;'&amp;gt;: "tag_list" not defined
To: ckan-sysadmin@…, kindly@…
&lt;/p&gt;
&lt;p&gt;
URL: &lt;a class="ext-link" href="http://ckan.net/dataset/uk-postboxes"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/dataset/uk-postboxes&lt;/a&gt;
Module weberror.errormiddleware:162 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;              &lt;span class="underline"&gt;traceback_supplement&lt;/span&gt; = Supplement, self, environ
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
sr_checker = &lt;a class="missing wiki"&gt;ResponseStartChecker?&lt;/a&gt;(start_response)
app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
app_iter = self.application(environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                                     self.cache_manager)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
environ[self.environ_key] = self.cache_manager
return self.app(environ, start_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:155 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return start_response(status, headers, exc_info)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _get_session(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.middleware:131 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                               r'\1', oldpath)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# Wrapped in try as in rare cases the attribute will be gone already
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:125 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if 'paste.testing_variables' in environ and hasattr(response,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
log.debug("Calling controller class with WSGI interface")
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def load_test_env(self, environ):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:239 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
finally:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
model.Session.remove()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
res = WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:221 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
if not start_response_called:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.start_response = start_response
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ&lt;a class="missing wiki"&gt;pylons.action_method?&lt;/a&gt; = func
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.&lt;span class="underline"&gt;name&lt;/span&gt;, args)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except HTTPException, httpe:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = 'before_and_this'
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _inspect_call(self, func):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.package:322 in read
&amp;lt;&amp;lt;          template = template[:template.index('.') + 1] + format
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return render(template, loader_class=loader)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def comments(self, id):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return render(template, loader_class=loader)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:153 in render
&amp;lt;&amp;lt;      try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return cached_template(template_name, render_template,
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
loader_class=loader_class)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except ckan.exceptions.&lt;a class="missing wiki"&gt;CkanUrlException?&lt;/a&gt;, e:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
loader_class=loader_class)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.templating:249 in cached_template
&amp;lt;&amp;lt;          return content
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return render_func()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return render_func()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:102 in render_template
&amp;lt;&amp;lt;          if loader_class == &lt;a class="missing wiki"&gt;NewTextTemplate?&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return literal(stream.render(method="text", encoding=None))
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return literal(stream.render(method=method, encoding=None,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return literal(stream.render(method="text", encoding =None))
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.core:183 in render
&amp;lt;&amp;lt;              method = self.serializer or 'xml'
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
generator = self.serialize(method=method, &lt;strong&gt;kwargs)
return encode(generator, method=method, encoding=encoding, out=out)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def select(self, path, namespaces=None, variables=None):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return encode(generator, method=method, encoding=encoding, out =out)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.output:57 in encode
&amp;lt;&amp;lt;          _encode = lambda string: string
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if out is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return _encode(&lt;em&gt;.join(list(iterator)))
&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
for chunk in iterator:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
out.write(_encode(chunk))
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return _encode(&lt;em&gt;.join(list(iterator)))
&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.output:569 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;      def &lt;span class="underline"&gt;call&lt;/span&gt;(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
strip_markup = self.strip_markup
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if event&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt; is TEXT:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
data = event&lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kind = event&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt;
if not (kind is None or kind is ATTR or kind is BREAK):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:1145 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          :param stream: The marked event stream to filter
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
"""
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
if mark is ENTER:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:714 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          stream = iter(stream)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
next = stream.next
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if mark is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield OUTSIDE, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kind = event&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt;
if not (kind is None or kind is ATTR or kind is BREAK):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:1145 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          :param stream: The marked event stream to filter
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
"""
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
if mark is ENTER:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:714 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          stream = iter(stream)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
next = stream.next
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if mark is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield OUTSIDE, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kind = event&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt;
if not (kind is None or kind is ATTR or kind is BREAK):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:1145 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          :param stream: The marked event stream to filter
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
"""
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
if mark is ENTER:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:714 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          stream = iter(stream)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
next = stream.next
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if mark is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield OUTSIDE, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kind = event&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt;
if not (kind is None or kind is ATTR or kind is BREAK):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckanext.googleanalytics.plugin:93 in download_adder
&amp;lt;&amp;lt;                  [downloaded %s times]&amp;lt;/span&amp;gt;&lt;strong&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
count = None
for mark, (kind, data, pos) in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if mark and kind == START:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
href = data&lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;.get('href')
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, (kind, data, pos) in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:714 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          stream = iter(stream)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
next = stream.next
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if mark is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield OUTSIDE, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kind = event&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt;
if not (kind is None or kind is ATTR or kind is BREAK):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:1175 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          """
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
callable_value = hasattr(self.value, '&lt;span class="underline"&gt;call&lt;/span&gt;')
for mark, (kind, data, pos) in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if mark is ENTER:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if callable_value:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, (kind, data, pos) in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:714 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          stream = iter(stream)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
next = stream.next
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if mark is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield OUTSIDE, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.core:288 in _ensure
&amp;lt;&amp;lt;      # unchanged
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:686 in _unmark
&amp;lt;&amp;lt;      def _unmark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
kind = event&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt;
if not (kind is None or kind is ATTR or kind is BREAK):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:1145 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          :param stream: The marked event stream to filter
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
"""
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
if mark is ENTER:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:714 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          stream = iter(stream)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
next = stream.next
for mark, event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if mark is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield mark, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for mark, event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.filters.transform:682 in _mark
&amp;lt;&amp;lt;      def _mark(self, stream):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
yield OUTSIDE, event
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.template.base:605 in _include
&amp;lt;&amp;lt;          from genshi.template.loader import &lt;a class="missing wiki"&gt;TemplateNotFound?&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if event&lt;a class="missing changeset" title="No default repository defined"&gt;[0]&lt;/a&gt; is INCLUDE:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
href, cls, fallback = event&lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
for event in stream:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.template.base:565 in _flatten
&amp;lt;&amp;lt;                  elif kind is EXPR:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = _eval_expr(data, ctxt, vars)
if result is not None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# First check for a string, otherwise the iterable test
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = _eval_expr(data, ctxt, vars)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.template.base:277 in _eval_expr
&amp;lt;&amp;lt;      if vars:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
ctxt.push(vars)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
retval = expr.evaluate(ctxt)
if vars:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
ctxt.pop()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
retval = expr.evaluate(ctxt)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.template.eval:178 in evaluate
&amp;lt;&amp;lt;          &lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = 'before_and_this'
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
_globals = self._globals(data)
return eval(self.code, _globals, {'&lt;span class="underline"&gt;data&lt;/span&gt;': data})
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return eval(self.code, _globals, {'&lt;span class="underline"&gt;data&lt;/span&gt;': data})
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/em&gt;&lt;/blockquote&gt;
&lt;p&gt;
Module ?:51 in &amp;lt;Expression u"tag_list(c.pkg_dict.get('tags', &lt;em&gt;))"&amp;gt;
&amp;lt;&amp;lt;      &amp;lt;li py:if=&amp;#34;c.pkg_dict.get('tags')" class="sidebar-section"&amp;gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&amp;lt;h3&amp;gt;Tags&amp;lt;/h3&amp;gt;
${tag_list(c.pkg_dict.get('tags', &lt;em&gt;))}
&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
&amp;lt;/li&amp;gt;
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
${tag_list(c.pkg_dict.get('tags', &lt;em&gt;))}
&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.template.eval:309 in lookup_name
&amp;lt;&amp;lt;              val = BUILTINS.get(name, val)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if val is UNDEFINED:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
val = cls.undefined(name)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return val
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
val = cls.undefined(name)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module genshi.template.eval:410 in undefined
&amp;lt;&amp;lt;          """Raise an &lt;tt&gt;&lt;/tt&gt;&lt;a class="missing wiki"&gt;UndefinedError?&lt;/a&gt;&lt;tt&gt;&lt;/tt&gt; immediately."""
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = True
raise &lt;a class="missing wiki"&gt;UndefinedError?&lt;/a&gt;(key, owner=owner)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise &lt;a class="missing wiki"&gt;UndefinedError?&lt;/a&gt;(key, owner=owner)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;UndefinedError?&lt;/a&gt;: "tag_list" not defined
CGI Variables
CKAN_CURRENT_URL        '/dataset/uk-postboxes'
CKAN_LANG        'en'
CKAN_LANG_IS_DEFAULT        True
CKAN_PAGE_CACHABLE        True
CONTENT_TYPE        '; charset=utf-8'
DOCUMENT_ROOT        '/etc/apache2/htdocs'
GATEWAY_INTERFACE        'CGI/1.1'
HTTP_ACCEPT        'text/html,text/plain,text/xml'
HTTP_ACCEPT_CHARSET        'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING        'gzip'
HTTP_ACCEPT_LANGUAGE        'vi,en-us;q=0.7,en;q=0.3'
HTTP_CONNECTION        'close'
HTTP_HOST        'ckan.net'
HTTP_USER_AGENT        'coccoc/1.0 ()'
PATH_INFO        '/dataset/uk-postboxes'
PATH_TRANSLATED        '/etc/ckan/datahub/apache.wsgi/dataset/uk-postboxes'
REMOTE_ADDR        '127.0.0.1'
REMOTE_PORT        '47065'
REQUEST_METHOD        'GET'
REQUEST_URI        '/dataset/uk-postboxes'
SCRIPT_FILENAME        '/etc/ckan/datahub/apache.wsgi'
SERVER_ADDR        '127.0.0.1'
SERVER_ADMIN        '[no address given]'
SERVER_NAME        'ckan.net'
SERVER_PORT        '80'
SERVER_PROTOCOL        'HTTP/1.0'
SERVER_SIGNATURE        '&amp;lt;address&amp;gt;Apache/2.2.22 (Ubuntu) Server at ckan.net Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE        'Apache/2.2.22 (Ubuntu)'
WSGI Variables
application        &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0x7f5312a51650&amp;gt;
beaker.cache        &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0x7f5312a51790&amp;gt;
beaker.get_session        &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0x7f5312a516d0&amp;gt;&amp;gt;
beaker.session        {'_accessed_time': 1345083636.079552, '_creation_time': 1345083636.079552}
mod_wsgi.application_group        'ckan.net|'
mod_wsgi.callable_object        'application'
mod_wsgi.handler_script        &lt;em&gt;
mod_wsgi.input_chunked        '0'
mod_wsgi.listener_host        &lt;/em&gt;
mod_wsgi.listener_port        '8080'
mod_wsgi.process_group        'datahub'
mod_wsgi.request_handler        'wsgi-script'
mod_wsgi.script_reloading        '1'
mod_wsgi.version        (3, 3)
paste.cookies        (&amp;lt;SimpleCookie: &amp;gt;, &lt;em&gt;)
paste.registry        &amp;lt;paste.registry.Registry object at 0x7f52e47477d0&amp;gt;
paste.throw_errors        True
pylons.action_method        &amp;lt;bound method &lt;a class="missing wiki"&gt;PackageController?&lt;/a&gt;.read of &amp;lt;ckan.controllers.package.&lt;a class="missing wiki"&gt;PackageController?&lt;/a&gt; object at 0x7f52e477b810&amp;gt;&amp;gt;
pylons.controller        &amp;lt;ckan.controllers.package.&lt;a class="missing wiki"&gt;PackageController?&lt;/a&gt; object at 0x7f52e477b810&amp;gt;
pylons.environ_config        {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons        &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0x7f52e477be90&amp;gt;
pylons.routes_dict        {'action': u'read', 'controller': u'package', 'id': u'uk-postboxes'}
repoze.who.logger        &amp;lt;logging.Logger object at 0x7f53127b2b50&amp;gt;
repoze.who.plugins        {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 139994769488336&amp;gt;, 'friendlyform': &amp;lt;&lt;a class="missing wiki"&gt;FriendlyFormPlugin?&lt;/a&gt; 139994769488528&amp;gt;, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': &amp;lt;ckan.lib.authenticator.&lt;a class="missing wiki"&gt;UsernamePasswordAuthenticator?&lt;/a&gt; object at 0x7f5312d893d0&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 139994771858704&amp;gt;, 'ckan.lib.authenticator:OpenIDAuthenticator': &amp;lt;ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f5312d89350&amp;gt;}
routes.route        &amp;lt;routes.route.Route object at 0x7f5312955a50&amp;gt;
routes.url        &amp;lt;routes.util.URLGenerator object at 0x7f52eb8c9090&amp;gt;
webob._parsed_query_vars        (GET([]), &lt;/em&gt;)
webob.adhoc_attrs        {'language': 'en-us'}
wsgi process        'Multi process AND threads (?)'
wsgi.file_wrapper        &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f5308983a80&amp;gt;
wsgi.version        (1, 1)
wsgiorg.routing_args        (&amp;lt;routes.util.URLGenerator object at 0x7f52eb8c9090&amp;gt;, {'action': u'read', 'controller': u'package', 'id': u'uk-postboxes'})
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2870</link>
        <guid isPermaLink="false">http://localhost/ticket/2870</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>shevski</dc:creator>

                  <title>#2871: user profile about text does not show up</title>
                  <description>&lt;p&gt;
tested with my &lt;a class="ext-link" href="http://s031.okserver.org:2375/user/shevski"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/user/shevski&lt;/a&gt; and daniel's account. I have added about text and yet see '
Irina Bolychevsky
&lt;/p&gt;
&lt;p&gt;
You have not provided a biography.'
&lt;/p&gt;
&lt;p&gt;
The about text is saved (and viewable on the edit form itself) but does not show on profile
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2871</link>
        <guid isPermaLink="false">http://localhost/ticket/2871</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2872: Non-open licenses are marked as open</title>
                  <description>&lt;p&gt;
Set a dataset's license to 'Other (Not Open)', the dataset will have an Open Data icon next to it
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2872</link>
        <guid isPermaLink="false">http://localhost/ticket/2872</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>danieljohnlewis</dc:creator>

                  <title>#2873: ckanext-qa: dataset summary incorrect</title>
                  <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>
        <link>http://localhost/ticket/2873</link>
        <guid isPermaLink="false">http://localhost/ticket/2873</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2874: Clean up bin directory</title>
                  <description>&lt;p&gt;
Full of obsolete material
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2874</link>
        <guid isPermaLink="false">http://localhost/ticket/2874</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2875: Fanstatic css issues</title>
                  <description>&lt;p&gt;
Fanstatic does not support
&lt;/p&gt;
&lt;p&gt;
@import ...
&lt;/p&gt;
&lt;p&gt;
relative imports for images etc
&lt;/p&gt;
&lt;p&gt;
need to get a fix for these asap
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2875</link>
        <guid isPermaLink="false">http://localhost/ticket/2875</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2876: Admin Config changes are not forced</title>
                  <description>&lt;p&gt;
need to make sure these update everywhere when done
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2876</link>
        <guid isPermaLink="false">http://localhost/ticket/2876</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2877: Bugs with datastore v2</title>
                  <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>
        <link>http://localhost/ticket/2877</link>
        <guid isPermaLink="false">http://localhost/ticket/2877</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2878: Roles and Permissions for Organisations</title>
                  <description>&lt;p&gt;
As part of merging Organisations into core, it is necessary that we clarify the capacity field with which the users/datasets are added as members to the group 'subclass'.
&lt;/p&gt;
&lt;p&gt;
Rather than the capacity being an opaque string that implies auth but doesn't clearly specify it, we will use role names where roles are defined in the database - with a clearly defined set of standard roles.  The Role table is expected to have simply a string name/representation and acts as a container for permissions.
&lt;/p&gt;
&lt;p&gt;
Each permission is a string of the form object.action (such as package.add, group.delete) of which several are expected to be associated with a role.  This means the permission table will contain a string and a reference to the role.
&lt;/p&gt;
&lt;p&gt;
This work will require UI changes to the screens allowing users to be added to a group/organisation so that the list of available roles is available to add those users.
&lt;/p&gt;
&lt;p&gt;
[x] Model for Role and Permission
&lt;/p&gt;
&lt;p&gt;
[ ] Logic layer changes for managing roles/permissions etc.
&lt;/p&gt;
&lt;p&gt;
[ ] Determine default roles, perhaps just admin/editor/viewer
&lt;/p&gt;
&lt;p&gt;
[ ] Fix the auth layer to use the permissions/roles - may be better implemented as another ticket.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2878</link>
        <guid isPermaLink="false">http://localhost/ticket/2878</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2879: Datasets (Package) should have a 'public' field</title>
                  <description>&lt;p&gt;
The Package model should have a boolean field added to it describing its visibility beyond that supplied via auth.
&lt;/p&gt;
&lt;p&gt;
The related permission for viewing packages where public is set to False would be package.view (show, whatever), and *never* visible for unauthenticated users.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2879</link>
        <guid isPermaLink="false">http://localhost/ticket/2879</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2880: Datasets (Package) should have owners</title>
                  <description>&lt;p&gt;
Each dataset should have an explicit owner that is an organisation.  This is the organisation that owns the dataset* and will be used for specifying who can move a dataset out of the default organisation.
&lt;/p&gt;
&lt;p&gt;
This should probably be a foreign key link from dataset to organisation (or rather group).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Currently this won't necessarily be the organisation that the dataset is a member of, but it is likely that this will be the case initially (at least until someone moves it to another organisation).
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2880</link>
        <guid isPermaLink="false">http://localhost/ticket/2880</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2881: Remove or improve 'Domain Model' docs page</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="http://docs.ckan.org/en/ckan-1.8/domain-model.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/ckan-1.8/domain-model.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Currently not very useful. Also these pages:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://docs.ckan.org/en/latest/domain-model-dataset.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/domain-model-dataset.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://docs.ckan.org/en/latest/domain-model-resource.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/domain-model-resource.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://docs.ckan.org/en/latest/domain-model-task-status.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/domain-model-task-status.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This just seems very incomplete to me (surely there is more to the domain model the dataset, resource and task status?) and very likely to not get updated as changes are mode to the code. Would anyone seriously refer to this rather than just looking at the source code?
&lt;/p&gt;
&lt;p&gt;
If we want to have something along these lines in the docs, I suggest adding docstrings to packages, modules, classes and methods and then using autodoc to pull them into sphinx.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2881</link>
        <guid isPermaLink="false">http://localhost/ticket/2881</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2882: Remove User Stories Overview from docs?</title>
                  <description>&lt;p&gt;
Why is this here? Is it up to date? Is anyone keeping it up to date? Does this belong in some sort of CKAN planning or roadmap document rather than in the documentation?
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://docs.ckan.org/en/latest/user-stories.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/user-stories.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2882</link>
        <guid isPermaLink="false">http://localhost/ticket/2882</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2883: Add high level dev overview to 'For CKAN Developers' section of docs</title>
                  <description>&lt;p&gt;
Here's a draft: &lt;a class="ext-link" href="https://gist.github.com/3414107"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/3414107&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2883</link>
        <guid isPermaLink="false">http://localhost/ticket/2883</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2884: Lock icon shown next to unknown licenses</title>
                  <description>&lt;p&gt;
Set the license of a dataset to blank (the first option) or to 'License Not Specified' or 'Other (Non-Commercial)' and a lock icon appears next to the license on the dataset read page. Shouldn't this be a question mark or something?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2884</link>
        <guid isPermaLink="false">http://localhost/ticket/2884</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2885: Labels (editor, admin) not translated in authorization pages for datasets or groups</title>
                  <description></description>
        <link>http://localhost/ticket/2885</link>
        <guid isPermaLink="false">http://localhost/ticket/2885</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2886: Configurable related items</title>
                  <description>&lt;p&gt;
Related items (Apps &amp;amp; Ideas) have a collection of types, which are currently fixed.  Some of these types are ambiguous, such as ideas in that they may not have a link - and if they do it is likely to be to a blog post - another existing type.
&lt;/p&gt;
&lt;p&gt;
Whilst the URL is required, and we think this should stay required, we should also allow users to change the types found in Apps &amp;amp; Ideas to a shortened list that suits their requirements.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2886</link>
        <guid isPermaLink="false">http://localhost/ticket/2886</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2887: "Welcome to CKAN!" on front page is untranslatable</title>
                  <description>&lt;p&gt;
ckan/templates/home/index.html contains:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&amp;lt;h1 class="page_heading"&amp;gt;Welcome to ${g.site_title}!&amp;lt;/h1&amp;gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
which means that just "Welcome to" ends up in the ckan.po files for
translation. This makes the phrase untranslatable in languages that have a different word ordering than English where the site title needs to be somewhere other than at the end of the sentence.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2887</link>
        <guid isPermaLink="false">http://localhost/ticket/2887</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2888: Datapreview in Iframe</title>
                  <description>&lt;p&gt;
Try and put datapreview in Iframe.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2888</link>
        <guid isPermaLink="false">http://localhost/ticket/2888</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2889: Support JSON values in extras, when returning JSON from API</title>
                  <description>&lt;p&gt;
For example, edit the warandpeace dataset and add an extra with key "comments" and value "[{u'date': u'Tue Aug 21 13:01:48 GMT 2012', u'comment': u'testing ckan', u'userId': u'11702'}, {u'date': u'Wed Aug 22 13:01:48 GMT 2012', u'comment': u'testing ckan again', u'userId': u'11702'}]", now visit API URLs such as:
&lt;/p&gt;
&lt;p&gt;
/api/search/dataset?sort=metadata_modified+desc&amp;amp;all_fields=1&amp;amp;limit=10
&lt;/p&gt;
&lt;p&gt;
/api/rest/dataset/warandpeace
&lt;/p&gt;
&lt;p&gt;
/api/action/package_show?id=warandpeace
&lt;/p&gt;
&lt;p&gt;
The value of the extra comes out as a string in the dataset JSON, rather than having its contents unpacked into a list of JSON objects.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2889</link>
        <guid isPermaLink="false">http://localhost/ticket/2889</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2890: Collect data previews and data store docs in one chapter</title>
                  <description>&lt;p&gt;
Currently there is this page:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://docs.ckan.org/en/latest/data-viewer.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/data-viewer.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
which covers Recline Data Explorer and other kinds of data preview in CKAN. It is under the Publishing Datasets section in the documentation. I had to to a search for 'recline' to find it.
&lt;/p&gt;
&lt;p&gt;
Separately there is this page: &lt;a class="ext-link" href="http://docs.ckan.org/en/ckan-1.7.1/datastore.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/ckan-1.7.1/datastore.html&lt;/a&gt; which covers datastore, datastorer, and the data api.
&lt;/p&gt;
&lt;p&gt;
I suggest collecting this together in one chapter called 'Data Previews'. If I understand it right the general gist would be:
&lt;/p&gt;
&lt;p&gt;
CKAN has builtin previews of data resources on resource pages, enabled by default.
&lt;/p&gt;
&lt;p&gt;
Images, Google Documents, and web page resources will be loaded into embedded iframes for preview.
&lt;/p&gt;
&lt;p&gt;
Text-like files will be displayed raw.
&lt;/p&gt;
&lt;p&gt;
CSV or Excel files uploaded to CKAN will be previewed using Recline Data Explorer.
&lt;/p&gt;
&lt;p&gt;
Additionally, you can enable CKAN's &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt;, requires you to install &lt;a class="missing wiki"&gt;ElasticSearch?&lt;/a&gt; and nginx and put datastore.enabled=1 in your ini file. Lets you use the Data API to query data.
&lt;/p&gt;
&lt;p&gt;
Does having &lt;a class="missing wiki"&gt;DataStore?&lt;/a&gt; enabled mean you get preview of more types of resources? Any resource that's available via the Data API will be previewed using Recline,
&lt;/p&gt;
&lt;p&gt;
You can install ckanext-datastorer, and then CSV and Excel files _linked to_ as CKAN resources will be previewed using Recline also. Requires celeryd.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2890</link>
        <guid isPermaLink="false">http://localhost/ticket/2890</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2891: Update or remove DataStore google presentation</title>
                  <description>&lt;p&gt;
Currently this page:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://docs.ckan.org/en/ckan-1.8/datastore.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/ckan-1.8/datastore.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
has an embedded Google docs presentation about data store which contains some outdated information, e.g. links to datastoreclient which was merged into ckanclient.
&lt;/p&gt;
&lt;p&gt;
Suggest moving the google presentation into the documentation proper, so it works with grep etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2891</link>
        <guid isPermaLink="false">http://localhost/ticket/2891</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2892: IDatasetForm's form_to_db_schema() breaks API?</title>
                  <description>&lt;p&gt;
It looks like when an IDatasetForm plugin with a form_to_db_schema() method is active, then the posted data dict is validated against the schema even if the user is posting to an API endpoint like /api/action/package_update etc. This breaks the API, for example 'name' and 'title' are optional keys for package_update (you can supply only the 'id'), but the schema validation will fail if either are not present in the posted dict.
&lt;/p&gt;
&lt;p&gt;
It may be we need different schema for package create and package update, currently IDatasetForm has just the one form_to_db_schema() method.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2892</link>
        <guid isPermaLink="false">http://localhost/ticket/2892</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2893: Tags missing from form_to_db_package_schema()</title>
                  <description>&lt;p&gt;
With an IDatasetForm plugin active with a form_to_db_package_schema() method that returns a schema based on ckan/logic/schema.py:form_to_db_package_schema() I'm getting validation errors like this:
&lt;/p&gt;
&lt;p&gt;
[ckan.controllers.api] Validation error: "{'&lt;span class="underline"&gt;type': 'Validation Error', '&lt;/span&gt;junk': [u'The input field &lt;span class="underline"&gt;junk was not expected.']}"
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
They seem to be caused when a data dict with key 'tags' is passed to e.g. the package_update API, for example in ckan/tests/functional/api/model/test_vocabulary.py there are various tests that get this error when they call package_update (if you run the tests with a suitable IDatasetForm plugin active).
&lt;/p&gt;
&lt;p&gt;
In ckan/logic/schema.py:form_to_db_package_schema() 'tags' is for some reason deliberately removed from the schema.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2893</link>
        <guid isPermaLink="false">http://localhost/ticket/2893</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2894: Empty lists get stripped from package dicst in package_show()</title>
                  <description>&lt;p&gt;
If there's an IDatasetForm plugin active with a form_to_db_schema(), then packages with e.g. no extras get the 'extras' key entirely stripped by the validation in package_show, which causes some tests to crash, e.g. in ckan/tests/functional/api/test_activity.py (if the tests are run with a suitable IDatasetForm plugin active).
&lt;/p&gt;
&lt;p&gt;
If a package has no extras the dict returned by package_show should still have an 'extras' key with an empty list as the value.
&lt;/p&gt;
&lt;p&gt;
Suspect this also effects packages with no tags, no groups, etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2894</link>
        <guid isPermaLink="false">http://localhost/ticket/2894</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>rgrp</dc:creator>

                  <title>#2895: QA pages (e.g. broken resource links) are not paginated</title>
                  <description>&lt;p&gt;
And as a result timeout on e.g. the datahub ...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2895</link>
        <guid isPermaLink="false">http://localhost/ticket/2895</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2896: resource_create crashes on ValidationErrors with KeyError: 'resources'</title>
                  <description>&lt;p&gt;
ckan/logic/action/create.py:resource_create():
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
pkg_dict = _get_action('package_update')(context, pkg_dict)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except &lt;a class="missing wiki"&gt;ValidationError?&lt;/a&gt;, e:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
errors = e.error_dict&lt;a class="missing wiki"&gt;resources?&lt;/a&gt;[-1]
raise &lt;a class="missing wiki"&gt;ValidationError?&lt;/a&gt;(errors)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
This assumes that package_update always returns an error dict with 'resources' in it. This assumption doesn't hold.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2896</link>
        <guid isPermaLink="false">http://localhost/ticket/2896</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2897: db_to_form_package_schema() crashes historical dataset page</title>
                  <description>&lt;p&gt;
If there's an IDatasetForm plugin active with a db_to_form_schema() method based on db_to_form_package_schema(), then viewing historical versions of datasets (e.g. &lt;a class="ext-link" href="http://127.0.0.1:5000/dataset/dasd%402012-08-30T12%3A26%3A18.524191"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://127.0.0.1:5000/dataset/dasd%402012-08-30T12%3A26%3A18.524191&lt;/a&gt;) crashes.
&lt;/p&gt;
&lt;p&gt;
Reason is that revison_id and revision_timestamp need to be added to db_to_form_package_schema(), something like:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
schema.update({'revision_id': [validators.ignore_missing, unicode]})
schema.update({'revision_timestamp':
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
[validators.ignore_missing, unicode]})
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
</description>
        <link>http://localhost/ticket/2897</link>
        <guid isPermaLink="false">http://localhost/ticket/2897</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2898: Looses data entered on step 1 of create dataset after login</title>
                  <description>&lt;p&gt;
To reproduce:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Enter details for new dataset without being logged in
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Hit login page for just before step 2
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Once logged in you end up back at the empty add dataset form (instead of expected 2nd step of dataset edit)
&lt;/li&gt;&lt;/ol&gt;</description>
        <link>http://localhost/ticket/2898</link>
        <guid isPermaLink="false">http://localhost/ticket/2898</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2899: Step 2 &gt; Save &amp; add another bug</title>
                  <description>&lt;p&gt;
Goto:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Add dataset
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;Get to step 2
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;Click "Save &amp;amp; add another" without adding any data
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;Ends on step 3
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Should: fail to validate and remain on step 2
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2899</link>
        <guid isPermaLink="false">http://localhost/ticket/2899</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2900: snippets/package_list.html template crashes on dataset that has no 'notes'</title>
                  <description>&lt;p&gt;
Sometimes a dataset dict comes through package_show() with 'notes': None and then the 'notes' key gets stripped from the dict when validation happens (validation only happens if there's an IDatasetForm plugin with a db_to_form_schema() method) and then package_list.html template crashes, e.g. on user profile pages.
&lt;/p&gt;
&lt;p&gt;
Fix in the template? Or in the schema?
&lt;/p&gt;
&lt;p&gt;
The template also crashes on packages with no tags (empty list gets stripped from dict) and probably other empty fields as well
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2900</link>
        <guid isPermaLink="false">http://localhost/ticket/2900</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2901: Language Dropdown bug in footer with IE7</title>
                  <description>&lt;p&gt;
The language dropdown in Internet Explorer 7 behaves oddly. Essentially I think the problem is with the way that the dropdown decides to go into "drop-up mode" (e.g there aint enough screen space below the initial state so it has to drop up).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2901</link>
        <guid isPermaLink="false">http://localhost/ticket/2901</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2902: genshi is used in Group controller</title>
                  <description>&lt;p&gt;
The Group controller uses the genshi module where it may be better for it to use Markup() in the template.
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="https://github.com/okfn/ckan/pull/117/files#r1524863"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/pull/117/files#r1524863&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2902</link>
        <guid isPermaLink="false">http://localhost/ticket/2902</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2903: Two search boxes</title>
                  <description>&lt;p&gt;
I think the architecture on the search page is a bit odd. Not sure I like that there is a doubling up of the search box (e.g. one in the header and one in the body of the search results page)
&lt;/p&gt;
&lt;p&gt;
Needs some thought
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2903</link>
        <guid isPermaLink="false">http://localhost/ticket/2903</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2904: Show more formats/groups/tags shouldn't display if there aren't more</title>
                  <description>&lt;p&gt;
On the search results page when there are no more formats, groups or tags to display it should not display the show more links.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2904</link>
        <guid isPermaLink="false">http://localhost/ticket/2904</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2905: Add dataset URL key behaviour</title>
                  <description>&lt;p&gt;
On step 1 for adding a dataset can we add a ajax ping that checks if the URL that is generated by the JS is taken? Behaviour should be as follows:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;User types title in box (as current)
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;&lt;li&gt;URL key is regexed by JS (as current)
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="3"&gt;&lt;li&gt;The JS does a ajax call to check if the generated URL key is valid. The ajax callback returns a JSON dump which contains what the URL key should be (e.g. if 'test' was taken it returns 'test-1')
&lt;/li&gt;&lt;/ol&gt;&lt;ol start="4"&gt;&lt;li&gt;If the URL key returned in the ajax is different than the one generated by the JS then:
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
4a. If the user hasn't clicked the edit button then: it automatically updates the URL key field with the URL key supplied in the ajax
&lt;/p&gt;
&lt;p&gt;
4b. If the user has clicked the edit button then: a form error next to the input appears saying that the URL key is taken and within that error is suggests the URL key returned by the ajax as alternative (the user can click said URL key within the error to automatically choose that one)
&lt;/p&gt;
&lt;p&gt;
The URL key isn't reserved by the ajax and upon form submission the usual validation should still apply.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2905</link>
        <guid isPermaLink="false">http://localhost/ticket/2905</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2906: Wrong flags in language dropdown</title>
                  <description>&lt;p&gt;
The flags in the dropdown on details pages are not right.
&lt;/p&gt;
&lt;p&gt;
You can see the error on &lt;a class="ext-link" href="http://s031.okserver.org:2375/dataset/malawi-aid-projects/resource/b717c20e-2006-4ad4-82d2-59b57ebc1ab0"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://s031.okserver.org:2375/dataset/malawi-aid-projects/resource/b717c20e-2006-4ad4-82d2-59b57ebc1ab0&lt;/a&gt;.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2906</link>
        <guid isPermaLink="false">http://localhost/ticket/2906</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2907: Demo header</title>
                  <description>&lt;p&gt;
The user login / avatar with in the header really should be within another topbar, as it goes against convention to have the user information within the normal header.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2907</link>
        <guid isPermaLink="false">http://localhost/ticket/2907</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2908: Dataset related with image should retain aspect ratio</title>
                  <description>&lt;p&gt;
At the moment if you have an related item with an image associated to a dataset that appears in the side column it's resized but doesn't keep it's original aspect ratio.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2908</link>
        <guid isPermaLink="false">http://localhost/ticket/2908</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2909: User profile headers are a bit weird</title>
                  <description>&lt;p&gt;
They seem to be not exactly well thought out. Needs some thought on better display of the information that they contain.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2909</link>
        <guid isPermaLink="false">http://localhost/ticket/2909</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2910: User listings are not very compelling</title>
                  <description>&lt;p&gt;
They are currently are just a small image / name. They should be: Larger image, Full name (username), description, edits/dataset
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2910</link>
        <guid isPermaLink="false">http://localhost/ticket/2910</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2911: Internal documentation of Organization Groups</title>
                  <description>&lt;p&gt;
A summary/user story doc of how organizations and groups are expected to work.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2911</link>
        <guid isPermaLink="false">http://localhost/ticket/2911</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2912: ckanext/organizations: Neither public or private initially selected when adding dataset</title>
                  <description>&lt;p&gt;
When adding a dataset with the organizations extension on, neither the Public or the Private radio button is initially selected. Public should be selected.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2912</link>
        <guid isPermaLink="false">http://localhost/ticket/2912</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2913: IGroupForm has package_form() method</title>
                  <description>&lt;p&gt;
Should be group_form() I think
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2913</link>
        <guid isPermaLink="false">http://localhost/ticket/2913</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2914: Add form_to_db_schema_options() to IDatasetForm and IGroupForm</title>
                  <description>&lt;p&gt;
This optional method is supported when creating or updating groups and packages and is used in &lt;a class="missing wiki"&gt;DefaultGroupForm?&lt;/a&gt; and &lt;a class="missing wiki"&gt;DefaultPackageForm?&lt;/a&gt;, but seems to be missing from the interfaces. Should be added with docstring.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2914</link>
        <guid isPermaLink="false">http://localhost/ticket/2914</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2915: Refactor form_to_db_schema_options()</title>
                  <description>&lt;p&gt;
Having two methods form_to_db_schema(self) and form_to_db_schema_options(self, options) seems unnecessary, why not just have form_to_db_schema(self, options=None)?
&lt;/p&gt;
&lt;p&gt;
Fixing this might break existing extensions although I don't think any are using form_to_db_schema_options() so it should be okay.
&lt;/p&gt;
&lt;p&gt;
The same thing goes for db_to_form_schema_options().
&lt;/p&gt;
&lt;p&gt;
Also why are we passing a dict 'options' that always contains the same three keys 'api', 'context' and 'type'? Why not three params api=None, contenxt=None, type=None?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2915</link>
        <guid isPermaLink="false">http://localhost/ticket/2915</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2916: User management in orgs needs autocomplete</title>
                  <description>&lt;p&gt;
The user management in organizations ( &lt;a class="ext-link" href="http://localhost:5000/organization/users/NAME"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://localhost:5000/organization/users/NAME&lt;/a&gt; ) should autocomplete names in the dropdown box so that only valid usernames are added to the table.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2916</link>
        <guid isPermaLink="false">http://localhost/ticket/2916</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2917: Organization admins can delete themselves</title>
                  <description>&lt;p&gt;
Organization administrators can delete themselves from the user management pages.  We should disable this on the front-end as well as the back-end.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2917</link>
        <guid isPermaLink="false">http://localhost/ticket/2917</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>ross</dc:creator>

                  <title>#2918: Can't remove users from organizations</title>
                  <description>&lt;p&gt;
When you remove someone, without adding them, the text box at the bottom (which should probably autocomplete) is empty, and this causes problems on the server.
&lt;/p&gt;
&lt;p&gt;
Ideally when you add a user (select from the autocomplete) it would add another row to the table, defaulting the user to editor and setting the names to user&lt;span class="underline"&gt;{{X}}&lt;/span&gt;name and user&lt;span class="underline"&gt;{{X}}&lt;/span&gt;capacity where X is $('tr').size()
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2918</link>
        <guid isPermaLink="false">http://localhost/ticket/2918</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2919: Remove IController from docs</title>
                  <description>&lt;p&gt;
Still in docs but seems gone from code
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2919</link>
        <guid isPermaLink="false">http://localhost/ticket/2919</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2920: Genshi text template message extractor no longer needed?</title>
                  <description>&lt;p&gt;
In setup.py, do we still need:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
('templates/&lt;strong&gt;.txt', 'genshi', {
&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
'template_class': 'genshi.template:TextTemplate'
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
}),
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
in message_extractors? Doesn't like there are any txt files in there
anymore.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2920</link>
        <guid isPermaLink="false">http://localhost/ticket/2920</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2921: Add docstring to top of lib/extract.py file</title>
                  <description>&lt;p&gt;
I think it couldn't hurt for this module to have a docstring at the top
of the file explaining what the module is for. I know from setup.py that
it's there to provide the extract_ckan() string extractor function for
Babel, but I think looking at the file on its own it's not so obvious.
&lt;/p&gt;
&lt;p&gt;
Also a couple of other small fixes:
&lt;/p&gt;
&lt;p&gt;
jinja2_cleaner looks like a helper function only meant to be used by
extract_ckan(), might make things clearer if it was called
_jinja2_cleaner(), just so it doesn't look like a public function the
module wants to export.
&lt;/p&gt;
&lt;p&gt;
jinja_extensions seems to be a module-level variable that is only used
in one function, could be moved into the function, unless you think
there might be more functions that want it in future.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2921</link>
        <guid isPermaLink="false">http://localhost/ticket/2921</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2922: Better docstring for CKANInternationalizationExtension</title>
                  <description>&lt;p&gt;
I'm unsure about what's going on here. As I understand it, when we run
&lt;tt&gt;python setup.py extract_messages&lt;/tt&gt; it's going to use the extract_ckan()
function from ckan/lib/extract.py to process the HTML files. For the
HTML files that are jinja2 templates, extract_ckan() will call
jinja2_cleaner() which will call regularise_html() on the strings.  So
the strings are regularised when they are extracted from the source
files.
&lt;/p&gt;
&lt;p&gt;
But then we have the parse() method of &lt;a class="missing wiki"&gt;CkanInternationalizationExtension?&lt;/a&gt;
also calling regularise_html(). I don't get what's happening here. Why
do the strings need to be regularised twice?
&lt;/p&gt;
&lt;p&gt;
My guess is that &lt;a class="missing wiki"&gt;CkanInternationalizationExtension?&lt;/a&gt; is used when the
strings are extracted from the templates at runtime, and they need to be
regularised at this time in order to match them against the regularised
strings in the mo files to find the translations to output?
&lt;/p&gt;
&lt;p&gt;
Maybe &lt;a class="missing wiki"&gt;CkanInternationalizationExtension?&lt;/a&gt; needs a better docstring saying
what it does?
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2922</link>
        <guid isPermaLink="false">http://localhost/ticket/2922</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2923: Change regularise -&gt; regularize</title>
                  <description>&lt;p&gt;
The function is called regularise_html(), can't remember what file it's in.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2923</link>
        <guid isPermaLink="false">http://localhost/ticket/2923</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2924: Better docs for trans js command, and add to release process</title>
                  <description>&lt;p&gt;
Add a better docstring to for trans js command explaining what it does and why, and how to use it.
&lt;/p&gt;
&lt;p&gt;
Also add this command to the CKAN Release Process as it's needed there
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2924</link>
        <guid isPermaLink="false">http://localhost/ticket/2924</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2925: Remove trans mangle paster command?</title>
                  <description>&lt;ul&gt;&lt;li&gt;Is &lt;tt&gt;trans mangle&lt;/tt&gt; really necessary? If you upload a pot file to
Transifex, it can generate a po file for you with 100% strings
translated into a fictional pseudo language where everything is really
long strings of unicode characters. I found this worked well for
coverage testing, and also tests handling of unicode and long strings
all over the place.
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2925</link>
        <guid isPermaLink="false">http://localhost/ticket/2925</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2926: I*Form tests for per-type templates</title>
                  <description>&lt;p&gt;
Finish the tests for the per-package-type custom template support in IPackageForm, IGroupForm and IOrganizationForm (i.e. the new_template(), read_template() etc. methods).
&lt;/p&gt;
&lt;p&gt;
The new way that template inheritance works in jinja looks like it should allow this to be tested nicely without duplicating entire templates in the example extensions.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2926</link>
        <guid isPermaLink="false">http://localhost/ticket/2926</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2927: Test new package/group/organization type URLs support</title>
                  <description>&lt;p&gt;
IPackageForm, IGroupForm and IOrganizationForm allow you to define e.g. new package types with new top-level URLs, but the example extensions don't have tests for this yet.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2927</link>
        <guid isPermaLink="false">http://localhost/ticket/2927</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2928: Run CKAN tests with example_i*form extensions enabled</title>
                  <description>&lt;p&gt;
Before releasing CKAN 2.0 we need to run all the CKAN tests with a modified test-core.ini with the example_idatasetform, example_igroupform and example_iorganizationform plugins enabled. If any tests fail, fix the bugs. This needs to be done for each release so add it to the release process.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2928</link>
        <guid isPermaLink="false">http://localhost/ticket/2928</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2929: Remove is_fallback() from I*Form extension interfaces?</title>
                  <description>&lt;p&gt;
If a plugin wants to take over the default package type for example, it can return &lt;a class="missing wiki"&gt;dataset?&lt;/a&gt; from its package_types() method. I don't see how there can be a package type that is not the default 'package' and is not returned by the package_types() method of a plugin, because the URLs for such a package type would not be mapped. Am I missing something or is is_fallback() not needed?
&lt;/p&gt;
&lt;p&gt;
Same for IGroupForm and IOrganizationForm
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2929</link>
        <guid isPermaLink="false">http://localhost/ticket/2929</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2930: convert_from_extras() returns qupted strings from API</title>
                  <description>&lt;p&gt;
Use an IGroupForm plugin to add a custom metadata field to groups using convert_to_extras() and convert_from_extras(), when calling group show the value comes back quoted, e.g. '"my_value"'
&lt;/p&gt;
&lt;p&gt;
Should add tests to example_igroupform and others that setting and getting the custom fields works through the action API.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2930</link>
        <guid isPermaLink="false">http://localhost/ticket/2930</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2931: Better docstring for app_globals.py</title>
                  <description>&lt;p&gt;
&lt;strong&gt; The application's Globals object &lt;/strong&gt; is not very informative.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2931</link>
        <guid isPermaLink="false">http://localhost/ticket/2931</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2932: Add docstring to system_info.py</title>
                  <description>&lt;p&gt;
What is the system_info table for? It looks like a way to override config file settings in the database, perhaps so that admins can use a web interface to change site title etc. Could do with a docstring explaining the intended purpose of the table.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2932</link>
        <guid isPermaLink="false">http://localhost/ticket/2932</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2933: Update theming docs</title>
                  <description>&lt;p&gt;
There's quite a lot of custom stuff going on, with all the custom jinja extensions, and the use of Fanstatic plus custom fanstatic extensions. People who are new to CKAN wanting to write CKAN themes are likely to be confused. I think the whole lot could do with documentation, maybe in the Theming and Customizing chapter in the sphinx docs.
&lt;/p&gt;
&lt;p&gt;
I suggest completely replacing the contents of doc/theming.rst, and putting a 'legacy theming' link at the bottom linking to a doc/legacy_theming.rst file with the old contents.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2933</link>
        <guid isPermaLink="false">http://localhost/ticket/2933</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>Dominik</dc:creator>

                  <title>#2934: Webtests for CKAN</title>
                  <description>&lt;p&gt;
The tests in CKAN only test single pages (functional tests) or single methods (unit tests). In order to make sure that the whole system still works as expected, we need tests that cover whole processes.
&lt;/p&gt;
&lt;p&gt;
An example user story to be tested would be:
"As a user with create permissions I want to be able to log in, create a new resource, save it and then make sure that it is in the system."
or:
"As a user I want to use the search functionality and open a resource from the search page."
&lt;/p&gt;
&lt;p&gt;
These user stories require a different testing system with interaction and processes.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2934</link>
        <guid isPermaLink="false">http://localhost/ticket/2934</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#2935: Make recline work with new datastore</title>
                  <description></description>
        <link>http://localhost/ticket/2935</link>
        <guid isPermaLink="false">http://localhost/ticket/2935</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2936: Updating a group via the API clears its packages</title>
                  <description>&lt;p&gt;
If the group dict that you post to the API does not have any 'packages' key then all the group's packages get removed. I think it would be better if you could just update e.g. the group's description without having to also post the list of packages, and apparently this is how other update API actions work.
&lt;/p&gt;
&lt;p&gt;
Might be worth checking all the update API actions for this behaviour, and making sure they're all consistent
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2936</link>
        <guid isPermaLink="false">http://localhost/ticket/2936</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2937: GroupController.history() missing extras_as_string</title>
                  <description>&lt;p&gt;
&lt;a class="missing wiki"&gt;GroupController?&lt;/a&gt;'s history() method doesn't pass 'extras_as_string': True in the context when it calls group_show. This means that if you have an IGroupForm plugin that is adding a custom metadata field and using convert_to/from_extras() then a field value of 'foo' will be returned as '"foo"'
&lt;/p&gt;
&lt;p&gt;
Other &lt;a class="missing wiki"&gt;GroupController?&lt;/a&gt; and &lt;a class="missing wiki"&gt;PackageController?&lt;/a&gt; methods do pass 'extras_as_string'
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2937</link>
        <guid isPermaLink="false">http://localhost/ticket/2937</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2938: Explain bundling in doc/resources.rst</title>
                  <description>&lt;p&gt;
Since it makes sense to bundle resources into one js file that are commonly used together, there should be some explanations on how separate js scripts are merged into one file for production.
&lt;/p&gt;
&lt;p&gt;
Explanations could include how groups are handled or different resource files.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2938</link>
        <guid isPermaLink="false">http://localhost/ticket/2938</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#2939: Orgs are groups</title>
                  <description>&lt;p&gt;
holder for ticket number
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2939</link>
        <guid isPermaLink="false">http://localhost/ticket/2939</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2940: Edit different resources from edit dataset pag</title>
                  <description>&lt;p&gt;
We need a nice way to be able to get to editing the different resources that are associated to a dataset.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2940</link>
        <guid isPermaLink="false">http://localhost/ticket/2940</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2941: Add follower support back into CKAN 2.0</title>
                  <description>&lt;p&gt;
Add the views and functionality of following users and groups into 2.0
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2941</link>
        <guid isPermaLink="false">http://localhost/ticket/2941</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#2942: API POST barfs on interesting Content-Type headers</title>
                  <description>&lt;p&gt;
When POSTing to the API, if specified, the 'Content-Type' header must be blank or 'application/x-www-form-urlencoded'. Otherwise we get an error like: "Bad request - JSON Error: Could not extract request body data: Bad content type: \'; charset=utf-8\'""
&lt;/p&gt;
&lt;p&gt;
The problem is that this is a very reasonable header to send. Indeed requests 0.14 sends this particular header.
&lt;/p&gt;
&lt;p&gt;
This affects all versions of CKAN.
&lt;/p&gt;
&lt;p&gt;
This is due to webob/requests.py:1248 being pretty basic.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2942</link>
        <guid isPermaLink="false">http://localhost/ticket/2942</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2943: Chrome does not resize preview</title>
                  <description>&lt;p&gt;
Chrome does not resize iframe after a full refresh/ on first load
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2943</link>
        <guid isPermaLink="false">http://localhost/ticket/2943</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2944: Recline preview does not work in Opera</title>
                  <description>&lt;p&gt;
Opera cannot show a recline preview. I shows 0 records.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2944</link>
        <guid isPermaLink="false">http://localhost/ticket/2944</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2945: Pdf preview does not load in IE</title>
                  <description>&lt;p&gt;
The pdf preview does not load in IE 9.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2945</link>
        <guid isPermaLink="false">http://localhost/ticket/2945</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2946: Pdf preview does not load in IE</title>
                  <description>&lt;p&gt;
The pdf preview does not load in IE 9.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2946</link>
        <guid isPermaLink="false">http://localhost/ticket/2946</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2947: Redirect to the resource page from /resource/{res-id}</title>
                  <description>&lt;p&gt;
Use story:
As a user of the datasore I want to be able to put the resource id without the dataset name in a url and see the resource page.
&lt;/p&gt;
&lt;p&gt;
Proposed redirect:
&lt;/p&gt;
&lt;p&gt;
/resource/{res-id} -&amp;gt; dataset/foo-bar/resource/{res-id}
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2947</link>
        <guid isPermaLink="false">http://localhost/ticket/2947</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2948: Negative range breaks datastore backend</title>
                  <description>&lt;p&gt;
Recline allows negative ranges. The backend returns an error 500 for that which breaks the recline preview.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2948</link>
        <guid isPermaLink="false">http://localhost/ticket/2948</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2949: Reenable Data API button on the new theme</title>
                  <description>&lt;p&gt;
The checks to show or not the button need to be updated for the latest datastore version
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2949</link>
        <guid isPermaLink="false">http://localhost/ticket/2949</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2950: paster command to minify javascript and css</title>
                  <description>&lt;p&gt;
With the latest template, css and js changes in 2.0, there are a number of things that need preparation prior to a production deployment.  One of these is:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;the fanstatic_resources defined in &lt;tt&gt;ckan/lib/fanstatic_resources.py&lt;/tt&gt; (bottom of module) should be prepared, and minified.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This ticket is to:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;provide a paster command which when run will generate the minified javascript as css files.
&lt;/li&gt;&lt;li&gt;stop the auto-minification of files when CKAN starts up.
&lt;/li&gt;&lt;li&gt;remove reference to the minified files in the &lt;tt&gt;.gitignore&lt;/tt&gt; file.
&lt;/li&gt;&lt;li&gt;add instruction to the release process to run this command, and check-in the minified files to the repo.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
## Background
&lt;/p&gt;
&lt;p&gt;
Currently, minification works seamlessly without the need for any preparation when CKAN is started in a development setup.  But on a production site, the webserver will (almost certainly) not have write-access to the directories that will contain the minified files.  And so the minification will fail, and the site will end up serving the un-minified media, or even *old* minified media.
&lt;/p&gt;
&lt;p&gt;
One way around this would be to allow webserver write access to the directory its serving out of.  But this is not generally considered good practice.
&lt;/p&gt;
&lt;p&gt;
Another method would be to distribute the minified files with CKAN.  This ticket describes how to do this without causing a lot of noise in the commit history of the repo.
&lt;/p&gt;
&lt;p&gt;
The auto-minifcation occurs when importing &lt;tt&gt;ckan/lib/fanstatic_resources.py&lt;/tt&gt;.
&lt;/p&gt;
&lt;p&gt;
## Changing the process slightly
&lt;/p&gt;
&lt;p&gt;
The reason for moving away from auto-minifying files at start-up, to minifying files when running a paster command is:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;we should be distributing the minified files when we make a release (as we do with translation files).  This makes it easier to install CKAN from source.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;if we distribute the minified files, then they need to be checked-in to the repo.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;if they are auto-minified, whenever small changes are made, then this will create a lot of noise in the repo.  It will be clearer to have the minified-files generated manually as part of the release process. (Or whever we make a deployment internally).
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2950</link>
        <guid isPermaLink="false">http://localhost/ticket/2950</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2951: Paster command for building css from less</title>
                  <description>&lt;p&gt;
With the latest template, css and js changes in 2.0, there are a number of things that need preparation prior to a production deployment. One of these is:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;the less files should be compiled to css (main.css, not just main.debug.css)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This ticket is to provide a paster command which will compile the .less into the main.css file.  The idea of the paster command is that it will be run by developers, and they will check in the resulting .css files.  It will also provide a convenient mechanism for production scenarios with node.js installed on the production server, as they will be able to compile the .less there as well.
&lt;/p&gt;
&lt;p&gt;
## Background
&lt;/p&gt;
&lt;p&gt;
The .css files that need to be served are built using &lt;tt&gt;less&lt;/tt&gt;.  The css files that are generated *are* checked-in to the repo; but they are a build artifact.  So the general workflow is:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;commit changes to the less files
&lt;/li&gt;&lt;li&gt;build the main.css file and commit
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This paster command slots into the above workflow for convenience.
&lt;/p&gt;
&lt;p&gt;
## Notes
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;doc/frontend-development.rst
&lt;/li&gt;&lt;li&gt;bin/less
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
to run this paster command, &lt;tt&gt;Node&lt;/tt&gt; will be required.  So that dependency should be checked.
&lt;/p&gt;
&lt;p&gt;
## The paster command
&lt;/p&gt;
&lt;p&gt;
This is the proposed behaviour of the paster command:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ensure &lt;tt&gt;custom.less&lt;/tt&gt; does not exist
&lt;/li&gt;&lt;li&gt;for each colour in{fuchsia,green,maroon,red}:
&lt;ul&gt;&lt;li&gt;generate a &lt;tt&gt;custom.less&lt;/tt&gt; file for $colour.  There's a paster command that does this already: `paster color &amp;lt;color name&amp;gt;.
&lt;/li&gt;&lt;li&gt;generate the &lt;tt&gt;css&lt;/tt&gt; from the &lt;tt&gt;less&lt;/tt&gt; files.  ie - the equivelant of running &lt;tt&gt;bin/less --production&lt;/tt&gt;.
&lt;ul&gt;&lt;li&gt;this will generate a &lt;tt&gt;main.css&lt;/tt&gt; file, which should be renamed to &lt;tt&gt;$color.css&lt;/tt&gt;.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;ensure &lt;tt&gt;custom.less&lt;/tt&gt; does not exist
&lt;/li&gt;&lt;li&gt;generate the &lt;tt&gt;css&lt;/tt&gt; from the &lt;tt&gt;less&lt;/tt&gt; files.  This will create a &lt;tt&gt;main.css&lt;/tt&gt; with the default colour scheme.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;call the paster command that minifies css and js files.  (This command does not exist yet, see &lt;a class="closed ticket" href="http://localhost/ticket/2950" title="requirement: paster command to minify javascript and css (closed: fixed)"&gt;#2950&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2951</link>
        <guid isPermaLink="false">http://localhost/ticket/2951</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2952: incorporate javascriopt translations into translations workflow</title>
                  <description>&lt;p&gt;
There are now javascript translations.  There's a paster command, &lt;tt&gt;trans js&lt;/tt&gt;.  This is a ticket to ensure that using &lt;tt&gt;trans js&lt;/tt&gt; is documented in the normal ckan translation workflow (which is followed after a feature freeze, prior to release).  And to see if there's any need for further incorporation into the current translation process.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2952</link>
        <guid isPermaLink="false">http://localhost/ticket/2952</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2953: Server error in template directories</title>
                  <description>&lt;p&gt;
If you go to: /{any template dir} for example /home or /related, a Server errror occurs.
&lt;/p&gt;
&lt;p&gt;
IOError: [Errno 21] Is a directory: u'/../venv/src/ckan/ckan/templates/home'
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2953</link>
        <guid isPermaLink="false">http://localhost/ticket/2953</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2954: Flickering on resource view when changing between views</title>
                  <description>&lt;p&gt;
From the google doc: When I move between grid, graph and map view mode (or click on filters) the whole data explorer flickers (jumps up &amp;amp; down slightly) for a few moments before settling. This is happening on all resources for me and when you initially open launch the page: &lt;a class="ext-link" href="http://demo.ckan.org/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://demo.ckan.org/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360&lt;/a&gt;. Only in Chrome, working fine in Firefox.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2954</link>
        <guid isPermaLink="false">http://localhost/ticket/2954</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2955: Recline should be updated</title>
                  <description></description>
        <link>http://localhost/ticket/2955</link>
        <guid isPermaLink="false">http://localhost/ticket/2955</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2956: Allow for resource editing in CKAN 2.0</title>
                  <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>
        <link>http://localhost/ticket/2956</link>
        <guid isPermaLink="false">http://localhost/ticket/2956</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2957: New datastore on postgres prior to 9.0</title>
                  <description>&lt;p&gt;
The &lt;tt&gt;&lt;/tt&gt;GRANT SELECT ON ALL&lt;tt&gt;&lt;/tt&gt; and &lt;tt&gt;&lt;/tt&gt;ALTER DEFAULT PRIVILEGES&lt;tt&gt;&lt;/tt&gt; are not available in Postgres prior to version 9.0.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2957</link>
        <guid isPermaLink="false">http://localhost/ticket/2957</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2958: Uploading files with unicode characters in filename fails in CKAN 1.7 and 1.8</title>
                  <description>&lt;p&gt;
e.g. 2012_08(주요국가).xls
&lt;/p&gt;
&lt;p&gt;
I tested in CKAN 2.0 and it seemed to work fine there.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2958</link>
        <guid isPermaLink="false">http://localhost/ticket/2958</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>icmurray</dc:creator>

                  <title>#2959: Changing a Group's name through the action api disassociates it from its datasets in the index</title>
                  <description>&lt;p&gt;
Repro:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Create a new Group, named "test-group".
&lt;/li&gt;&lt;li&gt;Add a dataset to it.
&lt;/li&gt;&lt;li&gt;Verify the dataset belongs to the group by visiting the Group's read-page
&lt;/li&gt;&lt;li&gt;Update the Group through the action api (group_update), using the uid in the "id" field, and a new name in the "name" field.
&lt;/li&gt;&lt;li&gt;Visit the group's read-page.  The list of datasets will be empty.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This was an issue when editing a Group through the web interface, which was fixed in &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;.  However it only fixes the issue in the group controller.
&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="https://github.com/okfn/ckan/commit/dbe25d8b8d7fabfc40c5d794a920b91cec349335"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckan/commit/dbe25d8b8d7fabfc40c5d794a920b91cec349335&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2959</link>
        <guid isPermaLink="false">http://localhost/ticket/2959</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2960: Private datasets are not private</title>
                  <description>&lt;p&gt;
At the moment everyone can read all resources. There is no support for hiding resources that are in private datasets.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2960</link>
        <guid isPermaLink="false">http://localhost/ticket/2960</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2961: Preview plugin endpoint</title>
                  <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>
        <link>http://localhost/ticket/2961</link>
        <guid isPermaLink="false">http://localhost/ticket/2961</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#2962: Search across multiple ckan instances</title>
                  <description>&lt;p&gt;
Could be done by:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;using the solr distributed search
&lt;ul&gt;&lt;li&gt;difficult set up
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;merging result sets from apis
&lt;ul&gt;&lt;li&gt;make sure that results can be merged properly (score, facets, ...)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2962</link>
        <guid isPermaLink="false">http://localhost/ticket/2962</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2963: Timeout on tag pages with lots of datasets</title>
                  <description>&lt;p&gt;
e.g. &lt;a class="ext-link" href="http://thedatahub.org/tag/lod"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/tag/lod&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Tags with less datasets work fine (e.g. &lt;a class="ext-link" href="http://thedatahub.org/tag/railways"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://thedatahub.org/tag/railways&lt;/a&gt;)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2963</link>
        <guid isPermaLink="false">http://localhost/ticket/2963</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2964: Last organization admin can remove herself</title>
                  <description>&lt;p&gt;
If you are the only admin of an organization you can edit the organization's members and demote yourself, then the org has no admins and no one (except sysadmins maybe) can edit it.
&lt;/p&gt;
&lt;p&gt;
Last admin should not be able to remove or demote herself.
&lt;/p&gt;
&lt;p&gt;
Also applies to groups.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2964</link>
        <guid isPermaLink="false">http://localhost/ticket/2964</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#2965: Stats extension broken on 1.8</title>
                  <description>&lt;ul&gt;&lt;li&gt;Graphs not showing (looks like a flot related file is missing)
&lt;/li&gt;&lt;li&gt;Wrong groups counts (e.g. Data Explorer Examples show 1800 datasets when it onlu has 8)
&lt;/li&gt;&lt;/ul&gt;</description>
        <link>http://localhost/ticket/2965</link>
        <guid isPermaLink="false">http://localhost/ticket/2965</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2966: 'Add' button text is wrong when editing organization members</title>
                  <description>&lt;p&gt;
e.g. if I just changed a member's capacity I am not adding anything 'save' is better maybe
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2966</link>
        <guid isPermaLink="false">http://localhost/ticket/2966</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2967: Organization members edit page reloads after demoting self</title>
                  <description>&lt;p&gt;
Edit an organizations members page and demote yourself from organization admin, after saving the members edit page reloads even though you are no longer an admin and should no longer be able to access this page.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2967</link>
        <guid isPermaLink="false">http://localhost/ticket/2967</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2968: Anyone can access organization members page</title>
                  <description>&lt;p&gt;
The button will not show if you are not authorized but browse to /organization/members/foo and you can edit the members, it does stop you when you try to save your changes, but you shouldn't be able to get to the page at all
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2968</link>
        <guid isPermaLink="false">http://localhost/ticket/2968</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2969: Group members page 500s</title>
                  <description>&lt;p&gt;
The group members page (e.g. /group/members/roger) seems broken, IDs instead of user names are shown for the members, and clicking on a member 500s
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2969</link>
        <guid isPermaLink="false">http://localhost/ticket/2969</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2970: Organization and group member links use id not name</title>
                  <description>&lt;p&gt;
e.g. it the 'Members' button links to /organization/members/0a44... instead of /organization/members/foobar
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2970</link>
        <guid isPermaLink="false">http://localhost/ticket/2970</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2971: "Are ytou sure you want to delete this member?" should say which member</title>
                  <description>&lt;p&gt;
when deleting members from groups and orgs
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2971</link>
        <guid isPermaLink="false">http://localhost/ticket/2971</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2972: Remove any imports of authz.py and delete file</title>
                  <description>&lt;p&gt;
it is no longer used
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2972</link>
        <guid isPermaLink="false">http://localhost/ticket/2972</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2973: Move new_authz.py into logic/auth/__init__.py</title>
                  <description>&lt;p&gt;
Makes sense to keep all auth stuff under logic/auth.
&lt;/p&gt;
&lt;p&gt;
Also decide which functions from new_authz.pu should be marked private with _.
&lt;/p&gt;
&lt;p&gt;
Also decide which functions from new_authz.py are really helpers for the auth functions in get.py, update.py and delete.py, and should maybe moved to another file, e.g. logic/auth/helpers.py
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2973</link>
        <guid isPermaLink="false">http://localhost/ticket/2973</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2974: General of all auth functions</title>
                  <description>&lt;p&gt;
From Toby:
&lt;/p&gt;
&lt;p&gt;
A general cleanup of all auth functions (in logic/auth) to check their fitness, error messages, etc.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2974</link>
        <guid isPermaLink="false">http://localhost/ticket/2974</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2975: Tests for auth functions and new actions</title>
                  <description>&lt;p&gt;
From Toby: tests around the auth functions and new actions - probably needs an improved testing mechanism and things like test data creation on via actions
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2975</link>
        <guid isPermaLink="false">http://localhost/ticket/2975</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2976: Polish group and organization member pages</title>
                  <description>&lt;p&gt;
From Toby: A little polish to the member pages and probably a little hardening of
the controller and logic actions
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2976</link>
        <guid isPermaLink="false">http://localhost/ticket/2976</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2977: Fix user autocomplete on group and organization member pages</title>
                  <description>&lt;p&gt;
From Toby: @johnmartin the user autocomplete on
member add needs fixing it gets data but does not understand what to do
with it
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2977</link>
        <guid isPermaLink="false">http://localhost/ticket/2977</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2978: Tests for permissions for organizations and groups</title>
                  <description>&lt;p&gt;
From Toby: checking the logic around the who can do what from the user stories -
via some tests may be a good approach
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2978</link>
        <guid isPermaLink="false">http://localhost/ticket/2978</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2979: Requesting membership to groups and organizations</title>
                  <description>&lt;p&gt;
From Toby: The requesting membership user stories and implementation remain needed
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2979</link>
        <guid isPermaLink="false">http://localhost/ticket/2979</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2980: Add new groups and organizations functionality into legacy templates</title>
                  <description>&lt;p&gt;
From Toby: add the functionality to legacy templates
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2980</link>
        <guid isPermaLink="false">http://localhost/ticket/2980</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2981: Remove config from jinja templates</title>
                  <description>&lt;p&gt;
From Toby: remove the config from jinja2 templates get all such stuff via g. (before 2.0)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2981</link>
        <guid isPermaLink="false">http://localhost/ticket/2981</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2982: Move functionality from controllers into template helpers</title>
                  <description>&lt;p&gt;
From Toby: strip more functionality from controllers and add via template helpers
eg activity streams
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2982</link>
        <guid isPermaLink="false">http://localhost/ticket/2982</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2983: Refactor lib/base.py to remove circular import issues</title>
                  <description>&lt;p&gt;
From Toby: c) refactor lib/base.py to remove the circular import issues (render
functions to lib/render.py - would fix much of that)
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2983</link>
        <guid isPermaLink="false">http://localhost/ticket/2983</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2984: Auto-populate context with user, model, session, etc.</title>
                  <description>&lt;p&gt;
From Toby: make the context auto-populated with things like user/model/session if
not user supplied - especially for extensions (pre 2.0) maybe via a helper
or else a decorator on the action - helper seems nicer maybe done via
get_action()
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2984</link>
        <guid isPermaLink="false">http://localhost/ticket/2984</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2985: Make lib/helpers.py more template-specific</title>
                  <description>&lt;p&gt;
From Toby: make lib/helpers more template specific and less generally shared with
none template uses (some functions are shared but many shouldn't be) -
again help avoid circular imports
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2985</link>
        <guid isPermaLink="false">http://localhost/ticket/2985</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2986: Make lib/base.py more like it was originally intended</title>
                  <description>&lt;p&gt;
From Toby: make lib/base.py be more like it was originally intended eg defines
stuff that is shared eg _ but maybe try to include stuff like
render/get_action if the circular import stuff can be solved - which should
be doable if hard and likely needs an extra file or two for the externals _
etc
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2986</link>
        <guid isPermaLink="false">http://localhost/ticket/2986</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2987: Remove all direct calls to logic action and auth functions</title>
                  <description>&lt;p&gt;
From Toby
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2987</link>
        <guid isPermaLink="false">http://localhost/ticket/2987</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2988: UI functional tests for CKAN 2.0</title>
                  <description>&lt;p&gt;
Afaik the new CKAN 2.0 frontend has no functional tests
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2988</link>
        <guid isPermaLink="false">http://localhost/ticket/2988</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2989: "Add dataset to organization" should auto-select the organization</title>
                  <description>&lt;p&gt;
'Add dataset to organization' button, when you get through to the third stage of the new dataset form the organization you came from is not selected.
&lt;/p&gt;
&lt;p&gt;
I don't see any option to choose the group when adding or updating a dataset, but if I add a dataset via the "Add dataset to group" button on a group's page, then the dataset seems to get added to that group. (And I can also add/remove existing datasets by editing the group.) I wonder if organizations should work the same way, instead of having an Organization drop-down when creating or updating a dataset. The add dataset page needs to somehow indicate that you're adding a dataset to a certain group or organization though, doesn't currently.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2989</link>
        <guid isPermaLink="false">http://localhost/ticket/2989</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2990: Fix descriptions of groups and organizations on /groups and /organizations pages</title>
                  <description></description>
        <link>http://localhost/ticket/2990</link>
        <guid isPermaLink="false">http://localhost/ticket/2990</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2991: Add blocks to header.html template</title>
                  <description>&lt;p&gt;
Currently if you want to customise the header.html template you have to copy the whole thing, it isn't broken up into blocks like other templates are.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2991</link>
        <guid isPermaLink="false">http://localhost/ticket/2991</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#2992: Delete resource should send me back to edit dataset page</title>
                  <description></description>
        <link>http://localhost/ticket/2992</link>
        <guid isPermaLink="false">http://localhost/ticket/2992</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2993: "logged_in" and "visitor" show in user list at /users</title>
                  <description></description>
        <link>http://localhost/ticket/2993</link>
        <guid isPermaLink="false">http://localhost/ticket/2993</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2994: Add dataset and user popovers throughout the site</title>
                  <description>&lt;p&gt;
If you hover the mouse over a dataset or user in an activity stream, you now get a popover with some info about that dataset or user and a follow/unfollow button.
&lt;/p&gt;
&lt;p&gt;
These popovers should appear wherever datasets or users are listed, throughout the site.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2994</link>
        <guid isPermaLink="false">http://localhost/ticket/2994</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2995: Popovers for resources, groups, organizations, tags...</title>
                  <description>&lt;p&gt;
If you hover the mouse over a dataset or user in an activity stream, you now get a popover with some info about that dataset or user and a follow/unfollow button.
&lt;/p&gt;
&lt;p&gt;
It would be nice to add similar popovers for other types of object in CKAN, e.g. resources, groups, organizations, tags...
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2995</link>
        <guid isPermaLink="false">http://localhost/ticket/2995</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2996: Fix behaviour of View Profile button in user popover when already on user's profile</title>
                  <description>&lt;p&gt;
The user popovers that appear when you hover the mouse over a user in an activity stream include a View Profile button that takes you to that user's profile page. If you are already on that user's profile page then it simply reloads the same page, but it sends you to the Datasets tab if you were on another tab.
&lt;/p&gt;
&lt;p&gt;
Possible solutions:
&lt;/p&gt;
&lt;p&gt;
Don't show button if already on user's page?
&lt;/p&gt;
&lt;p&gt;
Button just makes popover disappear, if already on user's page?
&lt;/p&gt;
&lt;p&gt;
Button does reload the page, but reloads the same tab (datasets, followers, activity stream) that you were on.
&lt;/p&gt;
&lt;p&gt;
Marking this low priority
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2996</link>
        <guid isPermaLink="false">http://localhost/ticket/2996</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2997: Add activity streams to dataset pages</title>
                  <description>&lt;p&gt;
Add an activity stream tab to dataset pages, like we have on user profile pages. Dataset activity streams are already implemented in the backend.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2997</link>
        <guid isPermaLink="false">http://localhost/ticket/2997</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2998: Add activity streams to group pages</title>
                  <description>&lt;p&gt;
Before we do this we should implement smarter group activity streams (i.e. what activities should appear in a group's activity stream?) and following of groups.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2998</link>
        <guid isPermaLink="false">http://localhost/ticket/2998</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#2999: Add activity streams to organization pages</title>
                  <description>&lt;p&gt;
Before we do this we need to merge the organizations branch into master, we need to implement smarter activity streams for organizations, and we need to implement following of organizations.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/2999</link>
        <guid isPermaLink="false">http://localhost/ticket/2999</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3000: Add number of followers to dataset pages</title>
                  <description>&lt;p&gt;
User profile pages now show some interesting stats about the user: num. datasets, num. edits and num. followers. Would be nice to add some similar info to dataset pages. At least num. followers can be done (already implemented in backend).
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3000</link>
        <guid isPermaLink="false">http://localhost/ticket/3000</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3001: Multilingual plugin crashes CKAN on add dataset when some languages are default</title>
                  <description>&lt;p&gt;
Enable the multilingual plugins:
&lt;/p&gt;
&lt;p&gt;
ckan.plugins = stats synchronous_search multilingual_dataset multilingual_group multilingual_tag
&lt;/p&gt;
&lt;p&gt;
and set your default language to one not supported by the multilingual plugin, e.g.
&lt;/p&gt;
&lt;p&gt;
ckan.locale_default = cs_CZ
&lt;/p&gt;
&lt;p&gt;
now run CKAN and try to add a dataset:
&lt;/p&gt;
&lt;p&gt;
File '/home/seanh/Projects/ckan171/ckan/ckanext/multilingual/plugin.py', line 141 in before_index
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
text_field_items&lt;a class="missing wiki"&gt;+ default_lang?&lt;/a&gt;.extend(all_terms)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a class="missing wiki"&gt;KeyError?&lt;/a&gt;: 'text_cs_CZ'
&lt;/p&gt;
&lt;p&gt;
It doesn't matter what language you are viewing the site in in your browser, the default language setting in the ini file determines whether it crashed or not.
&lt;/p&gt;
&lt;p&gt;
A number of supported languages are defined at the top of ckanext/multilingual/plugin.py. I think if the default language is not one of these it crashes.
&lt;/p&gt;
&lt;p&gt;
I think this affects all versions of CKAN since the multilingual plugin was added so at least 1.7, 1.8 and 2.0
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3001</link>
        <guid isPermaLink="false">http://localhost/ticket/3001</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#3002: API v1/2 'legacy' search parameters must be escaped before they are put into a Solr query string</title>
                  <description>&lt;p&gt;
Just to track @tauberer patch on Github.
Would be nice to write a test for it. Probably going to 1.8.1
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3002</link>
        <guid isPermaLink="false">http://localhost/ticket/3002</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#3003: New pg databases should be created with UTF8 encoding rather than system default</title>
                  <description>&lt;p&gt;
Just to track @tauberer patch on Github.
Probably going to 1.8.1
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3003</link>
        <guid isPermaLink="false">http://localhost/ticket/3003</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3004: ImportError: No module named polib</title>
                  <description>&lt;p&gt;
This is happening whenever people try to run paster commands. polib should only be needed for the check-po-files command don't import otherwise.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3004</link>
        <guid isPermaLink="false">http://localhost/ticket/3004</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3005: Add following/unfollowing of groups: model, API, frontend, tests</title>
                  <description></description>
        <link>http://localhost/ticket/3005</link>
        <guid isPermaLink="false">http://localhost/ticket/3005</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3006: Update translations from Transifex</title>
                  <description>&lt;p&gt;
There are some new translations already on the CKAN 1.8 resource on Transifex already (e.g. 100% Norwegian translation I think). We should at least pull these from Transifex for 1.8.1, and may as well do a call for translations too.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3006</link>
        <guid isPermaLink="false">http://localhost/ticket/3006</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3007: Adding a dataset creates multiple activities</title>
                  <description>&lt;p&gt;
Adding a new dataset creates multiple activity stream activities, e.g. seanh created the dataset foo, seanh add the resource bar to the dataset foo, and seanh updated the dataset foo are all created when I add a new dataset. I wonder if these can be collapsed into a single activity.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3007</link>
        <guid isPermaLink="false">http://localhost/ticket/3007</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3008: Add tests for dashboard activity stream auth</title>
                  <description>&lt;p&gt;
We need to test that only logged in users can see their own dashboard activity streams, and they can only see their own dashboard activity streams not those of other users.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3008</link>
        <guid isPermaLink="false">http://localhost/ticket/3008</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3009: On-site notification of new dashboard activity</title>
                  <description>&lt;p&gt;
We want a "bubble" with a number in it to appear in the top-right of the site next to your user name when you're logged in, telling you how many new activity stream items you have in your dashboard activity stream.
&lt;/p&gt;
&lt;p&gt;
There's a github issue for this here:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckanext-pdeu/issues/11"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-pdeu/issues/11&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3009</link>
        <guid isPermaLink="false">http://localhost/ticket/3009</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3010: Pin images don't appear in data explorer</title>
                  <description>&lt;p&gt;
When minified files are in use (set debug = false in ini file) the pin images for points don't show up in the data explorer map view when viewing a resource with geolocation data.
&lt;/p&gt;
&lt;p&gt;
set debug = true will fix the problem by using unminified files instead but also turns on a bunch of debug stuff you wouldn't want on a production site.
&lt;/p&gt;
&lt;p&gt;
middleware.py, around line 73, is where the decision to turn minified files on or off based on the debug setting is made. This can be hacked on a production site to run with unminified files but otherwise run on production mode thereby getting around the issue with the pins. But that doesn't fix the underlying bug.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3010</link>
        <guid isPermaLink="false">http://localhost/ticket/3010</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#3011: Recline fixes and updates for CKAN 2.0</title>
                  <description>&lt;p&gt;
Fixes and updates to Recline / Datapreview for CKAN 2.0.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3011</link>
        <guid isPermaLink="false">http://localhost/ticket/3011</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#3012: data.gov auth</title>
                  <description></description>
        <link>http://localhost/ticket/3012</link>
        <guid isPermaLink="false">http://localhost/ticket/3012</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dominik</dc:creator>

                  <title>#3013: common-error-messages is unreadable</title>
                  <description>&lt;p&gt;
Since the update of the doc theme, the page became unreadable.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://docs.ckan.org/en/latest/common-error-messages.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://docs.ckan.org/en/latest/common-error-messages.html&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3013</link>
        <guid isPermaLink="false">http://localhost/ticket/3013</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3014: Crash when deleting a non-empty vocabulary</title>
                  <description>&lt;p&gt;
From Knud Möller:
&lt;/p&gt;
&lt;p&gt;
when I try to delete a non-empty tag vocabulary via the API (through HTTP), I get an internal server error. Checking
the logs, this turns out to be a consistency error raised by  sqlalchemy:
&lt;/p&gt;
&lt;p&gt;
Error - &amp;lt;class 'sqlalchemy.exc.&lt;a class="missing wiki"&gt;IntegrityError?&lt;/a&gt;'&amp;gt;: (&lt;a class="missing wiki"&gt;IntegrityError?&lt;/a&gt;) update or delete on table "vocabulary" violates
foreign key constraint "tag_vocabulary_id_fkey" on table "tag"
DETAIL:  Key (id)=(21421955-7560-467c-af30-9f790b73e6ae) is still referenced from table "tag".
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
'DELETE FROM vocabulary WHERE vocabulary.id = %(id)s' {'id': u'21421955-7560-467c-af30-9f790b73e6ae'}
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
URL: &lt;a class="ext-link" href="http://33.33.33.10:5000/api/action/vocabulary_delete"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://33.33.33.10:5000/api/action/vocabulary_delete&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The error makes sense, but I'm wondering if it would be useful to extend the API to also allow the deletion of
non-empty vocabularies, possibly via a parameter (not sure what best practice in API design is). At the very least, it
would be cool if the error message coming back in the response had more information in it.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3014</link>
        <guid isPermaLink="false">http://localhost/ticket/3014</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#3015: Dropdowns don't work without JavaScript</title>
                  <description>&lt;p&gt;
Essentially the default bootstrap dropdowns don't work properly without &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; which is a little bit of an issue with JS not working.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3015</link>
        <guid isPermaLink="false">http://localhost/ticket/3015</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#3016: CKAN 2.0 template tweaks</title>
                  <description>&lt;p&gt;
Just a ticket to keep track of a few suggested template changes.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3016</link>
        <guid isPermaLink="false">http://localhost/ticket/3016</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnglover</dc:creator>

                  <title>#3017: New stable branch for the demo server</title>
                  <description></description>
        <link>http://localhost/ticket/3017</link>
        <guid isPermaLink="false">http://localhost/ticket/3017</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#3018: Load more in activity streams</title>
                  <description>&lt;p&gt;
Activity streams should be able to load more than 15 items within them. Suggest the default amount of loading is around 30 and then click to load more.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3018</link>
        <guid isPermaLink="false">http://localhost/ticket/3018</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3019: Cannot delete dataset extras</title>
                  <description>&lt;p&gt;
Deleting extras in the web interface is broken
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3019</link>
        <guid isPermaLink="false">http://localhost/ticket/3019</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3020: Update CKAN coding standards</title>
                  <description></description>
        <link>http://localhost/ticket/3020</link>
        <guid isPermaLink="false">http://localhost/ticket/3020</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>johnmartin</dc:creator>

                  <title>#3021: Logout doesn't work without JS</title>
                  <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>
        <link>http://localhost/ticket/3021</link>
        <guid isPermaLink="false">http://localhost/ticket/3021</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#3022: setup_template_variables method of IDatasetForm never called</title>
                  <description>&lt;p&gt;
On the package controller the package_type is not passed to the lookup function, so the setup_template_variables defined on the extensions is never called
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3022</link>
        <guid isPermaLink="false">http://localhost/ticket/3022</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#3023: New methods on IPackageController to provide access to the data_dict</title>
                  <description>&lt;p&gt;
Extension hooking into the edit and create methods of the IPackageController interface receive the package object. This may not include all the fields that came from the form. The new extension points will pass the validated data_dict so extensions can have access to it
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3023</link>
        <guid isPermaLink="false">http://localhost/ticket/3023</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3024: Add activity stream tab to dataset read page</title>
                  <description></description>
        <link>http://localhost/ticket/3024</link>
        <guid isPermaLink="false">http://localhost/ticket/3024</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#3025: Add requests to core requirements</title>
                  <description>&lt;p&gt;
Because yes please
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3025</link>
        <guid isPermaLink="false">http://localhost/ticket/3025</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>amercader</dc:creator>

                  <title>#3026: Support icons on  nav_named_link</title>
                  <description>&lt;p&gt;
nav_named_link won't include the nice icon even when passing the icon keyword param.
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3026</link>
        <guid isPermaLink="false">http://localhost/ticket/3026</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>kindly</dc:creator>

                  <title>#3027: solr for 2.0</title>
                  <description>&lt;p&gt;
change mm
support solr 3 and 4
add *_date field
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3027</link>
        <guid isPermaLink="false">http://localhost/ticket/3027</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>seanh</dc:creator>

                  <title>#3028: Feature: dashboard activity stream filtering</title>
                  <description>&lt;p&gt;
&lt;a class="ext-link" href="https://github.com/okfn/ckanext-pdeu/issues/13"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://github.com/okfn/ckanext-pdeu/issues/13&lt;/a&gt;
&lt;/p&gt;
</description>
        <link>http://localhost/ticket/3028</link>
        <guid isPermaLink="false">http://localhost/ticket/3028</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>dread</dc:creator>

                  <title>#3029: JSONP parameter scuppers Search in API</title>
                  <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>
        <link>http://localhost/ticket/3029</link>
        <guid isPermaLink="false">http://localhost/ticket/3029</guid>
        <category>Report</category>
      </item><item>
                  
        <dc:creator>toby</dc:creator>

                  <title>#3030: clean up helper functions</title>
                  <description></description>
        <link>http://localhost/ticket/3030</link>
        <guid isPermaLink="false">http://localhost/ticket/3030</guid>
        <category>Report</category>
      </item>
  </channel>
</rss>