beginnings of autoupdate
--- /dev/null
+++ b/admin/autoupdate.py
@@ -1,1 +1,47 @@
+import requests
+import ckanapi
+# copy (select id,url,format,extras from resource where extras like '%"autoupdate": "active"%') TO STDOUT WITH CSV;
+# f759e4b6-723c-4863-8a26-1529d689cad8,http://data.gov.au/geoserver/geelong-roofprints-kml/wms?request=GetCapabilities,wms,"{""autoupdate"": ""active""}"
+import fileinput
+import csv
+def updateresource(id):
+ url = 'http://data.disclosurelo.gs'
+ api_key = ''
+ db_credentials = ''
+ print id
+ ckan = ckanapi.RemoteCKAN('http://data.disclosurelo.gs')
+ #ckan = ckanapi.RemoteCKAN('http://demo.ckan.org')
+ resource = ckan.action.resource_show(id=id)
+ print resource
+ url = resource['url']
+ #last_modified= 'Mon, 24 Feb 2014 01:48:29 GMT'
+ #etag='"1393206509.38-638"'
+ headers={}
+ if 'etag' in resource:
+ headers['If-None-Match'] = resource['etag']
+ if 'file_last_modified' in resource:
+ headers["If-Modified-Since"] = resource['file_last_modified']
+ r = requests.head(url, headers=headers)
+ if r.status_code == 304:
+ print 'not modified'
+ return
+ else:
+ print r.status_code
+ print r.headers
+ if 'last-modified' in r.headers:
+ resource['file_last_modified'] = r.headers['last-modified']
+ if 'etag' in r.headers:
+ resource['etag'] = r.headers['etag']
+ #save updated resource
+ if 'format' == 'shp':
+ print "geoingest!"
+ else:
+ ckan.action.datapusher_submit(resource_id=id)
+# result = ckan.action.resource_update(id,resource)
+
+
+for line in fileinput.input():
+ row = csv.reader(line)
+ updateresource(line.replace("\n",""))
+
--- /dev/null
+++ b/ckanext/datagovau/templates/package/snippets/resource_form.html
@@ -1,1 +1,43 @@
+{% ckan_extends %}
+ {% block basic_fields_url %}
+ {% set is_upload = (data.url_type == 'upload') %}
+ {% set field_url='url' %}
+ {% set field_upload='upload' %}
+ {% set field_clear='clear_upload' %}
+ {% set is_upload_enabled=h.uploads_enabled() %}
+ {% set is_url=data.url and not is_upload %}
+ {% set upload_label=_('File') %}
+ {% set url_label=_('URL') %}
+
+ {% set placeholder = placeholder if placeholder else _('http://example.com/my-image.jpg') %}
+ {% set url_label = url_label or _('Image URL') %}
+ {% set upload_label = upload_label or _('Image') %}
+
+ {% if is_upload_enabled %}
+ <div class="image-upload" data-module="image-upload" data-module-is_url="{{ 'true' if is_url else 'false' }}" data-module-is_upload="{{ 'true' if is_upload else 'false' }}"
+ data-module-field_url="{{ field_url }}" data-module-field_upload="{{ field_upload }}" data-module-field_clear="{{ field_clear }}" data-module-upload_label="{{ upload_label }}">
+ {% endif %}
+
+ {% call form.input(field_url, label=url_label, id='field-image-url', placeholder=placeholder, value=data.get(field_url), error=errors.get(field_url), classes=['control-full']) %}
+<span id="autoupdate_form">
+ {% call form.select('autoupdate', label=_('Generate API from this Link'), options= [{'value': 'active', 'text': 'Active'}, {'value': 'inactive', 'text': 'Inactive'}], selected='Active', error=errors.autoupdate) %}
+<br/>
+Where a file is compatible with either CKAN or GeoServer we will attempt to make a functional end-point for this resource. The link provided above will also be checked for a new version based on the update frequency as set at the dataset level.
+</span>
+{% endcall %}
+{% endcall %}
+
+ {% if is_upload_enabled %}
+ {{ form.input(field_upload, label=upload_label, id='field-image-upload', type='file', placeholder='', value='', error='', classes=['control-full']) }}
+ {% if is_upload %}
+ {{form.checkbox(field_clear, label=_('Clear Upload'), id='field-clear-upload', value='true', error='', classes=['control-full']) }}
+ {% endif %}
+ {% endif %}
+
+ {% if is_upload_enabled %}</div>{% endif %}
+
+
+ {% endblock %}
+
+