[IMP] improvement document change

bzr revid: fp@tinyerp.com-20100127065708-kshxwqe92hjfok70
This commit is contained in:
Fabien Pinckaers 2010-01-27 07:57:08 +01:00
parent e6d46870fd
commit 7cda3b45ae
6 changed files with 188 additions and 160 deletions

View File

@ -129,12 +129,15 @@ class document_file(osv.osv):
if len(res):
return False
return True
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default ={}
name = self.read(cr, uid, [id])[0]['name']
default.update({'name': name+ " (copy)"})
if 'name' not in default:
name = self.read(cr, uid, [id])[0]['name']
default.update({'name': name+ " (copy)"})
return super(document_file,self).copy(cr,uid,id,default,context)
def write(self, cr, uid, ids, vals, context=None):
res=self.search(cr,uid,[('id','in',ids)])
if not len(res):

View File

@ -128,13 +128,27 @@
</record>
<record model="ir.actions.act_window" id="action_document_directory_form">
<field name="name">Directories</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">document.directory</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<record id="action_dir_view1" model="ir.actions.act_window.view">
<field eval="10" name="sequence"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_document_directory_tree"/>
<field name="act_window_id" ref="action_document_directory_form"/>
</record>
<record id="action_dir_view2" model="ir.actions.act_window.view">
<field eval="20" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_document_directory_form"/>
<field name="act_window_id" ref="action_document_directory_form"/>
</record>
<menuitem
name="Directories"
action="action_document_directory_form"
id="menu_document_directories"
parent="menu_document_management_configuration"/>
@ -145,7 +159,7 @@
<field name="name">Directorie's Structure</field>
<field name="res_model">document.directory</field>
<field name="view_type">tree</field>
<field name="view_id" ref="view_document_directory_tree"/>
<field name="view_id" ref="document.view_document_directory_tree"/>
<field name="domain">[('ressource_parent_type_id','=',False),('parent_id','=',False)]</field>
</record>
<menuitem
@ -301,6 +315,11 @@
res_model="ir.attachment"
src_model="res.partner"/>
<act_window domain="[('parent_id', '=', active_id)]"
id="zoom_directory" name="Related Documents"
res_model="ir.attachment"
src_model="document.directory"/>
</data>
</openerp>

View File

@ -18,6 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import tools
from osv import fields, osv
import os
@ -26,6 +27,7 @@ import netsvc
from tools.translate import _
import time
import datetime
import base64
class document_directory(osv.osv):
_inherit = 'document.directory'
@ -54,7 +56,8 @@ class document_change_type(osv.osv):
_columns = {
'name': fields.char("Document Type", size=64,required=True),
'phase_type_ids': fields.many2many('document.change.process.phase.type','document_type_phase_type_rel','document_type_id','phase_type_id','Phase Type'),
'directory_id' :fields.many2one('document.directory','Pending Directory'),
'directory_id' :fields.many2one('document.directory','Historic Directory'),
'filename' :fields.char('Filename', size=128),
'template_document_id':fields.many2one('ir.attachment','Template Document')
}
document_change_type()
@ -88,14 +91,15 @@ class document_change_process_phase(osv.osv):
'type': fields.selection([('control_required', 'Control Required'),('no_control', 'No Control')], 'Type'),
'date_control': fields.date('Control Date', select=True),
'phase_type_id':fields.many2one('document.change.process.phase.type','Phase Type'),
'directory_id': fields.related('process_id', 'structure_id', relation='document.directory', type="many2one", string='Directory'),
'state': fields.selection([('draft', 'Draft'),('in_process', 'Started'),('to_validate', 'To Validate'),('done', 'Done')], 'State',readonly=True),
'phase_document_ids':fields.one2many('ir.attachment','process_phase_id','Documents'),
'phase_document_ids':fields.many2many('ir.attachment','document_change_phase_document', 'phase_id','document_id', 'Documents'),
}
_defaults = {
'state': lambda *a: 'draft',
'update_document': lambda *a:'at_endPhase',
'type':lambda *a: 'no_control',
}
'state': lambda *a: 'draft',
'update_document': lambda *a:'at_endPhase',
'type':lambda *a: 'control_required',
}
def do_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state':'draft'})
return True
@ -106,6 +110,12 @@ class document_change_process_phase(osv.osv):
def do_start(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state':'in_process'})
todo = []
for phase in self.browse(cr, uid, ids):
for doc in phase.phase_document_ids:
if doc.state in ('draft','in_production'):
todo.append(doc.id)
self.pool.get('ir.attachment').button_request(cr, uid, todo)
return True
def do_done(self, cr, uid, ids, *args):
@ -242,24 +252,47 @@ class document_change_process(osv.osv):
document_obj = self.pool.get('ir.attachment')
new_doc_ids = []
for process in self.browse(cr, uid, ids):
if process.process_model_id:
directory_ids = directory_obj.search(cr, uid, [('parent_id','child_of',process.structure_id and process.structure_id.id)])
for phase_type_id in process.process_model_id.phase_type_ids:
for document_type_id in phase_type_id.document_type_ids:
document_ids = document_obj.search(cr, uid, [
('parent_id','in',directory_ids),
('change_type_id','=',document_type_id.id)])
new_doc_ids = []
for document_id in document_ids:
vals = {}
new_doc_ids.append(document_obj.copy(cr, uid, document_id, vals))
phase_value = {
'name' : '%s-%s' %(phase_type_id.name, process.name),
'phase_type_id': phase_type_id.id,
'process_id': process.id,
'phase_document_ids': [(6,0,new_doc_ids)]
}
phase_obj.create(cr, uid, phase_value)
if not process.process_model_id:
raise osv.except_osv(_('Error !'), _('You must select a process model !'))
directory_ids = directory_obj.search(cr, uid, [('parent_id','child_of',process.structure_id and process.structure_id.id)])
for phase_type_id in process.process_model_id.phase_type_ids:
new_doc_ids = []
for document_type_id in phase_type_id.document_type_ids:
print 'Creating', phase_type_id.name, document_type_id.name
document_ids = document_obj.search(cr, uid, [
('parent_id','in',directory_ids),
('change_type_id','=',document_type_id.id)
])
for document_id in document_ids:
print 'Found Some...'
vals = {}
new_doc_ids.append(document_obj.copy(cr, uid, document_id, vals))
if not document_ids:
if document_type_id.template_document_id:
print 'Copy'
new_doc_ids.append(document_obj.copy(cr, uid, document_type_id.template_document_id.id, {
'name': document_type_id.template_document_id.name,
'datas_fname': document_type_id.template_document_id.datas_fname,
'parent_id': process.structure_id.id,
'change_type_id': document_type_id.id
}))
else:
print 'Create'
new_doc_ids.append(document_obj.create(cr, uid, {
'name': document_type_id.filename,
'datas_fname': document_type_id.filename,
'parent_id': process.structure_id.id,
'change_type_id': document_type_id.id
}))
phase_value = {
'name' : '%s-%s' %(phase_type_id.name, process.name),
'sequence': phase_type_id.sequence,
'phase_type_id': phase_type_id.id,
'process_id': process.id,
'phase_document_ids': [(6,0,new_doc_ids)]
}
phase_obj.create(cr, uid, phase_value)
return True
@ -271,10 +304,9 @@ class document_file(osv.osv):
'change_type_id':fields.many2one('document.change.type','Document Type'),
'state': fields.selection([('draft','To Create'),('in_production', 'In Production'), ('change_request', 'Change Requested'),('change_propose', 'Change Proposed'), ('to_update', 'To Update'), ('cancel', 'Cancel')], 'State'),
'style': fields.selection([('run','Run'),('setup','Setup'),('pma','PMA'),('pmp','PMP')],'Document Style'),
'target_document_id': fields.many2one('ir.attachment', 'Target Document'),
'target':fields.binary('Target'),
'process_phase_id' :fields.many2one('document.change.process.phase','Process Phase'),
'progress': fields.float('Progress'), #TODO : functio field: calculate progress
'target':fields.binary('New Document'),
'process_phase_id':fields.many2many('document.change.process.phase','document_change_phase_document', 'document_id','phase_id', 'Phases'),
'progress': fields.float('Progress'),
'change_process_id': fields.related('process_phase_id', 'process_id', type='many2one', relation='document.change.process', string='Change Process'),
}
_defaults = {
@ -306,51 +338,56 @@ class document_file(osv.osv):
return False
return True
def do_change_request(self, cr, uid, ids, context={}):
def button_request(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'change_request'},context=context)
return True
def do_change_propose(self, cr, uid, ids, context={}):
def button_propose(self, cr, uid, ids, context={}):
for attach in self.browse(cr, uid, ids, context=context):
if not attach.target:
raise osv.except_osv(_('Error !'), _('You must provide a target content'))
self.write(cr, uid, ids, {'state':'change_propose'},context=context)
return True
def do_to_update(self, cr, uid, ids, context={}):
def button_validate(self, cr, uid, ids, context={}):
for attach in self.browse(cr, uid, ids, context=context):
if attach.change_type_id.directory_id.id:
attach_ids = self.pool.get('ir.attachment').search(cr,uid, [('id', '=',attach.target_document_id.id)])
read_data=self.read(cr,uid, attach_ids,['datas','datas_fname'])
self.write(cr, uid, attach_ids, {'state':'to_update','datas':attach.datas,'datas_fname':attach.datas_fname},context=context)
res={}
for data in read_data:
t=datetime.datetime.now()
file_name=data['datas_fname'].split('.')
new_name=str(file_name[0]+'.old'+time.strftime("%y%m%d")+'.'+file_name[1])
res['name']=attach.name
res['datas']=data['datas']
res['datas_fname']=new_name
res['parent_id']=attach.change_type_id.directory_id.id
old_id = self.create(cr, uid, res)
self.write(cr, uid, ids, {'state':'to_update'},context=context)
if not attach.target:
raise osv.except_osv(_('Error !'), _('You must provide a target content'))
if (not attach.change_type_id) or not (attach.change_type_id.directory_id.id):
raise osv.except_osv(_('Configuration Error !'), _('No history directory associated to the document type.'))
self.copy(cr, uid, [attach.id], {
'target': False,
'parent_id': attach.change_type_id.directory_id.id,
'name': time.strftime('%Y%m%d-%H%M-')+attach.name,
'datas_fname': time.strftime('%Y%m%d-%H%M-')+attach.datas_fname,
'state': 'in_production'
},
context=context)
self.write(cr, uid, [attach.id], {
'target': False,
'datas': base64.encodestring(attach.target),
'state': 'in_production'
})
return True
def do_production(self, cr, uid, ids, context={}):
return self.write(cr, uid, ids, {'state':'in_production'},context=context)
def write(self, cr, uid, ids, data, context={}):
result = super(document_file,self).write(cr,uid,ids,data,context=context)
for d in self.browse(cr, uid, ids, context=context):
if d.state=='draft' and d.datas:
super(document_file,self).write(cr,uid,[d.id],
{'state':'in_production'},context=context)
result = super(document_file,self).write(cr,uid,ids,data,context=context)
if (not d.datas) and (d.state=='in_production'):
super(document_file,self).write(cr,uid,[d.id],
{'state':'draft'},context=context)
return True
def do_draft(self, cr, uid, ids, context={}):
def button_cancel(self, cr, uid, ids, context={}):
return self.write(cr, uid, ids, {'state':'draft'},context=context)
def do_cancel(self, cr, uid, ids, context={}):
return self.write(cr, uid, ids, {'state':'cancel'},context=context)
def test_change_request(self, cr, uid, ids, context=None):
return all(bool(attch.target_document_id) != False for attch in self.browse(cr, uid, ids, context=context))
def button_draft(self, cr, uid, ids, context={}):
return self.write(cr, uid, ids, {'state':'draft'},context=context)
document_file()

View File

@ -51,7 +51,7 @@
<field name="name">Directory Structure</field>
<field name="view_type">tree</field>
<field name="domain">[('parent_id','=',False)]</field>
<field name="view_id" eval="False"/>
<field name="view_id" eval="document.view_document_directory_tree"/>
</record>
<menuitem name="Structure" id="menu_document_structure_config" parent="menu_configuration"/>
@ -73,9 +73,9 @@
<field name="arch" type="xml">
<form string="Document Types">
<field name="name" select="1"/>
<newline/>
<field name="directory_id"/>
<field name ="template_document_id"/>
<field name ="filename" attrs="{'invisible':[('template_document_id','&lt;&gt;',False)]}"/>
<separator string="Associated Phase Types" colspan="4"/>
<field name="phase_type_ids" colspan="4" nolabel="1"/>
</form>
@ -260,18 +260,17 @@
</group>
</page><page string="Change Request">
<separator string="Change Control" colspan="4"/>
<group col="7" colspan="4">
<group col="11" colspan="2">
<field name="state" readonly="1"/>
<button name="button_propose" states="change_request" string="Propose Change" icon="gtk-apply"/>
<button name="button_confirm" states="change_propose" string="To Validate" icon="gtk-apply"/>
<button name="button_validate" states="to_update" string="In Production" icon="gtk-apply"/>
<button name="button_request" states="cancel,in_production" string="Request Change" icon="gtk-media-play"/>
<button name="button_cancel" states="change_request,change_propose" string="Cancel" icon="gtk-cancel"/>
<group attrs="{'invisible':[('state','in', ('in_production','draft'))]}">
<field name="target" filename="target_fname"/>
</group>
<button type="object" name="button_request" states="draft,in_production" string="Request Change" icon="gtk-media-play"/>
<button type="object" name="button_propose" states="change_request" string="Propose Change" icon="gtk-apply"/>
<button type="object" name="button_validate" states="change_propose" string="Update Production" icon="gtk-apply"/>
<button type="object" name="button_cancel" states="change_request,change_propose,to_update" string="Cancel" icon="gtk-cancel"/>
</group>
<newline/>
<field name="target_document_id"/>
<field name="target"/>
<newline/>
<separator string="Change Note" colspan="4"/>
<field colspan="4" name="description" nolabel="1"/>
</page><page string="Email Notifications">
@ -307,6 +306,7 @@
<field name="state"/>
<field name="change_process_id"/>
<field name="user_id" string="Owner"/>
<button type="object" name="button_request" states="draft,in_production" string="Request Change" icon="gtk-media-play"/>
</tree>
</field>
</record>
@ -329,14 +329,16 @@
<field name="arch" type="xml">
<search string="Documents">
<group col="13" colspan="4">
<filter domain="[('user_id','=',uid)]" string="My Docs" icon="gtk-apply"/>
<separator orientation="vertical"/>
<filter domain="[('state','=','in_production')]" string="In Production" icon="gtk-apply"/>
<filter domain="[('state','=','change_request')]" string="Change Req." icon="gtk-apply"/>
<filter domain="[('state','=','change_propose')]" string="Change Proposed" icon="gtk-execute"/>
<filter domain="[('state','=','to_update')]" string="To Update" icon="gtk-execute"/>
<separator orientation="vertical"/>
<field name="change_type_id" widget="selection"/>
<field name="parent_id"/>
<field name="create_uid"/>
<field name="change_type_id" widget="selection" select="1"/>
<field name="parent_id" select="1"/>
<field name="create_uid" select="1"/>
</group>
<group expand="1" string="Group By..." col="20" colspan="4">
<filter domain="[]" string="By Owner" icon="terp-hr" context="{'group_by':'create_uid'}" help="Documents by owner"/>
@ -380,18 +382,23 @@
sequence="20"/>
<menuitem
name="Documents by Directories"
action="document.action_document_directory_form"
action="document.action_document_directory_tree"
sequence="1"
id="menu_document_directories"
parent="menu_documents"/>
<record model="ir.actions.act_window" id="document.action_document_file_directory_form">
<field name="search_view_id" ref="view_document_search"/>
</record>
<record model="ir.actions.act_window" id="action_document_without_type_form">
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.attachment</field>
<field name="name">Documents Without Type</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_document_search"/>
<field name="domain">[('change_type_id','=',False)]</field>
</record>
<menuitem action="action_document_without_type_form" id="menu_documents_without_type_form" parent="menu_change_control"/>
@ -402,6 +409,7 @@
<field name="name">Documents to Update</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_document_search"/>
<field name="domain">[('state','=','to_update')]</field>
</record>
<menuitem action="action_document_to_update_form" id="menu_documents_to_update_form" parent="menu_change_control"/>
@ -423,10 +431,11 @@
<field name="update_document" string="Update documents"/>
<field name="type" string="Type"/>
<field name="date_control" attrs="{'required':[('type','=','control_required')], 'invisible': [('type','!=','control_required')]}"/>
<field name="phase_type_id" string="Phase Type"/>
<field name="phase_type_id"/>
<field name="directory_id" readonly="1" colspan="4"/>
</group>
<separator colspan="4" string="Documents"/>
<field name="phase_document_ids" colspan="4" nolabel="1"/>
<field name="phase_document_ids" colspan="4" nolabel="1" context="{'default_parent_id': directory_id}"/>
<newline/>
<group col="5" colspan="4">
<field name="state"/>
@ -437,6 +446,32 @@
</form>
</field>
</record>
<record model="ir.ui.view" id="view_process_phase_search">
<field name="name">document.change.process.phase.search</field>
<field name="model">document.change.process.phase</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Phases" col="20">
<filter domain="[('state','=','draft')]" string="To Start" icon="gtk-execute"
help="To Start"/>
<filter domain="[('state','=','in_process')]" string="In Progress" icon="gtk-execute"
help="In Progress"/>
<filter domain="[('state','=','to_validate')]" string="To Validate" icon="gtk-execute"
help="To Validate"/>
<group string="Group By..." expand="1">
<filter domain="[]" string="By Process" icon="terp-hr" context="{'group_by':'process_id'}" help="Process Changes by owner"/>
<filter domain="[]" string="By Type" icon="terp-hr" context="{'group_by':'phase_type_id'}" help="Process Changes by owner"/>
</group>
<separator orientation="vertical"/>
<field name="process_id" select="1"/>
<field name="name" select="1"/>
<field name="phase_type_id" select="1"/>
<field name="date_control" select="1"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_process_phase_tree">
<field name="name">document.change.process.phase.tree</field>
<field name="model">document.change.process.phase</field>
@ -447,6 +482,7 @@
<field name="process_id"/>
<field name="name"/>
<field name="phase_type_id"/>
<field name="date_control"/>
<field name="state"/>
<button name="button_start" states="draft" string="Start" icon="gtk-go-forward"/>
<button name="button_confirm" states="in_process" string="To Validate" icon="gtk-execute"/>
@ -461,6 +497,7 @@
<field name="name">Phases</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_process_phase_search"/>
</record>
<menuitem action="action_process_phase_form" id="menu_phases_form" parent="menu_document_process_changes"/>
@ -471,6 +508,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','to_validate')]</field>
<field name="search_view_id" ref="view_process_phase_search"/>
</record>
<menuitem action="action_process_phase_form_validate" id="menu_phases_to_validate_form" parent="menu_change_control"/>
@ -480,6 +518,11 @@
res_model="ir.attachment"
src_model="document.change.process.phase"/>
<record model="ir.actions.act_window" id="act_documents_phases">
<field name="search_view_id" ref="view_process_phase_search"/>
</record>
<!--
Process Change
-->
@ -532,6 +575,7 @@
<field name="sequence" invisible="1"/>
<field name="name"/>
<field name="type"/>
<field name="date_control" attrs="{'required':[('type','=','control_required')], 'invisible': [('type','!=','control_required')]}"/>
<field name="phase_document_ids"/>
<field name="state"/>
</tree>
@ -539,6 +583,7 @@
<field name="name"/>
<field name="sequence"/>
<field name="type"/>
<field name="date_control" attrs="{'required':[('type','=','control_required')], 'invisible': [('type','!=','control_required')]}"/>
<field name="phase_document_ids" colspan="4"/>
<field name="state"/>
</form>
@ -556,6 +601,7 @@
<field name="arch" type="xml">
<tree string="Process Change">
<field name="name"/>
<field name="description"/>
<field name="structure_id"/>
<field name="user_id"/>
<field name="current_phase_id"/>
@ -641,11 +687,19 @@
res_model="document.change.process.phase"
src_model="document.change.process"/>
<record model="ir.actions.act_window" id="act_phase_change_process">
<field name="search_view_id" ref="view_process_phase_search"/>
</record>
<act_window domain="[('change_process_id', '=', active_id)]"
id="act_documents_change_process"
name="Documents"
res_model="ir.attachment"
src_model="document.change.process"/>
<record model="ir.actions.act_window" id="act_documents_change_process">
<field name="search_view_id" ref="view_document_search"/>
</record>
</data>
</openerp>

View File

@ -1,82 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="wkf_attachment" model="workflow">
<field name="name">ir.attachment.basic</field>
<field name="osv">ir.attachment</field>
<field name="on_create">True</field>
</record>
<!-- States -->
<record id="act_document_production" model="workflow.activity">
<field name="wkf_id" ref="wkf_attachment"/>
<field name="flow_start">True</field>
<field name="name">in_production</field>
<field name="action">do_production()</field>
<field name="kind">function</field>
</record>
<record id="act_document_request" model="workflow.activity">
<field name="wkf_id" ref="wkf_attachment"/>
<field name="name">change_request</field>
<field name="action">do_change_request()</field>
<field name="kind">function</field>
</record>
<record id="act_document_propose" model="workflow.activity">
<field name="wkf_id" ref="wkf_attachment"/>
<field name="name">change_propose</field>
<field name="action">do_change_propose()</field>
<field name="kind">function</field>
</record>
<record id="act_document_confirm" model="workflow.activity">
<field name="wkf_id" ref="wkf_attachment"/>
<field name="name">to_update</field>
<field name="action">do_to_update()</field>
<field name="kind">function</field>
</record>
<record id="act_document_cancel" model="workflow.activity">
<field name="wkf_id" ref="wkf_attachment"/>
<field name="name">cancel</field>
<field name="action">do_cancel()</field>
<field name="kind">function</field>
</record>
<!-- Transitions -->
<record id="tran_document_production_to_request" model="workflow.transition">
<field name="act_from" ref="act_document_production"/>
<field name="act_to" ref="act_document_request"/>
<field name="signal">button_request</field>
</record>
<record id="tran_document_request_to_propose" model="workflow.transition">
<field name="act_from" ref="act_document_request"/>
<field name="act_to" ref="act_document_propose"/>
<field name="condition">test_change_request()</field>
<field name="signal">button_propose</field>
</record>
<record id="tran_document_request_to_cancel" model="workflow.transition">
<field name="act_from" ref="act_document_request"/>
<field name="act_to" ref="act_document_cancel"/>
<field name="signal">button_cancel</field>
</record>
<record id="tran_document_propose_to_confirm" model="workflow.transition">
<field name="act_from" ref="act_document_propose"/>
<field name="act_to" ref="act_document_confirm"/>
<field name="signal">button_confirm</field>
</record>
<record id="tran_document_propose_to_cancel" model="workflow.transition">
<field name="act_from" ref="act_document_propose"/>
<field name="act_to" ref="act_document_cancel"/>
<field name="signal">button_cancel</field>
</record>
<record id="tran_document_cancel_to_request" model="workflow.transition">
<field name="act_from" ref="act_document_cancel"/>
<field name="act_to" ref="act_document_request"/>
<field name="signal">button_request</field>
</record>
<record id="tran_document_confirm_to_production" model="workflow.transition">
<field name="act_from" ref="act_document_confirm"/>
<field name="act_to" ref="act_document_production"/>
<field name="signal">button_validate</field>
</record>
</data>
</openerp>

View File

@ -41,17 +41,9 @@
<record id="tran_phase_start_to_confirm_control" model="workflow.transition">
<field name="act_from" ref="act_phase_start"/>
<field name="act_to" ref="act_phase_confirm"/>
<field name="role_id" ref="role_NPPI" />
<field name="condition">test_control_request()</field>
<field name="condition">True</field>
<field name="signal">button_confirm</field>
</record>
<record id="tran_phase_start_to_confirm_not_control" model="workflow.transition">
<field name="act_from" ref="act_phase_start"/>
<field name="act_to" ref="act_phase_confirm"/>
<field name="condition">test_nocontrol_request()</field>
<field name="signal">button_confirm</field>
</record>
<record id="tran_phase_confirm_to_end" model="workflow.transition">
<field name="act_from" ref="act_phase_confirm"/>
<field name="act_to" ref="act_phase_end"/>