From 27664e323ad911aea89328a9dd60a3c41f6e88a9 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Thu, 8 Apr 2021 16:08:35 -0700 Subject: [PATCH] Fixes edit book form throwing error on empty dates --- bookwyrm/templates/book/edit_book.html | 2 +- bookwyrm/views/books.py | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/bookwyrm/templates/book/edit_book.html b/bookwyrm/templates/book/edit_book.html index 1da7c3f70..af5d4d695 100644 --- a/bookwyrm/templates/book/edit_book.html +++ b/bookwyrm/templates/book/edit_book.html @@ -98,7 +98,7 @@

- +

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

{{ error | escape }}

diff --git a/bookwyrm/views/books.py b/bookwyrm/views/books.py index b1b2d0656..731fc24c6 100644 --- a/bookwyrm/views/books.py +++ b/bookwyrm/views/books.py @@ -1,5 +1,4 @@ """ the good stuff! the books! """ -from datetime import datetime from uuid import uuid4 from dateutil.parser import parse as dateparse @@ -175,18 +174,18 @@ class EditBook(View): data["confirm_mode"] = True # this isn't preserved because it isn't part of the form obj data["remove_authors"] = request.POST.getlist("remove_authors") - # we have to make sure the dates are passed in as datetime, they're currently a string + # make sure the dates are passed in as datetime, they're currently a string # QueryDicts are immutable, we need to copy formcopy = data["form"].data.copy() try: formcopy["first_published_date"] = dateparse( formcopy["first_published_date"] ) - except MultiValueDictKeyError: + except (MultiValueDictKeyError, ValueError): pass try: formcopy["published_date"] = dateparse(formcopy["published_date"]) - except MultiValueDictKeyError: + except (MultiValueDictKeyError, ValueError): pass data["form"].data = formcopy return TemplateResponse(request, "book/edit_book.html", data)