[NEW] maintenance_server_monitoring_equipment_status
This commit is contained in:
@@ -59,7 +59,7 @@ class MaintenanceEquipment(models.Model):
|
||||
"""Class to make the tests
|
||||
"""
|
||||
WARNING = "warning"
|
||||
ERROR = "error"
|
||||
ERROR = "error"
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name # name of the test
|
||||
@@ -208,22 +208,40 @@ class MaintenanceEquipment(models.Model):
|
||||
existing_not_done_warning_request = equipment.warning_maintenance_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):
|
||||
maintenance_request = self.env['maintenance.request'].create({
|
||||
"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:
|
||||
equipment.warning_maintenance_request = maintenance_request
|
||||
|
||||
equipment.create_maintenance_request(self.MonitoringTest.ERROR if error else self.MonitoringTest.WARNING, new_log)
|
||||
else:
|
||||
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):
|
||||
"""
|
||||
install dependencies needed to do all tests, as python or shell programs
|
||||
|
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