|
@@ -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,
|