[IMP] Equipment: cleaning views and usability

This commit is contained in:
Fabien Pinckaers
2015-09-10 20:12:16 +02:00
parent 0e6d850b34
commit d0a4e399cb
4 changed files with 51 additions and 38 deletions
@@ -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"/>
+13 -8
View File
@@ -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', '&gt;', 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"