sol.models -- SQLAlchemy modelization — SoL 4 developers documentation

# `sol.models` -- SQLAlchemy modelization

The application's model objects

class sol.models.AbstractBase

  Abstract base entity class.

  caption(html=None, localized=True)

    Return a possibly HTML-decorated caption of the entity.

    Parameters

      - html -- either `None` (the default) or a boolean value

      - localized -- a boolean value, `True` by default

    Return type

      str

    If html is `None` or `True` then the result may be an HTML representation of the entity, otherwise it is plain text.

    If localized is `False` then the localization is turned off.

  classmethod check_insert(session, fields, user_id)

    Perform any check before an new instance is inserted.

    Parameters

      - session -- the SA session

      - fields -- a dictionary with the fields values

      - user_id -- either the string "admin" or the ID of the user performing the operation

  check_update(fields)

    Perform any check before updating the instance.

    Parameters

      fields -- a mapping containing `fieldname -> value` associations

    This implementation does nothing, but subclasses can override it at will, either to adapt incoming values or to check their validity, raising an exception if something is wrong.

  delete()

    Delete this instance from the database.

  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.

class sol.models.GloballyUnique

  Mixin class for globally unique identified entities.

  guid

    A global unique identifier for this entity.

  modified = Column(None, DateTime(), table=None, nullable=False, server_default=DefaultClause(<sqlalchemy.sql.functions.now at 0x7f83f3d37dc0; now>, for_update=False))

    Last update timestamp.

- `sol.models.bio` -- Batched I/O
- Entities
  - `sol.models.boards` -- Boards
  - `sol.models.championship` -- Championships
  - `sol.models.club` -- Clubs
  - `sol.models.competitor` -- Competitors
  - `sol.models.match` -- Matches
  - `sol.models.mergedplayer` -- Merged players
  - `sol.models.player` -- Players
  - `sol.models.rate` -- Player rates
  - `sol.models.rating` -- Ratings
  - `sol.models.tourney` -- Tournaments
  - `sol.models.user` -- User
- `sol.models.utils` -- Utilities