|  | 
 |  | 
 | 
												
													
														| 10 |  from depot.manager import DepotManager
 | 10 |  from depot.manager import DepotManager
 | 
												
													
														| 11 |  from preview_generator.exception import PreviewGeneratorException
 | 11 |  from preview_generator.exception import PreviewGeneratorException
 | 
												
													
														| 12 |  from preview_generator.manager import PreviewManager
 | 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 |  from sqlalchemy.orm.exc import NoResultFound
 | 13 |  from sqlalchemy.orm.exc import NoResultFound
 | 
												
													
														| 17 |  import tg
 | 14 |  import tg
 | 
												
													
														| 18 |  from tg import abort
 | 15 |  from tg import abort
 | 
												
											
												
													
														|  | 
 |  | 
 | 
												
													
														| 221 |              revision_id = file.revision_id
 | 218 |              revision_id = file.revision_id
 | 
												
													
														| 222 |  
 | 219 |  
 | 
												
													
														| 223 |          file_path = content_api.get_one_revision_filepath(revision_id)
 | 220 |          file_path = content_api.get_one_revision_filepath(revision_id)
 | 
												
													
														|  | 
 | 221 | +
 | 
												
													
														| 224 |          nb_page = 0
 | 222 |          nb_page = 0
 | 
												
													
														| 225 |          try:
 | 223 |          try:
 | 
												
													
														| 226 |              nb_page = preview_manager.get_page_nb(file_path=file_path)
 | 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 |          preview_urls = []
 | 230 |          preview_urls = []
 | 
												
													
														| 230 |          for page in range(int(nb_page)):
 | 231 |          for page in range(int(nb_page)):
 | 
												
													
														| 231 |              url_str = '/previews/{}/pages/{}?revision_id={}'
 | 232 |              url_str = '/previews/{}/pages/{}?revision_id={}'
 | 
												
											
												
													
														|  | 
 |  | 
 | 
												
													
														| 234 |                                   revision_id)
 | 235 |                                   revision_id)
 | 
												
													
														| 235 |              preview_urls.append(url)
 | 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 |          fake_api_breadcrumb = self.get_breadcrumb(file_id)
 | 251 |          fake_api_breadcrumb = self.get_breadcrumb(file_id)
 | 
												
													
														| 247 |          fake_api_content = DictLikeClass(breadcrumb=fake_api_breadcrumb,
 | 252 |          fake_api_content = DictLikeClass(breadcrumb=fake_api_breadcrumb,
 |