mysociety / yournextrepresentative

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

Move site settings into database and provide UI #951

Closed struan closed 8 years ago

struan commented 8 years ago

Move most of the settings for setting up a site into the database and provide an interface to edit them as part of the plan to make site setup easier.

Does not handle country, language or timezone because of loading complexities.

Also does not handle AREAS_TO_ALWAYS_RETURN as this is a bit more complicated than a simple setting.

Uses django-usersettings2 as a basis.

Fixes #943 Also partially handles #944 in that there is an interface for the basic settings.

mhl commented 8 years ago

There's a typo in the commit message of 46dc863dc9e4669fa19 - "Users" should be "Uses"

mhl commented 8 years ago

Nice work! I've left a few very minor comments, but :+1: generally.

The concern I mentioned in IRC probably doesn't matter much, but to explain further: django-usersettings2 ties into the sites framework, so you can have different settings for each site. (I think we discussed this and thought it would be a Good Thing.) In the future, however, if we implement hosting multiple YNR instances as different subdomains, with a single database, we'd probably do that with django-subdomain-instances, like SayIt - in that case you would want the settings to be associated with an instance rather than a site. I think we can deal with that issue when we come to it, though; we could fork django-usersettings2 and associate its settings with an instance, or add optional creation of a site per instance in django-subdomain-instances. (Or we might use a completely different strategy for allowing easier instance creation - e.g. using a PaaS like Heroku.)

mhl commented 8 years ago

Oh, and there's a test failure still.