Bases: stalker.core.models.Entity, stalker.core.models.StatusMixin, stalker.core.models.ScheduleMixin
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:
If you want to have your own class to be taskable use 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: |
|
---|
Methods
__init__(**kwargs[, depends, effort, ...]) |
Attributes
bookings | A list of Booking instances showing who and when spent how much effort on this task. |
code | The code name of this object. |
created_by | The User who has created this object. |
created_by_id | |
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 Tasks 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. |
entity_id | |
entity_type | |
id | |
is_complete | A bool value showing if this task is completed or not. |
is_milestone | Specifies if this Task is a milestone. |
name | Name of this object |
nice_name | Nice name of this object. |
notes | All the Notess attached to this entity. |
priority | |
resources | The list of stalker.core.models.Users instances assigned to this Task. |
reviews | All the Reviews about this Entity. |
start_date | The date that this entity should start. |
status | |
status_list | |
status_list_id | |
tags | A list of tags attached to this object. |
task_id | |
task_of | An object that this Task is a part of. |
task_of_id | |
type | The type of the object. |
type_id | |
updated_by | The User who has updated this object. |
updated_by_id | |
versions | A list of Version instances showing the files created for this task. |
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.
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.
A list of Tasks 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.
The list of stalker.core.models.Users instances assigned to this Task.
An object that this Task is a part of.
The assigned object should have an attribute called tasks. Any object which is not inherited from TaskableEntity thus doesn’t have a tasks attribute which is mapped to the Tasks.task_of attribute will raise an AttributeError.
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:
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.
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.
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.
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 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.
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).
All the Notess attached to this entity.
It is a list of Note instances or an empty list, setting it None will raise a TypeError.
All the Reviews about this Entity.
It is a list of Review instances or an empty list, setting it None will raise a TypeError.
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()
A list of tags attached to this object.
It is a list of Tag instances which shows the tags of this object
The type of the object.
It is an instance of Type with a proper target_entity_type.