Example #1
0
    def __init__(self, ts, is_expanded=True):
        """Construct a RelativeDateComponent.

        Required:
        ts      ts      the time to display

        Optional:
        bool    is_expanded Expand the Relative Date Component

        """
        super(RelativeDateComponent, self).__init__()
        self.append_class(self.RELATIVE_DATE_COMPONENT_CLASS)

        relative_date = Span()
        if is_expanded:
            relative_date.set_text(
                    date.format_to_long_relative_datetime(ts))
        else:
            relative_date.set_text(date.format_to_short_relative_datetime(ts))

        self.append_child(relative_date)
Example #2
0
    def __init__(self, game):
        """ Construct a section with BoxscoreMedia.

        Required:
        Game game   the game to create the boxscore from

        """
        super(BoxscoreMedia, self).__init__()
        self.append_class(self.BOXSCORE_MEDIA_CLASS)

        # to allow the outer object to fit the screen width and still
        # wrap the inner floats
        floatable = FloatContainer()

        game_overview = Div()
        game_overview.append_class(self.GAME_OVERVIEW_CLASS)
        final = Span()
        final.set_text(Copy.final)
        game_overview.append_child(final)
        game_overview.append_child(SportComponent(game.sport))
        floatable.append_child(game_overview)

        # FIXME: get_opponents breaks the contract that the view doesnt get
        # access to non-property methods in model.api.Game.

        # Generate Opponent groups.
        if game.is_rivalry:
            floatable.append_child(OpponentsResultGroup(
                    game.get_opponents(game.winner_ids),
                    Copy.won))
            floatable.append_child(OpponentsResultGroup(
                    game.get_opponents(game.loser_ids),
                    Copy.lost))
        else:
            floatable.append_child(OpponentsResultGroup(
                    game.get_opponents(game.camaraderie_ids),
                    Copy.played))

        self.append_child(floatable)
Example #3
0
    def set_content(self, item):
        """ Set content for CommentLI. """
        comment = item  # item must be a comment

        thumbnail = AppThumbnail(
                comment.commenter_picture_url,
                comment.commenter_name)
        self.set_column(thumbnail)

        div = Div()

        name = A({"href": "#"}, comment.commenter_name)
        div.append_child(name)

        msg = Span()
        msg.set_text(comment.message)
        div.append_child(msg)

        created_ts = RelativeDateComponent(comment.created_ts)
        div.append_child(created_ts)

        self.set_column(div)
Example #4
0
    def set_content(self, item):
        """ Set content for Rankings LI. """
        # TODO make this some default scoreboard icon

        div = Div()
        # FIXME: model should send None instead of "" since "" is a valid
        # src, but model doesn't yet distinguish/translate empty db values.
        src = item.picture_url if item.picture_url else None
        div.append_child(AppThumbnail(src, item.name))
        self.set_column(div)

        opponent = A({"href": "#"}, item.name)
        self.set_column(opponent)

        current_result_streak = Span()
        streak_text = item.current_result_streak
        if streak_text > 0:
            streak_text = "{}{}".format(
                    Copy.win_short,
                    streak_text)
        elif streak_text < 0:
            streak_text = "{}{}".format(
                    Copy.loss_short,
                    -streak_text)
        else:
            streak_text = "--"
        current_result_streak.set_text(streak_text)
        self.set_column(current_result_streak)

        percentage_span = Span()
        win_percentage = item.win_percentage
        win_percentage_text = " .{:.0f}".format(win_percentage * 1000)
        if win_percentage == 1.0:
            win_percentage_text = "1.000"
        elif win_percentage == 0.0:
            win_percentage_text = " .000"
        percentage_span.set_text(win_percentage_text)
        self.set_column(percentage_span)

        loss_count = Span()
        loss_count.set_text(item.loss_count)
        self.set_column(loss_count)

        win_count = Span()
        win_count.set_text(item.win_count)
        self.set_column(win_count)