def render_page(self): u = User.get(self.session['user']['id']) screen_status_validity = datetime.now() - timedelta(hours=1) return self.renderer.screens( screens=Screen.get_visible_screens_of(u), buildings=Building.select(), user=u, users=User.select(), channels=Channel.get_screens_channels_from(user=u), subscriptions=u.get_subscriptions_of_owned_screens(), screen_status_validity=screen_status_validity, max_inactivity_period=timedelta(weeks=4))
def get(self, channel_id): channel = Channel.get(channel_id) current_user = User.get(self.session['user']['id']) screens_of_current_user = Screen.get_visible_screens_of(current_user) subscriptions = current_user.get_subscriptions_of_owned_screens() last_by = { sub.screen.id: { 'user': sub.created_by.readable_name, 'channel_name': sub.channel.name, 'plugin_channel': hasattr(sub.channel, 'plugin') } for sub in subscriptions if sub.channel.id == channel.id } screen_names = {s.id: s.name for s in screens_of_current_user} return self.renderer.channel_subscriptions( channel=channel, possible_screens=screens_of_current_user, user=current_user, subscriptions=subscriptions, last_by=last_by, screen_names=screen_names)
def render_page(self): u = User.get(self.session['user']['id']) screen_status_validity = datetime.now() - timedelta(hours=1) def get_data_edit_object(screen): object = screen.to_dictionary(['name', 'comment', 'location']) object['screenid'] = screen.id object['mac'] = screen.get_macs_string( ) if screen.macs is not None else '' object['building-name'] = screen.building.name return json.dumps(object) return self.renderer.screens( screens=Screen.get_visible_screens_of(u), buildings=Building.select(), user=u, highest_permission_level=u.highest_permission_level, users=User.select(), channels=Channel.get_screens_channels_from(user=u), subscriptions=u.get_subscriptions_of_owned_screens(), screen_status_validity=screen_status_validity, max_inactivity_period=timedelta(weeks=4), get_data_edit_object=get_data_edit_object)
def runTest(self): """ Tests the Screen SQLObject """ Channel.deleteMany(None) Screen.deleteMany(None) channel = Channel(name='Channel', subscription_right='public', secret='abcdef') plugin_channel = PluginChannel(name='Channel2', plugin=Plugin.byName('fake_plugin'), subscription_right='public') plugin_channel2 = PluginChannel(name='Channel3', plugin=Plugin.byName('fake_plugin'), subscription_right='public') bundle_channel = ChannelBundle(name='Channel4', subscription_right='public') bundle_channel.add_channel(plugin_channel2) building = Building(name='building') screen = Screen(name='Screen', building=building, secret='abcdef') screen2 = Screen(name='Screen2', building=building) user = User(fullname='User', email='test@localhost') user2 = User(fullname='User2', email='test2@localhost') # Miscellaneous test assert screen.get_view_link() == '/screens/%d/view/abcdef' % screen.id assert screen.get_client_link( ) == '/screens/%d/client/abcdef' % screen.id assert screen.get_macs_string() == '' assert screen not in user.screens screen.safe_add_user(user) assert screen in user.screens assert screen not in user2.screens screen.removeUser(user) assert screen not in user2.screens # Test subscription assert not screen.is_subscribed_to(channel) screen.subscribe_to(user, channel) assert screen.is_subscribed_to(channel) sub = screen.subscriptions[0] screen.subscribe_to(user2, channel, weight=42) assert sub.created_by == user2 assert sub.weight == 42 assert screen.is_subscribed_to(channel) assert list(screen.subscribed_channels) == [channel] screen.unsubscribe_from(user2, channel) assert not screen.is_subscribed_to(channel) # Test macs ScreenMac(screen=screen, mac='00b16b00b500') ScreenMac(screen=screen, mac='00b16b00b501') assert screen.get_macs_string( ) == '00:b1:6b:00:b5:00;00:b1:6b:00:b5:01' # Test get_visible_screens_of() assert list(Screen.get_visible_screens_of(user)) == list( Screen.get_visible_screens_of(user2)) == [] user.admin = True assert list(Screen.get_visible_screens_of(user)) == [screen, screen2] assert list(Screen.get_visible_screens_of(user2)) == [] user.admin = False user2.super_admin = True assert list(Screen.get_visible_screens_of(user2)) == [screen, screen2] assert list(Screen.get_visible_screens_of(user)) == [] user2.super_admin = False screen.safe_add_user(user) screen2.safe_add_user(user2) assert list(Screen.get_visible_screens_of(user)) == [screen] assert list(Screen.get_visible_screens_of(user2)) == [screen2] # Test channel content screen.subscribe_to(user, plugin_channel) screen.subscribe_to(user, bundle_channel) screen_content = screen.get_channels_content(self.ictv_app) assert len(screen_content) == 2 assert len(screen_content[0].get_slides()) == 1 assert screen_content[0].get_slides()[0].get_content() == { 'background-1': { 'size': 'contain', 'src': '' }, 'title-1': { 'text': 'Channel2' }, 'text-1': { 'text': '' } } assert len(screen_content[1].get_slides()) == 1 assert screen_content[1].get_slides()[0].get_content() == { 'background-1': { 'size': 'contain', 'src': '' }, 'title-1': { 'text': 'Channel3' }, 'text-1': { 'text': '' } } screen.shuffle = True assert len(screen.get_channels_content(self.ictv_app)) == 2