Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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')
Ejemplo n.º 4
0
    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')
Ejemplo n.º 5
0
    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')
Ejemplo n.º 6
0
    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"
Ejemplo n.º 7
0
    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"
Ejemplo n.º 8
0
    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')
Ejemplo n.º 9
0
Archivo: views.py Proyecto: frafra/ckan
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")