Merge lp:~tadeus-prastowo/openobject-jasper-reports/7.0 into lp:openobject-jasper-reports/7.0

Proposed by Tadeus Prastowo
Status: Merged
Merged at revision: 181
Proposed branch: lp:~tadeus-prastowo/openobject-jasper-reports/7.0
Merge into: lp:openobject-jasper-reports/7.0
Diff against target: 846 lines (+393/-61)
10 files modified
jasper_reports/JasperReports/BrowseDataGenerator.py (+16/-6)
jasper_reports/JasperReports/JasperReport.py (+20/-9)
jasper_reports/JasperReports/JasperServer.py (+16/-5)
jasper_reports/__init__.py (+13/-3)
jasper_reports/__openerp__.py (+11/-4)
jasper_reports/i18n/ca@valencia.po (+217/-0)
jasper_reports/i18n/fr.po (+9/-7)
jasper_reports/jasper_report.py (+27/-14)
jasper_reports/report_xml.py (+19/-7)
jasper_reports/wizard/jasper_create_data_template.py (+45/-6)
To merge this branch: bzr merge lp:~tadeus-prastowo/openobject-jasper-reports/7.0
Reviewer Review Type Date Requested Status
Omar (Pexego) Approve
Review via email: mp+168344@code.launchpad.net

This proposal supersedes a proposal from 2013-06-10.

Description of the change

Make jasper_reports module run under OpenERP version 7.0 upwards by adjusting the import statements to comply with OpenERP 7.0 explicit namespaces.

To post a comment you must log in.
Revision history for this message
Omar (Pexego) (omar7r) wrote :

Merged, sorry for delay. Thanks for your contribution.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'jasper_reports/JasperReports/BrowseDataGenerator.py'
--- jasper_reports/JasperReports/BrowseDataGenerator.py 2012-03-05 19:01:02 +0000
+++ jasper_reports/JasperReports/BrowseDataGenerator.py 2013-06-10 04:33:29 +0000
@@ -5,6 +5,8 @@
5# http://www.NaN-tic.com5# http://www.NaN-tic.com
6# Copyright (c) 2012 Omar Castiñeira Saavedra <omar@pexego.es>6# Copyright (c) 2012 Omar Castiñeira Saavedra <omar@pexego.es>
7# Pexego Sistemas Informáticos http://www.pexego.es7# Pexego Sistemas Informáticos http://www.pexego.es
8# Copyright (C) 2013 Tadeus Prastowo <tadeus.prastowo@infi-nity.com>
9# Vikasa Infinity Anugrah <http://www.infi-nity.com>
8#10#
9# WARNING: This program as such is intended to be used by professional11# WARNING: This program as such is intended to be used by professional
10# programmers who take the whole responsability of assessing all potential12# programmers who take the whole responsability of assessing all potential
@@ -34,7 +36,15 @@
34import copy36import copy
35import base6437import base64
36from xml.dom.minidom import getDOMImplementation38from xml.dom.minidom import getDOMImplementation
37from osv import orm, osv, fields39
40try:
41 import release
42 from osv import orm, osv, fields
43except ImportError:
44 import openerp
45 from openerp import release
46 from openerp.osv import orm, osv, fields
47
38import tempfile48import tempfile
39import codecs49import codecs
40import logging50import logging
@@ -55,7 +65,7 @@
55 self.imageFiles = {}65 self.imageFiles = {}
56 self.temporaryFiles = []66 self.temporaryFiles = []
57 self.logger = logging.getLogger(__name__)67 self.logger = logging.getLogger(__name__)
58 68
59 def warning(self, message):69 def warning(self, message):
60 if self.logger:70 if self.logger:
61 self.logger.warning("%s" % message)71 self.logger.warning("%s" % message)
@@ -124,7 +134,7 @@
124 # If we wanted an INNER JOIN we wouldn't check for "value" and134 # If we wanted an INNER JOIN we wouldn't check for "value" and
125 # return an empty currentRecords135 # return an empty currentRecords
126 if value:136 if value:
127 # Only 137 # Only
128 newRecords = []138 newRecords = []
129 for v in value:139 for v in value:
130 currentNewRecords = []140 currentNewRecords = []
@@ -137,7 +147,7 @@
137147
138 currentRecords = newRecords148 currentRecords = newRecords
139 return currentRecords149 return currentRecords
140 150
141class XmlBrowseDataGenerator(BrowseDataGenerator):151class XmlBrowseDataGenerator(BrowseDataGenerator):
142 # XML file generation works as follows:152 # XML file generation works as follows:
143 # By default (if no OPENERP_RELATIONS property exists in the report) a record will be created153 # By default (if no OPENERP_RELATIONS property exists in the report) a record will be created
@@ -229,7 +239,7 @@
229 elif value == False:239 elif value == False:
230 value = ''240 value = ''
231 elif field_type == 'date':241 elif field_type == 'date':
232 value = '%s 00:00:00' % str(value) 242 value = '%s 00:00:00' % str(value)
233 elif field_type == 'binary':243 elif field_type == 'binary':
234 imageId = (record.id, field)244 imageId = (record.id, field)
235 if imageId in self.imageFiles:245 if imageId in self.imageFiles:
@@ -384,7 +394,7 @@
384 elif value in (False,None):394 elif value in (False,None):
385 value = ''395 value = ''
386 elif field_type == 'date':396 elif field_type == 'date':
387 value = '%s 00:00:00' % str(value) 397 value = '%s 00:00:00' % str(value)
388 elif field_type == 'binary':398 elif field_type == 'binary':
389 imageId = (record.id, field)399 imageId = (record.id, field)
390 if imageId in self.imageFiles:400 if imageId in self.imageFiles:
391401
=== modified file 'jasper_reports/JasperReports/JasperReport.py'
--- jasper_reports/JasperReports/JasperReport.py 2012-03-04 01:25:44 +0000
+++ jasper_reports/JasperReports/JasperReport.py 2013-06-10 04:33:29 +0000
@@ -1,7 +1,10 @@
1# -*- encoding: utf-8 -*-
1##############################################################################2##############################################################################
2#3#
3# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.4# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.
4# http://www.NaN-tic.com5# http://www.NaN-tic.com
6# Copyright (C) 2013 Tadeus Prastowo <tadeus.prastowo@infi-nity.com>
7# Vikasa Infinity Anugrah <http://www.infi-nity.com>
5#8#
6# WARNING: This program as such is intended to be used by professional9# WARNING: This program as such is intended to be used by professional
7# programmers who take the whole responsability of assessing all potential10# programmers who take the whole responsability of assessing all potential
@@ -29,8 +32,16 @@
29import os32import os
30from lxml import etree33from lxml import etree
31import re34import re
32from tools.safe_eval import safe_eval35
33import tools36try:
37 import release
38 from tools.safe_eval import safe_eval
39 import tools
40except ImportError:
41 import openerp
42 from openerp import release
43 from openerp.tools.safe_eval import safe_eval
44 from openerp import tools
3445
35dataSourceExpressionRegExp = re.compile( r"""\$P\{(\w+)\}""" )46dataSourceExpressionRegExp = re.compile( r"""\$P\{(\w+)\}""" )
3647
@@ -121,10 +132,10 @@
121 }132 }
122 fieldNames.append( name )133 fieldNames.append( name )
123 return fields, fieldNames134 return fields, fieldNames
124 135
125 def extractProperties(self):136 def extractProperties(self):
126 # The function will read all relevant information from the jrxml file137 # The function will read all relevant information from the jrxml file
127 138
128 doc = etree.parse( self._reportPath )139 doc = etree.parse( self._reportPath )
129140
130 # Define namespaces141 # Define namespaces
@@ -132,14 +143,14 @@
132 nss = {'jr': ns}143 nss = {'jr': ns}
133144
134 # Language145 # Language
135 146
136 # Note that if either queryString or language do not exist the default (from the constructor)147 # Note that if either queryString or language do not exist the default (from the constructor)
137 # is XPath.148 # is XPath.
138 langTags = doc.xpath( '/jr:jasperReport/jr:queryString', namespaces=nss )149 langTags = doc.xpath( '/jr:jasperReport/jr:queryString', namespaces=nss )
139 if langTags:150 if langTags:
140 if langTags[0].get('language'):151 if langTags[0].get('language'):
141 self._language = langTags[0].get('language').lower()152 self._language = langTags[0].get('language').lower()
142 153
143 # Relations154 # Relations
144 relationTags = doc.xpath( '/jr:jasperReport/jr:property[@name="OPENERP_RELATIONS"]', namespaces=nss )155 relationTags = doc.xpath( '/jr:jasperReport/jr:property[@name="OPENERP_RELATIONS"]', namespaces=nss )
145 if relationTags and 'value' in relationTags[0].keys():156 if relationTags and 'value' in relationTags[0].keys():
@@ -209,7 +220,7 @@
209 modelTags = tag.xpath( '//jr:reportElement/jr:property[@name="OPENERP_MODEL"]', namespaces=nss )220 modelTags = tag.xpath( '//jr:reportElement/jr:property[@name="OPENERP_MODEL"]', namespaces=nss )
210 if modelTags and 'value' in modelTags[0].keys():221 if modelTags and 'value' in modelTags[0].keys():
211 model = modelTags[0].get('value')222 model = modelTags[0].get('value')
212 223
213 pathPrefix = ''224 pathPrefix = ''
214 pathPrefixTags = tag.xpath( '//jr:reportElement/jr:property[@name="OPENERP_PATH_PREFIX"]', namespaces=nss )225 pathPrefixTags = tag.xpath( '//jr:reportElement/jr:property[@name="OPENERP_PATH_PREFIX"]', namespaces=nss )
215 if pathPrefixTags and 'value' in pathPrefixTags[0].keys():226 if pathPrefixTags and 'value' in pathPrefixTags[0].keys():
@@ -239,7 +250,7 @@
239 })250 })
240 for subsubInfo in subreport.subreports():251 for subsubInfo in subreport.subreports():
241 subsubInfo['depth'] += 1252 subsubInfo['depth'] += 1
242 # Note hat 'parameter' (the one used to pass report's DataSource) must be 253 # Note hat 'parameter' (the one used to pass report's DataSource) must be
243 # the same in all reports254 # the same in all reports
244 self._subreports.append( subsubInfo )255 self._subreports.append( subsubInfo )
245256
@@ -294,7 +305,7 @@
294 modelTags = tag.xpath( '../../jr:reportElement/jr:property[@name="OPENERP_MODEL"]', namespaces=nss )305 modelTags = tag.xpath( '../../jr:reportElement/jr:property[@name="OPENERP_MODEL"]', namespaces=nss )
295 if modelTags and 'value' in modelTags[0].keys():306 if modelTags and 'value' in modelTags[0].keys():
296 model = modelTags[0].get('value')307 model = modelTags[0].get('value')
297 308
298 pathPrefix = ''309 pathPrefix = ''
299 pathPrefixTags = tag.xpath( '../../jr:reportElement/jr:property[@name="OPENERP_PATH_PREFIX"]', namespaces=nss )310 pathPrefixTags = tag.xpath( '../../jr:reportElement/jr:property[@name="OPENERP_PATH_PREFIX"]', namespaces=nss )
300 if pathPrefixTags and 'value' in pathPrefixTags[0].keys():311 if pathPrefixTags and 'value' in pathPrefixTags[0].keys():
301312
=== modified file 'jasper_reports/JasperReports/JasperServer.py'
--- jasper_reports/JasperReports/JasperServer.py 2012-03-05 19:01:02 +0000
+++ jasper_reports/JasperReports/JasperServer.py 2013-06-10 04:33:29 +0000
@@ -1,7 +1,10 @@
1# -*- encoding: utf-8 -*-
1##############################################################################2##############################################################################
2#3#
3# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.4# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.
4# http://www.NaN-tic.com5# http://www.NaN-tic.com
6# Copyright (C) 2013 Tadeus Prastowo <tadeus.prastowo@infi-nity.com>
7# Vikasa Infinity Anugrah <http://www.infi-nity.com>
5#8#
6# WARNING: This program as such is intended to be used by professional9# WARNING: This program as such is intended to be used by professional
7# programmers who take the whole responsability of assessing all potential10# programmers who take the whole responsability of assessing all potential
@@ -27,15 +30,23 @@
27##############################################################################30##############################################################################
2831
29import os32import os
30from osv import osv
31import glob33import glob
32import time34import time
33import socket35import socket
34import subprocess36import subprocess
35import xmlrpclib37import xmlrpclib
36from tools.translate import _
37import logging38import logging
3839
40try:
41 import release
42 from osv import osv
43 from tools.translate import _
44except ImportError:
45 import openerp
46 from openerp import release
47 from openerp.osv import osv
48 from openerp.tools.translate import _
49
39class JasperServer:50class JasperServer:
40 def __init__(self, port=8090):51 def __init__(self, port=8090):
41 self.port = port52 self.port = port
@@ -67,14 +78,14 @@
67 env['CLASSPATH'] = os.path.join( self.path(), '..', 'java' + sep ) + sep.join( glob.glob( libs ) ) + sep + os.path.join( self.path(), '..', 'custom_reports' )78 env['CLASSPATH'] = os.path.join( self.path(), '..', 'java' + sep ) + sep.join( glob.glob( libs ) ) + sep + os.path.join( self.path(), '..', 'custom_reports' )
68 cwd = os.path.join( self.path(), '..', 'java' )79 cwd = os.path.join( self.path(), '..', 'java' )
6980
70 # Set headless = True because otherwise, java may use existing X session and if session is 81 # Set headless = True because otherwise, java may use existing X session and if session is
71 # closed JasperServer would start throwing exceptions. So we better avoid using the session at all.82 # closed JasperServer would start throwing exceptions. So we better avoid using the session at all.
72 command = ['java', '-Djava.awt.headless=true', 'com.nantic.jasperreports.JasperServer', unicode(self.port)]83 command = ['java', '-Djava.awt.headless=true', 'com.nantic.jasperreports.JasperServer', unicode(self.port)]
73 process = subprocess.Popen(command, env=env, cwd=cwd)84 process = subprocess.Popen(command, env=env, cwd=cwd)
74 if self.pidfile:85 if self.pidfile:
75 f = open( self.pidfile, 'w')86 f = open( self.pidfile, 'w')
76 try:87 try:
77 f.write( str( process.pid ) ) 88 f.write( str( process.pid ) )
78 finally:89 finally:
79 f.close()90 f.close()
8091
@@ -82,7 +93,7 @@
82 """93 """
83 Render report and return the number of pages generated.94 Render report and return the number of pages generated.
84 """95 """
85 try: 96 try:
86 return self.proxy.Report.execute( *args )97 return self.proxy.Report.execute( *args )
87 except (xmlrpclib.ProtocolError, socket.error), e:98 except (xmlrpclib.ProtocolError, socket.error), e:
88 #self.info("First try did not work: %s / %s" % (str(e), str(e.args)) )99 #self.info("First try did not work: %s / %s" % (str(e), str(e.args)) )
89100
=== modified file 'jasper_reports/__init__.py'
--- jasper_reports/__init__.py 2012-03-04 01:25:44 +0000
+++ jasper_reports/__init__.py 2013-06-10 04:33:29 +0000
@@ -1,7 +1,10 @@
1# -*- encoding: utf-8 -*-
1##############################################################################2##############################################################################
2#3#
3# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.4# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.
4# http://www.NaN-tic.com5# http://www.NaN-tic.com
6# Copyright (C) 2013 Tadeus Prastowo <tadeus.prastowo@infi-nity.com>
7# Vikasa Infinity Anugrah <http://www.infi-nity.com>
5#8#
6# WARNING: This program as such is intended to be used by professional9# WARNING: This program as such is intended to be used by professional
7# programmers who take the whole responsability of assessing all potential10# programmers who take the whole responsability of assessing all potential
@@ -25,10 +28,17 @@
25# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.28# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26#29#
27##############################################################################30##############################################################################
31
28from jasper_report import *32from jasper_report import *
29from report_xml import *33from report_xml import *
30import wizard34import wizard
3135
32import release36try:
33if release.major_version != '5.0':37 import release
34 from http_server import *38 if release.major_version != '5.0':
39 from http_server import *
40except ImportError:
41 import openerp
42 from openerp import release
43 if release.major_version != '5.0':
44 from openerp.service.http_server import *
3545
=== modified file 'jasper_reports/__openerp__.py'
--- jasper_reports/__openerp__.py 2012-04-26 17:35:29 +0000
+++ jasper_reports/__openerp__.py 2013-06-10 04:33:29 +0000
@@ -1,7 +1,10 @@
1# -*- encoding: utf-8 -*-
1##############################################################################2##############################################################################
2#3#
3# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.4# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.
4# http://www.NaN-tic.com5# http://www.NaN-tic.com
6# Copyright (C) 2013 Tadeus Prastowo <tadeus.prastowo@infi-nity.com>
7# Vikasa Infinity Anugrah <http://www.infi-nity.com>
5#8#
6# WARNING: This program as such is intended to be used by professional9# WARNING: This program as such is intended to be used by professional
7# programmers who take the whole responsability of assessing all potential10# programmers who take the whole responsability of assessing all potential
@@ -32,11 +35,15 @@
32 "description" : "This module integrates Jasper Reports with OpenERP.",35 "description" : "This module integrates Jasper Reports with OpenERP.",
33 "author" : "NaN·tic",36 "author" : "NaN·tic",
34 "website" : "http://www.nan-tic.com",37 "website" : "http://www.nan-tic.com",
38 'images' : [
39 'images/jasper_reports-hover.png',
40 'images/jasper_reports.png'
41 ],
35 "depends" : ["base"],42 "depends" : ["base"],
36 "category" : "Generic Modules/Jasper Reports",43 "category" : "Generic Modules/Jasper Reports",
37 "init_xml" : [],44 "init_xml" : [],
38 "demo_xml" : [ 45 "demo_xml" : [
39 'jasper_demo.xml' 46 'jasper_demo.xml'
40 ],47 ],
41 "update_xml" : [48 "update_xml" : [
42 'wizard/jasper_create_data_template.xml',49 'wizard/jasper_create_data_template.xml',
@@ -45,6 +52,6 @@
45 'security/ir.model.access.csv',52 'security/ir.model.access.csv',
46 ],53 ],
47 "active": False,54 "active": False,
48 "installable": True55 "installable": True,
56 'application': True,
49}57}
50
5158
=== added file 'jasper_reports/i18n/ca@valencia.po'
--- jasper_reports/i18n/ca@valencia.po 1970-01-01 00:00:00 +0000
+++ jasper_reports/i18n/ca@valencia.po 2013-06-10 04:33:29 +0000
@@ -0,0 +1,217 @@
1# Catalan (Valencian) translation for openobject-jasper-reports
2# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3# This file is distributed under the same license as the openobject-jasper-reports package.
4# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: openobject-jasper-reports\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2010-06-27 14:39+0000\n"
11"PO-Revision-Date: 2013-01-08 19:18+0000\n"
12"Last-Translator: Pablo Fuentes Rodríguez (Studio73) <pablo@studio73.es>\n"
13"Language-Team: Catalan (Valencian) <ca@valencia@li.org>\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
17"X-Launchpad-Export-Date: 2013-01-09 05:24+0000\n"
18"X-Generator: Launchpad (build 16412)\n"
19
20#. module: jasper_reports
21#: field:ir.actions.report.xml,jasper_report:0
22msgid "Is Jasper Report?"
23msgstr "Es Jasper Report?"
24
25#. module: jasper_reports
26#: constraint:ir.model:0
27msgid ""
28"The Object name must start with x_ and not contain any special character !"
29msgstr ""
30"El nom de l'objecte ha de començar amb x_ i no pot contenir cap caràcter "
31"especial!"
32
33#. module: jasper_reports
34#: wizard_button:jasper_create_data_template,init,create:0
35msgid "Create"
36msgstr "Crea"
37
38#. module: jasper_reports
39#: field:ir.actions.report.xml,jasper_output:0
40msgid "Jasper Output"
41msgstr "Eixida de Jasper"
42
43#. module: jasper_reports
44#: constraint:ir.actions.act_window:0
45msgid "Invalid model name in the action definition."
46msgstr "Nom de model no vàlid en la definició de l'acció"
47
48#. module: jasper_reports
49#: selection:ir.actions.report.xml,jasper_output:0
50msgid "XLS"
51msgstr "XLS"
52
53#. module: jasper_reports
54#: view:ir.actions.report.xml:0
55#: field:ir.actions.report.xml,jasper_file_ids:0
56msgid "Files"
57msgstr "Fitxers"
58
59#. module: jasper_reports
60#: selection:ir.actions.report.xml,jasper_output:0
61msgid "RTF"
62msgstr "RTF"
63
64#. module: jasper_reports
65#: view:ir.actions.report.xml:0
66msgid "Update from attachments"
67msgstr "Actualitzar des d'adjunts"
68
69#. module: jasper_reports
70#: model:ir.actions.act_window,name:jasper_reports.ir_action_report_jasper
71#: view:ir.actions.report.xml:0
72#: model:ir.module.module,shortdesc:jasper_reports.module_meta_information
73#: model:ir.ui.menu,name:jasper_reports.jasper_reports_menu
74#: model:ir.ui.menu,name:jasper_reports.menu_ir_action_report_jasper
75msgid "Jasper Reports"
76msgstr "Jasper Reports"
77
78#. module: jasper_reports
79#: selection:ir.actions.report.xml,jasper_output:0
80msgid "ODS"
81msgstr ""
82
83#. module: jasper_reports
84#: selection:ir.actions.report.xml,jasper_output:0
85msgid "ODT"
86msgstr ""
87
88#. module: jasper_reports
89#: code:addons/jasper_reports/report_xml.py:0
90#, python-format
91msgid "There is more than one report marked as default"
92msgstr ""
93
94#. module: jasper_reports
95#: selection:ir.actions.report.xml,jasper_output:0
96msgid "HTML"
97msgstr ""
98
99#. module: jasper_reports
100#: code:addons/jasper_reports/wizard/create_data_template.py:0
101#, python-format
102msgid "User"
103msgstr ""
104
105#. module: jasper_reports
106#: view:ir.actions.report.xml:0
107msgid "Groups"
108msgstr ""
109
110#. module: jasper_reports
111#: field:ir.actions.report.xml.file,report_id:0
112msgid "Report"
113msgstr ""
114
115#. module: jasper_reports
116#: wizard_field:jasper_create_data_template,create,data:0
117msgid "XML"
118msgstr ""
119
120#. module: jasper_reports
121#: constraint:ir.ui.view:0
122msgid "Invalid XML for View Architecture!"
123msgstr ""
124
125#. module: jasper_reports
126#: model:ir.model,name:jasper_reports.model_ir_actions_report_xml_file
127msgid "ir.actions.report.xml.file"
128msgstr ""
129
130#. module: jasper_reports
131#: model:ir.actions.wizard,name:jasper_reports.jasper_create_data_template_action
132#: model:ir.ui.menu,name:jasper_reports.jasper_create_data_template_menu
133#: wizard_view:jasper_create_data_template,create:0
134#: wizard_view:jasper_create_data_template,init:0
135msgid "Create Data Template"
136msgstr ""
137
138#. module: jasper_reports
139#: field:ir.actions.report.xml.file,default:0
140msgid "Default"
141msgstr ""
142
143#. module: jasper_reports
144#: code:addons/jasper_reports/report_xml.py:0
145#, python-format
146msgid "No report has been marked as default."
147msgstr ""
148
149#. module: jasper_reports
150#: wizard_field:jasper_create_data_template,init,depth:0
151msgid "Depth"
152msgstr ""
153
154#. module: jasper_reports
155#: code:addons/jasper_reports/report_xml.py:0
156#, python-format
157msgid "Error"
158msgstr ""
159
160#. module: jasper_reports
161#: selection:ir.actions.report.xml,jasper_output:0
162msgid "PDF"
163msgstr ""
164
165#. module: jasper_reports
166#: field:ir.actions.report.xml,jasper_model_id:0
167#: wizard_field:jasper_create_data_template,create,model:0
168#: wizard_field:jasper_create_data_template,init,model:0
169msgid "Model"
170msgstr ""
171
172#. module: jasper_reports
173#: selection:ir.actions.report.xml,jasper_output:0
174msgid "CSV"
175msgstr ""
176
177#. module: jasper_reports
178#: view:ir.actions.report.xml.file:0
179msgid "Jasper Reports File"
180msgstr ""
181
182#. module: jasper_reports
183#: code:addons/jasper_reports/wizard/create_data_template.py:0
184#, python-format
185msgid "Attachments"
186msgstr ""
187
188#. module: jasper_reports
189#: selection:ir.actions.report.xml,jasper_output:0
190msgid "Text"
191msgstr ""
192
193#. module: jasper_reports
194#: field:ir.actions.report.xml.file,filename:0
195#: wizard_field:jasper_create_data_template,create,filename:0
196msgid "File Name"
197msgstr ""
198
199#. module: jasper_reports
200#: wizard_button:jasper_create_data_template,create,end:0
201msgid "Accept"
202msgstr ""
203
204#. module: jasper_reports
205#: model:ir.module.module,description:jasper_reports.module_meta_information
206msgid "This module integrates Jasper Reports with OpenERP."
207msgstr ""
208
209#. module: jasper_reports
210#: field:ir.actions.report.xml.file,file:0
211msgid "File"
212msgstr ""
213
214#. module: jasper_reports
215#: wizard_button:jasper_create_data_template,init,end:0
216msgid "Cancel"
217msgstr ""
0218
=== modified file 'jasper_reports/i18n/fr.po'
--- jasper_reports/i18n/fr.po 2012-03-05 05:11:35 +0000
+++ jasper_reports/i18n/fr.po 2013-06-10 04:33:29 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: OpenERP Server 6.0.3\n"8"Project-Id-Version: OpenERP Server 6.0.3\n"
9"Report-Msgid-Bugs-To: support@openerp.com\n"9"Report-Msgid-Bugs-To: support@openerp.com\n"
10"POT-Creation-Date: 2010-06-27 14:39+0000\n"10"POT-Creation-Date: 2010-06-27 14:39+0000\n"
11"PO-Revision-Date: 2012-03-04 04:36+0000\n"11"PO-Revision-Date: 2012-04-19 08:53+0000\n"
12"Last-Translator: Christophe CRIER <Unknown>\n"12"Last-Translator: Florent (LSc) <Unknown>\n"
13"Language-Team: French <kde-i18n-doc@kde.org>\n"13"Language-Team: French <kde-i18n-doc@kde.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"X-Launchpad-Export-Date: 2012-03-05 05:11+0000\n"17"X-Launchpad-Export-Date: 2012-04-20 05:31+0000\n"
18"X-Generator: Launchpad (build 14900)\n"18"X-Generator: Launchpad (build 15120)\n"
1919
20#. module: jasper_reports20#. module: jasper_reports
21#: field:ir.actions.report.xml,jasper_report:021#: field:ir.actions.report.xml,jasper_report:0
@@ -27,6 +27,8 @@
27msgid ""27msgid ""
28"The Object name must start with x_ and not contain any special character !"28"The Object name must start with x_ and not contain any special character !"
29msgstr ""29msgstr ""
30"Le nom de l'objet doit commencer par x_ et ne doit contenir aucun caractère "
31"spécial !"
3032
31#. module: jasper_reports33#. module: jasper_reports
32#: wizard_button:jasper_create_data_template,init,create:034#: wizard_button:jasper_create_data_template,init,create:0
@@ -41,7 +43,7 @@
41#. module: jasper_reports43#. module: jasper_reports
42#: constraint:ir.actions.act_window:044#: constraint:ir.actions.act_window:0
43msgid "Invalid model name in the action definition."45msgid "Invalid model name in the action definition."
44msgstr ""46msgstr "Nom de modèle non valide dans la définition de l'action."
4547
46#. module: jasper_reports48#. module: jasper_reports
47#: selection:ir.actions.report.xml,jasper_output:049#: selection:ir.actions.report.xml,jasper_output:0
@@ -118,7 +120,7 @@
118#. module: jasper_reports120#. module: jasper_reports
119#: constraint:ir.ui.view:0121#: constraint:ir.ui.view:0
120msgid "Invalid XML for View Architecture!"122msgid "Invalid XML for View Architecture!"
121msgstr ""123msgstr "XML incorrect pour l'architecture de la vue !"
122124
123#. module: jasper_reports125#. module: jasper_reports
124#: model:ir.model,name:jasper_reports.model_ir_actions_report_xml_file126#: model:ir.model,name:jasper_reports.model_ir_actions_report_xml_file
@@ -202,7 +204,7 @@
202#. module: jasper_reports204#. module: jasper_reports
203#: model:ir.module.module,description:jasper_reports.module_meta_information205#: model:ir.module.module,description:jasper_reports.module_meta_information
204msgid "This module integrates Jasper Reports with OpenERP."206msgid "This module integrates Jasper Reports with OpenERP."
205msgstr ""207msgstr "Ce module intégre Jasper Reports avec OpenERP"
206208
207#. module: jasper_reports209#. module: jasper_reports
208#: field:ir.actions.report.xml.file,file:0210#: field:ir.actions.report.xml.file,file:0
209211
=== added directory 'jasper_reports/images'
=== added file 'jasper_reports/images/jasper_reports-hover.png'
210Binary files jasper_reports/images/jasper_reports-hover.png 1970-01-01 00:00:00 +0000 and jasper_reports/images/jasper_reports-hover.png 2013-06-10 04:33:29 +0000 differ212Binary files jasper_reports/images/jasper_reports-hover.png 1970-01-01 00:00:00 +0000 and jasper_reports/images/jasper_reports-hover.png 2013-06-10 04:33:29 +0000 differ
=== added file 'jasper_reports/images/jasper_reports.png'
211Binary files jasper_reports/images/jasper_reports.png 1970-01-01 00:00:00 +0000 and jasper_reports/images/jasper_reports.png 2013-06-10 04:33:29 +0000 differ213Binary files jasper_reports/images/jasper_reports.png 1970-01-01 00:00:00 +0000 and jasper_reports/images/jasper_reports.png 2013-06-10 04:33:29 +0000 differ
=== modified file 'jasper_reports/jasper_report.py'
--- jasper_reports/jasper_report.py 2012-03-07 09:59:57 +0000
+++ jasper_reports/jasper_report.py 2013-06-10 04:33:29 +0000
@@ -1,7 +1,10 @@
1# -*- encoding: utf-8 -*-
1##############################################################################2##############################################################################
2#3#
3# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.4# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.
4# http://www.NaN-tic.com5# http://www.NaN-tic.com
6# Copyright (C) 2013 Tadeus Prastowo <tadeus.prastowo@infi-nity.com>
7# Vikasa Infinity Anugrah <http://www.infi-nity.com>
5#8#
6# WARNING: This program as such is intended to be used by professional9# WARNING: This program as such is intended to be used by professional
7# programmers who take the whole responsability of assessing all potential10# programmers who take the whole responsability of assessing all potential
@@ -26,14 +29,24 @@
26#29#
27##############################################################################30##############################################################################
2831
32try:
33 import release
34 import report
35 import pooler
36 from osv import orm, osv, fields
37 import tools
38 import netsvc
39except ImportError:
40 import openerp
41 from openerp import release
42 from openerp import report
43 from openerp import pooler
44 from openerp.osv import orm, osv, fields
45 from openerp import tools
46 from openerp import netsvc
47
29import os48import os
30import report
31import pooler
32from osv import orm, osv, fields
33import tools
34import tempfile49import tempfile
35import netsvc
36import release
37import logging50import logging
3851
39from JasperReports import *52from JasperReports import *
@@ -89,7 +102,7 @@
89 logger.info("Requested report: '%s'" % self.reportPath)102 logger.info("Requested report: '%s'" % self.reportPath)
90 self.report = JasperReport( self.reportPath )103 self.report = JasperReport( self.reportPath )
91104
92 # Create temporary input (XML) and output (PDF) files 105 # Create temporary input (XML) and output (PDF) files
93 fd, dataFile = tempfile.mkstemp()106 fd, dataFile = tempfile.mkstemp()
94 os.close(fd)107 os.close(fd)
95 fd, outputFile = tempfile.mkstemp()108 fd, outputFile = tempfile.mkstemp()
@@ -109,7 +122,7 @@
109 generator = CsvBrowseDataGenerator( self.report, self.model, self.pool, self.cr, self.uid, self.ids, self.context )122 generator = CsvBrowseDataGenerator( self.report, self.model, self.pool, self.cr, self.uid, self.ids, self.context )
110 generator.generate( dataFile )123 generator.generate( dataFile )
111 self.temporaryFiles += generator.temporaryFiles124 self.temporaryFiles += generator.temporaryFiles
112 125
113 subreportDataFiles = []126 subreportDataFiles = []
114 for subreportInfo in self.report.subreports():127 for subreportInfo in self.report.subreports():
115 subreport = subreportInfo['report']128 subreport = subreportInfo['report']
@@ -138,7 +151,7 @@
138 else:151 else:
139 generator = CsvBrowseDataGenerator( subreport, self.model, self.pool, self.cr, self.uid, self.ids, self.context )152 generator = CsvBrowseDataGenerator( subreport, self.model, self.pool, self.cr, self.uid, self.ids, self.context )
140 generator.generate( subreportDataFile )153 generator.generate( subreportDataFile )
141 154
142155
143 # Call the external java application that will generate the PDF file in outputFile156 # Call the external java application that will generate the PDF file in outputFile
144 pages = self.executeReport( dataFile, outputFile, subreportDataFiles )157 pages = self.executeReport( dataFile, outputFile, subreportDataFiles )
@@ -191,7 +204,7 @@
191 port = tools.config['db_port'] or '5432'204 port = tools.config['db_port'] or '5432'
192 dbname = self.cr.dbname205 dbname = self.cr.dbname
193 return 'jdbc:postgresql://%s:%s/%s' % ( host, port, dbname )206 return 'jdbc:postgresql://%s:%s/%s' % ( host, port, dbname )
194 207
195 def userName(self):208 def userName(self):
196 return tools.config['db_user'] or self.systemUserName()209 return tools.config['db_user'] or self.systemUserName()
197210
@@ -200,7 +213,7 @@
200213
201 def executeReport(self, dataFile, outputFile, subreportDataFiles):214 def executeReport(self, dataFile, outputFile, subreportDataFiles):
202 locale = self.context.get('lang', 'en_US')215 locale = self.context.get('lang', 'en_US')
203 216
204 connectionParameters = {217 connectionParameters = {
205 'output': self.outputFormat,218 'output': self.outputFormat,
206 #'xml': dataFile,219 #'xml': dataFile,
@@ -226,8 +239,8 @@
226class report_jasper(report.interface.report_int):239class report_jasper(report.interface.report_int):
227 def __init__(self, name, model, parser=None ):240 def __init__(self, name, model, parser=None ):
228 # Remove report name from list of services if it already241 # Remove report name from list of services if it already
229 # exists to avoid report_int's assert. We want to keep the 242 # exists to avoid report_int's assert. We want to keep the
230 # automatic registration at login, but at the same time we 243 # automatic registration at login, but at the same time we
231 # need modules to be able to use a parser for certain reports.244 # need modules to be able to use a parser for certain reports.
232 if release.major_version == '5.0':245 if release.major_version == '5.0':
233 if name in netsvc.SERVICES:246 if name in netsvc.SERVICES:
@@ -277,7 +290,7 @@
277 report_jasper( name, model )290 report_jasper( name, model )
278291
279292
280 # This hack allows automatic registration of jrxml files without 293 # This hack allows automatic registration of jrxml files without
281 # the need for developers to register them programatically.294 # the need for developers to register them programatically.
282295
283 old_register_all = report.interface.register_all296 old_register_all = report.interface.register_all
284297
=== modified file 'jasper_reports/report_xml.py'
--- jasper_reports/report_xml.py 2012-07-27 12:17:55 +0000
+++ jasper_reports/report_xml.py 2013-06-10 04:33:29 +0000
@@ -3,6 +3,8 @@
3#3#
4# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.4# Copyright (c) 2008-2012 NaN Projectes de Programari Lliure, S.L.
5# http://www.NaN-tic.com5# http://www.NaN-tic.com
6# Copyright (C) 2013 Tadeus Prastowo <tadeus.prastowo@infi-nity.com>
7# Vikasa Infinity Anugrah <http://www.infi-nity.com>
6#8#
7# WARNING: This program as such is intended to be used by professional9# WARNING: This program as such is intended to be used by professional
8# programmers who take the whole responsability of assessing all potential10# programmers who take the whole responsability of assessing all potential
@@ -29,15 +31,25 @@
2931
30import os32import os
31import base6433import base64
32import report34
33from osv import orm, osv, fields35try:
34import jasper_report36 import release
35from tools.translate import _37 import report
38 from osv import orm, osv, fields
39 import jasper_report
40 from tools.translate import _
41except ImportError:
42 import openerp
43 from openerp import release
44 from openerp import report
45 from openerp.osv import orm, osv, fields
46 from openerp import jasper_report
47 from openerp.tools.translate import _
3648
37import unicodedata49import unicodedata
38from xml.dom.minidom import getDOMImplementation50from xml.dom.minidom import getDOMImplementation
3951
40src_chars = """ '"()/*-+?¿!&$[]{}@#`'^:;<>=~%,\\""" 52src_chars = """ '"()/*-+?¿!&$[]{}@#`'^:;<>=~%,\\"""
41src_chars = unicode( src_chars, 'iso-8859-1' )53src_chars = unicode( src_chars, 'iso-8859-1' )
42dst_chars = """________________________________"""54dst_chars = """________________________________"""
43dst_chars = unicode( dst_chars, 'iso-8859-1' )55dst_chars = unicode( dst_chars, 'iso-8859-1' )
@@ -180,7 +192,7 @@
180 model = pool.get(modelName)192 model = pool.get(modelName)
181 fields = model._columns.keys()193 fields = model._columns.keys()
182 fields += model._inherit_fields.keys()194 fields += model._inherit_fields.keys()
183 # Remove duplicates because model may have fields with the 195 # Remove duplicates because model may have fields with the
184 # same name as it's parent196 # same name as it's parent
185 fields = sorted( list( set( fields ) ) )197 fields = sorted( list( set( fields ) ) )
186 for field in fields:198 for field in fields:
@@ -218,7 +230,7 @@
218 newName = model._inherit_fields[field][2]._obj230 newName = model._inherit_fields[field][2]._obj
219 self.generate_xml(cr, uid, context, pool, newName, fieldNode, document, depth-1, False)231 self.generate_xml(cr, uid, context, pool, newName, fieldNode, document, depth-1, False)
220 continue232 continue
221 233
222 if fieldType == 'float':234 if fieldType == 'float':
223 value = '12345.67'235 value = '12345.67'
224 elif fieldType == 'integer':236 elif fieldType == 'integer':
225237
=== added directory 'jasper_reports/static'
=== added directory 'jasper_reports/static/src'
=== added directory 'jasper_reports/static/src/img'
=== added file 'jasper_reports/static/src/img/icon.png'
226Binary files jasper_reports/static/src/img/icon.png 1970-01-01 00:00:00 +0000 and jasper_reports/static/src/img/icon.png 2013-06-10 04:33:29 +0000 differ238Binary files jasper_reports/static/src/img/icon.png 1970-01-01 00:00:00 +0000 and jasper_reports/static/src/img/icon.png 2013-06-10 04:33:29 +0000 differ
=== modified file 'jasper_reports/wizard/jasper_create_data_template.py'
--- jasper_reports/wizard/jasper_create_data_template.py 2012-07-27 12:50:54 +0000
+++ jasper_reports/wizard/jasper_create_data_template.py 2013-06-10 04:33:29 +0000
@@ -1,8 +1,47 @@
1import wizard1# -*- encoding: utf-8 -*-
2import pooler2##############################################################################
3#
4# Copyright (c) 2012 Omar Castiñeira Saavedra <omar@pexego.es>
5# Pexego Sistemas Informáticos http://www.pexego.es
6# Copyright (C) 2013 Tadeus Prastowo <tadeus.prastowo@infi-nity.com>
7# Vikasa Infinity Anugrah <http://www.infi-nity.com>
8#
9# WARNING: This program as such is intended to be used by professional
10# programmers who take the whole responsability of assessing all potential
11# consequences resulting from its eventual inadequacies and bugs
12# End users who are looking for a ready-to-use solution with commercial
13# garantees and support are strongly adviced to contract a Free Software
14# Service Company
15#
16# This program is Free Software; you can redistribute it and/or
17# modify it under the terms of the GNU General Public License
18# as published by the Free Software Foundation; either version 2
19# of the License, or (at your option) any later version.
20#
21# This program is distributed in the hope that it will be useful,
22# but WITHOUT ANY WARRANTY; without even the implied warranty of
23# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24# GNU General Public License for more details.
25#
26# You should have received a copy of the GNU General Public License
27# along with this program; if not, write to the Free Software
28# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29#
30##############################################################################
31
3import base6432import base64
4from osv import osv,fields33
5from tools.translate import _34try:
35 import release
36 import pooler
37 from osv import osv,fields
38 from tools.translate import _
39except ImportError:
40 import openerp
41 from openerp import release
42 from openerp import pooler
43 from openerp.osv import osv,fields
44 from openerp.tools.translate import _
645
7class create_data_template(osv.osv_memory):46class create_data_template(osv.osv_memory):
8 _name = 'jasper.create.data.template'47 _name = 'jasper.create.data.template'
@@ -13,7 +52,7 @@
13 model = self.pool.get('ir.model').browse(cr, uid, data['model'][0], context=context)52 model = self.pool.get('ir.model').browse(cr, uid, data['model'][0], context=context)
14 xml = self.pool.get('ir.actions.report.xml').create_xml(cr, uid, model.model, data['depth'], context)53 xml = self.pool.get('ir.actions.report.xml').create_xml(cr, uid, model.model, data['depth'], context)
15 self.write(cr,uid,ids,{54 self.write(cr,uid,ids,{
16 'data' : base64.encodestring( xml ), 55 'data' : base64.encodestring( xml ),
17 'filename': 'template.xml'56 'filename': 'template.xml'
18 })57 })
19 return True58 return True
@@ -27,5 +66,5 @@
2766
28 _defaults = {67 _defaults = {
29 'depth': 168 'depth': 1
30 } 69 }
31create_data_template()70create_data_template()

Subscribers

People subscribed via source and target branches