80 lines
2.5 KiB
Python
80 lines
2.5 KiB
Python
from odoo import _, fields, models
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class ResConfigSettings(models.TransientModel):
|
|
"""
|
|
Inherit res.config.settings to add new settings
|
|
"""
|
|
|
|
_inherit = "res.config.settings"
|
|
|
|
cetmix_tower_command_timeout = fields.Integer(
|
|
string="Command Timeout",
|
|
config_parameter="cetmix_tower_server.command_timeout",
|
|
help="Timeout for commands in seconds after which"
|
|
" the command will be terminated",
|
|
)
|
|
cetmix_tower_notification_type_error = fields.Selection(
|
|
string="Error Notifications",
|
|
selection=lambda self: self._selection_notifications_type(),
|
|
config_parameter="cetmix_tower_server.notification_type_error",
|
|
help="Type of error notifications",
|
|
)
|
|
cetmix_tower_notification_type_success = fields.Selection(
|
|
string="Success Notifications",
|
|
selection=lambda self: self._selection_notifications_type(),
|
|
config_parameter="cetmix_tower_server.notification_type_success",
|
|
help="Type of success notifications",
|
|
)
|
|
|
|
def _selection_notifications_type(self):
|
|
"""
|
|
Selection of notifications type
|
|
"""
|
|
return [
|
|
("sticky", _("Sticky")),
|
|
("non_sticky", _("Non-sticky")),
|
|
]
|
|
|
|
def action_configure_cron_pull_files_from_server(self):
|
|
"""
|
|
Configure cron job to pull files from server
|
|
"""
|
|
return self._get_cron_job_action(
|
|
"cetmix_tower_server.ir_cron_auto_pull_files_from_server"
|
|
)
|
|
|
|
def action_configure_zombie_commands_cron(self):
|
|
"""
|
|
Configure cron job to check zombie commands
|
|
"""
|
|
return self._get_cron_job_action(
|
|
"cetmix_tower_server.ir_cron_check_zombie_commands"
|
|
)
|
|
|
|
def action_configure_run_scheduled_tasks_cron(self):
|
|
"""
|
|
Configure cron job to run scheduled tasks
|
|
"""
|
|
return self._get_cron_job_action(
|
|
"cetmix_tower_server.ir_cron_run_scheduled_tasks"
|
|
)
|
|
|
|
def _get_cron_job_action(self, cron_xml_id):
|
|
"""
|
|
Get action to configure cron job
|
|
"""
|
|
self.ensure_one()
|
|
cron_id = self.env.ref(cron_xml_id).id
|
|
if not cron_id:
|
|
raise ValidationError(_("Cron job not found"))
|
|
return {
|
|
"name": _("Cron Job"),
|
|
"views": [(False, "form")],
|
|
"res_model": "ir.cron",
|
|
"res_id": cron_id,
|
|
"type": "ir.actions.act_window",
|
|
"target": "new",
|
|
}
|