Skip to content

Commit

Permalink
Merge pull request #3061 from k-nut/3011-do-not-always-create-default…
Browse files Browse the repository at this point in the history
…-views

Do not create default views on update
  • Loading branch information
amercader committed Jun 7, 2016
2 parents 7a58753 + 11369af commit c148f45
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 82 deletions.
10 changes: 10 additions & 0 deletions ckan/logic/action/create.py
Expand Up @@ -317,6 +317,16 @@ def resource_create(context, data_dict):
updated_pkg_dict = _get_action('package_show')(context, {'id': package_id})
resource = updated_pkg_dict['resources'][-1]

## Add the default views to the new resource
logic.get_action('resource_create_default_resource_views')(
{'model': context['model'],
'user': context['user'],
'ignore_auth': True
},
{'resource': resource,
'package': updated_pkg_dict
})

for plugin in plugins.PluginImplementations(plugins.IResourceController):
plugin.after_create(context, resource)

Expand Down
7 changes: 0 additions & 7 deletions ckan/logic/action/update.py
Expand Up @@ -307,13 +307,6 @@ def package_update(context, data_dict):

item.after_update(context, data)

# Create default views for resources if necessary
if data.get('resources'):
logic.get_action('package_create_default_resource_views')(
{'model': context['model'], 'user': context['user'],
'ignore_auth': True},
{'package': data})

if not context.get('defer_commit'):
model.repo.commit()

Expand Down
73 changes: 0 additions & 73 deletions ckan/tests/lib/test_datapreview.py
Expand Up @@ -271,50 +271,6 @@ def test_default_views_created_on_package_create(self):
eq_(len(views_list), 1)
eq_(views_list[0]['view_type'], 'image_view')

def test_default_views_created_on_package_update(self):

dataset_dict = factories.Dataset(
resources=[{
'url': 'http://not.for.viewing',
'format': 'xxx',
}]
)

resource_id = dataset_dict['resources'][0]['id']

views_list = helpers.call_action('resource_view_list', id=resource_id)

eq_(len(views_list), 0)

updated_data_dict = {
'id': dataset_dict['id'],
'resources': [
{
'url': 'http://not.for.viewing',
'format': 'xxx',
},
{
'url': 'http://some.image.png',
'format': 'png',
},


]
}

dataset_dict = helpers.call_action('package_update', **updated_data_dict)

for resource in dataset_dict['resources']:
resource_id = resource['id'] if resource['format'] == 'PNG' else None

assert resource_id

updated_views_list = helpers.call_action('resource_view_list', id=resource_id)
eq_(len(updated_views_list), 1)
eq_(updated_views_list[0]['view_type'], 'image_view')

pass

def test_default_views_created_on_resource_create(self):

dataset_dict = factories.Dataset(
Expand All @@ -336,32 +292,3 @@ def test_default_views_created_on_resource_create(self):

eq_(len(views_list), 1)
eq_(views_list[0]['view_type'], 'image_view')

def test_default_views_created_on_resource_update(self):

dataset_dict = factories.Dataset(
resources=[{
'url': 'http://not.for.viewing',
'format': 'xxx',
}]
)

resource_id = dataset_dict['resources'][0]['id']

views_list = helpers.call_action('resource_view_list', id=resource_id)

eq_(len(views_list), 0)

resource_dict = {
'id': resource_id,
'package_id': dataset_dict['id'],
'url': 'http://some.image.png',
'format': 'png',
}

updated_resource_dict = helpers.call_action('resource_update', **resource_dict)

views_list = helpers.call_action('resource_view_list', id=updated_resource_dict['id'])

eq_(len(views_list), 1)
eq_(views_list[0]['view_type'], 'image_view')
4 changes: 2 additions & 2 deletions ckanext/reclineview/plugin.py
Expand Up @@ -62,7 +62,7 @@ def update_config(self, config):
def can_view(self, data_dict):
resource = data_dict['resource']
return (resource.get('datastore_active') or
resource.get('url') == '_datastore_only_resource')
'_datastore_only_resource' in resource.get('url', ''))

def setup_template_variables(self, context, data_dict):
return {'resource_json': json.dumps(data_dict['resource']),
Expand Down Expand Up @@ -90,7 +90,7 @@ def can_view(self, data_dict):
resource = data_dict['resource']

if (resource.get('datastore_active') or
resource.get('url') == '_datastore_only_resource'):
'_datastore_only_resource' in resource.get('url', '')):
return True
resource_format = resource.get('format', None)
if resource_format:
Expand Down

0 comments on commit c148f45

Please sign in to comment.