author | Pawel Solyga <Pawel.Solyga@gmail.com> |
Tue, 14 Oct 2008 16:10:07 +0000 | |
changeset 324 | 05e21c089be6 |
parent 321 | f17ecd21ca33 |
child 325 | 1469eff8f59e |
permissions | -rw-r--r-- |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.5 |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
2 |
# |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
3 |
# Copyright 2008 the Melange authors. |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
4 |
# |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
6 |
# you may not use this file except in compliance with the License. |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
7 |
# You may obtain a copy of the License at |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
8 |
# |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
10 |
# |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
13 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
14 |
# See the License for the specific language governing permissions and |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
15 |
# limitations under the License. |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
16 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
17 |
"""Developer views for editing and examining User profiles. |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
18 |
""" |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
19 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
20 |
__authors__ = [ |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
21 |
'"Todd Larsen" <tlarsen@google.com>', |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
22 |
] |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
23 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
24 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
25 |
from google.appengine.api import users |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
26 |
|
324
05e21c089be6
Add missing import in soc/views/site/sponsor/list.py which caused exception when app was deployed and first site you visited was "List Site Sponsors". Update files according to recent django update and django backwards incompatibility (for example newforms is changed to forms).
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
321
diff
changeset
|
27 |
from django import forms |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
28 |
from django import http |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
29 |
from django.utils.translation import ugettext_lazy |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
30 |
|
309
7190b224c701
Made the existing code use the new soc.logic.models
Sverre Rabbelier <srabbelier@gmail.com>
parents:
305
diff
changeset
|
31 |
from soc.logic import models |
316
9efdc7bc3565
Add missing blank lines between imports and sort all of the imports.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
311
diff
changeset
|
32 |
from soc.logic import out_of_band |
249
325fb70c61a9
Replace common module with validate module. Move validation function from feed module to validate module and remove feed.py. Correct any usage of validation functions from common and feed modules into validate module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
245
diff
changeset
|
33 |
from soc.logic import validate |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
34 |
from soc.logic.site import id_user |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
35 |
from soc.views import simple |
268
af1d7f48b361
Move helpers/list.py to helper/lists.py to avoid conflict with built-in type
Todd Larsen <tlarsen@google.com>
parents:
267
diff
changeset
|
36 |
from soc.views import helper |
303
4f1bb54ddae5
Moved soc/logic/helper/access to soc/views/helper/access
Sverre Rabbelier <srabbelier@gmail.com>
parents:
299
diff
changeset
|
37 |
from soc.views.helper import access |
316
9efdc7bc3565
Add missing blank lines between imports and sort all of the imports.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
311
diff
changeset
|
38 |
from soc.views.user import profile |
9efdc7bc3565
Add missing blank lines between imports and sort all of the imports.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
311
diff
changeset
|
39 |
|
9efdc7bc3565
Add missing blank lines between imports and sort all of the imports.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
311
diff
changeset
|
40 |
import soc.logic |
9efdc7bc3565
Add missing blank lines between imports and sort all of the imports.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
311
diff
changeset
|
41 |
import soc.models.user |
274
56e1c1721299
Move helpers/forms_helpers.py to helper/forms.py.
Todd Larsen <tlarsen@google.com>
parents:
272
diff
changeset
|
42 |
import soc.views.helper.forms |
268
af1d7f48b361
Move helpers/list.py to helper/lists.py to avoid conflict with built-in type
Todd Larsen <tlarsen@google.com>
parents:
267
diff
changeset
|
43 |
import soc.views.helper.lists |
269
0f1acc4c3e1e
Move helpers/request.py to helper/requests.py to avoid conflict with common
Todd Larsen <tlarsen@google.com>
parents:
268
diff
changeset
|
44 |
import soc.views.helper.requests |
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
45 |
import soc.views.helper.responses |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
46 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
47 |
|
274
56e1c1721299
Move helpers/forms_helpers.py to helper/forms.py.
Todd Larsen <tlarsen@google.com>
parents:
272
diff
changeset
|
48 |
class LookupForm(helper.forms.DbModelForm): |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
49 |
"""Django form displayed for a Developer to look up a User. |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
50 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
51 |
This form is manually specified, instead of using |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
52 |
model = soc.models.user.User |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
53 |
in the Meta class, because the form behavior is unusual and normally |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
54 |
required Properties of the User model need to sometimes be omitted. |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
55 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
56 |
Also, this form only permits entry and editing of some of the User entity |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
57 |
Properties, not all of them. |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
58 |
""" |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
59 |
id = forms.EmailField(required=False, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
60 |
label=soc.models.user.User.id.verbose_name, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
61 |
help_text=soc.models.user.User.id.help_text) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
62 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
63 |
link_name = forms.CharField(required=False, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
64 |
label=soc.models.user.User.link_name.verbose_name, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
65 |
help_text=soc.models.user.User.link_name.help_text) |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
66 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
67 |
class Meta: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
68 |
model = None |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
69 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
70 |
def clean_link_name(self): |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
71 |
link_name = self.cleaned_data.get('link_name') |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
72 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
73 |
if not link_name: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
74 |
# link name not supplied (which is OK), so do not try to validate it |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
75 |
return None |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
76 |
|
249
325fb70c61a9
Replace common module with validate module. Move validation function from feed module to validate module and remove feed.py. Correct any usage of validation functions from common and feed modules into validate module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
245
diff
changeset
|
77 |
if not validate.isLinkNameFormatValid(link_name): |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
78 |
raise forms.ValidationError('This link name is in wrong format.') |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
79 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
80 |
return link_name |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
81 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
82 |
def clean_id(self): |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
83 |
email = self.cleaned_data.get('id') |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
84 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
85 |
if not email: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
86 |
# email not supplied (which is OK), so do not try to convert it |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
87 |
return None |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
88 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
89 |
try: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
90 |
return users.User(email=email) |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
91 |
except users.UserNotFoundError: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
92 |
raise forms.ValidationError('Account not found.') |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
93 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
94 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
95 |
DEF_SITE_USER_PROFILE_LOOKUP_TMPL = 'soc/site/user/profile/lookup.html' |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
96 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
97 |
def lookup(request, template=DEF_SITE_USER_PROFILE_LOOKUP_TMPL): |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
98 |
"""View for a Developer to look up a User Model entity. |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
99 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
100 |
Args: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
101 |
request: the standard django request object |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
102 |
template: the "sibling" template (or a search list of such templates) |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
103 |
from which to construct the public.html template name (or names) |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
104 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
105 |
Returns: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
106 |
A subclass of django.http.HttpResponse which either contains the form to |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
107 |
be filled out, or a redirect to the correct view in the interface. |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
108 |
""" |
294
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
109 |
|
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
110 |
try: |
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
111 |
access.checkIsDeveloper(request) |
303
4f1bb54ddae5
Moved soc/logic/helper/access to soc/views/helper/access
Sverre Rabbelier <srabbelier@gmail.com>
parents:
299
diff
changeset
|
112 |
except soc.views.out_of_band.AccessViolationResponse, alt_response: |
294
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
113 |
return alt_response.response() |
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
114 |
|
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
115 |
# create default template context for use with any templates |
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
116 |
context = helper.responses.getUniversalContext(request) |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
117 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
118 |
user = None # assume that no User entity will be found |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
119 |
form = None # assume blank form needs to be displayed |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
120 |
lookup_message = ugettext_lazy('Enter information to look up a User.') |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
121 |
email_error = None # assume no email look-up errors |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
122 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
123 |
if request.method == 'POST': |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
124 |
form = LookupForm(request.POST) |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
125 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
126 |
if form.is_valid(): |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
127 |
form_id = form.cleaned_data.get('id') |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
128 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
129 |
if form_id: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
130 |
# email provided, so attempt to look up user by email |
309
7190b224c701
Made the existing code use the new soc.logic.models
Sverre Rabbelier <srabbelier@gmail.com>
parents:
305
diff
changeset
|
131 |
user = models.user.logic.getFromFields(id=form_id) |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
132 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
133 |
if user: |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
134 |
lookup_message = ugettext_lazy('User found by email.') |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
135 |
else: |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
136 |
email_error = ugettext_lazy('User with that email not found.') |
268
af1d7f48b361
Move helpers/list.py to helper/lists.py to avoid conflict with built-in type
Todd Larsen <tlarsen@google.com>
parents:
267
diff
changeset
|
137 |
range_width = helper.lists.getPreferredListPagination() |
229
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
138 |
nearest_user_range_start = id_user.findNearestUsersOffset( |
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
139 |
range_width, id=form_id) |
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
140 |
|
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
141 |
if nearest_user_range_start is not None: |
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
142 |
context['lookup_link'] = './list?offset=%s&limit=%s' % ( |
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
143 |
nearest_user_range_start, range_width) |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
144 |
if not user: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
145 |
# user not found yet, so see if link name was provided |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
146 |
link_name = form.cleaned_data.get('link_name') |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
147 |
|
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
148 |
if link_name: |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
149 |
# link name provided, so try to look up by link name |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
150 |
user = id_user.getUserFromLinkName(link_name) |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
151 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
152 |
if user: |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
153 |
lookup_message = ugettext_lazy('User found by link name.') |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
154 |
email_error = None # clear previous error, since User was found |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
155 |
else: |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
156 |
context['link_name_error'] = ugettext_lazy( |
229
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
157 |
'User with that link name not found.') |
268
af1d7f48b361
Move helpers/list.py to helper/lists.py to avoid conflict with built-in type
Todd Larsen <tlarsen@google.com>
parents:
267
diff
changeset
|
158 |
range_width = helper.lists.getPreferredListPagination() |
229
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
159 |
nearest_user_range_start = id_user.findNearestUsersOffset( |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
160 |
range_width, link_name=link_name) |
229
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
161 |
|
266
3b47bfd4f1b3
Move soc/views/helpers/list_helpers.py to soc/views/helpers/list.py and change
Todd Larsen <tlarsen@google.com>
parents:
262
diff
changeset
|
162 |
if nearest_user_range_start is not None: |
229
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
163 |
context['lookup_link'] = './list?offset=%s&limit=%s' % ( |
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
164 |
nearest_user_range_start, range_width) |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
165 |
# else: form was not valid |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
166 |
# else: # method == 'GET' |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
167 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
168 |
if user: |
215
d020c95b17b1
Clean up too long lines in profile.py. Add ReadOnlyInput widget to custom_widgets module, it can be used to display read-only form fields. Display read-only "Id" field in LookUp view if user has been found and in User Edit Developer view.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
210
diff
changeset
|
169 |
# User entity found, so populate form with existing User information |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
170 |
# context['found_user'] = user |
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
171 |
form = LookupForm(initial={'id': user.id.email(), |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
172 |
'link_name': user.link_name}) |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
173 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
174 |
if request.path.endswith('lookup'): |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
175 |
# convert /lookup path into /profile/link_name path |
269
0f1acc4c3e1e
Move helpers/request.py to helper/requests.py to avoid conflict with common
Todd Larsen <tlarsen@google.com>
parents:
268
diff
changeset
|
176 |
context['edit_link'] = helper.requests.replaceSuffix( |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
177 |
request.path, 'lookup', 'profile/%s' % user.link_name) |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
178 |
# else: URL is not one that was expected, so do not display edit link |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
179 |
elif not form: |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
180 |
# no pre-populated form was constructed, so show the empty look-up form |
134
1f64d7a4d82d
Fixed wrong user variable in lookup.html template for edit link (was user should be found_user).
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
132
diff
changeset
|
181 |
form = LookupForm() |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
182 |
|
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
183 |
context.update({'form': form, |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
184 |
'found_user': user, |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
185 |
'email_error': email_error, |
132
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
186 |
'lookup_message': lookup_message}) |
15d89c284106
Add a /site/user/lookup view that provides Developers with a form to look up
Todd Larsen <tlarsen@google.com>
parents:
diff
changeset
|
187 |
|
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
188 |
return helper.responses.respond(request, template, context) |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
189 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
190 |
|
274
56e1c1721299
Move helpers/forms_helpers.py to helper/forms.py.
Todd Larsen <tlarsen@google.com>
parents:
272
diff
changeset
|
191 |
class EditForm(helper.forms.DbModelForm): |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
192 |
"""Django form displayed when Developer edits a User. |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
193 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
194 |
This form is manually specified, instead of using |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
195 |
model = soc.models.user.User |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
196 |
in the Meta class, because the form behavior is unusual and normally |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
197 |
required Properties of the User model need to sometimes be omitted. |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
198 |
""" |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
199 |
id = forms.EmailField( |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
200 |
label=soc.models.user.User.id.verbose_name, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
201 |
help_text=soc.models.user.User.id.help_text) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
202 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
203 |
link_name = forms.CharField( |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
204 |
label=soc.models.user.User.link_name.verbose_name, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
205 |
help_text=soc.models.user.User.link_name.help_text) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
206 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
207 |
nick_name = forms.CharField( |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
208 |
label=soc.models.user.User.nick_name.verbose_name) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
209 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
210 |
is_developer = forms.BooleanField(required=False, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
211 |
label=soc.models.user.User.is_developer.verbose_name, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
212 |
help_text=soc.models.user.User.is_developer.help_text) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
213 |
|
184
7c0b42aecd9b
Add support for changing User id (Google Account email) in User Profile Developer view. Now user profile developer edit view includes hidden key_name field. Fix typo in user/profile.py. Show former user ids in lookup and edit User Profile Developer views.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
179
diff
changeset
|
214 |
key_name = forms.CharField(widget=forms.HiddenInput) |
7c0b42aecd9b
Add support for changing User id (Google Account email) in User Profile Developer view. Now user profile developer edit view includes hidden key_name field. Fix typo in user/profile.py. Show former user ids in lookup and edit User Profile Developer views.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
179
diff
changeset
|
215 |
|
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
216 |
class Meta: |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
217 |
model = None |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
218 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
219 |
def clean_link_name(self): |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
220 |
link_name = self.cleaned_data.get('link_name') |
249
325fb70c61a9
Replace common module with validate module. Move validation function from feed module to validate module and remove feed.py. Correct any usage of validation functions from common and feed modules into validate module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
245
diff
changeset
|
221 |
if not validate.isLinkNameFormatValid(link_name): |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
222 |
raise forms.ValidationError("This link name is in wrong format.") |
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
223 |
|
305
972d28056d9d
Minor style and import fixes
Sverre Rabbelier <srabbelier@gmail.com>
parents:
303
diff
changeset
|
224 |
key_name = self.data.get('key_name') |
309
7190b224c701
Made the existing code use the new soc.logic.models
Sverre Rabbelier <srabbelier@gmail.com>
parents:
305
diff
changeset
|
225 |
user = models.user.logic.getFromKeyName(key_name) |
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
226 |
|
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
227 |
if user and user.link_name != link_name: |
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
228 |
raise forms.ValidationError("This link name is already in use.") |
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
229 |
|
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
230 |
return link_name |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
231 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
232 |
def clean_id(self): |
262
52a42831d9d6
Factor out an isIdAvailable() function from EditForm.clean_id() in
Todd Larsen <tlarsen@google.com>
parents:
260
diff
changeset
|
233 |
form_id = users.User(email=self.cleaned_data.get('id')) |
52a42831d9d6
Factor out an isIdAvailable() function from EditForm.clean_id() in
Todd Larsen <tlarsen@google.com>
parents:
260
diff
changeset
|
234 |
if not id_user.isIdAvailable( |
52a42831d9d6
Factor out an isIdAvailable() function from EditForm.clean_id() in
Todd Larsen <tlarsen@google.com>
parents:
260
diff
changeset
|
235 |
form_id, existing_key_name=self.data.get('key_name')): |
52a42831d9d6
Factor out an isIdAvailable() function from EditForm.clean_id() in
Todd Larsen <tlarsen@google.com>
parents:
260
diff
changeset
|
236 |
raise forms.ValidationError("This account is already in use.") |
184
7c0b42aecd9b
Add support for changing User id (Google Account email) in User Profile Developer view. Now user profile developer edit view includes hidden key_name field. Fix typo in user/profile.py. Show former user ids in lookup and edit User Profile Developer views.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
179
diff
changeset
|
237 |
return form_id |
7c0b42aecd9b
Add support for changing User id (Google Account email) in User Profile Developer view. Now user profile developer edit view includes hidden key_name field. Fix typo in user/profile.py. Show former user ids in lookup and edit User Profile Developer views.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
179
diff
changeset
|
238 |
|
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
239 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
240 |
DEF_SITE_USER_PROFILE_EDIT_TMPL = 'soc/site/user/profile/edit.html' |
179
4882d6c5630d
Add custom 404 error message with link to "Create a New User" which is displayed when linkname in User Profile Developer view URL (/site/user/profile/<linkname>) doesn't exist. Add default value (None) to new_suffix parameter of template_helpers replaceSuffix and redirectToChangedSuffix functions.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
171
diff
changeset
|
241 |
DEF_CREATE_NEW_USER_MSG = ' You can create a new user by visiting' \ |
4882d6c5630d
Add custom 404 error message with link to "Create a New User" which is displayed when linkname in User Profile Developer view URL (/site/user/profile/<linkname>) doesn't exist. Add default value (None) to new_suffix parameter of template_helpers replaceSuffix and redirectToChangedSuffix functions.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
171
diff
changeset
|
242 |
' <a href="/site/user/profile">Create ' \ |
4882d6c5630d
Add custom 404 error message with link to "Create a New User" which is displayed when linkname in User Profile Developer view URL (/site/user/profile/<linkname>) doesn't exist. Add default value (None) to new_suffix parameter of template_helpers replaceSuffix and redirectToChangedSuffix functions.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
171
diff
changeset
|
243 |
'a New User</a> page.' |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
244 |
|
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
245 |
def edit(request, link_name=None, template=DEF_SITE_USER_PROFILE_EDIT_TMPL): |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
246 |
"""View for a Developer to modify the properties of a User Model entity. |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
247 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
248 |
Args: |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
249 |
request: the standard django request object |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
250 |
link_name: the User's site-unique "link_name" extracted from the URL |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
251 |
template: the "sibling" template (or a search list of such templates) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
252 |
from which to construct the public.html template name (or names) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
253 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
254 |
Returns: |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
255 |
A subclass of django.http.HttpResponse which either contains the form to |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
256 |
be filled out, or a redirect to the correct view in the interface. |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
257 |
""" |
294
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
258 |
|
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
259 |
try: |
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
260 |
access.checkIsDeveloper(request) |
303
4f1bb54ddae5
Moved soc/logic/helper/access to soc/views/helper/access
Sverre Rabbelier <srabbelier@gmail.com>
parents:
299
diff
changeset
|
261 |
except soc.views.out_of_band.AccessViolationResponse, alt_response: |
294
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
262 |
return alt_response.response() |
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
263 |
|
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
264 |
# create default template context for use with any templates |
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
265 |
context = helper.responses.getUniversalContext(request) |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
266 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
267 |
user = None # assume that no User entity will be found |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
268 |
|
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
269 |
# try to fetch User entity corresponding to link_name if one exists |
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
270 |
if link_name: |
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
271 |
user = id_user.getUserFromLinkName(link_name) |
171
b62f1cf5e878
Bug fixes to revision r596. User Account field in Developer User Profile view needs to be an email not a login name. Header title of User Profile Developer view, when form validation failes is now showing correct value ("Modify existing ..." instead of "Create new user ...").
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
170
diff
changeset
|
272 |
|
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
273 |
if request.method == 'POST': |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
274 |
form = EditForm(request.POST) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
275 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
276 |
if form.is_valid(): |
184
7c0b42aecd9b
Add support for changing User id (Google Account email) in User Profile Developer view. Now user profile developer edit view includes hidden key_name field. Fix typo in user/profile.py. Show former user ids in lookup and edit User Profile Developer views.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
179
diff
changeset
|
277 |
key_name = form.cleaned_data.get('key_name') |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
278 |
new_link_name = form.cleaned_data.get('link_name') |
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
279 |
|
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
280 |
properties = {} |
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
281 |
properties['id'] = form.cleaned_data.get('id') |
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
282 |
properties['link_name'] = new_link_name |
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
283 |
properties['nick_name'] = form.cleaned_data.get('nick_name') |
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
284 |
properties['is_developer'] = form.cleaned_data.get('is_developer') |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
285 |
|
309
7190b224c701
Made the existing code use the new soc.logic.models
Sverre Rabbelier <srabbelier@gmail.com>
parents:
305
diff
changeset
|
286 |
user = models.user.logic.updateOrCreateFromKeyName(properties, key_name) |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
287 |
|
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
288 |
#raise forms.ValidationError("lesseee: " + new_link_name + " " + user.link_name) |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
289 |
|
184
7c0b42aecd9b
Add support for changing User id (Google Account email) in User Profile Developer view. Now user profile developer edit view includes hidden key_name field. Fix typo in user/profile.py. Show former user ids in lookup and edit User Profile Developer views.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
179
diff
changeset
|
290 |
if not user: |
7c0b42aecd9b
Add support for changing User id (Google Account email) in User Profile Developer view. Now user profile developer edit view includes hidden key_name field. Fix typo in user/profile.py. Show former user ids in lookup and edit User Profile Developer views.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
179
diff
changeset
|
291 |
return http.HttpResponseRedirect('/') |
7c0b42aecd9b
Add support for changing User id (Google Account email) in User Profile Developer view. Now user profile developer edit view includes hidden key_name field. Fix typo in user/profile.py. Show former user ids in lookup and edit User Profile Developer views.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
179
diff
changeset
|
292 |
|
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
293 |
# redirect to new /site/user/profile/new_link_name?s=0 |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
294 |
# (causes 'Profile saved' message to be displayed) |
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
295 |
return helper.responses.redirectToChangedSuffix( |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
296 |
request, link_name, new_link_name, |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
297 |
params=profile.SUBMIT_PROFILE_SAVED_PARAMS) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
298 |
else: # method == 'GET': |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
299 |
# try to fetch User entity corresponding to link name if one exists |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
300 |
if link_name: |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
301 |
if user: |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
302 |
# is 'Profile saved' parameter present, but referrer was not ourself? |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
303 |
# (e.g. someone bookmarked the GET that followed the POST submit) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
304 |
if (request.GET.get(profile.SUBMIT_MSG_PARAM_NAME) |
269
0f1acc4c3e1e
Move helpers/request.py to helper/requests.py to avoid conflict with common
Todd Larsen <tlarsen@google.com>
parents:
268
diff
changeset
|
305 |
and (not helper.requests.isReferrerSelf(request, |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
306 |
suffix=link_name))): |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
307 |
# redirect to aggressively remove 'Profile saved' query parameter |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
308 |
return http.HttpResponseRedirect(request.path) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
309 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
310 |
# referrer was us, so select which submit message to display |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
311 |
# (may display no message if ?s=0 parameter is not present) |
290
2a92b866ed40
Create a submit_buttons block in group edit profile template so that submit buttons can be customized. Replace submit_message usage with new notice block (still work in progress in Lookup User views). Add customized edit profile template for Sponsor with delete button (not used yet, upcoming commit). Add delete Sponsor request handler.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
274
diff
changeset
|
312 |
context['notice'] = ( |
269
0f1acc4c3e1e
Move helpers/request.py to helper/requests.py to avoid conflict with common
Todd Larsen <tlarsen@google.com>
parents:
268
diff
changeset
|
313 |
helper.requests.getSingleIndexedParamValue( |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
314 |
request, profile.SUBMIT_MSG_PARAM_NAME, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
315 |
values=profile.SUBMIT_MESSAGES)) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
316 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
317 |
# populate form with the existing User entity |
229
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
318 |
form = EditForm(initial={'key_name': user.key().name(), |
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
319 |
'id': user.id.email(), 'link_name': user.link_name, |
215
d020c95b17b1
Clean up too long lines in profile.py. Add ReadOnlyInput widget to custom_widgets module, it can be used to display read-only form fields. Display read-only "Id" field in LookUp view if user has been found and in User Edit Developer view.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
210
diff
changeset
|
320 |
'nick_name': user.nick_name, 'is_developer': user.is_developer}) |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
321 |
else: |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
322 |
if request.GET.get(profile.SUBMIT_MSG_PARAM_NAME): |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
323 |
# redirect to aggressively remove 'Profile saved' query parameter |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
324 |
return http.HttpResponseRedirect(request.path) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
325 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
326 |
context['lookup_error'] = ugettext_lazy( |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
327 |
'User with that link name not found.') |
298
c76a366c7ab4
Replace almost all occurences of linkname with link_name
Sverre Rabbelier <srabbelier@gmail.com>
parents:
294
diff
changeset
|
328 |
form = EditForm(initial={'link_name': link_name}) |
170
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
329 |
else: # no link name specified in the URL |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
330 |
if request.GET.get(profile.SUBMIT_MSG_PARAM_NAME): |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
331 |
# redirect to aggressively remove 'Profile saved' query parameter |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
332 |
return http.HttpResponseRedirect(request.path) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
333 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
334 |
# no link name specified, so start with an empty form |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
335 |
form = EditForm() |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
336 |
|
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
337 |
context.update({'form': form, |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
338 |
'existing_user': user}) |
1fadf6e0348d
Add /site/user/profile Developer view for editing arbitrary User entities.
Todd Larsen <tlarsen@google.com>
parents:
141
diff
changeset
|
339 |
|
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
340 |
return helper.responses.respond(request, template, context) |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
341 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
342 |
|
274
56e1c1721299
Move helpers/forms_helpers.py to helper/forms.py.
Todd Larsen <tlarsen@google.com>
parents:
272
diff
changeset
|
343 |
class CreateForm(helper.forms.DbModelForm): |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
344 |
"""Django form displayed when Developer creates a User. |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
345 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
346 |
This form is manually specified, instead of using |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
347 |
model = soc.models.user.User |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
348 |
in the Meta class, because the form behavior is unusual and normally |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
349 |
required Properties of the User model need to sometimes be omitted. |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
350 |
""" |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
351 |
id = forms.EmailField( |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
352 |
label=soc.models.user.User.id.verbose_name, |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
353 |
help_text=soc.models.user.User.id.help_text) |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
354 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
355 |
link_name = forms.CharField( |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
356 |
label=soc.models.user.User.link_name.verbose_name, |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
357 |
help_text=soc.models.user.User.link_name.help_text) |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
358 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
359 |
nick_name = forms.CharField( |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
360 |
label=soc.models.user.User.nick_name.verbose_name) |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
361 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
362 |
is_developer = forms.BooleanField(required=False, |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
363 |
label=soc.models.user.User.is_developer.verbose_name, |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
364 |
help_text=soc.models.user.User.is_developer.help_text) |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
365 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
366 |
class Meta: |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
367 |
model = None |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
368 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
369 |
def clean_link_name(self): |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
370 |
link_name = self.cleaned_data.get('link_name') |
260
8b393bef717a
Fix typo in recent validate.py changes (r682).
Todd Larsen <tlarsen@google.com>
parents:
249
diff
changeset
|
371 |
if not validate.isLinkNameFormatValid(link_name): |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
372 |
raise forms.ValidationError("This link name is in wrong format.") |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
373 |
else: |
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
374 |
if id_user.getUserFromLinkName(link_name): |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
375 |
raise forms.ValidationError("This link name is already in use.") |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
376 |
return link_name |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
377 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
378 |
def clean_id(self): |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
379 |
new_email = self.cleaned_data.get('id') |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
380 |
form_id = users.User(email=new_email) |
321
f17ecd21ca33
Some indentations fixes. Changed all the email=id function arguments to email=id.email().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
317
diff
changeset
|
381 |
if models.user.logic.getFromFields(email=form_id.email()): |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
382 |
raise forms.ValidationError("This account is already in use.") |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
383 |
return form_id |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
384 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
385 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
386 |
DEF_SITE_CREATE_USER_PROFILE_TMPL = 'soc/site/user/profile/edit.html' |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
387 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
388 |
def create(request, template=DEF_SITE_CREATE_USER_PROFILE_TMPL): |
229
a46c238be8db
Show link to /site/user/list on /site/user/lookup when User is not found.
Todd Larsen <tlarsen@google.com>
parents:
215
diff
changeset
|
389 |
"""View for a Developer to create a new User Model entity. |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
390 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
391 |
Args: |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
392 |
request: the standard django request object |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
393 |
template: the "sibling" template (or a search list of such templates) |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
394 |
from which to construct the public.html template name (or names) |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
395 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
396 |
Returns: |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
397 |
A subclass of django.http.HttpResponse which either contains the form to |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
398 |
be filled out, or a redirect to the correct view in the interface. |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
399 |
""" |
294
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
400 |
|
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
401 |
try: |
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
402 |
access.checkIsDeveloper(request) |
303
4f1bb54ddae5
Moved soc/logic/helper/access to soc/views/helper/access
Sverre Rabbelier <srabbelier@gmail.com>
parents:
299
diff
changeset
|
403 |
except soc.views.out_of_band.AccessViolationResponse, alt_response: |
294
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
404 |
return alt_response.response() |
1fdaab4a6ef2
Refactor existing code to use the new access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
290
diff
changeset
|
405 |
|
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
406 |
# create default template context for use with any templates |
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
407 |
context = helper.responses.getUniversalContext(request) |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
408 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
409 |
if request.method == 'POST': |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
410 |
form = CreateForm(request.POST) |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
411 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
412 |
if form.is_valid(): |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
413 |
form_id = form.cleaned_data.get('id') |
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
414 |
link_name = form.cleaned_data.get('link_name') |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
415 |
|
305
972d28056d9d
Minor style and import fixes
Sverre Rabbelier <srabbelier@gmail.com>
parents:
303
diff
changeset
|
416 |
properties = { |
317
87215136c268
Remove spaces between dict key name and colon. Fix some typos based on comments http://code.google.com/p/soc/source/detail?r=739.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
316
diff
changeset
|
417 |
'id': form_id, |
87215136c268
Remove spaces between dict key name and colon. Fix some typos based on comments http://code.google.com/p/soc/source/detail?r=739.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
316
diff
changeset
|
418 |
'link_name': link_name, |
87215136c268
Remove spaces between dict key name and colon. Fix some typos based on comments http://code.google.com/p/soc/source/detail?r=739.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
316
diff
changeset
|
419 |
'nick_name': form.cleaned_data.get('nick_name'), |
87215136c268
Remove spaces between dict key name and colon. Fix some typos based on comments http://code.google.com/p/soc/source/detail?r=739.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
316
diff
changeset
|
420 |
'is_developer': form.cleaned_data.get('is_developer'), |
305
972d28056d9d
Minor style and import fixes
Sverre Rabbelier <srabbelier@gmail.com>
parents:
303
diff
changeset
|
421 |
} |
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
422 |
|
321
f17ecd21ca33
Some indentations fixes. Changed all the email=id function arguments to email=id.email().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
317
diff
changeset
|
423 |
user = models.user.logic.updateOrCreateFromFields(properties, email=form_id.email()) |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
424 |
|
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
425 |
if not user: |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
426 |
return http.HttpResponseRedirect('/') |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
427 |
|
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
428 |
# redirect to new /site/user/profile/new_link_name?s=0 |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
429 |
# (causes 'Profile saved' message to be displayed) |
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
430 |
return helper.responses.redirectToChangedSuffix( |
299
a1cc853a56e5
Refactor nearly all the soc.logic code to use the Base class
Sverre Rabbelier <srabbelier@gmail.com>
parents:
298
diff
changeset
|
431 |
request, None, link_name, |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
432 |
params=profile.SUBMIT_PROFILE_SAVED_PARAMS) |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
433 |
else: # method == 'GET': |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
434 |
# no link name specified, so start with an empty form |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
435 |
form = CreateForm() |
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
436 |
|
210
d05444cf4641
Replaced context.update call to simple value assignment in site.user.profile.create view function.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
205
diff
changeset
|
437 |
context['form'] = form |
205
4a86df751222
Fixed not working "Create New User" view which was caused by adding key_name into User Edit Developer view. This commit divides edit() view function in soc.views.site.user.profile into edit() and create() request handlers. New create() request handler is used only in "Create New User" view and has specific form validation functions and uses updateOrCreateUserFromId() instead of updateUserForKeyName().
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
190
diff
changeset
|
438 |
|
272
00cea07656c0
Move helpers/response_helpers.py to helper/responses.py.
Todd Larsen <tlarsen@google.com>
parents:
269
diff
changeset
|
439 |
return helper.responses.respond(request, template, context) |