id="menu_hr_root"
groups="base.group_hr_manager,base.group_hr_user,base.group_user"
sequence="90"/>
- <menuitem id="menu_hr_reporting" parent="base.menu_reporting" name="Human Resources" sequence="40" />
+ <menuitem id="menu_hr_reporting" parent="base.menu_reporting" name="Human Resources" sequence="60" />
<menuitem id="menu_hr_main" parent="menu_hr_root" name="Human Resources" sequence="0"/>
- <menuitem id="menu_hr_configuration" name="Configuration" parent="hr.menu_hr_root" groups="base.group_hr_manager" sequence="50"/>
+ <menuitem id="menu_hr_configuration" name="Configuration" parent="hr.menu_hr_root" groups="base.group_hr_user" sequence="50"/>
+ <menuitem id="menu_hr_configuration_employees" name="Employees" parent="hr.menu_hr_configuration" groups="base.group_hr_user" sequence="1"/>
+ <menuitem id="menu_hr_configuration_recruitment" name="Recruitment" parent="hr.menu_hr_configuration" groups="base.group_hr_user" sequence="2"/>
+ <menuitem id="menu_hr_configuration_timesheets_attendances" name="Timesheets & Attendances" parent="hr.menu_hr_configuration" groups="base.group_hr_user" sequence="3"/>
+ <menuitem id="menu_hr_configuration_expenses" name="Expenses" parent="hr.menu_hr_configuration" groups="base.group_hr_manager" sequence="4"/>
+
<menuitem id="menu_hr_reporting_timesheet" name="Reports"
parent="menu_hr_reporting" sequence="6"/>
<field name="name">hr.employee.form</field>
<field name="model">hr.employee</field>
<field name="arch" type="xml">
- <form string="Employee" version="7.0">
+ <form string="Employee">
<sheet>
<field name="image_medium" widget='image' class="oe_left oe_avatar"/>
<div class="oe_title">
<page string="Public Information">
<group>
<group string="Contact Information">
- <field name="address_id" on_change="onchange_address_id(address_id)" context="{'show_address': 1}" options='{"always_reload": True, "highlight_first_line": True}'/>
+ <field name="address_id" on_change="onchange_address_id(address_id)"
+ context="{'show_address': 1}"
+ options='{"always_reload": True, "highlight_first_line": True}'/>
<field name="mobile_phone"/>
<field name="work_location"/>
</group>
<field name="otherid" groups="base.group_hr_user"/>
</group>
<group string="Contact Information">
- <field name="address_home_id" context="{'show_address': 1}" options='{"always_reload": True, "highlight_first_line": True}'/>
+ <field name="address_home_id"
+ context="{'show_address': 1}"
+ options='{"always_reload": True, "highlight_first_line": True}'/>
</group>
<group string="Status">
<field name="gender"/>
</notebook>
</sheet>
<div class="oe_chatter">
- <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
<field name="name">hr.employee.tree</field>
<field name="model">hr.employee</field>
<field name="arch" type="xml">
- <tree string="Employees">
+ <tree string="Employees" fonts="bold:message_unread==True">
<field name="name"/>
<field name="work_phone"/>
<field name="work_email"/>
<field name="job_id"/>
<field name="parent_id"/>
<field name="coach_id" invisible="1"/>
+ <field name="message_unread" invisible="1"/>
</tree>
</field>
</record>
<field name="name" string="Employees" filter_domain="['|',('work_email','ilike',self),('name','ilike',self)]"/>
<field name="department_id" />
<field name="category_ids" groups="base.group_hr_user"/>
- <group expand="0" string="Group By...">
+ <field name="job_id" />
+ <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
+ <group expand="0" string="Group By">
<filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
<filter string="Coach" icon="terp-personal" domain="[]" context="{'group_by':'coach_id'}"/>
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
<field name="message_is_follower"/>
<field name="message_follower_ids"/>
<field name="message_ids"/>
+ <field name="message_summary"/>
+ <field name="message_unread"/>
<templates>
<t t-name="kanban-box">
- <div class="oe_employee_vignette">
- <div class="oe_employee_image">
- <a type="open"><img t-att-src="kanban_image('hr.employee', 'image_medium', record.id.value)" class="oe_employee_picture"/></a>
+ <div class="oe_employee_details">
+ <div class="col-md-4">
+ <a type="open"><img t-att-src="kanban_image('hr.employee', 'image_medium', record.id.value)" class="oe_employee_image"/></a>
</div>
- <div class="oe_employee_details">
+ <div class="col-md-6">
<h4>
<a type="open"><field name="name"/><t t-if="record.login.raw_value"> (<field name="login"/>)</t></a>
</h4>
<ul>
<li id="last_login">
<span t-if="record.last_login.raw_value && record.last_login.raw_value.is().today()" class="oe_kanban_button" style="font-size: 100%%">
- <t t-esc="record.last_login.raw_value.toString('HH:mm')"/>
+ <t t-esc="moment(record.last_login.raw_value).format('LT')"/>
</span>
</li>
<li t-if="record.job_id.raw_value"><field name="job_id"/></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 class="oe_kanban_footer_left">
+ <t t-raw="record.message_summary.raw_value"/>
<span title='Messages'><span class='oe_e'>9</span><t t-esc="record.message_ids.raw_value.length"/></span>
<span title='Followers'><span class='oe_e'>+</span><t t-esc="record.message_follower_ids.raw_value.length"/></span>
+
</div>
<div class="oe_followers" groups="base.group_user">
<button t-if="record.message_is_follower.raw_value" name="action_unfollow" type="object" class="oe_follower oe_following">
</div>
</div>
</div>
- <script>
- $('.oe_employee_picture').load(function() { if($(this).width() > $(this).height()) { $(this).addClass('oe_employee_picture_wide') } });
- </script>
</t>
</templates>
</kanban>
<p class="oe_view_nocontent_create">
Click to add a new employee.
</p><p>
- With just a quick glance on the OpenERP employee screen, you
+ With just a quick glance on the Odoo employee screen, you
can easily find all the information you need for each person;
contact data, job position, availability, etc.
</p>
<field name="name">hr.employee.category.form</field>
<field name="model">hr.employee.category</field>
<field name="arch" type="xml">
- <form string="Employee Category" version="7.0">
+ <form string="Employee Category">
<group>
<field name="name"/>
<field name="parent_id"/>
</record>
<menuitem action="open_view_categ_form" id="menu_view_employee_category_form"
- parent="hr.menu_hr_configuration" sequence="1" groups="base.group_no_one"/>
+ parent="hr.menu_hr_configuration_employees" sequence="1" groups="base.group_no_one,base.group_hr_manager"/>
<record id="hr_employee_normal_action_tree" model="ir.actions.act_window">
<field name="name">Employees</field>
<field name="name">hr.job.form</field>
<field name="model">hr.job</field>
<field name="arch" type="xml">
- <form string="Job" version="7.0">
+ <form string="Job">
<header>
<button name="set_recruit" string="Launch Recruitment" states="open" type="object" class="oe_highlight" groups="base.group_user"/>
<button name="set_open" string="Stop Recruitment" states="recruit" type="object" class="oe_highlight" groups="base.group_user"/>
<div class="oe_right" name="buttons"/>
<group name="employee_data">
<field name="department_id" class="oe_inline"/>
- <label for="no_of_employee"/>no_of_recruitment
- <div>
- <field name="no_of_employee" class="oe_inline"/>
- <p><field name="no_of_recruitment" groups="base.group_user" colspan="0" class="oe_inline" style="padding-top: 1px"/> new employee(s) expected</p>
- </div>
+ <field name="no_of_recruitment" class="oe_inline" />
+
</group>
<div attrs="{'invisible': [('state', '!=', 'recruit')]}">
<label for="description"/>
<field name="name">hr.job.tree</field>
<field name="model">hr.job</field>
<field name="arch" type="xml">
- <tree string="Job">
+ <tree string="Job" fonts="bold:message_unread==True">
<field name="name"/>
<field name="department_id"/>
<field name="no_of_employee"/>
<field name="expected_employees"/>
<field name="no_of_hired_employee"/>
<field name="state"/>
+ <field name="message_unread" invisible="1"/>
</tree>
</field>
</record>
<filter domain="[('state','=','open')]" string="In Position"/>
<filter domain="[('state','=','recruit')]" string="In Recruitment" name="in_recruitment"/>
<field name="department_id"/>
- <group expand="0" string="Group By...">
+ <separator/>
+ <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
+ <group expand="0" string="Group By">
<filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Status" domain="[]" context="{'group_by':'state'}"/>
<filter string="Company" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<field name="name">hr.department.form</field>
<field name="model">hr.department</field>
<field name="arch" type="xml">
- <form string="department" version="7.0">
+ <form string="department">
<sheet>
<group col="4">
<field name="name"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
</sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
</form>
</field>
</record>
<search string="Departments">
<field name="name" string="Department"/>
<field name="manager_id" />
+ <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
</search>
</field>
</record>
<p class="oe_view_nocontent_create">
Click to create a department.
</p><p>
- OpenERP's department structure is used to manage all documents
+ Odoo's department structure is used to manage all documents
related to employees by departments: expenses, timesheets,
leaves and holidays, recruitments, etc.
</p>
</field>
</record>
- <menuitem action="open_module_tree_department" id="menu_hr_department_tree" parent="hr.menu_hr_configuration" sequence="5"/>
+ <menuitem action="open_module_tree_department" id="menu_hr_department_tree" parent="hr.menu_hr_configuration_employees" sequence="2" groups="base.group_hr_manager,base.group_hr_user"/>
</data>
</openerp>