def create_views(self): #TODO: we need this method because of this bug - @deniszgonjanin #https://github.com/ckan/ckan/issues/2532 view_plugins = [view_plugin.info()['name'] for view_plugin in get_default_view_plugins()] for p in get_action('package_list')({},{}): package = get_action('package_show')({}, {'id':p}) add_views_to_dataset_resources({}, package, view_types=view_plugins)
def create_views(self): # TODO: we need this method because of this bug - @deniszgonjanin # https://github.com/ckan/ckan/issues/2532 view_plugins = [ view_plugin.info()['name'] for view_plugin in get_default_view_plugins() ] for p in get_action('package_list')({}, {}): package = get_action('package_show')({}, {'id': p}) add_views_to_dataset_resources({}, package, view_types=view_plugins)
def test_add_views_to_dataset_resources_no_type_provided(self): # New resources have no views dataset_dict = factories.Dataset(resources=[ { 'url': 'http://some.image.png', 'format': 'png', 'name': 'Image 1', }, { 'url': 'http://some.image.png', 'format': 'png', 'name': 'Image 2', }, ]) # Change default views config setting config['ckan.views.default_views'] = 'image_view' context = { 'user': helpers.call_action('get_site_user')['name'] } created_views = datapreview.add_views_to_dataset_resources( context, dataset_dict, view_types=[]) eq_(len(created_views), 2) eq_(created_views[0]['view_type'], 'image_view') eq_(created_views[1]['view_type'], 'image_view')
def test_add_views_to_dataset_resources(self): # New resources have no views dataset_dict = factories.Dataset(resources=[ { 'url': 'http://some.image.png', 'format': 'png', 'name': 'Image 1', }, { 'url': 'http://some.image.png', 'format': 'png', 'name': 'Image 2', }, ]) context = { 'user': helpers.call_action('get_site_user')['name'] } created_views = datapreview.add_views_to_dataset_resources( context, dataset_dict, view_types=['image_view']) eq_(len(created_views), 2) eq_(created_views[0]['view_type'], 'image_view') eq_(created_views[1]['view_type'], 'image_view')
def test_add_views_to_dataset_resources_no_type_provided(self): # New resources have no views dataset_dict = factories.Dataset(resources=[ { 'url': 'http://some.image.png', 'format': 'png', 'name': 'Image 1', }, { 'url': 'http://some.image.png', 'format': 'png', 'name': 'Image 2', }, ]) # Change default views config setting config['ckan.views.default_views'] = 'image_view' context = {'user': helpers.call_action('get_site_user')['name']} created_views = datapreview.add_views_to_dataset_resources( context, dataset_dict, view_types=[]) eq_(len(created_views), 2) eq_(created_views[0]['view_type'], 'image_view') eq_(created_views[1]['view_type'], 'image_view')
def test_add_views_to_dataset_resources_no_type_provided(self): # New resources have no views dataset_dict = factories.Dataset( resources=[ { "url": "http://some.image.png", "format": "png", "name": "Image 1", }, { "url": "http://some.image.png", "format": "png", "name": "Image 2", }, ] ) # Change default views config setting config["ckan.views.default_views"] = "image_view" context = {"user": helpers.call_action("get_site_user")["name"]} created_views = datapreview.add_views_to_dataset_resources( context, dataset_dict, view_types=[] ) assert len(created_views) == 2 assert created_views[0]["view_type"] == "image_view" assert created_views[1]["view_type"] == "image_view"
def test_add_views_to_dataset_resources(self): # New resources have no views dataset_dict = factories.Dataset( resources=[ { "url": "http://some.image.png", "format": "png", "name": "Image 1", }, { "url": "http://some.image.png", "format": "png", "name": "Image 2", }, ] ) context = {"user": helpers.call_action("get_site_user")["name"]} created_views = datapreview.add_views_to_dataset_resources( context, dataset_dict, view_types=["image_view"] ) assert len(created_views) == 2 assert created_views[0]["view_type"] == "image_view" assert created_views[1]["view_type"] == "image_view"
def create(ctx: click.Context, types: list[str], dataset: list[str], no_default_filters: bool, search: str, yes: bool): """Create views on relevant resources. You can optionally provide specific view types (eg `recline_view`, `image_view`). If no types are provided, the default ones will be used. These are generally the ones defined in the `ckan.views.default_views` config option. Note that on either case, plugins must be loaded (ie added to `ckan.plugins`), otherwise the command will stop. """ datastore_enabled = (u"datastore" in config[u"ckan.plugins"].split()) flask_app = ctx.meta['flask_app'] with flask_app.test_request_context(): loaded_view_plugins = _get_view_plugins(types, datastore_enabled) if loaded_view_plugins is None: return site_user = logic.get_action(u"get_site_user")({u"ignore_auth": True}, {}) context: Context = {u"user": site_user[u"name"]} page = 1 while True: query = _search_datasets(page, loaded_view_plugins, dataset, search, no_default_filters) if query is None: return if page == 1 and query[u"count"] == 0: return error_shout( u"No datasets to create resource views on, exiting...") elif page == 1 and not yes: msg = (u"\nYou are about to check {0} datasets for the " + u"following view plugins: {1}\n" + u" Do you want to continue?") click.confirm(msg.format(query[u"count"], loaded_view_plugins), abort=True) if query[u"results"]: for dataset_dict in query[u"results"]: if not dataset_dict.get(u"resources"): continue with flask_app.test_request_context(): views = add_views_to_dataset_resources( context, dataset_dict, view_types=loaded_view_plugins) if views: view_types = list({view[u"view_type"] for view in views}) msg = (u"Added {0} view(s) of type(s) {1} to " + u"resources from dataset {2}") click.secho( msg.format( len(views), u", ".join(view_types), dataset_dict[u"name"], )) if len(query[u"results"]) < _page_size: break page += 1 else: break click.secho(u"Done", fg=u"green")