From fb231cda53057dc65d10b1fe7ca675a824023101 Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Wed, 24 Dec 2008 14:33:39 +0530 Subject: [PATCH 01/13] Bug 311010 lp bug: https://launchpad.net/bugs/311010 fixed bzr revid: jvo@tinyerp.com-20081224090339-lrfj3eksa3jdymhy --- bin/report/report_sxw.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/report/report_sxw.py b/bin/report/report_sxw.py index b26b32e6417..73b54c50dfa 100644 --- a/bin/report/report_sxw.py +++ b/bin/report/report_sxw.py @@ -292,8 +292,10 @@ class rml_parse(object): pp=self._node self._node = pp lst='' - if type(text)==type(''): + if isinstance(text,(str,unicode)): lst = text.split('\n') +# lst = str(text).split('\n') # This is also acceptable, isn't it? + if lst and (not len(lst)): return None nodes = [] From c1c36eedea9af779eb2d99edeb649de73b32ba08 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Wed, 24 Dec 2008 11:48:11 +0100 Subject: [PATCH 02/13] bugfixes bzr revid: fp@tinyerp.com-20081224104811-54gb87thafjay1sj --- bin/osv/orm.py | 3 +-- bin/tools/misc.py | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/bin/osv/orm.py b/bin/osv/orm.py index 0a394723a97..25e63e24ec2 100644 --- a/bin/osv/orm.py +++ b/bin/osv/orm.py @@ -1353,12 +1353,11 @@ class orm_memory(orm_template): return result class orm(orm_template): - _sql_constraints = [] - _log_access = True _table = None _protected = ['read','write','create','default_get','perm_read','unlink','fields_get','fields_view_get','search','name_get','distinct_field_get','name_search','copy','import_data','search_count'] + def _parent_store_compute(self, cr): logger = netsvc.Logger() logger.notifyChannel('init', netsvc.LOG_INFO, 'Computing parent left and right for table %s...' % (self._table, )) diff --git a/bin/tools/misc.py b/bin/tools/misc.py index 6241365f8d0..ac5f8695149 100644 --- a/bin/tools/misc.py +++ b/bin/tools/misc.py @@ -572,9 +572,9 @@ class cache(object): if time.time()-self.timeout > self.lasttime: self.lasttime = time.time() t = time.time()-self.timeout - old_keys = [key for key in self.cache if self.cache[key][1] < t] - for key in old_keys: - del self.cache[key] + for key in self.cache.keys(): + if self.cache[key][1] Date: Wed, 24 Dec 2008 16:54:42 +0530 Subject: [PATCH 03/13] changes for odt reports bzr revid: dsh@tinyerp.com-20081224112442-ztn3y9qnn98c9g7f --- bin/addons/base/ir/ir_actions.py | 1 + bin/report/interface.py | 5 +++++ bin/report/report_sxw.py | 9 +++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index bdd07745c58..8f994a084f7 100644 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -118,6 +118,7 @@ class report_xml(osv.osv): ('html', 'html'), ('raw', 'raw'), ('sxw', 'sxw'), + ('odt', 'odt'), ], string='Type', required=True), 'groups_id': fields.many2many('res.groups', 'res_groups_report_rel', 'uid', 'gid', 'Groups'), 'attachment': fields.char('Save As Attachment Prefix', size=32, help='This is the prefix of the file name the print will be saved as attachement. Keep empty to not save the printed reports') diff --git a/bin/report/interface.py b/bin/report/interface.py index eb71c5105e3..da94535498e 100644 --- a/bin/report/interface.py +++ b/bin/report/interface.py @@ -81,6 +81,7 @@ class report_rml(report_int): 'html': self.create_html, 'raw': self.create_raw, 'sxw': self.create_sxw, + 'odt': self.create_odt, } def create(self, cr, uid, ids, datas, context): @@ -206,6 +207,10 @@ class report_rml(report_int): def create_sxw(self, path, logo=None, title=None): return path + + def create_odt(self, data, logo=None, title=None): + return data + from report_sxw import report_sxw diff --git a/bin/report/report_sxw.py b/bin/report/report_sxw.py index 73b54c50dfa..6f46d49d7f6 100644 --- a/bin/report/report_sxw.py +++ b/bin/report/report_sxw.py @@ -295,7 +295,6 @@ class rml_parse(object): if isinstance(text,(str,unicode)): lst = text.split('\n') # lst = str(text).split('\n') # This is also acceptable, isn't it? - if lst and (not len(lst)): return None nodes = [] @@ -620,7 +619,7 @@ class report_sxw(report_rml): rml = tools.file_open(self.tmpl, subdir=None).read() report_type= data.get('report_type', report_type) - if report_type == 'sxw' and report_xml: + if report_type in ['sxw','odt'] and report_xml: context['parents'] = sxw_parents sxw_io = StringIO.StringIO(report_xml.report_sxw_content) sxw_z = zipfile.ZipFile(sxw_io, mode='r') @@ -670,7 +669,10 @@ class report_sxw(report_rml): if self.header: #Add corporate header/footer - rml = tools.file_open('custom/corporate_sxw_header.xml').read() + if report_type=='odt': + rml = tools.file_open('custom/corporate_odt_header.xml').read() + if report_type=='sxw': + rml = tools.file_open('custom/corporate_sxw_header.xml').read() rml_parser = self.parser(cr, uid, self.name2, context) rml_parser.parents = sxw_parents rml_parser.tag = sxw_tag @@ -709,7 +711,6 @@ class report_sxw(report_rml): }, context=context ) cr.commit() - return (pdf, report_type) From 11e102cef611cf5c770628bb728b41db59b23b3e Mon Sep 17 00:00:00 2001 From: Dhara Shah Date: Wed, 24 Dec 2008 18:00:41 +0530 Subject: [PATCH 04/13] small modification bzr revid: dsh@tinyerp.com-20081224123041-4mpney2ca8c83p12 --- .../base_report_designer.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/addons/base_report_designer/base_report_designer.py b/addons/base_report_designer/base_report_designer.py index bf4c26fd4de..6f3c4019934 100644 --- a/addons/base_report_designer/base_report_designer.py +++ b/addons/base_report_designer/base_report_designer.py @@ -31,13 +31,18 @@ import tools class report_xml(osv.osv): _inherit = 'ir.actions.report.xml' - def sxwtorml(self,cr, uid, file_sxw): + def sxwtorml(self,cr, uid, file_sxw,file_type): ''' The use of this function is to get rml file from sxw file. ''' sxwval = StringIO(base64.decodestring(file_sxw)) - fp = tools.file_open('normalized_odt2rml.xsl', - subdir='/home/dsh/my-work/bazaar/odt-sxw2ml') + if file_type=='sxw': + fp = tools.file_open('normalized_oo2rml.xsl', + subdir='addons/base_report_designer/wizard/tiny_sxw2rml') + if file_type=='odt': + fp = tools.file_open('normalized_odt2rml.xsl', + subdir='addons/base_report_designer/wizard/tiny_sxw2rml') + return {'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read()))} def upload_report(self, cr, uid, report_id, file_sxw,file_type, context): @@ -46,11 +51,12 @@ class report_xml(osv.osv): ''' pool = pooler.get_pool(cr.dbname) sxwval = StringIO(base64.decodestring(file_sxw)) - fp = tools.file_open('normalized_oo2rml.xsl', - subdir='addons/base_report_designer/wizard/tiny_sxw2rml') + if file_type=='sxw': + fp = tools.file_open('normalized_oo2rml.xsl', + subdir='addons/base_report_designer/wizard/tiny_sxw2rml') if file_type=='odt': fp = tools.file_open('normalized_odt2rml.xsl', - subdir='/home/dsh/my-work/bazaar/odt-sxw2ml') + subdir='addons/base_report_designer/wizard/tiny_sxw2rml') report = pool.get('ir.actions.report.xml').write(cr, uid, [report_id], { 'report_sxw_content': base64.decodestring(file_sxw), 'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read())), From a5d8cf5d2c8a6de68fe5d0cead394a056ff1688d Mon Sep 17 00:00:00 2001 From: "ame (Tiny/Axelor)" Date: Wed, 24 Dec 2008 18:37:29 +0530 Subject: [PATCH 05/13] * Improved process module bzr revid: ame@tinyerp.com-20081224130729-857dvlgcrlki4b6r --- addons/process/process.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/process/process.py b/addons/process/process.py index b1a6002dfd9..94bbd6daaa1 100644 --- a/addons/process/process.py +++ b/addons/process/process.py @@ -60,15 +60,13 @@ class process_process(osv.osv): def search_by_model(self, cr, uid, res_model, context): pool = pooler.get_pool(cr.dbname) + model_ids = (res_model or None) and pool.get('ir.model').search(cr, uid, [('model', '=', res_model)]) - model_ids = pool.get('ir.model').search(cr, uid, [('model', '=', res_model)]) - if not model_ids: - return [] - + domain = (model_ids or []) and [('model_id', 'in', model_ids)] result = [] # search all processes - res = pool.get('process.process').search(cr, uid, [('model_id', 'in', model_ids)]) + res = pool.get('process.process').search(cr, uid, domain) if res: res = pool.get('process.process').browse(cr, uid, res, context) for process in res: @@ -77,9 +75,9 @@ class process_process(osv.osv): return result # else search process nodes - res = pool.get('process.node').search(cr, uid, [('model_id', 'in', model_ids)]) + res = pool.get('process.node').search(cr, uid, domain) if res: - res = pool.get('process.node').browse(cr, uid, res, context) + res = pool.get('process.node').browse(cr, uid, res, context) for node in res: if (node.process_id.id, node.process_id.name) not in result: result.append((node.process_id.id, node.process_id.name)) @@ -91,13 +89,15 @@ class process_process(osv.osv): pool = pooler.get_pool(cr.dbname) process = pool.get('process.process').browse(cr, uid, [id])[0] - states = dict(pool.get(res_model).fields_get(cr, uid, context=context).get('state', {}).get('selection', {})) - title = process.name expr_context = {} + states = {} perm = None + if res_model: + states = dict(pool.get(res_model).fields_get(cr, uid, context=context).get('state', {}).get('selection', {})) + if res_id: current_object = pool.get(res_model).browse(cr, uid, [res_id], context)[0] current_user = pool.get('res.users').browse(cr, uid, [uid], context)[0] From dfb4a39b6b67bc6ff7adc7c538b76eeb8019fa50 Mon Sep 17 00:00:00 2001 From: "mra (Open ERP)" Date: Wed, 24 Dec 2008 19:21:31 +0530 Subject: [PATCH 06/13] base module quality bzr revid: mra@tinyerp.com-20081224135131-7keeqeyqf168g5e1 --- addons/base_module_quality/__terp__.py | 2 +- .../base_module_quality.py | 26 ++++++++++++++++--- .../base_module_quality_wizard.xml | 2 +- .../method_test/method_test.py | 11 ++------ .../security/ir.model.access.csv | 2 ++ .../speed_test/speed_test.py | 17 +++--------- 6 files changed, 33 insertions(+), 27 deletions(-) create mode 100644 addons/base_module_quality/security/ir.model.access.csv diff --git a/addons/base_module_quality/__terp__.py b/addons/base_module_quality/__terp__.py index 4a4d5b9fc60..5588ab05780 100644 --- a/addons/base_module_quality/__terp__.py +++ b/addons/base_module_quality/__terp__.py @@ -34,7 +34,7 @@ This module's aim is to check the quality of other modules. """, "init_xml" : [], - "update_xml" : ["base_module_quality_wizard.xml"], + "update_xml" : ["base_module_quality_wizard.xml", "security/ir.model.access.csv",], "category" : "Tiny Specific Modules/Base module quality", "active": False, "installable": True diff --git a/addons/base_module_quality/base_module_quality.py b/addons/base_module_quality/base_module_quality.py index 195e345e8ef..ef4a0c3c515 100644 --- a/addons/base_module_quality/base_module_quality.py +++ b/addons/base_module_quality/base_module_quality.py @@ -19,7 +19,7 @@ # along with this program. If not, see . # ############################################################################## - +import pooler class abstract_quality_check(object): ''' @@ -41,11 +41,11 @@ class abstract_quality_check(object): #This bool defines if the test can be run only if the module is installed. #True => the module have to be installed. #False => the module can be uninstalled. - bool_installed_only = True + bool_installed_only = True def __init__(self): ''' - this method should initialize the var + this method should initialize the var ''' raise 'Not Implemented' @@ -55,7 +55,27 @@ class abstract_quality_check(object): ''' raise 'Not Implemented' + def get_objects(self, cr, uid, module): + # This function returns all object of the given module.. + pool = pooler.get_pool(cr.dbname) + ids2 = pool.get('ir.model.data').search(cr, uid, [('module','=', module), ('model','=','ir.model')]) + model_list = [] + model_data = pool.get('ir.model.data').browse(cr, uid, ids2) + for model in model_data: + model_list.append(model.res_id) + obj_list = [] + for mod in pool.get('ir.model').browse(cr, uid, model_list): + obj_list.append(str(mod.model)) + return obj_list + def get_ids(self, cr, uid, object_list): + #This method return dictionary with ids of records of object for module + pool = pooler.get_pool(cr.dbname) + result_ids = {} + for obj in object_list: + ids = pool.get(obj).search(cr, uid, []) + result_ids[obj] = ids + return result_ids # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_module_quality/base_module_quality_wizard.xml b/addons/base_module_quality/base_module_quality_wizard.xml index c99b949be35..b49c17667a7 100644 --- a/addons/base_module_quality/base_module_quality_wizard.xml +++ b/addons/base_module_quality/base_module_quality_wizard.xml @@ -16,7 +16,7 @@ Date: Wed, 24 Dec 2008 16:54:29 +0100 Subject: [PATCH 07/13] bugfix bzr revid: fp@tinyerp.com-20081224155429-tdcmkvn7398h163b --- bin/osv/orm.py | 5 ++++- bin/tools/parse_version.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bin/osv/orm.py b/bin/osv/orm.py index 25e63e24ec2..7641e6db8b6 100644 --- a/bin/osv/orm.py +++ b/bin/osv/orm.py @@ -2232,7 +2232,10 @@ class orm(orm_template): if self.pool._init: self.pool._init_parent[self._name]=True else: - cr.execute('select parent_left,parent_right from '+self._table+' where id=%s', (vals[self._parent_name],)) + if vals[self._parent_name]: + cr.execute('select parent_left,parent_right from '+self._table+' where id=%s', (vals[self._parent_name],)) + else: + cr.execute('SELECT parent_left,parent_right FROM '+self._table+' WHERE id IS NULL') res = cr.fetchone() if res: pleft,pright = res diff --git a/bin/tools/parse_version.py b/bin/tools/parse_version.py index 3253ebd5e83..46236aa6080 100644 --- a/bin/tools/parse_version.py +++ b/bin/tools/parse_version.py @@ -71,7 +71,7 @@ def parse_version(s): contain them. """ parts = [] - for part in _parse_version_parts(s.lower()): + for part in _parse_version_parts((s or '0.1').lower()): if part.startswith('*'): if part<'*final': # remove '-' before a prerelease tag while parts and parts[-1]=='*final-': parts.pop() From 137146e91e6d17a9effb5aa5b47543ae0f553f2c Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Wed, 24 Dec 2008 17:09:37 +0100 Subject: [PATCH 08/13] improved_desc bzr revid: fp@tinyerp.com-20081224160937-pga5k51l1fsustji --- addons/membership/__terp__.py | 12 ++++++++++++ addons/mrp_subproduct/__terp__.py | 8 ++++++++ addons/product_margin/__terp__.py | 5 +++++ addons/project_gtd/__terp__.py | 14 +++++++++++++- 4 files changed, 38 insertions(+), 1 deletion(-) diff --git a/addons/membership/__terp__.py b/addons/membership/__terp__.py index a40c92eab5a..48f5fe7da29 100644 --- a/addons/membership/__terp__.py +++ b/addons/membership/__terp__.py @@ -31,6 +31,18 @@ #"demo_data.xml", "membership_demo.xml" ], + "description": """ +This module allows you to manage all operations for managing memberships. +It supports different kind of members: +* Free member +* Associated member (ex: a group subscribe for a membership for all + subsidiaries) +* Paid members, +* Special member prices, ... + +It is integrated with sales and accounting to allow you to automatically +invoice and send propositions for membership renewal. + """, "init_xml" : [ "membership_data.xml", ], diff --git a/addons/mrp_subproduct/__terp__.py b/addons/mrp_subproduct/__terp__.py index fbdd19a45f8..14b0152d532 100644 --- a/addons/mrp_subproduct/__terp__.py +++ b/addons/mrp_subproduct/__terp__.py @@ -27,6 +27,14 @@ "depends" : ["base","mrp"], "category" : "Generic Modules/Production", "init_xml" : [], + "description": """ +This module allows you to produce several products from one production order. +You can configure sub-products in the bill of material. +Without this module: + A + B + C -> D +With this module: + A + B + C -> D + E + """, "demo_xml" : [], "update_xml" : [ "mrp_subproduct_view.xml", diff --git a/addons/product_margin/__terp__.py b/addons/product_margin/__terp__.py index a5d7e5cc4c9..89021c66c10 100644 --- a/addons/product_margin/__terp__.py +++ b/addons/product_margin/__terp__.py @@ -24,6 +24,11 @@ "version":"1.0", "author":"Tiny", "category":"Custom", + "description": """ +Adds a reporting menu in products that computes sales, purchases, margins +and others interresting indicators based on invoices. The wizard to launch +the report has several options to help you get the data you need. +""", "depends":["base","product","account"], "demo_xml":[], "update_xml":["product_margin_view.xml"], diff --git a/addons/project_gtd/__terp__.py b/addons/project_gtd/__terp__.py index 105289b7469..19c3190e924 100644 --- a/addons/project_gtd/__terp__.py +++ b/addons/project_gtd/__terp__.py @@ -25,7 +25,19 @@ "author" : "Tiny", "category" : "Generic Modules/Projects & Services", "depends" : ["project"], - "description": "", + "description": """ +This module implements all concepts defined by the Getting Things Done +methodology. This world-wide used methodology is used for personnal +time management improvement. + +Getting Things Done (commonly abbreviated as GTD) is an action management +method created by David Allen, and described in a book of the same name. + +GTD rests on the principle that a person needs to move tasks out of the mind by +recording them externally. That way, the mind is freed from the job of +remembering everything that needs to be done, and can concentrate on actually +performing those tasks. + """, "init_xml" : [], "demo_xml" : ["project_gtd_demo.xml"], "update_xml": [ From e82cf76be73d03cb0b3e1b4f2131ebc30f39f107 Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Fri, 26 Dec 2008 12:20:18 +0530 Subject: [PATCH 09/13] Bugfix:name_get on pricelist bzr revid: jvo@tinyerp.com-20081226065018-8249xplpekt34oz1 --- addons/product/pricelist.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index bd612c246e8..01749be89cb 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -91,11 +91,15 @@ class product_pricelist(osv.osv): 'version_id': fields.one2many('product.pricelist.version', 'pricelist_id', 'Pricelist Versions'), 'currency_id': fields.many2one('res.currency', 'Currency', required=True), } + def name_get(self, cr, uid, ids, context={}): - result= {} + result= [] + for pl in self.browse(cr, uid, ids, context): - result[pl.id] = pl.name + ' ('+ pl.currency_id.name + ')' + name = str(pl.name) + ' ('+ str(pl.currency_id.name) + ')' + result.append((pl.id,name)) return result + def _get_currency(self, cr, uid, ctx): comp = self.pool.get('res.users').browse(cr,uid,uid).company_id From 77a450b627109f0e7f90060ca72a9b8a7a27bf64 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Fri, 26 Dec 2008 13:22:00 +0530 Subject: [PATCH 10/13] fixed bug : when all stock move lines are cancelled, picking should be cancel bzr revid: hmo@tinyerp.com-20081226075200-kjj1lrq2kk5znh7w --- addons/stock/stock.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index e74165e8c15..c98a15e39ab 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1062,20 +1062,22 @@ class stock_move(osv.osv): if move.state in ('confirmed','waiting','assigned','draft'): if move.picking_id: pickings[move.picking_id.id] = True - if move.move_dest_id and move.move_dest_id.state=='waiting': - self.write(cr, uid, [move.move_dest_id.id], {'state':'assigned'}) - if move.move_dest_id.picking_id: - wf_service = netsvc.LocalService("workflow") - wf_service.trg_write(uid, 'stock.picking', move.move_dest_id.picking_id.id, cr) + if move.move_dest_id and move.move_dest_id.state=='waiting': + self.write(cr, uid, [move.move_dest_id.id], {'state':'assigned'}) + if move.move_dest_id.picking_id: + wf_service = netsvc.LocalService("workflow") + wf_service.trg_write(uid, 'stock.picking', move.move_dest_id.picking_id.id, cr) self.write(cr, uid, ids, {'state':'cancel', 'move_dest_id': False}) - #for pick_id in pickings: - # wf_service = netsvc.LocalService("workflow") - # wf_service.trg_validate(uid, 'stock.picking', pick_id, 'button_cancel', cr) - #ids2 = [] - #for res in self.read(cr, uid, ids, ['move_dest_id']): - # if res['move_dest_id']: - # ids2.append(res['move_dest_id'][0]) + for pick in self.pool.get('stock.picking').browse(cr,uid,pickings.keys()): + cancel=False + for move in pick.move_lines: + if move.state=='cancel': + cancel=True + if move.state!='cancel': + cancel=False + if cancel: + self.pool.get('stock.picking').write(cr,uid,[pick.id],{'state':'cancel'}) wf_service = netsvc.LocalService("workflow") for id in ids: From 31b55eea5fec95017d22ada0de835cebd1430e03 Mon Sep 17 00:00:00 2001 From: "hda (Tiny)" Date: Fri, 26 Dec 2008 14:57:04 +0530 Subject: [PATCH 11/13] added descriptions bzr revid: hda@tinyerp.com-20081226092704-prg7uohqufv0i1ri --- addons/auction/__terp__.py | 6 ++++++ addons/l10n_chart_uk_minimal/__terp__.py | 1 + addons/profile_accounting/__terp__.py | 1 + addons/profile_association/__terp__.py | 1 + addons/profile_auction/__terp__.py | 1 + addons/profile_crm/__terp__.py | 1 + addons/profile_manufacturing/__terp__.py | 1 + addons/profile_service/__terp__.py | 1 + addons/purchase/__terp__.py | 1 + addons/report_purchase/__terp__.py | 4 +++- addons/report_timesheet/__terp__.py | 2 ++ addons/stock/__terp__.py | 4 ++++ addons/subscription/__terp__.py | 1 + 13 files changed, 24 insertions(+), 1 deletion(-) diff --git a/addons/auction/__terp__.py b/addons/auction/__terp__.py index 24516e3fea7..3f70590d346 100644 --- a/addons/auction/__terp__.py +++ b/addons/auction/__terp__.py @@ -22,8 +22,14 @@ { "name" : "Auction module", "version" : "1.0", + "author" : "Tiny", "category" : "Generic Modules/Auction", "depends" : ["base","account","hr_attendance"], + "description": '''This module provides functionality to + manage artists, articles, sellers, buyers and auction. + Manage bids, track of sold, paid and unpaid objects. + Delivery Management. + ''', "update_xml" : [ # FIXME: review security rules... "security/ir.model.access.csv", diff --git a/addons/l10n_chart_uk_minimal/__terp__.py b/addons/l10n_chart_uk_minimal/__terp__.py index 94da21b59ac..516061768bf 100644 --- a/addons/l10n_chart_uk_minimal/__terp__.py +++ b/addons/l10n_chart_uk_minimal/__terp__.py @@ -63,6 +63,7 @@ "author" : "Seath Solutions Ltd", "website": "http://www.seathsolutions.com", "category" : "Localisation/Account Charts", + "description": "This is the base module to manage the accounting chart for United Kingdom in Open ERP.", "depends" : ["base", "account", "base_iban", "base_vat", "account_chart"], "init_xml" : [], "demo_xml" : [], diff --git a/addons/profile_accounting/__terp__.py b/addons/profile_accounting/__terp__.py index bf4b8795721..c96abadf26d 100644 --- a/addons/profile_accounting/__terp__.py +++ b/addons/profile_accounting/__terp__.py @@ -24,6 +24,7 @@ "version":"1.0", "author":"Tiny", "category":"Profile", + "description": "Profile for Accounting", "depends":["account","report_analytic","board_account","account_followup"], "demo_xml":[], "update_xml":[ diff --git a/addons/profile_association/__terp__.py b/addons/profile_association/__terp__.py index 879bbb9e3f3..ca50e11f0ff 100644 --- a/addons/profile_association/__terp__.py +++ b/addons/profile_association/__terp__.py @@ -24,6 +24,7 @@ "version":"0.1", "author":"Tiny", "category":"Profile", + "description": "Profile for Associates", "depends":["membership", "board_association"], "demo_xml":[], "update_xml":[ diff --git a/addons/profile_auction/__terp__.py b/addons/profile_auction/__terp__.py index 3190930f14d..681a183ea9c 100644 --- a/addons/profile_auction/__terp__.py +++ b/addons/profile_auction/__terp__.py @@ -24,6 +24,7 @@ "version":"1.0", "author":"Tiny", "category":"Profile", + "description": "Profile for Auction house", "depends":["auction", "board_auction","account","hr_timesheet_sheet"], "demo_xml":[], "update_xml":[], diff --git a/addons/profile_crm/__terp__.py b/addons/profile_crm/__terp__.py index 6c1ddda28bd..e66a8dddd4e 100644 --- a/addons/profile_crm/__terp__.py +++ b/addons/profile_crm/__terp__.py @@ -24,6 +24,7 @@ "version":"1.0", "author":"Tiny", "category":"Profile", + "description": "Profile for CRM", "depends":[ "crm_vertical", "board_crm_configuration", ], diff --git a/addons/profile_manufacturing/__terp__.py b/addons/profile_manufacturing/__terp__.py index 6b90856f6d5..8527539cae5 100644 --- a/addons/profile_manufacturing/__terp__.py +++ b/addons/profile_manufacturing/__terp__.py @@ -24,6 +24,7 @@ "version":"1.0", "author":"Tiny", "category":"Profile", + "description": "Profile for manufacturing industries", "depends":["mrp", "sale", "delivery","board_manufacturing","product_margin"], "demo_xml":[], "update_xml":[ diff --git a/addons/profile_service/__terp__.py b/addons/profile_service/__terp__.py index 26ccbca8fdb..ce20d5b34cd 100644 --- a/addons/profile_service/__terp__.py +++ b/addons/profile_service/__terp__.py @@ -24,6 +24,7 @@ "version":"1.0", "author":"Tiny", "category":"Profile", + "description": "Profile for service companies", "depends":[ "hr", "project", diff --git a/addons/purchase/__terp__.py b/addons/purchase/__terp__.py index 7900d753dbd..780a37c3af0 100644 --- a/addons/purchase/__terp__.py +++ b/addons/purchase/__terp__.py @@ -26,6 +26,7 @@ "website" : "http://www.openerp.com", "depends" : ["base", "account", "stock", "process"], "category" : "Generic Modules/Sales & Purchases", + "description": "Module for purchase management", "init_xml" : [], "demo_xml" : ["purchase_demo.xml", #"purchase_unit_test.xml" diff --git a/addons/report_purchase/__terp__.py b/addons/report_purchase/__terp__.py index c74a09ca3e8..70902eed4bc 100644 --- a/addons/report_purchase/__terp__.py +++ b/addons/report_purchase/__terp__.py @@ -20,12 +20,14 @@ # ############################################################################## { - "name" : "Sales Management - Reporting", + "name" : "Purchase Management - Reporting", "version" : "1.0", "author" : "Tiny", "website" : "http://www.openerp.com", "depends" : ["purchase"], "category" : "Generic Modules/Sales & Purchases", + "description": '''Module to add views like + Purchase By Product, Purchase By Category of Product, All Months, Current Month.''', "init_xml" : [], "demo_xml" : [], "update_xml" : [ diff --git a/addons/report_timesheet/__terp__.py b/addons/report_timesheet/__terp__.py index 73792922a70..110ce5ca8c7 100644 --- a/addons/report_timesheet/__terp__.py +++ b/addons/report_timesheet/__terp__.py @@ -24,6 +24,8 @@ "version" : "1.0", "author" : "Tiny", "website" : "http://www.openerp.com", + "description": '''Module to add timesheet views like + All Month, Timesheet By User, Timesheet Of Month, Timesheet By Account''', "depends" : ["hr_timesheet",'hr_timesheet_invoice'], "category" : "Generic Modules/Human Resources", "init_xml" : [], diff --git a/addons/stock/__terp__.py b/addons/stock/__terp__.py index 1d012329503..439b32f6b66 100644 --- a/addons/stock/__terp__.py +++ b/addons/stock/__terp__.py @@ -26,6 +26,10 @@ "website" : "http://www.openerp.com", "depends" : ["product", "account"], "category" : "Generic Modules/Inventory Control", + "description": '''Module provides Inventory Management, define warehouse, stock location, Pickings, + Incoming products, Outgoing products, Internal movements of product, Traceability. + Reports for stock like lots by location, Stock Forecast, Item Labels, Picking List etc.. + ''', "init_xml" : [], "demo_xml" : ["stock_demo.xml"], "update_xml" : [ diff --git a/addons/subscription/__terp__.py b/addons/subscription/__terp__.py index da3ae32a7ea..8d4fb042cb7 100644 --- a/addons/subscription/__terp__.py +++ b/addons/subscription/__terp__.py @@ -24,6 +24,7 @@ "version" : "1.0", "author" : "Tiny", "category" : "Generic Modules/Others", + "description": '''Module allows to create new documents and add subscription on that document.''', "depends" : ["base"], "init_xml" : [], "demo_xml" : [], From ab5453cb91eb107715b58fa5527d5651f0568144 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Fri, 26 Dec 2008 15:33:30 +0530 Subject: [PATCH 12/13] improve account_invoice_layout module bzr revid: hmo@tinyerp.com-20081226100330-1h4k14j7lym3msu7 --- .../account_invoice_layout/account_invoice_layout_report.xml | 4 ++-- .../account_invoice_layout/report/special_message_invoice.py | 2 +- .../report/special_message_invoice.rml | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/account_invoice_layout/account_invoice_layout_report.xml b/addons/account_invoice_layout/account_invoice_layout_report.xml index 034e869d912..2579609bfbf 100644 --- a/addons/account_invoice_layout/account_invoice_layout_report.xml +++ b/addons/account_invoice_layout/account_invoice_layout_report.xml @@ -1,7 +1,7 @@ - [[ format((o.payment_term and o.payment_term.note) or '') ]] +
[[ repeatIn((spcl_msg(data['form']) and spcl_msg(data['form']).splitlines()) or [], 'note') ]] -[[ note or removeParentNode('table') ]] - +[[ note or removeParentNode('para') ]] +
From 0bc6a1dbaf93b961677e863cefb2fe7bdf89f9f3 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Fri, 26 Dec 2008 11:23:47 +0100 Subject: [PATCH 13/13] [FIX] stock picking must be canceled if all picking move lines are cancle bzr revid: christophe@taupe-20081226102347-sbabtnkbr6j3mvlf --- addons/stock/stock.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index c98a15e39ab..55421013ca4 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1070,13 +1070,7 @@ class stock_move(osv.osv): self.write(cr, uid, ids, {'state':'cancel', 'move_dest_id': False}) for pick in self.pool.get('stock.picking').browse(cr,uid,pickings.keys()): - cancel=False - for move in pick.move_lines: - if move.state=='cancel': - cancel=True - if move.state!='cancel': - cancel=False - if cancel: + if all(move.state == 'cancle' for move in pick.move_lines): self.pool.get('stock.picking').write(cr,uid,[pick.id],{'state':'cancel'}) wf_service = netsvc.LocalService("workflow")