mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-11-22 17:41:08 +00:00
Adds overview page to setup
This commit is contained in:
parent
1b9688832a
commit
f6e2ec02aa
6 changed files with 214 additions and 50 deletions
|
@ -218,7 +218,6 @@
|
|||
<p id="status-success-message" class="live-message is-sr-only is-hidden">{% trans "Successfully posted status" %}</p>
|
||||
<p id="status-error-message" class="live-message notification is-danger p-3 pr-5 pl-5 is-hidden">{% trans "Error posting status" %}</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
|
@ -255,6 +254,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
||||
<script>
|
||||
var csrf_token = '{{ csrf_token }}';
|
||||
|
|
|
@ -2,58 +2,60 @@
|
|||
{% load i18n %}
|
||||
|
||||
{% block header %}
|
||||
<h1 class="title">{% trans "Setup admin user" %}</h1>
|
||||
<h1 class="title">{% trans "Set up BookWyrm" %}</h1>
|
||||
<div class="subtitle">
|
||||
{% trans "Your account a user and an admin" %}
|
||||
{% trans "Your account as a user and an admin" %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block panel %}
|
||||
<div class="columns content">
|
||||
<div class="column is-half">
|
||||
<div class="box has-background-primary-light">
|
||||
<h2 class="title is-4">{% trans "Create your account" %}</h2>
|
||||
<form name="register" method="post" action="{% url 'setup' %}">
|
||||
<div class="field">
|
||||
<label class="label" for="id_admin_key">
|
||||
{% trans "Admin key:" %}
|
||||
</label>
|
||||
<div class="control">
|
||||
<input
|
||||
type="password"
|
||||
name="admin_key"
|
||||
class="input"
|
||||
id="id_admin_key"
|
||||
aria-describedby="desc_admin_key"
|
||||
required
|
||||
>
|
||||
<p class="help" id="desc_admin_key">
|
||||
{% blocktrans trimmed %}
|
||||
An admin key was created when you installed BookWyrm.
|
||||
You can get your admin key by running <code>./bw-dev admin_code</code> from the command line on your server.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
<div class="block content">
|
||||
<h2 class="title is-4">{% trans "Create your account" %}</h2>
|
||||
<div class="columns">
|
||||
<div class="column is-half">
|
||||
<div class="box has-background-primary-light">
|
||||
<form name="register" method="post" action="{% url 'setup-admin' %}">
|
||||
<div class="field">
|
||||
<label class="label" for="id_admin_key">
|
||||
{% trans "Admin key:" %}
|
||||
</label>
|
||||
<div class="control">
|
||||
<input
|
||||
type="password"
|
||||
name="admin_key"
|
||||
class="input"
|
||||
id="id_admin_key"
|
||||
aria-describedby="desc_admin_key"
|
||||
required
|
||||
>
|
||||
<p class="help" id="desc_admin_key">
|
||||
{% blocktrans trimmed %}
|
||||
An admin key was created when you installed BookWyrm.
|
||||
You can get your admin key by running <code>./bw-dev admin_code</code> from the command line on your server.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'snippets/register_form.html' %}
|
||||
</form>
|
||||
{% include 'snippets/register_form.html' %}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
As an admin, you'll be able to configure the instance name and information, and moderate your instance.
|
||||
This means you will have access to private information about your users, and are responsible for responding to reports of bad behavior or spam.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
<p>
|
||||
{% trans "Once the instance is set up, you can promote other users to moderator or admin roles from the admin panel." %}
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://docs.joinbookwyrm.com/moderation.html" target="_blank">
|
||||
{% trans "Learn more about moderation" %}
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
As an admin, you'll be able to configure the instance name and information, and moderate your instance.
|
||||
This means you will have access to private information about your users, and are responsible for repsonding to reports of bad behavior or spam.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
<p>
|
||||
{% trans "Once the instance is set up, you can promote other users to moderator or admin roles from the admin panel." %}
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://docs.joinbookwyrm.com/moderation.html" target="_blank">
|
||||
{% trans "Learn more about moderation" %}
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
130
bookwyrm/templates/setup/config.html
Normal file
130
bookwyrm/templates/setup/config.html
Normal file
|
@ -0,0 +1,130 @@
|
|||
{% extends 'setup/layout.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block header %}
|
||||
<h1 class="title">{% trans "Instance Configuration" %}</h1>
|
||||
<div class="subtitle">
|
||||
{% trans "Make sure everything looks right before proceeding" %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block panel %}
|
||||
|
||||
<div class="block content">
|
||||
{% if warnings.debug %}
|
||||
<div class="notification is-danger is-flex is-align-items-start">
|
||||
<span class="icon icon-warning is-size-4 pr-3" aria-hidden="true"></span>
|
||||
<span>
|
||||
{% blocktrans trimmed %}
|
||||
You are running BookWyrm in <strong>debug</strong> mode.
|
||||
This should <strong>never</strong> be used in a production environment.
|
||||
{% endblocktrans %}
|
||||
</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="columns">
|
||||
<div class="column is-half is-flex is-flex-direction-column">
|
||||
<h2 class="title is-4">{% trans "Settings" %}</h2>
|
||||
<div class="notification is-flex-grow-1">
|
||||
<dl>
|
||||
<dt class="is-pulled-left mr-5 has-text-weight-bold">
|
||||
{% trans "Instance domain:" %}
|
||||
</dt>
|
||||
<dd>
|
||||
{{ info.domain }}
|
||||
</dd>
|
||||
|
||||
<dt class="is-pulled-left mr-5 has-text-weight-bold">
|
||||
{% trans "Protocol:" %}
|
||||
</dt>
|
||||
<dd>
|
||||
{% if info.use_https %}
|
||||
<span class="tag is-success">https</span>
|
||||
{% else %}
|
||||
<span class="tag is-danger">http</span>
|
||||
{% endif %}
|
||||
</dd>
|
||||
|
||||
<dt class="is-pulled-left mr-5 has-text-weight-bold">
|
||||
{% trans "Software version:" %}
|
||||
</dt>
|
||||
<dd>
|
||||
{{ info.version }}
|
||||
</dd>
|
||||
|
||||
<dt class="is-pulled-left mr-5 has-text-weight-bold">
|
||||
{% trans "Using S3:" %}
|
||||
</dt>
|
||||
<dd>
|
||||
{{ info.use_s3|yesno }}
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="column is-half is-flex is-flex-direction-column">
|
||||
<h2 class="title is-4">{% trans "Display" %}</h2>
|
||||
<div class="notification is-flex-grow-1">
|
||||
<dl>
|
||||
<dt class="is-pulled-left mr-5 has-text-weight-bold">
|
||||
{% trans "Default interface language:" %}
|
||||
</dt>
|
||||
<dd>
|
||||
{{ info.language }}
|
||||
</dd>
|
||||
|
||||
<dt class="is-pulled-left mr-5 has-text-weight-bold">
|
||||
{% trans "Email sender:" %}
|
||||
</dt>
|
||||
<dd>
|
||||
{{ info.email_sender }}
|
||||
</dd>
|
||||
|
||||
<dt class="is-pulled-left mr-5 has-text-weight-bold">
|
||||
{% trans "Enable preview images" %}
|
||||
</dt>
|
||||
<dd>
|
||||
{{ info.preview_images|yesno }}
|
||||
</dd>
|
||||
|
||||
<dt class="is-pulled-left mr-5 has-text-weight-bold">
|
||||
{% trans "Enable image thumbnails" %}
|
||||
</dt>
|
||||
<dd>
|
||||
{{ info.thumbnails|yesno }}
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="block content">
|
||||
<h2 class="title is-4">{% trans "Does everything look right?" %}</h2>
|
||||
<p class="subtitle help">
|
||||
{% blocktrans trimmed %}
|
||||
This is your last change to set your domain and protocol.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<div class="box">
|
||||
<div class="control">
|
||||
<a class="button is-primary" href="{% url 'setup-admin' %}">
|
||||
<span class="icon icon-check" aria-hidden="true"></span>
|
||||
<span>{% trans "Continue" %}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can change your instance settings in the <code>.env</code> file on your server.
|
||||
{% endblocktrans %}
|
||||
<a href="https://docs.joinbookwyrm.com/installing-in-production.html" target="_blank">
|
||||
{% trans "View installation instructions" %}
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
|
@ -59,7 +59,8 @@ urlpatterns = [
|
|||
name="stream-updates",
|
||||
),
|
||||
# instance setup
|
||||
re_path(r"^setup/?$", views.CreateAdmin.as_view(), name="setup"),
|
||||
re_path(r"^setup/?$", views.InstanceConfig.as_view(), name="setup"),
|
||||
re_path(r"^setup/admin?$", views.CreateAdmin.as_view(), name="setup-admin"),
|
||||
# authentication
|
||||
re_path(r"^login/?$", views.Login.as_view(), name="login"),
|
||||
re_path(r"^login/(?P<confirmed>confirmed)/?$", views.Login.as_view(), name="login"),
|
||||
|
|
|
@ -113,7 +113,7 @@ from .reading import ReadingStatus
|
|||
from .report import Report
|
||||
from .rss_feed import RssFeed
|
||||
from .search import Search
|
||||
from .setup import CreateAdmin
|
||||
from .setup import InstanceConfig, CreateAdmin
|
||||
from .status import CreateStatus, EditStatus, DeleteStatus, update_progress
|
||||
from .status import edit_readthrough
|
||||
from .updates import get_notification_count, get_unread_status_string
|
||||
|
|
|
@ -8,10 +8,41 @@ from django.template.response import TemplateResponse
|
|||
from django.views import View
|
||||
|
||||
from bookwyrm import forms, models
|
||||
from bookwyrm.settings import DOMAIN
|
||||
from bookwyrm import settings
|
||||
|
||||
|
||||
# pylint: disable= no-self-use
|
||||
class InstanceConfig(View):
|
||||
"""make sure the instance looks correct before adding any data"""
|
||||
|
||||
def get(self, request):
|
||||
"""Check out this cool instance"""
|
||||
# only allow this view when an instance is being configured
|
||||
site = models.SiteSettings.objects.get()
|
||||
if not site.install_mode:
|
||||
raise PermissionDenied()
|
||||
|
||||
# check for possible problems with the instance configuration
|
||||
warnings = {}
|
||||
warnings["debug"] = settings.DEBUG
|
||||
warnings["protocol_in_domain"] = settings.DOMAIN.startswith("http")
|
||||
|
||||
data = {
|
||||
"warnings": warnings,
|
||||
"info": {
|
||||
"domain": settings.DOMAIN,
|
||||
"version": settings.VERSION,
|
||||
"use_https": settings.USE_HTTPS,
|
||||
"language": settings.LANGUAGE_CODE,
|
||||
"use_s3": settings.USE_S3,
|
||||
"email_sender": f"{settings.EMAIL_SENDER_NAME}@{settings.EMAIL_SENDER_DOMAIN}",
|
||||
"preview_images": settings.ENABLE_PREVIEW_IMAGES,
|
||||
"thumbnails": settings.ENABLE_THUMBNAIL_GENERATION,
|
||||
},
|
||||
}
|
||||
return TemplateResponse(request, "setup/config.html", data)
|
||||
|
||||
|
||||
class CreateAdmin(View):
|
||||
"""manage things like the instance name"""
|
||||
|
||||
|
@ -39,7 +70,7 @@ class CreateAdmin(View):
|
|||
return TemplateResponse(request, "setup/admin.html", data)
|
||||
|
||||
localname = form.data["localname"].strip()
|
||||
username = f"{localname}@{DOMAIN}"
|
||||
username = f"{localname}@{settings.DOMAIN}"
|
||||
|
||||
user = models.User.objects.create_superuser(
|
||||
username,
|
||||
|
|
Loading…
Reference in a new issue