Exemple #1
0
	def get(self, usercode=None):
		self.init_session()
		if self.do_redirect(): return
		
		if usercode is None:
			usercode = self.get_key('usercode')
			if usercode is None:
				self.redirect('/login')
				return
			else:
				self.redirect('/profile/'+usercode)
				return
		elif usercode[0] == '/':
			usercode = usercode[1:]
		
		my_usercode = self.get_key('usercode')
		your_profile = (usercode == self.get_key('usercode'))

		if not your_profile:
			userdata = UserData.get_by_code(usercode)
			if not (my_usercode is None):
				are_friends = Friend.already_present(my_usercode, usercode)
				if not are_friends:
					
					if not userdata.friends_hidden_by_default:
						list_link = '/friends/'+usercode
					else:
						list_link = None
					
					if FriendRequest.already_present(my_usercode, usercode):
						#print "AWAITING REPLY"
						awaiting_reply = True
						approve_link = reject_link = None
						friend_link = unfriend_link = None
					elif FriendRequest.already_present(usercode, my_usercode):
						#print "APPROVE REJECT"
						awaiting_reply = False
						approve_link = '/friends/approve/'+usercode
						reject_link = '/friends/reject/'+usercode
						friend_link = unfriend_link = None
					else:
						friend_link = '/friends/request/'+usercode
						unfriend_link = None
						approve_link = reject_link = awaiting_reply = None
				else:
					friend_link = None
					unfriend_link = '/friends/remove/'+usercode
					list_link = '/friends/'+usercode
					approve_link = reject_link = awaiting_reply = None
			else:
				are_friends = False
				approve_link = reject_link = awaiting_reply = None
				friend_link = unfriend_link = list_link = None
			pastes = Paste.get_public_by_usercode(usercode)
			self.template_values.update({ 
				'prof_nickname': userdata.nickname,
				'prof_usercode': usercode,
				'profile_link': '/profile/'+usercode,
				'pastes': pastes,
				'num_pastes': pastes.count(),
				'are_friends': are_friends,
				'your_profile': your_profile,
				'friend_link': friend_link,
				'unfriend_link': unfriend_link,
				'list_link': list_link,
				'approve_link': approve_link,
				'reject_link': reject_link,
				'awaiting_reply': awaiting_reply
			})
		else:
			pastes = Paste.get_all_by_usercode(usercode)	
			self.template_values.update({	
				'prof_nickname': self.session['nickname'],
				'prof_usercode': usercode, 
				'profile_link': '/profile/'+usercode,
				'pastes': pastes,
				'num_pastes': pastes.count(),
				'your_profile': your_profile
			})
			
		path = get_template_path('profile.html')
		self.response.out.write(template.render(path, self.template_values, debug=True))