Implementation of an IGroupForm
[ckanext-datagovau.git] / ckanext / example / forms.py
blob:a/ckanext/example/forms.py -> blob:b/ckanext/example/forms.py
--- 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],