[ckan-dev] Harvester - Problem
Michael Reichart
michael.reichart at gmail.com
Thu Jan 17 12:25:38 UTC 2013
Hi,
seems that my first email didn't come through the mailing-list:
Hi,
datasets created and updated by the webinterface do not loose their groups.
I haven't tested the direct api-calls yet.
I can't share our full extension, but i've attached the full code of the
IDatasetForm
We're using a custom CKAN-Harvester (which only does some mapping to our
custom fields) based on ckanext-harvest from beginning of July 2012 could
be Version 1.6.12??
>From my understanding, it shouldn't be necessary to call our custom schema
to import from another CKAN as the data-objects are already in the right
form.
Thanks!
Michael
class DgvatForm(SingletonPlugin):
implements(IRoutes)
implements(IConfigurer)
implements(IGenshiStreamFilter)
implements(IDatasetForm)
log.fatal("Enter: %s" % __name__)
def package_form(self):
return 'package/datagvat_organization_form.html'
def before_map(self, map):
map.connect('/error/{action}',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatErrorController')
map.connect('/error/{action}/{id}',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatErrorController')
map.connect('/dataset/new',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatPackageController',
action='new')
map.connect('/dataset/edit/{id}',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatPackageController',
action='edit')
map.connect('/dataset/{id}.{format}',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatPackageController',
action='read')
map.connect('/dataset/{id}',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatPackageController',
action='read')
map.connect('/dataset/{id}/resource/{resource_id}',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatPackageController',
action='resource_read')
map.connect('/dataset/{id}/resource/{resource_id}/embed',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatPackageController',
action='resource_embedded_dataviewer')
map.connect('/dataset/editresources/{id}',
controller='ckanext.dgvat_por.controllers.data_gv_at:DgvatPackageController',
action='editresources')
map.connect('/user/edit/{id:.*}',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='edit')
#m.connect('/user/reset/{id:.*}', action='perform_reset')
map.connect('/user/register',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='register')
map.connect('/user/login',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='login')
map.connect('/user/_logout', '/user/logout',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='logout')
map.connect('/user/logged_in',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='logged_in')
map.connect('/user/logged_out',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='logged_out')
map.connect('/user/logged_out_redirect',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='logged_out_page')
#map.connect('/user/reset', action='request_reset')
#m.connect('/user/me', action='me')
map.connect('/user/set_lang/{lang}',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='set_lang')
#m.connect('/user/{id:.*}', action='read')
map.connect('/user',
controller='ckanext.dgvat_por.controllers.dgvat_user:DgvatUserController',
action='index')
map.connect('home', '/',
controller='ckanext.dgvat_por.controllers.dgvat_cockpit:DgvatCockpitController',
action='search')
map.connect('about', '/about',
controller='ckanext.dgvat_por.controllers.dgvat_cockpit:DgvatCockpitController',
action='about')
map.connect('terms', '/terms',
controller='ckanext.dgvat_por.controllers.dgvat_cockpit:DgvatCockpitController',
action='terms')
map.connect('help', '/help',
controller='ckanext.dgvat_por.controllers.dgvat_cockpit:DgvatCockpitController',
action='help')
map.connect('register_api', '/register_api',
controller='ckanext.dgvat_por.controllers.dgvat_cockpit:DgvatCockpitController',
action='register')
#log.fatal("==================================> %s" % map)
return map
def after_map(self, map):
#log.fatal("==================================> %s" % map)
return map
def update_config(self, config):
log.debug("update_config")
config['package_form'] = 'data_gv_at'
configure_template_directory(config, 'templates')
configure_public_directory(config, 'public')
def filter(self, stream):
from pylons import request, tmpl_context as c
routes = request.environ.get('pylons.routes_dict')
log.debug(routes)
if routes and \
routes.get('controller') == 'package' and \
routes.get('action') == 'read' and c.pkg.id:
# Add dataset id to the UI
stream = stream_filters.package_id_filter(stream, c.pkg)
return stream
def setup_template_variables(self, context, data_dict):
log.debug("setup_template_variables")
def package_types(self):
return ['dataset']
def is_fallback(self):
return True
def form_to_db_schema(self):
log.fatal("Enter form to db!!!")
def add_to_extras(self, key, data, errors, context):
# get current number of extras
extras = data.get(('extras',), [])
if not extras:
data[('extras',)] = extras
#extras.append({'key': key[-1], 'value': data[key]})
#log.fatal("add to extras: %s, %s" % (key, data[key]))
#log.fatal("extra_number: %s" % extra_number)
#data[('extras', extra_number, 'key')] = key[0]
cats =""
allCat=[]
for cur in data[key]:
if cur != '[' and cur!=']':
cats += cur
for cat_desc, id in c.categorization:
if id in cats:
allCat.append(id)
log.fatal("added categorizations:id %s" % allCat)
log.fatal("cats, key: %s,%s" % (cats, data[key]))
log.fatal("is list: %s" % isinstance(data[key], list))
#data[('extras', extra_number, 'value')] = allCat
extras.append({'key': key[-1], 'value': allCat})
def read_template(self):
return 'package/read.html'
def check_data_dict(self, schema=None):
return
def new_template(self):
return 'package/new.html'
def comments_template(self):
return 'package/comments.html'
def search_template(self):
return 'package/search.html'
def read_template(self):
return 'package/read.html'
def history_template(self):
return 'package/history.html'
def package_form(self):
return 'package/datagvat_organization_form.html'
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20130117/78b617be/attachment-0001.html>
More information about the ckan-dev
mailing list