sol.models.championship – Championships

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

A series of tournaments organized by the same club.

classmethod check_insert(klass, session, fields)

Check description validity

check_update(fields)

Check description validity

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.