From: Alex Sadleir Date: Mon, 16 Sep 2013 09:23:09 +0000 Subject: Show edited and created datasets on user profile/dashboard X-Git-Url: https://maxious.lambdacomplex.org/git/?p=ckanext-datagovau.git&a=commitdiff&h=c84d10ac6b729de3e838eeb734995bd49de8d4b8 --- Show edited and created datasets on user profile/dashboard --- --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,22 +1,30 @@ + + + - + + + + - - + + - - - - + + + + - + + + - @@ -195,7 +188,6 @@ - @@ -347,6 +339,7 @@ + @@ -354,13 +347,34 @@ - + + - + + + + + + + + + + + - - @@ -501,23 +507,24 @@ - + - + - + + @@ -565,7 +572,7 @@ - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + --- a/ckanext/datagovau/plugin.py +++ b/ckanext/datagovau/plugin.py @@ -1,21 +1,29 @@ import logging import ckan.plugins as plugins +import ckan.lib as lib +import ckan.lib.dictization.model_dictize as model_dictize import ckan.plugins.toolkit as tk +import ckan.model as model +#parse the activity feed for last active non-system user +def get_last_active_user(id): + system_user = "de0ba262-83fe-45e2-adda-41bb9f0c86d8" + user_list = [x for x in lib.helpers.get_action('package_activity_list',{'id':id}) if x['user_id'] != system_user] + user = user_list[0]['user_id'] + if user is None: + return lib.helpers.get_action('user_show',{'id':system_user}) + else: + return lib.helpers.get_action('user_show',{'id':user}) -# get_action will be deprecated soon, this is the replacement -def get_user(user): - user_name = unicode(user) - if user_name: - user_obj = model.User.get(id) - context['user_obj'] = user_obj - if user_obj is None: - raise NotFound - else: - raise NotFound - - return model_dictize.user_dictize(user_obj,context) +# get user created datasets and those they have edited +def get_user_datasets(user_dict): + created_datasets_list = user_dict['datasets'] + active_datasets_id_list = [x['data']['package'] for x in + lib.helpers.get_action('user_activity_list',{'id':user_dict['id']}) if x['data'].get('package')] + active_datasets_list = active_datasets_id_list #if you need more detail, fetch each dataset here + print active_datasets_list + return created_datasets_list + active_datasets_list class ExampleIDatasetFormPlugin(plugins.SingletonPlugin, @@ -53,7 +61,7 @@ # config['licenses_group_url'] = 'http://%(ckan.site_url)/licenses.json' def get_helpers(self): - return {'getuser': get_user} + return {'get_last_active_user': get_last_active_user, 'get_user_datasets': get_user_datasets} def is_fallback(self): # Return True to register this plugin as the default handler for --- a/ckanext/datagovau/templates/package/read.html +++ b/ckanext/datagovau/templates/package/read.html @@ -1,44 +1,167 @@ {% ckan_extends %} {% block package_additional_info %} -{{ super() }} +
+

{{ _('Additional Info') }}

+ + + + + + + + -{# Add our custom field to the dataset read page. #} -{% if pkg.get('agency_program') %} -
-

Agency Program: {{ pkg.agency_program }}

+ + {# Add our custom field to the dataset read page. #} + {% if pkg.get('metadata_created') %} +
+ + + + {% endif %} + {% if pkg.get('metadata_updated') %} + + + + + {% endif %} + {% if pkg.get('agency_program') %} + + + + + {% endif %} + {% if pkg.get('Agency Program') %} + + + + + {% endif %} + {% if h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI') %} + + + + + {% endif %} + + {% if pkg.get('contact_point') %} + + + + + {% endif %} + {% if pkg.get('spatial_coverage') %} + + + + + + {% endif %} + {% if h.get_pkg_dict_extra(pkg,'Geospatial Coverage') %} + + + + + + {% endif %} + {% if pkg.get('granularity') %} + + + + + + {% endif %} + {% if h.get_pkg_dict_extra(pkg,'Granularity') %} + + + + + + {% endif %} + {% if pkg.get('jurisdiction') %} + + + + + + {% endif %} + {% if h.get_pkg_dict_extra(pkg,'AGLSTERMS.Jurisdiction') %} + + + + + + {% endif %} + {% if pkg.get('temporal_coverage') %} + + + + + + {% endif %} + {% if h.get_pkg_dict_extra(pkg,'Temporal Coverage') %} + + + + + + {% endif %} + {% if pkg.get('data_state') %} + + + + + + {% endif %} + {% if pkg.get('update_freq') %} + + + + + + {% endif %} + {% if h.get_pkg_dict_extra(pkg,'Update Frequency') %} + + + + + {% endif %} + +{% set email =h.get_last_active_user(c.pkg_dict['id']).get('email','') %} + + + + + + + + + + + + + + + + + + +
{{ _('Field') }}{{ _('Value') }}
Date Published{{ pkg.metadata_created.split("T")[0] }}
Date Updated{{ pkg.metadata_updated.split("T")[0] }}
Agency Program {{ pkg.agency_program }}
Agency Program {{ pkg.get('Agency Program') }}
{{ _('Source') }}{{ h.link_to(h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI'), + h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI'), rel='dct:source', target='_blank') }} +
Contact Point {{ h.mail_to(email_address=pkg.contact_point, + name=pkg.contact_point) }}
Geospatial Coverage {{ pkg.spatial_coverage }}
Geospatial Coverage {{ h.get_pkg_dict_extra(pkg,'Geospatial Coverage') }}
Data Granularity {{ pkg.granularity }}
Data Granularity {{ h.get_pkg_dict_extra(pkg,'Granularity') }}
Government Jurisdiction {{ pkg.jurisdiction }}
Government Jurisdiction {{ h.get_pkg_dict_extra(pkg,'AGLSTERMS.Jurisdiction') }}
Temporal Coverage {{ pkg.temporal_coverage }}
Temporal Coverage {{ h.get_pkg_dict_extra(pkg,'Temporal Coverage') }}
Data State {{ pkg.data_state }}
Update Frequency {{ pkg.update_freq }}
Update Frequency {{ h.get_pkg_dict_extra(pkg,'Update Frequency') }}
{{ _('Maintainer') }}{{ + h.mail_to(email_address=(email or ' '), name=h.get_last_active_user(c.pkg_dict['id']).get("display_name",'')) }} +
Publisher/Agency{{ c.pkg_dict['organization']['title']}} +
TypeDataset
LanguageEnglish
-{% endif %} -{% if pkg.get('contact_point') %} -
-

Contact Point: {{ pkg.contact_point }}

-
-{% endif %} -{% if pkg.get('spatial_coverage') %} -
-

Geospatial Coverage: {{ pkg.spatial_coverage }}

-{% endif %} -{% if pkg.get('granularity') %} -
-

Data Granularity: {{ pkg.granularity }}

-{% endif %} -{% if pkg.get('jurisdiction') %} -
-

Government Jurisdiction: {{ pkg.jurisdiction }}

-{% endif %} -{% if pkg.get('temporal_coverage') %} -
-

Temporal Coverage: {{ pkg.temporal_coverage }}

-{% endif %} -{% if pkg.get('data_state') %} -
-

Data State: {{ pkg.data_state }}

-{% endif %} -{% if pkg.get('update_freq') %} -
-

Update Frequency: {{ pkg.update_freq }}

-{% endif %} {% endblock %} --- a/ckanext/datagovau/templates/package/read.rdf +++ b/ckanext/datagovau/templates/package/read.rdf @@ -16,25 +16,34 @@ ${c.pkg_dict['name']} ${c.pkg_dict['title']} - + Dataset ${c.pkg_dict['notes']} ${c.pkg_dict['metadata_created']} ${c.pkg_dict['metadata_modified']} en + + + ${c.pkg_dict['license_url']} + + + + ${c.pkg_dict['license_id']} + + + ${ tag_dict["name"] } - ${ tag_dict["title"] } + ${ group_dict["title"] } - ${h.get_action("user_show",{"id":c.author})["display_name"]} - ${h.get_action("user_show",{"id":c.author})["email"]} - - + ${c.pkg_dict['name']} @@ -45,10 +54,10 @@ ${rsc_dict.get('description')} - ${rsc_dict.get('revision_timestamp')} + ${rsc_dict.get('created')} ${rsc_dict.get('revision_timestamp')} - ${rsc_dict.get('size')} - ${rsc_dict.get('mimetype')} + ${rsc_dict.get('size')} + ${rsc_dict.get('mimetype')} ${rsc_dict.get('size')} bytes @@ -60,25 +69,81 @@ - + ${ c.pkg_dict['organization']['title'] } - + - ${ c.pkg_dict['author'] } - + ${ c.pkg_dict['organization']['title'] } - + - ${ c.pkg_dict['maintainer'] } - + ${h.get_last_active_user(c.pkg_dict['id'])["display_name"]} + - + + ${h.get_pkg_dict_extra(c.pkg_dict,'DCTERMS.Source.URI') } + + + ${c.pkg_dict.contact_point } + ${ c.pkg_dict.spatial_coverage } + ${ h.get_pkg_dict_extra(c.pkg_dict,'Geospatial Coverage') } + ${ c.pkg_dict.jurisdiction } + ${ h.get_pkg_dict_extra(c.pkg_dict,'AGLSTERMS.Jurisdiction') } + ${ c.pkg_dict.get('temporal_coverage') } + ${ h.get_pkg_dict_extra(c.pkg_dict,'Temporal Coverage') } + + + Data State + ${ c.pkg_dict.get('data_state') } + + + + + + Update Frequency + ${ c.pkg_dict.get('update_freq') } + + + + + Update Frequency + ${ h.get_pkg_dict_extra(c.pkg_dict,'Update Frequency') } + + + + + + Agency Program + ${ h.get_pkg_dict_extra(c.pkg_dict,'Agency Program') } + + + + + Agency Program + ${ c.pkg_dict.get('agency_program') } + + + + + + Data Granularity + ${ h.get_pkg_dict_extra(c.pkg_dict,'Granularity') } + + + + + Data Granularity + ${ c.pkg_dict.get('granularity') } + + + --- a/ckanext/datagovau/templates/package/read_base.html +++ b/ckanext/datagovau/templates/package/read_base.html @@ -1,15 +1,47 @@ {% ckan_extends %} - -{% block subtitle %}{{ pkg.title or pkg.name }}{% endblock %} {% block links -%} {{ super() }} - + + + {% endblock -%} {% block head_extras -%} {{ super() }} - + + + + + +{% if h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI') %}{% endif %} + + + + + + + + + + {% endblock -%} +{% block package_info %} +
+
+

{{ pkg.title or pkg.name }}

+
+
+
{{ _('Followers') }}
+
{{ h.SI_number_span(h.get_action('dataset_follower_count', {'id': pkg.id})) }}
+
+
+ +
+
+{% endblock %} + --- /dev/null +++ b/ckanext/datagovau/templates/package/resource_read.html @@ -1,1 +1,36 @@ +{% ckan_extends %} +{% block links -%} +{{ super() }} + + + +{% endblock -%} + +{% block head_extras -%} +{{ super() }} + + + + + +{% if h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI') %}{% endif %} + + + + + + + + + + + + + + + +{% endblock -%} + + + --- a/ckanext/datagovau/templates/package/snippets/package_basic_fields.html +++ b/ckanext/datagovau/templates/package/snippets/package_basic_fields.html @@ -28,9 +28,8 @@ placeholder=_('The timespan the dataset relates to: Current, 2008, 2008-2012, Jan 2012'), value=data.temporal_coverage, error=errors.temporal_coverage, classes=['control-medium']) }} -{{ form.input('data_state', label=_('Data State'), id='field-data_state', -placeholder=_('Active or Inactive'), -value=data.data_state, error=errors.data_state, classes=['control-medium']) }} +{{ form.select('data_state', label=_('Data State'), options= [{'value': 'active', 'text': 'Active'}, {'value': 'inactive', 'text': 'Inactive'}], +selected='Active', error=errors.data_state) }} {{ form.input('update_freq', label=_('Update Frequency'), id='field-update_freq', placeholder=_('How often the dataset is updated. Eg: Daily, Weekly, Never'), --- a/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html +++ b/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html @@ -16,3 +16,27 @@ {% endblock %} +{% block package_metadata_author %} +{% endblock %} + +{% block package_metadata_fields_maintainer %} +{% endblock %} + +{% block dataset_fields %} +{% if data.groups %} +
+ +
+ {% for group in data.groups %} + + {% endfor %} +
+
+{% endif %} +{% set group_name = 'groups__%s__id' % data.groups|length %} +{% set group_attrs = {'data-module': 'autocomplete', 'data-module-source': '/api/2/util/group/autocomplete?q=?', 'data-module-key': 'id', 'data-module-label': 'title'} %} +{{ form.input(group_name, label=_('Add Group/Theme'), id="field-group", value=data[group_name], classes=['control-medium'], attrs=group_attrs) }} +{% endblock %} --- /dev/null +++ b/ckanext/datagovau/templates/user/dashboard_datasets.html @@ -1,1 +1,16 @@ +{% ckan_extends %} +{% block primary_content_inner %} +

{{ _('My Datasets') }}

+ {% if h.get_user_datasets(c.user_dict) %} + {% snippet 'snippets/package_list.html', packages=h.get_user_datasets(c.user_dict) %} + {% else %} +

+ You haven\'t created/edited any datasets. + {% if h.check_access('package_create') %} + {% link_for _('Create one now?'), controller='package', action='new' %} + {% endif %} +

+ {% endif %} +{% endblock %} + --- /dev/null +++ b/ckanext/datagovau/templates/user/read.html @@ -1,1 +1,29 @@ +{% ckan_extends %} + +{% block primary_content_inner %} +

+ {% block page_heading %}{{ _('Datasets') }}{% endblock %} +

+ {% block package_list %} + {% if h.get_user_datasets(c.user_dict) %} + {% snippet 'snippets/package_list.html', packages=h.get_user_datasets(c.user_dict) %} + {% else %} + + {% if c.is_myself %} +

+ {{ _('You haven\'t created any datasets.') }} + {% if h.check_access('package_create') %} + {% link_for _('Create one now?'), controller='package', action='new' %} + {% endif %} +

+ {% else %} +

+ {{ _('User hasn\'t created any datasets.') }} +

+ {% endif %} + {% endif %} + {% endblock %} +{% endblock %} + +