Merge branch 'development' of http://103.74.223.20:8085/prakash.jain/cor-odoo into development
This commit is contained in:
commit
df3fb64016
|
@ -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()
|
||||
|
|
|
@ -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 > 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 > 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"/>
|
||||
|
|
Loading…
Reference in New Issue