stalker.core.models.Task — Stalker v0.1.1.a9 documentation

### Navigation

- index
- next |
- previous |
- Stalker v0.1.1.a9 documentation »

# stalker.core.models.Task

class `stalker.core.models.` `Task`(depends=None, effort=None, resources=None, milestone=False, priority=500, part_of=None, **kwargs)

  Bases: `stalker.core.models.Entity`, `stalker.core.mixins.StatusMixin`, `stalker.core.mixins.ScheduleMixin`, `stalker.core.mixins.ProjectMixin`

  Manages Task related data.

  Tasks are the smallest meaningful part that should be accomplished to complete the a `Project`.

  In Stalker, currently these items supports Tasks:

  > - `Project`
  > - `Sequence`
  > - `Asset`
  > - `Shot`

  If you want to have your own class to be taskable user the `TaskMixin` to add the ability to connect a `Task` to it.

  The Task class itself is mixed with `StatusMixin` and `ScheduleMixin`. To be able to give the `Task` a Status and a start and end time.

  Parameters: | priority (int) – It is a number between 0 to 1000 which defines the priority of the `Task`. The higher the value the higher its priority. The default value is 500. resources (list of `User`) – The `User`s assigned to this `Task`. A `Task` without any resource can not be scheduled. effort (datetime.timedelta) – The total effort that needs to be spend to complete this Task. Can be used to create an initial bid of how long this task going to take. The effort is equaly divided to the assigned resources. So if the effort is 10 days and 2 `resources` is assigned then the `duration` of the task is going to be 5 days (if both of the resources are free to work). The default value is stalker.conf.defaults.DEFAULT_TASK_DURATION. The effort argument defines the `duration` of the task. Every resource is counted equally effective and the `duration` will be calculated by the simple formula: And changing the `duration` will also effect the `effort` spend. The `effort` will be calculated with the formula: depends (list of `Task`) – A list of `Task`s those this `Task` is dependening on. milestone (bool) – A bool (True or False) value showing if this task is a milestone which doesn’t need any resource and effort. part_of (`SimpleEntity`.) – A `SimpleEntity` instance that has this `Task`. Now this one creates a little hole in the system, cause not all of the `SimpleEntity` instances has `tasks` attribute. Only classes that has been mixed with `TasksMixin` has the attribute called `tasks`. But it needed to be done in this way cause Stalker is designed to be used in a relational database (although you can opt not to use one), and in the ORM of the database, possibly everything is going to be derived from the `SimpleEntity` and the mixed in classes are not going to have individual tables. Anyway you got the point, it needs to be something that is represented in the database.

  `__init__`(depends=None, effort=None, resources=None, milestone=False, priority=500, part_of=None, **kwargs)

  Methods

  `__init__`(**kwargs[, depends, effort, ...]) |

  Attributes

  `bookings` | A list of `Booking` objects
  `code` | The code name of this object.
  `complete` | A bool value showing if this task is completed or not.
  `created_by` | The `User` who has created this object.
  `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.
  `depends` | A list of `Task`s that this one is depending on.
  `description` | Description of this object.
  `due_date` | The date that the entity should be delivered.
  `duration` | The overriden duration attribute.
  `effort` | The total effort that needs to be spend to complete this Task.
  `milestone` | Specifies if this Task is a milestone.
  `name` | Name of this object
  `nice_name` | Nice name of this object.
  `notes` | All the notes about this entity.
  `part_of` | The :class:`~satlker.core.models.SimpleEntity derivative that this Task is a part of.
  `priority` | The priority of the current Task.
  `project` | A `Project` instance showing the
  `resources` | The list of `stalker.core.models.User`s instances
  `start_date` | The date that this entity should start.
  `status` | The current status index of the object.
  `status_list` | The list of statuses that this object can have.
  `tags` | A list of tags attached to this object.
  `type` | The type of the object.
  `updated_by` | The `User` who has updated this object.
  `versions` | A list of `Version` instances

  `bookings`

    A list of `Booking` objects showing who and when spent how much effort on this task.

  `complete`

    A bool value showing if this task is completed or not.

    There is a good article about why not to use an attribute called `percent_complete` to measure how much the task is completed.

  `depends`

    A list of `Task`s that this one is depending on.

    A CircularDependencyError will be raised when the task dependency creates a circlar dependency which means it is not allowed to create a dependency for this Task which is depending on another one which in some way depends to this one again.

  `duration`

    The overriden duration attribute.

    It is a datetime.timedelta instance. Showing the difference of the `start_date` and the `due_date`. If edited it changes the `due_date` attribute value.

  `effort`

    The total effort that needs to be spend to complete this Task.

    Can be used to create an initial bid of how long this task going to take. The effort is equaly divided to the assigned resources. So if the effort is 10 days and 2 resources is assigned then the `duration` of the task is going to be 5 days (if both of the resources are free to work). The default value is stalker.conf.defaults.DEFAULT_TASK_DURATION.

    The effort defines the `duration` of the task. Every resource is counted equally effective and the `duration` will be calculated by the simple formula:

    And changing the `duration` will also effect the `effort` spend. The `effort` will be calculated with the formula:

  `milestone`

    Specifies if this Task is a milestone.

    Milestones doesn’t need any duration, any effort and any resources. It is used to create meaningfull dependencies between the critical stages of the project.

  `resources`

    The list of `stalker.core.models.User`s instances assigned to this Task.

  `part_of`

    The :class:`~satlker.core.models.SimpleEntity derivative that this Task is a part of.

  `priority`

    The priority of the current Task.

    It is a number between 0 and 1000 shows how important this task is among the others.

  `versions`

    A list of `Version` instances showing the files created for this task.

  `code`

    The code name of this object.

    It accepts string or unicode values and any other kind of objects will be converted to string. In any update to the name attribute the code also will be updated. If the code is not initialized or given as None, it will be set to the uppercase version of the nice_name attribute. Setting the code attribute to None will reset it to the default value. The default value is the upper case form of the nice_name.

  `created_by`

    The `User` who has created this object.

  `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.

  `due_date`

    The date that the entity should be delivered.

    The due_date can be set to a datetime.timedelta and in this case it will be calculated as an offset from the start_date and converted to datetime.date again. Setting the start_date to a date passing the due_date will also set the due_date so the timedelta between them is preserved, default value is 10 days

  `name`

    Name of this object

  `nice_name`

    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.

    There is also the `code` attribute which is simply the upper case form of `nice_name` if it is not defined differently (i.e set to another value).

  `notes`

    All the notes about this entity.

    It is a list of `Note` objects or an empty list, None will be converted to an empty list.

  `project`

    A `Project` instance showing the relation of this object to a Stalker `Project`

  `start_date`

    The date that this entity should start.

    Also effects the `due_date` attribute value in certain conditions, if the `start_date` is set to a time passing the `due_date` it will also offset the `due_date` to keep the `duration` value fixed. `start_date` should be an instance of class:datetime.date and the default value is `datetime.date.today()`

  `status`

    The current status index of the object.

    This is an integer value and shows the index of the `Status` object in the `StatusList` of this object.

  `status_list`

    The list of statuses that this object can have.

  `tags`

    A list of tags attached to this object.

    It is a list of `Tag` instances which shows the tags of this object

  `type`

    The type of the object.

    It is an instance of `Type` with a proper `target_entity_type`.

  `updated_by`

    The `User` who has updated this object.

### Navigation

- index
- next |
- previous |
- Stalker v0.1.1.a9 documentation »