Add text for header icons
Add text for header icons

import logging import logging
   
import ckan.plugins as plugins import ckan.plugins as plugins
import ckan.lib as lib import ckan.lib as lib
import ckan.lib.dictization.model_dictize as model_dictize import ckan.lib.dictization.model_dictize as model_dictize
import ckan.plugins.toolkit as tk import ckan.plugins.toolkit as tk
import ckan.model as model import ckan.model as model
from pylons import config from pylons import config
   
from sqlalchemy import orm from sqlalchemy import orm
import ckan.model import ckan.model
   
# get user created datasets and those they have edited # get user created datasets and those they have edited
def get_user_datasets(user_dict): def get_user_datasets(user_dict):
created_datasets_list = user_dict['datasets'] created_datasets_list = user_dict['datasets']
active_datasets_list = [x['data']['package'] for x in active_datasets_list = [x['data']['package'] for x in
lib.helpers.get_action('user_activity_list',{'id':user_dict['id']}) if x['data'].get('package')] lib.helpers.get_action('user_activity_list',{'id':user_dict['id']}) if x['data'].get('package')]
raw_list = created_datasets_list + active_datasets_list raw_list = created_datasets_list + active_datasets_list
filtered_dict = {} filtered_dict = {}
for dataset in raw_list: for dataset in raw_list:
if dataset['id'] not in filtered_dict.keys(): if dataset['id'] not in filtered_dict.keys():
filtered_dict[dataset['id']] = dataset filtered_dict[dataset['id']] = dataset
return filtered_dict.values() return filtered_dict.values()
   
def related_create(context, data_dict=None):  
return {'success': False, 'msg': 'No one is allowed to create related items'}  
   
class DataGovAuPlugin(plugins.SingletonPlugin, class DataGovAuPlugin(plugins.SingletonPlugin,
tk.DefaultDatasetForm): tk.DefaultDatasetForm):
'''An example IDatasetForm CKAN plugin. '''An example IDatasetForm CKAN plugin.
   
Uses a tag vocabulary to add a custom metadata field to datasets. Uses a tag vocabulary to add a custom metadata field to datasets.
   
''' '''
plugins.implements(plugins.IConfigurer, inherit=False) plugins.implements(plugins.IConfigurer, inherit=False)
plugins.implements(plugins.ITemplateHelpers, inherit=False) plugins.implements(plugins.ITemplateHelpers, inherit=False)
plugins.implements(plugins.IAuthFunctions)  
   
def get_auth_functions(self):  
return {'rekated_create': related_create}  
   
def update_config(self, config): def update_config(self, config):
# Add this plugin's templates dir to CKAN's extra_template_paths, so # Add this plugin's templates dir to CKAN's extra_template_paths, so
# that CKAN will use this plugin's custom templates. # that CKAN will use this plugin's custom templates.
# here = os.path.dirname(__file__) # here = os.path.dirname(__file__)
# rootdir = os.path.dirname(os.path.dirname(here)) # rootdir = os.path.dirname(os.path.dirname(here))
   
tk.add_template_directory(config, 'templates') tk.add_template_directory(config, 'templates')
tk.add_public_directory(config, 'theme/public') tk.add_public_directory(config, 'theme/public')
tk.add_resource('theme/public', 'ckanext-datagovau') tk.add_resource('theme/public', 'ckanext-datagovau')
# config['licenses_group_url'] = 'http://%(ckan.site_url)/licenses.json' # config['licenses_group_url'] = 'http://%(ckan.site_url)/licenses.json'
   
def get_helpers(self): def get_helpers(self):
return {'get_user_datasets': get_user_datasets} return {'get_user_datasets': get_user_datasets}
   
   
{% ckan_extends %} {% ckan_extends %}
   
  {% block header_account_logged %}
  {% if c.userobj.sysadmin %}
  <li>
  <a href="{{ h.url_for(controller='admin', action='index') }}" title="{{ _('Sysadmin settings') }}">
  <i class="icon-legal"> Sysadmin settings</i>
  </a>
  </li>
  {% endif %}
  <li>
  <a href="{{ h.url_for(controller='user', action='read', id=c.userobj.name) }}" class="image" title="{{ _('View profile') }}">
  {{ h.gravatar((c.userobj.email_hash if c and c.userobj else ''), size=22) }}
  <span class="username">{{ c.userobj.display_name }}</span>
  </a>
  </li>
  {% set new_activities = h.new_activities() %}
  <li class="notifications {% if new_activities > 0 %}notifications-important{% endif %}">
  {% set notifications_tooltip = ngettext('Dashboard (%(num)d new item)', 'Dashboard (%(num)d new items)', new_activities) %}
  <a href="{{ h.url_for(controller='user', action='dashboard') }}" title="{{ notifications_tooltip }}">
  <i class="icon-dashboard"> notifications_tooltip</i>
  <span>{{ new_activities }}</span>
  </a>
  </li>
  {% block header_account_settings_link %}
  <li>
  <a href="{{ h.url_for(controller='user', action='edit', id=c.userobj.name) }}" title="{{ _('Edit settings') }}">
  <i class="icon-cog"> Edit settings</i>
  </a>
  </li>
  {% endblock %}
  {% block header_account_log_out_link %}
  <li>
  <a href="{{ h.url_for('/user/_logout') }}" title="{{ _('Log out') }}">
  <i class="icon-signout"> Log out</i>
  </a>
  </li>
  {% endblock %}
   
{% block header_site_navigation %} {% block header_site_navigation %}
<nav class="section navigation"> <nav class="section navigation">
<ul class="nav nav-pills"> <ul class="nav nav-pills">
{% block header_site_navigation_tabs %} {% block header_site_navigation_tabs %}
{{ h.build_nav_main( {{ h.build_nav_main(
('search', _('Datasets')), ('search', _('Datasets')),
('organizations_index', _('Organizations')), ('organizations_index', _('Organizations')),
('about', _('About')) ('about', _('About'))
) }} ) }}
<li><a href="//data.gov.au/stats">Site Statistics</a></li> <li><a href="//data.gov.au/stats">Site Statistics</a></li>
<li><a href="https://datagovau.ideascale.com/">Feedback/Request Data</a></li> <li><a href="https://datagovau.ideascale.com/">Feedback/Request Data</a></li>
{% endblock %} {% endblock %}
</ul> </ul>
</nav> </nav>
{% endblock %} {% endblock %}
   
{% set intro = g.site_intro_text %}  
 
<div class="module-content box">  
<header>  
{% if intro %}  
{{ h.render_markdown(intro) }}  
{% else %}  
<h1 class="page-heading">{{ _("Welcome to CKAN") }}</h1>  
<p>  
{% trans %}This is a nice introductory paragraph about CKAN or the site  
in general. We don't have any copy to go here yet but soon we will  
{% endtrans %}  
</p>  
{% endif %}  
</header>  
</div>