Steven De Costa
steven.decosta at linkdigital.com.au
Tue Feb 23 01:25:29 UTC 2016
Thanks for taking the time to share your story with CKAN Alex :)
Sounds like you've been busy!
*STEVEN DE COSTA *|
On 23 February 2016 at 07:38, Alex Palcuie <alex.palcuie at gmail.com> wrote:
> My name is Alex Palcuie and I have been maintaining the open data
> portal from Romania since April last year. I like to share wth
> you an extension that I have been building in the last months and how
> developing on CKAN felt for me.
> One of the use cases that appeared after a law was adopted in my
> country was that every governmental institution has to publish its
> inventory of datasets. This means every organization (and we have over
> 8k) has to identify a list of its possible datasets and publish it on
> My background experience with Python has been doing backend work for a
> startup with Django for about 6 months, before moving to do frontend.
> I've also done some Rails work.
> An advice would be to make the default docs page for CKAN to be the
> last production version (as it is on Django) and not the latest
> branch. This I remember was a little confusing at first.
> The first task I wanted to do was to add a unique ID to each
> organization and make new users that are registering in CKAN, to put
> this unique ID and have them be confirmed in a panel by an admin.
> After they are confirmed, a reset password email has to be sent to the
> user and he will be automatically added to the organization.
> After I made a list of the best CKAN extensions, I found out that a
> pattern is to copy paste the original code and slightly modify it.
> It didn't feel good to me, and I realized afterward that hooks (or
> signals in Django's terms) for the user controller were missing. When
> I'll start refactoring that part, I'll commit upstream the
> was well documented and it worked seamlessly.
> The next flow I implemented was that before users can add a new
> dataset, they must add an inventory entry for it and a recurring
> interval. For example, an organization could have the inventory
> entry Budget with a recurring interval of 365 days. Now, their
> datasets will be Budget 2015, Budget 2016 and so on, and specifying
> that recurring interval means that we can monitor them to see if they
> have updated the dataset in the time they have assumed and ping them
> with automatic emails if they haven't.
> Fiddling with making a migration was a real pain, but the new
> IMigration interface looks promising.
> One thing that I did not manage was to use the IGroupForm and
> IDatasetForm interfaces in one single extension. I had to make a
> hack with 2 classes, because some methods, like `is_fallback`,
> overlapped and the plugin setup would now know which method to use.
> However, I think it's mostly my fault because I've developed the
> extension as a big monolith, without thinking too much on planning. My
> plan is after I release this into production this month, to split up
> the small features I can into smaller extensions, write tests for them
> and release them on PIP, with a follow-up email on this list.
> All in all, I had lots of fun developing this extension that I think
> will become useful for us. I want to thank you all for making CKAN a
> nice platform to work on and making a great community.
> : http://data.gov.ro
> : https://github.com/govro
> : http://docs.ckan.org
> : https://docs.djangoproject.com/en/1.9/
> : https://github.com/ckan/ckan/search?q=table&type=Issues&utf8=✓
> : https://i.imgur.com/j2GKMbq.png
> : https://i.imgur.com/sSce4Nm.png
> : https://i.imgur.com/34NAd9B.png
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ckan-dev