DemocracyClub / yournextrepresentative

đŸ‘„ A website for crowd-sourcing structured election candidate data
https://candidates.democracyclub.org.uk
GNU Affero General Public License v3.0
21 stars 27 forks source link

Ability to add any number of links to a person's page #198

Open symroe opened 7 years ago

symroe commented 7 years ago

It would be nice to have the ability to add n links to a person's profile.

This is because there is a low chance of us being able to predict the URLs that might be interesting to others about a person.

For example, this article is a great profile of a candidate, but there's no obvious place to link to it:

https://www.theguardian.com/politics/shortcuts/2017/mar/13/mayor-northern-powerhouse-womens-equality-party-tabitha-morton-liverpool

symroe commented 7 years ago

A hack for this would be to add a new multi-line field that allows a URL per line. It's not ideal, but it would allow for recording the information on people.

JoeMitchell commented 7 years ago

Niiice — this ties into my dream version of candidates*, which is that a person's page has any number of lines for dumping URLs into — by wombles (or in future, the Google-scraper/machine-learning thing) — and then the machines auto-sort them into 'Social, News, Bio, Homepage' etc, with womble help if not understood, in order to give some kind of structure...

I suppose this might just end up replicating Google...

*Not just mine; I think this has been discussed online somewhere, but not sure if there's an issue for it...

chris48s commented 7 years ago

I think there are probably a couple of intermediate steps between "add ability to store an array of N arbitrary URLs against a candidate" and "robots automatically discover and categorise candidate data" :robot:

JoeMitchell commented 7 years ago

Yeah, but that's what @tfgg is for

On 10 May 2017 at 17:04, chris48s notifications@github.com wrote:

I think there are probably a couple of intermediate steps between "add ability to store an array of N arbitrary URLs against a candidate" and "robots automatically discover and categorise candidate data" đŸ€–

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DemocracyClub/yournextrepresentative/issues/198#issuecomment-300530910, or mute the thread https://github.com/notifications/unsubscribe-auth/AHuKMSiEfG0rWgX1WroGgUUgPmLjCX-fks5r4eABgaJpZM4NWzEb .

symroe commented 5 years ago

Here's some more detail about what we're currently doing:

We currently store the following information for people. This information is stored on a mixture of the Person model or GenericForeignKeys to popolo.Link, popolo.Identifier, popolo.ContactDetail. All of these allow any value as a note, but in reality we only use a fixed list.

Fields in popolo.Link:

Fields in popolo.ContactDetail:

Fields in popolo.Identifier:

Fields on Person directly:

What to do next?

Statements I think are true:

Data model:

I suggest we have a PersonLinks model with the following:

Trying to define a ‘link’ as different to a ‘contact detail’ seems odd, when Twitter or Facebook are clearly both. Email is a special case that should be on the person model (ignoring the debate about what data to store on candidacies).

Consumers of the data (including WCIVF) can decide how best to display the data.

Our CRM does something that looks like this:

screenshot 2018-10-03 19 24 11

Are there any other nice patterns we should look at?

symroe commented 5 years ago

Work here will also include something that addresses https://github.com/DemocracyClub/yournextrepresentative/issues/238

symroe commented 5 years ago

Some notes on how this might happen, in a rough order:

I see the top 3 as different but required prep work. I think I'll start there, and add more to this comment as I work through them and find more things.

chris48s commented 5 years ago

a few TODOs on the data entry side: