details: https://code.tryton.org/tryton/commit/7e78fce7e93f
branch: default
user: Cédric Krier <[email protected]>
date: Tue Oct 21 12:18:02 2025 +0200
description:
Fallback to id as record name when _rec_name value is empty
It happens that the _rec_name is not required so a fallback value is
needed to
ensure to always have a name for the record.
Closes #14275
diffstat:
modules/sale_gift_card/sale.py | 7 -------
modules/sale_point/sale.py | 6 ------
trytond/trytond/model/modelstorage.py | 9 +++++----
3 files changed, 5 insertions(+), 17 deletions(-)
diffs (52 lines):
diff -r e0ec1da9b057 -r 7e78fce7e93f modules/sale_gift_card/sale.py
--- a/modules/sale_gift_card/sale.py Tue Oct 21 13:13:23 2025 +0200
+++ b/modules/sale_gift_card/sale.py Tue Oct 21 12:18:02 2025 +0200
@@ -154,13 +154,6 @@
return [(None, '')] + [
(m, Model.get_name(m)) for m in cls._get_spent_on()]
- def get_rec_name(self, name):
- if not self.number:
- name = '(%d)' % self.id
- else:
- name = self.number
- return name
-
@property
def _email(self):
pool = Pool()
diff -r e0ec1da9b057 -r 7e78fce7e93f modules/sale_point/sale.py
--- a/modules/sale_point/sale.py Tue Oct 21 13:13:23 2025 +0200
+++ b/modules/sale_point/sale.py Tue Oct 21 12:18:02 2025 +0200
@@ -261,12 +261,6 @@
return (self.on_change_with_total()
- self.on_change_with_amount_paid())
- def get_rec_name(self, name):
- if self.number:
- return self.number
- else:
- return '(%s)' % self.id
-
@classmethod
def copy(cls, sales, default=None):
if default is None:
diff -r e0ec1da9b057 -r 7e78fce7e93f trytond/trytond/model/modelstorage.py
--- a/trytond/trytond/model/modelstorage.py Tue Oct 21 13:13:23 2025 +0200
+++ b/trytond/trytond/model/modelstorage.py Tue Oct 21 12:18:02 2025 +0200
@@ -807,10 +807,11 @@
Return the rec_name of the instance.
It is used by the Function field rec_name.
'''
- rec_name = self._rec_name
- if rec_name not in self._fields:
- rec_name = 'id'
- return str(getattr(self, rec_name))
+ if self._rec_name in self._fields:
+ name = getattr(self, self._rec_name)
+ else:
+ name = None
+ return str(name or f'({self.id})')
@classmethod
def search_rec_name(cls, name, clause):