Improved custom addons path support

- fixed report_swx issue

bzr revid: ame@tinyerp.com-20080717044451-0p8xv9fkeqjqcjru
This commit is contained in:
Amit Mendapara
2008-07-17 10:14:51 +05:30
parent fe7176aca3
commit d225134d27
4 changed files with 12 additions and 6 deletions
+6 -2
View File
@@ -161,6 +161,7 @@ def get_report_resource(resource, base=None):
"""Return the full path of the given report resource.
>>>
>>> get_report_resource('hr/reports/timesheet.xsl')
>>> get_report_resource('addons/hr/reports/timesheet.xsl')
>>> get_report_resource('../../base/reports/rml_template.xsl', '/path/to/addons/hr/reports')
>>>
@@ -180,10 +181,13 @@ def get_report_resource(resource, base=None):
assert os.path.exists(fname), 'File does not exist: %s' % fname
fname = os.path.join(os.path.dirname(ad), resource)
if resource.startswith('addons'):
resource = resource.replace('addons', '', 1)
fname = os.path.join(ad, resource)
if os.path.exists(fname):
return fname
return os.path.join(os.path.dirname(_ad), resource)
return os.path.join(_ad, resource)
def get_modules():
"""Returns the list of module names
+2 -1
View File
@@ -29,6 +29,7 @@
from osv import fields,osv
import tools
import addons
import time
class actions(osv.osv):
@@ -71,7 +72,7 @@ class report_xml(osv.osv):
data = report[name + '_data']
if not data and report[name[:-8]]:
try:
fp = tools.file_open(report[name[:-8]], mode='rb')
fp = tools.file_open(addons.get_report_resource(report[name[:-8]]), mode='rb')
data = fp.read()
except:
data = False
+1 -1
View File
@@ -79,7 +79,7 @@ class report_rml(report_int):
def __init__(self, name, table, tmpl, xsl):
super(report_rml, self).__init__(name)
self.table = table
self.tmpl = tmpl
self.tmpl = addons.get_report_resource(tmpl)
self.xsl = xsl
self.bin_datas = {}
self.generators = {
+3 -2
View File
@@ -35,6 +35,7 @@ import osv
from interface import report_rml
import re
import tools
import addons
import pooler
import netsvc
import warnings
@@ -572,7 +573,7 @@ class report_sxw(report_rml):
rml = report_xml.report_rml_content
report_type = report_xml.report_type
else:
rml = tools.file_open(self.tmpl, subdir=None).read()
rml = tools.file_open(addons.get_report_resource(self.tmpl), subdir=None).read()
report_type= data.get('report_type', report_type)
if report_type == 'sxw' and report_xml:
@@ -625,7 +626,7 @@ class report_sxw(report_rml):
if self.header:
#Add corporate header/footer
rml = tools.file_open('custom/corporate_sxw_header.xml').read()
rml = tools.file_open(addons.get_report_resource('addons/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