Raise a UserError when SQL sequence operations fail

issue10235
review332771002
This commit is contained in:
Cédric Krier committed 2021-05-16 15:33:53 +02:00
1 parent 6a626d3bad
commit aa99adcbc6
2 files changed
+27 -5

No files matched your search

+3
View File
@@ -267,6 +267,9 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.message" id="msg_sequence_change_sequence_type">
<field name="text">You cannot change the sequence type of a sequence instead create a new sequence.</field>
</record>
<record model="ir.message" id="msg_sequence_invalid_number_increment_next">
<field name="text">Invalid "Increment Number" (%s) or "Next Number" (%s) with exception "%(exception)s".</field>
</record>
<record model="ir.message" id="msg_language_invalid_grouping">
<field name="text">Invalid grouping "%(grouping)s" for language "%(language)s".</field>
+24 -5
View File
@@ -29,6 +29,10 @@ class LastTimestampError(ValidationError):
pass
class SQLSequenceError(ValidationError):
pass
class SequenceType(ModelSQL, ModelView):
"Sequence type"
__name__ = 'ir.sequence.type'
@@ -265,9 +269,16 @@ class Sequence(DeactivableMixin, ModelSQL, ModelView):
return
if number_next is None:
number_next = self.number_next
if sql_sequence:
transaction.database.sequence_create(transaction.connection,
self._sql_sequence_name, self.number_increment, number_next)
try:
transaction.database.sequence_create(
transaction.connection, self._sql_sequence_name,
self.number_increment, number_next)
except Exception as exception:
raise SQLSequenceError(
gettext('ir.msg_sequence_invalid_number_increment_next',
number_increment=self.number_increment,
number_next=number_next,
exception=exception)) from exception
def update_sql_sequence(self, number_next=None):
'Update the SQL sequence'
@@ -284,8 +295,16 @@ class Sequence(DeactivableMixin, ModelSQL, ModelView):
return
if number_next is None:
number_next = self.number_next
transaction.database.sequence_update(transaction.connection,
self._sql_sequence_name, self.number_increment, number_next)
try:
transaction.database.sequence_update(
transaction.connection, self._sql_sequence_name,
self.number_increment, number_next)
except Exception as exception:
raise SQLSequenceError(
gettext('ir.msg_sequence_invalid_number_increment_next',
number_increment=self.number_increment,
number_next=number_next,
exception=exception)) from exception
def delete_sql_sequence(self):
'Delete the SQL sequence'