Merge branch 'development' of http://103.74.223.20:8085/prakash.jain/cor-odoo into development

This commit is contained in:
projectsodoo 2021-02-18 12:31:31 +05:30
commit df3fb64016
2 changed files with 98 additions and 11 deletions

View File

@ -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()

View File

@ -21,8 +21,10 @@
<field name="inherit_id" ref="hr_timesheet.view_task_form2_inherited"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='timesheet_ids']//tree//field[@name='name']" position="after">
<field name="start_time" widget="float_time"/>
<field name="end_time" widget="float_time"/>
<field name="start_time" widget="float_time" invisible="1"/>
<field name="end_time" widget="float_time" invisible="1"/>
<field name="start_datetime" string="Start date"/>
<field name="end_datetime" string="End date"/>
</xpath>
<!--<xpath expr="//field[@name='timesheet_ids']//tree//field[@name='unit_amount']" position="after">
<field name="parent_project"/>
@ -41,19 +43,47 @@
</field>
</record>
<record id="hr_timesheet_line_tree_inherit1" model="ir.ui.view">
<!--<record id="hr_timesheet_line_tree_inherit1" model="ir.ui.view">
<field name="name">account.analytic.line.tree.hr_timesheet_inherit1</field>
<field name="model">account.analytic.line</field>
<field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="start_time" widget="float_time"/>
<field name="end_time" widget="float_time"/>
<field name="start_time" widget="float_time" invisible="1"/>
<field name="end_time" widget="float_time" invisible="1"/>
<field name="start_datetime" string="Start date"/>
<field name="end_datetime" string="End date"/>
</xpath>
<xpath expr="//field[@name='unit_amount']" position="after">
<field name="parent_project"/>
</xpath>
</field>
</record>-->
<record id="hr_timesheet.hr_timesheet_line_tree" model="ir.ui.view">
<field name="name">account.analytic.line.tree.hr_timesheet</field>
<field name="model">account.analytic.line</field>
<field name="arch" type="xml">
<tree editable="top" string="Timesheet Activities" sample="1">
<field name="date" readonly="1" invisible="1"/>
<field name="employee_id" invisible="1"/>
<field name="project_id" required="1" options="{'no_create_edit': True}"
context="{'form_view_ref': 'project.project_project_view_form_simplified',}"/>
<field name="task_id" optional="show" options="{'no_create_edit': True, 'no_open': True}"
widget="task_with_hours" context="{'default_project_id': project_id}"
domain="[('project_id', '=', project_id)]"/>
<field name="name" optional="show" required="0"/>
<field name="start_time" widget="float_time" invisible="1"/><!--custom-->
<field name="end_time" widget="float_time" invisible="1"/><!--custom-->
<field name="start_datetime" string="Start Time"/><!--custom-->
<field name="end_datetime" string="End Time"/><!--custom-->
<field name="unit_amount" optional="show" widget="timesheet_uom" sum="Total"
decoration-danger="unit_amount &gt; 24"/>
<field name="parent_project"/><!--custom-->
<field name="company_id" invisible="1"/>
<field name="user_id" invisible="1"/>
</tree>
</field>
</record>
<!-- Overide all timesheet action -->
@ -81,7 +111,8 @@
<field name="name">account.analytic.line.calendar</field>
<field name="model">account.analytic.line</field>
<field name="arch" type="xml">
<calendar string="Timesheet" date_start="date" date_delay="unit_amount">
<calendar string="Timesheet" date_start="start_datetime" date_stop="end_datetime" date_delay="unit_amount"
form_view_id="%(hr_timesheet.hr_timesheet_line_form)d" event_open_popup="true" quick_add="False">
<field name="project_id"/>
<field name="name"/>
</calendar>
@ -89,7 +120,7 @@
</record>
<record id="timesheet_action_view_all_calendar" model="ir.actions.act_window.view">
<field name="sequence" eval="6"/>
<field name="sequence" eval="4"/>
<field name="view_mode">calendar</field>
<field name="view_id" ref="view_hr_timesheet_line_calendar"/>
<field name="act_window_id" ref="hr_timesheet.timesheet_action_all"/>
@ -100,7 +131,7 @@
<record id="hr_timesheet.act_hr_timesheet_line" model="ir.actions.act_window">
<field name="name">My Timesheets</field>
<field name="res_model">account.analytic.line</field>
<field name="view_mode">tree,form,kanban,calendar</field>
<field name="view_mode">calendar,tree,form,kanban</field>
<field name="domain">[('project_id', '!=', False), ('user_id', '=', uid)]</field>
<field name="context">{
"search_default_week":1,
@ -117,19 +148,57 @@
</field>
</record>
<record id="hr_timesheet.hr_timesheet_line_form" model="ir.ui.view">
<field name="name">account.analytic.line.form</field>
<field name="model">account.analytic.line</field>
<field name="priority">1</field>
<field name="inherit_id" eval="False"/>
<field name="arch" type="xml">
<form string="Analytic Entry">
<sheet string="Analytic Entry">
<group>
<field name="name"/>
</group>
<group>
<group>
<field name="project_id" required="1"
context="{'form_view_ref': 'project.project_project_view_form_simplified',}"/>
<field name="task_id" widget="task_with_hours" context="{'default_project_id': project_id}"
domain="[('project_id', '=', project_id)]"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="date" readonly="1"/>
</group>
<group>
<!--<field name="amount"/>-->
<field name="amount" invisible="1"/>
<field name="start_time" widget="float_time" invisible="1"/><!--custom-->
<field name="end_time" widget="float_time" invisible="1"/><!--custom-->
<field name="start_datetime" string="Start Time"/><!--custom-->
<field name="end_datetime" string="End Time"/><!--custom-->
<field name="unit_amount" widget="timesheet_uom" decoration-danger="unit_amount &gt; 24"/>
<field name="currency_id" invisible="1"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_hr_my_timesheet_line_calendar" model="ir.ui.view">
<field name="name">account.analytic.line.calendar</field>
<field name="model">account.analytic.line</field>
<field name="arch" type="xml">
<calendar string="Timesheet" date_start="date" date_delay="unit_amount">
<calendar string="Timesheet" date_start="start_datetime" date_stop="end_datetime" date_delay="unit_amount"
form_view_id="%(hr_timesheet.hr_timesheet_line_form)d" event_open_popup="true" quick_add="False">
<field name="project_id"/>
<field name="name"/>
<field name="start_time"/>
</calendar>
</field>
</record>
<record id="timesheet_action_view_my_calendar" model="ir.actions.act_window.view">
<field name="sequence" eval="6"/>
<field name="sequence" eval="3"/>
<field name="view_mode">calendar</field>
<field name="view_id" ref="view_hr_my_timesheet_line_calendar"/>
<field name="act_window_id" ref="hr_timesheet.act_hr_timesheet_line"/>