openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #04889
lp:~openerp-dev/openobject-addons/addons-training-document-scan-ysa into lp:~openobject-training/openobject-addons/training
Yogesh(Open ERP) has proposed merging lp:~openerp-dev/openobject-addons/addons-training-document-scan-ysa into lp:~openobject-training/openobject-addons/training.
Requested reviews:
OpenObject Training (openobject-training)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/addons-training-document-scan-ysa/+merge/55880
document_scan:- convert this module into v6.
--
https://code.launchpad.net/~openerp-dev/openobject-addons/addons-training-document-scan-ysa/+merge/55880
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/addons-training-document-scan-ysa.
=== renamed file 'document_scan/__terp__.py' => 'document_scan/__openerp__.py'
=== modified file 'document_scan/checkboxes.py'
--- document_scan/checkboxes.py 2011-03-18 10:08:17 +0000
+++ document_scan/checkboxes.py 2011-04-01 08:32:39 +0000
@@ -18,3 +18,4 @@
l[:] = enlarge(l, enlarge_factor)
l[:] = map(int, map(round, l))
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'document_scan/code.py'
--- document_scan/code.py 2011-03-18 10:08:17 +0000
+++ document_scan/code.py 2011-04-01 08:32:39 +0000
@@ -21,34 +21,32 @@
#
############################################################################################
-from osv import osv, fields
+from osv import osv
+from osv import fields
-import tools
import os
-import time
from tools.translate import _
-import netsvc
-import mx.DateTime
import base64
import StringIO as BaseStringIO
+
try:
import cStringIO as StringIO
except ImportError:
import StringIO
+
try:
import cPickle as pickle
except ImportError:
import pickle
import scan
-from tools import profile
+#from tools import profile
class ImageStringIO(BaseStringIO.StringIO):
def __init__(self, buf=''):
BaseStringIO.StringIO.__init__(self, buf)
self.name = ''
-
class document_scanning_device(osv.osv):
_name = 'document.scanning.device'
@@ -65,6 +63,7 @@
_defaults = {
'to_process' : lambda *a: 'no',
}
+
document_directory()
class position_storage(osv.osv):
@@ -92,7 +91,8 @@
data is [[lists of 4 floats] for N in range(nbr of pages)] .
First page is page number 1, so zero-th element of data is discarded (it is an empty list anyway).
Negative page number not supported."""
-
+ if context is None:
+ context = {}
values = {
'res_model' : res_model,
'res_id' : res_id,
@@ -107,6 +107,7 @@
'checkboxes_context' : self.serialize(data_context[page_num]),
})
self.create(cr, uid, values, context)
+ return True
# def save_checkboxes_context(self, cr, uid, res_model, res_id, data, context=None):
# values = {
@@ -129,7 +130,8 @@
values = {
'checkboxes_value' : self.serialize(data),
}
- self.write(cr, uid, ids, values, context)
+ return self.write(cr, uid, ids, values, context)
+
def load_checkboxes_position(self, cr, uid, res_model, res_id, page_num, context=None):
"""Loads positions for _one_ page."""
@@ -149,7 +151,8 @@
def load_checkboxes_context(self, cr, uid, res_model, res_id, page_num, context=None):
"""Loads context for _one_ page."""
# tools.debug(('load_chk_context', res_model, res_id, page_num))
-
+ if context is None:
+ context = {}
ids = self.search(cr, uid, [('res_model', '=', res_model), ('res_id', '=', res_id), ('page_num', '=', page_num)], context)
# tools.debug(ids)
if ids:
@@ -163,7 +166,8 @@
def load_checkboxes_value(self, cr, uid, res_model, res_id, page_num, context=None):
"""Loads values for _one_ page."""
-
+ if context is None:
+ context = {}
ids = self.search(cr, uid, [('res_model', '=', res_model), ('res_id', '=', res_id), ('page_num', '=', page_num)], context)
if ids:
obj = self.browse(cr, uid, ids[0])
@@ -185,6 +189,7 @@
'function': fields.char('Function', size=64),
'priority': fields.integer('Priority'),
}
+
document_scanning_action()
class document_scanning_device(osv.osv):
@@ -206,6 +211,7 @@
'debug': lambda *a: False,
'auto_resolution': lambda *a: False,
}
+
document_scanning_device()
class document_scanning_rename(osv.osv):
@@ -216,6 +222,7 @@
'rename_cond': fields.char('Rename Condition', size=255, required=True),
'rename_pattern': fields.char('Rename Pattern', size=255),
}
+
document_scanning_rename()
def get_image(stream, name):
@@ -229,6 +236,8 @@
_inherit = 'ir.attachment'
def unlink(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
positions_by_model = {}
positions_to_delete = []
posstor_proxy = self.pool.get('position.storage')
@@ -248,6 +257,8 @@
#@profile('scannning.gprof')
def write(self, cr, uid, ids, values, context=None):
+ if context is None:
+ context = {}
result = super(ir_attachment, self).write(cr, uid, ids, values, context=context)
scandev = self.pool.get('document.scanning.device')
=== modified file 'document_scan/scan.py'
--- document_scan/scan.py 2011-03-18 10:08:17 +0000
+++ document_scan/scan.py 2011-04-01 08:32:39 +0000
@@ -6,13 +6,15 @@
import ImageStat
import tempfile
import subprocess
-from numpy import matrix, linalg
+from numpy import matrix
+from numpy import linalg
import logging
log = logging.getLogger("scan")
ZBAR_LIB_PATH = "/opt/local/lib/python2.6/site-packages/"
sys.path.insert(0, ZBAR_LIB_PATH) # XXX check if 0 is OK for openerp
+
try:
import zbar
except ImportError, e:
@@ -427,3 +429,5 @@
# deviance low, checkbox content have been erased
return (dev > d)
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
=== modified file 'document_scan/view.xml'
--- document_scan/view.xml 2011-03-22 13:34:27 +0000
+++ document_scan/view.xml 2011-04-01 08:32:39 +0000
@@ -1,163 +1,207 @@
<openerp>
<data>
- <record model="ir.ui.view" id="document_directory_form">
- <field name="name">document.directory.form</field>
- <field name="model">document.directory</field>
- <field name="type">form</field>
- <field name="inherit_id" ref="document.view_document_directory_form" />
- <field name="arch" type="xml">
- <notebook position="inside">
- <page string="Processing">
- <field name="to_process" colspan="2"/>
- <field name="scanning_device" colspan="2"/>
- </page>
- </notebook>
- </field>
- </record>
-
- <record model="ir.ui.view" id="document_scanning_device_form">
- <field name="name">document.scanning.device.form</field>
- <field name="model">document.scanning.device</field>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <form string="Scanning Devices">
- <field name="name" select="1"/>
- <field name="model" select="1"/>
- <group colspan="2" col="2">
- <separator string="Resolution" colspan="2"/>
- <field name="auto_resolution"/>
- <field name="resolution" attrs="{'readonly':[('auto_resolution','=',True)]}"/>
- </group>
- <group colspan="2" col="2">
- <separator string="Checkbox detection" colspan="2"/>
- <field name="threshold"/>
- <field name="deviance_max"/>
- <field name="deviance_threshold"/>
- </group>
- <group colspan="2" col="2">
- <separator string="Others Options" colspan="2"/>
- <field name="debug"/>
- </group>
- </form>
- </field>
- </record>
-
- <record model="ir.ui.view" id="document_scanning_device_tree">
- <field name="name">document.scanning.device.tree</field>
- <field name="model">document.scanning.device</field>
- <field name="type">tree</field>
- <field name="arch" type="xml">
- <tree string="Scanning Devices">
- <field name="name"/>
- <field name="model"/>
- <field name="auto_resolution"/>
- <field name="resolution"/>
- <field name="debug"/>
- </tree>
- </field>
- </record>
-
- <record model="ir.actions.act_window" id="document_scanning_device_act">
- <field name="name">Document Scanning Device</field>
- <field name="res_model">document.scanning.device</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
-
- <menuitem id="document_scanning_device_menu"
- parent="knowledge.menu_document_configuration"
- action="document_scanning_device_act"/>
-
- <record model="ir.ui.view" id="document_scanning_action_form">
- <field name="name">document.scanning.action.form</field>
- <field name="model">document.scanning.action</field>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <form string="Scanning Action">
- <field name="name" select="1"/>
- <field name="priority"/>
- <field name="res_model"/>
- <field name="function"/>
- </form>
- </field>
- </record>
-
- <record model="ir.ui.view" id="document_scanning_action_tree">
- <field name="name">document.scanning.action.tree</field>
- <field name="model">document.scanning.action</field>
- <field name="type">tree</field>
- <field name="arch" type="xml">
- <tree string="Scanning Action">
- <field name="name"/>
- <field name="res_model"/>
- <field name="priority"/>
- <field name="function"/>
- </tree>
- </field>
- </record>
-
- <record model="ir.actions.act_window" id="document_scanning_action_act">
- <field name="name">Document Scanning Action</field>
- <field name="res_model">document.scanning.action</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
-
- <menuitem id="document_scanning_action_menu"
- parent="knowledge.menu_document_configuration"
+ <record model="ir.ui.view" id="document_directory_form">
+ <field name="name">document.directory.form</field>
+ <field name="model">document.directory</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="document.view_document_directory_form" />
+ <field name="arch" type="xml">
+ <notebook position="inside">
+ <page string="Processing">
+ <field name="to_process" colspan="2"/>
+ <field name="scanning_device" colspan="2"/>
+ </page>
+ </notebook>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="document_scanning_device_form">
+ <field name="name">document.scanning.device.form</field>
+ <field name="model">document.scanning.device</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Scanning Devices">
+ <field name="name" select="1"/>
+ <field name="model" select="1"/>
+ <group colspan="2" col="2">
+ <separator string="Resolution" colspan="2"/>
+ <field name="auto_resolution"/>
+ <field name="resolution" attrs="{'readonly':[('auto_resolution','=',True)]}"/>
+ </group>
+ <group colspan="2" col="2">
+ <separator string="Checkbox detection" colspan="2"/>
+ <field name="threshold"/>
+ <field name="deviance_max"/>
+ <field name="deviance_threshold"/>
+ </group>
+ <group colspan="2" col="2">
+ <separator string="Others Options" colspan="2"/>
+ <field name="debug"/>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="document_scanning_device_tree">
+ <field name="name">document.scanning.device.tree</field>
+ <field name="model">document.scanning.device</field>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <tree string="Scanning Devices">
+ <field name="name"/>
+ <field name="model"/>
+ <field name="auto_resolution"/>
+ <field name="resolution"/>
+ <field name="debug"/>
+ </tree>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="document_scanning_device_search">
+ <field name="name">document.scanning.device.search</field>
+ <field name="model">document.scanning.device</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Scanning Devices">
+ <field name="model"/>
+ <field name="name"/>
+ <field name="auto_resolution"/>
+ <field name="resolution"/>
+ </search>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="document_scanning_device_act">
+ <field name="name">Document Scanning Device</field>
+ <field name="res_model">document.scanning.device</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="document_scanning_device_search"/>
+ </record>
+
+ <menuitem id="document_scanning_device_menu"
+ parent="knowledge.menu_document_configuration"
+ action="document_scanning_device_act"/>
+
+ <record model="ir.ui.view" id="document_scanning_action_form">
+ <field name="name">document.scanning.action.form</field>
+ <field name="model">document.scanning.action</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Scanning Action">
+ <field name="name" select="1"/>
+ <field name="priority"/>
+ <field name="res_model"/>
+ <field name="function"/>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="document_scanning_action_tree">
+ <field name="name">document.scanning.action.tree</field>
+ <field name="model">document.scanning.action</field>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <tree string="Scanning Action">
+ <field name="name"/>
+ <field name="res_model"/>
+ <field name="priority"/>
+ <field name="function"/>
+ </tree>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="document_scanning_action_search">
+ <field name="name">document.scanning.action.search</field>
+ <field name="model">document.scanning.action</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Scanning Action">
+ <field name="name"/>
+ <field name="res_model"/>
+ <field name="function"/>
+ </search>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="document_scanning_action_act">
+ <field name="name">Document Scanning Action</field>
+ <field name="res_model">document.scanning.action</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="document_scanning_action_search"/>
+ </record>
+
+ <menuitem id="document_scanning_action_menu"
+ parent="knowledge.menu_document_configuration"
action="document_scanning_action_act"/>
- <record id="view_document_scanning_rename_tree" model="ir.ui.view">
- <field name="name">document.scanning.rename.tree</field>
- <field name="model">document.scanning.rename</field>
- <field name="type">tree</field>
- <field name="priority" eval="8"/>
- <field name="arch" type="xml">
- <tree string="Document Scanning Rename">
- <field name="res_model"/>
- <field name="rename_cond"/>
- <field name="rename_pattern"/>
- </tree>
- </field>
- </record>
-
- <record id="view_document_scanning_rename_form" model="ir.ui.view">
- <field name="name">document.scanning.rename.form</field>
- <field name="model">document.scanning.rename</field>
- <field name="type">form</field>
- <field name="priority" eval="8"/>
- <field name="arch" type="xml">
- <form string="Document Scanning Rename">
- <field name="res_model" select="1" colspan="4"/>
- <field name="rename_cond"/>
- <field name="rename_pattern"/>
- <label colspan="4" string="Available pattern variable are:
-- res_model: The model attached (ex: res.partner)
-- res_id: The resource id (ex: 1)
-- page_num: The document page number
-- docnum: The document number
-- doctype: The document type (is a string, '0': standard, '1': annex, '2': skip this document)
-- ext: The file extension
-- obj_name: The orignal object file name
-- obj_id: The original object id (attachement id)"/>
- </form>
- </field>
- </record>
-
- <record model="ir.actions.act_window" id="act_open_document_scanning_rename_view">
- <field name="name">Document Scanning Rename</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">document.scanning.rename</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[]</field>
- <field name="context">{}</field>
- </record>
-
- <menuitem id="menu_document_scanning_rename"
- parent="knowledge.menu_document_configuration"
- action="act_open_document_scanning_rename_view"/>
+ <record id="view_document_scanning_rename_search" model="ir.ui.view">
+ <field name="name">document.scanning.rename.search</field>
+ <field name="model">document.scanning.rename</field>
+ <field name="type">search</field>
+ <field name="priority" eval="8"/>
+ <field name="arch" type="xml">
+ <search string="Document Scanning Rename">
+ <field name="res_model"/>
+ <field name="rename_cond"/>
+ <field name="rename_pattern"/>
+ </search>
+ </field>
+ </record>
+
+ <record id="view_document_scanning_rename_tree" model="ir.ui.view">
+ <field name="name">document.scanning.rename.tree</field>
+ <field name="model">document.scanning.rename</field>
+ <field name="type">tree</field>
+ <field name="priority" eval="8"/>
+ <field name="arch" type="xml">
+ <tree string="Document Scanning Rename">
+ <field name="res_model"/>
+ <field name="rename_cond"/>
+ <field name="rename_pattern"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_document_scanning_rename_form" model="ir.ui.view">
+ <field name="name">document.scanning.rename.form</field>
+ <field name="model">document.scanning.rename</field>
+ <field name="type">form</field>
+ <field name="priority" eval="8"/>
+ <field name="arch" type="xml">
+ <form string="Document Scanning Rename">
+ <field name="res_model" select="1" colspan="4"/>
+ <field name="rename_cond"/>
+ <field name="rename_pattern"/>
+ <label colspan="4" string="Available pattern variable are:
+ - res_model: The model attached (ex: res.partner)
+ - res_id: The resource id (ex: 1)
+ - page_num: The document page number
+ - docnum: The document number
+ - doctype: The document type (is a string, '0': standard, '1': annex, '2': skip this document)
+ - ext: The file extension
+ - obj_name: The orignal object file name
+ - obj_id: The original object id (attachement id)"/>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="act_open_document_scanning_rename_view">
+ <field name="name">Document Scanning Rename</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">document.scanning.rename</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="domain">[]</field>
+ <field name="context">{}</field>
+ <field name="search_view_id" ref="view_document_scanning_rename_search"/>
+ </record>
+
+ <menuitem id="menu_document_scanning_rename"
+ parent="knowledge.menu_document_configuration"
+ action="act_open_document_scanning_rename_view"/>
</data>
</openerp>
Follow ups