예제 #1
0
    def validate(self, signal, force_running=False):
        assert isinstance(signal, basestring)
        assert isinstance(force_running, bool)

        cr = self.session.cr
        cr.execute("select * from wkf_workitem where inst_id=%s", (self.instance['id'],))
        stack = []
        for work_item_values in cr.dictfetchall():
            wi = WorkflowItem(self.session, self.record, work_item_values)
            wi.process(signal=signal, force_running=force_running, stack=stack)
            # An action is returned
        self._update_end()
        return stack and stack[0] or False
예제 #2
0
    def validate(self, signal, force_running=False):
        assert isinstance(signal, basestring)
        assert isinstance(force_running, bool)

        cr = self.session.cr
        cr.execute("select * from wkf_workitem where inst_id=%s", (self.instance['id'],))
        stack = []
        for work_item_values in cr.dictfetchall():
            wi = WorkflowItem(self.session, self.record, work_item_values)
            wi.process(signal=signal, force_running=force_running, stack=stack)
            # An action is returned
        self._update_end()
        return stack and stack[0] or False
예제 #3
0
    def validate(self, signal, force_running=False):
        assert isinstance(signal, basestring)
        assert isinstance(force_running, bool)

        cr = self.session.cr
        cr.execute("select * from wkf_workitem where inst_id=%s", (self.instance['id'],))
        stack = []
        for i, work_item_values in enumerate(cr.dictfetchall()):
            if i > 0:
                # test if previous workitem has already processed this one
                cr.execute("select id from wkf_workitem where id=%s", (work_item_values['id'],))
                if not cr.fetchone():
                    continue
            wi = WorkflowItem(self.session, self.record, work_item_values)
            wi.process(signal=signal, force_running=force_running, stack=stack)
            # An action is returned
        self._update_end()
        return stack and stack[0] or False
예제 #4
0
파일: instance.py 프로젝트: amhosni/odoo3
    def validate(self, signal, force_running=False):
        assert isinstance(signal, str)
        assert isinstance(force_running, bool)

        cr = self.session.cr
        cr.execute("select * from wkf_workitem where inst_id=%s",
                   (self.instance['id'], ))
        stack = []
        for i, work_item_values in enumerate(cr.dictfetchall()):
            if i > 0:
                # test if previous workitem has already processed this one
                cr.execute("select id from wkf_workitem where id=%s",
                           (work_item_values['id'], ))
                if not cr.fetchone():
                    continue
            wi = WorkflowItem(self.session, self.record, work_item_values)
            wi.process(signal=signal, force_running=force_running, stack=stack)
            # An action is returned
        self._update_end()
        return stack and stack[0] or False
예제 #5
0
파일: workitem.py 프로젝트: BorgERP/edifact
    def create_override(cls, session, record, activity, instance_id, stack):
        assert isinstance(session, Session)
        assert isinstance(record, Record)
        assert isinstance(activity, dict)
        assert isinstance(instance_id, (long, int))
        assert isinstance(stack, list)

        cr = session.cr
         # DECOD.IO- db_uid cr.execute("select nextval('wkf_workitem_id_seq')")
        cr.execute("select nextval('ir_serial_id_seq')")  # DECOD.IO+ db_uid
        id_new = cr.fetchone()[0]
        cr.execute("insert into wkf_workitem (id,act_id,inst_id,state) values (%s,%s,%s,'active')", (id_new, activity['id'], instance_id))
        cr.execute('select * from wkf_workitem where id=%s',(id_new,))
        work_item_values = cr.dictfetchone()
        logger.info('Created workflow item in activity %s',
                    activity['id'],
                    extra={'ident': (session.uid, record.model, record.id)})

        workflow_item = WorkflowItem(session, record, work_item_values)
        workflow_item.process(stack=stack)
예제 #6
0
def wi_create(cls, session, record, activity, instance_id, stack):
    assert isinstance(session, Session)
    assert isinstance(record, Record)
    assert isinstance(activity, dict)
    assert isinstance(instance_id, (long, int))
    assert isinstance(stack, list)

    cr = session.cr
    cr.execute(
        "UPDATE wkf_instance SET progress=true, uid=%s, date=now() WHERE activity_id=%s AND res_id = %s and res_type = %s",
        (session.uid, activity['id'], record.id, record.model))
    cr.execute("select nextval('wkf_workitem_id_seq')")
    id_new = cr.fetchone()[0]
    cr.execute(
        "insert into wkf_workitem (id,act_id,inst_id,state) values (%s,%s,%s,'active')",
        (id_new, activity['id'], instance_id))
    cr.execute('select * from wkf_workitem where id=%s', (id_new, ))
    work_item_values = cr.dictfetchone()
    logger.info('Created workflow item in activity %s',
                activity['id'],
                extra={'ident': (session.uid, record.model, record.id)})

    workflow_item = WorkflowItem(session, record, work_item_values)
    workflow_item.process(stack=stack)