def test_get_overlays(self, mock_projector_overlays): mock_overlay = MagicMock() mock_overlay.name = 'mock_overlay' mock_projector_overlays.send.return_value = ((None, mock_overlay), ) value = projector_api.get_overlays() self.assertEqual(value, {'mock_overlay': mock_overlay})
def test_get_overlays_inactive(self, mock_projector_overlays): mock_overlay = MagicMock() mock_overlay.name = 'mock_overlay_2' mock_overlay.is_active.return_value = False mock_projector_overlays.send.return_value = ((None, mock_overlay), ) value = projector_api.get_overlays(only_active=True) self.assertNotEqual(value, {'mock_overlay_2': mock_overlay})
def get_ajax_context(self, **context): """ Returns the context including the slide content for ajax response. The overlay 'agenda_speaker' is always excluded. """ overlay_dict = {} for overlay in get_overlays().values(): if overlay.is_active() and overlay.name != 'agenda_speaker': overlay_dict[overlay.name] = { 'html': overlay.get_projector_html(), 'javascript': overlay.get_javascript()} else: overlay_dict[overlay.name] = None return super(CurrentListOfSpeakersProjectorView, self).get_ajax_context( content=self.get_content(), overlays=overlay_dict, **context)
def get_overlays_and_overlay_js(self): """ Returns the overlays and their JavaScript for this slide as a two-tuple. The overlay 'agenda_speaker' is always excluded. The required JavaScript fot this view is inserted. """ overlays = get_overlays(only_active=True) overlays.pop('agenda_speaker', None) overlay_js = get_projector_overlays_js(as_json=True) # Note: The JavaScript content of overlay 'agenda_speaker' is not # excluded because this overlay has no such content at the moment. extra_js = SortedDict() extra_js['load_file'] = static('js/agenda_current_list_of_speakers_projector.js') extra_js['call'] = 'reloadListOfSpeakers();' extra_js = dumps(extra_js) overlay_js.append(extra_js) return overlays, overlay_js