diff --git a/cor_custom/models/analytic.py b/cor_custom/models/analytic.py index 716634b..3df681a 100755 --- a/cor_custom/models/analytic.py +++ b/cor_custom/models/analytic.py @@ -8,6 +8,7 @@ import math from datetime import datetime, time, timedelta from odoo.tools.float_utils import float_round from odoo.tools import DEFAULT_SERVER_DATE_FORMAT, ustr +import dateutil.parser class AccountAnalyticLine(models.Model): @@ -18,6 +19,17 @@ class AccountAnalyticLine(models.Model): unit_amount = fields.Float('Duration', default=0.0) parent_project = fields.Many2one('project.project', string='Parent Project') + + def _default_start_datetime(self): + return fields.Datetime.to_string(datetime.combine(fields.Datetime.now(), datetime.min.time())) + + def _default_end_datetime(self): + return fields.Datetime.to_string(datetime.combine(fields.Datetime.now(), datetime.max.time())) + + start_datetime = fields.Datetime("Start Time", required=True, default=_default_start_datetime) + end_datetime = fields.Datetime("End Time", required=True, default=_default_end_datetime) + + @api.onchange('project_id') def _onchange_parent_project_id(self): if self.project_id: @@ -30,7 +42,6 @@ class AccountAnalyticLine(models.Model): self.parent_project = False - @api.onchange('employee_id') def _onchange_employee_id(self): domain = [] @@ -135,6 +146,8 @@ class AccountAnalyticLine(models.Model): def create(self, vals): if vals.get('unit_amount') == 0.0: raise ValidationError(_("Your can not fill 0.0 hour entry")) + if vals.get('unit_amount') >= 24.0: + raise ValidationError(_("Your can not fill more than 24.0 hour entry")) value = super(AccountAnalyticLine, self).create(vals) if value and value.project_id: value.project_id._onchange_calculate_timesheet_hours() @@ -149,3 +162,8 @@ class AccountAnalyticLine(models.Model): if self.project_id: self.project_id._onchange_calculate_timesheet_hours() return res + + @api.onchange('start_datetime', 'end_datetime') + def _onchange_start_end_date(self): + if self.start_datetime: + self.date = self.start_datetime.date() diff --git a/cor_custom/views/analytic_view.xml b/cor_custom/views/analytic_view.xml index 8160eb9..a867918 100755 --- a/cor_custom/views/analytic_view.xml +++ b/cor_custom/views/analytic_view.xml @@ -21,8 +21,10 @@ - - + + + + + + + account.analytic.line.tree.hr_timesheet + account.analytic.line + + + + + + + + + + + + + + + + + @@ -81,7 +111,8 @@ account.analytic.line.calendar account.analytic.line - + @@ -89,7 +120,7 @@ - + calendar @@ -100,7 +131,7 @@ My Timesheets account.analytic.line - tree,form,kanban,calendar + calendar,tree,form,kanban [('project_id', '!=', False), ('user_id', '=', uid)] { "search_default_week":1, @@ -117,19 +148,57 @@ + + account.analytic.line.form + account.analytic.line + 1 + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ account.analytic.line.calendar account.analytic.line - + + - + calendar