add varnish config to ignore locales
add varnish config to ignore locales

<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
<component name="masterDetails"> <component name="RegexUtilComponent" text="1900-01-01 2007/08/13 1900.01.01 1900 01 01 1900-01.01 1900 13 01 1900 02 31" flags="0" regex="(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])" mode="0" />
<states>  
<state key="ProjectJDKs.UI">  
<settings>  
<splitter-proportions>  
<option name="proportions">  
<list>  
<option value="0.2" />  
</list>  
</option>  
</splitter-proportions>  
</settings>  
</state>  
</states>  
</component>  
</project> </project>
   
   
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="BookmarkManager"> <component name="BookmarkManager">
<bookmark url="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf" line="71" /> <bookmark url="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf" line="71" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="89ace156-8d75-43de-ba53-6e829c197435" name="Default" comment=""> <list default="true" id="89ace156-8d75-43de-ba53-6e829c197435" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html" /> <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/resource_item.html" />
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_basic_fields.html" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_basic_fields.html" />
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html" />
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.html" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.html" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html" />
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html" afterPath="$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
</list> </list>
<ignored path="ckanext-datagovau.iws" /> <ignored path="ckanext-datagovau.iws" />
<ignored path=".idea/workspace.xml" /> <ignored path=".idea/workspace.xml" />
<file path="/Dummy.txt" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378773145747" ignored="false" /> <file path="/Dummy.txt" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379987697128" ignored="false" />
<file path="/plugin.py" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378731005672" ignored="false" /> <file path="/plugin.py" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379980346924" ignored="false" />
<file path="/setup.py" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378168657134" ignored="false" /> <file path="/setup.py" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379980236185" ignored="false" />
<file path="/package_basic_fields.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378727992485" ignored="false" /> <file path="/package_basic_fields.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379984845682" ignored="false" />
<file path="/package_metadata_fields.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378729194397" ignored="false" /> <file path="/package_metadata_fields.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379984915516" ignored="false" />
<file path="/read_base.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378774943838" ignored="false" /> <file path="/read_base.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379985182291" ignored="false" />
<file path="/read.rdf" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378775057466" ignored="false" /> <file path="/read.rdf" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379985068490" ignored="false" />
<file path="/README.rst" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378703724236" ignored="false" /> <file path="/README.rst" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378703724236" ignored="false" />
<file path="/a.dummy" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378689054922" ignored="false" /> <file path="/a.dummy" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379987251443" ignored="false" />
<file path="/read.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378721657045" ignored="false" /> <file path="/read.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379984781447" ignored="false" />
<file path="/create.py" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378705719051" ignored="false" /> <file path="/create.py" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378705719051" ignored="false" />
<file path="/additional_info.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378717234941" ignored="false" /> <file path="/additional_info.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378717234941" ignored="false" />
<file path="/resource_read.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1378775248415" ignored="false" /> <file path="/resource_read.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379985226010" ignored="false" />
  <file path="/resources_list.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379986542457" ignored="false" />
  <file path="/resource_item.html" changelist="89ace156-8d75-43de-ba53-6e829c197435" time="1379987596016" ignored="false" />
<option name="TRACKING_ENABLED" value="true" /> <option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" /> <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
<component name="CreatePatchCommitExecutor"> <component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" /> <option name="PATCH_PATH" value="" />
</component> </component>
<component name="DaemonCodeAnalyzer"> <component name="DaemonCodeAnalyzer">
<disable_hints /> <disable_hints />
</component> </component>
<component name="DebuggerManager"> <component name="DebuggerManager">
<ui_properties default_suspend_policy="SuspendAll" default_condition_enabled="true" />  
<breakpoint_any default_suspend_policy="SuspendAll" default_condition_enabled="true"> <breakpoint_any default_suspend_policy="SuspendAll" default_condition_enabled="true">
<breakpoint> <breakpoint>
<option name="NOTIFY_CAUGHT" value="true" /> <option name="NOTIFY_CAUGHT" value="true" />
<option name="NOTIFY_UNCAUGHT" value="true" /> <option name="NOTIFY_UNCAUGHT" value="true" />
<option name="ENABLED" value="false" /> <option name="ENABLED" value="false" />
<option name="LOG_ENABLED" value="false" /> <option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" /> <option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="REMOVE_AFTER_HIT" value="false" /> <option name="REMOVE_AFTER_HIT" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" /> <option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="SUSPEND" value="true" /> <option name="SUSPEND" value="true" />
<option name="COUNT_FILTER_ENABLED" value="false" /> <option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" /> <option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="true" /> <option name="CONDITION_ENABLED" value="true" />
<option name="CLASS_FILTERS_ENABLED" value="false" /> <option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" /> <option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" /> <option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" /> <option name="LOG_MESSAGE" value="" />
</breakpoint> </breakpoint>
<breakpoint> <breakpoint>
<option name="NOTIFY_CAUGHT" value="true" /> <option name="NOTIFY_CAUGHT" value="true" />
<option name="NOTIFY_UNCAUGHT" value="true" /> <option name="NOTIFY_UNCAUGHT" value="true" />
<option name="ENABLED" value="false" /> <option name="ENABLED" value="false" />
<option name="LOG_ENABLED" value="false" /> <option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" /> <option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="REMOVE_AFTER_HIT" value="false" /> <option name="REMOVE_AFTER_HIT" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" /> <option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="SUSPEND" value="true" /> <option name="SUSPEND" value="true" />
<option name="COUNT_FILTER_ENABLED" value="false" /> <option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" /> <option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="true" /> <option name="CONDITION_ENABLED" value="true" />
<option name="CLASS_FILTERS_ENABLED" value="false" /> <option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" /> <option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" /> <option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" /> <option name="LOG_MESSAGE" value="" />
</breakpoint> </breakpoint>
</breakpoint_any> </breakpoint_any>
  <ui_properties default_suspend_policy="SuspendAll" default_condition_enabled="true" />
<breakpoint_rules /> <breakpoint_rules />
<ui_properties /> <ui_properties />
</component> </component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FavoritesManager"> <component name="FavoritesManager">
<favorites_list name="ckanext-datagovau" /> <favorites_list name="ckanext-datagovau" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf> <leaf>
<file leaf-file-name="package_metadata_fields.html" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="read_base.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html"> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="35" column="74" selection-start="1081" selection-end="1081" vertical-scroll-proportion="-20.875"> <state line="6" column="110" selection-start="190" selection-end="190" vertical-scroll-proportion="-3.9230769">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="read_base.html" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="resource_read.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html"> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="11" column="0" selection-start="247" selection-end="1668" vertical-scroll-proportion="-6.875"> <state line="10" column="0" selection-start="233" selection-end="246" vertical-scroll-proportion="-6.5384617">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="resource_read.html" pinned="false" current="true" current-in-tab="true"> <file leaf-file-name="read.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html"> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/user/read.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="14" column="89" selection-start="580" selection-end="580" vertical-scroll-proportion="0.30837005"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.0">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="read.rdf" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="read.rdf" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf"> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="47" column="50" selection-start="2578" selection-end="2596" vertical-scroll-proportion="0.0"> <state line="57" column="119" selection-start="2936" selection-end="2936" vertical-scroll-proportion="0.0">
  <folding />
  </state>
  </provider>
  </entry>
  </file>
  <file leaf-file-name="dashboard_datasets.html" pinned="false" current="false" current-in-tab="false">
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/user/dashboard_datasets.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="0" column="21" selection-start="0" selection-end="18" vertical-scroll-proportion="-0.0">
  <folding />
  </state>
  </provider>
  </entry>
  </file>
  <file leaf-file-name="plugin.py" pinned="false" current="false" current-in-tab="false">
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/plugin.py">
  <provider selected="true" editor-type-id="text-editor">
  <state line="14" column="154" selection-start="577" selection-end="577" vertical-scroll-proportion="0.0">
  <folding />
  </state>
  </provider>
  </entry>
  </file>
  <file leaf-file-name="resource_item.html" pinned="false" current="true" current-in-tab="true">
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/resource_item.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="22" column="129" selection-start="1133" selection-end="1133" vertical-scroll-proportion="0.5771605">
  <folding />
  </state>
  </provider>
  </entry>
  </file>
  <file leaf-file-name="package_basic_fields.html" pinned="false" current="false" current-in-tab="false">
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_basic_fields.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="51" column="125" selection-start="2745" selection-end="2745" vertical-scroll-proportion="-13.807693">
  <folding />
  </state>
  </provider>
  </entry>
  </file>
  <file leaf-file-name="read.html" pinned="false" current="false" current-in-tab="false">
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="12" column="96" selection-start="451" selection-end="451" vertical-scroll-proportion="-7.8461537">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
</leaf> </leaf>
</component> </component>
<component name="FindManager"> <component name="FindManager">
<FindUsagesManager> <FindUsagesManager>
<setting name="OPEN_NEW_TAB" value="false" /> <setting name="OPEN_NEW_TAB" value="false" />
</FindUsagesManager> </FindUsagesManager>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
  <option name="SYNC_SETTING" value="DONT" />
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component> </component>
<component name="GitLogSettings"> <component name="GitLogSettings">
<option name="myDateState"> <option name="myDateState">
<MyDateState /> <MyDateState />
</option> </option>
</component> </component>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="changedFiles"> <option name="changedFiles">
<list> <list>
<option value="$PROJECT_DIR$/ckanext/datagovau/theme/templates/layout.html" />  
<option value="$PROJECT_DIR$/ckanext/datagovau/forms.py" /> <option value="$PROJECT_DIR$/ckanext/datagovau/forms.py" />
<option value="$PROJECT_DIR$/setup.py" />  
<option value="$PROJECT_DIR$/README.rst" /> <option value="$PROJECT_DIR$/README.rst" />
<option value="$PROJECT_DIR$/ckanext/datagovau/theme/public/licenses.json" /> <option value="$PROJECT_DIR$/ckanext/datagovau/theme/public/licenses.json" />
<option value="$PROJECT_DIR$/../ckan/ckan/logic/action/create.py" /> <option value="$PROJECT_DIR$/../ckan/ckan/logic/action/create.py" />
<option value="$PROJECT_DIR$/../ckan/ckan/templates/package/snippets/additional_info.html" /> <option value="$PROJECT_DIR$/../ckan/ckan/templates/package/snippets/additional_info.html" />
<option value="$PROJECT_DIR$/../ckan/ckan/templates/package/read_base.html" /> <option value="$PROJECT_DIR$/../ckan/ckan/templates/package/read_base.html" />
<option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.html" /> <option value="$PROJECT_DIR$/setup.py" />
  <option value="$PROJECT_DIR$/ckanext/datagovau/plugin.py" />
<option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_basic_fields.html" /> <option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_basic_fields.html" />
<option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html" /> <option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html" />
<option value="$PROJECT_DIR$/ckanext/datagovau/plugin.py" />  
<option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html" />  
<option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf" /> <option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf" />
<option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html" /> <option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html" />
  <option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/resources_list.html" />
  <option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html" />
  <option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/read.html" />
  <option value="$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/resource_item.html" />
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="x" value="1280" /> <option name="x" value="-4" />
<option name="width" value="1920" /> <option name="y" value="-4" />
<option name="height" value="1080" /> <option name="width" value="1928" />
  <option name="height" value="1044" />
</component> </component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false"> <component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" /> <OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" /> <OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" /> <OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" /> <OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" /> <OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" /> <OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" /> <ConfirmationsSetting value="0" id="Remove" />
</component> </component>
<component name="ProjectReloadState"> <component name="ProjectReloadState">
<option name="STATE" value="0" /> <option name="STATE" value="0" />
</component> </component>
<component name="ProjectView"> <component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5"> <navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
<flattenPackages /> <flattenPackages />
<showMembers /> <showMembers />
<showModules /> <showModules />
<showLibraryContents /> <showLibraryContents />
<hideEmptyPackages /> <hideEmptyPackages />
<abbreviatePackageNames /> <abbreviatePackageNames />
<autoscrollToSource /> <autoscrollToSource />
<autoscrollFromSource /> <autoscrollFromSource />
<sortByType /> <sortByType />
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" /> <pane id="PackagesPane" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value=".idea" /> <option name="myItemId" value=".idea" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext_datagovau.egg-info" /> <option name="myItemId" value="ckanext" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext" /> <option name="myItemId" value="ckanext" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
  <PATH_ELEMENT>
  <option name="myItemId" value="datagovau" />
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  </PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext" /> <option name="myItemId" value="ckanext" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="datagovau" /> <option name="myItemId" value="datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
  <PATH_ELEMENT>
  <option name="myItemId" value="public" />
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  </PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext" /> <option name="myItemId" value="ckanext" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="datagovau" /> <option name="myItemId" value="datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="public" /> <option name="myItemId" value="templates" />
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  </PATH_ELEMENT>
  <PATH_ELEMENT>
  <option name="myItemId" value="user" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext" /> <option name="myItemId" value="ckanext" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="datagovau" /> <option name="myItemId" value="datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
  <option name="myItemId" value="templates" />
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  </PATH_ELEMENT>
  <PATH_ELEMENT>
<option name="myItemId" value="package" /> <option name="myItemId" value="package" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext-datagovau" /> <option name="myItemId" value="ckanext-datagovau" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="ckanext" /> <option name="myItemId" value="ckanext" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="datagovau" /> <option name="myItemId" value="datagovau" />
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  </PATH_ELEMENT>
  <PATH_ELEMENT>
  <option name="myItemId" value="templates" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="package" /> <option name="myItemId" value="package" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="snippets" /> <option name="myItemId" value="snippets" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="PackagesPane" /> <pane id="Scope" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
  <property name="project.structure.last.edited" value="Project" />
<property name="GoToFile.includeJavaFiles" value="false" /> <property name="GoToFile.includeJavaFiles" value="false" />
  <property name="project.structure.proportion" value="0.0" />
  <property name="options.splitter.main.proportions" value="0.3" />
  <property name="MemberChooser.sorted" value="false" />
  <property name="options.lastSelected" value="vcs.Git" />
  <property name="last_opened_file_path" value="$PROJECT_DIR$" />
  <property name="project.structure.side.proportion" value="0.0" />
  <property name="DefaultHtmlFileTemplate" value="Html5" />
  <property name="MemberChooser.copyJavadoc" value="false" />
<property name="GoToClass.toSaveIncludeLibraries" value="false" /> <property name="GoToClass.toSaveIncludeLibraries" value="false" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="MemberChooser.sorted" value="false" />  
<property name="last_opened_file_path" value="$PROJECT_DIR$/../ckan/ckan/templates/package/resource_read.html" />  
<property name="MemberChooser.showClasses" value="true" /> <property name="MemberChooser.showClasses" value="true" />
<property name="DefaultHtmlFileTemplate" value="Html5" />  
<property name="GoToClass.includeLibraries" value="false" /> <property name="GoToClass.includeLibraries" value="false" />
<property name="MemberChooser.copyJavadoc" value="false" /> <property name="options.searchVisible" value="true" />
  <property name="options.splitter.details.proportions" value="0.2" />
</component> </component>
<component name="PyConsoleOptionsProvider"> <component name="PyConsoleOptionsProvider">
<option name="myPythonConsoleState"> <option name="myPythonConsoleState">
<PyConsoleSettings /> <PyConsoleSettings />
</option> </option>
<option name="myDjangoConsoleState"> <option name="myDjangoConsoleState">
<PyConsoleSettings /> <PyConsoleSettings />
</option> </option>
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/ckanext/datagovau/templates/package" /> <recent name="$PROJECT_DIR$/ckanext/datagovau/templates/package" />
</key> </key>
</component> </component>
<component name="RunManager"> <component name="RunManager">
<configuration default="true" type="Remote" factoryName="Remote">  
<option name="USE_SOCKET_TRANSPORT" value="true" />  
<option name="SERVER_MODE" value="false" />  
<option name="SHMEM_ADDRESS" value="javadebug" />  
<option name="HOST" value="localhost" />  
<option name="PORT" value="5005" />  
<method />  
</configuration>  
<configuration default="true" type="PythonConfigurationType" factoryName="Python"> <configuration default="true" type="PythonConfigurationType" factoryName="Python">
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
<envs> <envs>
<env name="PYTHONUNBUFFERED" value="1" /> <env name="PYTHONUNBUFFERED" value="1" />
</envs> </envs>
<option name="SDK_HOME" value="" /> <option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" /> <option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" /> <option name="IS_MODULE_SDK" value="false" />
<module name="ckanext-datagovau" /> <module name="ckanext-datagovau" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="" /> <option name="SCRIPT_NAME" value="" />
<option name="PARAMETERS" value="" /> <option name="PARAMETERS" value="" />
  <method />
  </configuration>
  <configuration default="true" type="Remote" factoryName="Remote">
  <option name="USE_SOCKET_TRANSPORT" value="true" />
  <option name="SERVER_MODE" value="false" />
  <option name="SHMEM_ADDRESS" value="javadebug" />
  <option name="HOST" value="localhost" />
  <option name="PORT" value="5005" />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="tests" factoryName="Unittests"> <configuration default="true" type="tests" factoryName="Unittests">
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
<envs /> <envs />
<option name="SDK_HOME" value="" /> <option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" /> <option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" /> <option name="IS_MODULE_SDK" value="false" />
<module name="" /> <module name="" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="" /> <option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" /> <option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" /> <option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" /> <option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" /> <option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" /> <option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" /> <option name="USE_PATTERN" value="false" />
<option name="PUREUNITTEST" value="true" /> <option name="PUREUNITTEST" value="true" />
<option name="PARAMS" value="" /> <option name="PARAMS" value="" />
<option name="USE_PARAM" value="false" /> <option name="USE_PARAM" value="false" />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="Applet" factoryName="Applet"> <configuration default="true" type="Applet" factoryName="Applet">
<module name="" /> <module name="" />
<option name="MAIN_CLASS_NAME" /> <option name="MAIN_CLASS_NAME" />
<option name="HTML_FILE_NAME" /> <option name="HTML_FILE_NAME" />
<option name="HTML_USED" value="false" /> <option name="HTML_USED" value="false" />
<option name="WIDTH" value="400" /> <option name="WIDTH" value="400" />
<option name="HEIGHT" value="300" /> <option name="HEIGHT" value="300" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="VM_PARAMETERS" /> <option name="VM_PARAMETERS" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" /> <option name="ALTERNATIVE_JRE_PATH" />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="Application" factoryName="Application"> <configuration default="true" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" /> <option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" /> <option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" /> <option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" /> <option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" /> <option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" /> <option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" /> <option name="PASS_PARENT_ENVS" value="true" />
<module name="" /> <module name="" />
<envs /> <envs />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="tests" factoryName="Doctests"> <configuration default="true" type="tests" factoryName="Doctests">
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
<envs /> <envs />
<option name="SDK_HOME" value="" /> <option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" /> <option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" /> <option name="IS_MODULE_SDK" value="false" />
<module name="ckanext-datagovau" /> <module name="ckanext-datagovau" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="" /> <option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" /> <option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" /> <option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" /> <option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" /> <option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" /> <option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" /> <option name="USE_PATTERN" value="false" />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="JavascriptDebugSession" factoryName="Local" singleton="true"> <configuration default="true" type="JavascriptDebugSession" factoryName="Local" singleton="true">
<JSDebuggerConfigurationSettings> <JSDebuggerConfigurationSettings>
<option name="engineId" value="embedded" /> <option name="engineId" value="embedded" />
<option name="fileUrl" /> <option name="fileUrl" />
</JSDebuggerConfigurationSettings> </JSDebuggerConfigurationSettings>
<method /> <method />
</configuration> </configuration>
<list size="0" /> <list size="0" />
<configuration name="&lt;template&gt;" type="JUnit" default="true" selected="false"> <configuration name="&lt;template&gt;" type="JUnit" default="true" selected="false">
<option name="MAIN_CLASS_NAME" /> <option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" value="-ea" /> <option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" /> <option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
</configuration> </configuration>
<configuration name="&lt;template&gt;" type="TestNG" default="true" selected="false"> <configuration name="&lt;template&gt;" type="TestNG" default="true" selected="false">
<option name="MAIN_CLASS_NAME" /> <option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" value="-ea" /> <option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" /> <option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
</configuration> </configuration>
<configuration name="&lt;template&gt;" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false"> <configuration name="&lt;template&gt;" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false">
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m" /> <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m" />
</configuration> </configuration>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false"> <configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host> <Host>localhost</Host>
<Port>5050</Port> <Port>5050</Port>
</configuration> </configuration>
</component> </component>
<component name="ShelveChangesManager" show_recycled="false" /> <component name="ShelveChangesManager" show_recycled="false" />
  <component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false" SSL_PROTOCOLS="all">
  <option name="USER" value="" />
  <option name="PASSWORD" value="" />
  <option name="mySSHConnectionTimeout" value="30000" />
  <option name="mySSHReadTimeout" value="30000" />
  <option name="LAST_MERGED_REVISION" />
  <option name="MERGE_DRY_RUN" value="false" />
  <option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
  <option name="UPDATE_LOCK_ON_DEMAND" value="false" />
  <option name="IGNORE_SPACES_IN_MERGE" value="false" />
  <option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
  <option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
  <option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
  <option name="FORCE_UPDATE" value="false" />
  <option name="IGNORE_EXTERNALS" value="false" />
  <myIsUseDefaultProxy>false</myIsUseDefaultProxy>
  </component>
<component name="TodoView" selected-index="0"> <component name="TodoView" selected-index="0">
<todo-panel id="selected-file"> <todo-panel id="selected-file">
<are-packages-shown value="false" /> <are-packages-shown value="false" />
<are-modules-shown value="false" /> <are-modules-shown value="false" />
<flatten-packages value="false" /> <flatten-packages value="false" />
<is-autoscroll-to-source value="true" /> <is-autoscroll-to-source value="true" />
</todo-panel> </todo-panel>
<todo-panel id="all"> <todo-panel id="all">
<are-packages-shown value="true" /> <are-packages-shown value="true" />
<are-modules-shown value="false" /> <are-modules-shown value="false" />
<flatten-packages value="false" /> <flatten-packages value="false" />
<is-autoscroll-to-source value="true" /> <is-autoscroll-to-source value="true" />
</todo-panel> </todo-panel>
<todo-panel id="default-changelist"> <todo-panel id="default-changelist">
<are-packages-shown value="false" /> <are-packages-shown value="false" />
<are-modules-shown value="false" /> <are-modules-shown value="false" />
<flatten-packages value="false" /> <flatten-packages value="false" />
<is-autoscroll-to-source value="false" /> <is-autoscroll-to-source value="false" />
</todo-panel> </todo-panel>
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="1280" y="0" width="1920" height="1080" extended-state="6" /> <frame x="-4" y="-4" width="1928" height="1044" extended-state="6" />
<editor active="true" /> <editor active="false" />
<layout> <layout>
  <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3290735" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3290735" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3290735" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3290735" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
  <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.22048998" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16183448" sideWeight="0.7795527" order="0" side_tool="false" content_ui="combo" /> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16183448" sideWeight="0.77951" order="0" side_tool="false" content_ui="combo" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.22044729" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.22048998" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32962137" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.22091782" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />  
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />  
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout> </layout>
</component> </component>
<component name="VcsContentAnnotationSettings"> <component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" /> <option name="myLimit" value="2678400000" />
</component> </component>
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" /> <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" /> <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
<option name="CHECK_NEW_TODO" value="true" /> <option name="CHECK_NEW_TODO" value="true" />
<option name="myTodoPanelSettings"> <option name="myTodoPanelSettings">
<value> <value>
<are-packages-shown value="false" /> <are-packages-shown value="false" />
<are-modules-shown value="false" /> <are-modules-shown value="false" />
<flatten-packages value="false" /> <flatten-packages value="false" />
<is-autoscroll-to-source value="false" /> <is-autoscroll-to-source value="false" />
</value> </value>
</option> </option>
<option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" /> <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
<option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" /> <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
<option name="PERFORM_EDIT_IN_BACKGROUND" value="true" /> <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
<option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" /> <option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
<option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" /> <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
<option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" /> <option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
<option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" /> <option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
<option name="CHANGED_ON_SERVER_INTERVAL" value="60" /> <option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
<option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" /> <option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" /> <option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
<option name="DEFAULT_PATCH_EXTENSION" value="patch" /> <option name="DEFAULT_PATCH_EXTENSION" value="patch" />
<option name="SHORT_DIFF_HORIZONTALLY" value="true" /> <option name="SHORT_DIFF_HORIZONTALLY" value="true" />
<option name="SHORT_DIFF_EXTRA_LINES" value="2" /> <option name="SHORT_DIFF_EXTRA_LINES" value="2" />
<option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" /> <option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
<option name="INCLUDE_TEXT_INTO_PATCH" value="false" /> <option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" /> <option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
<option name="SHOW_FILE_HISTORY_DETAILS" value="true" /> <option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
<option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" /> <option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" />
<option name="SHOW_DIRTY_RECURSIVELY" value="false" /> <option name="SHOW_DIRTY_RECURSIVELY" value="false" />
<option name="LIMIT_HISTORY" value="true" /> <option name="LIMIT_HISTORY" value="true" />
<option name="MAXIMUM_HISTORY_ROWS" value="1000" /> <option name="MAXIMUM_HISTORY_ROWS" value="1000" />
<option name="UPDATE_FILTER_SCOPE_NAME" /> <option name="UPDATE_FILTER_SCOPE_NAME" />
<option name="USE_COMMIT_MESSAGE_MARGIN" value="false" /> <option name="USE_COMMIT_MESSAGE_MARGIN" value="false" />
<option name="COMMIT_MESSAGE_MARGIN_SIZE" value="72" /> <option name="COMMIT_MESSAGE_MARGIN_SIZE" value="72" />
<option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="false" /> <option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="false" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" /> <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" /> <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
<option name="LAST_COMMIT_MESSAGE" value="Update HTML package output to interim metadata standard" /> <option name="LAST_COMMIT_MESSAGE" value="Allow anonymous access to datastore API search" />
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" /> <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" /> <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" /> <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" /> <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
<option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" /> <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
<option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" /> <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
<option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" /> <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
<option name="ACTIVE_VCS_NAME" /> <option name="ACTIVE_VCS_NAME" />
<option name="UPDATE_GROUP_BY_PACKAGES" value="false" /> <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" /> <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
<option name="UPDATE_FILTER_BY_SCOPE" value="false" /> <option name="UPDATE_FILTER_BY_SCOPE" value="false" />
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" /> <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" /> <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
<MESSAGE value="Update HTML package output to interim metadata standard" /> <MESSAGE value="Update HTML package output to interim metadata standard" />
  <MESSAGE value="Move Disqus comments to package not resource page" />
  <MESSAGE value="Allow anonymous access to datastore API search" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager /> <breakpoint-manager />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/../ckan/ckan/templates/base.html"> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" /> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
</provider> <folding />
</entry> </state>
<entry file="file://$PROJECT_DIR$/../ckan/ckan/templates/macros/form.html"> </provider>
<provider selected="true" editor-type-id="text-editor"> </entry>
<state line="94" column="0" selection-start="4027" selection-end="4027" vertical-scroll-proportion="-21.333334" /> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="11" column="0" selection-start="247" selection-end="1668" vertical-scroll-proportion="0.0">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="14" column="89" selection-start="580" selection-end="580" vertical-scroll-proportion="0.0">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/setup.py">
  <provider selected="true" editor-type-id="text-editor">
  <state line="23" column="48" selection-start="677" selection-end="677" vertical-scroll-proportion="0.6788194">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/plugin.py">
  <provider selected="true" editor-type-id="text-editor">
  <state line="14" column="154" selection-start="577" selection-end="577" vertical-scroll-proportion="0.0">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf">
  <provider selected="true" editor-type-id="text-editor">
  <state line="57" column="119" selection-start="2936" selection-end="2936" vertical-scroll-proportion="0.0">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="18" column="70" selection-start="675" selection-end="675" vertical-scroll-proportion="-11.769231">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/user/dashboard_datasets.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="0" column="21" selection-start="0" selection-end="18" vertical-scroll-proportion="-0.0">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/user/read.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="10" column="0" selection-start="233" selection-end="246" vertical-scroll-proportion="-6.5384617">
  <folding />
  </state>
  </provider>
  </entry>
  <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html">
  <provider selected="true" editor-type-id="text-editor">
  <state line="6" column="110" selection-start="190" selection-end="190" vertical-scroll-proportion="-3.9230769">
  <folding />
  </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.html"> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0"> <state line="12" column="96" selection-start="451" selection-end="451" vertical-scroll-proportion="-7.8461537">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_basic_fields.html"> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_basic_fields.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.0"> <state line="51" column="125" selection-start="2745" selection-end="2745" vertical-scroll-proportion="-13.807693">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/../ckan/ckan/templates/package/snippets/package_metadata_fields.html"> <entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/resource_item.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="21" column="0" selection-start="1147" selection-end="1147" vertical-scroll-proportion="-0.625" /> <state line="22" column="129" selection-start="1133" selection-end="1133" vertical-scroll-proportion="0.5771605">
</provider> <folding />
</entry> </state>
<entry file="file://$PROJECT_DIR$/../ckan/ckan/model/package.py"> </provider>
<provider selected="true" editor-type-id="text-editor"> </entry>
<state line="209" column="0" selection-start="7434" selection-end="7434" vertical-scroll-proportion="0.0" /> </component>
</provider> <component name="masterDetails">
</entry> <states>
<entry file="file://$PROJECT_DIR$/../ckan/ckan/logic/action/get.py"> <state key="ArtifactsStructureConfigurable.UI">
<provider selected="true" editor-type-id="text-editor"> <settings>
<state line="758" column="37" selection-start="24462" selection-end="24462" vertical-scroll-proportion="-6.6" /> <artifact-editor />
</provider> <splitter-proportions>
</entry> <option name="proportions">
<entry file="file://$PROJECT_DIR$/../ckan/ckan/logic/schema.py"> <list>
<provider selected="true" editor-type-id="text-editor"> <option value="0.2" />
<state line="172" column="0" selection-start="7641" selection-end="7641" vertical-scroll-proportion="0.0" /> </list>
</provider> </option>
</entry> </splitter-proportions>
<entry file="file://$PROJECT_DIR$/../ckan/ckan/lib/navl/validators.py"> </settings>
<provider selected="true" editor-type-id="text-editor"> </state>
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" /> <state key="FacetStructureConfigurable.UI">
</provider> <settings>
</entry> <last-edited>No facets are configured</last-edited>
<entry file="file://$PROJECT_DIR$/../ckan/ckan/logic/converters.py"> <splitter-proportions>
<provider selected="true" editor-type-id="text-editor"> <option name="proportions">
<state line="33" column="0" selection-start="391" selection-end="1056" vertical-scroll-proportion="0.0" /> <list>
</provider> <option value="0.2" />
</entry> </list>
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/plugin.py"> </option>
<provider selected="true" editor-type-id="text-editor"> </splitter-proportions>
<state line="106" column="0" selection-start="4140" selection-end="4271" vertical-scroll-proportion="0.0" /> </settings>
</provider> </state>
</entry> <state key="GlobalLibrariesConfigurable.UI">
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/snippets/package_metadata_fields.html"> <settings>
<provider selected="true" editor-type-id="text-editor"> <splitter-proportions>
<state line="35" column="74" selection-start="1081" selection-end="1081" vertical-scroll-proportion="-20.875"> <option name="proportions">
<folding /> <list>
</state> <option value="0.2" />
</provider> </list>
</entry> </option>
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read_base.html"> </splitter-proportions>
<provider selected="true" editor-type-id="text-editor"> </settings>
<state line="11" column="0" selection-start="247" selection-end="1668" vertical-scroll-proportion="-6.875"> </state>
<folding /> <state key="JdkListConfigurable.UI">
</state> <settings>
</provider> <splitter-proportions>
</entry> <option name="proportions">
<entry file="file://$PROJECT_DIR$/../ckan/ckan/templates/package/resource_read.html"> <list>
<provider selected="true" editor-type-id="text-editor"> <option value="0.2" />
<state line="24" column="105" selection-start="970" selection-end="970" vertical-scroll-proportion="0.48018292"> </list>
<folding /> </option>
</state> </splitter-proportions>
</provider> </settings>
</entry> </state>
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/read.rdf"> <state key="ModuleStructureConfigurable.UI">
<provider selected="true" editor-type-id="text-editor"> <settings>
<state line="47" column="50" selection-start="2578" selection-end="2596" vertical-scroll-proportion="0.0"> <last-edited>ckanext-datagovau</last-edited>
<folding /> <splitter-proportions>
</state> <option name="proportions">
</provider> <list>
</entry> <option value="0.2" />
<entry file="file://$PROJECT_DIR$/ckanext/datagovau/templates/package/resource_read.html"> <option value="0.5" />
<provider selected="true" editor-type-id="text-editor"> </list>
<state line="14" column="89" selection-start="580" selection-end="580" vertical-scroll-proportion="0.30837005"> </option>
<folding /> </splitter-proportions>
</state> </settings>
</provider> </state>
</entry> <state key="ProjectJDKs.UI">
  <settings>
  <splitter-proportions>
  <option name="proportions">
  <list>
  <option value="0.2" />
  </list>
  </option>
  </splitter-proportions>
  </settings>
  </state>
  <state key="ProjectLibrariesConfigurable.UI">
  <settings>
  <splitter-proportions>
  <option name="proportions">
  <list>
  <option value="0.2" />
  </list>
  </option>
  </splitter-proportions>
  </settings>
  </state>
  </states>
</component> </component>
</project> </project>
   
   
# This is a basic VCL configuration file for varnish. See the vcl(7) # This is a basic VCL configuration file for varnish. See the vcl(7)
# man page for details on VCL syntax and semantics. # man page for details on VCL syntax and semantics.
# #
# Default backend definition. Set this to point to your content # Default backend definition. Set this to point to your content
# server. # server.
# #
backend default { backend default {
.host = "127.0.0.1"; .host = "127.0.0.1";
.port = "8080"; .port = "8080";
} }
   
sub vcl_fetch { sub vcl_fetch {
set beresp.grace = 1h; set beresp.grace = 1h;
if (beresp.http.content-type ~ "(text|application)") { if (beresp.http.content-type ~ "(text|application)") {
set beresp.do_gzip = true; set beresp.do_gzip = true;
} }
if (req.url ~ "\.(png|gif|jpg|jpeg|swf|css|js|woff|eot)$") { if (req.url ~ "\.(png|gif|jpg|jpeg|swf|css|js|woff|eot)$") {
unset beresp.http.set-cookie; unset beresp.http.set-cookie;
} }
} }
sub vcl_recv { sub vcl_recv {
if (req.url ~ "^/_tracking") { if (req.url ~ "^/_tracking") {
return (pass); return (pass);
} }
if (req.url ~ "\.(png|gif|jpg|jpeg|swf|css|js|woff|eot)$") { if (req.url ~ "\.(png|gif|jpg|jpeg|swf|css|js|woff|eot)$") {
return(lookup); return(lookup);
} }
if (req.http.Cookie) { if (req.http.Cookie) {
set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1"); # removes all cookies named __utm? (utma, utmb...) - tracking thing set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1"); # removes all cookies named __utm? (utma, utmb...) - tracking thing
   
if (req.http.Cookie == "") { if (req.http.Cookie == "") {
remove req.http.Cookie; remove req.http.Cookie;
} }
} }
} }
  sub vcl_hash {
  # http://serverfault.com/questions/112531/ignoring-get-parameters-in-varnish-vcl
  set req.url = regsub(req.url, "/../|/.._../", "/");
  hash_data(req.url);
  if (req.http.host) {
  hash_data(req.http.host);
  } else {
  hash_data(server.ip);
  }
  return (hash);
  }
sub vcl_deliver { sub vcl_deliver {
if (!resp.http.Vary) { if (!resp.http.Vary) {
set resp.http.Vary = "Accept-Encoding"; set resp.http.Vary = "Accept-Encoding";
} else if (resp.http.Vary !~ "(?i)Accept-Encoding") { } else if (resp.http.Vary !~ "(?i)Accept-Encoding") {
set resp.http.Vary = resp.http.Vary + ",Accept-Encoding"; set resp.http.Vary = resp.http.Vary + ",Accept-Encoding";
} }
if (obj.hits > 0) { if (obj.hits > 0) {
set resp.http.X-Cache = "HIT"; set resp.http.X-Cache = "HIT";
} else { } else {
set resp.http.X-Cache = "MISS"; set resp.http.X-Cache = "MISS";
} }
} }
   
# #
# Below is a commented-out copy of the default VCL logic. If you # Below is a commented-out copy of the default VCL logic. If you
# redefine any of these subroutines, the built-in logic will be # redefine any of these subroutines, the built-in logic will be
# appended to your code. # appended to your code.
# sub vcl_recv { # sub vcl_recv {
# if (req.restarts == 0) { # if (req.restarts == 0) {
# if (req.http.x-forwarded-for) { # if (req.http.x-forwarded-for) {
# set req.http.X-Forwarded-For = # set req.http.X-Forwarded-For =
# req.http.X-Forwarded-For + ", " + client.ip; # req.http.X-Forwarded-For + ", " + client.ip;
# } else { # } else {
# set req.http.X-Forwarded-For = client.ip; # set req.http.X-Forwarded-For = client.ip;
# } # }
# } # }
# if (req.request != "GET" && # if (req.request != "GET" &&
# req.request != "HEAD" && # req.request != "HEAD" &&
# req.request != "PUT" && # req.request != "PUT" &&
# req.request != "POST" && # req.request != "POST" &&
# req.request != "TRACE" && # req.request != "TRACE" &&
# req.request != "OPTIONS" && # req.request != "OPTIONS" &&
# req.request != "DELETE") { # req.request != "DELETE") {
# /* Non-RFC2616 or CONNECT which is weird. */ # /* Non-RFC2616 or CONNECT which is weird. */
# return (pipe); # return (pipe);
# } # }
# if (req.request != "GET" && req.request != "HEAD") { # if (req.request != "GET" && req.request != "HEAD") {
# /* We only deal with GET and HEAD by default */ # /* We only deal with GET and HEAD by default */
# return (pass); # return (pass);
# } # }
# if (req.http.Authorization || req.http.Cookie) { # if (req.http.Authorization || req.http.Cookie) {
# /* Not cacheable by default */ # /* Not cacheable by default */
# return (pass); # return (pass);
# } # }
# return (lookup); # return (lookup);
# } # }
# #
# sub vcl_pipe { # sub vcl_pipe {
# # Note that only the first request to the backend will have # # Note that only the first request to the backend will have
# # X-Forwarded-For set. If you use X-Forwarded-For and want to # # X-Forwarded-For set. If you use X-Forwarded-For and want to
# # have it set for all requests, make sure to have: # # have it set for all requests, make sure to have:
# # set bereq.http.connection = "close"; # # set bereq.http.connection = "close";
# # here. It is not set by default as it might break some broken web # # here. It is not set by default as it might break some broken web
# # applications, like IIS with NTLM authentication. # # applications, like IIS with NTLM authentication.
# return (pipe); # return (pipe);
# } # }
# #
# sub vcl_pass { # sub vcl_pass {
# return (pass); # return (pass);
# } # }
# #
# sub vcl_hash { # sub vcl_hash {
# hash_data(req.url); # hash_data(req.url);
# if (req.http.host) { # if (req.http.host) {
# hash_data(req.http.host); # hash_data(req.http.host);
# } else { # } else {
# hash_data(server.ip); # hash_data(server.ip);
# } # }
# return (hash); # return (hash);
# } # }
# #
# sub vcl_hit { # sub vcl_hit {
# return (deliver); # return (deliver);
# } # }
# #
# sub vcl_miss { # sub vcl_miss {
# return (fetch); # return (fetch);
# } # }
# #
# sub vcl_fetch { # sub vcl_fetch {
# if (beresp.ttl <= 0s || # if (beresp.ttl <= 0s ||
# beresp.http.Set-Cookie || # beresp.http.Set-Cookie ||
# beresp.http.Vary == "*") { # beresp.http.Vary == "*") {
# /* # /*
# * Mark as "Hit-For-Pass" for the next 2 minutes # * Mark as "Hit-For-Pass" for the next 2 minutes
# */ # */
# set beresp.ttl = 120 s; # set beresp.ttl = 120 s;
# return (hit_for_pass); # return (hit_for_pass);
# } # }
# return (deliver); # return (deliver);
# } # }
# #
# sub vcl_deliver { # sub vcl_deliver {
# return (deliver); # return (deliver);
# } # }
# #
# sub vcl_error { # sub vcl_error {
# set obj.http.Content-Type = "text/html; charset=utf-8"; # set obj.http.Content-Type = "text/html; charset=utf-8";
# set obj.http.Retry-After = "5"; # set obj.http.Retry-After = "5";
# synthetic {" # synthetic {"
# <?xml version="1.0" encoding="utf-8"?> # <?xml version="1.0" encoding="utf-8"?>
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" # <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
# "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> # "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
# <html> # <html>
# <head> # <head>
# <title>"} + obj.status + " " + obj.response + {"</title> # <title>"} + obj.status + " " + obj.response + {"</title>
# </head> # </head>
# <body> # <body>
# <h1>Error "} + obj.status + " " + obj.response + {"</h1> # <h1>Error "} + obj.status + " " + obj.response + {"</h1>
# <p>"} + obj.response + {"</p> # <p>"} + obj.response + {"</p>
# <h3>Guru Meditation:</h3> # <h3>Guru Meditation:</h3>
# <p>XID: "} + req.xid + {"</p> # <p>XID: "} + req.xid + {"</p>
# <hr> # <hr>
# <p>Varnish cache server</p> # <p>Varnish cache server</p>
# </body> # </body>
# </html> # </html>
# "}; # "};
# return (deliver); # return (deliver);
# } # }
# #
# sub vcl_init { # sub vcl_init {
# return (ok); # return (ok);
# } # }
# #
# sub vcl_fini { # sub vcl_fini {
# return (ok); # return (ok);
# } # }
   
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
   
#parse the activity feed for last active non-system user #parse the activity feed for last active non-system user
def get_last_active_user(id): def get_last_active_user(id):
system_user = "de0ba262-83fe-45e2-adda-41bb9f0c86d8" system_user = lib.helpers.get_action('user_show',{'id': config.get('ckan.site_id', 'ckan_site_user')})
user_list = [x for x in lib.helpers.get_action('package_activity_list',{'id':id}) if x['user_id'] != system_user] user_list = [x for x in lib.helpers.get_action('package_activity_list',{'id':id}) if x['user_id'] != system_user['id']]
user = user_list[0]['user_id'] user = None
  if len(user_list) > 0:
  user = user_list[0].get('user_id', None)
if user is None: if user is None:
return lib.helpers.get_action('user_show',{'id':system_user}) return system_user
else: else:
return lib.helpers.get_action('user_show',{'id':user}) return lib.helpers.get_action('user_show',{'id':user})
   
  # get user created datasets and those they have edited
  def get_user_datasets(user_dict):
  created_datasets_list = user_dict['datasets']
  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')]
  return created_datasets_list + active_datasets_list
   
class ExampleIDatasetFormPlugin(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.IDatasetForm, inherit=False) plugins.implements(plugins.IDatasetForm, inherit=False)
plugins.implements(plugins.ITemplateHelpers, inherit=False) plugins.implements(plugins.ITemplateHelpers, inherit=False)
   
# These record how many times methods that this plugin's methods are  
# called, for testing purposes.  
num_times_new_template_called = 0  
num_times_read_template_called = 0  
num_times_edit_template_called = 0  
num_times_search_template_called = 0  
num_times_history_template_called = 0  
num_times_package_form_called = 0  
num_times_check_data_dict_called = 0  
num_times_setup_template_variables_called = 0  
   
   
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_last_active_user': get_last_active_user} return {'get_last_active_user': get_last_active_user, 'get_user_datasets': get_user_datasets}
   
def is_fallback(self): def is_fallback(self):
# Return True to register this plugin as the default handler for # Return True to register this plugin as the default handler for
# package types not handled by any other IDatasetForm plugin. # package types not handled by any other IDatasetForm plugin.
return True return True
   
def package_types(self): def package_types(self):
# This plugin doesn't handle any special package types, it just # This plugin doesn't handle any special package types, it just
# registers itself as the default (above). # registers itself as the default (above).
return [] return []
   
   
def create_package_schema(self): def create_package_schema(self):
schema = super(ExampleIDatasetFormPlugin, self).create_package_schema() schema = super(DataGovAuPlugin, self).create_package_schema()
schema = self._modify_package_schema(schema) schema = self._modify_package_schema(schema)
return schema return schema
   
def update_package_schema(self): def update_package_schema(self):
schema = super(ExampleIDatasetFormPlugin, self).update_package_schema() schema = super(DataGovAuPlugin, self).update_package_schema()
schema = self._modify_package_schema(schema) schema = self._modify_package_schema(schema)
return schema return schema
   
def show_package_schema(self): def show_package_schema(self):
schema = super(ExampleIDatasetFormPlugin, self).show_package_schema() schema = super(DataGovAuPlugin, self).show_package_schema()
   
# Don't show vocab tags mixed in with normal 'free' tags # Don't show vocab tags mixed in with normal 'free' tags
# (e.g. on dataset pages, or on the search page) # (e.g. on dataset pages, or on the search page)
schema['tags']['__extras'].append(tk.get_converter('free_tags_only')) schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))
   
# Add our custom_text field to the dataset schema. # Add our custom_text field to the dataset schema.
# ignore_missing == optional # ignore_missing == optional
# ignore_empty == mandatory but not for viewing # ignore_empty == mandatory but not for viewing
# !!! always convert_from_extras first # !!! always convert_from_extras first
schema.update({ schema.update({
'agency_program': [tk.get_converter('convert_from_extras'), 'agency_program': [tk.get_converter('convert_from_extras'),
tk.get_validator('ignore_missing')], tk.get_validator('ignore_missing')],
'contact_point': [tk.get_converter('convert_from_extras'), 'contact_point': [tk.get_converter('convert_from_extras'),
tk.get_validator('ignore_empty')], tk.get_validator('ignore_empty')],
'spatial_coverage': [tk.get_converter('convert_from_extras'), 'spatial_coverage': [tk.get_converter('convert_from_extras'),
tk.get_validator('ignore_empty')], tk.get_validator('ignore_empty')],
'granularity': [tk.get_converter('convert_from_extras'), 'granularity': [tk.get_converter('convert_from_extras'),
tk.get_validator('ignore_empty')], tk.get_validator('ignore_empty')],
'jurisdiction': [tk.get_converter('convert_from_extras'), 'jurisdiction': [tk.get_converter('convert_from_extras'),
tk.get_validator('ignore_empty')], tk.get_validator('ignore_empty')],
'temporal_coverage': [tk.get_converter('convert_from_extras'), 'temporal_coverage': [tk.get_converter('convert_from_extras'),
tk.get_validator('ignore_empty')], tk.get_validator('ignore_empty')],
'data_state': [tk.get_converter('convert_from_extras'), 'data_state': [tk.get_converter('convert_from_extras'),
tk.get_validator('ignore_empty')], tk.get_validator('ignore_empty')],
'update_freq': [tk.get_converter('convert_from_extras'), 'update_freq': [tk.get_converter('convert_from_extras'),
tk.get_validator('ignore_empty')] tk.get_validator('ignore_empty')]
}) })
return schema return schema
   
def _modify_package_schema(self, schema): def _modify_package_schema(self, schema):
# Add our custom_test metadata field to the schema, this one will use # Add our custom_test metadata field to the schema, this one will use
# convert_to_extras instead of convert_to_tags. # convert_to_extras instead of convert_to_tags.
# ignore_missing == optional # ignore_missing == optional
# not_empty == mandatory, enforced here while modifying # not_empty == mandatory, enforced here while modifying
   
schema.update({ schema.update({
'agency_program': [tk.get_validator('ignore_missing'), 'agency_program': [tk.get_validator('ignore_missing'),
tk.get_converter('convert_to_extras')], tk.get_converter('convert_to_extras')],
'contact_point': [tk.get_converter('convert_to_extras'), 'contact_point': [tk.get_converter('convert_to_extras'),
tk.get_validator('not_empty')], tk.get_validator('not_empty')],
'spatial_coverage': [tk.get_converter('convert_to_extras'), 'spatial_coverage': [tk.get_converter('convert_to_extras'),
tk.get_validator('not_empty')], tk.get_validator('not_empty')],
'granularity': [tk.get_converter('convert_to_extras'), 'granularity': [tk.get_converter('convert_to_extras'),
tk.get_validator('not_empty')], tk.get_validator('not_empty')],
'jurisdiction': [tk.get_converter('convert_to_extras'), 'jurisdiction': [tk.get_converter('convert_to_extras'),
tk.get_validator('not_empty')], tk.get_validator('not_empty')],
'temporal_coverage': [tk.get_converter('convert_to_extras'), 'temporal_coverage': [tk.get_converter('convert_to_extras'),
tk.get_validator('not_empty')], tk.get_validator('not_empty')],
'data_state': [tk.get_converter('convert_to_extras'), 'data_state': [tk.get_converter('convert_to_extras'),
tk.get_validator('not_empty')], tk.get_validator('not_empty')],
'update_freq': [tk.get_converter('convert_to_extras'), 'update_freq': [tk.get_converter('convert_to_extras'),
tk.get_validator('not_empty')] tk.get_validator('not_empty')]
}) })
return schema return schema
   
# These methods just record how many times they're called, for testing # These methods just record how many times they're called, for testing
# purposes. # purposes.
# TODO: It might be better to test that custom templates returned by # TODO: It might be better to test that custom templates returned by
# these methods are actually used, not just that the methods get # these methods are actually used, not just that the methods get
# called. # called.
   
def setup_template_variables(self, context, data_dict): def setup_template_variables(self, context, data_dict):
return super(ExampleIDatasetFormPlugin, self).setup_template_variables( return super(DataGovAuPlugin, self).setup_template_variables(
context, data_dict) context, data_dict)
   
def new_template(self): def new_template(self):
return super(ExampleIDatasetFormPlugin, self).new_template() return super(DataGovAuPlugin, self).new_template()
   
def read_template(self): def read_template(self):
return super(ExampleIDatasetFormPlugin, self).read_template() return super(DataGovAuPlugin, self).read_template()
   
def edit_template(self): def edit_template(self):
return super(ExampleIDatasetFormPlugin, self).edit_template() return super(DataGovAuPlugin, self).edit_template()
   
def search_template(self): def search_template(self):
return super(ExampleIDatasetFormPlugin, self).search_template() return super(DataGovAuPlugin, self).search_template()
   
def history_template(self): def history_template(self):
return super(ExampleIDatasetFormPlugin, self).history_template() return super(DataGovAuPlugin, self).history_template()
   
def package_form(self): def package_form(self):
return super(ExampleIDatasetFormPlugin, self).package_form() return super(DataGovAuPlugin, self).package_form()
   
   
{% ckan_extends %} {% ckan_extends %}
  {% block primary_content_inner %}
  {{ super() }}
   
  <div class="module-content">
  {{ h.disqus_comments() }}
  </div>
  {% endblock %}
{% block package_additional_info %} {% block package_additional_info %}
<section class="additional-info" xmlns:dcat="http://www.w3.org/ns/dcat#" <section class="additional-info" prefix="dc: http://purl.org/dc/elements/1.1/ dcat: http://www.w3.org/ns/dcat#
xmlns:dcam="http://purl.org/dc/dcam/" dcam: http://purl.org/dc/dcam/
xmlns:aglsterms="http://www.agls.gov.au/agls/terms/" aglsterms: http://www.agls.gov.au/agls/terms/
xmlns:agentterms="http://www.agls.gov.au/agls/agentterms/" agentterms: http://www.agls.gov.au/agls/agentterms/
xmlns:availterms="http://www.agls.gov.au/agls/availterms/" availterms: http://www.agls.gov.au/agls/availterms/
xmlns:adminterms="http://www.agls.gov.au/agls/adminterms/" adminterms: http://www.agls.gov.au/agls/adminterms/
xmlns:dct="http://purl.org/dc/terms/"> dct: http://purl.org/dc/terms/">
<h3>{{ _('Additional Info') }}</h3> <h3>{{ _('Additional Info') }}</h3>
<table class="table table-striped table-bordered table-condensed"> <table class="table table-striped table-bordered table-condensed">
<thead> <thead>
<tr> <tr>
<th scope="col">{{ _('Field') }}</th> <th scope="col">{{ _('Field') }}</th>
<th scope="col">{{ _('Value') }}</th> <th scope="col">{{ _('Value') }}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
   
   
{# Add our custom field to the dataset read page. #} {# Add our custom field to the dataset read page. #}
{% if pkg.get('metadata_created') %} {% if pkg.get('metadata_created') %}
<tr> <tr>
<th scope="row" class="dataset-label">Date Published</th> <th scope="row" class="dataset-label">Date Published</th>
<td class="dataset-details" property="dct:issued">{{ pkg.metadata_created.split("T")[0] }}</td> <td class="dataset-details" property="dct:issued">{{ pkg.metadata_created.split("T")[0] }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if pkg.get('metadata_updated') %} {% if pkg.get('metadata_updated') %}
<tr> <tr>
<th scope="row" class="dataset-label">Date Updated</th> <th scope="row" class="dataset-label">Date Updated</th>
<td class="dataset-details" property="dct:updated">{{ pkg.metadata_updated.split("T")[0] }}</td> <td class="dataset-details" property="dct:updated">{{ pkg.metadata_updated.split("T")[0] }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if pkg.get('agency_program') %} {% if pkg.get('agency_program') %}
<tr> <tr>
<th scope="row" class="dataset-label">Agency Program</th> <th scope="row" class="dataset-label">Agency Program</th>
<td class="dataset-details"> {{ pkg.agency_program }}</td> <td class="dataset-details"> {{ pkg.agency_program }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if pkg.get('Agency Program') %} {% if pkg.get('url') %}
<tr>  
<th scope="row" class="dataset-label">Agency Program</th>  
<td class="dataset-details"> {{ pkg.get('Agency Program') }}</td>  
</tr>  
{% endif %}  
{% if h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI') %}  
<tr> <tr>
<th scope="row" class="dataset-label">{{ _('Source') }}</th> <th scope="row" class="dataset-label">{{ _('Source') }}</th>
<td class="dataset-details" property="dct:source">{{ h.link_to(h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI'), <td class="dataset-details" property="dct:source">{{ h.link_to(pkg.get('url'),
h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI'), rel='dct:source', target='_blank') }} pkg.get('url'), rel='dct:source', target='_blank') }}
</td> </td>
</tr> </tr>
{% endif %} {% endif %}
   
{% if pkg.get('contact_point') %} {% if pkg.get('contact_point') %}
<tr> <tr>
<th scope="row" class="dataset-label">Contact Point</th> <th scope="row" class="dataset-label">Contact Point</th>
<td class="dataset-details" property="dcat:contactPoint"> {{ h.mail_to(email_address=pkg.contact_point, <td class="dataset-details" property="dcat:contactPoint"> {{ h.mail_to(email_address=pkg.contact_point,
name=pkg.contact_point) }}</td> name=pkg.contact_point) }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if pkg.get('spatial_coverage') %} {% if pkg.get('spatial_coverage') %}
   
<tr> <tr>
<th scope="row" class="dataset-label">Geospatial Coverage</th> <th scope="row" class="dataset-label">Geospatial Coverage</th>
<td class="dataset-details" property="dct:spatial"> {{ pkg.spatial_coverage }}</td> <td class="dataset-details" property="dct:spatial"> {{ pkg.spatial_coverage }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if h.get_pkg_dict_extra(pkg,'Geospatial Coverage') %}  
   
<tr>  
<th scope="row" class="dataset-label">Geospatial Coverage</th>  
<td class="dataset-details" property="dct:spatial"> {{ h.get_pkg_dict_extra(pkg,'Geospatial Coverage') }}</td>  
</tr>  
{% endif %}  
{% if pkg.get('granularity') %} {% if pkg.get('granularity') %}
   
<tr> <tr>
<th scope="row" class="dataset-label">Data Granularity</th> <th scope="row" class="dataset-label">Data Granularity</th>
<td class="dataset-details"> {{ pkg.granularity }}</td> <td class="dataset-details"> {{ pkg.granularity }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if h.get_pkg_dict_extra(pkg,'Granularity') %}  
   
<tr>  
<th scope="row" class="dataset-label">Data Granularity</th>  
<td class="dataset-details"> {{ h.get_pkg_dict_extra(pkg,'Granularity') }}</td>  
</tr>  
{% endif %}  
{% if pkg.get('jurisdiction') %} {% if pkg.get('jurisdiction') %}
   
<tr> <tr>
<th scope="row" class="dataset-label">Government Jurisdiction</th> <th scope="row" class="dataset-label">Government Jurisdiction</th>
<td class="dataset-details" property="aglsterms:AglsJuri"> {{ pkg.jurisdiction }}</td> <td class="dataset-details" property="aglsterms:AglsJuri"> {{ pkg.jurisdiction }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if h.get_pkg_dict_extra(pkg,'AGLSTERMS.Jurisdiction') %}  
   
<tr>  
<th scope="row" class="dataset-label">Government Jurisdiction</th>  
<td class="dataset-details" property="aglsterms:AglsJuri"> {{ h.get_pkg_dict_extra(pkg,'AGLSTERMS.Jurisdiction') }}</td>  
</tr>  
{% endif %}  
{% if pkg.get('temporal_coverage') %} {% if pkg.get('temporal_coverage') %}
   
<tr> <tr>
<th scope="row" class="dataset-label">Temporal Coverage</th> <th scope="row" class="dataset-label">Temporal Coverage</th>
<td class="dataset-details" property="dct:temporal"> {{ pkg.temporal_coverage }}</td> <td class="dataset-details" property="dct:temporal"> {{ pkg.temporal_coverage }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if h.get_pkg_dict_extra(pkg,'Temporal Coverage') %}  
   
<tr>  
<th scope="row" class="dataset-label">Temporal Coverage</th>  
<td class="dataset-details" property="dct:temporal"> {{ h.get_pkg_dict_extra(pkg,'Temporal Coverage') }}</td>  
</tr>  
{% endif %}  
{% if pkg.get('data_state') %} {% if pkg.get('data_state') %}
   
<tr> <tr>
<th scope="row" class="dataset-label">Data State</th> <th scope="row" class="dataset-label">Data State</th>
<td class="dataset-details"> {{ pkg.data_state }}</td> <td class="dataset-details"> {{ pkg.data_state }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if pkg.get('update_freq') %} {% if pkg.get('update_freq') %}
   
<tr> <tr>
<th scope="row" class="dataset-label">Update Frequency</th> <th scope="row" class="dataset-label">Update Frequency</th>
<td class="dataset-details"> {{ pkg.update_freq }}</td> <td class="dataset-details"> {{ pkg.update_freq }}</td>
</tr>  
{% endif %}  
{% if h.get_pkg_dict_extra(pkg,'Update Frequency') %}  
<tr>  
<th scope="row" class="dataset-label">Update Frequency</th>  
<td class="dataset-details"> {{ h.get_pkg_dict_extra(pkg,'Update Frequency') }}</td>  
</tr> </tr>
{% endif %} {% endif %}
   
{% set email =h.get_last_active_user(c.pkg_dict['id']).get('email','') %} {% set email =h.get_last_active_user(c.pkg_dict['id']).get('email','') %}
<tr> <tr>
<th scope="row" class="dataset-label">{{ _('Maintainer') }}</th> <th scope="row" class="dataset-label">{{ _('Maintainer') }}</th>
<td class="dataset-details" property="dc:contributor">{{ <td class="dataset-details" property="dc:contributor">{{
h.mail_to(email_address=(email or ' '), name=h.get_last_active_user(c.pkg_dict['id']).get("display_name",'')) }} h.mail_to(email_address=(email or ' '), name=h.get_last_active_user(c.pkg_dict['id']).get("display_name",'')) }}
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row" class="dataset-label">Publisher/Agency</th> <th scope="row" class="dataset-label">Publisher/Agency</th>
<td class="dataset-details" property="dc:publisher">{{ c.pkg_dict['organization']['title']}} <td class="dataset-details" property="dc:publisher">{{ c.pkg_dict['organization']['title']}}
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row" class="dataset-label">Type</th> <th scope="row" class="dataset-label">Type</th>
<td class="dataset-details" property="dc:type">Dataset</td> <td class="dataset-details" property="dc:type">Dataset</td>
</tr> </tr>
<tr> <tr>
<th scope="row" class="dataset-label">Language</th> <th scope="row" class="dataset-label">Language</th>
<td class="dataset-details" property="dc:language">English</td> <td class="dataset-details" property="dc:language">English</td>
</tr> </tr>
   
</tbody> </tbody>
</table> </table>
</section> </section>
   
   
{% endblock %} {% endblock %}
   
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<rdf:RDF <rdf:RDF
xmlns:py="http://genshi.edgewall.org/" xmlns:py="http://genshi.edgewall.org/"
xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcat="http://www.w3.org/ns/dcat#" xmlns:dcat="http://www.w3.org/ns/dcat#"
xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcam="http://purl.org/dc/dcam/"
xmlns:aglsterms="http://www.agls.gov.au/agls/terms/" xmlns:aglsterms="http://www.agls.gov.au/agls/terms/"
xmlns:agentterms="http://www.agls.gov.au/agls/agentterms/" xmlns:agentterms="http://www.agls.gov.au/agls/agentterms/"
xmlns:availterms="http://www.agls.gov.au/agls/availterms/" xmlns:availterms="http://www.agls.gov.au/agls/availterms/"
xmlns:adminterms="http://www.agls.gov.au/agls/adminterms/" xmlns:adminterms="http://www.agls.gov.au/agls/adminterms/"
xmlns:dct="http://purl.org/dc/terms/" xmlns:dct="http://purl.org/dc/terms/"
> >
<dcat:Dataset rdf:about="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}"> <dcat:Dataset rdf:about="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}">
<dct:identifier>${c.pkg_dict['name']}</dct:identifier> <dct:identifier>${c.pkg_dict['name']}</dct:identifier>
<dct:title>${c.pkg_dict['title']}</dct:title> <dct:title>${c.pkg_dict['title']}</dct:title>
<dct:landingPage <dct:landingPage
rdf:resource="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True) }"/> rdf:resource="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True) }"/>
<owl:sameAs rdf:resource="urn:uuid:${c.pkg_dict['id']}"/> <owl:sameAs rdf:resource="urn:uuid:${c.pkg_dict['id']}"/>
<dct:type>Dataset</dct:type> <dct:type>Dataset</dct:type>
<dct:description>${c.pkg_dict['notes']}</dct:description> <dct:description>${c.pkg_dict['notes']}</dct:description>
<dct:issued>${c.pkg_dict['metadata_created']}</dct:issued> <dct:issued>${c.pkg_dict['metadata_created']}</dct:issued>
<dct:modified>${c.pkg_dict['metadata_modified']}</dct:modified> <dct:modified>${c.pkg_dict['metadata_modified']}</dct:modified>
<dct:language>en</dct:language> <dct:language>en</dct:language>
   
<py:choose> <py:choose>
<py:when test="c.pkg_dict.get('license_url',None)"> <py:when test="c.pkg_dict.get('license_url',None)">
<dct:license>${c.pkg_dict['license_url']}</dct:license> <dct:license>${c.pkg_dict['license_url']}</dct:license>
<dct:rights rdf:resource="${c.pkg_dict['license_url']}"/> <dct:rights rdf:resource="${c.pkg_dict['license_url']}"/>
</py:when> </py:when>
<py:otherwise> <py:otherwise>
<dct:license>${c.pkg_dict['license_id']}</dct:license> <dct:license>${c.pkg_dict['license_id']}</dct:license>
<dct:rights rdf:resource="${c.pkg_dict['license_id']}"/> <dct:rights rdf:resource="${c.pkg_dict['license_id']}"/>
</py:otherwise> </py:otherwise>
</py:choose> </py:choose>
<py:for each="tag_dict in c.pkg_dict.get('tags',[])"> <py:for each="tag_dict in c.pkg_dict.get('tags',[])">
<dcat:keyword>${ tag_dict["name"] }</dcat:keyword> <dcat:keyword>${ tag_dict["name"] }</dcat:keyword>
</py:for> </py:for>
<py:for each="group_dict in c.pkg_dict.get('groups',[])"> <py:for each="group_dict in c.pkg_dict.get('groups',[])">
<dcat:theme>${ group_dict["title"] }</dcat:theme> <dcat:theme>${ group_dict["title"] }</dcat:theme>
</py:for> </py:for>
   
<foaf:homepage <foaf:homepage
rdf:resource="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}"/> rdf:resource="${ h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}"/>
<rdfs:label>${c.pkg_dict['name']}</rdfs:label> <rdfs:label>${c.pkg_dict['name']}</rdfs:label>
   
   
<py:for each="rsc_dict in c.pkg_dict['resources']"> <py:for each="rsc_dict in c.pkg_dict['resources']">
<dcat:distribution> <dcat:distribution>
<dcat:Distribution> <dcat:Distribution>
<dct:title>${rsc_dict.get('name')}</dct:title> <dct:title>${rsc_dict.get('name')}</dct:title>
<owl:sameAs rdf:resource="urn:uuid:${rsc_dict.get('id')}"/> <owl:sameAs rdf:resource="urn:uuid:${rsc_dict.get('id')}"/>
<dct:description>${rsc_dict.get('description')}</dct:description> <dct:description>${rsc_dict.get('description')}</dct:description>
<dcat:accessURL rdf:resource="${ rsc_dict.get('url') }"/> <dcat:accessURL rdf:resource="${ rsc_dict.get('url') }"/>
<dct:created>${rsc_dict.get('created')}</dct:created> <dct:created>${rsc_dict.get('created')}</dct:created>
<dct:modified>${rsc_dict.get('revision_timestamp')}</dct:modified> <dct:modified>${rsc_dict.get('revision_timestamp')}</dct:modified>
<dcat:byteSize py:if="rsc_dict.get('size')">${rsc_dict.get('size')}</dcat:byteSize> <dcat:byteSize py:if="rsc_dict.get('size')">${rsc_dict.get('size')}</dcat:byteSize>
<dcat:mediaType py:if="rsc_dict.get('mimetype')">${rsc_dict.get('mimetype')}</dcat:mediaType> <dcat:mediaType py:if="rsc_dict.get('mimetype')">${rsc_dict.get('mimetype')}</dcat:mediaType>
<dct:extent py:if="rsc_dict.get('size')">${rsc_dict.get('size')} bytes</dct:extent> <dct:extent py:if="rsc_dict.get('size')">${rsc_dict.get('size')} bytes</dct:extent>
<dct:format py:if="rsc_dict.get('format')"> <dct:format py:if="rsc_dict.get('format')">
<dct:IMT> <dct:IMT>
<rdf:value>${rsc_dict.get('format')}</rdf:value> <rdf:value>${rsc_dict.get('format')}</rdf:value>
<rdfs:label>${rsc_dict.get('format')}</rdfs:label> <rdfs:label>${rsc_dict.get('format')}</rdfs:label>
</dct:IMT> </dct:IMT>
</dct:format> </dct:format>
<dct:title py:if="rsc_dict.get('name')">${rsc_dict.get('name')}</dct:title> <dct:title py:if="rsc_dict.get('name')">${rsc_dict.get('name')}</dct:title>
</dcat:Distribution> </dcat:Distribution>
</dcat:distribution> </dcat:distribution>
</py:for> </py:for>
<dct:publisher py:if="c.pkg_dict.get('organization', None)"> <dct:publisher py:if="c.pkg_dict.get('organization', None)">
<rdf:Description> <rdf:Description>
<foaf:name>${ c.pkg_dict['organization']['title'] }</foaf:name> <foaf:name>${ c.pkg_dict['organization']['title'] }</foaf:name>
</rdf:Description> </rdf:Description>
</dct:publisher> </dct:publisher>
<dct:creator py:if="c.pkg_dict.get('organization', None)"> <dct:creator py:if="c.pkg_dict.get('organization', None)">
<rdf:Description> <rdf:Description>
<foaf:name>${ c.pkg_dict['organization']['title'] }</foaf:name> <foaf:name>${ c.pkg_dict['organization']['title'] }</foaf:name>
</rdf:Description> </rdf:Description>
</dct:creator> </dct:creator>
<dct:contributor> <dct:contributor>
<rdf:Description> <rdf:Description>
<foaf:name>${h.get_last_active_user(c.pkg_dict['id'])["display_name"]}</foaf:name> <foaf:name>${h.get_last_active_user(c.pkg_dict['id'])["display_name"]}</foaf:name>
<foaf:mbox py:if="h.get_last_active_user(c.pkg_dict['id']).get('email', None)" <foaf:mbox py:if="h.get_last_active_user(c.pkg_dict['id']).get('email', None)"
rdf:resource="mailto:${h.get_last_active_user(c.pkg_dict['id'])['email']}"/> rdf:resource="mailto:${h.get_last_active_user(c.pkg_dict['id'])['email']}"/>
</rdf:Description> </rdf:Description>
</dct:contributor> </dct:contributor>
   
   
<foaf:homepage py:if="h.get_pkg_dict_extra(c.pkg_dict,'DCTERMS.Source.URI')">${h.get_pkg_dict_extra(c.pkg_dict,'DCTERMS.Source.URI') } <foaf:homepage py:if="c.pkg_dict.get('url')">${c.pkg_dict.get('url')}</foaf:homepage>
</foaf:homepage>  
   
<dcat:contactPoint py:if="c.pkg_dict.get('contact_point')">${c.pkg_dict.contact_point }</dcat:contactPoint> <dcat:contactPoint py:if="c.pkg_dict.get('contact_point')">${c.pkg_dict.contact_point }</dcat:contactPoint>
<dct:spatial py:if="c.pkg_dict.get('spatial_coverage')">${ c.pkg_dict.spatial_coverage }</dct:spatial> <dct:spatial py:if="c.pkg_dict.get('spatial_coverage')">${ c.pkg_dict.spatial_coverage }</dct:spatial>
<dct:spatial py:if="h.get_pkg_dict_extra(c.pkg_dict,'Geospatial Coverage')">${ h.get_pkg_dict_extra(c.pkg_dict,'Geospatial Coverage') }</dct:spatial>  
<aglsterms:AglsJuri py:if="c.pkg_dict.get('jurisdiction')">${ c.pkg_dict.jurisdiction }</aglsterms:AglsJuri> <aglsterms:AglsJuri py:if="c.pkg_dict.get('jurisdiction')">${ c.pkg_dict.jurisdiction }</aglsterms:AglsJuri>
<aglsterms:AglsJuri py:if="h.get_pkg_dict_extra(c.pkg_dict,'AGLSTERMS.Jurisdiction')">${ h.get_pkg_dict_extra(c.pkg_dict,'AGLSTERMS.Jurisdiction') }</aglsterms:AglsJuri>  
<dct:temporal py:if="c.pkg_dict.get('temporal_coverage')">${ c.pkg_dict.get('temporal_coverage') }</dct:temporal> <dct:temporal py:if="c.pkg_dict.get('temporal_coverage')">${ c.pkg_dict.get('temporal_coverage') }</dct:temporal>
<dct:temporal py:if="h.get_pkg_dict_extra(c.pkg_dict,'Temporal Coverage')">${ h.get_pkg_dict_extra(c.pkg_dict,'Temporal Coverage') }</dct:temporal>  
<dct:relation py:if="c.pkg_dict.get('data_state')"> <dct:relation py:if="c.pkg_dict.get('data_state')">
<rdf:Description> <rdf:Description>
<rdfs:label>Data State</rdfs:label> <rdfs:label>Data State</rdfs:label>
<rdf:value>${ c.pkg_dict.get('data_state') }</rdf:value> <rdf:value>${ c.pkg_dict.get('data_state') }</rdf:value>
</rdf:Description> </rdf:Description>
</dct:relation> </dct:relation>
   
<dct:relation py:if="c.pkg_dict.get('update_freq')"> <dct:relation py:if="c.pkg_dict.get('update_freq')">
<rdf:Description> <rdf:Description>
<rdfs:label>Update Frequency</rdfs:label> <rdfs:label>Update Frequency</rdfs:label>
<rdf:value>${ c.pkg_dict.get('update_freq') }</rdf:value> <rdf:value>${ c.pkg_dict.get('update_freq') }</rdf:value>
</rdf:Description>  
</dct:relation>  
<dct:relation py:if="h.get_pkg_dict_extra(c.pkg_dict,'Update Frequency')">  
<rdf:Description>  
<rdfs:label>Update Frequency</rdfs:label>  
<rdf:value>${ h.get_pkg_dict_extra(c.pkg_dict,'Update Frequency') }</rdf:value>  
</rdf:Description>  
</dct:relation>  
   
<dct:relation py:if="h.get_pkg_dict_extra(c.pkg_dict,'Agency Program')">  
<rdf:Description>  
<rdfs:label>Agency Program</rdfs:label>  
<rdf:value>${ h.get_pkg_dict_extra(c.pkg_dict,'Agency Program') }</rdf:value>  
</rdf:Description> </rdf:Description>
</dct:relation> </dct:relation>
<dct:relation py:if="c.pkg_dict.get('agency_program')"> <dct:relation py:if="c.pkg_dict.get('agency_program')">
<rdf:Description> <rdf:Description>
<rdfs:label>Agency Program</rdfs:label> <rdfs:label>Agency Program</rdfs:label>
<rdf:value>${ c.pkg_dict.get('agency_program') }</rdf:value> <rdf:value>${ c.pkg_dict.get('agency_program') }</rdf:value>
</rdf:Description> </rdf:Description>
</dct:relation> </dct:relation>
   
<dct:relation py:if="h.get_pkg_dict_extra(c.pkg_dict,'Granularity')">  
<rdf:Description>  
<rdfs:label>Data Granularity</rdfs:label>  
<rdf:value>${ h.get_pkg_dict_extra(c.pkg_dict,'Granularity') }</rdf:value>  
</rdf:Description>  
</dct:relation>  
<dct:relation py:if="c.pkg_dict.get('granularity')"> <dct:relation py:if="c.pkg_dict.get('granularity')">
<rdf:Description> <rdf:Description>
<rdfs:label>Data Granularity</rdfs:label> <rdfs:label>Data Granularity</rdfs:label>
<rdf:value>${ c.pkg_dict.get('granularity') }</rdf:value> <rdf:value>${ c.pkg_dict.get('granularity') }</rdf:value>
</rdf:Description> </rdf:Description>
</dct:relation> </dct:relation>
   
<py:for each="extra_dict in c.pkg_dict.get('extras',[])"> <py:for each="extra_dict in c.pkg_dict.get('extras',[])">
<dct:relation> <dct:relation>
<rdf:Description> <rdf:Description>
<rdfs:label>${extra_dict.get('key','')}</rdfs:label> <rdfs:label>${extra_dict.get('key','')}</rdfs:label>
<rdf:value>${extra_dict.get('value','')}</rdf:value> <rdf:value>${extra_dict.get('value','')}</rdf:value>
</rdf:Description> </rdf:Description>
</dct:relation> </dct:relation>
</py:for> </py:for>
</dcat:Dataset> </dcat:Dataset>
</rdf:RDF> </rdf:RDF>
   
{% ckan_extends %} {% ckan_extends %}
   
{% block links -%} {% block links -%}
{{ super() }} {{ super() }}
<link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" /> <link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" />
<link rel="schema.AGLSTERMS" href="http://www.agls.gov.au/agls/terms/" /> <link rel="schema.AGLSTERMS" href="http://www.agls.gov.au/agls/terms/" />
   
{% endblock -%} {% endblock -%}
   
{% block head_extras -%} {% block head_extras -%}
{{ super() }} {{ super() }}
<meta name="DCTERMS.Language" scheme="RFC3066" content="en" /> <meta name="DCTERMS.Language" scheme="RFC3066" content="en" />
<meta name="DCTERMS.Type" scheme="AGLSTERMS.Document" content="dataset" /> <meta name="DCTERMS.Type" scheme="AGLSTERMS.Document" content="dataset" />
<meta name="DCTERMS.Creator" scheme="AGLSTERMS.AglsAgent" content="{{ pkg['organization']['title'] }}" /> <meta name="DCTERMS.Creator" scheme="AGLSTERMS.AglsAgent" content="{{ pkg['organization']['title'] }}" />
<meta name="DCTERMS.Modified" scheme="DCTERMS.ISO8601" content="{{pkg['metadata_modified']}}" /> <meta name="DCTERMS.Modified" scheme="DCTERMS.ISO8601" content="{{pkg['metadata_modified']}}" />
<meta name="DCTERMS.Published" scheme="DCTERMS.ISO8601" content="{{pkg['metadata_created']}}" /> <meta name="DCTERMS.Published" scheme="DCTERMS.ISO8601" content="{{pkg['metadata_created']}}" />
{% if h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI') %}<meta name="DCTERMS.Source.URI" content="{{h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI')}}" />{% endif %} <meta name="DCTERMS.Source.URI" content="{{pkg.url}}" />
<meta name="DCTERMS.License" content="{{pkg['license_url']}}" /> <meta name="DCTERMS.License" content="{{pkg['license_url']}}" />
<meta name="DCTERMS.Coverage.Temporal" content="{{pkg.temporal_coverage or h.get_pkg_dict_extra(pkg,'Temporal Coverage')}}" /> <meta name="DCTERMS.Coverage.Temporal" content="{{pkg.temporal_coverage}}" />
<meta name="DCTERMS.Coverage.Spatial" content="{{pkg.spatial_coverage or h.get_pkg_dict_extra(pkg,'Geospatial Coverage')}}" /> <meta name="DCTERMS.Coverage.Spatial" content="{{pkg.spatial_coverage}}" />
<meta name="AGLSTERMS.Jurisdiction" scheme="AGLSTERMS.AglsJuri" content="{{pkg.jurisdiction or h.get_pkg_dict_extra(pkg,'AGLSTERMS.Jurisdiction')}}" /> <meta name="AGLSTERMS.Jurisdiction" scheme="AGLSTERMS.AglsJuri" content="{{pkg.jurisdiction}}" />
<meta name="DCAT.Theme" scheme="VO" content="{% for x in pkg.groups %}{{x['title']}},{% endfor %}" /> <meta name="DCAT.Theme" scheme="VO" content="{% for x in pkg.groups %}{{x['title']}},{% endfor %}" />
<meta name="DCTERMS.Identifier" content="{{h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}}" /> <meta name="DCTERMS.Identifier" content="{{h.url_for(controller='package',action='read',id=c.pkg_dict['name'], qualified=True)}}" />
<meta name="DCTERMS.Title" content="{{pkg['title']}}" /> <meta name="DCTERMS.Title" content="{{pkg['title']}}" />
<meta name="DCTERMS.Description" scheme="" content="{{pkg['notes']}}" /> <meta name="DCTERMS.Description" scheme="" content="{{pkg['notes']}}" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   
{% endblock -%} {% endblock -%}
   
{% block package_info %} {% block package_info %}
<div class="module context-info"> <div class="module context-info">
<div class="module-content"> <div class="module-content">
<h1 class="heading" property="dct:title">{{ pkg.title or pkg.name }}</h1> <h1 class="heading" property="dc:title">{{ pkg.title or pkg.name }}</h1>
<div class="nums"> <div class="nums">
<dl> <dl>
<dt>{{ _('Followers') }}</dt> <dt>{{ _('Followers') }}</dt>
<dd>{{ h.SI_number_span(h.get_action('dataset_follower_count', {'id': pkg.id})) }}</dd> <dd>{{ h.SI_number_span(h.get_action('dataset_follower_count', {'id': pkg.id})) }}</dd>
</dl> </dl>
</div> </div>
<div class="follow_button"> <div class="follow_button">
{{ h.follow_button('dataset', pkg.name) }} {{ h.follow_button('dataset', pkg.name) }}
</div> </div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
   
   
{% ckan_extends %} {% ckan_extends %}
   
{% block links -%} {% block links -%}
{{ super() }} {{ super() }}
<link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" /> <link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" />
<link rel="schema.AGLSTERMS" href="http://www.agls.gov.au/agls/terms/" /> <link rel="schema.AGLSTERMS" href="http://www.agls.gov.au/agls/terms/" />
   
{% endblock -%} {% endblock -%}
   
{% block head_extras -%} {% block head_extras -%}
{{ super() }} {{ super() }}
<meta name="DCTERMS.Language" scheme="RFC3066" content="en" /> <meta name="DCTERMS.Language" scheme="RFC3066" content="en" />
<meta name="DCTERMS.Type" scheme="AGLSTERMS.Document" content="dataset" /> <meta name="DCTERMS.Type" scheme="AGLSTERMS.Document" content="dataset" />
<meta name="DCTERMS.Creator" scheme="AGLSTERMS.AglsAgent" content="{{ pkg['organization']['title'] }}" /> <meta name="DCTERMS.Creator" scheme="AGLSTERMS.AglsAgent" content="{{ pkg['organization']['title'] }}" />
<meta name="DCTERMS.Modified" scheme="DCTERMS.ISO8601" content="{{res['revision_timestamp']}}" /> <meta name="DCTERMS.Modified" scheme="DCTERMS.ISO8601" content="{{res['revision_timestamp']}}" />
<meta name="DCTERMS.Published" scheme="DCTERMS.ISO8601" content="{{res['created']}}" /> <meta name="DCTERMS.Published" scheme="DCTERMS.ISO8601" content="{{res['created']}}" />
{% if h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI') %}<meta name="DCTERMS.Source.URI" content="{{h.get_pkg_dict_extra(pkg,'DCTERMS.Source.URI')}}" />{% endif %} <meta name="DCTERMS.Source.URI" content="{{pkg.url}}" />
<meta name="DCTERMS.License" content="{{pkg['license_url']}}" /> <meta name="DCTERMS.License" content="{{pkg['license_url']}}" />
<meta name="DCTERMS.Coverage.Temporal" content="{{pkg.temporal_coverage or h.get_pkg_dict_extra(pkg,'Temporal Coverage')}}" /> <meta name="DCTERMS.Coverage.Temporal" content="{{pkg.temporal_coverage}}" />
<meta name="DCTERMS.Coverage.Spatial" content="{{pkg.spatial_coverage or h.get_pkg_dict_extra(pkg,'Geospatial Coverage')}}" /> <meta name="DCTERMS.Coverage.Spatial" content="{{pkg.spatial_coverage}}" />
<meta name="AGLSTERMS.Jurisdiction" scheme="AGLSTERMS.AglsJuri" content="{{pkg.jurisdiction or h.get_pkg_dict_extra(pkg,'AGLSTERMS.Jurisdiction')}}" /> <meta name="AGLSTERMS.Jurisdiction" scheme="AGLSTERMS.AglsJuri" content="{{pkg.jurisdiction}}" />
<meta name="DCAT.Theme" scheme="VO" content="{% for x in pkg.groups %}{{x['title']}},{% endfor %}" /> <meta name="DCAT.Theme" scheme="VO" content="{% for x in pkg.groups %}{{x['title']}},{% endfor %}" />
<meta name="DCAT.byteSize" content="{{res.get('size')}}" /> <meta name="DCAT.byteSize" content="{{res.get('size')}}" />
<meta name="DCAT.mediaType" content="{{res.get('mimetype')}}" /> <meta name="DCAT.mediaType" content="{{res.get('mimetype')}}" />
<meta name="DCTERMS.Identifier" content="{{res.get('url')}}" /> <meta name="DCTERMS.Identifier" content="{{res.get('url')}}" />
<meta name="DCTERMS.Title" content="{{res['name']}}" /> <meta name="DCTERMS.Title" content="{{res['name']}}" />
<meta name="DCTERMS.Description" scheme="" content="{{res['description']}}" /> <meta name="DCTERMS.Description" scheme="" content="{{res['description']}}" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   
<meta name="DCTERMS.Format" content="{{res.format}}" /> <meta name="DCTERMS.Format" content="{{res.format}}" />
<meta name="DCTERMS.File.Size" content="{{res.size}}" /> <meta name="DCTERMS.File.Size" content="{{res.size}}" />
   
{% endblock -%} {% endblock -%}
   
   
   
{% ckan_extends %} {% ckan_extends %}
   
{% block package_basic_fields_org %} {% block package_basic_fields_org %}
   
{{ super() }} {{ super() }}
   
   
{{ form.input('agency_program', label=_('Agency Program'), id='field-agency_program', {{ form.input('agency_program', label=_('Agency Program'), id='field-agency_program',
placeholder=_('Name of the Agency Program that generated the data if relevant'), placeholder=_('Name of the Agency Program that generated the data if relevant'),
value=data.agency_program, error=errors.agency_program, classes=['control-medium']) }} value=data.agency_program, error=errors.agency_program, classes=['control-medium']) }}
   
{{ form.input('contact_point', label=_('Contact Point'), id='field-contact_point', {{ form.input('contact_point', label=_('Contact Point'), id='field-contact_point',
placeholder=_('Email address for questions about content of dataset'), placeholder=_('Email address for questions about content of dataset'),
value=data.contact_point, error=errors.contact_point, classes=['control-medium']) }} value=data.contact_point, error=errors.contact_point, classes=['control-medium']) }}
   
{{ form.input('spatial_coverage', label=_('Geospatial Coverage'), id='field-spatial_coverage', {{ form.input('spatial_coverage', label=_('Geospatial Coverage'), id='field-spatial_coverage',
placeholder=_('The geographical area covered by the data. Eg: Whole of Australia, New South Wales, Canberra'), placeholder=_('The geographical area covered by the data. Eg: Whole of Australia, New South Wales, Canberra'),
value=data.spatial_coverage, error=errors.spatial_coverage, classes=['control-medium']) }} value=data.spatial_coverage, error=errors.spatial_coverage, classes=['control-medium']) }}
   
{{ form.input('granularity', label=_('Data Granularity'), id='field-granularity', {{ form.input('granularity', label=_('Data Granularity'), id='field-granularity',
placeholder=_('Granularity in time, place etc. Eg: incidents reports on daily basis by location.'), placeholder=_('Granularity in time, place etc. Eg: incidents reports on daily basis by location.'),
value=data.granularity, error=errors.granularity, classes=['control-medium']) }} value=data.granularity, error=errors.granularity, classes=['control-medium']) }}
   
{{ form.input('jurisdiction', label=_('Government Jurisdiction'), id='field-jurisdiction', {{ form.input('jurisdiction', label=_('Government Jurisdiction'), id='field-jurisdiction',
placeholder=_('New South Wales, Glenorchy City Council, Federal'), placeholder=_('New South Wales, Glenorchy City Council, Federal'),
value=data.jurisdiction, error=errors.jurisdiction, classes=['control-medium']) }} value=data.jurisdiction, error=errors.jurisdiction, classes=['control-medium']) }}
   
{{ form.input('temporal_coverage', label=_('Temporal Coverage'), id='field-temporal_coverage', {{ form.input('temporal_coverage', label=_('Temporal Coverage'), id='field-temporal_coverage',
placeholder=_('The timespan the dataset relates to: Current, 2008, 2008-2012, Jan 2012'), placeholder=_('The timespan the dataset relates to: Current, 2008, 2008-2012, Jan 2012'),
value=data.temporal_coverage, error=errors.temporal_coverage, classes=['control-medium']) }} value=data.temporal_coverage, error=errors.temporal_coverage, classes=['control-medium']) }}
   
{{ form.select('data_state', label=_('Data State'), options= [{'value': 'active', 'text': 'Active'}, {'value': 'inactive', 'text': 'Inactive'}], {{ form.select('data_state', label=_('Data State'), options= [{'value': 'active', 'text': 'Active'}, {'value': 'inactive', 'text': 'Inactive'}],
selected='Active', error=errors.data_state) }} selected='Active', error=errors.data_state) }}
   
{{ form.input('update_freq', label=_('Update Frequency'), id='field-update_freq', {{ form.input('update_freq', label=_('Update Frequency'), id='field-update_freq',
placeholder=_('How often the dataset is updated. Eg: Daily, Weekly, Never'), placeholder=_('How often the dataset is updated. Eg: Daily, Weekly, Never'),
value=data.update_freq, error=errors.update_freq, classes=['control-medium']) }} value=data.update_freq, error=errors.update_freq, classes=['control-medium']) }}
   
{% endblock %} {% endblock %}
   
   
{% block package_basic_fields_license %} {% block package_basic_fields_license %}
<div class="control-group"> <div class="control-group">
{% set error = errors.license_id %} {% set error = errors.license_id %}
<label class="control-label" for="field-license">{{ _("License") }}</label> <label class="control-label" for="field-license">{{ _("License") }}</label>
<div class="controls"> <div class="controls">
<select id="field-license" name="license_id" data-module="autocomplete"> <select id="field-license" name="license_id" data-module="autocomplete">
{% for license_desc, license_id in licenses|sort if license_desc %} {% for license_desc, license_id in licenses|sort if license_desc %}
{# Make cc-by the default value for data.gov.au #} {# Make cc-by the default value for data.gov.au #}
<option value="{{ license_id }}" {% if data.get('license_id', 'cc-by') == license_id %}selected="selected"{% endif %}>{{ license_desc }}</option> <option value="{{ license_id }}" {% if data.get('license_id', 'cc-by') == license_id %}selected="selected"{% endif %}>{{ license_desc }}</option>
{% endfor %} {% endfor %}
</select> </select>
{% if error %}<span class="error-block">{{ error }}</span>{% endif %} {% if error %}<span class="error-block">{{ error }}</span>{% endif %}
<span class="info-block info-inline"> <span class="info-block info-inline">
<i class="icon-info-sign"></i> <i class="icon-info-sign"></i>
{% trans %} {% trans %}
License definitions and additional information can be found License definitions and additional information can be found
at <a href="http://opendefinition.org/licenses/">opendefinition.org</a> at <a href="http://opendefinition.org/licenses/">opendefinition.org</a>
{% endtrans %} {% endtrans %}
</span> </span>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
{% ckan_extends %} {% ckan_extends %}
   
{# Remove 'free extras' from the package form. If you're using {# Remove 'free extras' from the package form. If you're using
convert_to/from_extras() as we are with our 'custom_text' field below then convert_to/from_extras() as we are with our 'custom_text' field below then
you need to remove free extras from the form, or editing your custom field you need to remove free extras from the form, or editing your custom field
won't work. #} won't work. #}
{% block custom_fields %} {% block custom_fields %}
{% endblock %} {% endblock %}
   
{# https://github.com/okfn/ckan/blob/master/ckan/templates/macros/form.html documents the macros for fields #} {# https://github.com/okfn/ckan/blob/master/ckan/templates/macros/form.html documents the macros for fields #}
   
{% block package_metadata_fields %} {% block package_metadata_fields %}
  {{ form.input('url', label=_('Source URL'), id='field-url',
  placeholder=_('URL where dataset came from or more information can be obtained'),
  value=data.url, error=errors.url, classes=['control-medium']) }}
{{ super() }} {{ super() }}
   
{% endblock %} {% endblock %}
   
{% block package_metadata_author %} {% block package_metadata_author %}
{% endblock %} {% endblock %}
   
{% block package_metadata_fields_maintainer %} {% block package_metadata_fields_maintainer %}
{% endblock %} {% endblock %}
   
{% block dataset_fields %} {% block dataset_fields %}
{% if data.groups %} {% if data.groups %}
<div class="control-group"> <div class="control-group">
<label class="control-label">Groups/Themes</label> <label class="control-label">Groups/Themes</label>
<div class="controls"> <div class="controls">
{% for group in data.groups %} {% for group in data.groups %}
<label class="checkbox" for="field-group-{{ loop.index0 }}"> <label class="checkbox" for="field-group-{{ loop.index0 }}">
<input id="field-group-{{ loop.index0 }}" type="checkbox" name="groups__{{ loop.index0 }}__id" value="{{ group.id }}" checked="checked" /> <input id="field-group-{{ loop.index0 }}" type="checkbox" name="groups__{{ loop.index0 }}__id" value="{{ group.id }}" checked="checked" />
{{ group.title }} {{ group.title }}
</label> </label>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% set group_name = 'groups__%s__id' % data.groups|length %} {% 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'} %} {% 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) }} {{ form.input(group_name, label=_('Add Group/Theme'), id="field-group", value=data[group_name], classes=['control-medium'], attrs=group_attrs) }}
{% endblock %} {% endblock %}
  {% ckan_extends %}
 
  {% set url = h.url_for(controller='package', action='resource_read', id=pkg.name, resource_id=res.id) %}
  <li class="resource-item" vocab="http://www.w3.org/ns/dcat#"
  typeof="Distribution">
  {% block resource_item_title %}
  <a class="heading" href="{{ url }}" title="{{ res.name or res.description }}" property="title">
  {{ h.resource_display_name(res) | truncate(50) }}<span class="format-label" property="dc:format" data-format="{{ res.format.lower() or 'data' }}">{{ res.format }}</span>
  {{ h.popular('views', res.tracking_summary.total, min=10) }}
  </a>
  {% endblock %}
  <p class="description" property="description">
  {% if res.description %}
  {{ h.markdown_extract(res.description, extract_length=80) }}
  {% else %}
  <span class="empty">{{ _('No description for this resource') }}</span>
  {% endif %}
  </p>
  {% block resource_item_explore %}
  <div class="dropdown btn-group">
  <a href="#" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
  <i class="icon-share-alt"></i>
  {{ _('Explore') }}
  <span class="caret"></span>
  </a>
  <ul class="dropdown-menu">
  {% block resource_item_explore_links %}
  <li>
  <a href="{{ url }}" property="accessURL">
  {% if res.can_be_previewed %}
  <i class="icon-bar-chart"></i>
  {{ _('Preview') }}
  {% else %}
  <i class="icon-info-sign"></i>
  {{ _('More information') }}
  {% endif %}
  </a>
  </li>
  <li>
  <a href="{{ res.url }}" class="resource-url-analytics" target="_blank" property="accessURL">
  {% if res.can_be_previewed %}
  <i class="icon-download"></i>
  {{ _('Download') }}
  {% else %}
  <i class="icon-external-link"></i>
  {{ _('Go to resource') }}
  {% endif %}
  </a>
  </li>
  {% endblock %}
  </ul>
  </div>
  {% endblock %}
  </li>
  {% ckan_extends %}
 
  {% block primary_content_inner %}
  <h2 class="page-heading">{{ _('My Datasets') }}</h2>
  {% if h.get_user_datasets(c.user_dict) %}
  {% snippet 'snippets/package_list.html', packages=h.get_user_datasets(c.user_dict) %}
  {% else %}
  <p class="empty">
  You haven\'t created/edited any datasets.
  {% if h.check_access('package_create') %}
  {% link_for _('Create one now?'), controller='package', action='new' %}
  {% endif %}
  </p>
  {% endif %}
  {% endblock %}
 
  {% ckan_extends %}
 
 
  {% block primary_content_inner %}
  <h2 class="hide-heading">
  {% block page_heading %}{{ _('Datasets') }}{% endblock %}
  </h2>
  {% 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 %}
  <p class="empty">
  {{ _('You haven\'t created any datasets.') }}
  {% if h.check_access('package_create') %}
  {% link_for _('Create one now?'), controller='package', action='new' %}
  {% endif %}
  </p>
  {% else %}
  <p class="empty">
  {{ _('User hasn\'t created any datasets.') }}
  </p>
  {% endif %}
  {% endif %}
  {% endblock %}
  {% endblock %}
 
 
file:a/setup.py -> file:b/setup.py
from setuptools import setup, find_packages from setuptools import setup, find_packages
   
version = '0.1' version = '0.1'
   
setup( setup(
name='ckanext-datagovau', name='ckanext-datagovau',
version=version, version=version,
description='Extension for customising CKAN for data.gov.au', description='Extension for customising CKAN for data.gov.au',
long_description='', long_description='',
classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
keywords='', keywords='',
author='Alex Sadleir', author='Alex Sadleir',
author_email='alex.sadleir@linkdigital.com.au', author_email='alex.sadleir@linkdigital.com.au',
url='', url='',
license='', license='',
packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
namespace_packages=['ckanext', 'ckanext.datagovau'], namespace_packages=['ckanext', 'ckanext.datagovau'],
include_package_data=True, include_package_data=True,
zip_safe=False, zip_safe=False,
install_requires=[], install_requires=[],
entry_points=\ entry_points=\
""" """
[ckan.plugins] [ckan.plugins]
datagovau=ckanext.datagovau.plugin:ExampleIDatasetFormPlugin datagovau=ckanext.datagovau.plugin:DataGovAuPlugin
""", """,
) )