def post(self): if 'edit' not in self.request.url: self.response.set_status(405) return # this method updates user information (from profile page) # request body contain the form values # data = self.request.POST[0] data = json.loads(self.request.body) user_id = logic.get_current_userid(self.request.cookies.get('user')) if user_id is None: self.response.set_status(403) self.response.write('') # self.redirect('/') return # user, status = logic.user_get(user_id, None) # if status != "OK": # self.redirect("/error") user = PFuser() if data.get('new') is not None and data.get('new') != '': is_new = data.get('new') # if data.get('first_name') is not None and data.get('first_name') != '': # user.first_name = data.get('first_name') # if data.get('role') is not None and data.get('role') != '': # user.role = data.get('role') # if data.get('last_name') != '': # user.last_name = data.get('last_name') # if data.get('first_name') != '' and data.get('last_name') != '': # user.full_name = data.get('first_name') + ' ' + data.get('last_name') # if data.get('age') != '': # user.age = data.get('age') # if data.get('gender') != '': # user.gender = data.get('gender') logging.info("DATA: " + str(data)) home = Address() home.city = data.get('locality') home.province = data.get( 'administrative_area_level_2') home.country = data.get('country') lat = data.get('lat') lon = data.get('lon') logging.info("lat = %s, lon = %s" % (str(lat), str(lon))) if isinstance(lat, (str, unicode)): try: lat = float(lat) except Exception: lat = 0.0 if not isinstance(lat, float): lat = 0.0 if isinstance(lon, (str, unicode)): try: lon = float(lon) except Exception: lon = 0.0 if not isinstance(lon, float): lon = 0.0 logging.info("lat = %s, lon = %s" % (str(lat), str(lon))) home.location = GeoPt( lat, lon) user.home = home user, status, errcode = logic.user_update(user, user_id, None) if status != "OK": self.response.set_status(errcode) self.response.write(status) # self.render("error.html", {'error_code': errcode, 'error_string': status, 'lang': LANG}) return # if is_new == True or is_new == "true": # self.redirect('/profile/2') self.response.set_status(200) self.response.write('')
def do(request, nid, aid, browser_tab): WZ = Z.SetWhoZwho(request, browser_tab) if WZ['ErrorMessage']: return GoLogout(request, WZ) try: name = Name.objects.get(pk=int(nid)) except: return GoLogout(request, WZ, "[EA01]: URL containd an invalid name ID.") if WZ['Authority'] < Z.Admin and name.owner != WZ['AuthorizedOwner']: return GoLogout(request, WZ, "[EA02]: URL containd an invalid name ID.") if aid != '0': try: address = Address.objects.get(pk=int(aid)) except: return GoLogout(request, WZ, "[EA03]: URL containd an invalid addressID.") if address.owner != name.owner: return GoLogout(request, WZ, "[EA04]: URL containd an invalid address ID.") if WZ['Authority'] < Z.Admin and address.owner != WZ['AuthorizedOwner']: return GoLogout(request, WZ, "[EA05]: URL containd an invalid ID.") if request.method == 'POST': # If the form has been submitted... form = DirectoryEditAddressForm(request.POST, request.FILES) if form.is_valid(): if aid == '0': address = Address() address.owner = name.owner address.street = form.cleaned_data['street'] address.address_line2 = form.cleaned_data['address_line2'] address.municipality = form.cleaned_data['municipality'] address.city = form.cleaned_data['city'] address.province = form.cleaned_data['province'] address.country = form.cleaned_data['country'] address.postcode = form.cleaned_data['postcode'] address.phone = form.cleaned_data['home_phone'] address.save() if aid == '0': name.address_id = address.id name.save() logger.info(WZ['User'] + ' EA ' + str(request.POST)) if name.private == True: return HttpResponseRedirect('/WhoZwho/editpc/' + nid + '/' + browser_tab) else: return HttpResponseRedirect('/WhoZwho/ename/' + nid + '/' + browser_tab) else: WZ['ErrorMessage'] = str(form.errors) else: if aid == '0': form = DirectoryEditAddressForm() else: form = DirectoryEditAddressForm(initial={ 'street': address.street, 'address_line2': address.address_line2, 'municipality': address.municipality, 'city': address.city, 'province': address.province, 'country': address.country, 'postcode': address.postcode, 'home_phone': address.phone, }) if aid == '0': EditAddressTitle = 'Add New Address:' else: EditAddressTitle = 'Edit Address: ' + address.street context = { 'EditAddressTitle': EditAddressTitle, 'aid': aid, 'browser_tab': WZ['Tabs'][WZ['ActiveTab']][2], 'form': form, 'nid': nid, 'WZ': WZ } context.update(csrf(request)) return render_to_response('DirectoryEditAddress.html', context )