Beispiel #1
0
    def render_page(self, screen, user):
        channels = Channel.get_visible_channels_of(user)
        plugin_channels = [c for c in channels if type(c) == PluginChannel]
        bundle_channels = [c for c in channels if type(c) == ChannelBundle]
        """Let admins select channels with the same orientation as the screen orientation """
        plugin_channels = [c for c in plugin_channels if (c.plugin.name == "editor" and c.get_config_param(
            'vertical') and "Portrait" == screen.orientation) or (c.plugin.name == "editor" and not c.get_config_param(
            'vertical') and "Landscape" == screen.orientation) or (c.plugin.name != "editor")]

        subscriptions=user.get_subscriptions_of_owned_screens()
        last_by =   {sub.channel.id:
                    {
                        'user': sub.created_by.readable_name,
                        'channel_name': sub.channel.name,
                        'plugin_channel': hasattr(sub.channel, 'plugin')
                    }
                    for sub in subscriptions if sub.screen.id == screen.id
                }

        return self.renderer.screen_subscriptions(
            screen=screen,
            user=user,
            users=User.select(),
            screen_channels=Channel.get_screens_channels_from(user=user),
            plugin_channels=plugin_channels,
            bundle_channels=bundle_channels,
            subscriptions=subscriptions,
            last_by = last_by,
            plugin_channels_names = {c.id: c.name for c in plugin_channels},
            bundle_channels_names = {c.id: c.name for c in bundle_channels}
        )
Beispiel #2
0
 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))
Beispiel #3
0
    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)
Beispiel #4
0
 def assert_all_channels():
     assert set(Channel.get_screens_channels_from(u)) == {
         channel, plugin_channel, bundle_channel
     }
Beispiel #5
0
 def assert_channels(*channels):
     assert set(
         Channel.get_screens_channels_from(u)) == set(channels)
Beispiel #6
0
 def assert_channel(c):
     assert set(Channel.get_screens_channels_from(u)) == {c}
Beispiel #7
0
 def assert_no_channels():
     assert set(Channel.get_screens_channels_from(u)) == set()