stalker.models.task.TimeLog¶
-
class
stalker.models.task.
TimeLog
(task=None, resource=None, start=None, end=None, duration=None, **kwargs)[source]¶ Bases:
stalker.models.entity.Entity
,stalker.models.mixins.DateRangeMixin
Holds information about the uninterrupted time spent on a specific
Task
by a specificUser
.It is so important to note that the TimeLog reports the uninterrupted time interval that is spent for a Task. Thus it doesn’t care about the working time attributes like daily working hours, weekly working days or anything else. Again it is the uninterrupted time which is spent for a task.
Entering a time log for 2 days will book the resource for 48 hours and not, 2 * daily working hours.
TimeLogs are created per resource. It means, you need to record all the works separately for each resource. So there is only one resource in a TimeLog instance.
A
TimeLog
instance needs to be initialized with aTask
and aUser
instances.Adding overlapping time log for a
User
will raise aOverBookedError
.Parameters: -
__init__
(task=None, resource=None, start=None, end=None, duration=None, **kwargs)¶
Methods
__init__
([task, resource, start, end, duration])round_time
(dt)Round the given datetime object to the defaults.timing_resolution. Attributes
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.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_groups
entity_id
entity_type
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
metadata
name
Name of this object nice_name
Nice name of this object. notes
All the Notes
s attached to this entity.plural_class_name
the plural name of this class query
resource
The User
instance that this time_log is created forresource_id
start
The date that this entity should start. tags
A list of tags attached to this object. task
The Task
instance that this time log is created fortask_id
The id of the related task. thumbnail
thumbnail_id
time_log_id
tjp_id
returns TaskJuggler compatible id to_tjp
renders a TaskJuggler compliant string used for TaskJuggler 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.-
task_id
¶ The id of the related task.
-
computed_duration
¶ returns the computed_duration as the difference of computed_start and computed_end if there are computed_start and computed_end otherwise returns None
-
computed_total_seconds
¶ returns the duration as seconds
-
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.
It is a datetime.timedelta instance. Showing the difference of the
start
and theend
. If edited it changes theend
attribute value.
-
end
¶ 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
-
generic_data
¶ This attribute can hold any kind of data which exists in SOM.
-
generic_text
¶ This attribute can hold any text.
-
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.
-
notes
¶ All the
Notes
s attached to this entity.It is a list of
Note
instances or an empty list, setting it to None will raise a TypeError.
-
plural_class_name
¶ the plural name of this class
-
round_time
(dt)¶ 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
-
start
¶ The date that this entity should start.
Also effects the
DateRangeMixin.end
attribute value in certain conditions, if theDateRangeMixin.start
is set to a time passing theDateRangeMixin.end
it will also offset theDateRangeMixin.end
to keep theDateRangeMixin.duration
value fixed.DateRangeMixin.start
should be an instance of class:datetime.datetime and the default value isdatetime.datetime.now(pytz.utc)()
A list of tags attached to this object.
It is a list of
Tag
instances which shows the tags of this object
-
tjp_id
¶ returns TaskJuggler compatible id
-
to_tjp
¶ renders a TaskJuggler compliant string used for TaskJuggler integration. Needs to be overridden in inherited classes.
-
total_seconds
¶ returns the duration as seconds
-
type
¶ The type of the object.
It is a
Type
instance with a properType.target_entity_type
.
-