Bases: stalker.models.entity.Entity, stalker.models.mixins.ReferenceMixin, stalker.models.mixins.StatusMixin, stalker.models.mixins.DateRangeMixin, stalker.models.mixins.CodeMixin
All the information about a Project in Stalker is hold in this class.
Project is one of the main classes that will direct the others. A project in Stalker is a gathering point.
It is mixed with ReferenceMixin, StatusMixin, DateRangeMixin and CodeMixin to give reference, status, schedule and code attribute. Please read the individual documentation of each of the mixins.
Project Users
The Project.users attribute lists the users in this project. UIs like task creation for example will only list these users as available resources for this project.
TaskJuggler Integration
Stalker uses TaskJuggler for scheduling the project tasks. The Project.to_tjp attribute generates a tjp compliant string which includes the project definition, the tasks of the project, the resources in the project including the vacation definitions and all the time logs recorded for the project.
For custom attributes or directives that needs to be passed to TaskJuggler you can use the Project.custom_tjp attribute which will be attached to the generated tjp file (inside the “project” directive).
To manage all the studio projects at once (schedule them at once please use Studio).
| Parameters: |
|
|---|
Methods
| __init__([name, code, client, repository, ...]) | |
| round_time(dt) | Round the given datetime object to the defaults.timing_resolution. |
Attributes
| active | |
| assets | returns the assets related to this project |
| budgets | |
| client | The client company assigning the studio with the project. |
| client_id | |
| code | The code name of this object. |
| computed_duration | returns the computed_duration as the difference of computed_start |
| computed_end | |
| computed_start | |
| computed_total_seconds | returns the duration as seconds |
| created_by | The User who has created this object. |
| created_by_id | The id of the User who has created this entity. |
| dailies | |
| date_created | A datetime.datetime instance showing the creation date and time of this object. |
| date_updated | A datetime.datetime instance showing the update date and time of this object. |
| description | Description of this object. |
| duration | Duration of the entity. |
| end | The date that the entity should be delivered. |
| entity_id | |
| entity_type | |
| fps | The fps of the project. |
| generic_data | This attribute can hold any kind of data which exists in SOM. |
| generic_text | This attribute can hold any text. |
| html_class | |
| html_style | |
| id | |
| image_format | The ImageFormat of this project. |
| image_format_id | |
| is_active | predicate for Project.active attribute |
| is_stereoscopic | True if the project is a stereoscopic project |
| metadata | A collection of Table objects and their associated schema constructs. |
| name | Name of this object |
| nice_name | Nice name of this object. |
| notes | All the Notess attached to this entity. |
| open_tickets | The list of open Tickets in this project. |
| pages | |
| percent_complete | returns the percent_complete based on the total_logged_seconds and |
| plural_class_name | the plural name of this class |
| project_id | |
| query | ORM-level SQL construction object. |
| references | A list of Link instances given as a reference for this entity. |
| repository | The Repository that this project should reside. |
| repository_id | |
| root_tasks | returns a list of Tasks which have no parent |
| scenes | |
| schedule_seconds | returns an integer showing the total amount of schedule timing of |
| sequences | returns the sequences related to this project |
| shots | returns the shots related to this project |
| start | The date that this entity should start. |
| status | The current status of the object. |
| status_id | |
| status_list | |
| status_list_id | |
| structure | The structure of the project. |
| structure_id | |
| tags | A list of tags attached to this object. |
| tasks | |
| thumbnail | |
| thumbnail_id | |
| tickets | |
| tjp_id | returns TaskJuggler compatible id |
| to_tjp | returns a TaskJuggler compatible string representing this project |
| total_logged_seconds | returns an integer representing the total TimeLog seconds recorded |
| total_seconds | returns the duration as seconds |
| type | The type of the object. |
| type_id | The id of the Type of this entity. |
| updated_by | The User who has updated this object. |
| updated_by_id | The id of the User who has updated this entity. |
| user_role | |
| users | A descriptor that presents a read/write view of an object attribute. |
The Repository that this project should reside.
Should be an instance of Repository. It is a read-only attribute. So it is not possible to change the repository of one project.
The client company assigning the studio with the project.
Should be an instance of Client, can also be set to None.
The ImageFormat of this project.
This value defines the output image format of the project, should be an instance of ImageFormat.
The fps of the project.
It is a float value, any other types will be converted to float. The default value is 25.0.
True if the project is a stereoscopic project
The code name of this object.
It accepts strings. Can not be None.
returns an integer representing the total TimeLog seconds recorded in child tasks.
returns an integer showing the total amount of schedule timing of the in child tasks in seconds
returns the percent_complete based on the total_logged_seconds and schedule_seconds of the root tasks.
The list of open Tickets in this project.
returns a list of Ticket instances which has a status of Open and created in this project.
returns the computed_duration as the difference of computed_start and computed_end if there are computed_start and computed_end otherwise returns None
returns the duration as seconds
A datetime.datetime instance showing the creation date and time of this object.
A datetime.datetime instance showing the update date and time of this object.
Description of this object.
Duration of the entity.
It is a datetime.timedelta instance. Showing the difference of the start and the end. If edited it changes the end attribute value.
The date that the entity should be delivered.
The end can be set to a datetime.timedelta and in this case it will be calculated as an offset from the start and converted to datetime.datetime again. Setting the start to a date passing the end will also set the end, so the timedelta between them is preserved, default value is 10 days
This attribute can hold any kind of data which exists in SOM.
This attribute can hold any text.
Name of this object
Nice name of this object.
It has the same value with the name (contextually) but with a different format like, all the white spaces replaced by underscores (“_”), all the CamelCase form will be expanded by underscore (_) characters and it is always lower case.
All the Notess attached to this entity.
It is a list of Note instances or an empty list, setting it to None will raise a TypeError.
the plural name of this class
Round the given datetime object to the defaults.timing_resolution.
Uses stalker.defaults.timing_resolution as the closest number of seconds to round to.
| Parameters: | dt (datetime.datetime) – datetime.datetime object, defaults to now. |
|---|
Based on Thierry Husson’s answer in Stackoverflow
Stackoverflow : http://stackoverflow.com/a/10854034/1431079
The date that this entity should start.
Also effects the DateRangeMixin.end attribute value in certain conditions, if the DateRangeMixin.start is set to a time passing the DateRangeMixin.end it will also offset the DateRangeMixin.end to keep the DateRangeMixin.duration value fixed. DateRangeMixin.start should be an instance of class:datetime.datetime and the default value is datetime.datetime.now()
The current status of the object.
It is a Status instance which is one of the Statuses stored in the status_list attribute of this object.
A list of tags attached to this object.
It is a list of Tag instances which shows the tags of this object
returns TaskJuggler compatible id
returns the duration as seconds
The type of the object.
It is an instance of Type with a proper Type.target_entity_type.