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

"""Django page CMS urlconf registry.""" 

 

from django.utils.translation import ugettext as _ 

 

class UrlconfAlreadyRegistered(Exception): 

    """ 

    An attempt was made to register a urlconf for Django page CMS more 

    than once. 

    """ 

 

class UrlconfNotFound(Exception): 

    """ 

    The requested urlconf was not found 

    """ 

 

registry = [] 

 

def get_choices(): 

    choices = [('', 'No delegation')] 

    for reg in registry: 

        if reg[2]: 

            label = reg[2] 

        else: 

            label = reg[0] 

        choices.append((reg[0], label)) 

    return choices 

 

def register_urlconf(name, urlconf, label=None): 

    for urlconf_tuple in registry: 

        if urlconf_tuple[0] == name: 

            raise UrlconfAlreadyRegistered( 

                _('The urlconf %s has already been registered.') % name) 

    urlconf_tuple = (name, urlconf, label, urlconf) 

    registry.append(urlconf_tuple) 

 

def get_urlconf(name): 

    for urlconf_tuple in registry: 

        if urlconf_tuple[0] == name: 

            return urlconf_tuple[1] 

    raise UrlconfNotFound( 

        _('The urlconf %s has not been registered.') % name)