Table Of Contents

Previous topic

Stalker Development Roadmap

Next topic

stalker.db

This Page

Stalker Changes

v0.1.1.a6

v0.1.1.a5

v0.1.1.a4

  • changed the arguments of the stalker.db.mixins.ReferenceMixin.setup() function, to allow carrying the data from one to the next mixin (this part still needs a lot of attention)
  • removed the unnecessary statusedEntity_statuses secondary table, because one stalker.core.models.entity.StatusedEntity owns just one stalker.core.models.status.StatusList its a many2one relation, so no need to have a secondary table
  • introduced the stalker.core.models.mixin.StatusMixin (will replace StatusedEntity soon)
  • Added a new example for the usage of stalker.core.models.mixin.StatusMixin
  • Updated the stalker.db.mixins.ReferenceMixin.setup() function, now it takes three arguments, the class, the table and the mapper_options dictionary.

v0.1.1.a3

  • Removed the included tests from the egg build

  • Added/fixed equality and inequality operators for classes:
  • stalker.core.models.entity.SimpleEntity now has a **kwargs in the __init__() so it doesn’t give TypeError for extra keywords

  • added stalker.core.models.entity.EntityMeta metaclass which adds entity_type attribute and sets its value to the unicode version of the name of the class

  • the stalker.core.models.entity.SimpleEntity uses the stalker.core.models.entity.EntityMeta metaclass to automatically add all the entity_type attribute to all the derived classes

  • all the mappers now uses the ClassName.entity_type class attribute as the polymorphic discriminator (polymorphic identity)

  • instead of LBYL moving toward EAFP idiom for all the models in the stalker.core

  • stalker.core.models.status.StatusList now supports indexing

  • stalker.core.models.status.StatusList now has an target_entity_type attribute which accepts strings with the class name and shows the compatible class of this stalker.core.models.status.StatusList

  • stakler.core.models.status.StatusList.__eq__() now checks for the target_entity_type also

  • stalker.core.models.status.StatusedEntity now checks for the given stalker.core.models.StatusList.target_entity_type for compability with the current class

  • All the validation methods in the stalker.core.models now has the validate word in their name instead of check

  • Little fixes:
  • Added persistence tests for stalker.core.models.entity.StatusedEntity

  • Added stalker.utils.path_to_exec() which converts the given module full paths to an executable python code which imports the given python object to the current namespace

  • Added entity_types table to hold the possible entity types in Stalker. The content of the table comes from the stalker.conf.defaults.CORE_MODEL_CLASSES list. And possibly going to be extended by the users.

  • Added stalker.db.__setup__.__fill_entity_types_table__() which fills the entity_types table with default values.

  • stalker.core.models.user.User class now has initials attribute, which is automatically calculated from the first and last name if there is no one given.

  • Atarted developing the stalker.core.models.message.Message class

  • Added the stalker.core.models.mixin module which holds the common mixins

  • Added the stalker.core.models.mixin.ReferenceMixin class which gives reference abilities to mixed in classes

  • Added the database part of the stalker.core.models.mixin.ReferenceMixin. Now it is possible to create a new type of entity and mix it with ReferenceMixin and also persist it in the database. But it needs a lot of effort before to have something usable.

  • Added examples module, which holds usage examples and recipes

  • Added an example about how to create a new mixed in entity type for SOM.

v0.1.1.a2

v0.1.1.a1

v0.1.1.a0

  • Changed the versioning scheme a little bit to follow the setuptools guide

v0.1.0.20110111.1

  • Persistence tests for Link is now fixed
  • Now every table correctly has a primary_key

v0.1.0.20110110.1

v0.1.0.20110108.1

  • Template class is renamed to TypeTemplate and moved inside stalker.core.models.typeEntity to prevent the name clashing with Jinja2 Template class
  • added __eq__ to stalker.core.models.entity.SimpleEntity and still trying to add it to the derived classes
  • organised the project structure to conform setup tools for PyPI

v0.1.0.20110107.2

  • updating the db tests
  • stalker.core.models.user.User class is now allowed to have its department to be set None

v0.1.0.20110107.1

  • organised the existent tests

v0.1.0.20110106.2

  • added nice_name property to the stalker.core.models.entity.SimpleEntity class
  • added tests for stalker.core.models.structure.Structure class
  • implemented the stalker.core.models.structure.Structure class
  • added last_login attribute to the stalker.core.models.user.User class and added all the tests

v0.1.0.20110106.1

  • re-introduced the link.Link, which has a general meaning than reference.Reference (I bet it will be reference again tomorrow)
  • stalker.models moved to stalker.core.models
  • renamed tests/z_db to tests/db, because the sqlalchemy/mocker problem is solved by moving the models to core/models

v0.1.0.20110105

  • improved the stalker.models.template.Template class documentation, and added an example showing the usage of it.

v0.1.0.20110104

  • removed the link.Link and introduced reference.Reference and typeEntity.ReferenceType classes, which I think are more organised then the previous design.
  • reorganised the AssetType and ReferenceType objects by introducing the new TypeEntity class and deriving the AssetType and ReferenceType from this class
  • added ProjectType class to hold different project types (like Commercial, Film, Still etc., it is different than having a Commercial Structure object)
  • removed AssetTemplate and ReferenceTemplate concepts and generalised the Template class by adding a type parameter to it, which accepts TypeEntity and classes derived from TypeEntity.

v0.1.0.20110103.2

  • added login_required decorator to the stalker.db.auth module, but the implementation is not done yet

v0.1.0.20110103

  • user.User._password is now scrambled, but the password property uses the raw password
  • added stalker.db.auth for authentication, removed the db.login function.

v0.1.0.20110102

  • added the error.LoginError exception for login errors
  • started to add tests for db.login function

v0.1.0.20101231

  • moved the login function to the db.__init__ to let it used just after setting up the database without importing any new module
  • updated the example in the docstring of the template.AssetTemplate

v0.1.0.20101229.3

  • generalised the Template class. Now every Entity can be assigned to a template, it is not limited with Assets or References.

v0.1.0.20101229.2

  • entity.SimpleEntity.name now can have white spaces, but not at the beginning or end, just in the middle
  • done mapping template.Template class

v0.1.0.20101229.1

  • trying to create a session system with Beaker, to hold user login information
  • done mapping assetType.AssetType class
  • done mapping pipelineStep class

v0.1.0.20101228.1

  • added repositories table and mapper for the repository.Repository class
  • added imageFormats table and mapper for the imageFormat.ImageFormat class
  • renamed extensions module to ext
  • added roadmap to docs

v0.1.0.20101228

  • created the block of database tests
  • added stalker.db.meta.__mappers__ list to hold the mappers and use it to check if anything is already mapped
  • added tests for db initialisation
  • removed the whole stalker.models.unit module from SOM, only TimeUnit was usable in some cases, but in fact it is also not important, the only object using TimeUnit was the Project class and it can go well without it. Don’t need to make things more complex than it needs to be.
  • increased the version number to 0.1.0 to follow the stalker roadmap

v0.0.1.20101227

  • the test_db is converted to a proper unittest which is testing all the models one by one
  • test/db renamed to test/z_db to let nose run it latest to solve the problem about mocker and sqlalchemy fighting each other.
  • Mapping syntax is changed a little bit, now to do the mapping, the <mapper>.setup() function needs to be called to be able to do the mapping any time
  • started adding tests for every class in SOM

v0.0.1.20101226

  • in user.User the last_name attribute could be an empty string
  • removed SimpleEntity, TaggedEntity and introduced StatusedEntity to make the inheritance clear and let users to find somebody to blame by moving all the audit information to the the SimpleEntity class in which everything is inherited from. Now even a Tag has audit information.

v0.0.1.20101225

  • entity.AuditEntity.created_by can now be None (for now)
  • user.User.last_name can now be None, to let users like admin have no last name
  • creating tables for catch the general inheritance of the entity classes
  • entitiy.SimpleEntity.name’s first letter is not capitalised any more
  • department.Department class now accepts Null for lead attribute (for now again)

v0.0.1.20101224

  • started playing with the SQLAlchemy side of the system

v0.0.1.20101223

  • updating the documentation
  • AuditEntity now accepts None for updated_by attribute when it an object is created, but sets it to the same value with created_by attribute

v0.0.1.20101219

  • started to implement: * a database entry point * a customisable object model and database tables * an automatic mapper to map the objects and tables together according to

    user settings

    things can change a lot in this phase, I’m just trying to figure out the best possible way to do it.

  • added a new entity type called TaggedEntity which derives from SimpleEntity, and moved all the tag related attributes of SimpleEntity to TaggedEntity, and all the child classes deriving from SimpleEntity now derives from TaggedEntity, also moved the tests related with tag in SimpleEntity to TaggedEntity.

  • tag.Tag now derives from the SimpleEntity and doesn’t add any other attribute to its super.

  • updated tests for tag.Tag

  • updated docs for TaggedEntity

  • finished implementing the Department object and its tests

  • removed the notes attribute from the Entity class

v0.0.1.20101209

  • added the inheritance diagram as an rst page to reference it anywhere needed
  • added the empty classes for: * Asset * AssetBase * Booking * Shot * Structure * Template * Version
  • added the Department class
  • added inheritance diagrams to the autosummary pages of the classes