### Navigation

- index
- modules |
- next |
- previous |
- Dev's documentation »
- SoL modules »
- `sol.models` – SQLAlchemy modelization »
- Entities »

# `sol.models.championship` – Championships

class `sol.models.championship.``Championship`(**kwargs)

  A series of tournaments organized by the same club.

  `closed`

    Whether the championships is close, and its ranking finalized.

  `couplings`

    Kind of pairing method used to build next round, used as default value for the corresponding field when creating a new tourney.

  `description`

    Description of the championship.

  `idchampionship`

    Primary key.

  `idclub`

    Organizer `club`‘s ID.

  `idowner`

    ID of the `user` that is responsible for this record.

  `idprevious`

    Previous championship’s ID.

  `owner`

    The `owner` of this record, admin when `None`.

  `playersperteam`

    Number of players per team.

  `previous`

    Previous championship.

  `prizes`

    Kind of prize-giving.

    This is used to determine which method will be used to assign final prizes. It may be:

    asis
      means that the final prize is a plain integer number, monotonically decreasing down to 1 starting from num-of-competitors: this is meant to give the chance of swapping competitors positions after tournament’s final rounds, the final prize column won’t even show up in the final ranking printout;
    fixed
      means the usual way, that is 18 points to the winner, 16 to the second, 14 to the third, 13 to the fourth, ..., 1 point to the 16th, 0 points after that;
    fixed40

      similar to fixed, but applied to best fourty scores starting from 1000:

      > 1. 1000
      > 2. 900
      > 3. 800
      > 4. 750
      > 5. 700
      > 6. 650
      > 7. 600
      > 8. 550
      > 9. 500
      > 10. 450
      > 11. 400
      > 12. 375
      > 13. 350
      > 14. 325
      > 15. 300
      > 16. 275
      > 17. 250
      > 18. 225
      > 19. 200
      > 20. 175
      > 21. 150
      > 22. 140
      > 23. 130
      > 24. 120
      > 25. 110
      > 26. 100
      > 27. 90
      > 28. 80
      > 29. 70
      > 30. 60
      > 31. 50
      > 32. 40
      > 33. 35
      > 34. 30
      > 35. 25
      > 36. 20
      > 37. 15
      > 38. 10
      > 39. 5
      > 40. 1

    millesimal
      is the classic method, that distributes a multiple of 1000/num-of-competitors;
    centesimal
      assigns 100 to the first ranked competitor, 1 to the last, linear interpolation to the other competitors.
  `ranking`(limit=None, onlywomen=False)

    Summarize the championship, collecting final prizes of the players.

    Parameters: | limit (either `None` or a date instance) – the earliest date to consider onlywomen (a boolean) – whether only women should be considered
    Return type: | a tuple of two slots

    For each tuple of players collect the earned prize in each tourney of the championship, or zero if the players did not participate to a given event.

    limit and onlywomen are used by the general rankings, to consider only last year tourneys and to produce women ranking respectively.

    Results in a tuple of two items, the first being a list of two slots tuples, respectively the date and the guid of a tourney, the second a list of tuples, sorted by total prize: each tuple contains five items, a tuple of players, their total prize, a list of their prizes sorted by date of event, the number of prizes and finally either None or a list of skipped prizes.

  `serialize`(serializer)

    Reduce a single championship to a simple dictionary.

    Parameters: | serializer – a `Serializer` instance
    Return type: | dict
    Returns: | a plain dictionary containing a flatified view of this championship

  `skipworstprizes`

    Number of worst results to skip in computing the ranking.

  `tourneys`

    `Tourneys` in this championship.

### Navigation

- index
- modules |
- next |
- previous |
- Dev's documentation »
- SoL modules »
- `sol.models` – SQLAlchemy modelization »
- Entities »