[NEW] maintenance_server_monitoring_equipment_status
This commit is contained in:
@@ -208,21 +208,39 @@ class MaintenanceEquipment(models.Model):
|
|||||||
existing_not_done_warning_request = equipment.warning_maintenance_request
|
existing_not_done_warning_request = equipment.warning_maintenance_request
|
||||||
if (error and not existing_not_done_error_request) \
|
if (error and not existing_not_done_error_request) \
|
||||||
or (warning and not existing_not_done_warning_request and not existing_not_done_error_request):
|
or (warning and not existing_not_done_warning_request and not existing_not_done_error_request):
|
||||||
maintenance_request = self.env['maintenance.request'].create({
|
equipment.create_maintenance_request(self.MonitoringTest.ERROR if error else self.MonitoringTest.WARNING, new_log)
|
||||||
"name":f'[{"ERROR" if error else "WARNING"}] {equipment.name}',
|
|
||||||
"equipment_id":equipment.id,
|
|
||||||
"user_id":equipment.technician_user_id.id,
|
|
||||||
"maintenance_team_id":equipment.maintenance_team_id.id or self.env["maintenance.team"].search([], limit=1),
|
|
||||||
"priority":'2' if error else '3',
|
|
||||||
"maintenance_type":"corrective" if error else "preventive",
|
|
||||||
"description":new_log
|
|
||||||
})
|
|
||||||
if error:
|
|
||||||
equipment.error_maintenance_request = maintenance_request
|
|
||||||
else:
|
else:
|
||||||
equipment.warning_maintenance_request = maintenance_request
|
self.no_error()
|
||||||
|
|
||||||
|
|
||||||
|
def create_maintenance_request(self, error_level, description):
|
||||||
|
"""create a maintenance request for equipment (self)
|
||||||
|
|
||||||
|
Args:
|
||||||
|
error_level (string): MonitoringTest.ERROR or MonitoringTest.WARNING
|
||||||
|
description (string): description of maintenance request
|
||||||
|
"""
|
||||||
|
maintenance_request = self.env['maintenance.request'].create({
|
||||||
|
"name":f'[{error_level.upper()}] {self.name}',
|
||||||
|
"equipment_id":self.id,
|
||||||
|
"user_id":self.technician_user_id.id,
|
||||||
|
"maintenance_team_id":self.maintenance_team_id.id or self.env["maintenance.team"].search([], limit=1),
|
||||||
|
"priority":'2' if error_level == self.MonitoringTest.ERROR else '3',
|
||||||
|
"maintenance_type":"corrective" if error_level == self.MonitoringTest.ERROR else "preventive",
|
||||||
|
"description":description
|
||||||
|
})
|
||||||
|
if error_level == self.MonitoringTest.ERROR:
|
||||||
|
self.error_maintenance_request = maintenance_request
|
||||||
|
self.warning_maintenance_request = None
|
||||||
|
else:
|
||||||
|
self.warning_maintenance_request = maintenance_request
|
||||||
|
self.error_maintenance_request = None
|
||||||
|
|
||||||
|
def no_error(self):
|
||||||
|
"""set error and warning maintenance request to None
|
||||||
|
"""
|
||||||
|
self.error_maintenance_request = None
|
||||||
|
self.warning_maintenance_request = None
|
||||||
|
|
||||||
def install_dependencies(self):
|
def install_dependencies(self):
|
||||||
"""
|
"""
|
||||||
|
2
maintenance_server_monitoring_maintenance_equipment_status/.gitignore
vendored
Normal file
2
maintenance_server_monitoring_maintenance_equipment_status/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*.*~
|
||||||
|
*pyc
|
@@ -0,0 +1,44 @@
|
|||||||
|
======================================
|
||||||
|
maintenance_server_monitoring
|
||||||
|
======================================
|
||||||
|
|
||||||
|
Monitor some data on remote hosts
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
Use Odoo normal module installation procedure to install
|
||||||
|
``maintenance_server_monitoring``.
|
||||||
|
|
||||||
|
Known issues / Roadmap
|
||||||
|
======================
|
||||||
|
|
||||||
|
None yet.
|
||||||
|
|
||||||
|
Bug Tracker
|
||||||
|
===========
|
||||||
|
|
||||||
|
Bugs are tracked on `our issues website <https://github.com/elabore-coop/maintenance-tools/issues>`_. In case of
|
||||||
|
trouble, please check there if your issue has already been
|
||||||
|
reported. If you spotted it first, help us smashing it by providing a
|
||||||
|
detailed and welcomed feedback.
|
||||||
|
|
||||||
|
Credits
|
||||||
|
=======
|
||||||
|
|
||||||
|
Contributors
|
||||||
|
------------
|
||||||
|
|
||||||
|
* Clément Thomas
|
||||||
|
|
||||||
|
Funders
|
||||||
|
-------
|
||||||
|
|
||||||
|
The development of this module has been financially supported by:
|
||||||
|
* Elabore (https://elabore.coop)
|
||||||
|
|
||||||
|
|
||||||
|
Maintainer
|
||||||
|
----------
|
||||||
|
|
||||||
|
This module is maintained by Elabore.
|
@@ -0,0 +1,3 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from . import models
|
@@ -0,0 +1,38 @@
|
|||||||
|
# Copyright 2023 Stéphan Sainléger (Elabore)
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
{
|
||||||
|
"name": "maintenance_server_monitoring_maintenance_equipment_status",
|
||||||
|
"version": "14.0.1.0.0",
|
||||||
|
"author": "Elabore",
|
||||||
|
"website": "https://elabore.coop",
|
||||||
|
"maintainer": "Clément Thomas",
|
||||||
|
"license": "AGPL-3",
|
||||||
|
"category": "Tools",
|
||||||
|
"summary": "Monitor some data on remote hosts",
|
||||||
|
# any module necessary for this one to work correctly
|
||||||
|
"depends": [
|
||||||
|
"base",
|
||||||
|
"maintenance_server_monitoring",
|
||||||
|
"maintenance_equipment_status"
|
||||||
|
],
|
||||||
|
"qweb": [
|
||||||
|
# "static/src/xml/*.xml",
|
||||||
|
],
|
||||||
|
"external_dependencies": {
|
||||||
|
"python": [],
|
||||||
|
},
|
||||||
|
# always loaded
|
||||||
|
"data": [
|
||||||
|
"views/maintenance_equipment_status_views.xml",
|
||||||
|
],
|
||||||
|
# only loaded in demonstration mode
|
||||||
|
"demo": [],
|
||||||
|
"js": [],
|
||||||
|
"css": [],
|
||||||
|
"installable": True,
|
||||||
|
# Install this module automatically if all dependency have been previously
|
||||||
|
# and independently installed. Used for synergetic or glue modules.
|
||||||
|
"auto_install": True,
|
||||||
|
"application": False,
|
||||||
|
}
|
@@ -0,0 +1,2 @@
|
|||||||
|
from . import maintenance_equipment
|
||||||
|
from . import maintenance_equipment_status
|
@@ -0,0 +1,23 @@
|
|||||||
|
from odoo import fields, models, api
|
||||||
|
|
||||||
|
|
||||||
|
class MaintenanceEquipment(models.Model):
|
||||||
|
_inherit = 'maintenance.equipment'
|
||||||
|
|
||||||
|
def create_maintenance_request(self, error_level, description):
|
||||||
|
res = super(MaintenanceEquipment, self).create_maintenance_request(error_level, description)
|
||||||
|
if self.error_maintenance_request:
|
||||||
|
error_status = self.env["maintenance.equipment.status"].search([("is_error_status",'=',True),'|', ('category_ids', 'in', [self.category_id.id]), ('category_ids', '=', False)])
|
||||||
|
if error_status:
|
||||||
|
self.status_id = error_status
|
||||||
|
else:
|
||||||
|
warning_status = self.env["maintenance.equipment.status"].search([("is_warning_status",'=',True),'|', ('category_ids', 'in', [self.category_id.id]), ('category_ids', '=', False)])
|
||||||
|
if warning_status:
|
||||||
|
self.status_id = warning_status
|
||||||
|
return res
|
||||||
|
|
||||||
|
def no_error(self):
|
||||||
|
res = super(MaintenanceEquipment, self).no_error()
|
||||||
|
ok_status = self.env["maintenance.equipment.status"].search([("is_error_status",'=',False),("is_warning_status",'=',False),'|', ('category_ids', 'in', [self.category_id.id]), ('category_ids', '=', False)])
|
||||||
|
self.status_id = ok_status
|
||||||
|
return res
|
@@ -0,0 +1,11 @@
|
|||||||
|
from odoo import fields, models, api
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import psutil
|
||||||
|
from io import StringIO
|
||||||
|
|
||||||
|
class MaintenanceEquipmentStatus(models.Model):
|
||||||
|
_inherit = "maintenance.equipment.status"
|
||||||
|
|
||||||
|
is_warning_status = fields.Boolean('Is warning status')
|
||||||
|
is_error_status = fields.Boolean('Is error status')
|
@@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<odoo>
|
||||||
|
<record id="maintenance_equipment_status_view_form_inherit" model="ir.ui.view">
|
||||||
|
<field name="name">maintenance.equipment.status.form.inherit</field>
|
||||||
|
<field name="model">maintenance.equipment.status</field>
|
||||||
|
<field name="inherit_id" ref="maintenance_equipment_status.maintenance_equipment_status_view_form" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<group name="notes" position="after">
|
||||||
|
<group name="monitoring">
|
||||||
|
<field name="is_warning_status" />
|
||||||
|
<field name="is_error_status" />
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="maintenance_equipment_status_view_tree_inherit" model="ir.ui.view">
|
||||||
|
<field name="name">maintenance.equipment.status.tree.inherit</field>
|
||||||
|
<field name="model">maintenance.equipment.status</field>
|
||||||
|
<field name="inherit_id" ref="maintenance_equipment_status.maintenance_equipment_status_view_tree" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="category_ids" position="after">
|
||||||
|
<field name="is_warning_status" />
|
||||||
|
<field name="is_error_status" />
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</odoo>
|
Reference in New Issue
Block a user