<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>CKAN: Ticket Query</title>
    <link>http://localhost/query?status=!closed&amp;repo=ckan&amp;order=type</link>
    <description>The open source data portal software</description>
    <language>en-US</language>
    <image>
      <title>CKAN</title>
      <url>http://assets.okfn.org/p/ckan/img/ckan_logo_shortname.png</url>
      <link>http://localhost/query?status=!closed&amp;repo=ckan&amp;order=type</link>
    </image>
    <generator>Trac 0.12.3</generator>
    <item>
        <link>http://localhost/ticket/811</link>
        <guid isPermaLink="false">http://localhost/ticket/811</guid>
        <title>#811: Extra field editing form layout breaks when there are long field names</title>
        <pubDate>Wed, 17 Nov 2010 11:53:32 GMT</pubDate>
        
        <dc:creator>cygri</dc:creator>

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

        <description>&lt;h1 id="Rationale"&gt;Rationale&lt;/h1&gt;
&lt;p&gt;
The package edit form is restricted to three extra fields. To enter more than three fields, one has to save the package and hit edit again (or hit preview).
&lt;/p&gt;
&lt;h1 id="Implementation"&gt;Implementation&lt;/h1&gt;
&lt;p&gt;
A mechanism similar to the one for resources (where you can add lines as you go) would solve this. So, have a button that adds more extra field rows via JS. (Extra fields don't need up/down buttons that the Resource table has)
&lt;/p&gt;
&lt;p&gt;
Nice to have: a blank field is added when you tab from the last filled-in field in the table.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/812#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/895</link>
        <guid isPermaLink="false">http://localhost/ticket/895</guid>
        <title>#895: Add version number (or simular) to css/js includes query string</title>
        <pubDate>Thu, 06 Jan 2011 19:49:42 GMT</pubDate>
        
        <dc:creator>memespring</dc:creator>

        <description>&lt;p&gt;
Updates to css after a new deploy don't come through without a hard refresh. Adding the version number to the include urls will solve this e.g.
&lt;/p&gt;
&lt;p&gt;
mycssfile.css?v=12345678
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/895#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1062</link>
        <guid isPermaLink="false">http://localhost/ticket/1062</guid>
        <title>#1062: Data preview encoding error</title>
        <pubDate>Tue, 29 Mar 2011 10:55:43 GMT</pubDate>
        
        <dc:creator>sebbacon</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1062#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1096</link>
        <guid isPermaLink="false">http://localhost/ticket/1096</guid>
        <title>#1096: [super] CKAN Hosted</title>
        <pubDate>Tue, 19 Apr 2011 17:44:22 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

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

        <description>&lt;p&gt;
When a package has been deleted, say for spam moderation, comments still appear in the recent comments section.
&lt;/p&gt;
&lt;p&gt;
This is a problem because non-admin users will be shown a warning that they're not authorised to view the package if they click on the link.
&lt;/p&gt;
&lt;p&gt;
At CKAN.net currently, this affects the most recent comment.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1182#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1185</link>
        <guid isPermaLink="false">http://localhost/ticket/1185</guid>
        <title>#1185: Administrators can't delete packages from web UI</title>
        <pubDate>Wed, 15 Jun 2011 04:23:38 GMT</pubDate>
        
        <dc:creator>timmcnamara</dc:creator>

        <description>&lt;p&gt;
Administrators have "View", "Edit" and "History" tabs. However, I can't see a way to delete a package from the web UI.
&lt;/p&gt;
&lt;p&gt;
Version: CKAN.net as of today
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/1185#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1288</link>
        <guid isPermaLink="false">http://localhost/ticket/1288</guid>
        <title>#1288: Package edit/creation can't include 'relationships' field</title>
        <pubDate>Wed, 24 Aug 2011 16:34:55 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1288#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1317</link>
        <guid isPermaLink="false">http://localhost/ticket/1317</guid>
        <title>#1317: password reset - improve user search</title>
        <pubDate>Wed, 07 Sep 2011 17:12:19 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1317#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1328</link>
        <guid isPermaLink="false">http://localhost/ticket/1328</guid>
        <title>#1328: Unicode &amp; paster commands</title>
        <pubDate>Mon, 12 Sep 2011 10:25:10 GMT</pubDate>
        
        <dc:creator>minspamboks@…</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1328#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1336</link>
        <guid isPermaLink="false">http://localhost/ticket/1336</guid>
        <title>#1336: License fudge</title>
        <pubDate>Tue, 13 Sep 2011 11:07:37 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1336#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1355</link>
        <guid isPermaLink="false">http://localhost/ticket/1355</guid>
        <title>#1355: Package extras property does not include the newly created ones</title>
        <pubDate>Mon, 26 Sep 2011 10:48:46 GMT</pubDate>
        
        <dc:creator>amercader</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1355#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1366</link>
        <guid isPermaLink="false">http://localhost/ticket/1366</guid>
        <title>#1366: Search inside extra fields</title>
        <pubDate>Thu, 29 Sep 2011 10:09:52 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1366#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1382</link>
        <guid isPermaLink="false">http://localhost/ticket/1382</guid>
        <title>#1382: Deleted resources are present for harvested package</title>
        <pubDate>Tue, 11 Oct 2011 12:58:09 GMT</pubDate>
        
        <dc:creator>thejimmyg</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1382#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1447</link>
        <guid isPermaLink="false">http://localhost/ticket/1447</guid>
        <title>#1447: disk space leakage</title>
        <pubDate>Mon, 07 Nov 2011 11:54:03 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1447#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1457</link>
        <guid isPermaLink="false">http://localhost/ticket/1457</guid>
        <title>#1457: Bug with DataNL instance</title>
        <pubDate>Thu, 10 Nov 2011 11:37:21 GMT</pubDate>
        
        <dc:creator>jilly.mathews</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1457#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1509</link>
        <guid isPermaLink="false">http://localhost/ticket/1509</guid>
        <title>#1509: Mis-dated old revisions of datasets</title>
        <pubDate>Mon, 05 Dec 2011 13:06:38 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1509#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1577</link>
        <guid isPermaLink="false">http://localhost/ticket/1577</guid>
        <title>#1577: Can't upload file with foreign chars in filename</title>
        <pubDate>Mon, 19 Dec 2011 18:00:59 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1577#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1642</link>
        <guid isPermaLink="false">http://localhost/ticket/1642</guid>
        <title>#1642: Extra link generators generate garbled HTML</title>
        <pubDate>Thu, 12 Jan 2012 15:29:31 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1642#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1661</link>
        <guid isPermaLink="false">http://localhost/ticket/1661</guid>
        <title>#1661: Wrong Routes version installed by CKAN package</title>
        <pubDate>Mon, 16 Jan 2012 12:47:41 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1661#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/1668</link>
        <guid isPermaLink="false">http://localhost/ticket/1668</guid>
        <title>#1668: repoze version discrepency</title>
        <pubDate>Tue, 17 Jan 2012 12:02:26 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/1668#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2197</link>
        <guid isPermaLink="false">http://localhost/ticket/2197</guid>
        <title>#2197: Storage Metadata API: add/update not working with local file storage (Pairtree)</title>
        <pubDate>Tue, 28 Feb 2012 09:29:37 GMT</pubDate>
        
        <dc:creator>zydio</dc:creator>

        <description>&lt;p&gt;
If OFS is configured with Pairtree to use a local file storage, all POST requests to add/update metadata ( /api/storage/metadata/{label} ) will fail.
&lt;/p&gt;
&lt;p&gt;
This is due to the use of &lt;a class="ext-link" href="https://github.com/okfn/ofs/blob/master/ofs/remote/botostore.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;BotoOFS&lt;/a&gt; specific &lt;em&gt;private&lt;/em&gt; methods in &lt;a class="ext-link" href="https://github.com/okfn/ckan/blob/master/ckan/controllers/storage.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;StorageAPIController.set_metadata()&lt;/a&gt;, eg: self.ofs.&lt;strong&gt;_require_bucket&lt;/strong&gt;(bucket), self.ofs.&lt;strong&gt;_get_key&lt;/strong&gt;(b, label), self.ofs.&lt;strong&gt;_update_key_metadata&lt;/strong&gt;(k, metadata) ... those methods can't be found in &lt;a class="ext-link" href="https://github.com/okfn/ofs/blob/master/ofs/local/pairtreestore.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;POTFS&lt;/a&gt; and this causes errors.
The API should use only &lt;a class="ext-link" href="https://github.com/okfn/ofs/blob/master/ofs/base.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;OFSInterface&lt;/a&gt; methods, or should conditionally make calls based off the actual type of &lt;em&gt;self.ofs&lt;/em&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;PS: I did set "ckan" as "Component" in the ticket because storage has been integrated back into the core in CKAN 1.6&lt;/em&gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2197#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2294</link>
        <guid isPermaLink="false">http://localhost/ticket/2294</guid>
        <title>#2294: Unauthorized action on Data API gets 302 rather than 401 or similar</title>
        <pubDate>Sat, 14 Apr 2012 19:35:04 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2294#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2331</link>
        <guid isPermaLink="false">http://localhost/ticket/2331</guid>
        <title>#2331: Search should AND terms not OR terms</title>
        <pubDate>Sat, 28 Apr 2012 18:24:45 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2331#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2335</link>
        <guid isPermaLink="false">http://localhost/ticket/2335</guid>
        <title>#2335: Unicode characters don't work in CKAN ini files</title>
        <pubDate>Mon, 30 Apr 2012 12:42:06 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
You get a &lt;a class="missing wiki"&gt;UnicodeDecodeError?&lt;/a&gt;, looks like it tries to decode the ini file as ascii. This is a problem because someone might try to set their site description to something with an umlaut in it, for example.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2335#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2395</link>
        <guid isPermaLink="false">http://localhost/ticket/2395</guid>
        <title>#2395: paster db clean/init don't work when spatial extension enabled</title>
        <pubDate>Wed, 16 May 2012 09:16:33 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2395#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2405</link>
        <guid isPermaLink="false">http://localhost/ticket/2405</guid>
        <title>#2405: Improvements to data viewer embed</title>
        <pubDate>Mon, 21 May 2012 06:59:25 GMT</pubDate>
        
        <dc:creator>rgrp</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2405#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2406</link>
        <guid isPermaLink="false">http://localhost/ticket/2406</guid>
        <title>#2406: Errors in source install doc</title>
        <pubDate>Mon, 21 May 2012 10:11:33 GMT</pubDate>
        
        <dc:creator>markw</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2406#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2412</link>
        <guid isPermaLink="false">http://localhost/ticket/2412</guid>
        <title>#2412: More than one resource invalidatiing breaks dataset edit form</title>
        <pubDate>Tue, 22 May 2012 20:05:48 GMT</pubDate>
        
        <dc:creator>icmurray</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2412#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2415</link>
        <guid isPermaLink="false">http://localhost/ticket/2415</guid>
        <title>#2415: Confusing message on attempting to register new account with upper case</title>
        <pubDate>Wed, 23 May 2012 13:19:49 GMT</pubDate>
        
        <dc:creator>markw</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2415#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2433</link>
        <guid isPermaLink="false">http://localhost/ticket/2433</guid>
        <title>#2433: API uses name not id for some version 3 calls</title>
        <pubDate>Fri, 25 May 2012 14:54:08 GMT</pubDate>
        
        <dc:creator>toby</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2433#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2485</link>
        <guid isPermaLink="false">http://localhost/ticket/2485</guid>
        <title>#2485: Encourage leak containment by limiting the number of requests a CKAN process serves</title>
        <pubDate>Fri, 01 Jun 2012 11:47:09 GMT</pubDate>
        
        <dc:creator>nils.toedtmann</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2485#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2486</link>
        <guid isPermaLink="false">http://localhost/ticket/2486</guid>
        <title>#2486: Should be able to use . in dataset names</title>
        <pubDate>Sat, 02 Jun 2012 16:46:23 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/2486#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2520</link>
        <guid isPermaLink="false">http://localhost/ticket/2520</guid>
        <title>#2520: Document undocumented config options</title>
        <pubDate>Wed, 13 Jun 2012 11:52:48 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

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

        <description>&lt;p&gt;
if the user tries to upload a file they will get "Failed to get credentials for storage upload. Upload cannot proceed"
&lt;/p&gt;
&lt;p&gt;
Maybe add a test for it this time, this bug has appeared and reappeared before
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2607#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2622</link>
        <guid isPermaLink="false">http://localhost/ticket/2622</guid>
        <title>#2622: Login fails in Opera 12</title>
        <pubDate>Thu, 28 Jun 2012 16:56:42 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2622#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2656</link>
        <guid isPermaLink="false">http://localhost/ticket/2656</guid>
        <title>#2656: Feed with few results has bad paging link, causing exception</title>
        <pubDate>Wed, 11 Jul 2012 10:05:12 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2656#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2674</link>
        <guid isPermaLink="false">http://localhost/ticket/2674</guid>
        <title>#2674: Data preview not loading on s031</title>
        <pubDate>Mon, 16 Jul 2012 10:38:22 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2674#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2686</link>
        <guid isPermaLink="false">http://localhost/ticket/2686</guid>
        <title>#2686: enabling datastore &amp; data API breaks recline</title>
        <pubDate>Tue, 17 Jul 2012 09:06:51 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2686#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2719</link>
        <guid isPermaLink="false">http://localhost/ticket/2719</guid>
        <title>#2719: Feeds controller does not catch NotAuthorized exception</title>
        <pubDate>Sat, 21 Jul 2012 12:14:23 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2719#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2721</link>
        <guid isPermaLink="false">http://localhost/ticket/2721</guid>
        <title>#2721: deleted groups should not show on 'Add to Groups' dropdown</title>
        <pubDate>Sun, 22 Jul 2012 09:17:12 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2721#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2728</link>
        <guid isPermaLink="false">http://localhost/ticket/2728</guid>
        <title>#2728: deleted group shows on search index - for admins</title>
        <pubDate>Sun, 22 Jul 2012 09:53:04 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2728#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2745</link>
        <guid isPermaLink="false">http://localhost/ticket/2745</guid>
        <title>#2745: Password reset returns an exception if the key parameter is missing</title>
        <pubDate>Tue, 24 Jul 2012 16:05:31 GMT</pubDate>
        
        <dc:creator>amercader</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2745#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2762</link>
        <guid isPermaLink="false">http://localhost/ticket/2762</guid>
        <title>#2762: test_related.py crashes</title>
        <pubDate>Thu, 26 Jul 2012 11:55:53 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2762#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2763</link>
        <guid isPermaLink="false">http://localhost/ticket/2763</guid>
        <title>#2763: Multilingual tests failing</title>
        <pubDate>Thu, 26 Jul 2012 11:56:59 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2763#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2784</link>
        <guid isPermaLink="false">http://localhost/ticket/2784</guid>
        <title>#2784: model dictize sensitive data</title>
        <pubDate>Wed, 01 Aug 2012 09:51:25 GMT</pubDate>
        
        <dc:creator>icmurray</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2784#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2815</link>
        <guid isPermaLink="false">http://localhost/ticket/2815</guid>
        <title>#2815: db_to_form_package_schema() strips tracking summary, isopen</title>
        <pubDate>Wed, 08 Aug 2012 16:47:07 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2815#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2818</link>
        <guid isPermaLink="false">http://localhost/ticket/2818</guid>
        <title>#2818: Improve related item schema</title>
        <pubDate>Thu, 09 Aug 2012 09:22:56 GMT</pubDate>
        
        <dc:creator>danieljohnlewis</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2818#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2820</link>
        <guid isPermaLink="false">http://localhost/ticket/2820</guid>
        <title>#2820: English Language: Visualization -&gt; Visualisation</title>
        <pubDate>Thu, 09 Aug 2012 09:27:35 GMT</pubDate>
        
        <dc:creator>danieljohnlewis</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2820#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2846</link>
        <guid isPermaLink="false">http://localhost/ticket/2846</guid>
        <title>#2846: Organizations allows you to set an organization as the parent organization of itself</title>
        <pubDate>Mon, 13 Aug 2012 12:22:16 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
that doesn't make any sense
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2846#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2857</link>
        <guid isPermaLink="false">http://localhost/ticket/2857</guid>
        <title>#2857: no UI to follow another user although option on dashboard</title>
        <pubDate>Wed, 15 Aug 2012 16:59:43 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2857#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2859</link>
        <guid isPermaLink="false">http://localhost/ticket/2859</guid>
        <title>#2859: Fix the build</title>
        <pubDate>Thu, 16 Aug 2012 09:26:57 GMT</pubDate>
        
        <dc:creator>icmurray</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2859#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2863</link>
        <guid isPermaLink="false">http://localhost/ticket/2863</guid>
        <title>#2863: non-admin users can edit other's draft datasets</title>
        <pubDate>Thu, 16 Aug 2012 10:54:39 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2863#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2869</link>
        <guid isPermaLink="false">http://localhost/ticket/2869</guid>
        <title>#2869: user profile not linked on disqus until page refresh</title>
        <pubDate>Thu, 16 Aug 2012 10:58:34 GMT</pubDate>
        
        <dc:creator>shevski</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2869#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2881</link>
        <guid isPermaLink="false">http://localhost/ticket/2881</guid>
        <title>#2881: Remove or improve 'Domain Model' docs page</title>
        <pubDate>Tue, 21 Aug 2012 09:05:17 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2881#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2882</link>
        <guid isPermaLink="false">http://localhost/ticket/2882</guid>
        <title>#2882: Remove User Stories Overview from docs?</title>
        <pubDate>Tue, 21 Aug 2012 09:18:43 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2882#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2884</link>
        <guid isPermaLink="false">http://localhost/ticket/2884</guid>
        <title>#2884: Lock icon shown next to unknown licenses</title>
        <pubDate>Tue, 21 Aug 2012 16:01:13 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2884#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2887</link>
        <guid isPermaLink="false">http://localhost/ticket/2887</guid>
        <title>#2887: "Welcome to CKAN!" on front page is untranslatable</title>
        <pubDate>Wed, 22 Aug 2012 09:17:59 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2887#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2891</link>
        <guid isPermaLink="false">http://localhost/ticket/2891</guid>
        <title>#2891: Update or remove DataStore google presentation</title>
        <pubDate>Tue, 28 Aug 2012 10:23:43 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2891#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2892</link>
        <guid isPermaLink="false">http://localhost/ticket/2892</guid>
        <title>#2892: IDatasetForm's form_to_db_schema() breaks API?</title>
        <pubDate>Tue, 28 Aug 2012 11:42:05 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2892#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2893</link>
        <guid isPermaLink="false">http://localhost/ticket/2893</guid>
        <title>#2893: Tags missing from form_to_db_package_schema()</title>
        <pubDate>Tue, 28 Aug 2012 12:11:04 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2893#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2894</link>
        <guid isPermaLink="false">http://localhost/ticket/2894</guid>
        <title>#2894: Empty lists get stripped from package dicst in package_show()</title>
        <pubDate>Tue, 28 Aug 2012 12:40:34 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2894#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2896</link>
        <guid isPermaLink="false">http://localhost/ticket/2896</guid>
        <title>#2896: resource_create crashes on ValidationErrors with KeyError: 'resources'</title>
        <pubDate>Wed, 29 Aug 2012 16:29:14 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2896#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2897</link>
        <guid isPermaLink="false">http://localhost/ticket/2897</guid>
        <title>#2897: db_to_form_package_schema() crashes historical dataset page</title>
        <pubDate>Thu, 30 Aug 2012 12:41:35 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2897#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2898</link>
        <guid isPermaLink="false">http://localhost/ticket/2898</guid>
        <title>#2898: Looses data entered on step 1 of create dataset after login</title>
        <pubDate>Thu, 30 Aug 2012 13:08:14 GMT</pubDate>
        
        <dc:creator>johnmartin</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2898#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2900</link>
        <guid isPermaLink="false">http://localhost/ticket/2900</guid>
        <title>#2900: snippets/package_list.html template crashes on dataset that has no 'notes'</title>
        <pubDate>Thu, 30 Aug 2012 14:00:07 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2900#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2906</link>
        <guid isPermaLink="false">http://localhost/ticket/2906</guid>
        <title>#2906: Wrong flags in language dropdown</title>
        <pubDate>Wed, 05 Sep 2012 16:05:44 GMT</pubDate>
        
        <dc:creator>dominik</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2906#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2912</link>
        <guid isPermaLink="false">http://localhost/ticket/2912</guid>
        <title>#2912: ckanext/organizations: Neither public or private initially selected when adding dataset</title>
        <pubDate>Mon, 10 Sep 2012 09:57:56 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2912#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2913</link>
        <guid isPermaLink="false">http://localhost/ticket/2913</guid>
        <title>#2913: IGroupForm has package_form() method</title>
        <pubDate>Tue, 11 Sep 2012 14:45:39 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
Should be group_form() I think
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2913#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2914</link>
        <guid isPermaLink="false">http://localhost/ticket/2914</guid>
        <title>#2914: Add form_to_db_schema_options() to IDatasetForm and IGroupForm</title>
        <pubDate>Wed, 12 Sep 2012 10:29:55 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2914#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2919</link>
        <guid isPermaLink="false">http://localhost/ticket/2919</guid>
        <title>#2919: Remove IController from docs</title>
        <pubDate>Wed, 12 Sep 2012 14:47:33 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
Still in docs but seems gone from code
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2919#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2920</link>
        <guid isPermaLink="false">http://localhost/ticket/2920</guid>
        <title>#2920: Genshi text template message extractor no longer needed?</title>
        <pubDate>Thu, 13 Sep 2012 09:57:29 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2920#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2921</link>
        <guid isPermaLink="false">http://localhost/ticket/2921</guid>
        <title>#2921: Add docstring to top of lib/extract.py file</title>
        <pubDate>Thu, 13 Sep 2012 10:00:07 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2921#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2922</link>
        <guid isPermaLink="false">http://localhost/ticket/2922</guid>
        <title>#2922: Better docstring for CKANInternationalizationExtension</title>
        <pubDate>Thu, 13 Sep 2012 10:01:47 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2922#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2923</link>
        <guid isPermaLink="false">http://localhost/ticket/2923</guid>
        <title>#2923: Change regularise -&gt; regularize</title>
        <pubDate>Thu, 13 Sep 2012 10:03:02 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
The function is called regularise_html(), can't remember what file it's in.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2923#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2924</link>
        <guid isPermaLink="false">http://localhost/ticket/2924</guid>
        <title>#2924: Better docs for trans js command, and add to release process</title>
        <pubDate>Thu, 13 Sep 2012 10:04:31 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2924#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2925</link>
        <guid isPermaLink="false">http://localhost/ticket/2925</guid>
        <title>#2925: Remove trans mangle paster command?</title>
        <pubDate>Thu, 13 Sep 2012 10:06:08 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2925#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2936</link>
        <guid isPermaLink="false">http://localhost/ticket/2936</guid>
        <title>#2936: Updating a group via the API clears its packages</title>
        <pubDate>Wed, 19 Sep 2012 09:47:46 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2936#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2949</link>
        <guid isPermaLink="false">http://localhost/ticket/2949</guid>
        <title>#2949: Reenable Data API button on the new theme</title>
        <pubDate>Mon, 01 Oct 2012 16:04:24 GMT</pubDate>
        
        <dc:creator>amercader</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2949#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2958</link>
        <guid isPermaLink="false">http://localhost/ticket/2958</guid>
        <title>#2958: Uploading files with unicode characters in filename fails in CKAN 1.7 and 1.8</title>
        <pubDate>Thu, 04 Oct 2012 09:29:36 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2958#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2959</link>
        <guid isPermaLink="false">http://localhost/ticket/2959</guid>
        <title>#2959: Changing a Group's name through the action api disassociates it from its datasets in the index</title>
        <pubDate>Thu, 04 Oct 2012 15:18:55 GMT</pubDate>
        
        <dc:creator>icmurray</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2959#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2963</link>
        <guid isPermaLink="false">http://localhost/ticket/2963</guid>
        <title>#2963: Timeout on tag pages with lots of datasets</title>
        <pubDate>Mon, 15 Oct 2012 10:13:19 GMT</pubDate>
        
        <dc:creator>amercader</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2963#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2964</link>
        <guid isPermaLink="false">http://localhost/ticket/2964</guid>
        <title>#2964: Last organization admin can remove herself</title>
        <pubDate>Mon, 15 Oct 2012 10:14:18 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2964#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2965</link>
        <guid isPermaLink="false">http://localhost/ticket/2965</guid>
        <title>#2965: Stats extension broken on 1.8</title>
        <pubDate>Mon, 15 Oct 2012 10:15:41 GMT</pubDate>
        
        <dc:creator>amercader</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2965#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2967</link>
        <guid isPermaLink="false">http://localhost/ticket/2967</guid>
        <title>#2967: Organization members edit page reloads after demoting self</title>
        <pubDate>Mon, 15 Oct 2012 10:17:07 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2967#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2968</link>
        <guid isPermaLink="false">http://localhost/ticket/2968</guid>
        <title>#2968: Anyone can access organization members page</title>
        <pubDate>Mon, 15 Oct 2012 10:19:15 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2968#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2969</link>
        <guid isPermaLink="false">http://localhost/ticket/2969</guid>
        <title>#2969: Group members page 500s</title>
        <pubDate>Mon, 15 Oct 2012 10:20:54 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/2969#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2970</link>
        <guid isPermaLink="false">http://localhost/ticket/2970</guid>
        <title>#2970: Organization and group member links use id not name</title>
        <pubDate>Mon, 15 Oct 2012 10:22:11 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
e.g. it the 'Members' button links to /organization/members/0a44... instead of /organization/members/foobar
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/2970#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/2993</link>
        <guid isPermaLink="false">http://localhost/ticket/2993</guid>
        <title>#2993: "logged_in" and "visitor" show in user list at /users</title>
        <pubDate>Wed, 17 Oct 2012 09:42:02 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/2993#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/3001</link>
        <guid isPermaLink="false">http://localhost/ticket/3001</guid>
        <title>#3001: Multilingual plugin crashes CKAN on add dataset when some languages are default</title>
        <pubDate>Thu, 18 Oct 2012 16:50:48 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/3001#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/3002</link>
        <guid isPermaLink="false">http://localhost/ticket/3002</guid>
        <title>#3002: API v1/2 'legacy' search parameters must be escaped before they are put into a Solr query string</title>
        <pubDate>Fri, 19 Oct 2012 09:32:22 GMT</pubDate>
        
        <dc:creator>amercader</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/3002#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/3013</link>
        <guid isPermaLink="false">http://localhost/ticket/3013</guid>
        <title>#3013: common-error-messages is unreadable</title>
        <pubDate>Sat, 10 Nov 2012 13:18:25 GMT</pubDate>
        
        <dc:creator>dominik</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/3013#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/3014</link>
        <guid isPermaLink="false">http://localhost/ticket/3014</guid>
        <title>#3014: Crash when deleting a non-empty vocabulary</title>
        <pubDate>Tue, 13 Nov 2012 10:50:08 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/3014#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/3019</link>
        <guid isPermaLink="false">http://localhost/ticket/3019</guid>
        <title>#3019: Cannot delete dataset extras</title>
        <pubDate>Wed, 14 Nov 2012 18:44:38 GMT</pubDate>
        
        <dc:creator>seanh</dc:creator>

        <description>&lt;p&gt;
Deleting extras in the web interface is broken
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/3019#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/3029</link>
        <guid isPermaLink="false">http://localhost/ticket/3029</guid>
        <title>#3029: JSONP parameter scuppers Search in API</title>
        <pubDate>Tue, 11 Dec 2012 15:00:35 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

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

        <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>
        <category>Results</category>
        <comments>http://localhost/ticket/84#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/143</link>
        <guid isPermaLink="false">http://localhost/ticket/143</guid>
        <title>#143: Most active users listed on homepage</title>
        <pubDate>Thu, 08 Oct 2009 13:59:33 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Display league of users' recent activity on homepage.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/143#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/235</link>
        <guid isPermaLink="false">http://localhost/ticket/235</guid>
        <title>#235: Resource format normalization and detection</title>
        <pubDate>Mon, 18 Jan 2010 15:13:24 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

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

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

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