From 9bbedc5d9af7f2f956bf4947002efa28b19c862d Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 24 Nov 2020 13:25:28 -0800 Subject: [PATCH 1/3] Fixes field causing form invalidation when editing books --- bookwyrm/migrations/0012_auto_20201124_2125.py | 18 ++++++++++++++++++ bookwyrm/models/book.py | 2 +- bookwyrm/templates/edit_book.html | 5 +++++ bookwyrm/view_actions.py | 8 +++++++- 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 bookwyrm/migrations/0012_auto_20201124_2125.py diff --git a/bookwyrm/migrations/0012_auto_20201124_2125.py b/bookwyrm/migrations/0012_auto_20201124_2125.py new file mode 100644 index 00000000..bbc4942a --- /dev/null +++ b/bookwyrm/migrations/0012_auto_20201124_2125.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.7 on 2020-11-24 21:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bookwyrm', '0011_auto_20201113_1727'), + ] + + operations = [ + migrations.AlterField( + model_name='book', + name='origin_id', + field=models.CharField(blank=True, max_length=255, null=True), + ), + ] diff --git a/bookwyrm/models/book.py b/bookwyrm/models/book.py index d0702a3e..4bee8c6c 100644 --- a/bookwyrm/models/book.py +++ b/bookwyrm/models/book.py @@ -15,7 +15,7 @@ from .base_model import ActivitypubMixin, OrderedCollectionPageMixin class Book(ActivitypubMixin, BookWyrmModel): ''' a generic book, which can mean either an edition or a work ''' - origin_id = models.CharField(max_length=255, null=True) + origin_id = models.CharField(max_length=255, null=True, blank=True) # these identifiers apply to both works and editions openlibrary_key = models.CharField(max_length=255, blank=True, null=True) librarything_key = models.CharField(max_length=255, blank=True, null=True) diff --git a/bookwyrm/templates/edit_book.html b/bookwyrm/templates/edit_book.html index bd89ac0a..ee1be697 100644 --- a/bookwyrm/templates/edit_book.html +++ b/bookwyrm/templates/edit_book.html @@ -20,6 +20,11 @@ +{% if login_form.non_field_errors %} +
+

{{ login_form.non_field_errors }}

+
+{% endif %}
{% csrf_token %}
diff --git a/bookwyrm/view_actions.py b/bookwyrm/view_actions.py index b7e92c89..5c5ffa4f 100644 --- a/bookwyrm/view_actions.py +++ b/bookwyrm/view_actions.py @@ -235,7 +235,13 @@ def edit_book(request, book_id): form = forms.EditionForm(request.POST, request.FILES, instance=book) if not form.is_valid(): - return redirect(request.headers.get('Referer', '/')) + data = { + 'title': 'Edit Book', + 'book': book, + 'form': form + } + print(form.errors) + return TemplateResponse(request, 'edit_book.html', data) form.save() outgoing.handle_update_book(request.user, book) From 1fd498c30682257ced8104a0507bdcfafae99d2f Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 24 Nov 2020 13:37:35 -0800 Subject: [PATCH 2/3] Display error messages in edit book form --- bookwyrm/templates/edit_book.html | 91 ++++++++++++++++++++++++------- bookwyrm/view_actions.py | 1 - 2 files changed, 72 insertions(+), 20 deletions(-) diff --git a/bookwyrm/templates/edit_book.html b/bookwyrm/templates/edit_book.html index ee1be697..54cefb0a 100644 --- a/bookwyrm/templates/edit_book.html +++ b/bookwyrm/templates/edit_book.html @@ -25,6 +25,7 @@

{{ login_form.non_field_errors }}

{% endif %} + {% csrf_token %}
@@ -42,13 +43,40 @@
-
-

Book Identifiers

-

{{ form.isbn_13 }}

-

{{ form.isbn_10 }}

-

{{ form.openlibrary_key }}

-

{{ form.librarything_key }}

-

{{ form.goodreads_key }}

+
+

Metadata

+

{{ form.title }}

+ {% for error in form.title.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.sort_title }}

+ {% for error in form.sort_title.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.subtitle }}

+ {% for error in form.subtitle.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.description }}

+ {% for error in form.description.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.series }}

+ {% for error in form.series.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.series_number }}

+ {% for error in form.series_number.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.first_published_date }}

+ {% for error in form.first_published_date.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.published_date }}

+ {% for error in form.published_date.errors %} +

{{ error | escape }}

+ {% endfor %}
@@ -60,6 +88,9 @@

Cover

{{ form.cover }}

+ {% for error in form.cover.errors %} +

{{ error | escape }}

+ {% endfor %}
@@ -67,22 +98,45 @@

Physical Properties

{{ form.physical_format }}

+ {% for error in form.physical_format.errors %} +

{{ error | escape }}

+ {% endfor %} + {% for error in form.physical_format.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.pages }}

+ {% for error in form.pages.errors %} +

{{ error | escape }}

+ {% endfor %} +
+ +
+

Book Identifiers

+

{{ form.isbn_13 }}

+ {% for error in form.isbn_13.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.isbn_10 }}

+ {% for error in form.isbn_10.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.openlibrary_key }}

+ {% for error in form.openlibrary_key.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.librarything_key }}

+ {% for error in form.librarything_key.errors %} +

{{ error | escape }}

+ {% endfor %} +

{{ form.goodreads_key }}

+ {% for error in form.goodreads_key.errors %} +

{{ error | escape }}

+ {% endfor %}
-
-

Metadata

-

{{ form.title }}

-

{{ form.sort_title }}

-

{{ form.subtitle }}

-

{{ form.description }}

-

{{ form.series }}

-

{{ form.series_number }}

-

{{ form.first_published_date }}

-

{{ form.published_date }}

-
Cancel @@ -90,4 +144,3 @@ {% endblock %} - diff --git a/bookwyrm/view_actions.py b/bookwyrm/view_actions.py index 5c5ffa4f..ad9a12cf 100644 --- a/bookwyrm/view_actions.py +++ b/bookwyrm/view_actions.py @@ -240,7 +240,6 @@ def edit_book(request, book_id): 'book': book, 'form': form } - print(form.errors) return TemplateResponse(request, 'edit_book.html', data) form.save() From 7b4847852a51b4ae0d0d3ea6320bb8dc7a125681 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 24 Nov 2020 13:42:47 -0800 Subject: [PATCH 3/3] Merge migrations manually --- .../{0012_auto_20201124_2125.py => 0013_book_origin_id.py} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename bookwyrm/migrations/{0012_auto_20201124_2125.py => 0013_book_origin_id.py} (76%) diff --git a/bookwyrm/migrations/0012_auto_20201124_2125.py b/bookwyrm/migrations/0013_book_origin_id.py similarity index 76% rename from bookwyrm/migrations/0012_auto_20201124_2125.py rename to bookwyrm/migrations/0013_book_origin_id.py index bbc4942a..581a2406 100644 --- a/bookwyrm/migrations/0012_auto_20201124_2125.py +++ b/bookwyrm/migrations/0013_book_origin_id.py @@ -1,4 +1,4 @@ -# Generated by Django 3.0.7 on 2020-11-24 21:25 +# Generated by Django 3.0.7 on 2020-11-24 21:42 from django.db import migrations, models @@ -6,7 +6,7 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('bookwyrm', '0011_auto_20201113_1727'), + ('bookwyrm', '0012_attachment'), ] operations = [