Integrating Fundref via Fundref Widget

Andy Byers
2 min readSep 8, 2016

At Ubiquity Press our new Junior Developer, Stuart Jennings is working to integrate Fundref with our submission platform, allowing authors to submit their Funding info so it can be published and deposited with Crossref.

We were informed of the Fundref Widget (info, github), which we used as the basis of our integration, with a slight modifications so that we can get hold of the Funder ID as well as their official name (required for deposit) and to bind the funder names to the award numbers.

This all went fine until Stuart started noticing blank entries in our POST dictionary:

<QueryDict: {u'abstract': [u''], u'title': [u'd'], u'csrfmiddlewaretoken': [u'iO4X7u8TAS6Ew6sTGu9mAEOr1QyH7d47'], u'has-funding': [u'True'], u'has-competing': [u'False'], u'funder-name-2': [u'Cambridge University Hospitals'], u'funder-name-3': [u'Fake Uni'], u'funder-name-0': [u''], u'funder-name-1': [u'Oxford University Hospitals NHS Trust'], u'section_id': [u'5'], u'funder-name-4': [u''], u'funder-name-5': [u''], u'award-number-3': [u'', u''], u'award-number-4': [u'', u''], u'award-number-5': [u'', u'1213'], u'award-number-2': [u'', u'Cam1', u'Cam2', u''], u'award-number-0': [u''], u'award-number-1': [u'', u'Ox1', u'Ox2', u'Ox3']}>

After some post-processing

award_numbers = {k: v for k, v in award_number_dict.iteritems() if v and k.startswith('award-number-')}

we’re left with the much nicer looking:

{
u'award-number-0': [u''],
u'award-number-1': [u'', u'Ox1', u'Ox2', u'Ox3'],
u'award-number-2': [u'', u'Cam1', u'Cam2', u''],
u'award-number-3': [u'', u''],
u'award-number-4': [u'', u''],
u'award-number-5': [u'', u'1213']
}

In order to filter out these blanks in the list we simply need to filter them out, python has a neat little function called filter that does exactly this:

award_numbers = {k: filter(None, v) for k, v in award_number_dict.iteritems() if v and k.startswith('award-number-')}

Voila:

{
u'award-number-0': [],
u'award-number-1': [u'Ox1', u'Ox2', u'Ox3'],
u'award-number-2': [u'Cam1', u'Cam2'],
u'award-number-3': [],
u'award-number-4': [],
u'award-number-5': [u'1213']
}

After some investigation, it appears that the Fundref widget creates a set of invisible fields and clones these whenever it is asked to add a new row to the block.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Andy Byers
Andy Byers

Written by Andy Byers

Pub Tech developer for Birkbeck CTP

No responses yet

Write a response