[MERGE] hr employee kanban, improved demo data, by mit, fixed by rco
bzr revid: al@openerp.com-20111222183018-2y8seq4sq0mo6tem
This commit is contained in:
@@ -819,49 +819,49 @@
|
||||
<record model="hr.attendance" id="unknown1_emp1">
|
||||
<field name="name" eval="time.strftime('%Y-%m-25 08:21')"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
</record>
|
||||
|
||||
<record model="hr.attendance" id="unknown1_emp2">
|
||||
<field name="name" eval="time.strftime('%Y-%m-25 9:21')"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
</record>
|
||||
|
||||
<record model="hr.attendance" id="unknown1_emp3">
|
||||
<field name="name" eval="time.strftime('%Y-%m-25 09:25')"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
</record>
|
||||
|
||||
<record model="hr.attendance" id="unknown1_emp4">
|
||||
<field name="name" eval="time.strftime('%Y-%m-25 11:54')"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
</record>
|
||||
|
||||
<record model="hr.attendance" id="unknown1_emp5">
|
||||
<field name="name" eval="time.strftime('%Y-%m-25 11:59')"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
</record>
|
||||
|
||||
<record model="hr.attendance" id="unknown1_emp6">
|
||||
<field name="name" eval="time.strftime('%Y-%m-25 13:31')"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record model="hr.attendance" id="unknown1_emp7">
|
||||
<field name="name" eval="time.strftime('%Y-%m-25 20:10')"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
</record>
|
||||
|
||||
<record model="hr.attendance" id="unknown1_emp8">
|
||||
<field name="name" eval="time.strftime('%Y-%m-25 21:34')"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
</record>
|
||||
|
||||
<!--demo data for the hr_attendence for employee2-->
|
||||
|
||||
@@ -52,7 +52,6 @@ You can manage:
|
||||
],
|
||||
'demo_xml': [
|
||||
'hr_demo.xml',
|
||||
'hr_department_demo.xml',
|
||||
],
|
||||
'test': [
|
||||
'test/open2recruit2close_job.yml',
|
||||
@@ -62,5 +61,6 @@ You can manage:
|
||||
'application': True,
|
||||
'active': False,
|
||||
'certificate': '0086710558965',
|
||||
"css": [ 'static/src/css/hr.css' ],
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
+285
-79
File diff suppressed because one or more lines are too long
@@ -1,128 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="dep_management" model="hr.department">
|
||||
<field name="name">Management</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="manager_id" ref="employee1"/>
|
||||
</record>
|
||||
|
||||
<record id="dep_administration" model="hr.department">
|
||||
<field name="name">Administration</field>
|
||||
<field name="parent_id" ref="dep_management"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="manager_id" ref="employee1"/>
|
||||
</record>
|
||||
|
||||
<record id="dep_technical" model="hr.department">
|
||||
<field name="name">Technical department</field>
|
||||
<field name="parent_id" ref="dep_management"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="manager_id" ref="employee3"/>
|
||||
</record>
|
||||
|
||||
<record id="dep_it" model="hr.department">
|
||||
<field name="name">IT</field>
|
||||
<field name="parent_id" ref="dep_technical"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="manager_id" ref="employee2"/>
|
||||
</record>
|
||||
|
||||
<record id="dep_marketing" model="hr.department">
|
||||
<field name="name">Marketing</field>
|
||||
<field name="parent_id" ref="dep_management"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
|
||||
<record id="dep_sales" model="hr.department">
|
||||
<field name="name">Sales</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="parent_id" ref="dep_management"/>
|
||||
<field name="manager_id" ref="employee4"/>
|
||||
</record>
|
||||
|
||||
<record id="dep_sales_europe" model="hr.department">
|
||||
<field name="name">Sales Europe</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="parent_id" ref="dep_sales"/>
|
||||
<field name="manager_id" ref="employee5"/>
|
||||
</record>
|
||||
|
||||
<record id="dep_sales_america" model="hr.department">
|
||||
<field name="name">Sales America</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="parent_id" ref="dep_sales"/>
|
||||
<field name="manager_id" ref="employee6"/>
|
||||
</record>
|
||||
|
||||
<!-- HR Jobs -->
|
||||
|
||||
<record id="job_ceo" model="hr.job">
|
||||
<field name="name">CEO</field>
|
||||
<field name="department_id" ref="dep_management"/>
|
||||
</record>
|
||||
|
||||
<record id="job_cto" model="hr.job">
|
||||
<field name="name">CTO</field>
|
||||
<field name="department_id" ref="dep_technical"/>
|
||||
</record>
|
||||
|
||||
<record id="job_hr_manager" model="hr.job">
|
||||
<field name="name">HR Manager</field>
|
||||
<field name="department_id" ref="dep_management"/>
|
||||
</record>
|
||||
|
||||
<record id="job_project_managers" model="hr.job">
|
||||
<field name="name">Project Managers</field>
|
||||
<field name="department_id" ref="dep_it"/>
|
||||
</record>
|
||||
|
||||
<record id="job_sr_appli" model="hr.job">
|
||||
<field name="name">Senior Application Analyst</field>
|
||||
<field name="department_id" ref="dep_it"/>
|
||||
</record>
|
||||
|
||||
<record id="job_jr_appli" model="hr.job">
|
||||
<field name="name">Junior Application Analyst</field>
|
||||
<field name="department_id" ref="dep_it"/>
|
||||
</record>
|
||||
|
||||
<record id="job_sr_developers" model="hr.job">
|
||||
<field name="name">Senior Developers</field>
|
||||
<field name="department_id" ref="dep_it"/>
|
||||
</record>
|
||||
|
||||
<record id="job_jr_developers" model="hr.job">
|
||||
<field name="name">Junior Developers</field>
|
||||
<field name="department_id" ref="dep_it"/>
|
||||
</record>
|
||||
|
||||
<record id="job_trainee" model="hr.job">
|
||||
<field name="name">Trainee</field>
|
||||
<field name="department_id" ref="dep_it"/>
|
||||
</record>
|
||||
|
||||
<!-- assign department on employee -->
|
||||
<record id="employee2" model="hr.employee">
|
||||
<field name="department_id" ref="hr.dep_technical"/>
|
||||
</record>
|
||||
|
||||
<record id="employee3" model="hr.employee">
|
||||
<field name="department_id" ref="hr.dep_management"/>
|
||||
</record>
|
||||
|
||||
<record id="employee4" model="hr.employee">
|
||||
<field name="department_id" ref="hr.dep_management"/>
|
||||
</record>
|
||||
|
||||
<record id="employee5" model="hr.employee">
|
||||
<field name="department_id" ref="hr.dep_sales"/>
|
||||
</record>
|
||||
|
||||
<record id="employee6" model="hr.employee">
|
||||
<field name="department_id" ref="hr.dep_sales"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
+19
-38
@@ -131,52 +131,33 @@
|
||||
<field name="model">hr.employee</field>
|
||||
<field name="type">kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
|
||||
<kanban>
|
||||
<field name="color"/>
|
||||
<templates>
|
||||
<t t-name="employee_details">
|
||||
<ul class="oe_kanban_tooltip" t-if="record.job_id.raw_value">
|
||||
<li><b>Job:</b> <field name="job_id"/></li>
|
||||
</ul>
|
||||
</t>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="#{kanban_color(record.color.raw_value)}">
|
||||
<div class="oe_kanban_box oe_kanban_color_border">
|
||||
<div class="oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle oe_kanban_title" tooltip="employee_details">
|
||||
<field name="name"/>
|
||||
</div>
|
||||
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger oe_kanban_color_border">
|
||||
<img t-att-src="kanban_image('hr.employee', 'photo', record.id.value)" width="48" style="float: left;"/>
|
||||
<span t-if="record.parent_id.raw_value" class="oe_kanban_highlight">
|
||||
❖ <field name="parent_id"/>
|
||||
</span>
|
||||
<span t-if="record.work_location.raw_value" class="oe_kanban_highlight">
|
||||
✜ <field name="work_location"/>
|
||||
</span>
|
||||
<span t-if="record.work_email.raw_value" class="oe_kanban_highlight">
|
||||
✉ <a t-attf-href="mailto:#{record.work_email.value}"><field name="work_email"/></a>
|
||||
</span>
|
||||
<span t-if="record.mobile_phone.raw_value" class="oe_kanban_highlight">
|
||||
☎ <field name="mobile_phone"/>
|
||||
</span>
|
||||
<span t-if="record.work_phone.raw_value" class="oe_kanban_highlight">
|
||||
☏ <field name="work_phone"/>
|
||||
</span>
|
||||
<div class="oe_kanban_clear"/>
|
||||
</div>
|
||||
<div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
|
||||
<div class="oe_kanban_left">
|
||||
<a string="Edit" icon="gtk-edit" type="edit"/>
|
||||
<a string="Change Color" icon="color-picker" type="color" name="color"/>
|
||||
<a string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
|
||||
</div>
|
||||
<div class="oe_kanban_clear"/>
|
||||
</div>
|
||||
<div class="oe_employee_vignette">
|
||||
<div class="oe_employee_image">
|
||||
<a type="edit"><img t-att-src="kanban_image('hr.employee', 'photo', record.id.value)" class="oe_employee_picture"/></a>
|
||||
</div>
|
||||
<div class="oe_employee_details">
|
||||
<h4><a type="edit"><field name="name"/> (<field name="user_id"/>)</a></h4>
|
||||
<ul>
|
||||
<li t-if="record.department_id.raw_value"><field name="department_id"/></li>
|
||||
<li t-if="record.job_id.raw_value"><field name="job_id"/></li>
|
||||
<li t-if="record.work_location.raw_value"><field name="work_location"/></li>
|
||||
<li t-if="record.work_phone.raw_value">Tel: <field name="work_phone"/></li>
|
||||
<li t-if="record.mobile_phone.raw_value">Mobile: <field name="mobile_phone"/></li>
|
||||
<li t-if="record.work_email.raw_value"><a t-attf-href="mailto:#{record.work_email.value}"><field name="work_email"/></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$('.oe_employee_picture').load(function() { if($(this).width() > $(this).height()) { $(this).addClass('oe_employee_picture_wide') } });
|
||||
</script>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
<record id="open_view_employee_tree" model="ir.actions.act_window">
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
.oe_employee_vignette {
|
||||
padding: 8px 0;
|
||||
min-height: 100px;
|
||||
}
|
||||
|
||||
.oe_employee_image, .oe_employee_details {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.oe_employee_image {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.oe_employee_picture {
|
||||
width: 100px;
|
||||
height: auto;
|
||||
clip: rect(10px, 100px, 110px, 0px);
|
||||
}
|
||||
|
||||
.oe_employee_picture_wide {
|
||||
height: 100px;
|
||||
width: auto;
|
||||
clip: rect(0px, 115px, 100px, 15px);
|
||||
}
|
||||
|
||||
.oe_employee_details {
|
||||
width: 220px;
|
||||
font-size: 13px;
|
||||
padding: 2px 5px;
|
||||
color: #4c4c4c;
|
||||
min-height: 120px;
|
||||
}
|
||||
|
||||
.oe_employee_details h4 {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.oe_employee_details h4 a {
|
||||
color: #4c4c4c;
|
||||
}
|
||||
|
||||
.oe_employee_details h4 a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.oe_employee_details ul {
|
||||
margin: 3px 0 5px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.oe_employee_details li {
|
||||
margin: 2px 0;
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
-
|
||||
!record {model: hr.job, id: job_jr_appli, view: False}:
|
||||
!record {model: hr.job, id: job_developer, view: False}:
|
||||
no_of_employee: 0.0
|
||||
no_of_recruitment: 5.0
|
||||
-
|
||||
!record {model: hr.employee, id: employee1, view: False}:
|
||||
!record {model: hr.employee, id: employee_niv, view: False}:
|
||||
address_id: base.main_address
|
||||
company_id: base.main_company
|
||||
department_id: dep_technical
|
||||
department_id: dep_rd
|
||||
user_id: base.user_demo
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
-
|
||||
In order to test the process of Human Resource Management, I open Job Postion for "Jr. Application Engineer".
|
||||
In order to test the process of Human Resource Management, I open Job Postion for "Developer".
|
||||
-
|
||||
!python {model: hr.job}: |
|
||||
self.job_open(cr, uid, [ref('job_jr_appli')])
|
||||
self.job_open(cr, uid, [ref('job_developer')])
|
||||
-
|
||||
I check state of Job Position after opening it.
|
||||
-
|
||||
!assert {model: hr.job, id: job_jr_appli, string: Job position is in 'open' state and no_of_recruitment = 0}:
|
||||
!assert {model: hr.job, id: job_developer, string: Job position is in 'open' state and no_of_recruitment = 0}:
|
||||
- state == 'open'
|
||||
- no_of_recruitment == 0
|
||||
-
|
||||
Now, Recruitement is started so I start recruitement of Job Postion of "Jr. Application Engineer" Profile.
|
||||
Now, Recruitement is started so I start recruitement of Job Postion of "Developer" Profile.
|
||||
-
|
||||
!python {model: hr.job}: |
|
||||
self.job_recruitement(cr, uid, [ref('job_jr_appli')])
|
||||
self.job_recruitement(cr, uid, [ref('job_developer')])
|
||||
-
|
||||
I check 'state' and number of 'Expected in Recruitment' after initiating the recruitment
|
||||
-
|
||||
!assert {model: hr.job, id: job_jr_appli, string: Job position is in 'recruit' state and no_of_recruitment = 1.0}:
|
||||
!assert {model: hr.job, id: job_developer, string: Job position is in 'recruit' state and no_of_recruitment = 1.0}:
|
||||
- state == 'recruit'
|
||||
- no_of_recruitment == 1.0
|
||||
-
|
||||
I assign the job position to a newly hired employee
|
||||
-
|
||||
!python {model: hr.employee}: |
|
||||
self.write(cr, uid, [ref('employee1')], {'job_id':ref('job_jr_appli')})
|
||||
self.write(cr, uid, [ref('employee_niv')], {'job_id':ref('job_developer')})
|
||||
-
|
||||
Now I don't want to recruit new employee for this position. so I mark it as Old.
|
||||
Now I dont want to recruit new employee for this position. so I mark it as Old.
|
||||
-
|
||||
!python {model: hr.job}: |
|
||||
self.job_old(cr, uid, [ref('job_jr_appli')])
|
||||
self.job_old(cr, uid, [ref('job_developer')])
|
||||
-
|
||||
I check 'state' and number of 'Expected in Recruitment' after closing the Job position.
|
||||
-
|
||||
!assert {model: hr.job, id: job_jr_appli, string: Job position is in 'old' state and no_of_recruitment = 0}:
|
||||
!assert {model: hr.job, id: job_developer, string: Job position is in 'old' state and no_of_recruitment = 0}:
|
||||
- state == 'old'
|
||||
- no_of_recruitment == 0
|
||||
|
||||
@@ -5,121 +5,121 @@
|
||||
<record id="attendance1" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-01 08:21')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance2" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-01 11:51')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance3" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-02 12:47')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance4" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-02 19:53')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance5" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-03 07:32')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance6" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-03 12:32')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance7" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-04 14:01')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance8" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-04 17:21')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance9" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-05 09:10')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance10" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-05 12:42')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance11" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-06 13:10')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance12" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-06 18:34')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance13" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-07 08:21')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance14" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-07 18:21')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance15" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-08 08:21')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance16" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-08 12:54')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance17" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-09 13:32')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance18" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-09 19:31')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance19" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-10 07:10')" name="name"/>
|
||||
<field name="action">sign_in</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record id="attendance20" model="hr.attendance">
|
||||
<field eval="time.strftime('%Y-%m-10 12:34')" name="name"/>
|
||||
<field name="action">sign_out</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -1,51 +1,50 @@
|
||||
-
|
||||
In order to test attendance process in OpenERP, at the time of login, I use "Sign In/Sign Out" wizard for attendances.
|
||||
-
|
||||
!record {model: hr.sign.in.out, id: employee_sign_in}:
|
||||
name: Antoine Philippe
|
||||
state: absent
|
||||
-
|
||||
I click on this wizard to login.
|
||||
-
|
||||
!python {model: hr.sign.in.out}: |
|
||||
obj_attendance = self.pool.get('hr.employee')
|
||||
emp_ids = obj_attendance.search(cr, uid, [('user_id', '=', uid), ('name', '=', "Antoine Philippe")])
|
||||
hr_employee = self.pool.get('hr.employee')
|
||||
uid = ref('base.user_al')
|
||||
emp_ids = hr_employee.search(cr, uid, [('user_id', '=', uid)])
|
||||
if emp_ids:
|
||||
employee = obj_attendance.read(cr, uid, emp_ids)[0]
|
||||
self.write(cr, uid, [ref('employee_sign_in')], {'name': employee['name'], 'state': employee['state'], 'emp_id': emp_ids[0]})
|
||||
self.si_check(cr, uid, [ref("employee_sign_in")])
|
||||
employee = hr_employee.browse(cr, uid, emp_ids)[0]
|
||||
id = self.create(cr, uid, {'emp_id': employee.id, 'name': employee.name, 'state': employee.state})
|
||||
self.si_check(cr, uid, [id])
|
||||
-
|
||||
I check that Employee is "Present".
|
||||
-
|
||||
!assert {model: hr.employee, id: hr.employee3, severity: error, string: Employee should be in present state}:
|
||||
!assert {model: hr.employee, id: hr.employee_al, severity: error, string: Employee should be in present state}:
|
||||
- state == 'present'
|
||||
-
|
||||
I click on "Sign In" button of this wizard, this will Open a new form which ask for Last Sign Out date.
|
||||
-
|
||||
!python {model: hr.sign.in.out}: |
|
||||
obj_attendance = self.pool.get('hr.employee')
|
||||
emp_ids = obj_attendance.search(cr, uid, [('user_id', '=', uid), ('name', '=', "Antoine Philippe")])
|
||||
hr_employee = self.pool.get('hr.employee')
|
||||
uid = ref('base.user_al')
|
||||
emp_ids = hr_employee.search(cr, uid, [('user_id', '=', uid)])
|
||||
if emp_ids:
|
||||
employee = obj_attendance.read(cr, uid, emp_ids)[0]
|
||||
self.write(cr, uid, [ref('employee_sign_in')], {'name': employee['name'], 'state': employee['state'], 'emp_id': emp_ids[0]})
|
||||
self.si_check(cr, uid, [ref("employee_sign_in")])
|
||||
employee = hr_employee.browse(cr, uid, emp_ids)[0]
|
||||
id = self.create(cr, uid, {'emp_id': employee.id, 'name': employee.name, 'state': employee.state})
|
||||
self.si_check(cr, uid, [id])
|
||||
-
|
||||
I select Last Sign Out date.
|
||||
-
|
||||
!record {model: hr.sign.in.out.ask, id: hr_sign_in_out_ask_Antoine_Philippe}:
|
||||
!record {model: hr.sign.in.out.ask, id: hr_sign_in_out_ask_Antony}:
|
||||
last_time: !eval time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
name: Antoine Philippe
|
||||
name: Antony
|
||||
-
|
||||
Now I click on "Sign In" button of this wizard.
|
||||
-
|
||||
!python {model: hr.sign.in.out.ask}: |
|
||||
obj_attendance = self.pool.get('hr.employee')
|
||||
emp_ids = obj_attendance.search(cr, uid, [('user_id', '=', uid), ('name', '=', "Antoine Philippe")])
|
||||
import time
|
||||
hr_employee = self.pool.get('hr.employee')
|
||||
uid = ref('base.user_al')
|
||||
emp_ids = hr_employee.search(cr, uid, [('user_id', '=', uid)])
|
||||
if emp_ids:
|
||||
employee = obj_attendance.read(cr, uid, emp_ids)[0]
|
||||
self.write(cr, uid, [ref('hr_sign_in_out_ask_Antoine_Philippe')], {'emp_id': emp_ids[0]})
|
||||
employee = hr_employee.browse(cr, uid, emp_ids)[0]
|
||||
id = self.create(cr, uid, {'emp_id': employee.id, 'name': employee.name, 'last_time': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
-
|
||||
Finally i check the employee is present.
|
||||
-
|
||||
!assert {model: hr.employee, id: hr.employee3, severity: error, string: Employee should be in present state}:
|
||||
!assert {model: hr.employee, id: hr.employee_al, severity: error, string: Employee should be in present state}:
|
||||
- state == 'present'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
-
|
||||
!python {model: hr.employee}: |
|
||||
from tools import test_reports
|
||||
ctx = {'model': 'hr.employee','active_ids': [ref('hr.employee1'),ref('hr.employee2'),ref('hr.employee3')]}
|
||||
ctx = {'model': 'hr.employee','active_ids': [ref('hr.employee_fp'),ref('hr.employee_qdp'),ref('hr.employee_al')]}
|
||||
data_dict = {}
|
||||
test_reports.try_report_action(cr, uid, 'action_hr_attendance_month',wiz_data=data_dict, context=ctx, our_module='hr_attendance')
|
||||
-
|
||||
@@ -12,6 +12,6 @@
|
||||
!python {model: hr.employee}: |
|
||||
import time
|
||||
from tools import test_reports
|
||||
ctx = {'model': 'hr.employee','active_ids': [ref('hr.employee1')]}
|
||||
ctx = {'model': 'hr.employee','active_ids': [ref('hr.employee_fp')]}
|
||||
data_dict = {'init_date': time.strftime('%Y-01-01')}
|
||||
test_reports.try_report_action(cr, uid, 'action_hr_attendance_error',wiz_data=data_dict, context=ctx, our_module='hr_attendance')
|
||||
|
||||
@@ -2,21 +2,21 @@
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="hr.employee1" model="hr.employee">
|
||||
<record id="hr.employee_fp" model="hr.employee">
|
||||
<field name="evaluation_plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee2" model="hr.employee">
|
||||
<record id="hr.employee_qdp" model="hr.employee">
|
||||
<field name="evaluation_plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee3" model="hr.employee">
|
||||
<record id="hr.employee_al" model="hr.employee">
|
||||
<field name="evaluation_plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_evaluation_evaluation_0" model="hr_evaluation.evaluation">
|
||||
<field name="date">2011-12-24</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
<field name="plan_id" ref="hr_evaluation.hr_evaluation_plan_managersevaluationplan0"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
-
|
||||
!record {model: hr.employee, id: hr.employee1, view: False}:
|
||||
!record {model: hr.employee, id: hr.employee_fp, view: False}:
|
||||
evaluation_plan_id: hr_evaluation_plan_managersevaluationplan0
|
||||
-
|
||||
!record {model: hr_evaluation.evaluation, id: hr_evaluation_evaluation_0, view: False}:
|
||||
|
||||
@@ -103,6 +103,6 @@
|
||||
!python {model: hr.evaluation.report}: |
|
||||
import netsvc, tools, os, time
|
||||
ctx={}
|
||||
data_dict={'state': 'done', 'rating': 2, 'employee_id': ref("hr.employee1")}
|
||||
data_dict={'state': 'done', 'rating': 2, 'employee_id': ref("hr.employee_fp")}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'hr_evaluation_evaluation_0',wiz_data=data_dict, context=ctx, our_module='hr_evaluation')
|
||||
@@ -2,7 +2,7 @@
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="hr.employee4" model="hr.employee">
|
||||
<record id="hr.employee_mit" model="hr.employee">
|
||||
<field name="address_home_id" ref="base.res_partner_address_1"/>
|
||||
</record>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
</record>
|
||||
|
||||
<record id="sep_expenses" model="hr.expense.expense">
|
||||
<field name="employee_id" ref="hr.employee4"/>
|
||||
<field name="employee_id" ref="hr.employee_mit"/>
|
||||
<field name="name">September Expenses</field>
|
||||
<field name="date" eval="time.strftime('%Y-09-28')"/>
|
||||
</record>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
-
|
||||
!record {model: hr.expense.expense, id: sep_expenses}:
|
||||
employee_id: hr.employee4
|
||||
employee_id: hr.employee_mit
|
||||
name : 'John Smith'
|
||||
-
|
||||
!record {model: product.product, id: car_travel}:
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<field name="holiday_status_id" ref="holiday_status_cl"/>
|
||||
<field name="type">add</field>
|
||||
<field name="number_of_days_temp">20</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record model="hr.holidays" id="hr_holidays_employee1_cl">
|
||||
@@ -17,7 +17,7 @@
|
||||
<field eval="time.strftime('%Y-%m-03')" name="date_to"/>
|
||||
<field name="type">remove</field>
|
||||
<field name="number_of_days_temp">3</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record model="hr.holidays" id="hr_holidays_employee1_sl">
|
||||
@@ -28,7 +28,7 @@
|
||||
<field name="type">remove</field>
|
||||
<field name="state">draft</field>
|
||||
<field name="number_of_days_temp">3</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record model="hr.holidays" id="hr_holidays_employee1_vc">
|
||||
@@ -39,7 +39,7 @@
|
||||
<field name="type">add</field>
|
||||
<field name="state">draft</field>
|
||||
<field name="number_of_days_temp">7</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<record model="hr.holidays" id="hr_holidays_employee1_int_tour">
|
||||
@@ -49,7 +49,7 @@
|
||||
<field eval="time.strftime('%Y-%m-22')" name="date_to"/>
|
||||
<field name="type">add</field>
|
||||
<field name="number_of_days_temp">7</field>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="employee_id" ref="hr.employee_fp"/>
|
||||
</record>
|
||||
|
||||
<workflow action="confirm" model="hr.holidays" ref="hr_holidays_employee1_allocation_cl"/>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
!python {model: hr.holidays}: |
|
||||
import time
|
||||
ctx={}
|
||||
ctx.update({'model': 'hr.department','active_ids': [ref('hr.employee1'),ref('hr.employee2'),ref('hr.employee3')]})
|
||||
ctx.update({'model': 'hr.department','active_ids': [ref('hr.employee_fp'),ref('hr.employee_qdp'),ref('hr.employee_al')]})
|
||||
data_dict = {'date_from': time.strftime('%Y-%m-01'), 'depts' : [(6,0,[ref('hr.dep_sales')])],'holiday_type' : 'Validated'}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'action_hr_holidays_summary_dept',wiz_data=data_dict, context=ctx, our_module='hr_holidays')
|
||||
@@ -15,8 +15,8 @@
|
||||
!python {model: hr.holidays}: |
|
||||
import time
|
||||
ctx={}
|
||||
ctx.update({'model': 'hr.employee','active_ids': [ref('hr.employee1'),ref('hr.employee2'),ref('hr.employee3')]})
|
||||
data_dict = {'date_from': time.strftime('%Y-%m-01'), 'emp' : [(6,0,[ref('hr.employee1'),ref('hr.employee2'),ref('hr.employee3')])],'holiday_type' : 'Validated'}
|
||||
ctx.update({'model': 'hr.employee','active_ids': [ref('hr.employee_fp'),ref('hr.employee_qdp'),ref('hr.employee_al')]})
|
||||
data_dict = {'date_from': time.strftime('%Y-%m-01'), 'emp' : [(6,0,[ref('hr.employee_fp'),ref('hr.employee_qdp'),ref('hr.employee_al')])],'holiday_type' : 'Validated'}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'action_hr_holidays_summary_employee',wiz_data=data_dict, context=ctx, our_module='hr_holidays')
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
holiday_status_id: holiday_status_cl
|
||||
date_from: !eval time.strftime('%Y-%m-10 10:00:00')
|
||||
date_to: !eval time.strftime('%Y-%m-11 19:00:00')
|
||||
employee_id: hr.employee1
|
||||
employee_id: hr.employee_fp
|
||||
type: remove
|
||||
-
|
||||
I confirmed the holiday request by clicking on "Confirm" button.
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
<field name="date_start" eval="time.strftime('%Y-%m')+'-1'"/>
|
||||
<field name="date_end" eval="time.strftime('%Y')+'-12-31'"/>
|
||||
<field name="struct_id" ref="hr_payroll.structure_002"/>
|
||||
<field name="employee_id" ref="hr.employee2"/>
|
||||
<field name="employee_id" ref="hr.employee_qdp"/>
|
||||
<field name="notes">This is Quentin Paolino's contract</field>
|
||||
<field eval="5000.0" name="wage"/>
|
||||
<field name="working_hours" ref="resource.timesheet_group1"/>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
!record {model: hr.employee, id: hr_employee_richard0}:
|
||||
birthday: '1984-05-01'
|
||||
country_id: base.be
|
||||
department_id: hr.dep_it
|
||||
department_id: hr.dep_rd
|
||||
gender: male
|
||||
name: Richard
|
||||
-
|
||||
|
||||
@@ -52,19 +52,19 @@
|
||||
<field name="employee_account" ref="account.a_expense"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee1" model="hr.employee">
|
||||
<record id="hr.employee_fp" model="hr.employee">
|
||||
<field name="property_bank_account" ref="account.bnk"/>
|
||||
<field name="salary_account" ref="account.a_salary_expense"/>
|
||||
<field name="employee_account" ref="account.a_expense"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee2" model="hr.employee">
|
||||
<record id="hr.employee_qdp" model="hr.employee">
|
||||
<field name="property_bank_account" ref="account.bnk"/>
|
||||
<field name="salary_account" ref="account.a_salary_expense"/>
|
||||
<field name="employee_account" ref="account.a_expense"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee3" model="hr.employee">
|
||||
<record id="hr.employee_al" model="hr.employee">
|
||||
<field name="property_bank_account" ref="account.bnk"/>
|
||||
<field name="salary_account" ref="account.a_salary_expense"/>
|
||||
<field name="employee_account" ref="account.a_expense"/>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
birthday: '1984-05-01'
|
||||
children: 0.0
|
||||
country_id: base.in
|
||||
department_id: hr.dep_it
|
||||
department_id: hr.dep_rd
|
||||
gender: male
|
||||
marital: single
|
||||
name: John
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
priority: '2'
|
||||
partner_name: 'Enrique Jones'
|
||||
partner_mobile: '9963214587'
|
||||
job_id: hr.job_jr_appli
|
||||
job_id: hr.job_developer
|
||||
stage_id: stage_job1
|
||||
name: 'Salesman'
|
||||
partner_phone: '1236547890'
|
||||
@@ -20,7 +20,7 @@
|
||||
partner_name: 'Marie Justine'
|
||||
state: 'open'
|
||||
partner_mobile: '9988774455'
|
||||
job_id: hr.job_jr_appli
|
||||
job_id: hr.job_developer
|
||||
stage_id: stage_job4
|
||||
name: 'Trainee - MCA'
|
||||
partner_phone: '6633225'
|
||||
@@ -31,14 +31,14 @@
|
||||
priority: '1'
|
||||
user_id: base.user_root
|
||||
partner_name: 'Jose'
|
||||
job_id: hr.job_jr_appli
|
||||
job_id: hr.job_developer
|
||||
stage_id: stage_job3
|
||||
name: 'Fresher'
|
||||
partner_phone: '999666735'
|
||||
-
|
||||
!record {model: hr.applicant, id: hr_case_yrsexperienceinphp0}:
|
||||
date: !eval time.strftime('%Y-%m-25 16:25:52')
|
||||
job_id: hr.job_jr_appli
|
||||
job_id: hr.job_developer
|
||||
type_id: degree_bac5
|
||||
user_id: base.user_root
|
||||
partner_name: 'Sandra Elvis'
|
||||
@@ -52,7 +52,7 @@
|
||||
user_id: base.user_demo
|
||||
partner_name: 'John Bruno'
|
||||
state: 'done'
|
||||
job_id: hr.job_jr_appli
|
||||
job_id: hr.job_developer
|
||||
stage_id: stage_job5
|
||||
name: 'Marketing Job'
|
||||
-
|
||||
@@ -64,7 +64,7 @@
|
||||
state: 'pending'
|
||||
state: open
|
||||
partner_mobile: '9966332214'
|
||||
job_id: hr.job_jr_appli
|
||||
job_id: hr.job_developer
|
||||
stage_id: stage_job2
|
||||
name: 'Finance Job'
|
||||
partner_phone: '33968745'
|
||||
@@ -76,7 +76,7 @@
|
||||
partner_name: 'Tina Augustie'
|
||||
state: 'open'
|
||||
partner_mobile: '9898745745'
|
||||
job_id: hr.job_jr_appli
|
||||
job_id: hr.job_developer
|
||||
stage_id: stage_job4
|
||||
name: 'Trainee - MCA'
|
||||
partner_phone: '6630125'
|
||||
@@ -92,8 +92,8 @@
|
||||
stage_id: stage_job4
|
||||
name: 'Programmer'
|
||||
partner_phone: '6630125'
|
||||
job_id: hr.job_jr_appli
|
||||
department_id: hr.dep_it
|
||||
job_id: hr.job_developer
|
||||
department_id: hr.dep_rd
|
||||
salary_expected: 11000.0
|
||||
|
||||
-
|
||||
@@ -102,7 +102,7 @@
|
||||
type_id: degree_licenced
|
||||
partner_id: base.res_partner_11
|
||||
partner_name: 'David Armstrong'
|
||||
job_id: hr.job_jr_appli
|
||||
job_id: hr.job_developer
|
||||
stage_id: stage_job2
|
||||
name: 'Advertisement'
|
||||
salary_expected: 11000.0
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
I assign the Job position to the applicant
|
||||
-
|
||||
!python {model: hr.applicant}: |
|
||||
self.write(cr, uid, [ref('hr_case_programmer')], {'job_id':ref('hr.job_jr_appli')})
|
||||
self.write(cr, uid, [ref('hr_case_programmer')], {'job_id':ref('hr.job_developer')})
|
||||
-
|
||||
I start communication with applicant, first schedule phonecall.
|
||||
-
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</record>
|
||||
|
||||
<!-- complete our example employee -->
|
||||
<record id="hr.employee1" model="hr.employee">
|
||||
<record id="hr.employee_fp" model="hr.employee">
|
||||
<field name="product_id" ref="product.product_consultant"/>
|
||||
<field name="journal_id" ref="analytic_journal"/>
|
||||
</record>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
import netsvc, tools, os, time
|
||||
ctx={}
|
||||
ctx.update({'model': 'hr.employee','active_ids': []})
|
||||
data_dict = {'month': time.gmtime()[1], 'year': time.gmtime()[0], 'employee_id' : ref('hr.employee1')}
|
||||
data_dict = {'month': time.gmtime()[1], 'year': time.gmtime()[0], 'employee_id' : ref('hr.employee_fp')}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'action_hr_timesheet_my',wiz_data=data_dict, context=ctx, our_module='hr_timesheet')
|
||||
|
||||
@@ -16,6 +16,6 @@
|
||||
import netsvc, tools, os, time
|
||||
ctx={}
|
||||
ctx.update({'model': 'hr.employee','active_ids': []})
|
||||
data_dict = {'month': time.gmtime()[1], 'year': time.gmtime()[0], 'employee_ids' : [(6,0,[ref('hr.employee1'),ref('hr.employee2'),ref('hr.employee3')])]}
|
||||
data_dict = {'month': time.gmtime()[1], 'year': time.gmtime()[0], 'employee_ids' : [(6,0,[ref('hr.employee_fp'),ref('hr.employee_qdp'),ref('hr.employee_al')])]}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'action_hr_timesheet_users',wiz_data=data_dict, context=ctx, our_module='hr_timesheet')
|
||||
@@ -4,17 +4,17 @@
|
||||
-
|
||||
I create employee "Quentin Paolino" as "User".
|
||||
-
|
||||
!record {model: hr.employee, id: hr.employee2}:
|
||||
!record {model: hr.employee, id: hr.employee_qdp}:
|
||||
address_home_id: base.res_partner_address_8
|
||||
name: Quentin Paolino
|
||||
parent_id: 'hr.employee3'
|
||||
parent_id: 'hr.employee_al'
|
||||
user_id: 'base.user_demo'
|
||||
-
|
||||
On "Sign In/Sign Out by Project" wizard i click on "Sign In/Sign Out" button of this wizard.
|
||||
-
|
||||
!python {model: hr.sign.in.project}: |
|
||||
uid = ref('base.user_demo')
|
||||
state_id = self.check_state(cr, uid, [ref("hr.employee2")], {"active_ids": [ref("hr_timesheet.action_hr_timesheet_sign_in")]})
|
||||
state_id = self.check_state(cr, uid, [ref("hr.employee_qdp")], {"active_ids": [ref("hr_timesheet.action_hr_timesheet_sign_in")]})
|
||||
assert state_id['name'] == 'Sign in / Sign out', "Check the process of sing-in/sing-out."
|
||||
-
|
||||
I select start date and Perform start work on project.
|
||||
@@ -22,7 +22,7 @@
|
||||
!python {model: hr.sign.in.project}: |
|
||||
import time
|
||||
uid = ref('base.user_demo')
|
||||
new_id = self.create(cr, uid, {'emp_id': ref('hr.employee2'), 'name': 'Quentin Paolino',
|
||||
new_id = self.create(cr, uid, {'emp_id': ref('hr.employee_qdp'), 'name': 'Quentin Paolino',
|
||||
'server_date': time.strftime('%Y-%m-%d %H:%M:%S'), 'state': 'present'})
|
||||
self.sign_in_result(cr, uid, [new_id], context)
|
||||
-
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
-
|
||||
!python {model: account.analytic.line}: |
|
||||
import netsvc, tools, os, time
|
||||
data_dict = {'model': 'ir.ui.menu', 'form': {'date_from': time.strftime('%Y-%m-01'), 'employee_ids': [[6,0,[ref('hr.employee1'), ref('hr.employee2'),ref('hr.employee3')]]], 'journal_ids': [[6,0,[ref('hr_timesheet.analytic_journal')]]], 'date_to': time.strftime('%Y-%m-%d')}}
|
||||
data_dict = {'model': 'ir.ui.menu', 'form': {'date_from': time.strftime('%Y-%m-01'), 'employee_ids': [[6,0,[ref('hr.employee_fp'), ref('hr.employee_qdp'),ref('hr.employee_al')]]], 'journal_ids': [[6,0,[ref('hr_timesheet.analytic_journal')]]], 'date_to': time.strftime('%Y-%m-%d')}}
|
||||
(data, format) = netsvc.LocalService('report.account.analytic.profit').create(cr, uid, [], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'hr_timesheet_invoice-account_analytic_profit_report.'+format), 'wb+').write(data)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<record id="sheet1" model="hr_timesheet_sheet.sheet">
|
||||
<field name="name">Sheet 1</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="employee_id" ref="hr.employee1" />
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
<field eval="time.strftime('%Y-%m-%d')" name="date_current"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
-
|
||||
I assign this product(Service on Timesheet) and journal(Timesheet Journal) to employee "Quentin Paolino"
|
||||
-
|
||||
!record {model: hr.employee, id: hr.employee2}:
|
||||
!record {model: hr.employee, id: hr.employee_qdp}:
|
||||
product_id: product.product_consultant
|
||||
journal_id: hr_timesheet.analytic_journal
|
||||
-
|
||||
@@ -16,7 +16,7 @@
|
||||
name: Quentin Paolinon
|
||||
state: new
|
||||
user_id: base.user_demo
|
||||
employee_id: 'hr.employee2'
|
||||
employee_id: 'hr.employee_qdp'
|
||||
-
|
||||
Now, at the time of login, I create Attendances and perform "Sign In" action.
|
||||
-
|
||||
@@ -54,7 +54,7 @@
|
||||
-
|
||||
!record {model: hr.attendance, id: hr_attendance_1}:
|
||||
action: sign_out
|
||||
employee_id: 'hr.employee2'
|
||||
employee_id: 'hr.employee_qdp'
|
||||
name: !eval time.strftime('%Y-%m-%d')+' '+'%s:%s:%s' %(min(23,datetime.now().hour+2),min(59,datetime.now().minute+1),min(59,datetime.now().second+1))
|
||||
-
|
||||
I create Timesheet Entry for time spend on today work.
|
||||
|
||||
@@ -7,47 +7,47 @@
|
||||
<field eval="[(4, ref('base.group_sale_salesman')),(4, ref('group_project_user'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="res_users_analyst" model="res.users">
|
||||
<field name="name">Phuong</field>
|
||||
<record id="base.user_niv" model="res.users">
|
||||
<field name="name">Nicolas</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_manager')])]" name="groups_id"/>
|
||||
<field name="login">phu</field>
|
||||
<field name="password">phu</field>
|
||||
<field name="login">niv</field>
|
||||
<field name="password">niv</field>
|
||||
</record>
|
||||
<record id="res_users_project_manager" model="res.users">
|
||||
<field name="name">Anthony</field>
|
||||
<record id="base.user_al" model="res.users">
|
||||
<field name="name">Antony</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_manager')])]" name="groups_id"/>
|
||||
<field name="login">al</field>
|
||||
<field name="password">al</field>
|
||||
</record>
|
||||
<record id="res_users_technical_leader" model="res.users">
|
||||
<record id="base.user_qdp" model="res.users">
|
||||
<field name="name">Quentin</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]" name="groups_id"/>
|
||||
<field name="login">qdp</field>
|
||||
<field name="password">qdp</field>
|
||||
</record>
|
||||
<record id="res_users_developer" model="res.users">
|
||||
<record id="base.user_fpi" model="res.users">
|
||||
<field name="name">Francois</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]" name="groups_id"/>
|
||||
<field name="login">fpi</field>
|
||||
<field name="password">fpi</field>
|
||||
</record>
|
||||
<record id="res_users_designer" model="res.users">
|
||||
<record id="base.user_jth" model="res.users">
|
||||
<field name="name">Julien</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]" name="groups_id"/>
|
||||
<field name="login">jth</field>
|
||||
<field name="password">jth</field>
|
||||
</record>
|
||||
<record id="res_users_tester" model="res.users">
|
||||
<field name="name">Aline</field>
|
||||
<record id="base.user_mit" model="res.users">
|
||||
<field name="name">Minh</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]" name="groups_id"/>
|
||||
<field name="login">apr</field>
|
||||
<field name="password">apr</field>
|
||||
<field name="login">mit</field>
|
||||
<field name="password">mit</field>
|
||||
</record>
|
||||
<record id="res_users_finacial_manager" model="res.users">
|
||||
<field name="name">Fabian</field>
|
||||
<record id="base.user_vad" model="res.users">
|
||||
<field name="name">Valérie</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user')])]" name="groups_id"/>
|
||||
<field name="login">fbs</field>
|
||||
<field name="password">fbs</field>
|
||||
<field name="login">vad</field>
|
||||
<field name="password">vad</field>
|
||||
</record>
|
||||
|
||||
<!-- Projects -->
|
||||
@@ -57,14 +57,14 @@
|
||||
<field name="type">normal</field>
|
||||
<field name="description">Integrate a Sale and Warehouse Management.</field>
|
||||
<field eval="[(6, 0, [
|
||||
ref('project.res_users_analyst'),
|
||||
ref('project.res_users_project_manager'),
|
||||
ref('project.res_users_technical_leader'),
|
||||
ref('project.res_users_developer'),
|
||||
ref('project.res_users_designer'),
|
||||
ref('project.res_users_tester'),
|
||||
ref('project.res_users_finacial_manager')])]" name="members"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
ref('base.user_niv'),
|
||||
ref('base.user_al'),
|
||||
ref('base.user_qdp'),
|
||||
ref('base.user_fpi'),
|
||||
ref('base.user_jth'),
|
||||
ref('base.user_mit'),
|
||||
ref('base.user_vad')])]" name="members"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="name">Integrate a Sale and Warehouse Management.</field>
|
||||
</record>
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
<record id="project_task_1" model="project.task">
|
||||
<field eval="100.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_analyst"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Prepare Requirements Document</field>
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
<record id="project_task_2" model="project.task">
|
||||
<field eval="80.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_analyst"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Make SRS</field>
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
<record id="project_task_3" model="project.task">
|
||||
<field eval="40.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Design Use Cases</field>
|
||||
@@ -101,7 +101,7 @@
|
||||
|
||||
<record id="project_task_4" model="project.task">
|
||||
<field eval="25.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Budget Planning</field>
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
<record id="project_task_5" model="project.task">
|
||||
<field eval="25.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Quality Planning</field>
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
<record id="project_task_6" model="project.task">
|
||||
<field eval="20.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Risk Management Planning</field>
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
<record id="project_task_7" model="project.task">
|
||||
<field eval="30.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Create Project Schedules</field>
|
||||
@@ -143,7 +143,7 @@
|
||||
|
||||
<record id="project_task_8" model="project.task">
|
||||
<field eval="10.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Dataflow Design</field>
|
||||
@@ -153,7 +153,7 @@
|
||||
|
||||
<record id="project_task_9" model="project.task">
|
||||
<field eval="50.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">User Interface Design</field>
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
<record id="project_task_10" model="project.task">
|
||||
<field eval="40.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_developer"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Develop Module in Sale Management</field>
|
||||
@@ -172,7 +172,7 @@
|
||||
|
||||
<record id="project_task_11" model="project.task">
|
||||
<field eval="90.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_developer"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Develop module in Warehouse</field>
|
||||
@@ -183,7 +183,7 @@
|
||||
|
||||
<record id="project_task_12" model="project.task">
|
||||
<field eval="20.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_developer"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Integrate Modules</field>
|
||||
@@ -194,7 +194,7 @@
|
||||
|
||||
<record id="project_task_13" model="project.task">
|
||||
<field eval="50.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_tester"/>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Unit Testing</field>
|
||||
@@ -205,7 +205,7 @@
|
||||
|
||||
<record id="project_task_14" model="project.task">
|
||||
<field eval="30.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_tester"/>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Regression Test</field>
|
||||
@@ -215,7 +215,7 @@
|
||||
|
||||
<record id="project_task_15" model="project.task">
|
||||
<field eval="15.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_developer"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Documentation</field>
|
||||
@@ -226,7 +226,7 @@
|
||||
<record id="project_task_16" model="project.task">
|
||||
<field eval="10" name="sequence"/>
|
||||
<field eval="40.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_tester"/>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Performance Tuning</field>
|
||||
@@ -237,7 +237,7 @@
|
||||
|
||||
<record id="project_task_17" model="project.task">
|
||||
<field eval="5.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_analyst"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Deploy and Review on Customer System</field>
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
<record id="project_task_18" model="project.task">
|
||||
<field eval="10.0" name="planned_hours"/>
|
||||
<field name="user_id" ref="project.res_users_analyst"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Training and Presentation</field>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
- state == "pending"
|
||||
-
|
||||
!record {model: project.task.delegate, id: delegate_id}:
|
||||
user_id: res_users_analyst
|
||||
user_id: base.user_niv
|
||||
planned_hours: 12.0
|
||||
planned_hours_me: 2.0
|
||||
-
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<field name="date_from" eval="time.strftime('%Y-%m-01')"/>
|
||||
<field name="date_to" eval="time.strftime('%Y-%m-28')"/>
|
||||
<field name="state">open</field>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<field name="amount">16.0</field>
|
||||
<field name="amount_unit" ref="product.uom_hour"/>
|
||||
<field name="planning_id" ref="project_plannning_1"/>
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="task_ids" eval="[(6,0,[ref('project.project_task_188')])]"/>
|
||||
</record>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<field name="amount">24.0</field>
|
||||
<field name="amount_unit" ref="product.uom_hour"/>
|
||||
<field name="planning_id" ref="project_plannning_1"/>
|
||||
<field name="user_id" ref="project.res_users_technical_leader"/>
|
||||
<field name="user_id" ref="base.user_qdp"/>
|
||||
<field name="task_ids" eval="[(6,0,[ref('project.project_task_190')])]"/>
|
||||
</record>
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<field name="amount">90.0</field>
|
||||
<field name="amount_unit" ref="product.uom_hour"/>
|
||||
<field name="planning_id" ref="project_plannning_1"/>
|
||||
<field name="user_id" ref="project.res_users_developer"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="task_ids" eval="[(6,0,[ref('project.project_task_11')])]"/>
|
||||
</record>
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<field name="amount">50.0</field>
|
||||
<field name="amount_unit" ref="product.uom_hour"/>
|
||||
<field name="planning_id" ref="project_plannning_1"/>
|
||||
<field name="user_id" ref="project.res_users_tester"/>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="task_ids" eval="[(6,0,[ref('project.project_task_13')])]"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
I create tasks from backlog "Automatic migration system" for sprint
|
||||
-
|
||||
!python {model: project.scrum.backlog.create.task}: |
|
||||
new_id = self.create(cr, uid, {'user_id': ref("project.res_users_project_manager")})
|
||||
new_id = self.create(cr, uid, {'user_id': ref("base.user_al")})
|
||||
task_obj = self.pool.get('project.task')
|
||||
backlog_obj = self.pool.get('project.scrum.product.backlog')
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
assert len(task_ids), "Task not created"
|
||||
task = task_obj.browse(cr, uid, task_ids[0], context)
|
||||
|
||||
assert task.name == backlog_data.name and task.total_hours == backlog_data.expected_hours and task.user_id and task.user_id.id == ref("project.res_users_project_manager"), 'Task not has been created'
|
||||
assert task.name == backlog_data.name and task.total_hours == backlog_data.expected_hours and task.user_id and task.user_id.id == ref("base.user_al"), 'Task not has been created'
|
||||
-
|
||||
I send email to scrum master with scrum meeting details.
|
||||
-
|
||||
|
||||
@@ -2,39 +2,39 @@
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<!-- Example employee -->
|
||||
<record id="hr.employee2" model="hr.employee">
|
||||
<field name="user_id" ref="project.res_users_technical_leader"/>
|
||||
<record id="hr.employee_qdp" model="hr.employee">
|
||||
<field name="user_id" ref="base.user_qdp"/>
|
||||
<field name="product_id" ref="product.product_consultant"/>
|
||||
<field name="journal_id" ref="hr_timesheet.analytic_journal"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee3" model="hr.employee">
|
||||
<field name="user_id" ref="project.res_users_project_manager"/>
|
||||
<record id="hr.employee_al" model="hr.employee">
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="product_id" ref="product.product_consultant"/>
|
||||
<field name="journal_id" ref="hr_timesheet.analytic_journal"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee4" model="hr.employee">
|
||||
<record id="hr.employee_mit" model="hr.employee">
|
||||
<field name="name">Phuong</field>
|
||||
<field name="calendar_id" ref="resource.timesheet_group1"/>
|
||||
<field name="user_id" ref="project.res_users_analyst"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('hr.category_employee')])]"/>
|
||||
<field name="product_id" ref="product.product_consultant"/>
|
||||
<field name="journal_id" ref="hr_timesheet.analytic_journal"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee5" model="hr.employee">
|
||||
<record id="hr.employee_fpi" model="hr.employee">
|
||||
<field name="name">Francois</field>
|
||||
<field name="calendar_id" ref="resource.timesheet_group1"/>
|
||||
<field name="user_id" ref="project.res_users_developer"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('hr.category_employee')])]"/>
|
||||
<field name="product_id" ref="product.product_consultant"/>
|
||||
<field name="journal_id" ref="hr_timesheet.analytic_journal"/>
|
||||
</record>
|
||||
<record id="hr.employee6" model="hr.employee">
|
||||
<record id="hr.employee_jth" model="hr.employee">
|
||||
<field name="name">Julien</field>
|
||||
<field name="calendar_id" ref="resource.timesheet_group1"/>
|
||||
<field name="user_id" ref="project.res_users_designer"/>
|
||||
<field name="user_id" ref="base.user_jth"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('hr.category_employee')])]"/>
|
||||
<field name="product_id" ref="product.product_consultant"/>
|
||||
<field name="journal_id" ref="hr_timesheet.analytic_journal"/>
|
||||
@@ -42,7 +42,7 @@
|
||||
<record id="hr.employee7" model="hr.employee">
|
||||
<field name="name">Alien</field>
|
||||
<field name="calendar_id" ref="resource.timesheet_group1"/>
|
||||
<field name="user_id" ref="project.res_users_tester"/>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('hr.category_employee')])]"/>
|
||||
<field name="product_id" ref="product.product_consultant"/>
|
||||
<field name="journal_id" ref="hr_timesheet.analytic_journal"/>
|
||||
@@ -50,7 +50,7 @@
|
||||
<record id="hr.employee8" model="hr.employee">
|
||||
<field name="name">Fabian</field>
|
||||
<field name="calendar_id" ref="resource.timesheet_group1"/>
|
||||
<field name="user_id" ref="project.res_users_finacial_manager"/>
|
||||
<field name="user_id" ref="base.user_vad"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('hr.category_employee')])]"/>
|
||||
<field name="product_id" ref="product.product_consultant"/>
|
||||
<field name="journal_id" ref="hr_timesheet.analytic_journal"/>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
name: Test Timesheet records
|
||||
task_id: project.project_task_1
|
||||
hours: 20.0
|
||||
user_id: project.res_users_analyst
|
||||
user_id: base.user_niv
|
||||
company_id: base.main_company
|
||||
-
|
||||
I check Timesheet line for employee in current Timesheet
|
||||
@@ -16,6 +16,6 @@
|
||||
start = (datetime.date.today().strftime('%Y-%m-%d'))
|
||||
task_work = self.search(cr, uid, [("name","=","Prepare Requirements Document: Test Timesheet records")],context)[0]
|
||||
task_ids = self.browse(cr, uid, task_work, context)
|
||||
assert task_ids.user_id.id == ref("project.res_users_analyst"), 'Error, The User in Timesheet is not Correct'
|
||||
assert task_ids.user_id.id == ref("base.user_niv"), 'Error, The User in Timesheet is not Correct'
|
||||
assert task_ids.date == start, 'Error, The Date in Timesheet is not ok'
|
||||
assert task_ids.product_uom_id.name == "Hour", 'Error, The Hour in Timesheet is not ok'
|
||||
|
||||
Reference in New Issue
Block a user