def get(self): user = self.request.get('user') category = self.request.get('category') u = User.get_by_key_name(user) if u == None or not u.validate() or not u.is_available_for_hangout(): logging.error('Connect request to invalid and/or unavailable user/expert ' + user) self.redirect('/') return c = Category.get_by_key_name(category.lower()) if not c: logging.error('Connect request with invalid category key: ' + category.lower()) self.redirect('/') return url = HangoutStats.get_hangout_url() logging.info('Hangout url: %s in category %s' % (url, category)) xmpp.send_message(u.email, chat.REQUEST_MSG % (category, url)) for email in ['*****@*****.**', '*****@*****.**', '*****@*****.**']: u = User.get_by_key_name(email) if u and u.is_subscribed: xmpp.send_message(email, chat.FACILITATOR_MSG % (category, url)) self.redirect(url)
def post(self): # figure out the current user user = users.get_current_user() if user == None: self.redirect(users.create_login_url("/manageAccount")) return u = User.get_by_key_name(user.email()) if u == None: self.redirect(users.create_login_url("/signUp")) return # add all the existing categories area = AreaOfExpertise.all() area.filter("user ="******"expertoptout") != "true" u.put() for category_subcategory in self.request.get_all("usercategory"): if category_subcategory and category_subcategory != "" and re.search("\s::\s", category_subcategory): match = re.search("\s::\s", category_subcategory) category_name = category_subcategory[0:match.start(0)].lower() subcategory = category_subcategory[match.end(0):].lower() if not Category.get_by_key_name(category_name): category = Category(name=category_name) category.put() u.add_category(category_name, subcategory) # for param in self.request.arguments(): # value = self.request.get(param) # if param == "expertoptout": # u.expert_opt_out = self.request.get("expertoptout") != "true" # u.put() # elif not re.search(" description$", param) and value == "true": # if not Category.get_by_key_name(param): # c = Category(name=param) # c.put() # description = self.request.get('%s description' % param) # logging.error(param + " :: " + description) # u.add_category(param, description) # for category in Category.all().fetch(100): # if self.request.get(category.name) == 'true': # description = self.request.get('%s description' % category.name) # u.add_category(category.name, description) # # add the other category # other_category = self.request.get("other").lower() # if other_category and other_category != "" and other_category != "other": # # Disallow empty category names and the "other" category name # if not Category.get_by_key_name(other_category): # category = Category(name=other_category) # category.put() # u.add_category(other_category, other_category) # add_category = self.request.get("addcategory").lower() # if add_category and add_category != "" and re.search("\s::\s", add_category): # match = re.search("\s::\s", add_category) # category_name = add_category[0:match.start(0)] # subcategory = add_category[match.end(0):] # if not Category.get_by_key_name(category_name): # category = Category(name=category_name) # category.put() # u.add_category(category_name, subcategory) # do the opt out stuff self.redirect("/")