Browse Source

Explains exceptions, asks previewer about PDF preview

Adrien Panay 7 years ago
parent
commit
dff894f946
1 changed files with 18 additions and 13 deletions
  1. 18 13
      tracim/tracim/controllers/content.py

+ 18 - 13
tracim/tracim/controllers/content.py View File

@@ -10,9 +10,6 @@ from cgi import FieldStorage
10 10
 from depot.manager import DepotManager
11 11
 from preview_generator.exception import PreviewGeneratorException
12 12
 from preview_generator.manager import PreviewManager
13
-from preview_generator.preview.builder.office__libreoffice import OfficePreviewBuilderLibreoffice
14
-from preview_generator.preview.builder.pdf__pypdf2 import PdfPreviewBuilderPyPDF2
15
-from preview_generator.preview.builder.plain_text import PlainTextPreviewBuilder
16 13
 from sqlalchemy.orm.exc import NoResultFound
17 14
 import tg
18 15
 from tg import abort
@@ -221,11 +218,15 @@ class UserWorkspaceFolderFileRestController(TIMWorkspaceContentRestController):
221 218
             revision_id = file.revision_id
222 219
 
223 220
         file_path = content_api.get_one_revision_filepath(revision_id)
221
+
224 222
         nb_page = 0
225 223
         try:
226 224
             nb_page = preview_manager.get_page_nb(file_path=file_path)
227
-        except PreviewGeneratorException:
228
-            pass
225
+        except PreviewGeneratorException as e:
226
+            logger.debug(self, 'Exception: {}'.format(e.__str__))
227
+            msg_str = _('Sorry... No preview for {}: {}')  # type: str
228
+            msg = msg_str.format(file.file_name, str(e))  # type: str
229
+            tg.flash(msg, CST.STATUS_ERROR)
229 230
         preview_urls = []
230 231
         for page in range(int(nb_page)):
231 232
             url_str = '/previews/{}/pages/{}?revision_id={}'
@@ -234,14 +235,18 @@ class UserWorkspaceFolderFileRestController(TIMWorkspaceContentRestController):
234 235
                                  revision_id)
235 236
             preview_urls.append(url)
236 237
 
237
-        pdf_ready_mimetypes = []  # type: List[str]
238
-        pdf_ready_mimetypes = \
239
-            OfficePreviewBuilderLibreoffice.get_supported_mimetypes() + \
240
-            PdfPreviewBuilderPyPDF2.get_supported_mimetypes() + \
241
-            PlainTextPreviewBuilder.get_supported_mimetypes()
242
-        enable_pdf_buttons = \
243
-            file.file_mimetype in pdf_ready_mimetypes  # type: bool
244
-        pdf_available = str(enable_pdf_buttons).lower()  # type: str
238
+        pdf_available = 'false'  # type: str
239
+        try:
240
+            enable_pdf_buttons = \
241
+                preview_manager.has_pdf_preview(
242
+                    file_path=file_path,
243
+                )  # type: bool
244
+            pdf_available = str(enable_pdf_buttons).lower()
245
+        except PreviewGeneratorException as e:
246
+            logger.debug(self, 'Exception: {}'.format(e.__str__))
247
+            msg_str = _('Sorry... No PDF downloads for {}: {}')  # type: str
248
+            msg = msg_str.format(file.file_name, str(e))  # type: str
249
+            tg.flash(msg, CST.STATUS_ERROR)
245 250
 
246 251
         fake_api_breadcrumb = self.get_breadcrumb(file_id)
247 252
         fake_api_content = DictLikeClass(breadcrumb=fake_api_breadcrumb,