[FIX] runbot: use markup to post message on build errors

This commit is contained in:
Christophe Monniez 2024-02-19 09:34:30 +01:00
parent ecfdb5693d
commit a29e1ecc11

View File

@ -1,13 +1,11 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import ast
import hashlib import hashlib
import logging import logging
import re import re
from psycopg2 import sql
from collections import defaultdict from collections import defaultdict
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from markupsafe import Markup
from werkzeug.urls import url_join from werkzeug.urls import url_join
from odoo import models, fields, api from odoo import models, fields, api
from odoo.exceptions import ValidationError, UserError from odoo.exceptions import ValidationError, UserError
@ -290,7 +288,7 @@ class BuildError(models.Model):
def _get_form_link(self): def _get_form_link(self):
self.ensure_one() self.ensure_one()
return f'<a href="{self._get_form_url()}">{self.id}</a>' return Markup(f'<a href="%s">%s</a>') % (self._get_form_url(), self.id)
def _merge(self): def _merge(self):
if len(self) < 2: if len(self) < 2:
@ -304,10 +302,10 @@ class BuildError(models.Model):
base_linked.test_tags = error.test_tags base_linked.test_tags = error.test_tags
if not base_linked.active and error.active: if not base_linked.active and error.active:
base_linked.active = True base_linked.active = True
base_error.message_post(body=f'⚠ test-tags inherited from error {error._get_form_link()}') base_error.message_post(body=Markup('⚠ test-tags inherited from error %s') % error._get_form_link())
elif base_linked.test_tags and error.test_tags and base_linked.test_tags != error.test_tags: elif base_linked.test_tags and error.test_tags and base_linked.test_tags != error.test_tags:
base_error.message_post(body=f'⚠ trying to merge errors with different test-tags from {error._get_form_link()} tag: "{error.test_tags}"') base_error.message_post(body=Markup('⚠ trying to merge errors with different test-tags from %s tag: "%s"') % (error._get_form_link(), error.test_tags))
error.message_post(body=f'⚠ trying to merge errors with different test-tags from {base_error._get_form_link()} tag: "{base_error.test_tags}"') error.message_post(body=Markup('⚠ trying to merge errors with different test-tags from %s tag: "%s"') % (base_error._get_form_link(), base_error.test_tags))
continue continue
for build_error_link in error.build_error_link_ids: for build_error_link in error.build_error_link_ids:
@ -320,13 +318,13 @@ class BuildError(models.Model):
if error.responsible and not base_linked.responsible: if error.responsible and not base_linked.responsible:
base_error.responsible = error.responsible base_error.responsible = error.responsible
elif base_linked.responsible and error.responsible and base_linked.responsible != error.responsible: elif base_linked.responsible and error.responsible and base_linked.responsible != error.responsible:
base_linked.message_post(body=f'⚠ responsible in merged error {error._get_form_link()} was "{error.responsible.name}" and different from this one') base_linked.message_post(body=Markup('⚠ responsible in merged error %s was "%s" and different from this one') % (error._get_form_link(), error.responsible.name))
if error.team_id and not base_error.team_id: if error.team_id and not base_error.team_id:
base_error.team_id = error.team_id base_error.team_id = error.team_id
base_error.message_post(body=f'Error {error._get_form_link()} was merged into this one') base_error.message_post(body=Markup('Error %s was merged into this one') % error._get_form_link())
error.message_post(body=f'Error was merged into {base_linked._get_form_link()}') error.message_post(body=Markup('Error was merged into %s') % base_linked._get_form_link())
error.child_ids.parent_id = base_error error.child_ids.parent_id = base_error
error.active = False error.active = False
@ -441,4 +439,4 @@ class ErrorBulkWizard(models.TransientModel):
error_ids['active'] = False error_ids['active'] = False
if self.chatter_comment: if self.chatter_comment:
for build_error in error_ids: for build_error in error_ids:
build_error.message_post(body=self.chatter_comment, subject="Bullk Wizard Comment") build_error.message_post(body=Markup('%s') % self.chatter_comment, subject="Bullk Wizard Comment")