sol.models.player – Players

class sol.models.player.Player(**kwargs)

A single person.

agreedprivacy

Whether the player explicitly accepted the privacy policy: his name and other details will be dimmed if he did not.

birthdate

Date of birth of the player.

caption(html=None, localized=True, css_class=None)

Description of the player, made up concatenating his names.

classmethod check_insert(session, fields)

Prevent duplicated players.

check_update(fields)

Perform any check before updating the instance.

citizenship

Whether the player belongs legally to the given country or not.

country

The name of the player’s country.

delete()

Prevent deletion if this player is involved in some tourney.

description

Description of the player, made up concatenating his names.

email

Email address of the player.

classmethod find(session, lastname, firstname, nickname='', guid=None)

Find a player, even after it has been merged into another.

Parameters:
  • session – an SQLAlchemy session
  • lastname – a string, the last name of the player
  • firstname – a string, the first name of the player
  • nickname – a string, the nick name of the player
  • guid – the hex string of an UUID
Return type:

a tuple

This tries to find the given player by looking for it first in the players table then in the merged_players table, either by guid or by name.

If found, it returns a tuple with the current player (that is, the eventual target of the merge) and a boolean flag, False when it is current or True if it has been merged.

If not found it returns a (None, False) tuple.

firstname

Player’s first name.

idclub

Membership club’s ID.

idfederation

Membership federation’s ID.

idowner

ID of the user that is responsible for this record.

idplayer

Primary key.

language

The ISO code of the preferred language of the player.

lastname

Player’s last name.

matchesSummary()

Return the number of won, lost, tied and single matches.

mergePlayers(other_players, clogger=None)

Merge multiple players into a single one.

Parameters:other_players – a sequence of players ids or guids, or tuples like (guid, lastname, firstname, nickname)
Return type:a list of replaced players descriptions

This will replace the specified players with this one wherever they participated to a game, either in singles or team events.

This is obviously possible only when the specified players didn’t play together in any tourney.

The old names are stored in the table merged_players with a reference to the current player (that is, self), so that they can be correctly resolved in the future.

merged

A possibly empty list of MergedPlayer that has been merged into this one.

nationality

ISO country code to compute national rankings.

nickname

Player’s nickname.

opponentMatches(opponent)

Return the list of matches against the opponent.

opponents()

Return a summary of the opponents this player met, in singles.

owner

The owner of this record, admin when None.

participations()

Return the list of competitors involving this player.

phone

Phone number of the player.

portrait

Picture of the player, used by lit.

This is just the filename, referencing a picture inside the sol.portraits_dir directory.

serialize(serializer)

Reduce a single player to a simple dictionary.

Parameters:serializer – a Serializer instance
Return type:dict
Returns:a plain dictionary containing a flatified view of this player
sex

Player’s gender: F means female, M means male.

shouldOmitNickName(_non_word_letters=re.compile('\\W'))

Determine if the nickname should be omitted because redundant.