def get(self): """Handle user request The vote HTML page would list two random items in category and the result that the user just voted. """ category_key = self.request.get('category_key') if not category_key: self.redirect('/{path}?'.format(path=select_category_page_path) + urllib.urlencode({'select_category': 'Nothing'})) return user = users.get_current_user() url = users.create_logout_url(self.request.uri) if user else users.create_login_url(self.request.uri) win_item_name = self.request.get('win') lose_item_name = self.request.get('lose') category_data = category.get_category_by_key(key=category_key) vote_items = item.get_random_items(category_key=category_key) win_item = item.get_item_by_key(category_key=category_key, item_name=win_item_name) if win_item_name else None lose_item = item.get_item_by_key(category_key=category_key, item_name=lose_item_name) if lose_item_name else None template_values = { 'category': category_data, 'items': vote_items, 'url': url, 'user': user, 'win': win_item, 'lose': lose_item, } template = jinja_environment.get_template('{path}.html'.format(path=vote_item_page_path)) self.response.out.write(template.render(template_values))
def get(self): """Handle user request The comment HTML page would list all comments for the specified item. User could submit a comment. """ category_key = self.request.get('category_key') item_name = self.request.get('item_name') if not item_name: self.redirect('/{path}?'.format(path=select_category_action_path) + urllib.urlencode({'category_key': category_key, 'select_item': 'Nothing'})) return invalid_comment = self.request.get('re_comment') invalid_content = self.request.get('invalid_content') user = users.get_current_user() url = users.create_logout_url(self.request.uri) category_data = category.get_category_by_key(key=category_key) comment_item = item.get_item_by_key(category_key=category_key, item_name=item_name) comments = get_comments(category_key=category_key, item_name=item_name) template_values = { 'category': category_data, 'item': comment_item, 'comments': comments, 'url': url, 'user': user, 'invalid_comment': invalid_comment, 'invalid_content': invalid_content, } template = jinja_environment.get_template('{path}.html'.format(path=make_comment_page_path)) self.response.out.write(template.render(template_values))
def post(self): """Handle user request """ category_key = self.request.get('category_key') method = self.request.get('method') if 'Vote' in method: item_names = self.request.get_all('item_name') win_item_name = self.request.get('win_item_name') lose_item_names = [item_name for item_name in item_names if item_name != win_item_name] win_item = item.get_item_by_key(category_key=category_key, item_name=win_item_name) lose_item = item.get_item_by_key(category_key=category_key, item_name=lose_item_names[0]) win_item.number_of_win += 1 win_item.percentage = round(float(win_item.number_of_win) / float(win_item.number_of_win + win_item.number_of_lose) * 100, 3) lose_item.number_of_lose += 1 lose_item.percentage = round(float(lose_item.number_of_win) / float(lose_item.number_of_win + lose_item.number_of_lose) * 100, 3) win_item.put() lose_item.put() self.redirect('/{path}?'.format(path=select_category_action_path) + urllib.urlencode({'category_key': category_key, 'win': win_item_name, 'lose': lose_item_names[0]})) elif 'Skip' in method: self.redirect('/{path}?'.format(path=select_category_action_path) + urllib.urlencode({'category_key': category_key}))