CKAN Extenstion for synchronization of catalog records from internal catalog to public (external) catalog
Features:
(Optional): activate ckan virtualenv . /usr/lib/ckan/default/bin/activate
From the extension folder start the installation: python setup.py install
Add extension to ckan config: /etc/ckan/default/production.ini
[app:main]
# for starting sync job through command line only
odn.ic2pc.src.ckan.url = http://localhost
odn.ic2pc.dst.ckan.url = http://destination_ckan.com
odn.ic2pc.dst.ckan.api.key = c2ca3375-6d0e-44ec-927f-c380e4cf06df
# used by command line and plugin too, blank space as delimiter
odn.ic2pc.package.extras.whitelist = creator dataset license modified publisher void#sparqlEndpoint
odn.ic2pc.resource.extras.whitelist = license
ckan.plugins = odn_ic2pc_sync
After installing plugin and restarting apache server start db initialization:
paster --plugin=ckanext-odn-ic2pc-sync odn_ic2pc_sync_cmd initdb --config=/etc/ckan/default/production.ini
There should be output like this:
Starting db initialization
creating external_catalog table / Or if it was already intialized:
external_catalog table created successfully / external_catalog table already exists
End of db initialization
There were changes in DB model with migrating to v0.3.0, to function normally, its required to start this command
paster --plugin=ckanext-odn-ic2pc-sync odn_ic2pc_sync_cmd migrate_to_v0.3.0 --config=/etc/ckan/default/production.ini
If its clean install, starting the migration command isn't necessary.
paster --plugin=ckanext-odn-ic2pc-sync odn_ic2pc_sync_cmd migrate_to_v0.4.0 --config=/etc/ckan/default/production.ini
paster --plugin=ckanext-odn-ic2pc-sync odn_ic2pc_sync_cmd migrate_to_v0.6.0 --config=/etc/ckan/default/production.ini
Before removing extension start:
paster --plugin=ckanext-odn-ic2pc-sync odn_ic2pc_sync_cmd uninstall --config=/etc/ckan/default/production.ini
This will drop tables created in DB init script.
Now you can remove plugin string from: /etc/ckan/default/production.ini
Restart apache server: sudo service apache2 restart
And remove from python installed extension egg.
paster --plugin=ckanext-odn-ic2pc-sync odn_ic2pc_sync_cmd run --config=/etc/ckan/default/production.ini
example:
paster --plugin=ckanext-odn-ic2pc-sync odn_ic2pc_sync_cmd test --config=/etc/ckan/default/production.ini
should have output like this:
test command started
source ckan url: http://localhost
destination ckan url: http://destination_ckan.com
destination api key: c2ca3375-6d0e-44ec-927f-c380e4cf06df
package extras whitelist: creator dataset license modified publisher void#sparqlEndpoint
resource extras whitelist: license
Edit cron table to create a cron job, that will run dataset pusher command periodically
sudo crontab -e -u user_name
example:
# m h dom mon dow command
*/15 * * * * /usr/bin/paster --plugin=ckanext-odn-ic2pc-sync odn_ic2pc_sync_cmd run --config=/etc/ckan/default/production.ini
this example will check for pending jobs every fifteen minutes
CKAN supports internationalization through babel (pip install babel
). This tool extracts the messages from source code and html files
and creates .pot file. Next using commands (step 2 or 3) it creates or updates .po files. The actual translation are in these .po files.
To extract new .pot file from sources
python setup.py extract_messages
This need to be done if there is no .pot file or there were some changes to messages in source code files or html files.
To generate .po for new localization (this example uses 'sk' localization)
python setup.py init_catalog --locale sk
If only updating existing .po file (e.g. new messages were extracted through step 1)
python setup.py update_catalog --locale sk
Code of this extension is licensed under GNU Affero General Public License, Version 3.0 (see LICENSE.txt)