From 367d5c3fd908761d1881514ca3aa340654468f38 Mon Sep 17 00:00:00 2001 From: "Jagdish Panchal (Open ERP)" Date: Tue, 27 Mar 2012 18:57:21 +0530 Subject: [PATCH] [IMP] knowledge: add the field server_address_port and improve the code bzr revid: jap@tinyerp.com-20120327132721-a63fezw00ffkyzu2 --- addons/document/res_config.py | 53 ++++++++++++++++++++--------- addons/document/res_config_view.xml | 4 ++- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/addons/document/res_config.py b/addons/document/res_config.py index 7bf27ae91ec..e43d856880b 100644 --- a/addons/document/res_config.py +++ b/addons/document/res_config.py @@ -20,6 +20,8 @@ ############################################################################## from osv import fields, osv +from tools import config +from lxml import etree class knowledge_configuration(osv.osv_memory): _name = 'knowledge.configuration' @@ -27,28 +29,47 @@ class knowledge_configuration(osv.osv_memory): _columns = { 'module_wiki_quality_manual': fields.boolean('Use an internal wiki to group FAQ', - help =""" - It installs the wiki_quality_manual module. - """), + help ="""It installs the wiki_quality_manual module."""), 'module_wiki_faq': fields.boolean('Track quality with wiki', - help =""" - It install the wiki_faq. - """), + help ="""It install the wiki_faq."""), 'module_document_ftp': fields.boolean('Share repositories (FTP)', - help =""" - It install the document_ftp. - """), + help ="""It install the document_ftp."""), 'server_address_port': fields.char('Server address/IP and port',size=128, - help =""" - It assign server address/IP and port. - """), + help ="""It assign server address/IP and port."""), 'module_document_webdav': fields.boolean('Share Repositories (WebDAV)', - help =""" - It install the document_webdav. - """), + help ="""It install the document_webdav."""), } - + + _defaults = { + 'server_address_port': config.get('ftp_server_host', 'localhost') + ':' + config.get('ftp_server_port', '8021'), + } + + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(knowledge_configuration, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=False) + ir_module = self.pool.get('ir.module.module') + module_id= ir_module.search(cr, uid, [('name','=','document_ftp')]) + modle_state = ir_module.browse(cr,uid, module_id[0],context=context).state + doc = etree.XML(res['arch']) + nodes = doc.xpath("//field[@name='server_address_port']") + if modle_state == 'uninstalled': + for node in nodes: + node.set('invisible', '1') + res['arch'] = etree.tostring(doc) + return res + + def set_ftp_configurations(self, cr, uid, ids, context=None): + data_pool = self.pool.get('ir.model.data') + ir_module = self.pool.get('ir.module.module') + module_id= ir_module.search(cr, uid, [('name','=','document_ftp')]) + modle_state = ir_module.browse(cr,uid, module_id[0],context=context).state + if modle_state == 'installed': + conf = self.browse(cr, uid, ids[0], context=context) + doc_id = data_pool._get_id(cr, uid, 'document_ftp', 'action_document_browse') + doc_ids = data_pool.browse(cr, uid, doc_id, context=context).res_id + self.pool.get('ir.actions.url').write(cr, uid, [doc_ids], {'url': 'ftp://'+(conf.server_address_port or 'localhost:8021')+'/' + cr.dbname+'/'}) + return True + knowledge_configuration() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/document/res_config_view.xml b/addons/document/res_config_view.xml index 0794a9e8e86..3d96d0df9e0 100644 --- a/addons/document/res_config_view.xml +++ b/addons/document/res_config_view.xml @@ -1,6 +1,7 @@ + Knowledge Application knowledge.configuration @@ -16,6 +17,7 @@ + @@ -31,7 +33,7 @@ form - +