Metadata
-
{{ form.title }}
+
{{ form.title }}
{% for error in form.title.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.sort_title }}
+
{{ form.sort_title }}
{% for error in form.sort_title.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.subtitle }}
+
{{ form.subtitle }}
{% for error in form.subtitle.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.description }}
+
{{ form.description }}
{% for error in form.description.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.series }}
+
{{ form.series }}
{% for error in form.series.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.series_number }}
+
{{ form.series_number }}
{% for error in form.series_number.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.first_published_date }}
+
{{ form.first_published_date }}
{% for error in form.first_published_date.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.published_date }}
+
{{ form.published_date }}
{% for error in form.published_date.errors %}
{{ error | escape }}
{% endfor %}
@@ -83,7 +85,7 @@
Physical Properties
-
{{ form.physical_format }}
+
{{ form.physical_format }}
{% for error in form.physical_format.errors %}
{{ error | escape }}
{% endfor %}
@@ -91,7 +93,7 @@
{{ error | escape }}
{% endfor %}
-
{{ form.pages }}
+
{{ form.pages }}
{% for error in form.pages.errors %}
{{ error | escape }}
{% endfor %}
@@ -99,23 +101,23 @@
Book Identifiers
-
{{ form.isbn_13 }}
+
{{ form.isbn_13 }}
{% for error in form.isbn_13.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.isbn_10 }}
+
{{ form.isbn_10 }}
{% for error in form.isbn_10.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.openlibrary_key }}
+
{{ form.openlibrary_key }}
{% for error in form.openlibrary_key.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.librarything_key }}
+
{{ form.librarything_key }}
{% for error in form.librarything_key.errors %}
{{ error | escape }}
{% endfor %}
-
{{ form.goodreads_key }}
+
{{ form.goodreads_key }}
{% for error in form.goodreads_key.errors %}
{{ error | escape }}
{% endfor %}
diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py
index e6c3f79f..22edd38a 100644
--- a/bookwyrm/urls.py
+++ b/bookwyrm/urls.py
@@ -76,6 +76,7 @@ urlpatterns = [
# books
re_path(r'%s(.json)?/?$' % book_path, views.book_page),
re_path(r'%s/edit/?$' % book_path, views.edit_book_page),
+ re_path(r'^author/(?P
[\w\-]+)/edit/?$', views.edit_author_page),
re_path(r'%s/editions(.json)?/?$' % book_path, views.editions_page),
re_path(r'^author/(?P[\w\-]+)(.json)?/?$', views.author_page),
@@ -104,6 +105,7 @@ urlpatterns = [
re_path(r'^edit-book/(?P\d+)/?$', actions.edit_book),
re_path(r'^upload-cover/(?P\d+)/?$', actions.upload_cover),
re_path(r'^add-description/(?P\d+)/?$', actions.add_description),
+ re_path(r'^edit-author/(?P\d+)/?$', actions.edit_author),
re_path(r'^switch-edition/?$', actions.switch_edition),
re_path(r'^edit-readthrough/?$', actions.edit_readthrough),
diff --git a/bookwyrm/view_actions.py b/bookwyrm/view_actions.py
index 7939cab1..9f834eb1 100644
--- a/bookwyrm/view_actions.py
+++ b/bookwyrm/view_actions.py
@@ -244,7 +244,7 @@ def edit_book(request, book_id):
return TemplateResponse(request, 'edit_book.html', data)
book = form.save()
- outgoing.handle_update_book(request.user, book)
+ outgoing.handle_update_book_data(request.user, book)
return redirect('/book/%s' % book.id)
@@ -291,7 +291,7 @@ def upload_cover(request, book_id):
book.cover = form.files['cover']
book.save()
- outgoing.handle_update_book(request.user, book)
+ outgoing.handle_update_book_data(request.user, book)
return redirect('/book/%s' % book.id)
@@ -310,10 +310,31 @@ def add_description(request, book_id):
book.description = description
book.save()
- outgoing.handle_update_book(request.user, book)
+ outgoing.handle_update_book_data(request.user, book)
return redirect('/book/%s' % book.id)
+@login_required
+@permission_required('bookwyrm.edit_book', raise_exception=True)
+@require_POST
+def edit_author(request, author_id):
+ ''' edit a author cool '''
+ author = get_object_or_404(models.Author, id=author_id)
+
+ form = forms.AuthorForm(request.POST, request.FILES, instance=author)
+ if not form.is_valid():
+ data = {
+ 'title': 'Edit Author',
+ 'author': author,
+ 'form': form
+ }
+ return TemplateResponse(request, 'edit_author.html', data)
+ author = form.save()
+
+ outgoing.handle_update_book_data(request.user, author)
+ return redirect('/author/%s' % author.id)
+
+
@login_required
@require_POST
def create_shelf(request):
diff --git a/bookwyrm/views.py b/bookwyrm/views.py
index 8e40f362..1afb8266 100644
--- a/bookwyrm/views.py
+++ b/bookwyrm/views.py
@@ -657,6 +657,20 @@ def edit_book_page(request, book_id):
return TemplateResponse(request, 'edit_book.html', data)
+@login_required
+@permission_required('bookwyrm.edit_book', raise_exception=True)
+@require_GET
+def edit_author_page(request, author_id):
+ ''' info about a book '''
+ author = get_object_or_404(models.Author, id=author_id)
+ data = {
+ 'title': 'Edit Author',
+ 'author': author,
+ 'form': forms.AuthorForm(instance=author)
+ }
+ return TemplateResponse(request, 'edit_author.html', data)
+
+
@require_GET
def editions_page(request, book_id):
''' list of editions of a book '''