author | Pawel Solyga <Pawel.Solyga@gmail.com> |
Tue, 02 Dec 2008 17:14:18 +0000 | |
changeset 646 | 860e17e5118f |
parent 637 | 86ec079d8302 |
child 660 | 5a381b290691 |
permissions | -rw-r--r-- |
494
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
1 |
#!/usr/bin/python2.5 |
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
2 |
# |
31
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
3 |
# Copyright 2008 the Melange authors. |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
4 |
# |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
6 |
# you may not use this file except in compliance with the License. |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
7 |
# You may obtain a copy of the License at |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
8 |
# |
494
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
31
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
10 |
# |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
13 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
14 |
# See the License for the specific language governing permissions and |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
15 |
# limitations under the License. |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
16 |
|
637
86ec079d8302
Some docstring and missing blank lines fixes in soc.views.sitemap modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
614
diff
changeset
|
17 |
"""Module contains sidemap related functions. |
494
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
18 |
""" |
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
19 |
|
31
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
20 |
__authors__ = [ |
494
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
21 |
'"Sverre Rabbelier" <sverre@rabbelier.nl>', |
31
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
22 |
] |
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
23 |
|
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
24 |
|
494
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
25 |
SITEMAP = [] |
493
6976c4d8d0ac
Refactor the sidebar to use Django templates
Sverre Rabbelier <srabbelier@gmail.com>
parents:
284
diff
changeset
|
26 |
|
31
8b43c541afa7
First iteration of a "prototype" Melange app, along with an initial Person
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
27 |
|
494
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
28 |
def addPages(pages): |
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
29 |
global SITEMAP |
5e9c656a1b68
Refactored SiteMap to be generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
493
diff
changeset
|
30 |
SITEMAP += pages |
613
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
31 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
32 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
33 |
def getDjangoURLPatterns(params): |
637
86ec079d8302
Some docstring and missing blank lines fixes in soc.views.sitemap modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
614
diff
changeset
|
34 |
"""Retrieves a list of sidebar entries for this View. |
613
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
35 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
36 |
Params usage: |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
37 |
The params dictionary is passed to the getKeyFieldsPatterns |
637
86ec079d8302
Some docstring and missing blank lines fixes in soc.views.sitemap modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
614
diff
changeset
|
38 |
method, see it's docstring on how it is used. |
86ec079d8302
Some docstring and missing blank lines fixes in soc.views.sitemap modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
614
diff
changeset
|
39 |
|
613
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
40 |
django_patterns: The django_patterns value is returned directly |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
41 |
if it is non-False. |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
42 |
django_patterns_defaults: The dajngo_patterns_defaults value is |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
43 |
used to construct the url patterns. It is expected to be a |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
44 |
list of tuples. The tuples should contain an url, a module |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
45 |
name, and the name of the url. The name is used as the |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
46 |
page_name passed as keyword argument, but also as the name |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
47 |
by which the url is known to Django internally. |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
48 |
url_name: The url_name argument is passed as argument to each |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
49 |
url, together with the link_id pattern, the link_id core |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
50 |
pattern, and the key fields for this View. |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
51 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
52 |
Args: |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
53 |
params: a dict with params for this View |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
54 |
""" |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
55 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
56 |
# Return the found result |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
57 |
if params['django_patterns']: |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
58 |
return params['django_patterns'] |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
59 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
60 |
# Construct defaults manualy |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
61 |
default_patterns = params['django_patterns_defaults'] |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
62 |
key_fields_pattern = params['key_fields_pattern'] |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
63 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
64 |
patterns = [] |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
65 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
66 |
for url, module, name in default_patterns: |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
67 |
name = name % params |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
68 |
module = module % params['module_name'] |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
69 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
70 |
url = url % { |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
71 |
'url_name': params['url_name'], |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
72 |
'lnp': params['link_id_arg_pattern'], |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
73 |
'ulnp': params['link_id_pattern_core'], |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
74 |
'key_fields': key_fields_pattern, |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
75 |
} |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
76 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
77 |
kwargs = {'page_name': name} |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
78 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
79 |
item = (url, module, kwargs, name) |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
80 |
patterns.append(item) |
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
81 |
|
4880ffa9f3ba
Moved getDjangoURLPatterns to sitemap.sitemap
Sverre Rabbelier <srabbelier@gmail.com>
parents:
494
diff
changeset
|
82 |
return patterns |