Exemplo n.º 1
0
    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))
Exemplo n.º 2
0
    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))
Exemplo n.º 3
0
    def get(self):
        """Handle user request

        The select item HTML page would list all items in category. The
        user should select one of them to comment
        """
        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

        invalid_select = self.request.get('select_item')
        user = users.get_current_user()
        url = users.create_logout_url(self.request.uri) if user else users.create_login_url(self.request.uri)
        category_data = category.get_category_by_key(key=category_key)
        items = item.get_items(author=category_data.author, category_name=category_data.name)

        template_values = {
            'category': category_data,
            'items': items,
            'url': url,
            'user': user,
            'invalid_select': invalid_select,
        }
        template = jinja_environment.get_template('{path}.html'.format(path=select_item_page_path))
        self.response.out.write(template.render(template_values))
Exemplo n.º 4
0
    def get(self):
        """Handle user request

        Construct category information in XML web page
        """
        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

        category_data = category.get_category_by_key(key=category_key)
        items = item.get_items(author=category_data.author, category_name=category_data.name)

        template_values = {"category": category_data, "items": items}
        template = jinja_environment.get_template("{path}.xml".format(path=result_page_path))
        self.response.headers["Content-Type"] = "text/xml"
        self.response.out.write(template.render(template_values))
Exemplo n.º 5
0
    def get(self):
        """Handle user request

        The vote result HTML page would list statistics of vote ordered by
        wining percentage in descending.
        """
        category_key = self.request.get('category_key')
        user = users.get_current_user()
        url = users.create_logout_url(self.request.uri) if user else users.create_login_url(self.request.uri)

        category_data = category.get_category_by_key(key=category_key)
        items = item.get_items(author=category_data.author, category_name=category_data.name, order='-percentage')
        template_values = {
            'category': category_data,
            'items': items,
            'url': url,
            'user': user,
        }
        template = jinja_environment.get_template('{path}.html'.format(path=result_page_path))
        self.response.out.write(template.render(template_values))