Free text field for the site footer

This commit is contained in:
Mouse Reeve 2021-04-30 10:42:27 -07:00
parent b4c155f134
commit e15d6654e3
5 changed files with 50 additions and 6 deletions

View file

@ -1,4 +1,5 @@
from django.core.management.base import BaseCommand, CommandError """ What you need in the database to make it work """
from django.core.management.base import BaseCommand
from django.contrib.auth.models import Group, Permission from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
@ -7,12 +8,14 @@ from bookwyrm.settings import DOMAIN
def init_groups(): def init_groups():
"""permission levels"""
groups = ["admin", "moderator", "editor"] groups = ["admin", "moderator", "editor"]
for group in groups: for group in groups:
Group.objects.create(name=group) Group.objects.create(name=group)
def init_permissions(): def init_permissions():
""" permissin types """
permissions = [ permissions = [
{ {
"codename": "edit_instance_settings", "codename": "edit_instance_settings",
@ -69,6 +72,7 @@ def init_permissions():
def init_connectors(): def init_connectors():
"""access book data sources"""
Connector.objects.create( Connector.objects.create(
identifier=DOMAIN, identifier=DOMAIN,
name="Local", name="Local",
@ -130,7 +134,11 @@ def init_federated_servers():
def init_settings(): def init_settings():
SiteSettings.objects.create() """ info about the instance """
SiteSettings.objects.create(
support_link="https://www.patreon.com/bookwyrm",
support_title="Patreon",
)
class Command(BaseCommand): class Command(BaseCommand):

View file

@ -0,0 +1,18 @@
# Generated by Django 3.2 on 2021-04-30 17:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("bookwyrm", "0072_remove_work_default_edition"),
]
operations = [
migrations.AddField(
model_name="sitesettings",
name="footer_item",
field=models.TextField(blank=True, null=True),
),
]

View file

@ -19,19 +19,28 @@ class SiteSettings(models.Model):
max_length=150, default="Social Reading and Reviewing" max_length=150, default="Social Reading and Reviewing"
) )
instance_description = models.TextField(default="This instance has no description.") instance_description = models.TextField(default="This instance has no description.")
# about page
registration_closed_text = models.TextField( registration_closed_text = models.TextField(
default="Contact an administrator to get an invite" default="Contact an administrator to get an invite"
) )
code_of_conduct = models.TextField(default="Add a code of conduct here.") code_of_conduct = models.TextField(default="Add a code of conduct here.")
privacy_policy = models.TextField(default="Add a privacy policy here.") privacy_policy = models.TextField(default="Add a privacy policy here.")
# registration
allow_registration = models.BooleanField(default=True) allow_registration = models.BooleanField(default=True)
allow_invite_requests = models.BooleanField(default=True) allow_invite_requests = models.BooleanField(default=True)
# images
logo = models.ImageField(upload_to="logos/", null=True, blank=True) logo = models.ImageField(upload_to="logos/", null=True, blank=True)
logo_small = models.ImageField(upload_to="logos/", null=True, blank=True) logo_small = models.ImageField(upload_to="logos/", null=True, blank=True)
favicon = models.ImageField(upload_to="logos/", null=True, blank=True) favicon = models.ImageField(upload_to="logos/", null=True, blank=True)
# footer
support_link = models.CharField(max_length=255, null=True, blank=True) support_link = models.CharField(max_length=255, null=True, blank=True)
support_title = models.CharField(max_length=100, null=True, blank=True) support_title = models.CharField(max_length=100, null=True, blank=True)
admin_email = models.EmailField(max_length=255, null=True, blank=True) admin_email = models.EmailField(max_length=255, null=True, blank=True)
footer_item = models.TextField(null=True, blank=True)
@classmethod @classmethod
def get(cls): def get(cls):

View file

@ -200,6 +200,11 @@
</p> </p>
{% endif %} {% endif %}
</div> </div>
{% if site.footer_item %}
<div class="column">
<p>{{ site.footer_item|safe }}</p>
</div>
{% endif %}
{% if site.support_link %} {% if site.support_link %}
<div class="column"> <div class="column">
<span class="icon icon-heart"></span> <span class="icon icon-heart"></span>

View file

@ -37,16 +37,16 @@
<section class="block" id="images"> <section class="block" id="images">
<h2 class="title is-4">{% trans "Images" %}</h2> <h2 class="title is-4">{% trans "Images" %}</h2>
<div class="field is-grouped"> <div class="columns">
<div class="control"> <div class="column">
<label class="label" for="id_logo">{% trans "Logo:" %}</label> <label class="label" for="id_logo">{% trans "Logo:" %}</label>
{{ site_form.logo }} {{ site_form.logo }}
</div> </div>
<div class="control"> <div class="column">
<label class="label" for="id_logo_small">{% trans "Logo small:" %}</label> <label class="label" for="id_logo_small">{% trans "Logo small:" %}</label>
{{ site_form.logo_small }} {{ site_form.logo_small }}
</div> </div>
<div class="control"> <div class="column">
<label class="label" for="id_favicon">{% trans "Favicon:" %}</label> <label class="label" for="id_favicon">{% trans "Favicon:" %}</label>
{{ site_form.favicon }} {{ site_form.favicon }}
</div> </div>
@ -69,6 +69,10 @@
<label class="label" for="id_admin_email">{% trans "Admin email:" %}</label> <label class="label" for="id_admin_email">{% trans "Admin email:" %}</label>
{{ site_form.admin_email }} {{ site_form.admin_email }}
</div> </div>
<div class="control">
<label class="label" for="id_footer_item">{% trans "Additional info:" %}</label>
{{ site_form.footer_item }}
</div>
</section> </section>
<hr aria-hidden="true"> <hr aria-hidden="true">