From 92a669ffaffc4427a7a6337e625d83c4225c9546 Mon Sep 17 00:00:00 2001 From: Adam Kelly Date: Mon, 1 Jun 2020 19:54:08 +0100 Subject: [PATCH] Add instance settings. Addresses: #58 Currently implemented: * Instance name * Instance description * Code of conduct * Allow registration I decided to store this in the database so that settings can be easily changed at runtime through the web interface. (This web interface does not exist.) --- fedireads/models/__init__.py | 1 + fedireads/models/site.py | 19 +++++++++++++++++++ fedireads/templates/about.html | 21 +++++++++++++++++++++ fedireads/templates/login.html | 22 +++++++++++++++++++++- fedireads/urls.py | 1 + fedireads/views.py | 9 +++++++++ 6 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 fedireads/models/site.py create mode 100644 fedireads/templates/about.html diff --git a/fedireads/models/__init__.py b/fedireads/models/__init__.py index 52cedf624..deb54867e 100644 --- a/fedireads/models/__init__.py +++ b/fedireads/models/__init__.py @@ -6,3 +6,4 @@ from .status import Favorite, Boost, Tag, Notification, ReadThrough from .user import User, UserFollows, UserFollowRequest, UserBlocks from .user import FederatedServer from .import_job import ImportJob, ImportItem +from .site import SiteSettings diff --git a/fedireads/models/site.py b/fedireads/models/site.py new file mode 100644 index 000000000..8068e4a13 --- /dev/null +++ b/fedireads/models/site.py @@ -0,0 +1,19 @@ +from django.db import models +from fedireads.settings import DOMAIN + +class SiteSettings(models.Model): + name = models.CharField(default=DOMAIN, max_length=100) + instance_description = models.TextField( + default="This instance has no description.") + code_of_conduct = models.TextField( + default="Add a code of conduct here.") + allow_registration = models.BooleanField(default=True) + + @classmethod + def get(cls): + try: + return cls.objects.get(id=1) + except cls.DoesNotExist: + default_settings = SiteSettings(id=1) + default_settings.save() + return default_settings diff --git a/fedireads/templates/about.html b/fedireads/templates/about.html new file mode 100644 index 000000000..58cc385d4 --- /dev/null +++ b/fedireads/templates/about.html @@ -0,0 +1,21 @@ +{% extends 'layout.html' %} +{% block content %} +
+

About {{ site_settings.name }}

+

+ {{ site_settings.instance_description }} +

+ +

+ + Login or Create an Account + +

+ +

Code of Conduct

+

+ {{ site_settings.code_of_conduct }} +

+ +
+{% endblock %} diff --git a/fedireads/templates/login.html b/fedireads/templates/login.html index d811815ce..ce6e75ce7 100644 --- a/fedireads/templates/login.html +++ b/fedireads/templates/login.html @@ -1,7 +1,20 @@ {% extends 'layout.html' %} {% block content %} -
+
+

About {{ site_settings.name }}

+

+ {{ site_settings.instance_description }} +

+ +

+ + More about this site + +

+
+ +