# `sol.models.competitor` -- Competitors

class `sol.models.competitor.``Competitor`(**kwargs)

  A single competitor in a game.

  A competitor may be a single person or a team of up to four players, that participate to a given tourney. On each competitor this table keeps the points, the netscore and his bucholz, as well as the final prize. To disambiguate the ranking it maintains also a totscore, the total number of pocketed carrommen summing up competitor' scores in all played games.

  `bucholz`

    Weight of the opponents (sum of opponents' points and netscore).

  `caption`(html=None, localized=True, player_caption=None, css_class=None, nationality=False)

    A description of the competitor, made up with the name of each player.

  property `description`

    A description of the competitor, made up with the name of each player.

  `getOpponentsPreceedingTurns`(turn)

    List of competitors ID who played against this competitor.

  `idcompetitor`

    Primary key.

  `idplayer1`

    First `player`'s ID.

  `idplayer2`

    Second `player`'s ID.

  `idplayer3`

    Third `player`'s ID.

  `idplayer4`

    Fourth `player`'s ID.

  `idtourney`

    Subscribed `tourney`'s ID.

  property `nationality`

    Nationality of the first player

  `netscore`

    Net score (sum of carrommen difference in each match).

  `player1`

    First `player`.

  property `player1FirstName`

    First name of the first player

  property `player1FullName`

    Full name of the first player

  property `player1LastName`

    Last name of the first player

  property `player1Nationality`

    Nationality of the first player

  property `player1Sex`

    Gender of the first player

  `player2`

    Second `player`.

  property `player2FullName`

    Full name of the second player

  property `player2Nationality`

    Nationality of the second player

  `player3`

    Third `player`.

  property `player3FullName`

    Full name of the third player

  property `player3Nationality`

    Nationality of the third player

  `player4`

    Fourth `player`.

  property `player4FullName`

    Full name of the fourth player

  property `player4Nationality`

    Nationality of the fourth player

  `points`

    Points (number of wins * 2 + number of draws).

  `prize`

    Final prize.

  property `rank`

    The position of this competitor in the tourney's ranking.

  property `rate`

    Rate of this competitor, summing up all players rates

  `retired`

    A competitor may stop playing in the middle of the tourney.

  `serialize`(serializer)

    Reduce a single competitor to a simple dictionary.

    Parameters

      serializer -- a `Serializer` instance

    Return type

      dict

    Returns

      a plain dictionary containing a flatified view of this competitor

  `totscore`

    Total score (sum of carrommen in each match).

  `update`(data, missing_only=False)

    Update entity with given data.

    Parameters

      - data -- a mapping kind of container

      - missing_only -- a boolean flag, `False` by default

    Return type

      dict

    Returns

      a mapping between field name and a tuple `(oldvalue, newvalue)`, for each modified field

    First call `check_update()` to assert the validity of incoming data, then update the instance fields.

    If missing_only is `True` then only the fields that are currently empty (that is, their value is either `None` or an empty string) are updated. Note that in this case an exception is made for `bool` fields: since in SoL they always have a value (i.e. they are never missing), they are always updated.