mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2025-03-30 07:05:29 +00:00
Merge branch 'main' into production
This commit is contained in:
commit
8bb815d5b3
51 changed files with 2242 additions and 1071 deletions
|
@ -2,7 +2,6 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from bookwyrm import models
|
from bookwyrm import models
|
||||||
|
|
||||||
admin.site.register(models.SiteSettings)
|
|
||||||
admin.site.register(models.User)
|
admin.site.register(models.User)
|
||||||
admin.site.register(models.FederatedServer)
|
admin.site.register(models.FederatedServer)
|
||||||
admin.site.register(models.Connector)
|
admin.site.register(models.Connector)
|
||||||
|
|
|
@ -58,6 +58,13 @@ class Connector(AbstractConnector):
|
||||||
Mapping("bio", formatter=get_description),
|
Mapping("bio", formatter=get_description),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_book_data(self, remote_id):
|
||||||
|
data = get_data(remote_id)
|
||||||
|
if data.get("type", {}).get("key") == "/type/redirect":
|
||||||
|
remote_id = self.base_url + data.get("location")
|
||||||
|
return get_data(remote_id)
|
||||||
|
return data
|
||||||
|
|
||||||
def get_remote_id_from_data(self, data):
|
def get_remote_id_from_data(self, data):
|
||||||
"""format a url from an openlibrary id field"""
|
"""format a url from an openlibrary id field"""
|
||||||
try:
|
try:
|
||||||
|
@ -75,8 +82,11 @@ class Connector(AbstractConnector):
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise ConnectorException("Invalid book data")
|
raise ConnectorException("Invalid book data")
|
||||||
url = "%s%s/editions" % (self.books_url, key)
|
url = "%s%s/editions" % (self.books_url, key)
|
||||||
data = get_data(url)
|
data = self.get_book_data(url)
|
||||||
return pick_default_edition(data["entries"])
|
edition = pick_default_edition(data["entries"])
|
||||||
|
if not edition:
|
||||||
|
raise ConnectorException("No editions for work")
|
||||||
|
return edition
|
||||||
|
|
||||||
def get_work_from_edition_data(self, data):
|
def get_work_from_edition_data(self, data):
|
||||||
try:
|
try:
|
||||||
|
@ -84,7 +94,7 @@ class Connector(AbstractConnector):
|
||||||
except (IndexError, KeyError):
|
except (IndexError, KeyError):
|
||||||
raise ConnectorException("No work found for edition")
|
raise ConnectorException("No work found for edition")
|
||||||
url = "%s%s" % (self.books_url, key)
|
url = "%s%s" % (self.books_url, key)
|
||||||
return get_data(url)
|
return self.get_book_data(url)
|
||||||
|
|
||||||
def get_authors_from_data(self, data):
|
def get_authors_from_data(self, data):
|
||||||
"""parse author json and load or create authors"""
|
"""parse author json and load or create authors"""
|
||||||
|
@ -143,7 +153,7 @@ class Connector(AbstractConnector):
|
||||||
def load_edition_data(self, olkey):
|
def load_edition_data(self, olkey):
|
||||||
"""query openlibrary for editions of a work"""
|
"""query openlibrary for editions of a work"""
|
||||||
url = "%s/works/%s/editions" % (self.books_url, olkey)
|
url = "%s/works/%s/editions" % (self.books_url, olkey)
|
||||||
return get_data(url)
|
return self.get_book_data(url)
|
||||||
|
|
||||||
def expand_book_data(self, book):
|
def expand_book_data(self, book):
|
||||||
work = book
|
work = book
|
||||||
|
|
|
@ -4,4 +4,7 @@ from bookwyrm import models
|
||||||
|
|
||||||
def site_settings(request): # pylint: disable=unused-argument
|
def site_settings(request): # pylint: disable=unused-argument
|
||||||
"""include the custom info about the site"""
|
"""include the custom info about the site"""
|
||||||
return {"site": models.SiteSettings.objects.get()}
|
return {
|
||||||
|
"site": models.SiteSettings.objects.get(),
|
||||||
|
"active_announcements": models.Announcement.active_announcements(),
|
||||||
|
}
|
||||||
|
|
|
@ -269,6 +269,12 @@ class SiteForm(CustomForm):
|
||||||
exclude = []
|
exclude = []
|
||||||
|
|
||||||
|
|
||||||
|
class AnnouncementForm(CustomForm):
|
||||||
|
class Meta:
|
||||||
|
model = models.Announcement
|
||||||
|
exclude = ["remote_id"]
|
||||||
|
|
||||||
|
|
||||||
class ListForm(CustomForm):
|
class ListForm(CustomForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.List
|
model = models.List
|
||||||
|
|
56
bookwyrm/migrations/0075_announcement.py
Normal file
56
bookwyrm/migrations/0075_announcement.py
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# Generated by Django 3.2 on 2021-05-20 19:34
|
||||||
|
|
||||||
|
import bookwyrm.models.fields
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("bookwyrm", "0074_auto_20210511_1829"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="Announcement",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.AutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("created_date", models.DateTimeField(auto_now_add=True)),
|
||||||
|
("updated_date", models.DateTimeField(auto_now=True)),
|
||||||
|
(
|
||||||
|
"remote_id",
|
||||||
|
bookwyrm.models.fields.RemoteIdField(
|
||||||
|
max_length=255,
|
||||||
|
null=True,
|
||||||
|
validators=[bookwyrm.models.fields.validate_remote_id],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("preview", models.CharField(max_length=255)),
|
||||||
|
("content", models.TextField(blank=True, null=True)),
|
||||||
|
("event_date", models.DateTimeField(blank=True, null=True)),
|
||||||
|
("start_date", models.DateTimeField(blank=True, null=True)),
|
||||||
|
("end_date", models.DateTimeField(blank=True, null=True)),
|
||||||
|
("active", models.BooleanField(default=True)),
|
||||||
|
(
|
||||||
|
"user",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.PROTECT,
|
||||||
|
to=settings.AUTH_USER_MODEL,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
"abstract": False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
|
@ -25,6 +25,7 @@ from .federated_server import FederatedServer
|
||||||
from .import_job import ImportJob, ImportItem
|
from .import_job import ImportJob, ImportItem
|
||||||
|
|
||||||
from .site import SiteSettings, SiteInvite, PasswordReset, InviteRequest
|
from .site import SiteSettings, SiteInvite, PasswordReset, InviteRequest
|
||||||
|
from .announcement import Announcement
|
||||||
|
|
||||||
cls_members = inspect.getmembers(sys.modules[__name__], inspect.isclass)
|
cls_members = inspect.getmembers(sys.modules[__name__], inspect.isclass)
|
||||||
activity_models = {
|
activity_models = {
|
||||||
|
|
28
bookwyrm/models/announcement.py
Normal file
28
bookwyrm/models/announcement.py
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
""" admin announcements """
|
||||||
|
from django.db import models
|
||||||
|
from django.db.models import Q
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
|
from .base_model import BookWyrmModel
|
||||||
|
|
||||||
|
|
||||||
|
class Announcement(BookWyrmModel):
|
||||||
|
"""The admin has something to say"""
|
||||||
|
|
||||||
|
user = models.ForeignKey("User", on_delete=models.PROTECT)
|
||||||
|
preview = models.CharField(max_length=255)
|
||||||
|
content = models.TextField(null=True, blank=True)
|
||||||
|
event_date = models.DateTimeField(blank=True, null=True)
|
||||||
|
start_date = models.DateTimeField(blank=True, null=True)
|
||||||
|
end_date = models.DateTimeField(blank=True, null=True)
|
||||||
|
active = models.BooleanField(default=True)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def active_announcements(cls):
|
||||||
|
"""announcements that should be displayed"""
|
||||||
|
now = timezone.now()
|
||||||
|
return cls.objects.filter(
|
||||||
|
Q(start_date__isnull=True) | Q(start_date__lte=now),
|
||||||
|
Q(end_date__isnull=True) | Q(end_date__gte=now),
|
||||||
|
active=True,
|
||||||
|
)
|
|
@ -88,10 +88,11 @@ body {
|
||||||
.transition-y.is-hidden {
|
.transition-y.is-hidden {
|
||||||
display: block !important;
|
display: block !important;
|
||||||
visibility: hidden !important;
|
visibility: hidden !important;
|
||||||
height: 0;
|
height: 0 !important;
|
||||||
width: 0;
|
width: 0 !important;
|
||||||
margin: 0;
|
margin: 0 !important;
|
||||||
padding: 0;
|
padding: 0 !important;
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transition-x,
|
.transition-x,
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
{% extends 'layout.html' %}
|
{% extends 'layout.html' %}
|
||||||
{% load i18n %}
|
{% load i18n %}{% load bookwyrm_tags %}{% load humanize %}{% load utilities %}
|
||||||
{% load bookwyrm_tags %}
|
|
||||||
{% load humanize %}
|
|
||||||
|
|
||||||
{% block title %}{{ book.title }}{% endblock %}
|
{% block title %}{{ book.title }}{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{% spaceless %}
|
{% spaceless %}
|
||||||
|
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
|
|
|
@ -88,6 +88,7 @@
|
||||||
<div class="column is-half">
|
<div class="column is-half">
|
||||||
<section class="block">
|
<section class="block">
|
||||||
<h2 class="title is-4">{% trans "Metadata" %}</h2>
|
<h2 class="title is-4">{% trans "Metadata" %}</h2>
|
||||||
|
|
||||||
<p class="mb-2">
|
<p class="mb-2">
|
||||||
<label class="label" for="id_title">{% trans "Title:" %}</label>
|
<label class="label" for="id_title">{% trans "Title:" %}</label>
|
||||||
<input type="text" name="title" value="{{ form.title.value|default:'' }}" maxlength="255" class="input" required="" id="id_title">
|
<input type="text" name="title" value="{{ form.title.value|default:'' }}" maxlength="255" class="input" required="" id="id_title">
|
||||||
|
@ -117,11 +118,23 @@
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<p class="mb-2"><label class="label" for="id_series_number">{% trans "Series number:" %}</label> {{ form.series_number }} </p>
|
<p class="mb-2">
|
||||||
|
<label class="label" for="id_series_number">{% trans "Series number:" %}</label>
|
||||||
|
{{ form.series_number }}
|
||||||
|
</p>
|
||||||
{% for error in form.series_number.errors %}
|
{% for error in form.series_number.errors %}
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
<p class="mb-2">
|
||||||
|
<label class="label" for="id_languages">{% trans "Languages:" %}</label>
|
||||||
|
{{ form.languages }}
|
||||||
|
<span class="help">{% trans "Separate multiple values with commas." %}</span>
|
||||||
|
</p>
|
||||||
|
{% for error in form.languages.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
<p class="mb-2">
|
<p class="mb-2">
|
||||||
<label class="label" for="id_publishers">{% trans "Publisher:" %}</label>
|
<label class="label" for="id_publishers">{% trans "Publisher:" %}</label>
|
||||||
{{ form.publishers }}
|
{{ form.publishers }}
|
||||||
|
@ -216,18 +229,27 @@
|
||||||
{% for error in form.isbn_13.errors %}
|
{% for error in form.isbn_13.errors %}
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<p class="mb-2"><label class="label" for="id_isbn_10">{% trans "ISBN 10:" %}</label> {{ form.isbn_10 }} </p>
|
<p class="mb-2"><label class="label" for="id_isbn_10">{% trans "ISBN 10:" %}</label> {{ form.isbn_10 }} </p>
|
||||||
{% for error in form.isbn_10.errors %}
|
{% for error in form.isbn_10.errors %}
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<p class="mb-2"><label class="label" for="id_openlibrary_key">{% trans "Openlibrary key:" %}</label> {{ form.openlibrary_key }} </p>
|
|
||||||
|
<p class="mb-2"><label class="label" for="id_openlibrary_key">{% trans "Openlibrary ID:" %}</label> {{ form.openlibrary_key }} </p>
|
||||||
{% for error in form.openlibrary_key.errors %}
|
{% for error in form.openlibrary_key.errors %}
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
<p class="mb-2"><label class="label" for="id_inventaire_id">{% trans "Inventaire ID:" %}</label> {{ form.inventaire_id }} </p>
|
||||||
|
{% for error in form.inventaire_id.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
<p class="mb-2"><label class="label" for="id_oclc_number">{% trans "OCLC Number:" %}</label> {{ form.oclc_number }} </p>
|
<p class="mb-2"><label class="label" for="id_oclc_number">{% trans "OCLC Number:" %}</label> {{ form.oclc_number }} </p>
|
||||||
{% for error in form.oclc_number.errors %}
|
{% for error in form.oclc_number.errors %}
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<p class="mb-2"><label class="label" for="id_asin">{% trans "ASIN:" %}</label> {{ form.asin }} </p>
|
<p class="mb-2"><label class="label" for="id_asin">{% trans "ASIN:" %}</label> {{ form.asin }} </p>
|
||||||
{% for error in form.ASIN.errors %}
|
{% for error in form.ASIN.errors %}
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{% extends 'layout.html' %}
|
{% extends 'layout.html' %}
|
||||||
{% load i18n %}
|
{% load i18n %}{% load utilities %}
|
||||||
|
|
||||||
{% block title %}{% blocktrans with book_title=work.title %}Editions of {{ book_title }}{% endblocktrans %}{% endblock %}
|
{% block title %}{% blocktrans with book_title=work|book_title %}Editions of {{ book_title }}{% endblocktrans %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<h1 class="title">{% blocktrans with work_path=work.local_path work_title=work.title %}Editions of <a href="{{ work_path }}">"{{ work_title }}"</a>{% endblocktrans %}</h1>
|
<h1 class="title">{% blocktrans with work_path=work.local_path work_title=work|book_title %}Editions of <a href="{{ work_path }}">"{{ work_title }}"</a>{% endblocktrans %}</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% include 'book/edition_filters.html' %}
|
{% include 'book/edition_filters.html' %}
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
<div class="column my-3-mobile ml-3-tablet mr-auto">
|
<div class="column my-3-mobile ml-3-tablet mr-auto">
|
||||||
<h2 class="title is-5 mb-1">
|
<h2 class="title is-5 mb-1">
|
||||||
<a href="{{ book.local_path }}" class="has-text-black">
|
<a href="{{ book.local_path }}" class="has-text-black">
|
||||||
{{ book.title }}
|
{{ book|book_title }}
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{% extends 'snippets/filters_panel/filter_field.html' %}
|
{% extends 'snippets/filters_panel/filter_field.html' %}
|
||||||
{% load i18n %}
|
{% load i18n %}{% load utilities %}
|
||||||
|
|
||||||
{% block filter %}
|
{% block filter %}
|
||||||
<label class="label is-block" for="id_format">{% trans "Format:" %}</label>
|
<label class="label is-block" for="id_format">{% trans "Format:" %}</label>
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
<option value="">{% trans "Any" %}</option>
|
<option value="">{% trans "Any" %}</option>
|
||||||
{% for format in formats %}{% if format %}
|
{% for format in formats %}{% if format %}
|
||||||
<option value="{{ format }}" {% if request.GET.format == format %}selected{% endif %}>
|
<option value="{{ format }}" {% if request.GET.format == format %}selected{% endif %}>
|
||||||
{{ format|title }}
|
{{ format|book_title }}
|
||||||
</option>
|
</option>
|
||||||
{% endif %}{% endfor %}
|
{% endif %}{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -49,7 +49,3 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block scripts %}
|
|
||||||
<script src="/static/js/localstorage.js"></script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{% load layout %}
|
{% load layout %}{% load i18n %}
|
||||||
{% load i18n %}
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="{% get_lang %}">
|
<html lang="{% get_lang %}">
|
||||||
<head>
|
<head>
|
||||||
|
@ -182,6 +181,15 @@
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
{% if request.user.is_authenticated and active_announcements.exists %}
|
||||||
|
<div class="block is-flex-grow-1">
|
||||||
|
<div class="container">
|
||||||
|
{% for announcement in active_announcements %}
|
||||||
|
{% include 'snippets/announcement.html' with announcement=announcement %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="section is-flex-grow-1">
|
<div class="section is-flex-grow-1">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
@ -230,6 +238,7 @@
|
||||||
var csrf_token = '{{ csrf_token }}';
|
var csrf_token = '{{ csrf_token }}';
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/js/bookwyrm.js"></script>
|
<script src="/static/js/bookwyrm.js"></script>
|
||||||
|
<script src="/static/js/localstorage.js"></script>
|
||||||
{% block scripts %}{% endblock %}
|
{% block scripts %}{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-narrow">
|
<div class="column is-narrow">
|
||||||
{% trans "Open" as button_text %}
|
{% trans "Open" as button_text %}
|
||||||
{% include 'snippets/toggle/open_button.html' with text=button_text small=True controls_text="more-results-panel" controls_uid=result_set.connector.identifier class="is-small" icon_with_text="arrow-down" pressed=forloop.first %}
|
{% include 'snippets/toggle/open_button.html' with text=button_text controls_text="more-results-panel" controls_uid=result_set.connector.identifier class="is-small" icon_with_text="arrow-down" pressed=forloop.first %}
|
||||||
{% trans "Close" as button_text %}
|
{% trans "Close" as button_text %}
|
||||||
{% include 'snippets/toggle/close_button.html' with text=button_text small=True controls_text="more-results-panel" controls_uid=result_set.connector.identifier class="is-small" icon_with_text="arrow-up" pressed=forloop.first %}
|
{% include 'snippets/toggle/close_button.html' with text=button_text controls_text="more-results-panel" controls_uid=result_set.connector.identifier class="is-small" icon_with_text="arrow-up" pressed=forloop.first %}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -43,6 +43,10 @@
|
||||||
{% if perms.bookwyrm.edit_instance_settings %}
|
{% if perms.bookwyrm.edit_instance_settings %}
|
||||||
<h2 class="menu-label">{% trans "Instance Settings" %}</h2>
|
<h2 class="menu-label">{% trans "Instance Settings" %}</h2>
|
||||||
<ul class="menu-list">
|
<ul class="menu-list">
|
||||||
|
<li>
|
||||||
|
{% url 'settings-announcements' as url %}
|
||||||
|
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Announcements" %}</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
{% url 'settings-site' as url %}
|
{% url 'settings-site' as url %}
|
||||||
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Site Settings" %}</a>
|
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Site Settings" %}</a>
|
||||||
|
|
70
bookwyrm/templates/settings/announcement.html
Normal file
70
bookwyrm/templates/settings/announcement.html
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
{% extends 'settings/admin_layout.html' %}
|
||||||
|
{% load i18n %}{% load humanize %}
|
||||||
|
{% block title %}{% trans "Announcement" %} - {{ announcement.preview }}{% endblock %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
{% trans "Announcement" %}
|
||||||
|
<a href="{% url 'settings-announcements' %}" class="has-text-weight-normal help">{% trans "Back to list" %}</a>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block edit-button %}
|
||||||
|
{% trans "Edit Announcement" as button_text %}
|
||||||
|
<div class="field has-addons">
|
||||||
|
<div class="control">
|
||||||
|
{% include 'snippets/toggle/open_button.html' with controls_text="edit-announcement" icon_with_text="pencil" text=button_text focus="edit-announcement-header" %}
|
||||||
|
</div>
|
||||||
|
<form class="control" action="{% url 'settings-announcements-delete' announcement.id %}" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
<button type="submit" class="button is-danger">
|
||||||
|
<span class="icon icon-x" aria-hidden="true"></span>
|
||||||
|
<span>{% trans "Delete" %}</span>
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block panel %}
|
||||||
|
|
||||||
|
<form name="edit-announcement" method="post" action="{% url 'settings-announcements' announcement.id %}" class="block">
|
||||||
|
{% include 'settings/announcement_form.html' with controls_text="edit-announcement" %}
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="block content">
|
||||||
|
<dl>
|
||||||
|
<div class="is-flex notification pt-1 pb-1 mb-0 {% if announcement in active_announcements %}is-success{% else %}is-danger{% endif %}">
|
||||||
|
<dt class="mr-1 has-text-weight-bold">{% trans "Visible:" %}</dt>
|
||||||
|
<dd>
|
||||||
|
{% if announcement in active_announcements %}
|
||||||
|
{% trans "True" %}
|
||||||
|
{% else %}
|
||||||
|
{% trans "False" %}
|
||||||
|
{% endif %}
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if announcement.start_date %}
|
||||||
|
<div class="is-flex notificationi pt-1 pb-1 mb-0 has-background-white">
|
||||||
|
<dt class="mr-1 has-text-weight-bold">{% trans "Start date:" %}</dt>
|
||||||
|
<dd>{{ announcement.start_date|naturalday }}</dd>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if announcement.end_date %}
|
||||||
|
<div class="is-flex notification pt-1 pb-1 mb-0 has-background-white">
|
||||||
|
<dt class="mr-1 has-text-weight-bold">{% trans "End date:" %}</dt>
|
||||||
|
<dd>{{ announcement.end_date|naturalday }}</dd>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="is-flex notification pt-1 pb-1 has-background-white">
|
||||||
|
<dt class="mr-1 has-text-weight-bold">{% trans "Active:" %}</dt>
|
||||||
|
<dd>{{ announcement.active }}</dd>
|
||||||
|
</div>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<hr aria-hidden="true">
|
||||||
|
|
||||||
|
{% include 'snippets/announcement.html' with announcement=announcement pressed=True admin_mode=True %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
68
bookwyrm/templates/settings/announcement_form.html
Normal file
68
bookwyrm/templates/settings/announcement_form.html
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{% extends 'components/inline_form.html' %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
{% trans "Create Announcement" %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block form %}
|
||||||
|
{% csrf_token %}
|
||||||
|
<input type="hidden" name="user" value="{{ request.user.id }}">
|
||||||
|
<p>
|
||||||
|
<label class="label" for="id_preview">Preview:</label>
|
||||||
|
{{ form.preview }}
|
||||||
|
{% for error in form.preview.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label class="label" for="id_content">Content:</label>
|
||||||
|
{{ form.content }}
|
||||||
|
{% for error in form.content.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label class="label" for="id_event_date">Event date:</label>
|
||||||
|
<input type="date" name="event_date" value="{{ form.event_date.value }}" class="input" id="id_event_date">
|
||||||
|
{% for error in form.event_date.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
<hr aria-hidden="true">
|
||||||
|
<div class="columns">
|
||||||
|
<div class="column">
|
||||||
|
<p>
|
||||||
|
<label class="label" for="id_start_date">Start date:</label>
|
||||||
|
<input type="date" name="start_date" class="input" id="id_start_date">
|
||||||
|
{% for error in form.start_date.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="column">
|
||||||
|
<p>
|
||||||
|
<label class="label" for="id_end_date">End date:</label>
|
||||||
|
<input type="date" name="end_date" class="input" id="id_end_date">
|
||||||
|
{% for error in form.end_date.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="column is-narrow">
|
||||||
|
<p>
|
||||||
|
<label class="label" for="id_active">Active:</label>
|
||||||
|
{{ form.active }}
|
||||||
|
{% for error in form.active.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="field has-addons">
|
||||||
|
<div class="control">
|
||||||
|
<button type="submit" class="button is-primary">{% trans "Save" %}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
54
bookwyrm/templates/settings/announcements.html
Normal file
54
bookwyrm/templates/settings/announcements.html
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
{% extends 'settings/admin_layout.html' %}
|
||||||
|
{% load i18n %}{% load humanize %}
|
||||||
|
{% block title %}{% trans "Announcements" %}{% endblock %}
|
||||||
|
|
||||||
|
{% block header %}{% trans "Announcements" %}{% endblock %}
|
||||||
|
|
||||||
|
{% block edit-button %}
|
||||||
|
{% trans "Create Announcement" as button_text %}
|
||||||
|
{% include 'snippets/toggle/open_button.html' with controls_text="create-announcement" icon_with_text="plus" text=button_text focus="create-announcement-header" %}
|
||||||
|
</a>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block panel %}
|
||||||
|
<form name="create-announcement" method="post" action="{% url 'settings-announcements' %}" class="block">
|
||||||
|
{% include 'settings/announcement_form.html' with controls_text="create-announcement" %}
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<table class="table is-striped">
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
{% url 'settings-announcements' as url %}
|
||||||
|
{% trans "Date added" as text %}
|
||||||
|
{% include 'snippets/table-sort-header.html' with field="created_date" sort=sort text=text %}
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
{% trans "Preview" as text %}
|
||||||
|
{% include 'snippets/table-sort-header.html' with field="preview" sort=sort text=text %}
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
{% trans "Start date" as text %}
|
||||||
|
{% include 'snippets/table-sort-header.html' with field="start_date" sort=sort text=text %}
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
{% trans "End date" as text %}
|
||||||
|
{% include 'snippets/table-sort-header.html' with field="end_date" sort=sort text=text %}
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
{% trans "Status" as text %}
|
||||||
|
{% include 'snippets/table-sort-header.html' with field="active" sort=sort text=text %}
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
{% for announcement in announcements %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ announcement.created_date|naturalday }}</td>
|
||||||
|
<td><a href="{% url 'settings-announcements' announcement.id %}">{{ announcement.preview }}</a></td>
|
||||||
|
<td>{{ announcement.start_date|naturaltime|default:'' }}</td>
|
||||||
|
<td>{{ announcement.end_date|naturaltime|default:'' }}</td>
|
||||||
|
<td>{% if announcement.active %}{% trans "active" %}{% else %}{% trans "inactive" %}{% endif %}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{% include 'snippets/pagination.html' with page=announcements path=request.path %}
|
||||||
|
{% endblock %}
|
|
@ -10,7 +10,7 @@
|
||||||
{% if server.status == "blocked" %}<span class="icon icon-x has-text-danger is-size-5" title="{% trans 'Blocked' %}"><span class="is-sr-only">{% trans "Blocked" %}</span></span>
|
{% if server.status == "blocked" %}<span class="icon icon-x has-text-danger is-size-5" title="{% trans 'Blocked' %}"><span class="is-sr-only">{% trans "Blocked" %}</span></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to server list" %}</a>
|
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to list" %}</a>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block panel %}
|
{% block panel %}
|
||||||
|
|
38
bookwyrm/templates/snippets/announcement.html
Normal file
38
bookwyrm/templates/snippets/announcement.html
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{% load humanize %}{% load i18n %}{% load utilities %}
|
||||||
|
{% with announcement.id|uuid as uuid %}
|
||||||
|
<aside
|
||||||
|
class="notification mb-1 p-3{% if not admin_mode %} is-hidden{% endif %} transition-y"
|
||||||
|
{% if not admin_mode %}data-hide="hide-announcement-{{ announcement.id }}"{% endif %}
|
||||||
|
>
|
||||||
|
<div class="columns mb-0">
|
||||||
|
<div class="column pb-0">
|
||||||
|
{% if announcement.event_date %}
|
||||||
|
<strong>{{ announcement.event_date|naturalday|title }}:</strong>
|
||||||
|
{% endif %}
|
||||||
|
{{ announcement.preview }}
|
||||||
|
</div>
|
||||||
|
{% if announcement.content %}
|
||||||
|
<div class="column is-narrow pb-0">
|
||||||
|
{% trans "Open" as button_text %}
|
||||||
|
{% include 'snippets/toggle/open_button.html' with text=button_text controls_text="announcement" class="is-small" controls_uid=uuid icon_with_text="arrow-down" %}
|
||||||
|
{% trans "Close" as button_text %}
|
||||||
|
{% include 'snippets/toggle/close_button.html' with text=button_text controls_text="announcement" class="is-small" controls_uid=uuid icon_with_text="arrow-up" %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% if announcement.content %}
|
||||||
|
<div class="mb-2 mt-2 {% if not pressed %}is-hidden{% endif %}" id="announcement-{{ uuid }}">
|
||||||
|
<div class="box is-shadowless mb-0">
|
||||||
|
{{ announcement.content|safe }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class="is-flex mt-0 help">
|
||||||
|
<p>{% blocktrans with user_path=announcement.user.local_path username=announcement.user.display_name %}Posted by <a href="{{ user_path }}">{{ username }}</a>{% endblocktrans %}</p>
|
||||||
|
{% if not admin_mode %}
|
||||||
|
<span class="mr-2 ml-2" aria-hidden="true">·</span>
|
||||||
|
<a class="set-display" data-id="hide-announcement-{{ announcement.id }}" data-value="true">{% trans "Dismiss message" %}</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
{% endwith %}
|
|
@ -1,8 +1,8 @@
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load utilities %}
|
{% load utilities %}
|
||||||
{% if book.authors %}
|
{% if book.authors %}
|
||||||
{% blocktrans with path=book.local_path title=book|title %}<a href="{{ path }}">{{ title }}</a> by {% endblocktrans %}{% include 'snippets/authors.html' with book=book %}
|
{% blocktrans with path=book.local_path title=book|book_title %}<a href="{{ path }}">{{ title }}</a> by {% endblocktrans %}{% include 'snippets/authors.html' with book=book %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{{ book.local_path }}">{{ book|title }}</a>
|
<a href="{{ book.local_path }}">{{ book|book_title }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
{% if status.book %}
|
{% if status.book %}
|
||||||
{% if status.status_type == 'GeneratedNote' or status.status_type == 'Rating' %}
|
{% if status.status_type == 'GeneratedNote' or status.status_type == 'Rating' %}
|
||||||
<a href="{{ status.book.local_path }}">{{ status.book|title }}</a>{% if status.status_type == 'Rating' %}: {% include 'snippets/stars.html' with rating=status.rating %}
|
<a href="{{ status.book.local_path }}">{{ status.book|book_title }}</a>{% if status.status_type == 'Rating' %}: {% include 'snippets/stars.html' with rating=status.rating %}
|
||||||
<span
|
<span
|
||||||
itemprop="reviewRating"
|
itemprop="reviewRating"
|
||||||
itemscope
|
itemscope
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
|
|
||||||
{% if status.book %}
|
{% if status.book %}
|
||||||
{% if status.status_type == 'GeneratedNote' or status.status_type == 'Rating' %}
|
{% if status.status_type == 'GeneratedNote' or status.status_type == 'Rating' %}
|
||||||
<a href="{{ status.book.local_path }}">{{ status.book|title }}</a>{% if status.status_type == 'Rating' %}:
|
<a href="{{ status.book.local_path }}">{{ status.book|book_title }}</a>{% if status.status_type == 'Rating' %}:
|
||||||
<span
|
<span
|
||||||
itemprop="reviewRating"
|
itemprop="reviewRating"
|
||||||
itemscope
|
itemscope
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif status.mention_books %}
|
{% elif status.mention_books %}
|
||||||
<a href="{{ status.mention_books.first.local_path }}">
|
<a href="{{ status.mention_books.first.local_path }}">
|
||||||
{{ status.mention_books.first.title }}
|
{{ status.mention_books.first|book_title }}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% include 'snippets/stars.html' with rating=status.rating %}
|
{% include 'snippets/stars.html' with rating=status.rating %}
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
{% include 'snippets/book_titleby.html' with book=status.book %}
|
{% include 'snippets/book_titleby.html' with book=status.book %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif status.mention_books %}
|
{% elif status.mention_books %}
|
||||||
<a href="{{ status.mention_books.first.local_path }}">{{ status.mention_books.first|title }}</a>
|
<a href="{{ status.mention_books.first.local_path }}">{{ status.mention_books.first|book_title }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</h3>
|
</h3>
|
||||||
|
|
|
@ -18,7 +18,7 @@ def get_user_identifier(user):
|
||||||
return user.localname if user.localname else user.username
|
return user.localname if user.localname else user.username
|
||||||
|
|
||||||
|
|
||||||
@register.filter(name="title")
|
@register.filter(name="book_title")
|
||||||
def get_title(book):
|
def get_title(book):
|
||||||
"""display the subtitle if the title is short"""
|
"""display the subtitle if the title is short"""
|
||||||
if not book:
|
if not book:
|
||||||
|
|
137
bookwyrm/tests/views/test_announcements.py
Normal file
137
bookwyrm/tests/views/test_announcements.py
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
""" test for app action functionality """
|
||||||
|
from django.template.response import TemplateResponse
|
||||||
|
from django.test import TestCase
|
||||||
|
from django.test.client import RequestFactory
|
||||||
|
|
||||||
|
from bookwyrm import forms, models, views
|
||||||
|
|
||||||
|
|
||||||
|
class AnnouncementViews(TestCase):
|
||||||
|
"""every response to a get request, html or json"""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
"""we need basic test data and mocks"""
|
||||||
|
self.factory = RequestFactory()
|
||||||
|
self.local_user = models.User.objects.create_user(
|
||||||
|
"mouse@local.com",
|
||||||
|
"mouse@mouse.mouse",
|
||||||
|
"password",
|
||||||
|
local=True,
|
||||||
|
localname="mouse",
|
||||||
|
)
|
||||||
|
models.SiteSettings.objects.create()
|
||||||
|
|
||||||
|
def test_announcements_page(self):
|
||||||
|
"""there are so many views, this just makes sure it LOADS"""
|
||||||
|
models.Announcement.objects.create(preview="hi", user=self.local_user)
|
||||||
|
|
||||||
|
view = views.Announcements.as_view()
|
||||||
|
request = self.factory.get("")
|
||||||
|
request.user = self.local_user
|
||||||
|
request.user.is_superuser = True
|
||||||
|
|
||||||
|
result = view(request)
|
||||||
|
|
||||||
|
self.assertIsInstance(result, TemplateResponse)
|
||||||
|
result.render()
|
||||||
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
|
def test_announcements_page_empty(self):
|
||||||
|
"""there are so many views, this just makes sure it LOADS"""
|
||||||
|
view = views.Announcements.as_view()
|
||||||
|
request = self.factory.get("")
|
||||||
|
request.user = self.local_user
|
||||||
|
request.user.is_superuser = True
|
||||||
|
|
||||||
|
result = view(request)
|
||||||
|
|
||||||
|
self.assertIsInstance(result, TemplateResponse)
|
||||||
|
result.render()
|
||||||
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
|
def test_announcement_page(self):
|
||||||
|
"""there are so many views, this just makes sure it LOADS"""
|
||||||
|
announcement = models.Announcement.objects.create(
|
||||||
|
preview="hi", user=self.local_user
|
||||||
|
)
|
||||||
|
|
||||||
|
view = views.Announcement.as_view()
|
||||||
|
request = self.factory.get("")
|
||||||
|
request.user = self.local_user
|
||||||
|
request.user.is_superuser = True
|
||||||
|
|
||||||
|
result = view(request, announcement.id)
|
||||||
|
|
||||||
|
self.assertIsInstance(result, TemplateResponse)
|
||||||
|
result.render()
|
||||||
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
|
def test_create_announcement(self):
|
||||||
|
"""create a new announcement"""
|
||||||
|
view = views.Announcements.as_view()
|
||||||
|
form = forms.AnnouncementForm()
|
||||||
|
form.data["preview"] = "hi hi"
|
||||||
|
form.data["start_date"] = "2021-05-20"
|
||||||
|
form.data["user"] = self.local_user.id
|
||||||
|
|
||||||
|
request = self.factory.post("", form.data)
|
||||||
|
request.user = self.local_user
|
||||||
|
request.user.is_superuser = True
|
||||||
|
|
||||||
|
view(request)
|
||||||
|
|
||||||
|
announcement = models.Announcement.objects.get()
|
||||||
|
self.assertEqual(announcement.preview, "hi hi")
|
||||||
|
self.assertEqual(announcement.start_date.year, 2021)
|
||||||
|
self.assertEqual(announcement.start_date.month, 5)
|
||||||
|
self.assertEqual(announcement.start_date.day, 20)
|
||||||
|
|
||||||
|
def test_edit_announcement(self):
|
||||||
|
"""edit an announcement"""
|
||||||
|
announcement = models.Announcement.objects.create(
|
||||||
|
preview="hi", user=self.local_user
|
||||||
|
)
|
||||||
|
view = views.Announcement.as_view()
|
||||||
|
form = forms.AnnouncementForm(instance=announcement)
|
||||||
|
form.data["preview"] = "hi hi"
|
||||||
|
form.data["start_date"] = "2021-05-20"
|
||||||
|
form.data["user"] = self.local_user.id
|
||||||
|
|
||||||
|
request = self.factory.post("", form.data)
|
||||||
|
request.user = self.local_user
|
||||||
|
request.user.is_superuser = True
|
||||||
|
|
||||||
|
view(request, announcement.id)
|
||||||
|
|
||||||
|
announcement.refresh_from_db()
|
||||||
|
self.assertEqual(announcement.preview, "hi hi")
|
||||||
|
self.assertEqual(announcement.start_date.year, 2021)
|
||||||
|
self.assertEqual(announcement.start_date.month, 5)
|
||||||
|
self.assertEqual(announcement.start_date.day, 20)
|
||||||
|
|
||||||
|
def test_delete_announcement(self):
|
||||||
|
"""delete an announcement"""
|
||||||
|
announcement = models.Announcement.objects.create(
|
||||||
|
preview="hi", user=self.local_user
|
||||||
|
)
|
||||||
|
view = views.delete_announcement
|
||||||
|
|
||||||
|
request = self.factory.post("")
|
||||||
|
request.user = self.local_user
|
||||||
|
request.user.is_superuser = True
|
||||||
|
|
||||||
|
view(request, announcement.id)
|
||||||
|
|
||||||
|
self.assertFalse(models.Announcement.objects.exists())
|
||||||
|
|
||||||
|
def test_view_announcement(self):
|
||||||
|
"""display announcement on other pages"""
|
||||||
|
view = views.User.as_view()
|
||||||
|
request = self.factory.get("")
|
||||||
|
request.user = self.local_user
|
||||||
|
|
||||||
|
result = view(request, self.local_user.localname)
|
||||||
|
|
||||||
|
self.assertIsInstance(result, TemplateResponse)
|
||||||
|
result.render()
|
||||||
|
self.assertEqual(result.status_code, 200)
|
|
@ -53,6 +53,17 @@ class Views(TestCase):
|
||||||
self.assertEqual(data[0]["title"], "Test Book")
|
self.assertEqual(data[0]["title"], "Test Book")
|
||||||
self.assertEqual(data[0]["key"], "https://%s/book/%d" % (DOMAIN, self.book.id))
|
self.assertEqual(data[0]["key"], "https://%s/book/%d" % (DOMAIN, self.book.id))
|
||||||
|
|
||||||
|
def test_search_no_query(self):
|
||||||
|
"""just the search page"""
|
||||||
|
view = views.Search.as_view()
|
||||||
|
# we need a connector for this, sorry
|
||||||
|
request = self.factory.get("")
|
||||||
|
with patch("bookwyrm.views.search.is_api_request") as is_api:
|
||||||
|
is_api.return_value = False
|
||||||
|
response = view(request)
|
||||||
|
self.assertIsInstance(response, TemplateResponse)
|
||||||
|
response.render()
|
||||||
|
|
||||||
def test_search_books(self):
|
def test_search_books(self):
|
||||||
"""searches remote connectors"""
|
"""searches remote connectors"""
|
||||||
view = views.Search.as_view()
|
view = views.Search.as_view()
|
||||||
|
|
|
@ -56,6 +56,21 @@ urlpatterns = [
|
||||||
),
|
),
|
||||||
# admin
|
# admin
|
||||||
re_path(r"^settings/site-settings/?$", views.Site.as_view(), name="settings-site"),
|
re_path(r"^settings/site-settings/?$", views.Site.as_view(), name="settings-site"),
|
||||||
|
re_path(
|
||||||
|
r"^settings/announcements/?$",
|
||||||
|
views.Announcements.as_view(),
|
||||||
|
name="settings-announcements",
|
||||||
|
),
|
||||||
|
re_path(
|
||||||
|
r"^settings/announcements/(?P<announcement_id>\d+)/?$",
|
||||||
|
views.Announcement.as_view(),
|
||||||
|
name="settings-announcements",
|
||||||
|
),
|
||||||
|
re_path(
|
||||||
|
r"^settings/announcements/(?P<announcement_id>\d+)/delete/?$",
|
||||||
|
views.delete_announcement,
|
||||||
|
name="settings-announcements-delete",
|
||||||
|
),
|
||||||
re_path(
|
re_path(
|
||||||
r"^settings/email-preview/?$",
|
r"^settings/email-preview/?$",
|
||||||
views.site.email_preview,
|
views.site.email_preview,
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
""" make sure all our nice views are available """
|
""" make sure all our nice views are available """
|
||||||
|
from .announcements import Announcements, Announcement, delete_announcement
|
||||||
from .authentication import Login, Register, Logout
|
from .authentication import Login, Register, Logout
|
||||||
from .author import Author, EditAuthor
|
from .author import Author, EditAuthor
|
||||||
from .block import Block, unblock
|
from .block import Block, unblock
|
||||||
|
|
97
bookwyrm/views/announcements.py
Normal file
97
bookwyrm/views/announcements.py
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
""" make announcements """
|
||||||
|
from django.contrib.auth.decorators import login_required, permission_required
|
||||||
|
from django.core.paginator import Paginator
|
||||||
|
from django.shortcuts import get_object_or_404, redirect
|
||||||
|
from django.template.response import TemplateResponse
|
||||||
|
from django.utils.decorators import method_decorator
|
||||||
|
from django.views import View
|
||||||
|
|
||||||
|
from bookwyrm import forms, models
|
||||||
|
from bookwyrm.settings import PAGE_LENGTH
|
||||||
|
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
@method_decorator(login_required, name="dispatch")
|
||||||
|
@method_decorator(
|
||||||
|
permission_required("bookwyrm.edit_instance_settings", raise_exception=True),
|
||||||
|
name="dispatch",
|
||||||
|
)
|
||||||
|
class Announcements(View):
|
||||||
|
"""tell everyone"""
|
||||||
|
|
||||||
|
def get(self, request):
|
||||||
|
"""view and create announcements"""
|
||||||
|
announcements = models.Announcement.objects
|
||||||
|
|
||||||
|
sort = request.GET.get("sort", "-created_date")
|
||||||
|
sort_fields = [
|
||||||
|
"created_date",
|
||||||
|
"preview",
|
||||||
|
"start_date",
|
||||||
|
"end_date",
|
||||||
|
"active",
|
||||||
|
]
|
||||||
|
if sort in sort_fields + ["-{:s}".format(f) for f in sort_fields]:
|
||||||
|
announcements = announcements.order_by(sort)
|
||||||
|
data = {
|
||||||
|
"announcements": Paginator(announcements, PAGE_LENGTH).get_page(
|
||||||
|
request.GET.get("page")
|
||||||
|
),
|
||||||
|
"form": forms.AnnouncementForm(),
|
||||||
|
"sort": sort,
|
||||||
|
}
|
||||||
|
return TemplateResponse(request, "settings/announcements.html", data)
|
||||||
|
|
||||||
|
def post(self, request):
|
||||||
|
"""edit the site settings"""
|
||||||
|
form = forms.AnnouncementForm(request.POST)
|
||||||
|
if form.is_valid():
|
||||||
|
form.save()
|
||||||
|
# reset the create form
|
||||||
|
form = forms.AnnouncementForm()
|
||||||
|
data = {
|
||||||
|
"announcements": Paginator(
|
||||||
|
models.Announcement.objects.all(), PAGE_LENGTH
|
||||||
|
).get_page(request.GET.get("page")),
|
||||||
|
"form": form,
|
||||||
|
}
|
||||||
|
return TemplateResponse(request, "settings/announcements.html", data)
|
||||||
|
|
||||||
|
|
||||||
|
@method_decorator(login_required, name="dispatch")
|
||||||
|
@method_decorator(
|
||||||
|
permission_required("bookwyrm.edit_instance_settings", raise_exception=True),
|
||||||
|
name="dispatch",
|
||||||
|
)
|
||||||
|
class Announcement(View):
|
||||||
|
"""edit an announcement"""
|
||||||
|
|
||||||
|
def get(self, request, announcement_id):
|
||||||
|
"""view announcement"""
|
||||||
|
announcement = get_object_or_404(models.Announcement, id=announcement_id)
|
||||||
|
data = {
|
||||||
|
"announcement": announcement,
|
||||||
|
"form": forms.AnnouncementForm(instance=announcement),
|
||||||
|
}
|
||||||
|
return TemplateResponse(request, "settings/announcement.html", data)
|
||||||
|
|
||||||
|
def post(self, request, announcement_id):
|
||||||
|
"""edit announcement"""
|
||||||
|
announcement = get_object_or_404(models.Announcement, id=announcement_id)
|
||||||
|
form = forms.AnnouncementForm(request.POST, instance=announcement)
|
||||||
|
if form.is_valid():
|
||||||
|
announcement = form.save()
|
||||||
|
data = {
|
||||||
|
"announcement": announcement,
|
||||||
|
"form": form,
|
||||||
|
}
|
||||||
|
return TemplateResponse(request, "settings/announcement.html", data)
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required("bookwyrm.edit_instance_settings", raise_exception=True)
|
||||||
|
def delete_announcement(_, announcement_id):
|
||||||
|
"""delete announcement"""
|
||||||
|
announcement = get_object_or_404(models.Announcement, id=announcement_id)
|
||||||
|
announcement.delete()
|
||||||
|
return redirect("settings-announcements")
|
|
@ -319,7 +319,10 @@ def upload_cover(request, book_id):
|
||||||
|
|
||||||
def set_cover_from_url(url):
|
def set_cover_from_url(url):
|
||||||
"""load it from a url"""
|
"""load it from a url"""
|
||||||
image_file = get_image(url)
|
try:
|
||||||
|
image_file = get_image(url)
|
||||||
|
except: # pylint: disable=bare-except
|
||||||
|
return None
|
||||||
if not image_file:
|
if not image_file:
|
||||||
return None
|
return None
|
||||||
image_name = str(uuid4()) + "." + url.split(".")[-1]
|
image_name = str(uuid4()) + "." + url.split(".")[-1]
|
||||||
|
|
|
@ -120,9 +120,9 @@ class GetStartedUsers(View):
|
||||||
)
|
)
|
||||||
|
|
||||||
if user_results.count() < 5:
|
if user_results.count() < 5:
|
||||||
suggested_users = get_suggested_users(request.user)
|
user_results = list(user_results) + list(get_suggested_users(request.user))
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"suggested_users": list(user_results) + list(suggested_users),
|
"suggested_users": user_results,
|
||||||
}
|
}
|
||||||
return TemplateResponse(request, "get_started/users.html", data)
|
return TemplateResponse(request, "get_started/users.html", data)
|
||||||
|
|
|
@ -7,6 +7,7 @@ from django.http import HttpResponseBadRequest
|
||||||
from django.shortcuts import get_object_or_404, redirect
|
from django.shortcuts import get_object_or_404, redirect
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.views import View
|
from django.views import View
|
||||||
|
|
||||||
from bookwyrm import forms, models
|
from bookwyrm import forms, models
|
||||||
|
@ -62,8 +63,8 @@ class Import(View):
|
||||||
include_reviews,
|
include_reviews,
|
||||||
privacy,
|
privacy,
|
||||||
)
|
)
|
||||||
except (UnicodeDecodeError, ValueError):
|
except (UnicodeDecodeError, ValueError, KeyError):
|
||||||
return HttpResponseBadRequest("Not a valid csv file")
|
return HttpResponseBadRequest(_("Not a valid csv file"))
|
||||||
|
|
||||||
importer.start_import(job)
|
importer.start_import(job)
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ class PasswordResetRequest(View):
|
||||||
"""create a password reset token"""
|
"""create a password reset token"""
|
||||||
email = request.POST.get("email")
|
email = request.POST.get("email")
|
||||||
try:
|
try:
|
||||||
user = models.User.objects.get(email=email)
|
user = models.User.objects.get(email=email, email__isnull=False)
|
||||||
except models.User.DoesNotExist:
|
except models.User.DoesNotExist:
|
||||||
data = {"error": _("No user with that email address was found.")}
|
data = {"error": _("No user with that email address was found.")}
|
||||||
return TemplateResponse(request, "password_reset_request.html", data)
|
return TemplateResponse(request, "password_reset_request.html", data)
|
||||||
|
|
|
@ -7,8 +7,8 @@ from .helpers import get_user_from_username, privacy_filter
|
||||||
class RssFeed(Feed):
|
class RssFeed(Feed):
|
||||||
"""serialize user's posts in rss feed"""
|
"""serialize user's posts in rss feed"""
|
||||||
|
|
||||||
description_template = "snippets/rss_content.html"
|
description_template = "rss/content.html"
|
||||||
title_template = "snippets/rss_title.html"
|
title_template = "rss/title.html"
|
||||||
|
|
||||||
def get_object(self, request, username):
|
def get_object(self, request, username):
|
||||||
"""the user who's posts get serialized"""
|
"""the user who's posts get serialized"""
|
||||||
|
|
|
@ -36,7 +36,7 @@ class Search(View):
|
||||||
)
|
)
|
||||||
return JsonResponse([r.json() for r in book_results], safe=False)
|
return JsonResponse([r.json() for r in book_results], safe=False)
|
||||||
|
|
||||||
if not search_type:
|
if query and not search_type:
|
||||||
search_type = "user" if "@" in query else "book"
|
search_type = "user" if "@" in query else "book"
|
||||||
|
|
||||||
endpoints = {
|
endpoints = {
|
||||||
|
|
|
@ -21,7 +21,7 @@ from .reading import edit_readthrough
|
||||||
class CreateStatus(View):
|
class CreateStatus(View):
|
||||||
"""the view for *posting*"""
|
"""the view for *posting*"""
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request, status_type): # pylint: disable=unused-argument
|
||||||
"""compose view (used for delete-and-redraft"""
|
"""compose view (used for delete-and-redraft"""
|
||||||
book = get_object_or_404(models.Edition, id=request.GET.get("book"))
|
book = get_object_or_404(models.Edition, id=request.GET.get("book"))
|
||||||
data = {"book": book}
|
data = {"book": book}
|
||||||
|
|
|
@ -95,7 +95,7 @@ class Followers(View):
|
||||||
data = {
|
data = {
|
||||||
"user": user,
|
"user": user,
|
||||||
"is_self": request.user.id == user.id,
|
"is_self": request.user.id == user.id,
|
||||||
"follow_list": paginated.page(request.GET.get("page", 1)),
|
"follow_list": paginated.get_page(request.GET.get("page")),
|
||||||
}
|
}
|
||||||
return TemplateResponse(request, "user/relationships/followers.html", data)
|
return TemplateResponse(request, "user/relationships/followers.html", data)
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ class Following(View):
|
||||||
data = {
|
data = {
|
||||||
"user": user,
|
"user": user,
|
||||||
"is_self": request.user.id == user.id,
|
"is_self": request.user.id == user.id,
|
||||||
"follow_list": paginated.page(request.GET.get("page", 1)),
|
"follow_list": paginated.get_page(request.GET.get("page")),
|
||||||
}
|
}
|
||||||
return TemplateResponse(request, "user/relationships/following.html", data)
|
return TemplateResponse(request, "user/relationships/following.html", data)
|
||||||
|
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.1\n"
|
"Project-Id-Version: 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-05-14 15:12-0700\n"
|
"POT-Creation-Date: 2021-05-20 14:40-0700\n"
|
||||||
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
|
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
|
||||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||||
"Language-Team: English <LL@li.org>\n"
|
"Language-Team: English <LL@li.org>\n"
|
||||||
|
@ -47,29 +47,29 @@ msgstr ""
|
||||||
msgid "Unlimited"
|
msgid "Unlimited"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/forms.py:293
|
#: bookwyrm/forms.py:299
|
||||||
msgid "List Order"
|
msgid "List Order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/forms.py:294
|
#: bookwyrm/forms.py:300
|
||||||
msgid "Book Title"
|
msgid "Book Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:34
|
#: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
|
||||||
#: bookwyrm/templates/user/shelf/shelf.html:84
|
#: bookwyrm/templates/user/shelf/shelf.html:84
|
||||||
#: bookwyrm/templates/user/shelf/shelf.html:115
|
#: bookwyrm/templates/user/shelf/shelf.html:115
|
||||||
msgid "Rating"
|
msgid "Rating"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:101
|
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/forms.py:301
|
#: bookwyrm/forms.py:307
|
||||||
msgid "Ascending"
|
msgid "Ascending"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/forms.py:302
|
#: bookwyrm/forms.py:308
|
||||||
msgid "Descending"
|
msgid "Descending"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ msgstr ""
|
||||||
msgid "%(value)s is not a valid username"
|
msgid "%(value)s is not a valid username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:156
|
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:155
|
||||||
msgid "username"
|
msgid "username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -136,34 +136,34 @@ msgstr ""
|
||||||
msgid "Edit Author"
|
msgid "Edit Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/author.html:33
|
#: bookwyrm/templates/author/author.html:32
|
||||||
#: bookwyrm/templates/author/edit_author.html:38
|
#: bookwyrm/templates/author/edit_author.html:38
|
||||||
msgid "Aliases:"
|
msgid "Aliases:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/author.html:39
|
#: bookwyrm/templates/author/author.html:38
|
||||||
msgid "Born:"
|
msgid "Born:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/author.html:45
|
#: bookwyrm/templates/author/author.html:44
|
||||||
msgid "Died:"
|
msgid "Died:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/author.html:52
|
#: bookwyrm/templates/author/author.html:51
|
||||||
msgid "Wikipedia"
|
msgid "Wikipedia"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/author.html:56
|
#: bookwyrm/templates/author/author.html:55
|
||||||
#: bookwyrm/templates/book/book.html:81
|
#: bookwyrm/templates/book/book.html:78
|
||||||
msgid "View on OpenLibrary"
|
msgid "View on OpenLibrary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/author.html:61
|
#: bookwyrm/templates/author/author.html:60
|
||||||
#: bookwyrm/templates/book/book.html:84
|
#: bookwyrm/templates/book/book.html:81
|
||||||
msgid "View on Inventaire"
|
msgid "View on Inventaire"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/author.html:75
|
#: bookwyrm/templates/author/author.html:74
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Books by %(name)s"
|
msgid "Books by %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -200,8 +200,9 @@ msgid "Name:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/edit_author.html:40
|
#: bookwyrm/templates/author/edit_author.html:40
|
||||||
#: bookwyrm/templates/book/edit_book.html:128
|
#: bookwyrm/templates/book/edit_book.html:132
|
||||||
#: bookwyrm/templates/book/edit_book.html:165
|
#: bookwyrm/templates/book/edit_book.html:141
|
||||||
|
#: bookwyrm/templates/book/edit_book.html:178
|
||||||
msgid "Separate multiple values with commas."
|
msgid "Separate multiple values with commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -226,11 +227,11 @@ msgid "Author Identifiers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/edit_author.html:74
|
#: bookwyrm/templates/author/edit_author.html:74
|
||||||
#: bookwyrm/templates/book/edit_book.html:223
|
|
||||||
msgid "Openlibrary key:"
|
msgid "Openlibrary key:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/edit_author.html:79
|
#: bookwyrm/templates/author/edit_author.html:79
|
||||||
|
#: bookwyrm/templates/book/edit_book.html:243
|
||||||
msgid "Inventaire ID:"
|
msgid "Inventaire ID:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -243,12 +244,13 @@ msgid "Goodreads key:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/edit_author.html:98
|
#: bookwyrm/templates/author/edit_author.html:98
|
||||||
#: bookwyrm/templates/book/book.html:127
|
#: bookwyrm/templates/book/book.html:124
|
||||||
#: bookwyrm/templates/book/edit_book.html:241
|
#: bookwyrm/templates/book/edit_book.html:263
|
||||||
#: bookwyrm/templates/lists/form.html:42
|
#: bookwyrm/templates/lists/form.html:42
|
||||||
#: bookwyrm/templates/preferences/edit_user.html:70
|
#: bookwyrm/templates/preferences/edit_user.html:70
|
||||||
|
#: bookwyrm/templates/settings/announcement_form.html:65
|
||||||
#: bookwyrm/templates/settings/edit_server.html:68
|
#: bookwyrm/templates/settings/edit_server.html:68
|
||||||
#: bookwyrm/templates/settings/federated_server.html:94
|
#: bookwyrm/templates/settings/federated_server.html:98
|
||||||
#: bookwyrm/templates/settings/site.html:97
|
#: bookwyrm/templates/settings/site.html:97
|
||||||
#: bookwyrm/templates/snippets/readthrough.html:77
|
#: bookwyrm/templates/snippets/readthrough.html:77
|
||||||
#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42
|
#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42
|
||||||
|
@ -259,11 +261,11 @@ msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/author/edit_author.html:99
|
#: bookwyrm/templates/author/edit_author.html:99
|
||||||
#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180
|
#: bookwyrm/templates/book/book.html:125 bookwyrm/templates/book/book.html:174
|
||||||
#: bookwyrm/templates/book/cover_modal.html:32
|
#: bookwyrm/templates/book/cover_modal.html:32
|
||||||
#: bookwyrm/templates/book/edit_book.html:242
|
#: bookwyrm/templates/book/edit_book.html:264
|
||||||
#: bookwyrm/templates/moderation/report_modal.html:34
|
#: bookwyrm/templates/moderation/report_modal.html:34
|
||||||
#: bookwyrm/templates/settings/federated_server.html:95
|
#: bookwyrm/templates/settings/federated_server.html:99
|
||||||
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17
|
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17
|
||||||
#: bookwyrm/templates/snippets/goal_form.html:32
|
#: bookwyrm/templates/snippets/goal_form.html:32
|
||||||
#: bookwyrm/templates/snippets/readthrough.html:78
|
#: bookwyrm/templates/snippets/readthrough.html:78
|
||||||
|
@ -274,102 +276,98 @@ msgstr ""
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:33
|
#: bookwyrm/templates/book/book.html:31
|
||||||
#: bookwyrm/templates/discover/large-book.html:25
|
#: bookwyrm/templates/discover/large-book.html:25
|
||||||
#: bookwyrm/templates/discover/small-book.html:19
|
#: bookwyrm/templates/discover/small-book.html:19
|
||||||
msgid "by"
|
msgid "by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:41 bookwyrm/templates/book/book.html:42
|
#: bookwyrm/templates/book/book.html:39 bookwyrm/templates/book/book.html:40
|
||||||
msgid "Edit Book"
|
msgid "Edit Book"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:60
|
#: bookwyrm/templates/book/book.html:57
|
||||||
#: bookwyrm/templates/book/cover_modal.html:5
|
#: bookwyrm/templates/book/cover_modal.html:5
|
||||||
msgid "Add cover"
|
msgid "Add cover"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:64
|
#: bookwyrm/templates/book/book.html:61
|
||||||
msgid "Failed to load cover"
|
msgid "Failed to load cover"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:104
|
#: bookwyrm/templates/book/book.html:101
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "(%(review_count)s review)"
|
msgid "(%(review_count)s review)"
|
||||||
msgid_plural "(%(review_count)s reviews)"
|
msgid_plural "(%(review_count)s reviews)"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:116
|
#: bookwyrm/templates/book/book.html:113
|
||||||
msgid "Add Description"
|
msgid "Add Description"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:123
|
#: bookwyrm/templates/book/book.html:120
|
||||||
#: bookwyrm/templates/book/edit_book.html:107
|
#: bookwyrm/templates/book/edit_book.html:108
|
||||||
#: bookwyrm/templates/lists/form.html:12
|
#: bookwyrm/templates/lists/form.html:12
|
||||||
msgid "Description:"
|
msgid "Description:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:137
|
#: bookwyrm/templates/book/book.html:134
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(path)s/editions\">%(count)s editions</a>"
|
msgid "<a href=\"%(path)s/editions\">%(count)s editions</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:145
|
#: bookwyrm/templates/book/book.html:142
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "This edition is on your <a href=\"%(path)s\">%(shelf_name)s</a> shelf."
|
msgid "This edition is on your <a href=\"%(path)s\">%(shelf_name)s</a> shelf."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:151
|
#: bookwyrm/templates/book/book.html:148
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "A <a href=\"%(book_path)s\">different edition</a> of this book is on your <a href=\"%(shelf_path)s\">%(shelf_name)s</a> shelf."
|
msgid "A <a href=\"%(book_path)s\">different edition</a> of this book is on your <a href=\"%(shelf_path)s\">%(shelf_name)s</a> shelf."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:162
|
#: bookwyrm/templates/book/book.html:159
|
||||||
msgid "Your reading activity"
|
msgid "Your reading activity"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:165
|
#: bookwyrm/templates/book/book.html:162
|
||||||
msgid "Add read dates"
|
msgid "Add read dates"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:170
|
#: bookwyrm/templates/book/book.html:171
|
||||||
msgid "You don't have any reading activity for this book."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:177
|
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:203
|
#: bookwyrm/templates/book/book.html:181
|
||||||
|
msgid "You don't have any reading activity for this book."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/book/book.html:200
|
||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:208
|
#: bookwyrm/templates/book/book.html:205
|
||||||
msgid "Your reviews"
|
msgid "Your reviews"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:214
|
#: bookwyrm/templates/book/book.html:211
|
||||||
msgid "Your comments"
|
msgid "Your comments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:220
|
#: bookwyrm/templates/book/book.html:217
|
||||||
msgid "Your quotes"
|
msgid "Your quotes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:255
|
#: bookwyrm/templates/book/book.html:253
|
||||||
msgid "rated it"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:276
|
|
||||||
msgid "Subjects"
|
msgid "Subjects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:288
|
#: bookwyrm/templates/book/book.html:265
|
||||||
msgid "Places"
|
msgid "Places"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:299 bookwyrm/templates/layout.html:65
|
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
|
||||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||||
#: bookwyrm/templates/search/layout.html:25
|
#: bookwyrm/templates/search/layout.html:25
|
||||||
#: bookwyrm/templates/search/layout.html:50
|
#: bookwyrm/templates/search/layout.html:50
|
||||||
|
@ -377,37 +375,37 @@ msgstr ""
|
||||||
msgid "Lists"
|
msgid "Lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:310
|
#: bookwyrm/templates/book/book.html:287
|
||||||
msgid "Add to list"
|
msgid "Add to list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book.html:320
|
#: bookwyrm/templates/book/book.html:297
|
||||||
#: bookwyrm/templates/book/cover_modal.html:31
|
#: bookwyrm/templates/book/cover_modal.html:31
|
||||||
#: bookwyrm/templates/lists/list.html:164
|
#: bookwyrm/templates/lists/list.html:164
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book_identifiers.html:8
|
#: bookwyrm/templates/book/book_identifiers.html:7
|
||||||
msgid "ISBN:"
|
msgid "ISBN:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book_identifiers.html:15
|
#: bookwyrm/templates/book/book_identifiers.html:14
|
||||||
#: bookwyrm/templates/book/edit_book.html:227
|
#: bookwyrm/templates/book/edit_book.html:248
|
||||||
msgid "OCLC Number:"
|
msgid "OCLC Number:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/book_identifiers.html:22
|
#: bookwyrm/templates/book/book_identifiers.html:21
|
||||||
#: bookwyrm/templates/book/edit_book.html:231
|
#: bookwyrm/templates/book/edit_book.html:253
|
||||||
msgid "ASIN:"
|
msgid "ASIN:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/cover_modal.html:17
|
#: bookwyrm/templates/book/cover_modal.html:17
|
||||||
#: bookwyrm/templates/book/edit_book.html:179
|
#: bookwyrm/templates/book/edit_book.html:192
|
||||||
msgid "Upload cover:"
|
msgid "Upload cover:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/cover_modal.html:23
|
#: bookwyrm/templates/book/cover_modal.html:23
|
||||||
#: bookwyrm/templates/book/edit_book.html:185
|
#: bookwyrm/templates/book/edit_book.html:198
|
||||||
msgid "Load cover from url:"
|
msgid "Load cover from url:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -463,81 +461,89 @@ msgstr ""
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:92
|
#: bookwyrm/templates/book/edit_book.html:93
|
||||||
msgid "Title:"
|
msgid "Title:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:100
|
#: bookwyrm/templates/book/edit_book.html:101
|
||||||
msgid "Subtitle:"
|
msgid "Subtitle:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:113
|
#: bookwyrm/templates/book/edit_book.html:114
|
||||||
msgid "Series:"
|
msgid "Series:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:120
|
#: bookwyrm/templates/book/edit_book.html:122
|
||||||
msgid "Series number:"
|
msgid "Series number:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:126
|
#: bookwyrm/templates/book/edit_book.html:130
|
||||||
|
msgid "Languages:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/book/edit_book.html:139
|
||||||
msgid "Publisher:"
|
msgid "Publisher:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:135
|
#: bookwyrm/templates/book/edit_book.html:148
|
||||||
msgid "First published date:"
|
msgid "First published date:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:143
|
#: bookwyrm/templates/book/edit_book.html:156
|
||||||
msgid "Published date:"
|
msgid "Published date:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:152
|
#: bookwyrm/templates/book/edit_book.html:165
|
||||||
msgid "Authors"
|
msgid "Authors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:158
|
#: bookwyrm/templates/book/edit_book.html:171
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Remove <a href=\"%(path)s\">%(name)s</a>"
|
msgid "Remove <a href=\"%(path)s\">%(name)s</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:163
|
#: bookwyrm/templates/book/edit_book.html:176
|
||||||
msgid "Add Authors:"
|
msgid "Add Authors:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:164
|
#: bookwyrm/templates/book/edit_book.html:177
|
||||||
msgid "John Doe, Jane Smith"
|
msgid "John Doe, Jane Smith"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:170
|
#: bookwyrm/templates/book/edit_book.html:183
|
||||||
#: bookwyrm/templates/user/shelf/shelf.html:77
|
#: bookwyrm/templates/user/shelf/shelf.html:77
|
||||||
msgid "Cover"
|
msgid "Cover"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:198
|
#: bookwyrm/templates/book/edit_book.html:211
|
||||||
msgid "Physical Properties"
|
msgid "Physical Properties"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:199
|
#: bookwyrm/templates/book/edit_book.html:212
|
||||||
#: bookwyrm/templates/book/format_filter.html:5
|
#: bookwyrm/templates/book/format_filter.html:5
|
||||||
msgid "Format:"
|
msgid "Format:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:207
|
#: bookwyrm/templates/book/edit_book.html:220
|
||||||
msgid "Pages:"
|
msgid "Pages:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:214
|
#: bookwyrm/templates/book/edit_book.html:227
|
||||||
msgid "Book Identifiers"
|
msgid "Book Identifiers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:215
|
#: bookwyrm/templates/book/edit_book.html:228
|
||||||
msgid "ISBN 13:"
|
msgid "ISBN 13:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit_book.html:219
|
#: bookwyrm/templates/book/edit_book.html:233
|
||||||
msgid "ISBN 10:"
|
msgid "ISBN 10:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/book/edit_book.html:238
|
||||||
|
msgid "Openlibrary ID:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/editions.html:4
|
#: bookwyrm/templates/book/editions.html:4
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editions of %(book_title)s"
|
msgid "Editions of %(book_title)s"
|
||||||
|
@ -592,12 +598,17 @@ msgstr ""
|
||||||
msgid "Published by %(publisher)s."
|
msgid "Published by %(publisher)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/book/rating.html:13
|
||||||
|
msgid "rated it"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/components/inline_form.html:8
|
#: bookwyrm/templates/components/inline_form.html:8
|
||||||
#: bookwyrm/templates/components/modal.html:11
|
#: bookwyrm/templates/components/modal.html:11
|
||||||
#: bookwyrm/templates/feed/feed_layout.html:69
|
#: bookwyrm/templates/feed/feed_layout.html:69
|
||||||
#: bookwyrm/templates/get_started/layout.html:19
|
#: bookwyrm/templates/get_started/layout.html:19
|
||||||
#: bookwyrm/templates/get_started/layout.html:52
|
#: bookwyrm/templates/get_started/layout.html:52
|
||||||
#: bookwyrm/templates/search/book.html:32
|
#: bookwyrm/templates/search/book.html:32
|
||||||
|
#: bookwyrm/templates/snippets/announcement.html:18
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -619,7 +630,7 @@ msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/directory/directory.html:4
|
#: bookwyrm/templates/directory/directory.html:4
|
||||||
#: bookwyrm/templates/directory/directory.html:9
|
#: bookwyrm/templates/directory/directory.html:9
|
||||||
#: bookwyrm/templates/layout.html:93
|
#: bookwyrm/templates/layout.html:92
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -633,6 +644,7 @@ msgid "You can opt-out at any time in your <a href=\"%(path)s\">profile settings
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/directory/directory.html:29
|
#: bookwyrm/templates/directory/directory.html:29
|
||||||
|
#: bookwyrm/templates/snippets/announcement.html:34
|
||||||
#: bookwyrm/templates/snippets/goal_card.html:22
|
#: bookwyrm/templates/snippets/goal_card.html:22
|
||||||
msgid "Dismiss message"
|
msgid "Dismiss message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -723,7 +735,7 @@ msgid "Join %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/landing_layout.html:51
|
#: bookwyrm/templates/discover/landing_layout.html:51
|
||||||
#: bookwyrm/templates/login.html:48
|
#: bookwyrm/templates/login.html:51
|
||||||
msgid "This instance is closed"
|
msgid "This instance is closed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -819,7 +831,7 @@ msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/feed/direct_messages.html:10
|
#: bookwyrm/templates/feed/direct_messages.html:10
|
||||||
#: bookwyrm/templates/layout.html:88
|
#: bookwyrm/templates/layout.html:87
|
||||||
msgid "Direct Messages"
|
msgid "Direct Messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -875,7 +887,7 @@ msgid "Updates"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/feed/feed_layout.html:10
|
#: bookwyrm/templates/feed/feed_layout.html:10
|
||||||
#: bookwyrm/templates/layout.html:59
|
#: bookwyrm/templates/layout.html:58
|
||||||
#: bookwyrm/templates/user/shelf/books_header.html:3
|
#: bookwyrm/templates/user/shelf/books_header.html:3
|
||||||
msgid "Your books"
|
msgid "Your books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -949,7 +961,7 @@ msgstr ""
|
||||||
#: bookwyrm/templates/get_started/books.html:17
|
#: bookwyrm/templates/get_started/books.html:17
|
||||||
#: bookwyrm/templates/get_started/users.html:18
|
#: bookwyrm/templates/get_started/users.html:18
|
||||||
#: bookwyrm/templates/get_started/users.html:19
|
#: bookwyrm/templates/get_started/users.html:19
|
||||||
#: bookwyrm/templates/layout.html:38 bookwyrm/templates/layout.html:39
|
#: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
|
||||||
#: bookwyrm/templates/lists/list.html:124
|
#: bookwyrm/templates/lists/list.html:124
|
||||||
#: bookwyrm/templates/search/layout.html:4
|
#: bookwyrm/templates/search/layout.html:4
|
||||||
#: bookwyrm/templates/search/layout.html:9
|
#: bookwyrm/templates/search/layout.html:9
|
||||||
|
@ -1078,7 +1090,7 @@ msgid "%(username)s's %(year)s Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
|
#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
|
||||||
#: bookwyrm/templates/layout.html:98
|
#: bookwyrm/templates/layout.html:97
|
||||||
msgid "Import Books"
|
msgid "Import Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1179,7 +1191,7 @@ msgid "Imported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:12
|
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:12
|
||||||
#: bookwyrm/templates/login.html:43
|
#: bookwyrm/templates/login.html:46
|
||||||
msgid "Create an Account"
|
msgid "Create an Account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1204,23 +1216,23 @@ msgstr ""
|
||||||
msgid "Matching Books"
|
msgid "Matching Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:34
|
#: bookwyrm/templates/layout.html:33
|
||||||
msgid "Search for a book or user"
|
msgid "Search for a book or user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:48 bookwyrm/templates/layout.html:49
|
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/layout.html:48
|
||||||
msgid "Main navigation menu"
|
msgid "Main navigation menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:62
|
#: bookwyrm/templates/layout.html:61
|
||||||
msgid "Feed"
|
msgid "Feed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:103
|
#: bookwyrm/templates/layout.html:102
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:112
|
#: bookwyrm/templates/layout.html:111
|
||||||
#: bookwyrm/templates/settings/admin_layout.html:31
|
#: bookwyrm/templates/settings/admin_layout.html:31
|
||||||
#: bookwyrm/templates/settings/manage_invite_requests.html:15
|
#: bookwyrm/templates/settings/manage_invite_requests.html:15
|
||||||
#: bookwyrm/templates/settings/manage_invites.html:3
|
#: bookwyrm/templates/settings/manage_invites.html:3
|
||||||
|
@ -1228,61 +1240,61 @@ msgstr ""
|
||||||
msgid "Invites"
|
msgid "Invites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:119
|
#: bookwyrm/templates/layout.html:118
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:126
|
#: bookwyrm/templates/layout.html:125
|
||||||
msgid "Log out"
|
msgid "Log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:134 bookwyrm/templates/layout.html:135
|
#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
|
||||||
#: bookwyrm/templates/notifications.html:6
|
#: bookwyrm/templates/notifications.html:6
|
||||||
#: bookwyrm/templates/notifications.html:11
|
#: bookwyrm/templates/notifications.html:11
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:155 bookwyrm/templates/layout.html:159
|
#: bookwyrm/templates/layout.html:154 bookwyrm/templates/layout.html:158
|
||||||
#: bookwyrm/templates/login.html:17
|
#: bookwyrm/templates/login.html:17
|
||||||
#: bookwyrm/templates/snippets/register_form.html:4
|
#: bookwyrm/templates/snippets/register_form.html:4
|
||||||
msgid "Username:"
|
msgid "Username:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:160
|
#: bookwyrm/templates/layout.html:159
|
||||||
msgid "password"
|
msgid "password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:161 bookwyrm/templates/login.html:36
|
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:36
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:164 bookwyrm/templates/login.html:10
|
#: bookwyrm/templates/layout.html:163 bookwyrm/templates/login.html:10
|
||||||
#: bookwyrm/templates/login.html:33
|
#: bookwyrm/templates/login.html:33
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:172
|
#: bookwyrm/templates/layout.html:171
|
||||||
msgid "Join"
|
msgid "Join"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:198
|
#: bookwyrm/templates/layout.html:206
|
||||||
msgid "About this server"
|
msgid "About this server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:202
|
#: bookwyrm/templates/layout.html:210
|
||||||
msgid "Contact site admin"
|
msgid "Contact site admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:206
|
#: bookwyrm/templates/layout.html:214
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:213
|
#: bookwyrm/templates/layout.html:221
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
|
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:217
|
#: bookwyrm/templates/layout.html:225
|
||||||
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
|
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1353,6 +1365,7 @@ msgstr ""
|
||||||
#: bookwyrm/templates/lists/form.html:31
|
#: bookwyrm/templates/lists/form.html:31
|
||||||
#: bookwyrm/templates/moderation/reports.html:25
|
#: bookwyrm/templates/moderation/reports.html:25
|
||||||
#: bookwyrm/templates/search/book.html:30
|
#: bookwyrm/templates/search/book.html:30
|
||||||
|
#: bookwyrm/templates/snippets/announcement.html:16
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1436,11 +1449,11 @@ msgstr ""
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/login.html:49
|
#: bookwyrm/templates/login.html:52
|
||||||
msgid "Contact an administrator to get an invite"
|
msgid "Contact an administrator to get an invite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/login.html:59
|
#: bookwyrm/templates/login.html:63
|
||||||
msgid "More about this site"
|
msgid "More about this site"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1778,31 +1791,118 @@ msgid "Instance Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/admin_layout.html:48
|
#: bookwyrm/templates/settings/admin_layout.html:48
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:3
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:5
|
||||||
|
msgid "Announcements"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/admin_layout.html:52
|
||||||
#: bookwyrm/templates/settings/site.html:4
|
#: bookwyrm/templates/settings/site.html:4
|
||||||
#: bookwyrm/templates/settings/site.html:6
|
#: bookwyrm/templates/settings/site.html:6
|
||||||
msgid "Site Settings"
|
msgid "Site Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/admin_layout.html:51
|
#: bookwyrm/templates/settings/admin_layout.html:55
|
||||||
#: bookwyrm/templates/settings/site.html:13
|
#: bookwyrm/templates/settings/site.html:13
|
||||||
msgid "Instance Info"
|
msgid "Instance Info"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/admin_layout.html:52
|
#: bookwyrm/templates/settings/admin_layout.html:56
|
||||||
#: bookwyrm/templates/settings/site.html:39
|
#: bookwyrm/templates/settings/site.html:39
|
||||||
msgid "Images"
|
msgid "Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/admin_layout.html:53
|
#: bookwyrm/templates/settings/admin_layout.html:57
|
||||||
#: bookwyrm/templates/settings/site.html:59
|
#: bookwyrm/templates/settings/site.html:59
|
||||||
msgid "Footer Content"
|
msgid "Footer Content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/admin_layout.html:54
|
#: bookwyrm/templates/settings/admin_layout.html:58
|
||||||
#: bookwyrm/templates/settings/site.html:81
|
#: bookwyrm/templates/settings/site.html:81
|
||||||
msgid "Registration"
|
msgid "Registration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:3
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:6
|
||||||
|
msgid "Announcement"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:7
|
||||||
|
#: bookwyrm/templates/settings/federated_server.html:13
|
||||||
|
msgid "Back to list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:11
|
||||||
|
msgid "Edit Announcement"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:20
|
||||||
|
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:15
|
||||||
|
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:35
|
||||||
|
msgid "Visible:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:38
|
||||||
|
msgid "True"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:40
|
||||||
|
msgid "False"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:47
|
||||||
|
msgid "Start date:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:54
|
||||||
|
msgid "End date:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement.html:60
|
||||||
|
msgid "Active:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcement_form.html:5
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:8
|
||||||
|
msgid "Create Announcement"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:22
|
||||||
|
msgid "Date added"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:26
|
||||||
|
msgid "Preview"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:30
|
||||||
|
msgid "Start date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:34
|
||||||
|
msgid "End date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:38
|
||||||
|
#: bookwyrm/templates/settings/federation.html:30
|
||||||
|
#: bookwyrm/templates/settings/manage_invite_requests.html:44
|
||||||
|
#: bookwyrm/templates/settings/status_filter.html:5
|
||||||
|
#: bookwyrm/templates/user_admin/user_admin.html:34
|
||||||
|
msgid "Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:48
|
||||||
|
msgid "active"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/settings/announcements.html:48
|
||||||
|
msgid "inactive"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/edit_server.html:3
|
#: bookwyrm/templates/settings/edit_server.html:3
|
||||||
#: bookwyrm/templates/settings/edit_server.html:6
|
#: bookwyrm/templates/settings/edit_server.html:6
|
||||||
#: bookwyrm/templates/settings/edit_server.html:20
|
#: bookwyrm/templates/settings/edit_server.html:20
|
||||||
|
@ -1814,7 +1914,6 @@ msgid "Add server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/edit_server.html:7
|
#: bookwyrm/templates/settings/edit_server.html:7
|
||||||
#: bookwyrm/templates/settings/federated_server.html:13
|
|
||||||
#: bookwyrm/templates/settings/server_blocklist.html:7
|
#: bookwyrm/templates/settings/server_blocklist.html:7
|
||||||
msgid "Back to server list"
|
msgid "Back to server list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1829,7 +1928,7 @@ msgid "Instance:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/edit_server.html:37
|
#: bookwyrm/templates/settings/edit_server.html:37
|
||||||
#: bookwyrm/templates/settings/federated_server.html:30
|
#: bookwyrm/templates/settings/federated_server.html:31
|
||||||
#: bookwyrm/templates/user_admin/user_info.html:34
|
#: bookwyrm/templates/user_admin/user_info.html:34
|
||||||
msgid "Status:"
|
msgid "Status:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1840,13 +1939,13 @@ msgid "Blocked"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/edit_server.html:48
|
#: bookwyrm/templates/settings/edit_server.html:48
|
||||||
#: bookwyrm/templates/settings/federated_server.html:22
|
#: bookwyrm/templates/settings/federated_server.html:23
|
||||||
#: bookwyrm/templates/user_admin/user_info.html:26
|
#: bookwyrm/templates/user_admin/user_info.html:26
|
||||||
msgid "Software:"
|
msgid "Software:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/edit_server.html:55
|
#: bookwyrm/templates/settings/edit_server.html:55
|
||||||
#: bookwyrm/templates/settings/federated_server.html:26
|
#: bookwyrm/templates/settings/federated_server.html:27
|
||||||
#: bookwyrm/templates/user_admin/user_info.html:30
|
#: bookwyrm/templates/user_admin/user_info.html:30
|
||||||
msgid "Version:"
|
msgid "Version:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1859,88 +1958,81 @@ msgstr ""
|
||||||
msgid "Details"
|
msgid "Details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:37
|
#: bookwyrm/templates/settings/federated_server.html:39
|
||||||
#: bookwyrm/templates/user/layout.html:56
|
#: bookwyrm/templates/user/layout.html:56
|
||||||
msgid "Activity"
|
msgid "Activity"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:40
|
#: bookwyrm/templates/settings/federated_server.html:43
|
||||||
msgid "Users:"
|
msgid "Users:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:43
|
#: bookwyrm/templates/settings/federated_server.html:46
|
||||||
#: bookwyrm/templates/settings/federated_server.html:50
|
#: bookwyrm/templates/settings/federated_server.html:53
|
||||||
msgid "View all"
|
msgid "View all"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:47
|
#: bookwyrm/templates/settings/federated_server.html:50
|
||||||
msgid "Reports:"
|
msgid "Reports:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:54
|
#: bookwyrm/templates/settings/federated_server.html:57
|
||||||
msgid "Followed by us:"
|
msgid "Followed by us:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:60
|
#: bookwyrm/templates/settings/federated_server.html:63
|
||||||
msgid "Followed by them:"
|
msgid "Followed by them:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:66
|
#: bookwyrm/templates/settings/federated_server.html:69
|
||||||
msgid "Blocked by us:"
|
msgid "Blocked by us:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:78
|
#: bookwyrm/templates/settings/federated_server.html:82
|
||||||
#: bookwyrm/templates/user_admin/user_info.html:39
|
#: bookwyrm/templates/user_admin/user_info.html:39
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:81
|
#: bookwyrm/templates/settings/federated_server.html:85
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:101
|
#: bookwyrm/templates/settings/federated_server.html:105
|
||||||
#: bookwyrm/templates/user_admin/user_moderation_actions.html:3
|
#: bookwyrm/templates/user_admin/user_moderation_actions.html:3
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:105
|
#: bookwyrm/templates/settings/federated_server.html:109
|
||||||
#: bookwyrm/templates/snippets/block_button.html:5
|
#: bookwyrm/templates/snippets/block_button.html:5
|
||||||
msgid "Block"
|
msgid "Block"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:106
|
#: bookwyrm/templates/settings/federated_server.html:110
|
||||||
msgid "All users from this instance will be deactivated."
|
msgid "All users from this instance will be deactivated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:111
|
#: bookwyrm/templates/settings/federated_server.html:115
|
||||||
#: bookwyrm/templates/snippets/block_button.html:10
|
#: bookwyrm/templates/snippets/block_button.html:10
|
||||||
msgid "Un-block"
|
msgid "Un-block"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federated_server.html:112
|
#: bookwyrm/templates/settings/federated_server.html:116
|
||||||
msgid "All users from this instance will be re-activated."
|
msgid "All users from this instance will be re-activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation.html:20
|
#: bookwyrm/templates/settings/federation.html:19
|
||||||
#: bookwyrm/templates/user_admin/server_filter.html:5
|
#: bookwyrm/templates/user_admin/server_filter.html:5
|
||||||
msgid "Server name"
|
msgid "Server name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation.html:24
|
#: bookwyrm/templates/settings/federation.html:23
|
||||||
msgid "Date federated"
|
msgid "Date federated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation.html:28
|
#: bookwyrm/templates/settings/federation.html:27
|
||||||
msgid "Software"
|
msgid "Software"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation.html:31
|
|
||||||
#: bookwyrm/templates/settings/manage_invite_requests.html:44
|
|
||||||
#: bookwyrm/templates/settings/status_filter.html:5
|
|
||||||
#: bookwyrm/templates/user_admin/user_admin.html:34
|
|
||||||
msgid "Status"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/manage_invite_requests.html:4
|
#: bookwyrm/templates/settings/manage_invite_requests.html:4
|
||||||
#: bookwyrm/templates/settings/manage_invite_requests.html:11
|
#: bookwyrm/templates/settings/manage_invite_requests.html:11
|
||||||
#: bookwyrm/templates/settings/manage_invite_requests.html:25
|
#: bookwyrm/templates/settings/manage_invite_requests.html:25
|
||||||
|
@ -2124,6 +2216,11 @@ msgstr ""
|
||||||
msgid "Registration closed text:"
|
msgid "Registration closed text:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/snippets/announcement.html:31
|
||||||
|
#, python-format
|
||||||
|
msgid "Posted by <a href=\"%(user_path)s\">%(username)s</a>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/book_cover.html:31
|
#: bookwyrm/templates/snippets/book_cover.html:31
|
||||||
msgid "No cover"
|
msgid "No cover"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2229,11 +2326,6 @@ msgstr ""
|
||||||
msgid "You are deleting this readthrough and its %(count)s associated progress updates."
|
msgid "You are deleting this readthrough and its %(count)s associated progress updates."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:15
|
|
||||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/fav_button.html:9
|
#: bookwyrm/templates/snippets/fav_button.html:9
|
||||||
#: bookwyrm/templates/snippets/fav_button.html:11
|
#: bookwyrm/templates/snippets/fav_button.html:11
|
||||||
msgid "Like"
|
msgid "Like"
|
||||||
|
@ -2682,16 +2774,16 @@ msgstr ""
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/user/user.html:34
|
#: bookwyrm/templates/user/user.html:33
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all %(size)s"
|
msgid "View all %(size)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/user/user.html:47
|
#: bookwyrm/templates/user/user.html:46
|
||||||
msgid "View all books"
|
msgid "View all books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/user/user.html:60
|
#: bookwyrm/templates/user/user.html:59
|
||||||
msgid "User Activity"
|
msgid "User Activity"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2794,11 +2886,15 @@ msgstr ""
|
||||||
msgid "Access level:"
|
msgid "Access level:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/views/password.py:30 bookwyrm/views/password.py:35
|
#: bookwyrm/views/import_data.py:67
|
||||||
|
msgid "Not a valid csv file"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/views/password.py:32
|
||||||
msgid "No user with that email address was found."
|
msgid "No user with that email address was found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/views/password.py:44
|
#: bookwyrm/views/password.py:41
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "A password reset link sent to %s"
|
msgid "A password reset link sent to %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -8,5 +8,9 @@
|
||||||
"stylelint-config-standard": "^21.0.0",
|
"stylelint-config-standard": "^21.0.0",
|
||||||
"stylelint-order": "^4.1.0",
|
"stylelint-order": "^4.1.0",
|
||||||
"watch": "^1.0.2"
|
"watch": "^1.0.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"merge": "2.1.1",
|
||||||
|
"postcss": "8.2.10"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
418
yarn.lock
418
yarn.lock
|
@ -16,25 +16,25 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/highlight" "^7.12.13"
|
"@babel/highlight" "^7.12.13"
|
||||||
|
|
||||||
"@babel/compat-data@^7.13.12":
|
"@babel/compat-data@^7.13.15":
|
||||||
version "7.13.12"
|
version "7.14.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1"
|
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919"
|
||||||
integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==
|
integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==
|
||||||
|
|
||||||
"@babel/core@>=7.9.0":
|
"@babel/core@>=7.9.0":
|
||||||
version "7.13.14"
|
version "7.14.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.14.tgz#8e46ebbaca460a63497c797e574038ab04ae6d06"
|
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38"
|
||||||
integrity sha512-wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA==
|
integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.12.13"
|
"@babel/code-frame" "^7.12.13"
|
||||||
"@babel/generator" "^7.13.9"
|
"@babel/generator" "^7.14.3"
|
||||||
"@babel/helper-compilation-targets" "^7.13.13"
|
"@babel/helper-compilation-targets" "^7.13.16"
|
||||||
"@babel/helper-module-transforms" "^7.13.14"
|
"@babel/helper-module-transforms" "^7.14.2"
|
||||||
"@babel/helpers" "^7.13.10"
|
"@babel/helpers" "^7.14.0"
|
||||||
"@babel/parser" "^7.13.13"
|
"@babel/parser" "^7.14.3"
|
||||||
"@babel/template" "^7.12.13"
|
"@babel/template" "^7.12.13"
|
||||||
"@babel/traverse" "^7.13.13"
|
"@babel/traverse" "^7.14.2"
|
||||||
"@babel/types" "^7.13.14"
|
"@babel/types" "^7.14.2"
|
||||||
convert-source-map "^1.7.0"
|
convert-source-map "^1.7.0"
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
gensync "^1.0.0-beta.2"
|
gensync "^1.0.0-beta.2"
|
||||||
|
@ -42,33 +42,33 @@
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
source-map "^0.5.0"
|
source-map "^0.5.0"
|
||||||
|
|
||||||
"@babel/generator@^7.13.9":
|
"@babel/generator@^7.14.2", "@babel/generator@^7.14.3":
|
||||||
version "7.13.9"
|
version "7.14.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39"
|
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91"
|
||||||
integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==
|
integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.13.0"
|
"@babel/types" "^7.14.2"
|
||||||
jsesc "^2.5.1"
|
jsesc "^2.5.1"
|
||||||
source-map "^0.5.0"
|
source-map "^0.5.0"
|
||||||
|
|
||||||
"@babel/helper-compilation-targets@^7.13.13":
|
"@babel/helper-compilation-targets@^7.13.16":
|
||||||
version "7.13.13"
|
version "7.13.16"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5"
|
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c"
|
||||||
integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==
|
integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/compat-data" "^7.13.12"
|
"@babel/compat-data" "^7.13.15"
|
||||||
"@babel/helper-validator-option" "^7.12.17"
|
"@babel/helper-validator-option" "^7.12.17"
|
||||||
browserslist "^4.14.5"
|
browserslist "^4.14.5"
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
"@babel/helper-function-name@^7.12.13":
|
"@babel/helper-function-name@^7.14.2":
|
||||||
version "7.12.13"
|
version "7.14.2"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"
|
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2"
|
||||||
integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==
|
integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-get-function-arity" "^7.12.13"
|
"@babel/helper-get-function-arity" "^7.12.13"
|
||||||
"@babel/template" "^7.12.13"
|
"@babel/template" "^7.12.13"
|
||||||
"@babel/types" "^7.12.13"
|
"@babel/types" "^7.14.2"
|
||||||
|
|
||||||
"@babel/helper-get-function-arity@^7.12.13":
|
"@babel/helper-get-function-arity@^7.12.13":
|
||||||
version "7.12.13"
|
version "7.12.13"
|
||||||
|
@ -91,19 +91,19 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.13.12"
|
"@babel/types" "^7.13.12"
|
||||||
|
|
||||||
"@babel/helper-module-transforms@^7.13.14":
|
"@babel/helper-module-transforms@^7.14.2":
|
||||||
version "7.13.14"
|
version "7.14.2"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef"
|
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5"
|
||||||
integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==
|
integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-module-imports" "^7.13.12"
|
"@babel/helper-module-imports" "^7.13.12"
|
||||||
"@babel/helper-replace-supers" "^7.13.12"
|
"@babel/helper-replace-supers" "^7.13.12"
|
||||||
"@babel/helper-simple-access" "^7.13.12"
|
"@babel/helper-simple-access" "^7.13.12"
|
||||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||||
"@babel/helper-validator-identifier" "^7.12.11"
|
"@babel/helper-validator-identifier" "^7.14.0"
|
||||||
"@babel/template" "^7.12.13"
|
"@babel/template" "^7.12.13"
|
||||||
"@babel/traverse" "^7.13.13"
|
"@babel/traverse" "^7.14.2"
|
||||||
"@babel/types" "^7.13.14"
|
"@babel/types" "^7.14.2"
|
||||||
|
|
||||||
"@babel/helper-optimise-call-expression@^7.12.13":
|
"@babel/helper-optimise-call-expression@^7.12.13":
|
||||||
version "7.12.13"
|
version "7.12.13"
|
||||||
|
@ -113,14 +113,14 @@
|
||||||
"@babel/types" "^7.12.13"
|
"@babel/types" "^7.12.13"
|
||||||
|
|
||||||
"@babel/helper-replace-supers@^7.13.12":
|
"@babel/helper-replace-supers@^7.13.12":
|
||||||
version "7.13.12"
|
version "7.14.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804"
|
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600"
|
||||||
integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==
|
integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-member-expression-to-functions" "^7.13.12"
|
"@babel/helper-member-expression-to-functions" "^7.13.12"
|
||||||
"@babel/helper-optimise-call-expression" "^7.12.13"
|
"@babel/helper-optimise-call-expression" "^7.12.13"
|
||||||
"@babel/traverse" "^7.13.0"
|
"@babel/traverse" "^7.14.2"
|
||||||
"@babel/types" "^7.13.12"
|
"@babel/types" "^7.14.2"
|
||||||
|
|
||||||
"@babel/helper-simple-access@^7.13.12":
|
"@babel/helper-simple-access@^7.13.12":
|
||||||
version "7.13.12"
|
version "7.13.12"
|
||||||
|
@ -136,38 +136,38 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.12.13"
|
"@babel/types" "^7.12.13"
|
||||||
|
|
||||||
"@babel/helper-validator-identifier@^7.12.11":
|
"@babel/helper-validator-identifier@^7.14.0":
|
||||||
version "7.12.11"
|
version "7.14.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
|
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
|
||||||
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
|
integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
|
||||||
|
|
||||||
"@babel/helper-validator-option@^7.12.17":
|
"@babel/helper-validator-option@^7.12.17":
|
||||||
version "7.12.17"
|
version "7.12.17"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
|
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
|
||||||
integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
|
integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
|
||||||
|
|
||||||
"@babel/helpers@^7.13.10":
|
"@babel/helpers@^7.14.0":
|
||||||
version "7.13.10"
|
version "7.14.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8"
|
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62"
|
||||||
integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==
|
integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/template" "^7.12.13"
|
"@babel/template" "^7.12.13"
|
||||||
"@babel/traverse" "^7.13.0"
|
"@babel/traverse" "^7.14.0"
|
||||||
"@babel/types" "^7.13.0"
|
"@babel/types" "^7.14.0"
|
||||||
|
|
||||||
"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
|
"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
|
||||||
version "7.13.10"
|
version "7.14.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"
|
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf"
|
||||||
integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==
|
integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-validator-identifier" "^7.12.11"
|
"@babel/helper-validator-identifier" "^7.14.0"
|
||||||
chalk "^2.0.0"
|
chalk "^2.0.0"
|
||||||
js-tokens "^4.0.0"
|
js-tokens "^4.0.0"
|
||||||
|
|
||||||
"@babel/parser@^7.12.13", "@babel/parser@^7.13.13":
|
"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3":
|
||||||
version "7.13.13"
|
version "7.14.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298"
|
||||||
integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==
|
integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==
|
||||||
|
|
||||||
"@babel/template@^7.12.13":
|
"@babel/template@^7.12.13":
|
||||||
version "7.12.13"
|
version "7.12.13"
|
||||||
|
@ -178,33 +178,32 @@
|
||||||
"@babel/parser" "^7.12.13"
|
"@babel/parser" "^7.12.13"
|
||||||
"@babel/types" "^7.12.13"
|
"@babel/types" "^7.12.13"
|
||||||
|
|
||||||
"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13":
|
"@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2":
|
||||||
version "7.13.13"
|
version "7.14.2"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.13.tgz#39aa9c21aab69f74d948a486dd28a2dbdbf5114d"
|
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b"
|
||||||
integrity sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==
|
integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.12.13"
|
"@babel/code-frame" "^7.12.13"
|
||||||
"@babel/generator" "^7.13.9"
|
"@babel/generator" "^7.14.2"
|
||||||
"@babel/helper-function-name" "^7.12.13"
|
"@babel/helper-function-name" "^7.14.2"
|
||||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||||
"@babel/parser" "^7.13.13"
|
"@babel/parser" "^7.14.2"
|
||||||
"@babel/types" "^7.13.13"
|
"@babel/types" "^7.14.2"
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
globals "^11.1.0"
|
globals "^11.1.0"
|
||||||
|
|
||||||
"@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.13", "@babel/types@^7.13.14":
|
"@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2":
|
||||||
version "7.13.14"
|
version "7.14.2"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d"
|
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3"
|
||||||
integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==
|
integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-validator-identifier" "^7.12.11"
|
"@babel/helper-validator-identifier" "^7.14.0"
|
||||||
lodash "^4.17.19"
|
|
||||||
to-fast-properties "^2.0.0"
|
to-fast-properties "^2.0.0"
|
||||||
|
|
||||||
"@eslint/eslintrc@^0.4.0":
|
"@eslint/eslintrc@^0.4.1":
|
||||||
version "0.4.0"
|
version "0.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547"
|
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14"
|
||||||
integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==
|
integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^6.12.4"
|
ajv "^6.12.4"
|
||||||
debug "^4.1.1"
|
debug "^4.1.1"
|
||||||
|
@ -300,9 +299,9 @@ ajv@^6.10.0, ajv@^6.12.4:
|
||||||
uri-js "^4.2.2"
|
uri-js "^4.2.2"
|
||||||
|
|
||||||
ajv@^8.0.1:
|
ajv@^8.0.1:
|
||||||
version "8.0.2"
|
version "8.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.0.2.tgz#1396e27f208ed56dd5638ab5a251edeb1c91d402"
|
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b"
|
||||||
integrity sha512-V0HGxJd0PiDF0ecHYIesTOqfd1gJguwQUOYfMfAWnRsWQEXfc5ifbUFhD3Wjc+O+y7VAqL+g07prq9gHQ/JOZQ==
|
integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-deep-equal "^3.1.1"
|
fast-deep-equal "^3.1.1"
|
||||||
json-schema-traverse "^1.0.0"
|
json-schema-traverse "^1.0.0"
|
||||||
|
@ -374,9 +373,14 @@ bail@^1.0.0:
|
||||||
integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==
|
integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==
|
||||||
|
|
||||||
balanced-match@^1.0.0:
|
balanced-match@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||||
|
|
||||||
|
balanced-match@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9"
|
||||||
|
integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==
|
||||||
|
|
||||||
brace-expansion@^1.1.7:
|
brace-expansion@^1.1.7:
|
||||||
version "1.1.11"
|
version "1.1.11"
|
||||||
|
@ -394,23 +398,15 @@ braces@^3.0.1:
|
||||||
fill-range "^7.0.1"
|
fill-range "^7.0.1"
|
||||||
|
|
||||||
browserslist@^4.12.0, browserslist@^4.14.5:
|
browserslist@^4.12.0, browserslist@^4.14.5:
|
||||||
version "4.16.3"
|
version "4.16.6"
|
||||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717"
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
|
||||||
integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==
|
integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
caniuse-lite "^1.0.30001181"
|
caniuse-lite "^1.0.30001219"
|
||||||
colorette "^1.2.1"
|
colorette "^1.2.2"
|
||||||
electron-to-chromium "^1.3.649"
|
electron-to-chromium "^1.3.723"
|
||||||
escalade "^3.1.1"
|
escalade "^3.1.1"
|
||||||
node-releases "^1.1.70"
|
node-releases "^1.1.71"
|
||||||
|
|
||||||
call-bind@^1.0.0:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
|
||||||
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
|
|
||||||
dependencies:
|
|
||||||
function-bind "^1.1.1"
|
|
||||||
get-intrinsic "^1.0.2"
|
|
||||||
|
|
||||||
callsites@^3.0.0:
|
callsites@^3.0.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
|
@ -431,10 +427,10 @@ camelcase@^5.3.1:
|
||||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
|
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
|
||||||
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
|
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
|
||||||
|
|
||||||
caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181:
|
caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
|
||||||
version "1.0.30001205"
|
version "1.0.30001228"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001205.tgz#d79bf6a6fb13196b4bb46e5143a22ca0242e0ef8"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa"
|
||||||
integrity sha512-TL1GrS5V6LElbitPazidkBMD9sa448bQDDLrumDqaggmKFcuU2JW1wTOHJPukAcOMtEmLcmDJEzfRrf+GjM0Og==
|
integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==
|
||||||
|
|
||||||
chalk@^2.0.0, chalk@^2.4.2:
|
chalk@^2.0.0, chalk@^2.4.2:
|
||||||
version "2.4.2"
|
version "2.4.2"
|
||||||
|
@ -445,10 +441,10 @@ chalk@^2.0.0, chalk@^2.4.2:
|
||||||
escape-string-regexp "^1.0.5"
|
escape-string-regexp "^1.0.5"
|
||||||
supports-color "^5.3.0"
|
supports-color "^5.3.0"
|
||||||
|
|
||||||
chalk@^4.0.0, chalk@^4.1.0:
|
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
|
||||||
version "4.1.0"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
|
||||||
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
|
integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-styles "^4.1.0"
|
ansi-styles "^4.1.0"
|
||||||
supports-color "^7.1.0"
|
supports-color "^7.1.0"
|
||||||
|
@ -499,7 +495,7 @@ color-name@~1.1.4:
|
||||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||||
|
|
||||||
colorette@^1.2.1:
|
colorette@^1.2.1, colorette@^1.2.2:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
|
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
|
||||||
integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
|
integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
|
||||||
|
@ -594,9 +590,9 @@ domelementtype@1, domelementtype@^1.3.1:
|
||||||
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
||||||
|
|
||||||
domelementtype@^2.0.1:
|
domelementtype@^2.0.1:
|
||||||
version "2.1.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
|
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
|
||||||
integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
|
integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
|
||||||
|
|
||||||
domhandler@^2.3.0:
|
domhandler@^2.3.0:
|
||||||
version "2.4.2"
|
version "2.4.2"
|
||||||
|
@ -613,10 +609,10 @@ domutils@^1.5.1:
|
||||||
dom-serializer "0"
|
dom-serializer "0"
|
||||||
domelementtype "1"
|
domelementtype "1"
|
||||||
|
|
||||||
electron-to-chromium@^1.3.649:
|
electron-to-chromium@^1.3.723:
|
||||||
version "1.3.703"
|
version "1.3.735"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.703.tgz#6d9b9a75c42a40775f5930329e642b22b227317f"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.735.tgz#fa1a8660f2790662291cb2136f0e446a444cdfdc"
|
||||||
integrity sha512-SVBVhNB+4zPL+rvtWLw7PZQkw/Eqj1HQZs22xtcqW36+xoifzEOEEDEpkxSMfB6RFeSIOcG00w6z5mSqLr1Y6w==
|
integrity sha512-cp7MWzC3NseUJV2FJFgaiesdrS+A8ZUjX5fLAxdRlcaPDkaPGFplX930S5vf84yqDp4LjuLdKouWuVOTwUfqHQ==
|
||||||
|
|
||||||
emoji-regex@^8.0.0:
|
emoji-regex@^8.0.0:
|
||||||
version "8.0.0"
|
version "8.0.0"
|
||||||
|
@ -678,17 +674,17 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
|
||||||
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
|
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
|
||||||
|
|
||||||
eslint-visitor-keys@^2.0.0:
|
eslint-visitor-keys@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
|
||||||
integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
|
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
|
||||||
|
|
||||||
eslint@^7.23.0:
|
eslint@^7.23.0:
|
||||||
version "7.23.0"
|
version "7.26.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.23.0.tgz#8d029d252f6e8cf45894b4bee08f5493f8e94325"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6"
|
||||||
integrity sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==
|
integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "7.12.11"
|
"@babel/code-frame" "7.12.11"
|
||||||
"@eslint/eslintrc" "^0.4.0"
|
"@eslint/eslintrc" "^0.4.1"
|
||||||
ajv "^6.10.0"
|
ajv "^6.10.0"
|
||||||
chalk "^4.0.0"
|
chalk "^4.0.0"
|
||||||
cross-spawn "^7.0.2"
|
cross-spawn "^7.0.2"
|
||||||
|
@ -881,15 +877,6 @@ gensync@^1.0.0-beta.2:
|
||||||
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
||||||
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
||||||
|
|
||||||
get-intrinsic@^1.0.2:
|
|
||||||
version "1.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
|
|
||||||
integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
|
|
||||||
dependencies:
|
|
||||||
function-bind "^1.1.1"
|
|
||||||
has "^1.0.3"
|
|
||||||
has-symbols "^1.0.1"
|
|
||||||
|
|
||||||
get-stdin@^8.0.0:
|
get-stdin@^8.0.0:
|
||||||
version "8.0.0"
|
version "8.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
|
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
|
||||||
|
@ -903,9 +890,9 @@ glob-parent@^5.0.0, glob-parent@^5.1.0:
|
||||||
is-glob "^4.0.1"
|
is-glob "^4.0.1"
|
||||||
|
|
||||||
glob@^7.1.3:
|
glob@^7.1.3:
|
||||||
version "7.1.6"
|
version "7.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
|
||||||
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
|
integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
fs.realpath "^1.0.0"
|
fs.realpath "^1.0.0"
|
||||||
inflight "^1.0.4"
|
inflight "^1.0.4"
|
||||||
|
@ -943,13 +930,13 @@ globals@^12.1.0:
|
||||||
type-fest "^0.8.1"
|
type-fest "^0.8.1"
|
||||||
|
|
||||||
globals@^13.6.0:
|
globals@^13.6.0:
|
||||||
version "13.7.0"
|
version "13.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/globals/-/globals-13.7.0.tgz#aed3bcefd80ad3ec0f0be2cf0c895110c0591795"
|
resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3"
|
||||||
integrity sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==
|
integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
type-fest "^0.20.2"
|
type-fest "^0.20.2"
|
||||||
|
|
||||||
globby@^11.0.2:
|
globby@^11.0.3:
|
||||||
version "11.0.3"
|
version "11.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb"
|
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb"
|
||||||
integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==
|
integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==
|
||||||
|
@ -988,11 +975,6 @@ has-flag@^4.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
||||||
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
||||||
|
|
||||||
has-symbols@^1.0.1:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
|
|
||||||
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
|
|
||||||
|
|
||||||
has@^1.0.3:
|
has@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||||
|
@ -1001,9 +983,9 @@ has@^1.0.3:
|
||||||
function-bind "^1.1.1"
|
function-bind "^1.1.1"
|
||||||
|
|
||||||
hosted-git-info@^2.1.4:
|
hosted-git-info@^2.1.4:
|
||||||
version "2.8.8"
|
version "2.8.9"
|
||||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
|
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
|
||||||
integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
|
integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
|
||||||
|
|
||||||
hosted-git-info@^4.0.1:
|
hosted-git-info@^4.0.1:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
|
@ -1062,11 +1044,6 @@ indent-string@^4.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
|
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
|
||||||
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
|
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
|
||||||
|
|
||||||
indexes-of@^1.0.1:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
|
|
||||||
integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
|
|
||||||
|
|
||||||
inflight@^1.0.4:
|
inflight@^1.0.4:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
|
@ -1103,22 +1080,15 @@ is-arrayish@^0.2.1:
|
||||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
||||||
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
|
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
|
||||||
|
|
||||||
is-boolean-object@^1.1.0:
|
|
||||||
version "1.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0"
|
|
||||||
integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==
|
|
||||||
dependencies:
|
|
||||||
call-bind "^1.0.0"
|
|
||||||
|
|
||||||
is-buffer@^2.0.0:
|
is-buffer@^2.0.0:
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
|
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
|
||||||
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
|
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
|
||||||
|
|
||||||
is-core-module@^2.2.0:
|
is-core-module@^2.2.0:
|
||||||
version "2.2.0"
|
version "2.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
|
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
|
||||||
integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
|
integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==
|
||||||
dependencies:
|
dependencies:
|
||||||
has "^1.0.3"
|
has "^1.0.3"
|
||||||
|
|
||||||
|
@ -1149,11 +1119,6 @@ is-hexadecimal@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
|
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
|
||||||
integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
|
integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
|
||||||
|
|
||||||
is-number-object@^1.0.4:
|
|
||||||
version "1.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197"
|
|
||||||
integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==
|
|
||||||
|
|
||||||
is-number@^7.0.0:
|
is-number@^7.0.0:
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||||
|
@ -1174,11 +1139,6 @@ is-regexp@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d"
|
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d"
|
||||||
integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==
|
integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==
|
||||||
|
|
||||||
is-string@^1.0.5:
|
|
||||||
version "1.0.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
|
|
||||||
integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
|
|
||||||
|
|
||||||
is-typedarray@^1.0.0:
|
is-typedarray@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
||||||
|
@ -1274,22 +1234,17 @@ lodash.clonedeep@^4.5.0:
|
||||||
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
|
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
|
||||||
integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
|
integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
|
||||||
|
|
||||||
lodash.flatten@^4.4.0:
|
|
||||||
version "4.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
|
|
||||||
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
|
|
||||||
|
|
||||||
lodash.truncate@^4.4.2:
|
lodash.truncate@^4.4.2:
|
||||||
version "4.4.2"
|
version "4.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
|
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
|
||||||
integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
|
integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
|
||||||
|
|
||||||
lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21:
|
lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21:
|
||||||
version "4.17.21"
|
version "4.17.21"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||||
|
|
||||||
log-symbols@^4.0.0:
|
log-symbols@^4.1.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
|
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
|
||||||
integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
|
integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
|
||||||
|
@ -1315,9 +1270,9 @@ map-obj@^1.0.0:
|
||||||
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
|
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
|
||||||
|
|
||||||
map-obj@^4.0.0:
|
map-obj@^4.0.0:
|
||||||
version "4.2.0"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.0.tgz#0e8bc823e2aaca8a0942567d12ed14f389eec153"
|
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7"
|
||||||
integrity sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==
|
integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==
|
||||||
|
|
||||||
mathml-tag-names@^2.1.3:
|
mathml-tag-names@^2.1.3:
|
||||||
version "2.1.3"
|
version "2.1.3"
|
||||||
|
@ -1375,6 +1330,11 @@ merge2@^1.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||||
|
|
||||||
|
merge@2.1.1:
|
||||||
|
version "2.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98"
|
||||||
|
integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==
|
||||||
|
|
||||||
merge@^1.2.0:
|
merge@^1.2.0:
|
||||||
version "1.2.1"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
||||||
|
@ -1388,13 +1348,13 @@ micromark@~2.11.0:
|
||||||
debug "^4.0.0"
|
debug "^4.0.0"
|
||||||
parse-entities "^2.0.0"
|
parse-entities "^2.0.0"
|
||||||
|
|
||||||
micromatch@^4.0.2:
|
micromatch@^4.0.2, micromatch@^4.0.4:
|
||||||
version "4.0.2"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
|
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
|
||||||
integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
|
integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
|
||||||
dependencies:
|
dependencies:
|
||||||
braces "^3.0.1"
|
braces "^3.0.1"
|
||||||
picomatch "^2.0.5"
|
picomatch "^2.2.3"
|
||||||
|
|
||||||
min-indent@^1.0.0:
|
min-indent@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
|
@ -1427,15 +1387,20 @@ ms@2.1.2:
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||||
|
|
||||||
|
nanoid@^3.1.22:
|
||||||
|
version "3.1.23"
|
||||||
|
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
|
||||||
|
integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
|
||||||
|
|
||||||
natural-compare@^1.4.0:
|
natural-compare@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||||
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
||||||
|
|
||||||
node-releases@^1.1.70:
|
node-releases@^1.1.71:
|
||||||
version "1.1.71"
|
version "1.1.72"
|
||||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
|
||||||
integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
|
integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
|
||||||
|
|
||||||
normalize-package-data@^2.5.0:
|
normalize-package-data@^2.5.0:
|
||||||
version "2.5.0"
|
version "2.5.0"
|
||||||
|
@ -1564,10 +1529,10 @@ path-type@^4.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
||||||
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
||||||
|
|
||||||
picomatch@^2.0.5, picomatch@^2.2.1:
|
picomatch@^2.2.1, picomatch@^2.2.3:
|
||||||
version "2.2.2"
|
version "2.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
|
||||||
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
|
integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==
|
||||||
|
|
||||||
postcss-html@^0.36.0:
|
postcss-html@^0.36.0:
|
||||||
version "0.36.0"
|
version "0.36.0"
|
||||||
|
@ -1615,14 +1580,12 @@ postcss-scss@^2.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.6"
|
postcss "^7.0.6"
|
||||||
|
|
||||||
postcss-selector-parser@^6.0.4:
|
postcss-selector-parser@^6.0.5:
|
||||||
version "6.0.4"
|
version "6.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
|
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
|
||||||
integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
|
integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
|
||||||
dependencies:
|
dependencies:
|
||||||
cssesc "^3.0.0"
|
cssesc "^3.0.0"
|
||||||
indexes-of "^1.0.1"
|
|
||||||
uniq "^1.0.1"
|
|
||||||
util-deprecate "^1.0.2"
|
util-deprecate "^1.0.2"
|
||||||
|
|
||||||
postcss-sorting@^5.0.1:
|
postcss-sorting@^5.0.1:
|
||||||
|
@ -1643,6 +1606,15 @@ postcss-value-parser@^4.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
|
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
|
||||||
integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
|
integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
|
||||||
|
|
||||||
|
postcss@8.2.10:
|
||||||
|
version "8.2.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz#ca7a042aa8aff494b334d0ff3e9e77079f6f702b"
|
||||||
|
integrity sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==
|
||||||
|
dependencies:
|
||||||
|
colorette "^1.2.2"
|
||||||
|
nanoid "^3.1.22"
|
||||||
|
source-map "^0.6.1"
|
||||||
|
|
||||||
postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6:
|
postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6:
|
||||||
version "7.0.35"
|
version "7.0.35"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
|
||||||
|
@ -1878,9 +1850,9 @@ spdx-expression-parse@^3.0.0:
|
||||||
spdx-license-ids "^3.0.0"
|
spdx-license-ids "^3.0.0"
|
||||||
|
|
||||||
spdx-license-ids@^3.0.0:
|
spdx-license-ids@^3.0.0:
|
||||||
version "3.0.7"
|
version "3.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65"
|
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz#eb1e97ad99b11bf3f82a3b71a0472dd9a00f2ecf"
|
||||||
integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==
|
integrity sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g==
|
||||||
|
|
||||||
specificity@^0.4.1:
|
specificity@^0.4.1:
|
||||||
version "0.4.1"
|
version "0.4.1"
|
||||||
|
@ -1954,15 +1926,15 @@ stylelint-order@^4.1.0:
|
||||||
postcss-sorting "^5.0.1"
|
postcss-sorting "^5.0.1"
|
||||||
|
|
||||||
stylelint@^13.12.0:
|
stylelint@^13.12.0:
|
||||||
version "13.12.0"
|
version "13.13.1"
|
||||||
resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.12.0.tgz#cceb922be0d0c7b7b6926271eea2b90cb924733e"
|
resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.13.1.tgz#fca9c9f5de7990ab26a00f167b8978f083a18f3c"
|
||||||
integrity sha512-P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw==
|
integrity sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@stylelint/postcss-css-in-js" "^0.37.2"
|
"@stylelint/postcss-css-in-js" "^0.37.2"
|
||||||
"@stylelint/postcss-markdown" "^0.36.2"
|
"@stylelint/postcss-markdown" "^0.36.2"
|
||||||
autoprefixer "^9.8.6"
|
autoprefixer "^9.8.6"
|
||||||
balanced-match "^1.0.0"
|
balanced-match "^2.0.0"
|
||||||
chalk "^4.1.0"
|
chalk "^4.1.1"
|
||||||
cosmiconfig "^7.0.0"
|
cosmiconfig "^7.0.0"
|
||||||
debug "^4.3.1"
|
debug "^4.3.1"
|
||||||
execall "^2.0.0"
|
execall "^2.0.0"
|
||||||
|
@ -1971,7 +1943,7 @@ stylelint@^13.12.0:
|
||||||
file-entry-cache "^6.0.1"
|
file-entry-cache "^6.0.1"
|
||||||
get-stdin "^8.0.0"
|
get-stdin "^8.0.0"
|
||||||
global-modules "^2.0.0"
|
global-modules "^2.0.0"
|
||||||
globby "^11.0.2"
|
globby "^11.0.3"
|
||||||
globjoin "^0.1.4"
|
globjoin "^0.1.4"
|
||||||
html-tags "^3.1.0"
|
html-tags "^3.1.0"
|
||||||
ignore "^5.1.8"
|
ignore "^5.1.8"
|
||||||
|
@ -1979,10 +1951,10 @@ stylelint@^13.12.0:
|
||||||
imurmurhash "^0.1.4"
|
imurmurhash "^0.1.4"
|
||||||
known-css-properties "^0.21.0"
|
known-css-properties "^0.21.0"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
log-symbols "^4.0.0"
|
log-symbols "^4.1.0"
|
||||||
mathml-tag-names "^2.1.3"
|
mathml-tag-names "^2.1.3"
|
||||||
meow "^9.0.0"
|
meow "^9.0.0"
|
||||||
micromatch "^4.0.2"
|
micromatch "^4.0.4"
|
||||||
normalize-selector "^0.2.0"
|
normalize-selector "^0.2.0"
|
||||||
postcss "^7.0.35"
|
postcss "^7.0.35"
|
||||||
postcss-html "^0.36.0"
|
postcss-html "^0.36.0"
|
||||||
|
@ -1992,7 +1964,7 @@ stylelint@^13.12.0:
|
||||||
postcss-safe-parser "^4.0.2"
|
postcss-safe-parser "^4.0.2"
|
||||||
postcss-sass "^0.4.4"
|
postcss-sass "^0.4.4"
|
||||||
postcss-scss "^2.1.1"
|
postcss-scss "^2.1.1"
|
||||||
postcss-selector-parser "^6.0.4"
|
postcss-selector-parser "^6.0.5"
|
||||||
postcss-syntax "^0.36.2"
|
postcss-syntax "^0.36.2"
|
||||||
postcss-value-parser "^4.1.0"
|
postcss-value-parser "^4.1.0"
|
||||||
resolve-from "^5.0.0"
|
resolve-from "^5.0.0"
|
||||||
|
@ -2003,8 +1975,8 @@ stylelint@^13.12.0:
|
||||||
style-search "^0.1.0"
|
style-search "^0.1.0"
|
||||||
sugarss "^2.0.0"
|
sugarss "^2.0.0"
|
||||||
svg-tags "^1.0.0"
|
svg-tags "^1.0.0"
|
||||||
table "^6.0.7"
|
table "^6.6.0"
|
||||||
v8-compile-cache "^2.2.0"
|
v8-compile-cache "^2.3.0"
|
||||||
write-file-atomic "^3.0.3"
|
write-file-atomic "^3.0.3"
|
||||||
|
|
||||||
sugarss@^2.0.0:
|
sugarss@^2.0.0:
|
||||||
|
@ -2040,20 +2012,17 @@ svg-tags@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
|
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
|
||||||
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
|
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
|
||||||
|
|
||||||
table@^6.0.4, table@^6.0.7:
|
table@^6.0.4, table@^6.6.0:
|
||||||
version "6.0.9"
|
version "6.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/table/-/table-6.0.9.tgz#790a12bf1e09b87b30e60419bafd6a1fd85536fb"
|
resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
|
||||||
integrity sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==
|
integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^8.0.1"
|
ajv "^8.0.1"
|
||||||
is-boolean-object "^1.1.0"
|
|
||||||
is-number-object "^1.0.4"
|
|
||||||
is-string "^1.0.5"
|
|
||||||
lodash.clonedeep "^4.5.0"
|
lodash.clonedeep "^4.5.0"
|
||||||
lodash.flatten "^4.4.0"
|
|
||||||
lodash.truncate "^4.4.2"
|
lodash.truncate "^4.4.2"
|
||||||
slice-ansi "^4.0.0"
|
slice-ansi "^4.0.0"
|
||||||
string-width "^4.2.0"
|
string-width "^4.2.0"
|
||||||
|
strip-ansi "^6.0.0"
|
||||||
|
|
||||||
text-table@^0.2.0:
|
text-table@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
|
@ -2128,11 +2097,6 @@ unified@^9.1.0:
|
||||||
trough "^1.0.0"
|
trough "^1.0.0"
|
||||||
vfile "^4.0.0"
|
vfile "^4.0.0"
|
||||||
|
|
||||||
uniq@^1.0.1:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
|
|
||||||
integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
|
|
||||||
|
|
||||||
unist-util-find-all-after@^3.0.2:
|
unist-util-find-all-after@^3.0.2:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6"
|
resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6"
|
||||||
|
@ -2164,7 +2128,7 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||||
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
||||||
|
|
||||||
v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0:
|
v8-compile-cache@^2.0.3, v8-compile-cache@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
||||||
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
|
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
|
||||||
|
|
Loading…
Reference in a new issue