equal
deleted
inserted
replaced
25 from google.appengine.api import users |
25 from google.appengine.api import users |
26 |
26 |
27 from django import http |
27 from django import http |
28 from django import newforms as forms |
28 from django import newforms as forms |
29 |
29 |
|
30 import soc.logic |
30 from soc.logic import validate |
31 from soc.logic import validate |
31 from soc.logic import out_of_band |
32 from soc.logic import out_of_band |
32 from soc.logic import sponsor |
|
33 from soc.logic.helper import access |
33 from soc.logic.helper import access |
34 from soc.logic.site import id_user |
34 from soc.logic.site import id_user |
35 from soc.views import helper |
35 from soc.views import helper |
36 import soc.views.helper.forms |
36 import soc.views.helper.forms |
37 import soc.views.helper.requests |
37 import soc.views.helper.requests |
58 # TODO(pawel.solyga): write validation functions for other fields |
58 # TODO(pawel.solyga): write validation functions for other fields |
59 def clean_link_name(self): |
59 def clean_link_name(self): |
60 link_name = self.cleaned_data.get('link_name') |
60 link_name = self.cleaned_data.get('link_name') |
61 if not validate.isLinkNameFormatValid(link_name): |
61 if not validate.isLinkNameFormatValid(link_name): |
62 raise forms.ValidationError("This link name is in wrong format.") |
62 raise forms.ValidationError("This link name is in wrong format.") |
63 if sponsor.doesLinkNameExist(link_name): |
63 if soc.logic.sponsor_logic.getFromFields(link_name=link_name): |
64 raise forms.ValidationError("This link name is already in use.") |
64 raise forms.ValidationError("This link name is already in use.") |
65 return link_name |
65 return link_name |
66 |
66 |
67 |
67 |
68 class EditForm(CreateForm): |
68 class EditForm(CreateForm): |
104 |
104 |
105 # create default template context for use with any templates |
105 # create default template context for use with any templates |
106 context = helper.responses.getUniversalContext(request) |
106 context = helper.responses.getUniversalContext(request) |
107 |
107 |
108 logged_in_id = users.get_current_user() |
108 logged_in_id = users.get_current_user() |
109 user = id_user.getUserFromId(logged_in_id) |
109 user = soc.logic.user_logic.getFromFields(email=logged_in_id) |
110 sponsor_form = None |
110 sponsor_form = None |
111 existing_sponsor = None |
111 existing_sponsor = None |
112 |
112 |
113 # try to fetch Sponsor entity corresponding to link_name if one exists |
113 # try to fetch Sponsor entity corresponding to link_name if one exists |
114 try: |
114 try: |
115 existing_sponsor = soc.logic.sponsor.getSponsorIfLinkName(linkname) |
115 existing_sponsor = soc.logic.sponsor_logic.getIfFields(link_name=link_name) |
116 except out_of_band.ErrorResponse, error: |
116 except out_of_band.ErrorResponse, error: |
117 # show custom 404 page when link name doesn't exist in Datastore |
117 # show custom 404 page when link name doesn't exist in Datastore |
118 error.message = error.message + DEF_CREATE_NEW_SPONSOR_MSG |
118 error.message = error.message + DEF_CREATE_NEW_SPONSOR_MSG |
119 return simple.errorResponse(request, error, template, context) |
119 return simple.errorResponse(request, error, template, context) |
120 |
120 |
142 fields[field] = value |
142 fields[field] = value |
143 |
143 |
144 fields['founder'] = user |
144 fields['founder'] = user |
145 |
145 |
146 form_ln = fields['link_name'] |
146 form_ln = fields['link_name'] |
147 form_sponsor = sponsor.updateOrCreateSponsorFromLinkName(form_ln, |
147 form_sponsor = soc.logic.sponsor_logic.updateOrCreateFromFields(fields, link_name=form_ln) |
148 **fields) |
|
149 |
148 |
150 if not form_sponsor: |
149 if not form_sponsor: |
151 return http.HttpResponseRedirect('/') |
150 return http.HttpResponseRedirect('/') |
152 |
151 |
153 # redirect to new /site/sponsor/profile/form_link_name?s=0 |
152 # redirect to new /site/sponsor/profile/form_link_name?s=0 |