[REV] core: remove ORM display_name fallback

This reverts commit 4573ca0c83eb63785016f4389a5157efb21fa9a4.

Because now, `display_name` is implicitly on every form (last breadcrumb
item). Then it will be queried by `onchange` calls. When we create a
new record, `_rec_name` can be `False` and the display_name will be a
technical one: '<model_name>,<NewId0x...>' which is uglier than the
previous situation showing 'New'.

Part-of: odoo/odoo#138061
This commit is contained in:
Rémy Voet (ryv)
2023-10-10 12:35:01 +00:00
parent b05b4f3f7a
commit b67df70b8a
3 changed files with 20 additions and 8 deletions
@@ -170,6 +170,24 @@ class TestMessageValues(MailCommon):
self.assertEqual(msg.reply_to, formataddr((test_record.name, reply_to_email)),
'Reply-To: use recordname as name in format if recordname + company > 78 chars')
# no record_name: keep company_name in formatting if ok
test_record.write({'name': ''})
msg = self.env['mail.message'].create({
'model': test_record._name,
'res_id': test_record.id
})
self.assertEqual(msg.reply_to, formataddr((self.env.user.company_id.name, reply_to_email)),
'Reply-To: use company as name in format when no record name and still < 78 chars')
# no record_name and company_name make it blow up: keep only email
self.env.user.company_id.write({'name': 'Super Long Name That People May Enter "Even with an internal quoting of stuff"'})
msg = self.env['mail.message'].create({
'model': test_record._name,
'res_id': test_record.id
})
self.assertEqual(msg.reply_to, reply_to_email,
'Reply-To: use only email when formataddr > 78 chars')
# whatever the record and company names, email is too long: keep only email
test_record.write({
'alias_name': 'Waaaay too long alias name that should make any reply-to blow the 78 characters limit',
+1 -7
View File
@@ -369,18 +369,12 @@ class TestIrModel(TransactionCase):
self.assertEqual(self.registry.field_depends[type(record).display_name], ('x_name',))
self.assertEqual(record.display_name, "Ifan Ben-Mezd")
fallback_display_name = f"x_bananas,{record.id}"
# When _rec_name value is Falsy, we should fallback correctly.
record.x_name = False
self.assertEqual(record.display_name, fallback_display_name)
# unlinking x_name should fixup _rec_name and display_name
self.env['ir.model.fields']._get('x_bananas', 'x_name').unlink()
record = self.env['x_bananas'].browse(record.id)
self.assertEqual(record._rec_name, None)
self.assertEqual(self.registry.field_depends[type(record).display_name], ())
self.assertEqual(record.display_name, fallback_display_name)
self.assertEqual(record.display_name, f"x_bananas,{record.id}")
def test_monetary_currency_field(self):
fields_value = [
+1 -1
View File
@@ -1650,7 +1650,7 @@ class BaseModel(metaclass=MetaModel):
if self._rec_name:
convert = self._fields[self._rec_name].convert_to_display_name
for record in self:
record.display_name = convert(record[self._rec_name], record) or f"{record._name},{record.id}"
record.display_name = convert(record[self._rec_name], record)
else:
for record in self:
record.display_name = f"{record._name},{record.id}"