From 8f5b2f3245c05ffd0e7fdc6a2de89889d3320665 Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Thu, 26 Oct 2017 15:57:42 -0400 Subject: [PATCH] [#3816] create mv fixes --- ckan/logic/schema.py | 2 +- ckanext/datastore/plugin.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ckan/logic/schema.py b/ckan/logic/schema.py index 2a3788292eb..be6a50f0fd4 100644 --- a/ckan/logic/schema.py +++ b/ckan/logic/schema.py @@ -102,7 +102,7 @@ def default_resource_schema(): 'cache_last_updated': [ignore_missing, isodate], 'tracking_summary': [ignore_missing], 'datastore_active': [ignore_missing], - 'query': [ignore_missing, unicode_only, datastore_resource_query], + 'query': [ignore_empty, unicode_only, datastore_resource_query], '__extras': [ignore_missing, extras_unicode_convert, keep_extras], } diff --git a/ckanext/datastore/plugin.py b/ckanext/datastore/plugin.py index 469563506da..3d739d69305 100644 --- a/ckanext/datastore/plugin.py +++ b/ckanext/datastore/plugin.py @@ -190,12 +190,12 @@ def before_update(self, context, old, new): # something that has changed (post-validation) context.setdefault( 'datastore_old_query_values', - {})[old['resource_id']] = old.get('query') + {})[old['id']] = old.get('query') def after_update(self, context, resource): if not context.get('for_edit', False): return - res_id = resource['resource_id'] + res_id = resource['id'] query = resource.get('query') if query != context['datastore_old_query_values'][res_id]: sync_query_frontend(res_id, query) @@ -332,8 +332,10 @@ def sync_query_frontend(resource_id, query): try: if query: p.toolkit.get_action('datastore_create')( - None, - {'resource_id': resource_id, 'materialized_view_sql': query}) + None, { + 'resource_id': resource_id, + 'materialized_view_sql': query, + 'force': True}) else: p.toolkit.get_action('datastore_delete')( None,