Only show approved links

This commit is contained in:
Mouse Reeve 2022-01-09 20:30:23 -08:00
parent 70fe7e17af
commit aa9864a21e
6 changed files with 44 additions and 35 deletions

View file

@ -82,7 +82,7 @@ class Migration(migrations.Migration):
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.PROTECT,
on_delete=django.db.models.deletion.CASCADE,
to="bookwyrm.linkdomain",
),
),

View file

@ -15,7 +15,7 @@ class Link(ActivitypubMixin, BookWyrmModel):
url = fields.URLField(max_length=255, activitypub_field="href")
domain = models.ForeignKey(
"LinkDomain", on_delete=models.PROTECT, null=True, blank=True
"LinkDomain", on_delete=models.CASCADE, null=True, blank=True
)
activity_serializer = activitypub.Link

View file

@ -383,37 +383,7 @@
{% endif %}
<section class="content block">
<header class="columns is-mobile mb-0">
<div class="column">
<h2 class="title is-5">{% trans "Get a copy" %}</h2>
</div>
{% if can_edit_book %}
<div class="column is-narrow">
{% url 'file-link' book.id as fallback_url %}
<button class="button is-small" type="button" data-modal-open="edit-links">
<span class="icon icon-plus">
<span class="is-sr-only">
{% trans "Add link to copy" %}
</span>
</span>
</button>
</div>
{% endif %}
</header>
{% if book.file_links %}
<ul class="mt-0">
{% for link in book.file_links.all %}
<li>
<a href="{{ link.url }}" rel="noopener" target="_blank" title="{{ link.url }}">{{ link.name }}</a>
({{ link.filetype }})
</li>
{% endfor %}
</ul>
{% endif %}
{% if can_edit_book %}
{% include 'book/file_link_modal.html' with book=book id="edit-links" %}
{% endif %}
{% include "book/links.html" %}
</section>
</div>
</div>

View file

@ -0,0 +1,34 @@
{% load i18n %}
{% load bookwyrm_tags %}
{% get_book_file_links book as links %}
<header class="columns is-mobile mb-0">
<div class="column">
<h2 class="title is-5">{% trans "Get a copy" %}</h2>
</div>
{% if can_edit_book %}
<div class="column is-narrow">
{% url 'file-link' book.id as fallback_url %}
<button class="button is-small" type="button" data-modal-open="edit-links">
<span class="icon icon-plus">
<span class="is-sr-only">
{% trans "Add link to copy" %}
</span>
</span>
</button>
</div>
{% endif %}
</header>
{% if links %}
<ul class="mt-0">
{% for link in links.all %}
<li>
<a href="{{ link.url }}" rel="noopener" target="_blank" title="{{ link.url }}">{{ link.name }}</a>
({{ link.filetype }})
</li>
{% endfor %}
</ul>
{% endif %}
{% if can_edit_book %}
{% include 'book/file_link_modal.html' with book=book id="edit-links" %}
{% endif %}

View file

@ -177,3 +177,9 @@ def suggested_books(context):
# this happens here instead of in the view so that the template snippet can
# be cached in the template
return get_suggested_books(context["request"].user)
@register.simple_tag(takes_context=False)
def get_book_file_links(book):
"""links for a book"""
return book.file_links.filter(domain__status="approved")

View file

@ -63,7 +63,6 @@ class LinkViews(TestCase):
"""there are so many views, this just makes sure it LOADS"""
view = views.FileLink.as_view()
form = forms.FileLinkForm()
form.data["name"] = "hi"
form.data["url"] = "https://www.example.com"
form.data["filetype"] = "HTML"
form.data["book"] = self.book.id
@ -81,7 +80,7 @@ class LinkViews(TestCase):
self.assertEqual(activity["object"]["type"], "Edition")
link = models.FileLink.objects.get()
self.assertEqual(link.name, "hi")
self.assertEqual(link.name, "www.example.com")
self.assertEqual(link.url, "https://www.example.com")
self.assertEqual(link.filetype, "HTML")