Adding ID tags to the new dataset template so that the anchor URLs work properly
Adding ID tags to the new dataset template so that the anchor URLs work properly

--- a/ckanext/example/forms.py
+++ b/ckanext/example/forms.py
@@ -7,6 +7,7 @@
 from ckan.logic import NotFound, NotAuthorized, ValidationError
 from ckan.logic import tuplize_dict, clean_dict, parse_params
 import ckan.logic.schema as default_schema
+from ckan.logic.schema import group_form_schema
 from ckan.logic.schema import package_form_schema
 import ckan.logic.validators as val
 from ckan.lib.base import BaseController, render, c, model, abort, request
@@ -16,7 +17,7 @@
 from ckan.lib.navl.dictization_functions import Invalid
 from ckan.lib.navl.dictization_functions import validate, missing
 from ckan.lib.navl.dictization_functions import DataError, flatten_dict, unflatten
-from ckan.plugins import IDatasetForm, IConfigurer
+from ckan.plugins import IDatasetForm, IGroupForm, IConfigurer
 from ckan.plugins import implements, SingletonPlugin
 
 from ckan.lib.navl.validators import (ignore_missing,
@@ -65,6 +66,19 @@
         """        
         return 'forms/group_form.html'
 
+    def group_types(self):
+        """
+        Returns an iterable of group type strings.
+
+        If a request involving a group of one of those types is made, then
+        this plugin instance will be delegated to.
+
+        There must only be one plugin registered to each group type.  Any
+        attempts to register more than one plugin instance to a given group
+        type will raise an exception at startup.
+        """
+        return ["example_dataset_group"]
+
     def is_fallback(self):
         """
         Returns true iff this provides the fallback behaviour, when no other
@@ -75,7 +89,32 @@
         """
         return False                
                 
-                
+    #
+    def form_to_db_schema(self):
+        """
+        Returns the schema for mapping group data from a form to a format
+        suitable for the database.
+        """
+        return group_form_schema()
+
+    def db_to_form_schema(self):
+        """
+        Returns the schema for mapping group data from the database into a
+        format suitable for the form (optional)
+        """
+        return {}
+        
+    def check_data_dict(self, data_dict):
+        """
+        Check if the return data is correct.
+
+        raise a DataError if not.
+        """
+
+    def setup_template_variables(self, context, data_dict):
+        """
+        Add variables to c just prior to the template being rendered.
+        """                
                 
 
 class ExampleDatasetForm(SingletonPlugin):
@@ -161,7 +200,6 @@
         schema = {
             'title': [not_empty, unicode],
             'name': [not_empty, unicode, val.name_validator, val.package_name_validator],
-            'notes': [not_empty, unicode],
 
             'date_released': [date_to_db, convert_to_extras],
             'date_updated': [date_to_db, convert_to_extras],

--- a/ckanext/example/theme/templates/forms/dataset_form.html
+++ b/ckanext/example/theme/templates/forms/dataset_form.html
@@ -12,7 +12,7 @@
 </ul>
 </div>
 
-<fieldset>
+<fieldset id='section-basic-information'>
   <legend>Basic information</legend>
   <dl>
     <dt><label class="field_req" for="title">Title *</label></dt>
@@ -37,7 +37,7 @@
   </dl>
 </fieldset>
 
-<fieldset>
+<fieldset id='section-further-information'>
   <legend>Details</legend>
   <dl>
     <dt><label class="field_opt" for="date_released">Date released</label></dt>
@@ -95,7 +95,7 @@
     <dd class="field_error" py:if="errors.get('taxonomy_url', '')">${errors.get('taxonomy_url', '')}</dd>
   </dl>
   </fieldset>
-<fieldset>
+<fieldset id='section-resources'>
   <legend>Resources</legend>
   <table class="flexitable">
     <thead>
@@ -125,7 +125,7 @@
   <div class="field_error" py:if="errors.get('resources', '')">Package resource(s) incomplete.</div>
 </fieldset>
 
-<fieldset>
+<fieldset id='section-more-details'>
   <legend>More details</legend>
   <dl>
     <dt><label class="field_req" for="published_by">Published by *</label></dt>

--- a/ckanext/example/theme/templates/forms/group_form.html
+++ b/ckanext/example/theme/templates/forms/group_form.html
@@ -14,7 +14,7 @@
 
 <fieldset id="basic-information">
   <dl>
-    <dt><label class="field_opt" for="name">Title</label></dt>
+    <dt><label class="field_opt" for="name">The Title</label></dt>
     <dd><input class="js-title" id="title" name="title" type="text" value="${data.get('title', '')}"/></dd>
 
     <dt><label class="field_opt" for="title">Url</label></dt>