diff --git a/cps/templates/book_edit.html b/cps/templates/book_edit.html index 319481fb..c6a965ed 100644 --- a/cps/templates/book_edit.html +++ b/cps/templates/book_edit.html @@ -124,13 +124,29 @@ {% endfor %} {% endif %} + {% if g.user.role_upload() or g.user.role_admin()%} {% if g.allow_upload %} -
- + +
+
+ + {% if display_convertbtn and conversion_formats|length > 0 %} + + + {% endif %} +
+ {% endif %} {% endif %} diff --git a/cps/web.py b/cps/web.py index 550ecfba..f56dd03d 100644 --- a/cps/web.py +++ b/cps/web.py @@ -96,7 +96,6 @@ gdrive_watch_callback_token = 'target=calibreweb-watch_files' ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'epub', 'mobi', 'azw', 'azw3', 'cbr', 'cbz', 'cbt', 'djvu', 'prc', 'doc', 'docx', 'fb2']) - def md5(fname): hash_md5 = hashlib.md5() with open(fname, "rb") as f: @@ -3072,10 +3071,30 @@ def edit_book(book_id): for author in book.authors: author_names.append(author.name.replace('|', ',')) + #Option for showing convertbook button + if config.config_ebookconverter == 2: + display_convertbtn = True + else: + display_convertbtn = False + + app.logger.debug(book) + app.logger.debug(book.data) + #Determine what formats don't already exist + allowed_conversion_formats = ALLOWED_EXTENSIONS + for file in book.data: + try: + allowed_conversion_formats.remove(file.format.lower()) + except Exception: + app.logger.debug("Exception thrown:") + app.logger.debug(file.format.lower()) + + app.logger.debug(allowed_conversion_formats) + # Show form if request.method != 'POST': return render_title_template('book_edit.html', book=book, authors=author_names, cc=cc, - title=_(u"edit metadata"), page="editbook") + title=_(u"edit metadata"), page="editbook", display_convertbtn=display_convertbtn, + conversion_formats=allowed_conversion_formats) # Update book edited_books_id = set()