Improved custom addons path support
- fixed report_swx issue bzr revid: ame@tinyerp.com-20080717044451-0p8xv9fkeqjqcjru
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user