[IMP] Equipment: cleaning views and usability
This commit is contained in:
@@ -17,11 +17,13 @@
|
||||
<field name="name">Repaired</field>
|
||||
<field name="sequence" eval="3" />
|
||||
<field name="fold" eval="True" />
|
||||
<field name="done" eval="True" />
|
||||
</record>
|
||||
<record id="stage_4" model="hr.equipment.stage">
|
||||
<field name="name">Scrap</field>
|
||||
<field name="sequence" eval="4" />
|
||||
<field name="fold" eval="True" />
|
||||
<field name="done" eval="True" />
|
||||
</record>
|
||||
|
||||
<!-- email alias for maintenance requests -->
|
||||
@@ -68,5 +70,15 @@
|
||||
<field name="relation_field">category_id</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_equipment_computer" model="hr.equipment.category">
|
||||
<field name="name">Computers</field>
|
||||
</record>
|
||||
<record id="hr_equipment_software" model="hr.equipment.category">
|
||||
<field name="name">Softwares</field>
|
||||
</record>
|
||||
<record id="hr_equipment_printer" model="hr.equipment.category">
|
||||
<field name="name">Printers</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -3,23 +3,11 @@
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Equipment categories -->
|
||||
<record id="hr_equipment_computer" model="hr.equipment.category">
|
||||
<field name="name">Computers</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
<record id="hr_equipment_monitor" model="hr.equipment.category">
|
||||
<field name="name">Monitors</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="color">3</field>
|
||||
</record>
|
||||
<record id="hr_equipment_software" model="hr.equipment.category">
|
||||
<field name="name">Softwares</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
<record id="hr_equipment_printer" model="hr.equipment.category">
|
||||
<field name="name">Printers</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
<record id="hr_equipment_phone" model="hr.equipment.category">
|
||||
<field name="name">Phones</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
|
||||
@@ -15,6 +15,7 @@ class HrEquipmentStage(models.Model):
|
||||
name = fields.Char('Name', required=True, translate=True)
|
||||
sequence = fields.Integer('Sequence', default=20)
|
||||
fold = fields.Boolean('Folded in Recruitment Pipe')
|
||||
done = fields.Boolean('Request Done')
|
||||
|
||||
|
||||
class HrEquipmentCategory(models.Model):
|
||||
@@ -34,7 +35,7 @@ class HrEquipmentCategory(models.Model):
|
||||
note = fields.Text('Comments', translate=True)
|
||||
equipment_ids = fields.One2many('hr.equipment', 'category_id', string='Equipments', copy=False)
|
||||
equipment_count = fields.Integer(string="Equipment", compute='_compute_equipment_count')
|
||||
maintenance_ids = fields.One2many('hr.equipment.request', 'category_id', copy=False, domain=[('stage_id.fold', '=', False)])
|
||||
maintenance_ids = fields.One2many('hr.equipment.request', 'category_id', copy=False)
|
||||
maintenance_count = fields.Integer(string="Maintenance", compute='_compute_maintenance_count')
|
||||
alias_id = fields.Many2one(
|
||||
'mail.alias', 'Alias', ondelete='cascade', required=True,
|
||||
@@ -104,32 +105,36 @@ class HrEquipment(models.Model):
|
||||
recs = self.search([('name', operator, name)] + args, limit=limit)
|
||||
return recs.name_get()
|
||||
|
||||
name = fields.Char('Name', required=True, translate=True)
|
||||
name = fields.Char('Equipment Name', required=True, translate=True)
|
||||
user_id = fields.Many2one('res.users', string='Technician', track_visibility='onchange')
|
||||
employee_id = fields.Many2one('hr.employee', string='Assigned to Employee', track_visibility='onchange')
|
||||
department_id = fields.Many2one('hr.department', string='Assigned to Department', track_visibility='onchange')
|
||||
category_id = fields.Many2one('hr.equipment.category', string='Equipment Category', track_visibility='onchange')
|
||||
partner_id = fields.Many2one('res.partner', string='Vendor', domain="[('supplier', '=', 1)]")
|
||||
partner_ref = fields.Char('Vendor Reference')
|
||||
model = fields.Char('Model')
|
||||
serial_no = fields.Char('Serial Number', copy=False)
|
||||
assign_date = fields.Date('Assigned Date', track_visibility='onchange')
|
||||
cost = fields.Float('Cost')
|
||||
note = fields.Text('Note')
|
||||
warranty = fields.Date('Warranty')
|
||||
color = fields.Integer('Color Index')
|
||||
scrap_date = fields.Date('Scrap Date')
|
||||
equipment_assign_to = fields.Selection(
|
||||
[('department', 'By Department'), ('employee', 'By Employee')],
|
||||
string='Allocate To',
|
||||
help='By Employee: equipment assigned to individual Employee, By Department: equipment assigned to group of employees in department',
|
||||
[('department', 'Department'), ('employee', 'Employee')],
|
||||
string='Used By',
|
||||
required=True,
|
||||
default='employee')
|
||||
maintenance_ids = fields.One2many('hr.equipment.request', 'equipment_id', domain=[('stage_id.fold', '=', False)])
|
||||
maintenance_count = fields.Integer(compute='_compute_maintenance_count', string="Maintenance")
|
||||
maintenance_ids = fields.One2many('hr.equipment.request', 'equipment_id')
|
||||
maintenance_count = fields.Integer(compute='_compute_maintenance_count', string="Maintenance", store=True)
|
||||
maintenance_open_count = fields.Integer(compute='_compute_maintenance_count', string="Current Maintenance", store=True)
|
||||
|
||||
@api.one
|
||||
@api.depends('maintenance_ids')
|
||||
@api.depends('maintenance_ids.stage_id.done')
|
||||
def _compute_maintenance_count(self):
|
||||
self.maintenance_count = len(self.maintenance_ids)
|
||||
self.maintenance_open_count = len(self.maintenance_ids.filtered(lambda x: not x.stage_id.done))
|
||||
|
||||
|
||||
@api.onchange('equipment_assign_to')
|
||||
def _onchange_equipment_assign_to(self):
|
||||
|
||||
@@ -199,6 +199,10 @@
|
||||
<field name="model">hr.equipment</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Equipments">
|
||||
<header>
|
||||
<field name="category_id" widget="statusbar" clickable="True"
|
||||
options="{'fold_field': 'fold'}"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="%(hr_equipment_request_action_from_equipment)d"
|
||||
@@ -209,7 +213,7 @@
|
||||
</button>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" string="Name"/>
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1><field name="name" string="Name" placeholder="Equipment Name"/></h1>
|
||||
<label for="serial_no" class="oe_edit_only"/>
|
||||
<field name="serial_no"/>
|
||||
@@ -232,10 +236,15 @@
|
||||
<field name="note"/>
|
||||
</page>
|
||||
<page string="Product Information">
|
||||
<group col="4">
|
||||
<field name="partner_id"/>
|
||||
<field name="cost" groups="base.group_hr_user"/>
|
||||
<field name="model"/>
|
||||
<group>
|
||||
<group>
|
||||
<field name="partner_id"/>
|
||||
<field name="partner_ref"/>
|
||||
<field name="model"/>
|
||||
</group><group>
|
||||
<field name="cost" groups="base.group_hr_user"/>
|
||||
<field name="warranty"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -260,6 +269,7 @@
|
||||
<field name="serial_no"/>
|
||||
<field name="model"/>
|
||||
<field name="maintenance_ids"/>
|
||||
<field name="maintenance_open_count"/>
|
||||
<templates>
|
||||
<t t-name="kanban-tooltip">
|
||||
<ul class="oe_kanban_tooltip">
|
||||
@@ -291,10 +301,8 @@
|
||||
<div class="oe_kanban_bottom_right">
|
||||
<img t-att-src="kanban_image('hr.employee', 'image_small', record.employee_id.raw_value)" t-att-title="record.employee_id.value" width="27" height="27" class="oe_kanban_avatar"/>
|
||||
</div>
|
||||
<div class="oe_kanban_footer_left mt4">
|
||||
<a t-if="record.maintenance_ids.raw_value" type="action" name="%(hr_equipment_request_action_from_equipment)d">
|
||||
<t t-raw="record.maintenance_ids.raw_value.length"/> Maintenance Request
|
||||
</a>
|
||||
<div class="oe_kanban_footer_left mt4 label label-danger" t-if="record.maintenance_open_count.raw_value" >
|
||||
<t t-raw="record.maintenance_open_count.raw_value"/> Request
|
||||
</div>
|
||||
</div>
|
||||
<div class="oe_clear"></div>
|
||||
@@ -328,17 +336,16 @@
|
||||
<field name="model">hr.equipment</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search">
|
||||
<field name="name"/>
|
||||
<field name="serial_no"/>
|
||||
<field name="name" filter_domain="['|','|','|',('name','ilike',self),('model','ilike',self),('serial_no','ilike',self),('partner_ref', 'ilike', self)]"/>
|
||||
<field name="category_id"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="department_id"/>
|
||||
<field name="model"/>
|
||||
<filter string="New" help="Unassigned" domain="[('employee_id', '=', False), ('department_id', '=', False)]"/>
|
||||
<filter string="To Do" help="Under Maintenance" domain="[('maintenance_ids', '!=', False), ('maintenance_ids.stage_id.fold', '=', False)]"/>
|
||||
<filter string="Assigned" domain="['|', ('employee_id', '!=', False), ('department_id', '!=', False)]"/>
|
||||
<filter string="Under Maintenance" domain="[('maintenance_open_count', '>', 0)]"/>
|
||||
<separator/>
|
||||
<filter string="My Equipments" domain="['|', ('employee_id.user_id', '=', uid), ('department_id.manager_id.user_id', '=', uid)]"/>
|
||||
<filter string="Assigned" domain="['|', ('employee_id', '!=', False), ('department_id', '!=', False)]"/>
|
||||
<filter string="Available" domain="[('employee_id', '=', False), ('department_id', '=', False)]"/>
|
||||
<separator/>
|
||||
<filter string="My Equipments" domain="[('employee_id.user_id', '=', uid)]"/>
|
||||
<separator/>
|
||||
<filter string="Important Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
|
||||
<group expand='0' string='Group by...'>
|
||||
@@ -498,6 +505,7 @@
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="fold"/>
|
||||
<field name="done"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -537,7 +545,7 @@
|
||||
parent="menu_equipment_title"
|
||||
action="hr_equipment_request_action"
|
||||
groups="base.group_hr_manager,base.group_hr_user,base.group_user"
|
||||
sequence="1"/>
|
||||
sequence="2"/>
|
||||
|
||||
<menuitem
|
||||
id="menu_hr_equipment_form"
|
||||
@@ -545,7 +553,7 @@
|
||||
parent="menu_equipment_title"
|
||||
action="hr_equipment_action"
|
||||
groups="base.group_hr_manager,base.group_hr_user,base.group_user"
|
||||
sequence="2"/>
|
||||
sequence="1"/>
|
||||
|
||||
<menuitem
|
||||
id="menu_equipment_global_settings"
|
||||
|
||||
Reference in New Issue
Block a user