author | Todd Larsen <tlarsen@google.com> |
Thu, 02 Oct 2008 20:22:15 +0000 | |
changeset 262 | 52a42831d9d6 |
parent 141 | e120c24b89e2 |
child 270 | 7dd6d8347b56 |
permissions | -rw-r--r-- |
119
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.5 |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
2 |
# |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
3 |
# Copyright 2008 the Melange authors. |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
4 |
# |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
6 |
# you may not use this file except in compliance with the License. |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
7 |
# You may obtain a copy of the License at |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
8 |
# |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
10 |
# |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
13 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
14 |
# See the License for the specific language governing permissions and |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
15 |
# limitations under the License. |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
16 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
17 |
"""Simple views that depend entirely on the template and context. |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
18 |
""" |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
19 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
20 |
__authors__ = [ |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
21 |
'"Todd Larsen" <tlarsen@google.com>', |
141
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
22 |
'"Pawel Solyga" <pawel.solyga@gmail.com>', |
119
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
23 |
] |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
24 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
25 |
|
139
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
26 |
from django.utils.translation import ugettext_lazy |
119
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
27 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
28 |
from soc.logic import out_of_band |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
29 |
from soc.logic.site import id_user |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
30 |
from soc.views.helpers import response_helpers |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
31 |
from soc.views.helpers import template_helpers |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
32 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
33 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
34 |
def templateWithLinkName(request, |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
35 |
template='soc/base.html', linkname=None, |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
36 |
context=None): |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
37 |
"""A simple template view that expects a linkname extracted from the URL. |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
38 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
39 |
Args: |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
40 |
request: the standard Django HTTP request object |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
41 |
template: the template to use for rendering the view (or a search list |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
42 |
of templates) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
43 |
linkname: a site-unique "linkname" (usually extracted from the URL) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
44 |
context: the context dict supplied to the template, which is modified |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
45 |
(so supply a copy if such modification is not acceptable) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
46 |
linkname: the linkname parameter is added to the context |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
47 |
linkname_user: if the linkname exists for a User, that User |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
48 |
is added to the context |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
49 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
50 |
Returns: |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
51 |
A subclass of django.http.HttpResponse containing the generated page. |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
52 |
""" |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
53 |
context['linkname'] = linkname |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
54 |
context = response_helpers.getUniversalContext(request, context=context) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
55 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
56 |
try: |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
57 |
context['linkname_user'] = id_user.getUserIfLinkName(linkname) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
58 |
except out_of_band.ErrorResponse, error: |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
59 |
return errorResponse(request, error, template, context) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
60 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
61 |
return response_helpers.respond(request, template, context) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
62 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
63 |
|
122
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
64 |
def public(request, template, linkname, context): |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
65 |
"""A convenience wrapper around templateWithLinkName() using 'public.html'. |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
66 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
67 |
Args: |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
68 |
request, linkname, context: see templateWithLinkName() |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
69 |
template: the "sibling" template (or a search list of such templates) |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
70 |
from which to construct the public.html template name (or names) |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
71 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
72 |
Returns: |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
73 |
A subclass of django.http.HttpResponse containing the generated page. |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
74 |
""" |
123
45d10b6af158
Fix an overlooked cut-and-paste error.
Todd Larsen <tlarsen@google.com>
parents:
122
diff
changeset
|
75 |
return templateWithLinkName( |
122
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
76 |
request, linkname=linkname, context=context, |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
77 |
template=template_helpers.makeSiblingTemplatesList( |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
78 |
template, 'public.html')) |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
79 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
80 |
|
119
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
81 |
DEF_ERROR_TMPL = 'soc/error.html' |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
82 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
83 |
def errorResponse(request, error, template, context): |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
84 |
"""Displays an error page for an out_of_band.ErrorResponse exception. |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
85 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
86 |
Args: |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
87 |
request: the standard Django HTTP request object |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
88 |
error: an out_of_band.ErrorResponse exception |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
89 |
template: the "sibling" template (or a search list of such templates) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
90 |
from which to construct the error.html template name (or names) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
91 |
context: the context dict supplied to the template, which is modified |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
92 |
(so supply a copy if such modification is not acceptable) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
93 |
error_message: the error message string from error.message |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
94 |
error_status: error.response_args['status'], or None if a status code |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
95 |
was not supplied to the ErrorResponse |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
96 |
""" |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
97 |
context = response_helpers.getUniversalContext(request, context=context) |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
98 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
99 |
# make a list of possible "sibling" templates, then append a default |
125
155f43a0fa68
An emerging pattern with makeSiblingTemplatesList() is that views calling that
Todd Larsen <tlarsen@google.com>
parents:
123
diff
changeset
|
100 |
error_templates = template_helpers.makeSiblingTemplatesList( |
155f43a0fa68
An emerging pattern with makeSiblingTemplatesList() is that views calling that
Todd Larsen <tlarsen@google.com>
parents:
123
diff
changeset
|
101 |
template, 'error.html', default_template=DEF_ERROR_TMPL) |
119
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
102 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
103 |
context['error_status'] = error.response_args.get('status') |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
104 |
context['error_message'] = error.message |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
105 |
|
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
106 |
return response_helpers.respond(request, error_templates, context=context, |
50d8d58dcd7c
Add soc.views.simple containing (initially) two simple template views.
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
107 |
response_args=error.response_args) |
122
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
108 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
109 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
110 |
DEF_LOGIN_TMPL = 'soc/login.html' |
139
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
111 |
DEF_LOGIN_MSG_FMT = ugettext_lazy( |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
112 |
'Please <a href="%(sign_in)s">sign in</a> to continue.') |
122
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
113 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
114 |
def requestLogin(request, template, context, login_message_fmt=None): |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
115 |
"""Displays a login request page with custom message and login link. |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
116 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
117 |
Args: |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
118 |
request: the standard Django HTTP request object |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
119 |
template: the "sibling" template (or a search list of such templates) |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
120 |
from which to construct the login.html template name (or names) |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
121 |
login_message_fmt: a custom message format string used to create a |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
122 |
message displayed on the login page; the format string can contain |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
123 |
named format specifiers for any of the keys in context, but should at |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
124 |
least contain %(sign_in)s |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
125 |
context: the context dict supplied to the template, which is modified |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
126 |
(so supply a copy if such modification is not acceptable); |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
127 |
login_message: the caller can completely construct the message supplied |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
128 |
to the login template in lieu of using login_message_fmt |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
129 |
""" |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
130 |
context = response_helpers.getUniversalContext(request, context=context) |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
131 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
132 |
# make a list of possible "sibling" templates, then append a default |
125
155f43a0fa68
An emerging pattern with makeSiblingTemplatesList() is that views calling that
Todd Larsen <tlarsen@google.com>
parents:
123
diff
changeset
|
133 |
login_templates = template_helpers.makeSiblingTemplatesList( |
155f43a0fa68
An emerging pattern with makeSiblingTemplatesList() is that views calling that
Todd Larsen <tlarsen@google.com>
parents:
123
diff
changeset
|
134 |
template, 'login.html', default_template=DEF_LOGIN_TMPL) |
122
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
135 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
136 |
if not context.get('login_message'): |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
137 |
if not login_message_fmt: |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
138 |
login_message_fmt = DEF_LOGIN_MSG_FMT |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
139 |
context['login_message'] = login_message_fmt % context |
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
140 |
|
95d0d954fe0b
Add a public() convenience wrapper around templateWithLinkName() for the common
Todd Larsen <tlarsen@google.com>
parents:
119
diff
changeset
|
141 |
return response_helpers.respond(request, login_templates, context=context) |
139
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
142 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
143 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
144 |
def getAltResponseIfNotLoggedIn(request, context=None, |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
145 |
template=DEF_LOGIN_TMPL, id=None, |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
146 |
login_message_fmt=DEF_LOGIN_MSG_FMT): |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
147 |
"""Returns an alternate HTTP response if Google Account is not logged in. |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
148 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
149 |
Args: |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
150 |
request: the standard django request object |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
151 |
context: the context supplied to the template (implements dict) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
152 |
template: the "sibling" template (or a search list of such templates) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
153 |
from which to construct the public.html template name (or names) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
154 |
id: a Google Account (users.User) object, or None, in which case |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
155 |
the current logged-in user is used |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
156 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
157 |
Returns: |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
158 |
None if id is logged in, or a subclass of django.http.HttpResponse |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
159 |
which contains the alternate response that should be returned by the |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
160 |
calling view. |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
161 |
""" |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
162 |
id = id_user.getIdIfMissing(id) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
163 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
164 |
if id: |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
165 |
# a Google Account is logged in, so no need to ask user to sign in |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
166 |
return None |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
167 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
168 |
# if missing, create default template context for use with any templates |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
169 |
context = response_helpers.getUniversalContext(request, context=context) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
170 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
171 |
return requestLogin(request, template, context, |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
172 |
login_message_fmt=login_message_fmt) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
173 |
|
141
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
174 |
DEF_NO_USER_LOGIN_MSG_FMT = ugettext_lazy( |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
175 |
'Please create <a href="/user/profile">User Profile</a>' |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
176 |
' in order to view this page.') |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
177 |
|
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
178 |
def getAltResponseIfNotUser(request, context=None, |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
179 |
template=DEF_LOGIN_TMPL, id=None, |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
180 |
login_message_fmt=DEF_LOGIN_MSG_FMT): |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
181 |
"""Returns an alternate HTTP response if Google Account has no User entity. |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
182 |
|
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
183 |
Args: |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
184 |
request: the standard django request object |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
185 |
context: the context supplied to the template (implements dict) |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
186 |
template: the "sibling" template (or a search list of such templates) |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
187 |
from which to construct the public.html template name (or names) |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
188 |
id: a Google Account (users.User) object, or None, in which case |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
189 |
the current logged-in user is used |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
190 |
|
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
191 |
Returns: |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
192 |
None if User exists for id, or a subclass of django.http.HttpResponse |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
193 |
which contains the alternate response that should be returned by the |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
194 |
calling view. |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
195 |
""" |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
196 |
user_exist = id_user.isIdUser(id) |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
197 |
|
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
198 |
if user_exist: |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
199 |
return None |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
200 |
|
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
201 |
# if missing, create default template context for use with any templates |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
202 |
context = response_helpers.getUniversalContext(request, context=context) |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
203 |
|
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
204 |
return requestLogin(request, template, context, |
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
205 |
login_message_fmt=DEF_NO_USER_LOGIN_MSG_FMT) |
139
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
206 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
207 |
DEF_DEV_LOGIN_MSG_FMT = ugettext_lazy( |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
208 |
'Please <a href="%(sign_in)s">sign in</a>' |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
209 |
' as a site developer to view this page.') |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
210 |
|
141
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
211 |
DEF_DEV_LOGOUT_LOGIN_MSG_FMT = ugettext_lazy( |
139
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
212 |
'Please <a href="%(sign_out)s">sign out</a>' |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
213 |
' and <a href="%(sign_in)s">sign in</a>' |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
214 |
' again as a site developer to view this page.') |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
215 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
216 |
def getAltResponseIfNotDeveloper(request, context=None, |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
217 |
template=DEF_LOGIN_TMPL, id=None): |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
218 |
"""Returns an alternate HTTP response if Google Account is not a Developer. |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
219 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
220 |
Args: |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
221 |
request: the standard django request object |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
222 |
context: the context supplied to the template (implements dict) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
223 |
template: the "sibling" template (or a search list of such templates) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
224 |
from which to construct the public.html template name (or names) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
225 |
id: a Google Account (users.User) object, or None, in which case |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
226 |
the current logged-in user is used |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
227 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
228 |
Returns: |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
229 |
None if id is logged in and logged-in user is a Developer, or a |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
230 |
subclass of django.http.HttpResponse which contains the alternate |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
231 |
response that should be returned by the calling view. |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
232 |
""" |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
233 |
id = id_user.getIdIfMissing(id) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
234 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
235 |
# if missing, create default template context for use with any templates |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
236 |
context = response_helpers.getUniversalContext(request, context=context) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
237 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
238 |
if not id: |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
239 |
return requestLogin(request, template, context, |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
240 |
login_message_fmt=DEF_DEV_LOGIN_MSG_FMT) |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
241 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
242 |
if not id_user.isIdDeveloper(id=id): |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
243 |
return requestLogin(request, template, context, |
141
e120c24b89e2
Added Melange front page edit view where you can change title, content, feed url. Created SiteSettings and Document models and some logic for them. Added isFeedURLValid function in soc/logic/feed.py. Created some functions for handling datastore updates of different kinds of Models (soc/logic/model.py). Fixed some typos and too long lines of code.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
139
diff
changeset
|
244 |
login_message_fmt=DEF_DEV_LOGOUT_LOGIN_MSG_FMT) |
139
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
245 |
|
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
246 |
# Google Account is logged in and is a Developer, so no need for sign in |
93a9a22a4c38
Add getAltResponseIfNotLoggedIn() and getAltResponseIfNotDeveloper() simple
Todd Larsen <tlarsen@google.com>
parents:
125
diff
changeset
|
247 |
return None |