From 4f576b77a0073abcfe41b1934cdb6303ed1be53f Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Wed, 15 Dec 2021 12:40:31 -0800 Subject: [PATCH] Use urlfield --- bookwyrm/forms.py | 6 ++++++ ...20211215_1818.py => 0121_auto_20211215_2038.py} | 10 +++------- bookwyrm/models/fields.py | 4 ++++ bookwyrm/models/link.py | 14 ++++++++++---- bookwyrm/templates/book/book.html | 5 ++++- bookwyrm/templates/book/file_links_modal.html | 2 +- bookwyrm/urls.py | 9 ++++++++- 7 files changed, 36 insertions(+), 14 deletions(-) rename bookwyrm/migrations/{0121_auto_20211215_1818.py => 0121_auto_20211215_2038.py} (87%) diff --git a/bookwyrm/forms.py b/bookwyrm/forms.py index 05a6ce918..8c3785f8f 100644 --- a/bookwyrm/forms.py +++ b/bookwyrm/forms.py @@ -216,6 +216,12 @@ class CoverForm(CustomForm): help_texts = {f: None for f in fields} +class FileLinkForm(CustomForm): + class Meta: + model = models.FileLink + exclude = ["remote_id"] + + class EditionForm(CustomForm): class Meta: model = models.Edition diff --git a/bookwyrm/migrations/0121_auto_20211215_1818.py b/bookwyrm/migrations/0121_auto_20211215_2038.py similarity index 87% rename from bookwyrm/migrations/0121_auto_20211215_1818.py rename to bookwyrm/migrations/0121_auto_20211215_2038.py index 8b0221377..d55cb5fdd 100644 --- a/bookwyrm/migrations/0121_auto_20211215_1818.py +++ b/bookwyrm/migrations/0121_auto_20211215_2038.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.5 on 2021-12-15 18:18 +# Generated by Django 3.2.5 on 2021-12-15 20:38 import bookwyrm.models.activitypub_mixin import bookwyrm.models.fields @@ -35,13 +35,13 @@ class Migration(migrations.Migration): validators=[bookwyrm.models.fields.validate_remote_id], ), ), - ("url", bookwyrm.models.fields.CharField(max_length=255)), + ("url", bookwyrm.models.fields.URLField(max_length=255)), ("name", bookwyrm.models.fields.CharField(max_length=255)), ], options={ "abstract": False, }, - bases=(bookwyrm.models.activitypub_mixin.CollectionItemMixin, models.Model), + bases=(bookwyrm.models.activitypub_mixin.ActivitypubMixin, models.Model), ), migrations.CreateModel( name="FileLink", @@ -58,10 +58,6 @@ class Migration(migrations.Migration): ), ), ("filetype", bookwyrm.models.fields.CharField(max_length=5)), - ( - "filetype_description", - bookwyrm.models.fields.CharField(max_length=100), - ), ], options={ "abstract": False, diff --git a/bookwyrm/models/fields.py b/bookwyrm/models/fields.py index 7d14f88f9..397bced59 100644 --- a/bookwyrm/models/fields.py +++ b/bookwyrm/models/fields.py @@ -516,6 +516,10 @@ class CharField(ActivitypubFieldMixin, models.CharField): """activitypub-aware char field""" +class URLField(ActivitypubFieldMixin, models.URLField): + """activitypub-aware url field""" + + class TextField(ActivitypubFieldMixin, models.TextField): """activitypub-aware text field""" diff --git a/bookwyrm/models/link.py b/bookwyrm/models/link.py index 11ddfbde3..0a46c59c2 100644 --- a/bookwyrm/models/link.py +++ b/bookwyrm/models/link.py @@ -1,18 +1,24 @@ """ outlink data """ -from .activitypub_mixin import CollectionItemMixin +from .activitypub_mixin import ActivitypubMixin from .base_model import BookWyrmModel from . import fields -class Link(CollectionItemMixin, BookWyrmModel): +class Link(ActivitypubMixin, BookWyrmModel): """a link to a website""" - url = fields.CharField(max_length=255) + url = fields.URLField(max_length=255) name = fields.CharField(max_length=255) + def save(self, *args, **kwargs): + """create a link""" + # this is never broadcast, the owning model broadcasts an update + if "broadcast" in kwargs: + del kwargs["broadcast"] + return super().save(*args, **kwargs) + class FileLink(Link): """a link to a file""" filetype = fields.CharField(max_length=5) - filetype_description = fields.CharField(max_length=100) diff --git a/bookwyrm/templates/book/book.html b/bookwyrm/templates/book/book.html index 64daf3fa6..6b96856a0 100644 --- a/bookwyrm/templates/book/book.html +++ b/bookwyrm/templates/book/book.html @@ -351,7 +351,10 @@ {% if book.file_links %} {% endif %} diff --git a/bookwyrm/templates/book/file_links_modal.html b/bookwyrm/templates/book/file_links_modal.html index a2f8d0cd6..5aca941c5 100644 --- a/bookwyrm/templates/book/file_links_modal.html +++ b/bookwyrm/templates/book/file_links_modal.html @@ -19,7 +19,7 @@
- +
diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 2829d2034..8ddf56e96 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -427,7 +427,14 @@ urlpatterns = [ re_path( r"^upload-cover/(?P\d+)/?$", views.upload_cover, name="upload-cover" ), - re_path(r"^add-description/(?P\d+)/?$", views.add_description), + re_path( + r"^add-description/(?P\d+)/?$", + views.add_description, + name="add-description", + ), + re_path( + r"^add-file-link/(?P\d+)/?$", views.add_file_link, name="add-file-link" + ), re_path(r"^resolve-book/?$", views.resolve_book, name="resolve-book"), re_path(r"^switch-edition/?$", views.switch_edition, name="switch-edition"), re_path(