app/soc/logic/site/map.py
author Sverre Rabbelier <srabbelier@gmail.com>
Sun, 12 Oct 2008 00:12:53 +0000
changeset 299 a1cc853a56e5
parent 298 c76a366c7ab4
child 305 972d28056d9d
permissions -rw-r--r--
Refactor nearly all the soc.logic code to use the Base class Instead of having a lot of duplicate code, this patch aims to reduce this duplication by introducing a Base abstraction. Patch by: Sverre Rabbelier Reviewed by: to-be-reviewed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     2
#
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     3
# Copyright 2008 the Melange authors.
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     4
#
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     8
#
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    10
#
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    15
# limitations under the License.
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    16
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    17
"""Site map information, used to generate sidebar menus, urlpatterns, etc.
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    18
"""
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    19
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    20
__authors__ = [
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    21
  '"Todd Larsen" <tlarsen@google.com>',
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    22
  ]
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    23
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    24
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    25
import copy
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    26
import re
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    27
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    28
from google.appengine.api import users
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    29
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    30
from django.conf.urls import defaults
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    31
from django.utils import datastructures
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    32
299
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
    33
import soc.logic
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
    34
import soc.logic.path_link_name
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
    35
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    36
from soc.logic.site import page
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    37
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
    38
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    39
# Home Page view
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    40
home = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    41
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    42
    r'^$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    43
    'soc.views.site.home.public'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    44
  'Google Open Source Programs',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    45
  # it should be obvious that every page comes from the home page
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    46
  in_breadcrumb=False)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    47
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    48
# User authentication view placeholders
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    49
# (these are not real Django views, but need to appear in menus, etc.)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    50
user_signin = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    51
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    52
    # not a real Django URL regex, just a unique placeholder
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    53
    users.create_login_url('/'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    54
    # no view, since App Engine handles this page
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    55
    # (this page will not be placed in urlpatterns)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    56
    None,
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    57
    # name is alternate string for view when it is not unique
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    58
    name='user-sign-in'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    59
  'User (sign in)',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    60
  link_url=users.create_login_url('/'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    61
  parent=home)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    62
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    63
user_signout = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    64
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    65
    # not a real Django URL regex, just a unique placeholder
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    66
    users.create_logout_url('/'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    67
    # no view, since App Engine handles this page
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    68
    # (this page will not be placed in urlpatterns)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    69
    None,
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    70
    # name is alternate string for view when it is not unique
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    71
    name='user-sign-out'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    72
  'User (sign out)',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    73
  link_url=users.create_logout_url('/'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    74
  parent=home)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    75
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    76
# User Profile views
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    77
user_create = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    78
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    79
    r'^user/profile$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    80
    'soc.views.user.profile.create'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    81
  'User: Create a New Profile',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    82
  short_name='Site-wide User Profile',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    83
  parent=user_signout)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    84
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    85
user_edit = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    86
  page.Url(
299
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
    87
    r'^user/profile/%s$' % soc.logic.path_link_name.LINKNAME_ARG_PATTERN,
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    88
    'soc.views.user.profile.edit'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    89
  'User: Modify Existing User Profile',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    90
  parent=user_signout)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    91
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    92
# Site Home Page views
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    93
site_home = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    94
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    95
    r'^site/home$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    96
    'soc.views.site.home.public'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    97
  'Google Open Source Programs',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    98
  # it should be obvious that every page comes from the home page
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
    99
  in_breadcrumb=False)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   100
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   101
site_home_edit = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   102
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   103
    r'^site/home/edit$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   104
    'soc.views.site.home.edit'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   105
  'Site: Settings',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   106
  short_name='Site Settings',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   107
  parent=home)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   108
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   109
# Site User Profile views
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   110
site_user_lookup = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   111
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   112
    r'^site/user/lookup$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   113
    'soc.views.site.user.profile.lookup'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   114
  'Site: Look Up an Existing User',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   115
  short_name='Look Up Site User',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   116
  parent=site_home_edit)
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
   117
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   118
site_user_create = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   119
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   120
    r'^site/user/profile$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   121
    'soc.views.site.user.profile.create'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   122
  'Site: Create New User Profile',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   123
  short_name='Create Site User',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   124
  parent=site_home_edit)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   125
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   126
site_user_edit = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   127
  page.Url(
299
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
   128
    r'^site/user/profile/%s$' % soc.logic.path_link_name.LINKNAME_ARG_PATTERN,
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   129
    'soc.views.site.user.profile.edit'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   130
  'Site: Modify Existing User Profile',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   131
  short_name='Modify Site User',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   132
  parent=site_home_edit)
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
   133
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   134
site_user_list = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   135
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   136
    r'^site/user/list$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   137
    'soc.views.site.user.list.all'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   138
  'Site: List of Users',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   139
  short_name='List Site Users',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   140
  parent=site_home_edit)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   141
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   142
# Document views
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   143
docs_show = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   144
  page.Url(
299
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
   145
    r'^docs/show/%s$' % soc.logic.path_link_name.PATH_LINKNAME_ARGS_PATTERN,
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   146
    'soc.views.docs.show.public'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   147
  'Show Document',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   148
  parent=home)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   149
 
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   150
# Site Document views
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   151
site_docs_create = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   152
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   153
    r'^site/docs/edit$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   154
    'soc.views.site.docs.edit.create'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   155
  'Site: Create New Document',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   156
  'Create new Site Document',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   157
  parent=site_home_edit)
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
   158
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   159
site_docs_edit = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   160
  page.Url(
299
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
   161
    r'^site/docs/edit/%s$' % soc.logic.path_link_name.PATH_LINKNAME_ARGS_PATTERN,
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   162
    'soc.views.site.docs.edit.edit'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   163
  'Site: Modify Existing Document',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   164
  short_name='Modify Site Document',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   165
  parent=site_home_edit)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   166
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   167
site_docs_list = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   168
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   169
    r'^site/docs/list$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   170
    'soc.views.site.docs.list.all'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   171
  'Site: List of Documents',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   172
  short_name='List Site Documents',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   173
  parent=site_home_edit)
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
   174
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   175
# Sponsor Group public view
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   176
sponsor_profile = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   177
  page.Url(
299
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
   178
    r'^sponsor/profile/%s' % soc.logic.path_link_name.LINKNAME_ARG_PATTERN,
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   179
    'soc.views.sponsor.profile.public'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   180
  'Public Profile',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   181
  parent=home)
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   182
    
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   183
# Sponsor Group Site views
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   184
site_sponsor_create = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   185
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   186
    r'^site/sponsor/profile$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   187
    'soc.views.site.sponsor.profile.create'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   188
  'Site: Create New Sponsor',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   189
  short_name='Create New Site Sponsor',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   190
  parent=site_home_edit)
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
   191
292
1cece5192e26 Enable recently commited delete Sponsor request handler (added to map.py) and Delete button in Sponsor edit view. Still missing "Are you sure ?" question box.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 282
diff changeset
   192
site_sponsor_delete = page.Page(
1cece5192e26 Enable recently commited delete Sponsor request handler (added to map.py) and Delete button in Sponsor edit view. Still missing "Are you sure ?" question box.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 282
diff changeset
   193
  page.Url(
299
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
   194
    r'^site/sponsor/profile/%s/delete$' % soc.logic.path_link_name.LINKNAME_ARG_PATTERN,
292
1cece5192e26 Enable recently commited delete Sponsor request handler (added to map.py) and Delete button in Sponsor edit view. Still missing "Are you sure ?" question box.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 282
diff changeset
   195
    'soc.views.site.sponsor.profile.delete'),
1cece5192e26 Enable recently commited delete Sponsor request handler (added to map.py) and Delete button in Sponsor edit view. Still missing "Are you sure ?" question box.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 282
diff changeset
   196
  'Site: Delete Existing Sponsor',
1cece5192e26 Enable recently commited delete Sponsor request handler (added to map.py) and Delete button in Sponsor edit view. Still missing "Are you sure ?" question box.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 282
diff changeset
   197
  short_name='Delete Site Sponsor',
1cece5192e26 Enable recently commited delete Sponsor request handler (added to map.py) and Delete button in Sponsor edit view. Still missing "Are you sure ?" question box.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 282
diff changeset
   198
  parent=site_home_edit)
1cece5192e26 Enable recently commited delete Sponsor request handler (added to map.py) and Delete button in Sponsor edit view. Still missing "Are you sure ?" question box.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 282
diff changeset
   199
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   200
site_sponsor_edit = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   201
  page.Url(
299
a1cc853a56e5 Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents: 298
diff changeset
   202
    r'^site/sponsor/profile/%s' % soc.logic.path_link_name.LINKNAME_ARG_PATTERN,
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   203
    'soc.views.site.sponsor.profile.edit'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   204
  'Site: Modify Existing Sponsor',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   205
  short_name='Modify Site Sponsor',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   206
  parent=site_home_edit)
292
1cece5192e26 Enable recently commited delete Sponsor request handler (added to map.py) and Delete button in Sponsor edit view. Still missing "Are you sure ?" question box.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 282
diff changeset
   207
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   208
site_sponsor_list = page.Page(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   209
  page.Url(
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   210
    r'^site/sponsor/list$',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   211
    'soc.views.site.sponsor.list.all'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   212
  'Site: List of Sponsors',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   213
  short_name='List Site Sponsors',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   214
  parent=site_home_edit)
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
   215
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
   216
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   217
# these are not really used...
298
c76a366c7ab4 Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents: 292
diff changeset
   218
#    (r'^org/profile/(?P<program>ghop[_0-9a-z]+)/(?P<link_name>[_0-9a-z]+)/$',
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   219
#     'soc.views.person.profile.edit',
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   220
#     {'template': 'ghop/person/profile/edit.html'}),
298
c76a366c7ab4 Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents: 292
diff changeset
   221
#    (r'^org/profile/(?P<program>[_0-9a-z]+)/(?P<link_name>[_0-9a-z]+)/$',
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   222
#     'soc.views.person.profile.edit'),
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   223
192
f6bf679dab26 Simple MenuItem and Menu classes for keeping track of ordered menus.
Todd Larsen <tlarsen@google.com>
parents:
diff changeset
   224
    
282
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   225
ROOT_PAGES = [
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   226
  # /, first level of the sidebar menu, excluded from breadcrumbs
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   227
  home,
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   228
  
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   229
  # alternate view of /, no menu presence
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   230
  site_home,
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   231
]
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   232
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   233
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   234
def getDjangoUrlPatterns(pages=ROOT_PAGES):
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   235
  """Returns Django urlpatterns derived from the site map Pages.
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   236
  
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   237
  Args:
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   238
    pages: a list of page.Page objects from which to generate urlpatterns
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   239
      (from them and from their child Pages); default is ROOT_PAGES
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   240
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   241
  Raises:
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   242
    KeyError if more than one Page has the same urlpattern.
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   243
    
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   244
    TODO(tlarsen): this probably does not work correctly, currently, since
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   245
    page.Page.makeDjangoUrls() returns a list, and this routine is
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   246
    combining lists from potentially multiple page hierarchies.  Each list
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   247
    might have a urlpattern that the other contains, but this won't be
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   248
    detected by the current code (will Django catch this?).  This really
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   249
    needs to be detected earlier via a global Page dictionary.
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   250
  """
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   251
  urlpatterns = ['']
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   252
  
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   253
  for page in pages:
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   254
    urlpatterns.extend(page.makeDjangoUrls())
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   255
600e0a9bfa06 A site layout ("site map") of the web application, including URL regular
Todd Larsen <tlarsen@google.com>
parents: 196
diff changeset
   256
  return defaults.patterns(*urlpatterns)