initial commit
[ckanext-datagovau.git] / ckanext / controller.py





















































1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import sys
from ckan.lib.base import request
from ckan.lib.base import c, g, h
from ckan.lib.base import model
from ckan.lib.base import render
from ckan.lib.base import _
 
from ckan.lib.navl.validators import not_empty
 
from ckan.controllers.user import UserController
 
 
class CustomUserController(UserController):
    """This controller is an example to show how you might extend or
    override core CKAN behaviour from an extension package.
 
    It overrides 2 method hooks which the base class uses to create the
    validation schema for the creation and editing of a user; to require
    that a fullname is given.
    """
 
    new_user_form = 'user/register.html'
 
    def _add_requires_full_name_to_schema(self, schema):
        """
        Helper function that modifies the fullname validation on an existing schema
        """
        schema['fullname'] = [not_empty, unicode]
 
    def _new_form_to_db_schema(self):
        """
        Defines a custom schema that requires a full name to be supplied
 
        This method is a hook that the base class calls for the validation
        schema to use when creating a new user.
        """
        schema = super(CustomUserController, self)._new_form_to_db_schema()
        self._add_requires_full_name_to_schema(schema)
        return schema
 
    def _edit_form_to_db_schema(self):
        """
        Defines a custom schema that requires a full name cannot be removed
        when editing the user.
 
        This method is a hook that the base class calls for the validation
        schema to use when editing an exiting user.
        """
        schema = super(CustomUserController, self)._edit_form_to_db_schema()
        self._add_requires_full_name_to_schema(schema)
        return schema