Handle two kind of sequence one with lock on table (strict) and one without

This commit is contained in:
Cédric Krier
2008-09-10 17:41:36 +02:00
parent 4d4ebddfa8
commit bf084536dc
2 changed files with 83 additions and 2 deletions
+13 -1
View File
@@ -72,7 +72,6 @@ class Sequence(OSV):
)
def get_id(self, cursor, user, sequence_id, test='id=%s', context=None):
cursor.execute('lock table ir_sequence')
cursor.execute('SELECT id, number_next, number_increment, prefix, ' \
'suffix, padding ' \
'FROM ir_sequence ' \
@@ -95,3 +94,16 @@ class Sequence(OSV):
return self.get_id(cursor, user, code, test='code=%s', context=context)
Sequence()
class SequenceStrict(Sequence):
"Sequence Strict"
_name = 'ir.sequence.strict'
_description = __doc__
def get_id(self, cursor, user, sequence_id, test='id=%s', context=None):
cursor.execute('LOCK TABLE ir_sequence')
return super(SequenceStrict, self).get_id(cursor, user, sequence_id,
test=test, context=context)
SequenceStrict()
+70 -1
View File
@@ -4,6 +4,7 @@
<data>
<menuitem name="Sequences" parent="menu_administration"
id="menu_sequences"/>
<record model="ir.ui.view" id="sequence_view_form">
<field name="model">ir.sequence</field>
<field name="type">form</field>
@@ -36,7 +37,6 @@
</form>
]]>
</field>
</record>
<record model="ir.ui.view" id="sequence_view_tree">
<field name="model">ir.sequence</field>
@@ -72,6 +72,75 @@
</record>
<menuitem parent="menu_sequences"
action="act_sequence_form" id="menu_sequence_form"/>
<record model="ir.ui.view" id="sequence_strict_view_form">
<field name="model">ir.sequence.strict</field>
<field name="type">form</field>
<field name="arch" type="xml">
<![CDATA[
<form string="Sequences Strict">
<label name="name"/>
<field name="name" colspan="3"/>
<label name="code"/>
<field name="code"/>
<label name="active"/>
<field name="active"/>
<label name="prefix"/>
<field name="prefix"/>
<label name="suffix"/>
<field name="suffix"/>
<label name="padding"/>
<field name="padding" />
<label name="number_increment"/>
<field name="number_increment"/>
<label name="number_next"/>
<field name="number_next"/>
<separator string="Legend (for prefix, suffix)" colspan="4"/>
<label string="Year:"/>
<label string="${year}" colspan="3" align="0.0"/>
<label string="Month:"/>
<label string="${month}" colspan="3" align="0.0"/>
<label string="Day:"/>
<label string="${day}" colspan="3" align="0.0"/>
</form>
]]>
</field>
</record>
<record model="ir.ui.view" id="sequence_strict_view_tree">
<field name="model">ir.sequence.strict</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<![CDATA[
<tree string="Sequences Strict">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="active" select="1"/>
</tree>
]]>
</field>
</record>
<record model="ir.action.act_window" id="act_sequence_strict_form">
<field name="name">Sequences Strict</field>
<field name="type">ir.action.act_window</field>
<field name="res_model">ir.sequence.strict</field>
<field name="view_type">form</field>
<field name="context">{'active_test': False}</field>
</record>
<record model="ir.action.act_window.view"
id="act_sequence_strict_form_view1">
<field name="sequence" eval="1"/>
<field name="view" ref="sequence_strict_view_tree"/>
<field name="act_window" ref="act_sequence_strict_form"/>
</record>
<record model="ir.action.act_window.view"
id="act_sequence_strict_form_view2">
<field name="sequence" eval="2"/>
<field name="view" ref="sequence_strict_view_form"/>
<field name="act_window" ref="act_sequence_strict_form"/>
</record>
<menuitem parent="menu_sequences"
action="act_sequence_strict_form" id="menu_sequence_strict_form"/>
<record model="ir.ui.view" id="sequence_type_view_form">
<field name="model">ir.sequence.type</field>
<field name="type">form</field>