def plotly_app(context, name=None, slug=None, da=None, ratio=0.1, use_frameborder=False, initial_arguments=None): 'Insert a dash application using a html iframe' fbs = '1' if use_frameborder else '0' dstyle = """ position: relative; padding-bottom: %s%%; height: 0; overflow:hidden; """ % (ratio * 100) istyle = """ position: absolute; top: 0; left: 0; width: 100%; height: 100%; """ cache_id = store_initial_arguments(context['request'], initial_arguments) da, app = _locate_daapp(name, slug, da, cache_id=cache_id) return locals()
def plotly_app_bootstrap(context, name=None, slug=None, da=None, aspect="4by3", initial_arguments=None): 'Insert a dash application using a html iframe' valid_ratios = [ '21by9', '16by9', '4by3', '1by1', ] if aspect not in valid_ratios: raise ValueError( "plotly_app_bootstrap requires a valid aspect ratio from %s, but was supplied %s" % (str(valid_ratios), aspect)) cache_id = store_initial_arguments(context['request'], initial_arguments) da, app = _locate_daapp(name, slug, da, cache_id=cache_id) return locals()
def test_argument_settings(settings, client): 'Test the setting that controls how initial arguments are propagated through to the dash app' from django_plotly_dash.util import initial_argument_location, store_initial_arguments, get_initial_arguments assert initial_argument_location() settings.PLOTLY_DASH = {'cache_arguments': True} assert initial_argument_location() test_value = {"test":"first"} cache_id = store_initial_arguments(None, test_value) assert len(cache_id) > 10 fetched = get_initial_arguments(None, cache_id) assert fetched == test_value settings.PLOTLY_DASH = {'cache_arguments': False} assert not initial_argument_location() cache_id2 = store_initial_arguments(client, test_value) assert len(cache_id2) > 10 assert cache_id != cache_id2 ## For some reason, sessions are continually replaced, so lookup here doesnt work #fetched2 = get_initial_arguments(client, cache_id2) #assert fetched2 == test_value assert store_initial_arguments(None, None) is None assert get_initial_arguments(None, None) is None assert store_initial_arguments(client, None) is None assert get_initial_arguments(client, None) is None