diff --git a/CHANGELOG b/CHANGELOG
index 1a6ae6ebc2..bc8b65a985 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,5 @@
+* Add start/end date to work for timesheet
+
Version 2.6.0 - 2012-10-22
* Bug fixes (see mercurial logs for details)
diff --git a/line.py b/line.py
index 1b3230866e..2f94583b1a 100644
--- a/line.py
+++ b/line.py
@@ -23,9 +23,18 @@ class Line(ModelSQL, ModelView):
date = fields.Date('Date', required=True, select=True)
hours = fields.Float('Hours', digits=(16, 2), required=True)
work = fields.Many2One('timesheet.work', 'Work',
- required=True, select=True, domain=[
- ('timesheet_available', '=', True),
- ])
+ required=True, select=True, domain=[
+ ('timesheet_available', '=', True),
+ ['OR',
+ ('timesheet_start_date', '=', None),
+ ('timesheet_start_date', '<=', Eval('date')),
+ ],
+ ['OR',
+ ('timesheet_end_date', '=', None),
+ ('timesheet_end_date', '>=', Eval('date')),
+ ],
+ ],
+ depends=['date'])
description = fields.Char('Description')
@classmethod
diff --git a/work.py b/work.py
index cf4ac4d331..fe65ddbe17 100644
--- a/work.py
+++ b/work.py
@@ -30,6 +30,16 @@ class Work(ModelSQL, ModelView):
'readonly': Bool(Eval('timesheet_lines', [0])),
},
help="Allow to fill in timesheets with this work")
+ timesheet_start_date = fields.Date('Timesheet Start',
+ states={
+ 'invisible': ~Eval('timesheet_available'),
+ },
+ depends=['timesheet_available'])
+ timesheet_end_date = fields.Date('Timesheet End',
+ states={
+ 'invisible': ~Eval('timesheet_available'),
+ },
+ depends=['timesheet_available'])
company = fields.Many2One('company.company', 'Company', required=True,
select=True)
timesheet_lines = fields.One2Many('timesheet.line', 'work',
diff --git a/work.xml b/work.xml
index 93a6fab09e..4f8bdffa26 100644
--- a/work.xml
+++ b/work.xml
@@ -17,6 +17,10 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+