[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:
@@ -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',
|
||||
|
||||
@@ -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
@@ -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}"
|
||||
|
||||
Reference in New Issue
Block a user