def test_supports_additional_metadata_from_contentlisting_object( self, browser): self.activate_feature('bumblebee') self.login(self.regular_user, browser) view = ('@search?path={}&metadata_fields=preview_pdf_url' '&metadata_fields=preview_image_url'.format('/'.join( self.document.getPhysicalPath()))) browser.open(self.dossier, view=view, headers=self.api_headers) items = browser.json['items'] self.assertItemsEqual([ u'@id', u'@type', u'title', u'description', u'review_state', u'preview_image_url', u'preview_pdf_url' ], items[0].keys()) # Use same bumble_id to compare the urls. parsed = urlparse.urlparse(items[0]['preview_pdf_url']) self.request['bid'] = urlparse.parse_qs(parsed.query)['bid'][0] self.assertEqual( get_service_v3().get_representation_url(self.document, 'pdf'), items[0]['preview_pdf_url']) self.assertEqual( get_service_v3().get_representation_url(self.document, 'thumbnail'), items[0]['preview_image_url'])
def __call__(self): self.install_upgrade_profile() catalog = api.portal.get_tool('portal_catalog') query = {'portal_type': 'opengever.meeting.sablontemplate'} msg = 'Add bumblebee-previews for sablontemplates.' for obj in self.objects(query, msg): IBumblebeeDocument(obj).update_checksum() catalog.reindexObject(obj, idxs=['object_provides'], update_metadata=False) if is_bumblebee_feature_enabled(): get_service_v3().trigger_storing(obj, deferred=True)
def get_preview_frame_url(self): """Return the url to fetch the bumblebee preview HTML frame.""" if not self.is_bumblebeeable(): return None return bumblebee.get_service_v3().get_representation_url( self.getDataOrigin(), 'preview')
def get_preview_image_url(self): """Return the url to fetch the bumblebee preview thumbnail.""" if not self.is_bumblebeeable(): return None return bumblebee.get_service_v3().get_representation_url( self.getDataOrigin(), 'thumbnail')
def get_preview_pdf_url(self): """Return the url to fetch the bumblebee preview pdf.""" if not self.is_bumblebeeable(): return None return bumblebee.get_service_v3().get_representation_url( self.getDataOrigin(), 'pdf')
def __call__(self, *args, **kwargs): result = super(SerializeDocumentToJson, self).__call__(*args, **kwargs) ref_num = IReferenceNumber(self.context) result[u'reference_number'] = ref_num.get_number() bumblebee_service = bumblebee.get_service_v3() result[u'thumbnail_url'] = bumblebee_service.get_representation_url( self.context, 'thumbnail') result[u'preview_url'] = bumblebee_service.get_representation_url( self.context, 'preview') result[u'pdf_url'] = bumblebee_service.get_representation_url( self.context, 'pdf') result[u'file_extension'] = self.context.get_file_extension() additional_metadata = { 'checked_out': self.context.checked_out_by(), 'is_locked': self.context.is_locked(), 'containing_dossier': self.context.containing_dossier_title(), 'containing_subdossier': self.context.containing_subdossier_title(), 'trashed': self.context.is_trashed, 'is_shadow_document': self.context.is_shadow_document(), 'current_version_id': self.context.get_current_version_id(missing_as_zero=True), } result.update(additional_metadata) return result
def preview_pdf_url(self): """Return the url to fetch the bumblebee preview pdf.""" if not self.is_bumblebeeable(): return None return bumblebee.get_service_v3().get_representation_url( self.getDataOrigin(), 'pdf')
def test_returns_not_digitally_available_placeholder_image_if_no_ckecksum_is_available(self): document = create(Builder('document')) brain = obj2brain(document) self.assertIn( 'fallback_not_digitally_available.svg', bumblebee.get_service_v3().get_representation_url(brain, 'thumbnail'))
def test_returns_not_digitally_available_placeholder_image_if_no_ckecksum_is_available( self): document = create(Builder('document')) self.assertIn( 'fallback_not_digitally_available.svg', bumblebee.get_service_v3().get_representation_url( document, 'thumbnail'))
def test_returns_representation_url_if_checksum_is_available(self): document = create(Builder('document') .attach_file_containing( bumblebee_asset('example.docx').bytes(), u'example.docx')) self.assertIn( '/YnVtYmxlYmVl/api/v3/resource/', bumblebee.get_service_v3().get_representation_url(document, 'thumbnail'))
def get_infos_for(self, obj): return { 'title': obj.Title(), 'overlay_url': obj.absolute_url() + '/@@bumblebee-overlay-listing', 'uid': IUUID(obj), 'checksum': IBumblebeeDocument(obj).get_checksum(), 'mime_type_css_class': get_css_class(obj), 'preview_image_url': bumblebee.get_service_v3().get_representation_url( obj, 'thumbnail')}
def get_infos_for(self, brain): return { 'title': brain.Title, 'overlay_url': brain.getURL() + '/@@bumblebee-overlay-listing', 'uid': brain.UID, 'checksum': brain.bumblebee_checksum, 'mime_type_css_class': get_css_class(brain), 'preview_image_url': bumblebee.get_service_v3().get_representation_url( brain, 'thumbnail')}
def test_returns_representation_url_if_checksum_is_available(self): document = create( Builder('document').attach_file_containing( bumblebee_asset('example.docx').bytes(), u'example.docx')) self.assertIn( '/YnVtYmxlYmVl/api/v3/resource/', bumblebee.get_service_v3().get_representation_url( document, 'thumbnail'))
def __call__(self, *args, **kwargs): other_vars = super(GeverJSVariables, self).__call__(*args, **kwargs) notification_url = bumblebee.get_service_v3().get_notifications_url() if not is_auto_refresh_enabled(): return other_vars return TEMPLATE.format( other_vars=other_vars, bumblebee_notification_url=notification_url)
def _queue_demand_job(self, document): callback_url = self.meeting.get_url(view='receive_meeting_zip_pdf') doc_in_job_id = self.zip_job._get_doc_in_job_id(document) if get_service_v3().queue_demand( document, PROCESSING_QUEUE, callback_url, opaque_id=doc_in_job_id): return 'converting' else: return 'skipped'
def __call__(self): self.install_upgrade_profile() service = get_service_v3() msg = 'Reindex checksum for documents having one of the following ' \ 'file-extensions: {}.'.format(', '.join(self.additional_mimetypes)) for obj in ProgressLogger(msg, self.objs_to_perform()): IBumblebeeDocument(obj).update_checksum() service.trigger_storing(obj, deferred=True)
def _queue_demand_job(self, document): callback_url = self.meeting.get_url(view='receive_meeting_zip_pdf') doc_in_job_id = self.zip_job._get_doc_in_job_id(document) if get_service_v3().queue_demand(document, PROCESSING_QUEUE, callback_url, opaque_id=doc_in_job_id): return 'converting' else: return 'skipped'
def __call__(self): if not is_bumblebee_feature_enabled(): raise NotFound filename = self.request.get('filename') if not filename: raise NotFound notify(PDFDownloadedEvent(self.context)) url = bumblebee.get_service_v3().get_representation_url( self.context, 'pdf', filename=filename) return self.request.RESPONSE.redirect(url)
def test_tooltip_contains_preview_thumbnail(self, browser): with freeze(datetime(2016, 1, 1)): document = create(Builder('document').with_dummy_content()) self.request.form['bid'] = 'THEBID' browser.login().open(document, {'bid': 'THEBID'}, view='tooltip') thumbnail_url = bumblebee.get_service_v3().get_representation_url( document, 'thumbnail') self.assertEquals(thumbnail_url, browser.css('.preview img').first.get('src')) self.assertEquals(['Open document preview'], browser.css('.preview span').text)
def get_infos_for(self, obj): return { 'title': obj.Title(), 'overlay_url': obj.absolute_url() + '/@@bumblebee-overlay-listing', 'uid': IUUID(obj), 'mime_type_css_class': get_css_class(obj), 'preview_image_url': bumblebee.get_service_v3().get_representation_url( obj, 'thumbnail') }
def get_infos_for(self, brain): return { 'title': brain.Title, 'overlay_url': brain.getURL() + '/@@bumblebee-overlay-listing', 'uid': brain.UID, 'mime_type_css_class': get_css_class(brain), 'preview_image_url': bumblebee.get_service_v3().get_representation_url( brain, 'thumbnail') }
def __call__(self, *args, **kwargs): result = super(SerializeDocumentToJson, self).__call__(*args, **kwargs) ref_num = IReferenceNumber(self.context) result[u'reference_number'] = ref_num.get_number() bumblebee_service = bumblebee.get_service_v3() result[u'thumbnail_url'] = bumblebee_service.get_representation_url( self.context, 'thumbnail') result[u'preview_url'] = bumblebee_service.get_representation_url( self.context, 'preview') result[u'pdf_url'] = bumblebee_service.get_representation_url( self.context, 'pdf') return result
def previews(self, **kwargs): brains = self.get_brains() from_batch_id = int(self.request.get('documentPointer', 0)) to_batch_id = from_batch_id + self.pagesize for brain in brains[from_batch_id:to_batch_id]: yield { 'title': brain.Title, 'overlay_url': '{}/@@bumblebee-overlay-listing'.format(brain.getURL()), 'preview_image_url': bumblebee.get_service_v3().get_representation_url( brain, 'thumbnail'), 'uid': brain.UID, 'mime_type_css_class': get_css_class(brain), }
def test_tooltip_contains_preview_thumbnail(self, browser): with freeze(datetime(2016, 1, 1)): document = create(Builder('document').with_dummy_content()) self.request.form['bid'] = 'THEBID' browser.login().open(document, {'bid': 'THEBID'}, view='tooltip') thumbnail_url = bumblebee.get_service_v3().get_representation_url( document, 'thumbnail') self.assertEquals( thumbnail_url, browser.css('.preview img').first.get('src')) self.assertEquals( ['Open document preview'], browser.css('.preview span').text)
def get_preview_pdf_url(self): return bumblebee.get_service_v3().get_representation_url( self.context, 'preview')
def preview_image_url(self): return bumblebee.get_service_v3().get_representation_url( self.context, 'image')
def test_bumblebee_service_registration(self): service = get_service_v3() self.assertIsInstance(service, GeverBumblebeeService)
def get_preview_image_url(self): return bumblebee.get_service_v3().get_representation_url( self.context, 'image')
def get_preview_image_url(self): return bumblebee.get_service_v3().get_representation_url( self.context.get_proposal_document(), 'image')