Merge lp:~bstanciu/openobject-server/trunk-dev into lp:openobject-server
- trunk-dev
- Merge into trunk
Proposed by
Bogdan Stanciu
Status: | Rejected |
---|---|
Rejected by: | Vo Minh Thu |
Proposed branch: | lp:~bstanciu/openobject-server/trunk-dev |
Merge into: | lp:openobject-server |
Diff against target: |
1520 lines (+412/-413) 46 files modified
MANIFEST.in (+6/-6) openerp-server.py (+0/-258) openerp/addons/__init__.py (+9/-9) openerp/ir/ir.py (+2/-2) openerp/openerp-server.py (+258/-0) openerp/osv/expression.py (+1/-1) openerp/osv/fields.py (+3/-3) openerp/osv/orm.py (+6/-6) openerp/osv/osv.py (+4/-4) openerp/pooler.py (+4/-4) openerp/report/__init__.py (+1/-1) openerp/report/custom.py (+8/-8) openerp/report/interface.py (+4/-4) openerp/report/print_xml.py (+5/-5) openerp/report/printscreen/ps_form.py (+4/-4) openerp/report/printscreen/ps_list.py (+5/-5) openerp/report/render/html2html/html2html.py (+2/-2) openerp/report/render/makohtml2html/makohtml2html.py (+1/-1) openerp/report/render/odt2odt/odt2odt.py (+1/-1) openerp/report/render/rml2html/rml2html.py (+1/-1) openerp/report/render/rml2pdf/customfonts.py (+1/-1) openerp/report/render/rml2pdf/trml2pdf.py (+2/-2) openerp/report/render/rml2pdf/utils.py (+3/-3) openerp/report/render/rml2txt/utils.py (+1/-1) openerp/report/report_sxw.py (+4/-4) openerp/service/http_server.py (+2/-2) openerp/service/netrpc_server.py (+3/-3) openerp/service/security.py (+2/-2) openerp/service/web_services.py (+12/-12) openerp/test/test_osv.py (+1/-1) openerp/test/test_translate.py (+1/-1) openerp/tools/amount_to_text_en.py (+1/-1) openerp/tools/config.py (+3/-4) openerp/tools/convert.py (+5/-5) openerp/tools/misc.py (+4/-4) openerp/tools/test_reports.py (+4/-4) openerp/tools/translate.py (+3/-3) openerp/tools/yaml_import.py (+3/-3) openerp/wizard/__init__.py (+9/-9) openerp/workflow/instance.py (+2/-2) openerp/workflow/wkf_expr.py (+4/-4) openerp/workflow/wkf_logs.py (+1/-1) openerp/workflow/wkf_service.py (+2/-2) openerp/workflow/workitem.py (+1/-1) setup.cfg (+2/-2) setup.py (+11/-11) |
To merge this branch: | bzr merge lp:~bstanciu/openobject-server/trunk-dev |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Vo Minh Thu (community) | Disapprove | ||
Review via email: mp+49150@code.launchpad.net |
Commit message
repaired the setup process, broken due to misplacement of openerp-server.py file and wrong references.
Description of the change
repaired the setup process, broken due to misplacement of openerp-server.py file and wrong references.
To post a comment you must log in.
Unmerged revisions
- 3355. By Bogdan Stanciu
-
[FIX] repaired broken setup due to wrong references in various files.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'MANIFEST.in' | |||
2 | --- MANIFEST.in 2010-10-18 21:59:29 +0000 | |||
3 | +++ MANIFEST.in 2011-02-09 22:36:08 +0000 | |||
4 | @@ -3,15 +3,15 @@ | |||
5 | 3 | include MANIFEST.in | 3 | include MANIFEST.in |
6 | 4 | include setup.nsi | 4 | include setup.nsi |
7 | 5 | include setup.cfg | 5 | include setup.cfg |
12 | 6 | include bin/import_xml.rng | 6 | include openerp/import_xml.rng |
13 | 7 | include bin/server.cert | 7 | #include openerp/server.cert |
14 | 8 | include bin/server.pkey | 8 | #include openerp/server.pkey |
15 | 9 | include bin/gpl.txt | 9 | #include openerp/gpl.txt |
16 | 10 | include man/openerp-server.1 | 10 | include man/openerp-server.1 |
17 | 11 | include man/openerp_serverrc.5 | 11 | include man/openerp_serverrc.5 |
18 | 12 | recursive-include pixmaps * | 12 | recursive-include pixmaps * |
19 | 13 | recursive-include win32 * | 13 | recursive-include win32 * |
20 | 14 | recursive-include doc * | 14 | recursive-include doc * |
23 | 15 | recursive-include bin *xml *xsl *sql *rml *sxw *csv *rng | 15 | recursive-include openerp *xml *xsl *sql *rml *sxw *csv *rng |
24 | 16 | graft bin/addons | 16 | graft openerp/addons |
25 | 17 | global-exclude *pyc *~ | 17 | global-exclude *pyc *~ |
26 | 18 | 18 | ||
27 | === removed file 'openerp-server.py' | |||
28 | --- openerp-server.py 2011-02-08 09:29:23 +0000 | |||
29 | +++ openerp-server.py 1970-01-01 00:00:00 +0000 | |||
30 | @@ -1,258 +0,0 @@ | |||
31 | 1 | #!/usr/bin/env python | ||
32 | 2 | # -*- coding: utf-8 -*- | ||
33 | 3 | ############################################################################## | ||
34 | 4 | # | ||
35 | 5 | # OpenERP, Open Source Management Solution | ||
36 | 6 | # Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). | ||
37 | 7 | # | ||
38 | 8 | # This program is free software: you can redistribute it and/or modify | ||
39 | 9 | # it under the terms of the GNU Affero General Public License as | ||
40 | 10 | # published by the Free Software Foundation, either version 3 of the | ||
41 | 11 | # License, or (at your option) any later version. | ||
42 | 12 | # | ||
43 | 13 | # This program is distributed in the hope that it will be useful, | ||
44 | 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
45 | 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
46 | 16 | # GNU Affero General Public License for more details. | ||
47 | 17 | # | ||
48 | 18 | # You should have received a copy of the GNU Affero General Public License | ||
49 | 19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
50 | 20 | # | ||
51 | 21 | ############################################################################## | ||
52 | 22 | |||
53 | 23 | """ | ||
54 | 24 | OpenERP - Server | ||
55 | 25 | OpenERP is an ERP+CRM program for small and medium businesses. | ||
56 | 26 | |||
57 | 27 | The whole source code is distributed under the terms of the | ||
58 | 28 | GNU Public Licence. | ||
59 | 29 | |||
60 | 30 | (c) 2003-TODAY, Fabien Pinckaers - OpenERP s.a. | ||
61 | 31 | """ | ||
62 | 32 | |||
63 | 33 | #---------------------------------------------------------- | ||
64 | 34 | # python imports | ||
65 | 35 | #---------------------------------------------------------- | ||
66 | 36 | import logging | ||
67 | 37 | import os | ||
68 | 38 | import signal | ||
69 | 39 | import sys | ||
70 | 40 | import threading | ||
71 | 41 | import traceback | ||
72 | 42 | |||
73 | 43 | import openerp.release as release | ||
74 | 44 | __author__ = release.author | ||
75 | 45 | __version__ = release.version | ||
76 | 46 | |||
77 | 47 | if os.name == 'posix': | ||
78 | 48 | import pwd | ||
79 | 49 | # We DON't log this using the standard logger, because we might mess | ||
80 | 50 | # with the logfile's permissions. Just do a quick exit here. | ||
81 | 51 | if pwd.getpwuid(os.getuid())[0] == 'root' : | ||
82 | 52 | sys.stderr.write("Attempted to run OpenERP server as root. This is not good, aborting.\n") | ||
83 | 53 | sys.exit(1) | ||
84 | 54 | |||
85 | 55 | #----------------------------------------------------------------------- | ||
86 | 56 | # import the tools module so that the commandline parameters are parsed | ||
87 | 57 | #----------------------------------------------------------------------- | ||
88 | 58 | import openerp.tools as tools | ||
89 | 59 | tools.config.parse_config(sys.argv[1:]) | ||
90 | 60 | |||
91 | 61 | #---------------------------------------------------------- | ||
92 | 62 | # get logger | ||
93 | 63 | #---------------------------------------------------------- | ||
94 | 64 | import openerp.netsvc as netsvc | ||
95 | 65 | netsvc.init_logger() | ||
96 | 66 | logger = logging.getLogger('server') | ||
97 | 67 | |||
98 | 68 | logger.info("OpenERP version - %s", release.version) | ||
99 | 69 | for name, value in [('addons_path', tools.config['addons_path']), | ||
100 | 70 | ('database hostname', tools.config['db_host'] or 'localhost'), | ||
101 | 71 | ('database port', tools.config['db_port'] or '5432'), | ||
102 | 72 | ('database user', tools.config['db_user'])]: | ||
103 | 73 | logger.info("%s - %s", name, value) | ||
104 | 74 | |||
105 | 75 | # Don't allow if the connection to PostgreSQL done by postgres user | ||
106 | 76 | if tools.config['db_user'] == 'postgres': | ||
107 | 77 | logger.error("Connecting to the database as 'postgres' user is forbidden, as it present major security issues. Shutting down.") | ||
108 | 78 | sys.exit(1) | ||
109 | 79 | |||
110 | 80 | import time | ||
111 | 81 | |||
112 | 82 | #---------------------------------------------------------- | ||
113 | 83 | # init net service | ||
114 | 84 | #---------------------------------------------------------- | ||
115 | 85 | logger.info('initialising distributed objects services') | ||
116 | 86 | |||
117 | 87 | #--------------------------------------------------------------- | ||
118 | 88 | # connect to the database and initialize it with base if needed | ||
119 | 89 | #--------------------------------------------------------------- | ||
120 | 90 | import openerp.pooler as pooler | ||
121 | 91 | |||
122 | 92 | #---------------------------------------------------------- | ||
123 | 93 | # import basic modules | ||
124 | 94 | #---------------------------------------------------------- | ||
125 | 95 | import openerp.osv as osv | ||
126 | 96 | import openerp.workflow as workflow | ||
127 | 97 | import openerp.report as report | ||
128 | 98 | import openerp.service as service | ||
129 | 99 | |||
130 | 100 | #---------------------------------------------------------- | ||
131 | 101 | # import addons | ||
132 | 102 | #---------------------------------------------------------- | ||
133 | 103 | |||
134 | 104 | import openerp.addons as addons | ||
135 | 105 | |||
136 | 106 | #---------------------------------------------------------- | ||
137 | 107 | # Load and update databases if requested | ||
138 | 108 | #---------------------------------------------------------- | ||
139 | 109 | |||
140 | 110 | import openerp.service.http_server as service_http_server | ||
141 | 111 | |||
142 | 112 | if not ( tools.config["stop_after_init"] or \ | ||
143 | 113 | tools.config["translate_in"] or \ | ||
144 | 114 | tools.config["translate_out"] ): | ||
145 | 115 | service_http_server.init_servers() | ||
146 | 116 | service_http_server.init_xmlrpc() | ||
147 | 117 | service_http_server.init_static_http() | ||
148 | 118 | |||
149 | 119 | import openerp.service.netrpc_server as service_netrpc_server | ||
150 | 120 | service_netrpc_server.init_servers() | ||
151 | 121 | |||
152 | 122 | if tools.config['db_name']: | ||
153 | 123 | for dbname in tools.config['db_name'].split(','): | ||
154 | 124 | db,pool = pooler.get_db_and_pool(dbname, update_module=tools.config['init'] or tools.config['update'], pooljobs=False) | ||
155 | 125 | cr = db.cursor() | ||
156 | 126 | |||
157 | 127 | if tools.config["test_file"]: | ||
158 | 128 | logger.info('loading test file %s', tools.config["test_file"]) | ||
159 | 129 | tools.convert_yaml_import(cr, 'base', file(tools.config["test_file"]), {}, 'test', True) | ||
160 | 130 | cr.rollback() | ||
161 | 131 | |||
162 | 132 | pool.get('ir.cron')._poolJobs(db.dbname) | ||
163 | 133 | |||
164 | 134 | cr.close() | ||
165 | 135 | |||
166 | 136 | #---------------------------------------------------------- | ||
167 | 137 | # translation stuff | ||
168 | 138 | #---------------------------------------------------------- | ||
169 | 139 | if tools.config["translate_out"]: | ||
170 | 140 | import csv | ||
171 | 141 | |||
172 | 142 | if tools.config["language"]: | ||
173 | 143 | msg = "language %s" % (tools.config["language"],) | ||
174 | 144 | else: | ||
175 | 145 | msg = "new language" | ||
176 | 146 | logger.info('writing translation file for %s to %s', msg, tools.config["translate_out"]) | ||
177 | 147 | |||
178 | 148 | fileformat = os.path.splitext(tools.config["translate_out"])[-1][1:].lower() | ||
179 | 149 | buf = file(tools.config["translate_out"], "w") | ||
180 | 150 | dbname = tools.config['db_name'] | ||
181 | 151 | cr = pooler.get_db(dbname).cursor() | ||
182 | 152 | tools.trans_export(tools.config["language"], tools.config["translate_modules"] or ["all"], buf, fileformat, cr) | ||
183 | 153 | cr.close() | ||
184 | 154 | buf.close() | ||
185 | 155 | |||
186 | 156 | logger.info('translation file written successfully') | ||
187 | 157 | sys.exit(0) | ||
188 | 158 | |||
189 | 159 | if tools.config["translate_in"]: | ||
190 | 160 | context = {'overwrite': tools.config["overwrite_existing_translations"]} | ||
191 | 161 | dbname = tools.config['db_name'] | ||
192 | 162 | cr = pooler.get_db(dbname).cursor() | ||
193 | 163 | tools.trans_load(cr, | ||
194 | 164 | tools.config["translate_in"], | ||
195 | 165 | tools.config["language"], | ||
196 | 166 | context=context) | ||
197 | 167 | tools.trans_update_res_ids(cr) | ||
198 | 168 | cr.commit() | ||
199 | 169 | cr.close() | ||
200 | 170 | sys.exit(0) | ||
201 | 171 | |||
202 | 172 | #---------------------------------------------------------------------------------- | ||
203 | 173 | # if we don't want the server to continue to run after initialization, we quit here | ||
204 | 174 | #---------------------------------------------------------------------------------- | ||
205 | 175 | if tools.config["stop_after_init"]: | ||
206 | 176 | sys.exit(0) | ||
207 | 177 | |||
208 | 178 | |||
209 | 179 | #---------------------------------------------------------- | ||
210 | 180 | # Launch Servers | ||
211 | 181 | #---------------------------------------------------------- | ||
212 | 182 | |||
213 | 183 | LST_SIGNALS = ['SIGINT', 'SIGTERM'] | ||
214 | 184 | |||
215 | 185 | SIGNALS = dict( | ||
216 | 186 | [(getattr(signal, sign), sign) for sign in LST_SIGNALS] | ||
217 | 187 | ) | ||
218 | 188 | |||
219 | 189 | netsvc.quit_signals_received = 0 | ||
220 | 190 | |||
221 | 191 | def handler(signum, frame): | ||
222 | 192 | """ | ||
223 | 193 | :param signum: the signal number | ||
224 | 194 | :param frame: the interrupted stack frame or None | ||
225 | 195 | """ | ||
226 | 196 | netsvc.quit_signals_received += 1 | ||
227 | 197 | if netsvc.quit_signals_received > 1: | ||
228 | 198 | sys.stderr.write("Forced shutdown.\n") | ||
229 | 199 | os._exit(0) | ||
230 | 200 | |||
231 | 201 | def dumpstacks(signum, frame): | ||
232 | 202 | # code from http://stackoverflow.com/questions/132058/getting-stack-trace-from-a-running-python-application#answer-2569696 | ||
233 | 203 | # modified for python 2.5 compatibility | ||
234 | 204 | thread_map = dict(threading._active, **threading._limbo) | ||
235 | 205 | id2name = dict([(threadId, thread.getName()) for threadId, thread in thread_map.items()]) | ||
236 | 206 | code = [] | ||
237 | 207 | for threadId, stack in sys._current_frames().items(): | ||
238 | 208 | code.append("\n# Thread: %s(%d)" % (id2name[threadId], threadId)) | ||
239 | 209 | for filename, lineno, name, line in traceback.extract_stack(stack): | ||
240 | 210 | code.append('File: "%s", line %d, in %s' % (filename, lineno, name)) | ||
241 | 211 | if line: | ||
242 | 212 | code.append(" %s" % (line.strip())) | ||
243 | 213 | logging.getLogger('dumpstacks').info("\n".join(code)) | ||
244 | 214 | |||
245 | 215 | for signum in SIGNALS: | ||
246 | 216 | signal.signal(signum, handler) | ||
247 | 217 | |||
248 | 218 | if os.name == 'posix': | ||
249 | 219 | signal.signal(signal.SIGQUIT, dumpstacks) | ||
250 | 220 | |||
251 | 221 | def quit(): | ||
252 | 222 | netsvc.Agent.quit() | ||
253 | 223 | netsvc.Server.quitAll() | ||
254 | 224 | if tools.config['pidfile']: | ||
255 | 225 | os.unlink(tools.config['pidfile']) | ||
256 | 226 | logger = logging.getLogger('shutdown') | ||
257 | 227 | logger.info("Initiating OpenERP Server shutdown") | ||
258 | 228 | logger.info("Hit CTRL-C again or send a second signal to immediately terminate the server...") | ||
259 | 229 | logging.shutdown() | ||
260 | 230 | |||
261 | 231 | # manually join() all threads before calling sys.exit() to allow a second signal | ||
262 | 232 | # to trigger _force_quit() in case some non-daemon threads won't exit cleanly. | ||
263 | 233 | # threading.Thread.join() should not mask signals (at least in python 2.5) | ||
264 | 234 | for thread in threading.enumerate(): | ||
265 | 235 | if thread != threading.currentThread() and not thread.isDaemon(): | ||
266 | 236 | while thread.isAlive(): | ||
267 | 237 | # need a busyloop here as thread.join() masks signals | ||
268 | 238 | # and would present the forced shutdown | ||
269 | 239 | thread.join(0.05) | ||
270 | 240 | time.sleep(0.05) | ||
271 | 241 | sys.exit(0) | ||
272 | 242 | |||
273 | 243 | if tools.config['pidfile']: | ||
274 | 244 | fd = open(tools.config['pidfile'], 'w') | ||
275 | 245 | pidtext = "%d" % (os.getpid()) | ||
276 | 246 | fd.write(pidtext) | ||
277 | 247 | fd.close() | ||
278 | 248 | |||
279 | 249 | netsvc.Server.startAll() | ||
280 | 250 | |||
281 | 251 | logger.info('OpenERP server is running, waiting for connections...') | ||
282 | 252 | |||
283 | 253 | while netsvc.quit_signals_received == 0: | ||
284 | 254 | time.sleep(60) | ||
285 | 255 | |||
286 | 256 | quit() | ||
287 | 257 | |||
288 | 258 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||
289 | 259 | 0 | ||
290 | === modified file 'openerp/addons/__init__.py' | |||
291 | --- openerp/addons/__init__.py 2011-02-08 13:27:19 +0000 | |||
292 | +++ openerp/addons/__init__.py 2011-02-09 22:36:08 +0000 | |||
293 | @@ -25,17 +25,17 @@ | |||
294 | 25 | import itertools | 25 | import itertools |
295 | 26 | import zipimport | 26 | import zipimport |
296 | 27 | 27 | ||
303 | 28 | import openerp.osv as osv | 28 | import osv |
304 | 29 | import openerp.tools as tools | 29 | import tools |
305 | 30 | import openerp.tools.osutil as osutil | 30 | import tools.osutil as osutil |
306 | 31 | from openerp.tools.safe_eval import safe_eval as eval | 31 | from tools.safe_eval import safe_eval as eval |
307 | 32 | import openerp.pooler as pooler | 32 | import pooler |
308 | 33 | from openerp.tools.translate import _ | 33 | from tools.translate import _ |
309 | 34 | 34 | ||
311 | 35 | import openerp.netsvc as netsvc | 35 | import netsvc |
312 | 36 | 36 | ||
313 | 37 | import zipfile | 37 | import zipfile |
315 | 38 | import openerp.release as release | 38 | import release |
316 | 39 | 39 | ||
317 | 40 | import re | 40 | import re |
318 | 41 | import base64 | 41 | import base64 |
319 | @@ -569,7 +569,7 @@ | |||
320 | 569 | a.update(b) | 569 | a.update(b) |
321 | 570 | return a | 570 | return a |
322 | 571 | 571 | ||
324 | 572 | from openerp.tools.parse_version import parse_version | 572 | from tools.parse_version import parse_version |
325 | 573 | 573 | ||
326 | 574 | parsed_installed_version = parse_version(pkg.installed_version or '') | 574 | parsed_installed_version = parse_version(pkg.installed_version or '') |
327 | 575 | current_version = parse_version(convert_version(pkg.data.get('version', '0'))) | 575 | current_version = parse_version(convert_version(pkg.data.get('version', '0'))) |
328 | 576 | 576 | ||
329 | === modified file 'openerp/ir/ir.py' | |||
330 | --- openerp/ir/ir.py 2011-02-07 12:57:23 +0000 | |||
331 | +++ openerp/ir/ir.py 2011-02-09 22:36:08 +0000 | |||
332 | @@ -20,8 +20,8 @@ | |||
333 | 20 | ############################################################################## | 20 | ############################################################################## |
334 | 21 | 21 | ||
335 | 22 | import pickle | 22 | import pickle |
338 | 23 | import openerp.osv as osv | 23 | import osv |
339 | 24 | import openerp.pooler as pooler | 24 | import pooler |
340 | 25 | 25 | ||
341 | 26 | def ir_set(cr, uid, key, key2, name, models, value, replace=True, isobject=False, meta=None): | 26 | def ir_set(cr, uid, key, key2, name, models, value, replace=True, isobject=False, meta=None): |
342 | 27 | obj = pooler.get_pool(cr.dbname).get('ir.values') | 27 | obj = pooler.get_pool(cr.dbname).get('ir.values') |
343 | 28 | 28 | ||
344 | === added file 'openerp/openerp-server.py' | |||
345 | --- openerp/openerp-server.py 1970-01-01 00:00:00 +0000 | |||
346 | +++ openerp/openerp-server.py 2011-02-09 22:36:08 +0000 | |||
347 | @@ -0,0 +1,258 @@ | |||
348 | 1 | #!/usr/bin/env python | ||
349 | 2 | # -*- coding: utf-8 -*- | ||
350 | 3 | ############################################################################## | ||
351 | 4 | # | ||
352 | 5 | # OpenERP, Open Source Management Solution | ||
353 | 6 | # Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). | ||
354 | 7 | # | ||
355 | 8 | # This program is free software: you can redistribute it and/or modify | ||
356 | 9 | # it under the terms of the GNU Affero General Public License as | ||
357 | 10 | # published by the Free Software Foundation, either version 3 of the | ||
358 | 11 | # License, or (at your option) any later version. | ||
359 | 12 | # | ||
360 | 13 | # This program is distributed in the hope that it will be useful, | ||
361 | 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
362 | 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
363 | 16 | # GNU Affero General Public License for more details. | ||
364 | 17 | # | ||
365 | 18 | # You should have received a copy of the GNU Affero General Public License | ||
366 | 19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
367 | 20 | # | ||
368 | 21 | ############################################################################## | ||
369 | 22 | |||
370 | 23 | """ | ||
371 | 24 | OpenERP - Server | ||
372 | 25 | OpenERP is an ERP+CRM program for small and medium businesses. | ||
373 | 26 | |||
374 | 27 | The whole source code is distributed under the terms of the | ||
375 | 28 | GNU Public Licence. | ||
376 | 29 | |||
377 | 30 | (c) 2003-TODAY, Fabien Pinckaers - OpenERP s.a. | ||
378 | 31 | """ | ||
379 | 32 | |||
380 | 33 | #---------------------------------------------------------- | ||
381 | 34 | # python imports | ||
382 | 35 | #---------------------------------------------------------- | ||
383 | 36 | import logging | ||
384 | 37 | import os | ||
385 | 38 | import signal | ||
386 | 39 | import sys | ||
387 | 40 | import threading | ||
388 | 41 | import traceback | ||
389 | 42 | |||
390 | 43 | import release | ||
391 | 44 | __author__ = release.author | ||
392 | 45 | __version__ = release.version | ||
393 | 46 | |||
394 | 47 | if os.name == 'posix': | ||
395 | 48 | import pwd | ||
396 | 49 | # We DON't log this using the standard logger, because we might mess | ||
397 | 50 | # with the logfile's permissions. Just do a quick exit here. | ||
398 | 51 | if pwd.getpwuid(os.getuid())[0] == 'root' : | ||
399 | 52 | sys.stderr.write("Attempted to run OpenERP server as root. This is not good, aborting.\n") | ||
400 | 53 | sys.exit(1) | ||
401 | 54 | |||
402 | 55 | #----------------------------------------------------------------------- | ||
403 | 56 | # import the tools module so that the commandline parameters are parsed | ||
404 | 57 | #----------------------------------------------------------------------- | ||
405 | 58 | import tools | ||
406 | 59 | tools.config.parse_config(sys.argv[1:]) | ||
407 | 60 | |||
408 | 61 | #---------------------------------------------------------- | ||
409 | 62 | # get logger | ||
410 | 63 | #---------------------------------------------------------- | ||
411 | 64 | import netsvc | ||
412 | 65 | netsvc.init_logger() | ||
413 | 66 | logger = logging.getLogger('server') | ||
414 | 67 | |||
415 | 68 | logger.info("OpenERP version - %s", release.version) | ||
416 | 69 | for name, value in [('addons_path', tools.config['addons_path']), | ||
417 | 70 | ('database hostname', tools.config['db_host'] or 'localhost'), | ||
418 | 71 | ('database port', tools.config['db_port'] or '5432'), | ||
419 | 72 | ('database user', tools.config['db_user'])]: | ||
420 | 73 | logger.info("%s - %s", name, value) | ||
421 | 74 | |||
422 | 75 | # Don't allow if the connection to PostgreSQL done by postgres user | ||
423 | 76 | if tools.config['db_user'] == 'postgres': | ||
424 | 77 | logger.error("Connecting to the database as 'postgres' user is forbidden, as it present major security issues. Shutting down.") | ||
425 | 78 | sys.exit(1) | ||
426 | 79 | |||
427 | 80 | import time | ||
428 | 81 | |||
429 | 82 | #---------------------------------------------------------- | ||
430 | 83 | # init net service | ||
431 | 84 | #---------------------------------------------------------- | ||
432 | 85 | logger.info('initialising distributed objects services') | ||
433 | 86 | |||
434 | 87 | #--------------------------------------------------------------- | ||
435 | 88 | # connect to the database and initialize it with base if needed | ||
436 | 89 | #--------------------------------------------------------------- | ||
437 | 90 | import pooler | ||
438 | 91 | |||
439 | 92 | #---------------------------------------------------------- | ||
440 | 93 | # import basic modules | ||
441 | 94 | #---------------------------------------------------------- | ||
442 | 95 | import osv | ||
443 | 96 | import workflow | ||
444 | 97 | import report | ||
445 | 98 | import service | ||
446 | 99 | |||
447 | 100 | #---------------------------------------------------------- | ||
448 | 101 | # import addons | ||
449 | 102 | #---------------------------------------------------------- | ||
450 | 103 | |||
451 | 104 | import addons | ||
452 | 105 | |||
453 | 106 | #---------------------------------------------------------- | ||
454 | 107 | # Load and update databases if requested | ||
455 | 108 | #---------------------------------------------------------- | ||
456 | 109 | |||
457 | 110 | import service.http_server as service_http_server | ||
458 | 111 | |||
459 | 112 | if not ( tools.config["stop_after_init"] or \ | ||
460 | 113 | tools.config["translate_in"] or \ | ||
461 | 114 | tools.config["translate_out"] ): | ||
462 | 115 | service_http_server.init_servers() | ||
463 | 116 | service_http_server.init_xmlrpc() | ||
464 | 117 | service_http_server.init_static_http() | ||
465 | 118 | |||
466 | 119 | import service.netrpc_server as service_netrpc_server | ||
467 | 120 | service_netrpc_server.init_servers() | ||
468 | 121 | |||
469 | 122 | if tools.config['db_name']: | ||
470 | 123 | for dbname in tools.config['db_name'].split(','): | ||
471 | 124 | db,pool = pooler.get_db_and_pool(dbname, update_module=tools.config['init'] or tools.config['update'], pooljobs=False) | ||
472 | 125 | cr = db.cursor() | ||
473 | 126 | |||
474 | 127 | if tools.config["test_file"]: | ||
475 | 128 | logger.info('loading test file %s', tools.config["test_file"]) | ||
476 | 129 | tools.convert_yaml_import(cr, 'base', file(tools.config["test_file"]), {}, 'test', True) | ||
477 | 130 | cr.rollback() | ||
478 | 131 | |||
479 | 132 | pool.get('ir.cron')._poolJobs(db.dbname) | ||
480 | 133 | |||
481 | 134 | cr.close() | ||
482 | 135 | |||
483 | 136 | #---------------------------------------------------------- | ||
484 | 137 | # translation stuff | ||
485 | 138 | #---------------------------------------------------------- | ||
486 | 139 | if tools.config["translate_out"]: | ||
487 | 140 | import csv | ||
488 | 141 | |||
489 | 142 | if tools.config["language"]: | ||
490 | 143 | msg = "language %s" % (tools.config["language"],) | ||
491 | 144 | else: | ||
492 | 145 | msg = "new language" | ||
493 | 146 | logger.info('writing translation file for %s to %s', msg, tools.config["translate_out"]) | ||
494 | 147 | |||
495 | 148 | fileformat = os.path.splitext(tools.config["translate_out"])[-1][1:].lower() | ||
496 | 149 | buf = file(tools.config["translate_out"], "w") | ||
497 | 150 | dbname = tools.config['db_name'] | ||
498 | 151 | cr = pooler.get_db(dbname).cursor() | ||
499 | 152 | tools.trans_export(tools.config["language"], tools.config["translate_modules"] or ["all"], buf, fileformat, cr) | ||
500 | 153 | cr.close() | ||
501 | 154 | buf.close() | ||
502 | 155 | |||
503 | 156 | logger.info('translation file written successfully') | ||
504 | 157 | sys.exit(0) | ||
505 | 158 | |||
506 | 159 | if tools.config["translate_in"]: | ||
507 | 160 | context = {'overwrite': tools.config["overwrite_existing_translations"]} | ||
508 | 161 | dbname = tools.config['db_name'] | ||
509 | 162 | cr = pooler.get_db(dbname).cursor() | ||
510 | 163 | tools.trans_load(cr, | ||
511 | 164 | tools.config["translate_in"], | ||
512 | 165 | tools.config["language"], | ||
513 | 166 | context=context) | ||
514 | 167 | tools.trans_update_res_ids(cr) | ||
515 | 168 | cr.commit() | ||
516 | 169 | cr.close() | ||
517 | 170 | sys.exit(0) | ||
518 | 171 | |||
519 | 172 | #---------------------------------------------------------------------------------- | ||
520 | 173 | # if we don't want the server to continue to run after initialization, we quit here | ||
521 | 174 | #---------------------------------------------------------------------------------- | ||
522 | 175 | if tools.config["stop_after_init"]: | ||
523 | 176 | sys.exit(0) | ||
524 | 177 | |||
525 | 178 | |||
526 | 179 | #---------------------------------------------------------- | ||
527 | 180 | # Launch Servers | ||
528 | 181 | #---------------------------------------------------------- | ||
529 | 182 | |||
530 | 183 | LST_SIGNALS = ['SIGINT', 'SIGTERM'] | ||
531 | 184 | |||
532 | 185 | SIGNALS = dict( | ||
533 | 186 | [(getattr(signal, sign), sign) for sign in LST_SIGNALS] | ||
534 | 187 | ) | ||
535 | 188 | |||
536 | 189 | netsvc.quit_signals_received = 0 | ||
537 | 190 | |||
538 | 191 | def handler(signum, frame): | ||
539 | 192 | """ | ||
540 | 193 | :param signum: the signal number | ||
541 | 194 | :param frame: the interrupted stack frame or None | ||
542 | 195 | """ | ||
543 | 196 | netsvc.quit_signals_received += 1 | ||
544 | 197 | if netsvc.quit_signals_received > 1: | ||
545 | 198 | sys.stderr.write("Forced shutdown.\n") | ||
546 | 199 | os._exit(0) | ||
547 | 200 | |||
548 | 201 | def dumpstacks(signum, frame): | ||
549 | 202 | # code from http://stackoverflow.com/questions/132058/getting-stack-trace-from-a-running-python-application#answer-2569696 | ||
550 | 203 | # modified for python 2.5 compatibility | ||
551 | 204 | thread_map = dict(threading._active, **threading._limbo) | ||
552 | 205 | id2name = dict([(threadId, thread.getName()) for threadId, thread in thread_map.items()]) | ||
553 | 206 | code = [] | ||
554 | 207 | for threadId, stack in sys._current_frames().items(): | ||
555 | 208 | code.append("\n# Thread: %s(%d)" % (id2name[threadId], threadId)) | ||
556 | 209 | for filename, lineno, name, line in traceback.extract_stack(stack): | ||
557 | 210 | code.append('File: "%s", line %d, in %s' % (filename, lineno, name)) | ||
558 | 211 | if line: | ||
559 | 212 | code.append(" %s" % (line.strip())) | ||
560 | 213 | logging.getLogger('dumpstacks').info("\n".join(code)) | ||
561 | 214 | |||
562 | 215 | for signum in SIGNALS: | ||
563 | 216 | signal.signal(signum, handler) | ||
564 | 217 | |||
565 | 218 | if os.name == 'posix': | ||
566 | 219 | signal.signal(signal.SIGQUIT, dumpstacks) | ||
567 | 220 | |||
568 | 221 | def quit(): | ||
569 | 222 | netsvc.Agent.quit() | ||
570 | 223 | netsvc.Server.quitAll() | ||
571 | 224 | if tools.config['pidfile']: | ||
572 | 225 | os.unlink(tools.config['pidfile']) | ||
573 | 226 | logger = logging.getLogger('shutdown') | ||
574 | 227 | logger.info("Initiating OpenERP Server shutdown") | ||
575 | 228 | logger.info("Hit CTRL-C again or send a second signal to immediately terminate the server...") | ||
576 | 229 | logging.shutdown() | ||
577 | 230 | |||
578 | 231 | # manually join() all threads before calling sys.exit() to allow a second signal | ||
579 | 232 | # to trigger _force_quit() in case some non-daemon threads won't exit cleanly. | ||
580 | 233 | # threading.Thread.join() should not mask signals (at least in python 2.5) | ||
581 | 234 | for thread in threading.enumerate(): | ||
582 | 235 | if thread != threading.currentThread() and not thread.isDaemon(): | ||
583 | 236 | while thread.isAlive(): | ||
584 | 237 | # need a busyloop here as thread.join() masks signals | ||
585 | 238 | # and would present the forced shutdown | ||
586 | 239 | thread.join(0.05) | ||
587 | 240 | time.sleep(0.05) | ||
588 | 241 | sys.exit(0) | ||
589 | 242 | |||
590 | 243 | if tools.config['pidfile']: | ||
591 | 244 | fd = open(tools.config['pidfile'], 'w') | ||
592 | 245 | pidtext = "%d" % (os.getpid()) | ||
593 | 246 | fd.write(pidtext) | ||
594 | 247 | fd.close() | ||
595 | 248 | |||
596 | 249 | netsvc.Server.startAll() | ||
597 | 250 | |||
598 | 251 | logger.info('OpenERP server is running, waiting for connections...') | ||
599 | 252 | |||
600 | 253 | while netsvc.quit_signals_received == 0: | ||
601 | 254 | time.sleep(60) | ||
602 | 255 | |||
603 | 256 | quit() | ||
604 | 257 | |||
605 | 258 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||
606 | 0 | 259 | ||
607 | === modified file 'openerp/osv/expression.py' | |||
608 | --- openerp/osv/expression.py 2011-02-07 12:57:23 +0000 | |||
609 | +++ openerp/osv/expression.py 2011-02-09 22:36:08 +0000 | |||
610 | @@ -20,7 +20,7 @@ | |||
611 | 20 | # | 20 | # |
612 | 21 | ############################################################################## | 21 | ############################################################################## |
613 | 22 | 22 | ||
615 | 23 | from openerp.tools import flatten, reverse_enumerate | 23 | from tools import flatten, reverse_enumerate |
616 | 24 | import fields | 24 | import fields |
617 | 25 | 25 | ||
618 | 26 | 26 | ||
619 | 27 | 27 | ||
620 | === modified file 'openerp/osv/fields.py' | |||
621 | --- openerp/osv/fields.py 2011-02-07 12:57:23 +0000 | |||
622 | +++ openerp/osv/fields.py 2011-02-09 22:36:08 +0000 | |||
623 | @@ -38,9 +38,9 @@ | |||
624 | 38 | import xmlrpclib | 38 | import xmlrpclib |
625 | 39 | from psycopg2 import Binary | 39 | from psycopg2 import Binary |
626 | 40 | 40 | ||
630 | 41 | import openerp.netsvc as netsvc | 41 | import netsvc |
631 | 42 | import openerp.tools as tools | 42 | import tools |
632 | 43 | from openerp.tools.translate import _ | 43 | from tools.translate import _ |
633 | 44 | 44 | ||
634 | 45 | def _symbol_set(symb): | 45 | def _symbol_set(symb): |
635 | 46 | if symb == None or symb == False: | 46 | if symb == None or symb == False: |
636 | 47 | 47 | ||
637 | === modified file 'openerp/osv/orm.py' | |||
638 | --- openerp/osv/orm.py 2011-02-08 16:49:23 +0000 | |||
639 | +++ openerp/osv/orm.py 2011-02-09 22:36:08 +0000 | |||
640 | @@ -49,18 +49,18 @@ | |||
641 | 49 | import traceback | 49 | import traceback |
642 | 50 | import types | 50 | import types |
643 | 51 | 51 | ||
645 | 52 | import openerp.netsvc as netsvc | 52 | import netsvc |
646 | 53 | from lxml import etree | 53 | from lxml import etree |
649 | 54 | from openerp.tools.config import config | 54 | from tools.config import config |
650 | 55 | from openerp.tools.translate import _ | 55 | from tools.translate import _ |
651 | 56 | 56 | ||
652 | 57 | import fields | 57 | import fields |
653 | 58 | from query import Query | 58 | from query import Query |
656 | 59 | import openerp.tools as tools | 59 | import tools |
657 | 60 | from openerp.tools.safe_eval import safe_eval as eval | 60 | from tools.safe_eval import safe_eval as eval |
658 | 61 | 61 | ||
659 | 62 | # List of etree._Element subclasses that we choose to ignore when parsing XML. | 62 | # List of etree._Element subclasses that we choose to ignore when parsing XML. |
661 | 63 | from openerp.tools import SKIPPED_ELEMENT_TYPES | 63 | from tools import SKIPPED_ELEMENT_TYPES |
662 | 64 | 64 | ||
663 | 65 | regex_order = re.compile('^(([a-z0-9_]+|"[a-z0-9_]+")( *desc| *asc)?( *, *|))+$', re.I) | 65 | regex_order = re.compile('^(([a-z0-9_]+|"[a-z0-9_]+")( *desc| *asc)?( *, *|))+$', re.I) |
664 | 66 | 66 | ||
665 | 67 | 67 | ||
666 | === modified file 'openerp/osv/osv.py' | |||
667 | --- openerp/osv/osv.py 2011-02-07 12:57:23 +0000 | |||
668 | +++ openerp/osv/osv.py 2011-02-09 22:36:08 +0000 | |||
669 | @@ -24,13 +24,13 @@ | |||
670 | 24 | # | 24 | # |
671 | 25 | 25 | ||
672 | 26 | import orm | 26 | import orm |
675 | 27 | import openerp.netsvc as netsvc | 27 | import netsvc |
676 | 28 | import openerp.pooler as pooler | 28 | import pooler |
677 | 29 | import copy | 29 | import copy |
678 | 30 | import logging | 30 | import logging |
679 | 31 | from psycopg2 import IntegrityError, errorcodes | 31 | from psycopg2 import IntegrityError, errorcodes |
682 | 32 | from openerp.tools.func import wraps | 32 | from tools.func import wraps |
683 | 33 | from openerp.tools.translate import translate | 33 | from tools.translate import translate |
684 | 34 | 34 | ||
685 | 35 | module_list = [] | 35 | module_list = [] |
686 | 36 | module_class_list = {} | 36 | module_class_list = {} |
687 | 37 | 37 | ||
688 | === modified file 'openerp/pooler.py' | |||
689 | --- openerp/pooler.py 2011-02-07 12:57:23 +0000 | |||
690 | +++ openerp/pooler.py 2011-02-09 22:36:08 +0000 | |||
691 | @@ -30,8 +30,8 @@ | |||
692 | 30 | if db_name in pool_dic: | 30 | if db_name in pool_dic: |
693 | 31 | pool = pool_dic[db_name] | 31 | pool = pool_dic[db_name] |
694 | 32 | else: | 32 | else: |
697 | 33 | import openerp.addons as addons | 33 | import addons |
698 | 34 | import openerp.osv.osv as osv_osv | 34 | import osv.osv as osv_osv |
699 | 35 | pool = osv_osv.osv_pool() | 35 | pool = osv_osv.osv_pool() |
700 | 36 | pool_dic[db_name] = pool | 36 | pool_dic[db_name] = pool |
701 | 37 | 37 | ||
702 | @@ -65,8 +65,8 @@ | |||
703 | 65 | # do not put this import outside this function | 65 | # do not put this import outside this function |
704 | 66 | # sql_db must not be loaded before the logger is initialized. | 66 | # sql_db must not be loaded before the logger is initialized. |
705 | 67 | # sql_db import psycopg2.tool which create a default logger if there is not. | 67 | # sql_db import psycopg2.tool which create a default logger if there is not. |
708 | 68 | # this resulting of having the logs outputed twice... | 68 | # this resulting of having the logs output twice... |
709 | 69 | import openerp.sql_db as sql_db | 69 | import sql_db |
710 | 70 | db = sql_db.db_connect(db_name) | 70 | db = sql_db.db_connect(db_name) |
711 | 71 | return db | 71 | return db |
712 | 72 | 72 | ||
713 | 73 | 73 | ||
714 | === modified file 'openerp/report/__init__.py' | |||
715 | --- openerp/report/__init__.py 2011-02-07 12:57:23 +0000 | |||
716 | +++ openerp/report/__init__.py 2011-02-09 22:36:08 +0000 | |||
717 | @@ -24,7 +24,7 @@ | |||
718 | 24 | import print_fnc | 24 | import print_fnc |
719 | 25 | import custom | 25 | import custom |
720 | 26 | import render | 26 | import render |
722 | 27 | import openerp.pychart | 27 | import pychart |
723 | 28 | import int_to_text | 28 | import int_to_text |
724 | 29 | 29 | ||
725 | 30 | import report_sxw | 30 | import report_sxw |
726 | 31 | 31 | ||
727 | === modified file 'openerp/report/custom.py' | |||
728 | --- openerp/report/custom.py 2011-02-07 12:57:23 +0000 | |||
729 | +++ openerp/report/custom.py 2011-02-09 22:36:08 +0000 | |||
730 | @@ -21,23 +21,23 @@ | |||
731 | 21 | 21 | ||
732 | 22 | import os | 22 | import os |
733 | 23 | import time | 23 | import time |
735 | 24 | import openerp.netsvc as netsvc | 24 | import netsvc |
736 | 25 | 25 | ||
739 | 26 | import openerp.tools as tools | 26 | import tools |
740 | 27 | from openerp.tools.safe_eval import safe_eval as eval | 27 | from tools.safe_eval import safe_eval as eval |
741 | 28 | import print_xml | 28 | import print_xml |
742 | 29 | import render | 29 | import render |
743 | 30 | from interface import report_int | 30 | from interface import report_int |
744 | 31 | import common | 31 | import common |
749 | 32 | from openerp.osv.osv import except_osv | 32 | from osv.osv import except_osv |
750 | 33 | from openerp.osv.orm import browse_null | 33 | from osv.orm import browse_null |
751 | 34 | from openerp.osv.orm import browse_record_list | 34 | from osv.orm import browse_record_list |
752 | 35 | import openerp.pooler as pooler | 35 | import pooler |
753 | 36 | from pychart import * | 36 | from pychart import * |
754 | 37 | import misc | 37 | import misc |
755 | 38 | import cStringIO | 38 | import cStringIO |
756 | 39 | from lxml import etree | 39 | from lxml import etree |
758 | 40 | from openerp.tools.translate import _ | 40 | from tools.translate import _ |
759 | 41 | 41 | ||
760 | 42 | class external_pdf(render.render): | 42 | class external_pdf(render.render): |
761 | 43 | def __init__(self, pdf): | 43 | def __init__(self, pdf): |
762 | 44 | 44 | ||
763 | === modified file 'openerp/report/interface.py' | |||
764 | --- openerp/report/interface.py 2011-02-07 12:57:23 +0000 | |||
765 | +++ openerp/report/interface.py 2011-02-09 22:36:08 +0000 | |||
766 | @@ -23,11 +23,11 @@ | |||
767 | 23 | import re | 23 | import re |
768 | 24 | 24 | ||
769 | 25 | from lxml import etree | 25 | from lxml import etree |
772 | 26 | import openerp.netsvc as netsvc | 26 | import netsvc |
773 | 27 | import openerp.pooler as pooler | 27 | import pooler |
774 | 28 | 28 | ||
777 | 29 | import openerp.tools as tools | 29 | import tools |
778 | 30 | import openerp.addons as addons | 30 | import addons |
779 | 31 | import print_xml | 31 | import print_xml |
780 | 32 | import render | 32 | import render |
781 | 33 | import urllib | 33 | import urllib |
782 | 34 | 34 | ||
783 | === modified file 'openerp/report/print_xml.py' | |||
784 | --- openerp/report/print_xml.py 2011-02-07 12:57:23 +0000 | |||
785 | +++ openerp/report/print_xml.py 2011-02-09 22:36:08 +0000 | |||
786 | @@ -21,13 +21,13 @@ | |||
787 | 21 | 21 | ||
788 | 22 | import os,types | 22 | import os,types |
789 | 23 | from lxml import etree | 23 | from lxml import etree |
793 | 24 | import openerp.netsvc as netsvc | 24 | import netsvc |
794 | 25 | import openerp.tools as tools | 25 | import tools |
795 | 26 | from openerp.tools.safe_eval import safe_eval | 26 | from tools.safe_eval import safe_eval |
796 | 27 | import print_fnc | 27 | import print_fnc |
797 | 28 | import copy | 28 | import copy |
800 | 29 | from openerp.osv.orm import browse_null, browse_record | 29 | from osv.orm import browse_null, browse_record |
801 | 30 | import openerp.pooler as pooler | 30 | import pooler as pooler |
802 | 31 | 31 | ||
803 | 32 | class InheritDict(dict): | 32 | class InheritDict(dict): |
804 | 33 | # Might be usefull when we're doing name lookup for call or eval. | 33 | # Might be usefull when we're doing name lookup for call or eval. |
805 | 34 | 34 | ||
806 | === modified file 'openerp/report/printscreen/ps_form.py' | |||
807 | --- openerp/report/printscreen/ps_form.py 2011-02-07 12:57:23 +0000 | |||
808 | +++ openerp/report/printscreen/ps_form.py 2011-02-09 22:36:08 +0000 | |||
809 | @@ -19,11 +19,11 @@ | |||
810 | 19 | # | 19 | # |
811 | 20 | ############################################################################## | 20 | ############################################################################## |
812 | 21 | 21 | ||
816 | 22 | from openerp.report.interface import report_int | 22 | from report.interface import report_int |
817 | 23 | import openerp.pooler as pooler | 23 | import pooler |
818 | 24 | import openerp.tools as tools | 24 | import tools |
819 | 25 | 25 | ||
821 | 26 | from openerp.report import render | 26 | from report import render |
822 | 27 | from lxml import etree | 27 | from lxml import etree |
823 | 28 | 28 | ||
824 | 29 | import time, os | 29 | import time, os |
825 | 30 | 30 | ||
826 | === modified file 'openerp/report/printscreen/ps_list.py' | |||
827 | --- openerp/report/printscreen/ps_list.py 2011-02-07 12:57:23 +0000 | |||
828 | +++ openerp/report/printscreen/ps_list.py 2011-02-09 22:36:08 +0000 | |||
829 | @@ -19,12 +19,12 @@ | |||
830 | 19 | # | 19 | # |
831 | 20 | ############################################################################## | 20 | ############################################################################## |
832 | 21 | 21 | ||
837 | 22 | from openerp.report.interface import report_int | 22 | from report.interface import report_int |
838 | 23 | import openerp.pooler as pooler | 23 | import pooler |
839 | 24 | import openerp.tools as tools | 24 | import tools |
840 | 25 | from openerp.tools.safe_eval import safe_eval as eval | 25 | from tools.safe_eval import safe_eval as eval |
841 | 26 | from lxml import etree | 26 | from lxml import etree |
843 | 27 | from openerp.report import render, report_sxw | 27 | from report import render, report_sxw |
844 | 28 | import locale | 28 | import locale |
845 | 29 | 29 | ||
846 | 30 | import time, os | 30 | import time, os |
847 | 31 | 31 | ||
848 | === modified file 'openerp/report/render/html2html/html2html.py' | |||
849 | --- openerp/report/render/html2html/html2html.py 2011-02-07 12:57:23 +0000 | |||
850 | +++ openerp/report/render/html2html/html2html.py 2011-02-09 22:36:08 +0000 | |||
851 | @@ -19,10 +19,10 @@ | |||
852 | 19 | # | 19 | # |
853 | 20 | ############################################################################## | 20 | ############################################################################## |
854 | 21 | 21 | ||
856 | 22 | from openerp.report.render.rml2pdf import utils | 22 | from report.render.rml2pdf import utils |
857 | 23 | from lxml import etree | 23 | from lxml import etree |
858 | 24 | import copy | 24 | import copy |
860 | 25 | import openerp.pooler as pooler | 25 | import pooler |
861 | 26 | import base64 | 26 | import base64 |
862 | 27 | import cStringIO | 27 | import cStringIO |
863 | 28 | import re | 28 | import re |
864 | 29 | 29 | ||
865 | === modified file 'openerp/report/render/makohtml2html/makohtml2html.py' | |||
866 | --- openerp/report/render/makohtml2html/makohtml2html.py 2011-02-07 12:57:23 +0000 | |||
867 | +++ openerp/report/render/makohtml2html/makohtml2html.py 2011-02-09 22:36:08 +0000 | |||
868 | @@ -22,7 +22,7 @@ | |||
869 | 22 | from lxml import etree | 22 | from lxml import etree |
870 | 23 | from mako.template import Template | 23 | from mako.template import Template |
871 | 24 | from mako.lookup import TemplateLookup | 24 | from mako.lookup import TemplateLookup |
873 | 25 | import openerp.netsvc as netsvc | 25 | import netsvc |
874 | 26 | import traceback, sys, os | 26 | import traceback, sys, os |
875 | 27 | 27 | ||
876 | 28 | class makohtml2html(object): | 28 | class makohtml2html(object): |
877 | 29 | 29 | ||
878 | === modified file 'openerp/report/render/odt2odt/odt2odt.py' | |||
879 | --- openerp/report/render/odt2odt/odt2odt.py 2011-02-07 12:57:23 +0000 | |||
880 | +++ openerp/report/render/odt2odt/odt2odt.py 2011-02-09 22:36:08 +0000 | |||
881 | @@ -19,7 +19,7 @@ | |||
882 | 19 | # | 19 | # |
883 | 20 | ############################################################################## | 20 | ############################################################################## |
884 | 21 | 21 | ||
886 | 22 | from openerp.report.render.rml2pdf import utils | 22 | from report.render.rml2pdf import utils |
887 | 23 | from lxml import etree | 23 | from lxml import etree |
888 | 24 | import copy | 24 | import copy |
889 | 25 | 25 | ||
890 | 26 | 26 | ||
891 | === modified file 'openerp/report/render/rml2html/rml2html.py' | |||
892 | --- openerp/report/render/rml2html/rml2html.py 2011-02-07 12:57:23 +0000 | |||
893 | +++ openerp/report/render/rml2html/rml2html.py 2011-02-09 22:36:08 +0000 | |||
894 | @@ -40,7 +40,7 @@ | |||
895 | 40 | from lxml import etree | 40 | from lxml import etree |
896 | 41 | import copy | 41 | import copy |
897 | 42 | import utils | 42 | import utils |
899 | 43 | from openerp.report.render.rml2pdf import utils | 43 | from report.render.rml2pdf import utils |
900 | 44 | 44 | ||
901 | 45 | class _flowable(object): | 45 | class _flowable(object): |
902 | 46 | def __init__(self, template, doc, localcontext = None): | 46 | def __init__(self, template, doc, localcontext = None): |
903 | 47 | 47 | ||
904 | === modified file 'openerp/report/render/rml2pdf/customfonts.py' | |||
905 | --- openerp/report/render/rml2pdf/customfonts.py 2011-02-07 12:57:23 +0000 | |||
906 | +++ openerp/report/render/rml2pdf/customfonts.py 2011-02-09 22:36:08 +0000 | |||
907 | @@ -26,7 +26,7 @@ | |||
908 | 26 | import platform | 26 | import platform |
909 | 27 | from reportlab import rl_config | 27 | from reportlab import rl_config |
910 | 28 | 28 | ||
912 | 29 | from openerp.tools import config | 29 | from tools import config |
913 | 30 | 30 | ||
914 | 31 | """This module allows the mapping of some system-available TTF fonts to | 31 | """This module allows the mapping of some system-available TTF fonts to |
915 | 32 | the reportlab engine. | 32 | the reportlab engine. |
916 | 33 | 33 | ||
917 | === modified file 'openerp/report/render/rml2pdf/trml2pdf.py' | |||
918 | --- openerp/report/render/rml2pdf/trml2pdf.py 2011-02-07 12:57:23 +0000 | |||
919 | +++ openerp/report/render/rml2pdf/trml2pdf.py 2011-02-09 22:36:08 +0000 | |||
920 | @@ -33,9 +33,9 @@ | |||
921 | 33 | from lxml import etree | 33 | from lxml import etree |
922 | 34 | import base64 | 34 | import base64 |
923 | 35 | from reportlab.platypus.doctemplate import ActionFlowable | 35 | from reportlab.platypus.doctemplate import ActionFlowable |
925 | 36 | from openerp.tools.safe_eval import safe_eval as eval | 36 | from tools.safe_eval import safe_eval as eval |
926 | 37 | from reportlab.lib.units import inch,cm,mm | 37 | from reportlab.lib.units import inch,cm,mm |
928 | 38 | from openerp.tools.misc import file_open | 38 | from tools.misc import file_open |
929 | 39 | from reportlab.pdfbase import pdfmetrics | 39 | from reportlab.pdfbase import pdfmetrics |
930 | 40 | 40 | ||
931 | 41 | try: | 41 | try: |
932 | 42 | 42 | ||
933 | === modified file 'openerp/report/render/rml2pdf/utils.py' | |||
934 | --- openerp/report/render/rml2pdf/utils.py 2011-02-07 12:57:23 +0000 | |||
935 | +++ openerp/report/render/rml2pdf/utils.py 2011-02-09 22:36:08 +0000 | |||
936 | @@ -43,9 +43,9 @@ | |||
937 | 43 | import re | 43 | import re |
938 | 44 | import reportlab | 44 | import reportlab |
939 | 45 | 45 | ||
943 | 46 | import openerp.tools as tools | 46 | import tools |
944 | 47 | from openerp.tools.safe_eval import safe_eval as eval | 47 | from tools.safe_eval import safe_eval as eval |
945 | 48 | from openerp.tools.misc import ustr | 48 | from tools.misc import ustr |
946 | 49 | 49 | ||
947 | 50 | _regex = re.compile('\[\[(.+?)\]\]') | 50 | _regex = re.compile('\[\[(.+?)\]\]') |
948 | 51 | 51 | ||
949 | 52 | 52 | ||
950 | === modified file 'openerp/report/render/rml2txt/utils.py' | |||
951 | --- openerp/report/render/rml2txt/utils.py 2011-02-07 12:57:23 +0000 | |||
952 | +++ openerp/report/render/rml2txt/utils.py 2011-02-09 22:36:08 +0000 | |||
953 | @@ -23,7 +23,7 @@ | |||
954 | 23 | import reportlab | 23 | import reportlab |
955 | 24 | import reportlab.lib.units | 24 | import reportlab.lib.units |
956 | 25 | from lxml import etree | 25 | from lxml import etree |
958 | 26 | from openerp.tools.safe_eval import safe_eval as eval | 26 | from tools.safe_eval import safe_eval as eval |
959 | 27 | 27 | ||
960 | 28 | _regex = re.compile('\[\[(.+?)\]\]') | 28 | _regex = re.compile('\[\[(.+?)\]\]') |
961 | 29 | 29 | ||
962 | 30 | 30 | ||
963 | === modified file 'openerp/report/report_sxw.py' | |||
964 | --- openerp/report/report_sxw.py 2011-02-07 12:57:23 +0000 | |||
965 | +++ openerp/report/report_sxw.py 2011-02-09 22:36:08 +0000 | |||
966 | @@ -29,12 +29,12 @@ | |||
967 | 29 | from interface import report_rml | 29 | from interface import report_rml |
968 | 30 | import preprocess | 30 | import preprocess |
969 | 31 | import logging | 31 | import logging |
972 | 32 | import openerp.pooler as pooler | 32 | import pooler |
973 | 33 | import openerp.tools as tools | 33 | import tools |
974 | 34 | import zipfile | 34 | import zipfile |
975 | 35 | import common | 35 | import common |
978 | 36 | from openerp.osv.fields import float as float_class, function as function_class | 36 | from osv.fields import float as float_class, function as function_class |
979 | 37 | from openerp.osv.orm import browse_record | 37 | from osv.orm import browse_record |
980 | 38 | 38 | ||
981 | 39 | DT_FORMAT = '%Y-%m-%d' | 39 | DT_FORMAT = '%Y-%m-%d' |
982 | 40 | DHM_FORMAT = '%Y-%m-%d %H:%M:%S' | 40 | DHM_FORMAT = '%Y-%m-%d %H:%M:%S' |
983 | 41 | 41 | ||
984 | === modified file 'openerp/service/http_server.py' | |||
985 | --- openerp/service/http_server.py 2011-02-07 12:57:23 +0000 | |||
986 | +++ openerp/service/http_server.py 2011-02-09 22:36:08 +0000 | |||
987 | @@ -31,10 +31,10 @@ | |||
988 | 31 | 31 | ||
989 | 32 | """ | 32 | """ |
990 | 33 | from websrv_lib import * | 33 | from websrv_lib import * |
992 | 34 | import openerp.netsvc as netsvc | 34 | import netsvc |
993 | 35 | import errno | 35 | import errno |
994 | 36 | import threading | 36 | import threading |
996 | 37 | import openerp.tools as tools | 37 | import tools |
997 | 38 | import posixpath | 38 | import posixpath |
998 | 39 | import urllib | 39 | import urllib |
999 | 40 | import os | 40 | import os |
1000 | 41 | 41 | ||
1001 | === modified file 'openerp/service/netrpc_server.py' | |||
1002 | --- openerp/service/netrpc_server.py 2011-02-07 12:57:23 +0000 | |||
1003 | +++ openerp/service/netrpc_server.py 2011-02-09 22:36:08 +0000 | |||
1004 | @@ -30,9 +30,9 @@ | |||
1005 | 30 | import threading | 30 | import threading |
1006 | 31 | import traceback | 31 | import traceback |
1007 | 32 | 32 | ||
1011 | 33 | import openerp.netsvc as netsvc | 33 | import netsvc |
1012 | 34 | import openerp.tiny_socket as tiny_socket | 34 | import tiny_socket |
1013 | 35 | import openerp.tools as tools | 35 | import tools |
1014 | 36 | 36 | ||
1015 | 37 | class TinySocketClientThread(threading.Thread, netsvc.OpenERPDispatcher): | 37 | class TinySocketClientThread(threading.Thread, netsvc.OpenERPDispatcher): |
1016 | 38 | def __init__(self, sock, threads): | 38 | def __init__(self, sock, threads): |
1017 | 39 | 39 | ||
1018 | === modified file 'openerp/service/security.py' | |||
1019 | --- openerp/service/security.py 2011-02-07 12:57:23 +0000 | |||
1020 | +++ openerp/service/security.py 2011-02-09 22:36:08 +0000 | |||
1021 | @@ -19,8 +19,8 @@ | |||
1022 | 19 | # | 19 | # |
1023 | 20 | ############################################################################## | 20 | ############################################################################## |
1024 | 21 | 21 | ||
1027 | 22 | import openerp.pooler as pooler | 22 | import pooler |
1028 | 23 | import openerp.tools as tools | 23 | import tools |
1029 | 24 | 24 | ||
1030 | 25 | # When rejecting a password, hide the traceback | 25 | # When rejecting a password, hide the traceback |
1031 | 26 | class ExceptionNoTb(Exception): | 26 | class ExceptionNoTb(Exception): |
1032 | 27 | 27 | ||
1033 | === modified file 'openerp/service/web_services.py' | |||
1034 | --- openerp/service/web_services.py 2011-02-07 12:57:23 +0000 | |||
1035 | +++ openerp/service/web_services.py 2011-02-09 22:36:08 +0000 | |||
1036 | @@ -27,14 +27,14 @@ | |||
1037 | 27 | import time | 27 | import time |
1038 | 28 | import sys | 28 | import sys |
1039 | 29 | import platform | 29 | import platform |
1048 | 30 | from openerp.tools.translate import _ | 30 | from tools.translate import _ |
1049 | 31 | import openerp.addons as addons | 31 | import addons |
1050 | 32 | import openerp.ir | 32 | import ir |
1051 | 33 | import openerp.netsvc as netsvc | 33 | import netsvc |
1052 | 34 | import openerp.pooler as pooler | 34 | import pooler |
1053 | 35 | import openerp.release as release | 35 | import release |
1054 | 36 | import openerp.sql_db as sql_db | 36 | import sql_db |
1055 | 37 | import openerp.tools as tools | 37 | import tools |
1056 | 38 | import locale | 38 | import locale |
1057 | 39 | import logging | 39 | import logging |
1058 | 40 | from cStringIO import StringIO | 40 | from cStringIO import StringIO |
1059 | @@ -327,8 +327,8 @@ | |||
1060 | 327 | 327 | ||
1061 | 328 | def exp_migrate_databases(self,databases): | 328 | def exp_migrate_databases(self,databases): |
1062 | 329 | 329 | ||
1065 | 330 | from openerp.osv.orm import except_orm | 330 | from osv.orm import except_orm |
1066 | 331 | from openerp.osv.osv import except_osv | 331 | from osv.osv import except_osv |
1067 | 332 | 332 | ||
1068 | 333 | l = netsvc.Logger() | 333 | l = netsvc.Logger() |
1069 | 334 | for db in databases: | 334 | for db in databases: |
1070 | @@ -441,7 +441,7 @@ | |||
1071 | 441 | return tools.misc.get_server_timezone() | 441 | return tools.misc.get_server_timezone() |
1072 | 442 | 442 | ||
1073 | 443 | def exp_get_available_updates(self, contract_id, contract_password): | 443 | def exp_get_available_updates(self, contract_id, contract_password): |
1075 | 444 | import openerp.tools.maintenance as tm | 444 | import tools.maintenance as tm |
1076 | 445 | try: | 445 | try: |
1077 | 446 | rc = tm.remote_contract(contract_id, contract_password) | 446 | rc = tm.remote_contract(contract_id, contract_password) |
1078 | 447 | if not rc.id: | 447 | if not rc.id: |
1079 | @@ -455,7 +455,7 @@ | |||
1080 | 455 | 455 | ||
1081 | 456 | def exp_get_migration_scripts(self, contract_id, contract_password): | 456 | def exp_get_migration_scripts(self, contract_id, contract_password): |
1082 | 457 | l = netsvc.Logger() | 457 | l = netsvc.Logger() |
1084 | 458 | import openerp.tools.maintenance as tm | 458 | import tools.maintenance as tm |
1085 | 459 | try: | 459 | try: |
1086 | 460 | rc = tm.remote_contract(contract_id, contract_password) | 460 | rc = tm.remote_contract(contract_id, contract_password) |
1087 | 461 | if not rc.id: | 461 | if not rc.id: |
1088 | 462 | 462 | ||
1089 | === modified file 'openerp/test/test_osv.py' | |||
1090 | --- openerp/test/test_osv.py 2011-02-07 12:57:23 +0000 | |||
1091 | +++ openerp/test/test_osv.py 2011-02-09 22:36:08 +0000 | |||
1092 | @@ -20,7 +20,7 @@ | |||
1093 | 20 | ############################################################################## | 20 | ############################################################################## |
1094 | 21 | 21 | ||
1095 | 22 | import unittest | 22 | import unittest |
1097 | 23 | from openerp.osv.query import Query | 23 | from osv.query import Query |
1098 | 24 | 24 | ||
1099 | 25 | class QueryTestCase(unittest.TestCase): | 25 | class QueryTestCase(unittest.TestCase): |
1100 | 26 | 26 | ||
1101 | 27 | 27 | ||
1102 | === modified file 'openerp/test/test_translate.py' | |||
1103 | --- openerp/test/test_translate.py 2011-02-07 12:57:23 +0000 | |||
1104 | +++ openerp/test/test_translate.py 2011-02-09 22:36:08 +0000 | |||
1105 | @@ -20,7 +20,7 @@ | |||
1106 | 20 | ############################################################################## | 20 | ############################################################################## |
1107 | 21 | 21 | ||
1108 | 22 | import unittest | 22 | import unittest |
1110 | 23 | from openerp.tools.translate import quote, unquote | 23 | from tools.translate import quote, unquote |
1111 | 24 | 24 | ||
1112 | 25 | class TranslationToolsTestCase(unittest.TestCase): | 25 | class TranslationToolsTestCase(unittest.TestCase): |
1113 | 26 | 26 | ||
1114 | 27 | 27 | ||
1115 | === modified file 'openerp/tools/amount_to_text_en.py' | |||
1116 | --- openerp/tools/amount_to_text_en.py 2011-02-07 12:57:23 +0000 | |||
1117 | +++ openerp/tools/amount_to_text_en.py 2011-02-09 22:36:08 +0000 | |||
1118 | @@ -99,7 +99,7 @@ | |||
1119 | 99 | Example: | 99 | Example: |
1120 | 100 | 1654: thousands six cent cinquante-quatre. | 100 | 1654: thousands six cent cinquante-quatre. |
1121 | 101 | """ | 101 | """ |
1123 | 102 | import openerp.loglevels as loglevels | 102 | import loglevels |
1124 | 103 | # if nbr > 10000000: | 103 | # if nbr > 10000000: |
1125 | 104 | # netsvc.Logger().notifyChannel('translate', netsvc.LOG_WARNING, _("Number too large '%d', can not translate it")) | 104 | # netsvc.Logger().notifyChannel('translate', netsvc.LOG_WARNING, _("Number too large '%d', can not translate it")) |
1126 | 105 | # return str(nbr) | 105 | # return str(nbr) |
1127 | 106 | 106 | ||
1128 | === modified file 'openerp/tools/config.py' | |||
1129 | --- openerp/tools/config.py 2011-02-08 17:09:27 +0000 | |||
1130 | +++ openerp/tools/config.py 2011-02-09 22:36:08 +0000 | |||
1131 | @@ -23,10 +23,9 @@ | |||
1132 | 23 | import optparse | 23 | import optparse |
1133 | 24 | import os | 24 | import os |
1134 | 25 | import sys | 25 | import sys |
1137 | 26 | import openerp | 26 | import loglevels |
1136 | 27 | import openerp.loglevels as loglevels | ||
1138 | 28 | import logging | 27 | import logging |
1140 | 29 | import openerp.release as release | 28 | import release |
1141 | 30 | 29 | ||
1142 | 31 | def check_ssl(): | 30 | def check_ssl(): |
1143 | 32 | try: | 31 | try: |
1144 | @@ -334,7 +333,7 @@ | |||
1145 | 334 | else: | 333 | else: |
1146 | 335 | self.options['log_level'] = self._LOGLEVELS.get(self.options['log_level']) or int(self.options['log_level']) | 334 | self.options['log_level'] = self._LOGLEVELS.get(self.options['log_level']) or int(self.options['log_level']) |
1147 | 336 | 335 | ||
1149 | 337 | self.options['root_path'] = os.path.abspath(os.path.expanduser(os.path.expandvars(os.path.dirname(openerp.__file__)))) | 336 | self.options['root_path'] = os.path.abspath(os.path.expanduser(os.path.expandvars(os.path.dirname(__file__)))) |
1150 | 338 | if not self.options['addons_path'] or self.options['addons_path']=='None': | 337 | if not self.options['addons_path'] or self.options['addons_path']=='None': |
1151 | 339 | self.options['addons_path'] = os.path.join(self.options['root_path'], 'addons') | 338 | self.options['addons_path'] = os.path.join(self.options['root_path'], 'addons') |
1152 | 340 | else: | 339 | else: |
1153 | 341 | 340 | ||
1154 | === modified file 'openerp/tools/convert.py' | |||
1155 | --- openerp/tools/convert.py 2011-02-07 12:57:23 +0000 | |||
1156 | +++ openerp/tools/convert.py 2011-02-09 22:36:08 +0000 | |||
1157 | @@ -28,7 +28,7 @@ | |||
1158 | 28 | 28 | ||
1159 | 29 | # for eval context: | 29 | # for eval context: |
1160 | 30 | import time | 30 | import time |
1162 | 31 | import openerp.release as release | 31 | import release |
1163 | 32 | try: | 32 | try: |
1164 | 33 | import pytz | 33 | import pytz |
1165 | 34 | except: | 34 | except: |
1166 | @@ -41,8 +41,8 @@ | |||
1167 | 41 | from datetime import datetime, timedelta | 41 | from datetime import datetime, timedelta |
1168 | 42 | from lxml import etree | 42 | from lxml import etree |
1169 | 43 | import misc | 43 | import misc |
1172 | 44 | import openerp.loglevels as loglevels | 44 | import loglevels |
1173 | 45 | import openerp.pooler as pooler | 45 | import pooler |
1174 | 46 | from config import config | 46 | from config import config |
1175 | 47 | from translate import _ | 47 | from translate import _ |
1176 | 48 | from yaml_import import convert_yaml_import | 48 | from yaml_import import convert_yaml_import |
1177 | @@ -540,7 +540,7 @@ | |||
1178 | 540 | id = _eval_xml(self, rec[0], self.pool, cr, self.uid, self.idref) | 540 | id = _eval_xml(self, rec[0], self.pool, cr, self.uid, self.idref) |
1179 | 541 | 541 | ||
1180 | 542 | uid = self.get_uid(cr, self.uid, data_node, rec) | 542 | uid = self.get_uid(cr, self.uid, data_node, rec) |
1182 | 543 | import openerp.netsvc as netsvc | 543 | import netsvc |
1183 | 544 | wf_service = netsvc.LocalService("workflow") | 544 | wf_service = netsvc.LocalService("workflow") |
1184 | 545 | wf_service.trg_validate(uid, model, | 545 | wf_service.trg_validate(uid, model, |
1185 | 546 | id, | 546 | id, |
1186 | @@ -825,7 +825,7 @@ | |||
1187 | 825 | else: | 825 | else: |
1188 | 826 | f_val = _eval_xml(self,field, self.pool, cr, self.uid, self.idref) | 826 | f_val = _eval_xml(self,field, self.pool, cr, self.uid, self.idref) |
1189 | 827 | if model._columns.has_key(f_name): | 827 | if model._columns.has_key(f_name): |
1191 | 828 | import openerp.osv as osv | 828 | import osv |
1192 | 829 | if isinstance(model._columns[f_name], osv.fields.integer): | 829 | if isinstance(model._columns[f_name], osv.fields.integer): |
1193 | 830 | f_val = int(f_val) | 830 | f_val = int(f_val) |
1194 | 831 | res[f_name] = f_val | 831 | res[f_name] = f_val |
1195 | 832 | 832 | ||
1196 | === modified file 'openerp/tools/misc.py' | |||
1197 | --- openerp/tools/misc.py 2011-02-08 09:24:58 +0000 | |||
1198 | +++ openerp/tools/misc.py 2011-02-09 22:36:08 +0000 | |||
1199 | @@ -55,13 +55,13 @@ | |||
1200 | 55 | except ImportError: | 55 | except ImportError: |
1201 | 56 | html2text = None | 56 | html2text = None |
1202 | 57 | 57 | ||
1204 | 58 | import openerp.loglevels as loglevels | 58 | import loglevels |
1205 | 59 | from config import config | 59 | from config import config |
1206 | 60 | from lru import LRU | 60 | from lru import LRU |
1207 | 61 | 61 | ||
1208 | 62 | # get_encodings, ustr and exception_to_unicode were originally from tools.misc. | 62 | # get_encodings, ustr and exception_to_unicode were originally from tools.misc. |
1209 | 63 | # There are moved to loglevels until we refactor tools. | 63 | # There are moved to loglevels until we refactor tools. |
1211 | 64 | from openerp.loglevels import get_encodings, ustr, exception_to_unicode | 64 | from loglevels import get_encodings, ustr, exception_to_unicode |
1212 | 65 | 65 | ||
1213 | 66 | _logger = logging.getLogger('tools') | 66 | _logger = logging.getLogger('tools') |
1214 | 67 | 67 | ||
1215 | @@ -71,7 +71,7 @@ | |||
1216 | 71 | 71 | ||
1217 | 72 | # initialize a database with base/base.sql | 72 | # initialize a database with base/base.sql |
1218 | 73 | def init_db(cr): | 73 | def init_db(cr): |
1220 | 74 | import openerp.addons as addons | 74 | import addons as addons |
1221 | 75 | f = addons.get_module_resource('base', 'base.sql') | 75 | f = addons.get_module_resource('base', 'base.sql') |
1222 | 76 | base_sql_file = file_open(f) | 76 | base_sql_file = file_open(f) |
1223 | 77 | try: | 77 | try: |
1224 | @@ -204,7 +204,7 @@ | |||
1225 | 204 | 204 | ||
1226 | 205 | @return: fileobject if pathinfo is False else (fileobject, filepath) | 205 | @return: fileobject if pathinfo is False else (fileobject, filepath) |
1227 | 206 | """ | 206 | """ |
1229 | 207 | import openerp.addons as addons | 207 | import addons |
1230 | 208 | adps = addons.ad_paths | 208 | adps = addons.ad_paths |
1231 | 209 | rtp = os.path.normcase(os.path.abspath(config['root_path'])) | 209 | rtp = os.path.normcase(os.path.abspath(config['root_path'])) |
1232 | 210 | 210 | ||
1233 | 211 | 211 | ||
1234 | === modified file 'openerp/tools/test_reports.py' | |||
1235 | --- openerp/tools/test_reports.py 2011-02-07 12:57:23 +0000 | |||
1236 | +++ openerp/tools/test_reports.py 2011-02-09 22:36:08 +0000 | |||
1237 | @@ -25,11 +25,11 @@ | |||
1238 | 25 | through the code of yaml tests. | 25 | through the code of yaml tests. |
1239 | 26 | """ | 26 | """ |
1240 | 27 | 27 | ||
1243 | 28 | import openerp.netsvc as netsvc | 28 | import netsvc |
1244 | 29 | import openerp.tools as tools | 29 | import tools |
1245 | 30 | import logging | 30 | import logging |
1248 | 31 | import openerp.pooler as pooler | 31 | import pooler |
1249 | 32 | from openerp.tools.safe_eval import safe_eval | 32 | from tools.safe_eval import safe_eval |
1250 | 33 | from subprocess import Popen, PIPE | 33 | from subprocess import Popen, PIPE |
1251 | 34 | import os | 34 | import os |
1252 | 35 | import tempfile | 35 | import tempfile |
1253 | 36 | 36 | ||
1254 | === modified file 'openerp/tools/translate.py' | |||
1255 | --- openerp/tools/translate.py 2011-02-09 09:02:31 +0000 | |||
1256 | +++ openerp/tools/translate.py 2011-02-09 22:36:08 +0000 | |||
1257 | @@ -26,7 +26,7 @@ | |||
1258 | 26 | import itertools | 26 | import itertools |
1259 | 27 | import locale | 27 | import locale |
1260 | 28 | import os | 28 | import os |
1262 | 29 | import openerp.pooler as pooler | 29 | import pooler |
1263 | 30 | import re | 30 | import re |
1264 | 31 | import logging | 31 | import logging |
1265 | 32 | import tarfile | 32 | import tarfile |
1266 | @@ -354,7 +354,7 @@ | |||
1267 | 354 | return type, name, res_id, source, trad | 354 | return type, name, res_id, source, trad |
1268 | 355 | 355 | ||
1269 | 356 | def write_infos(self, modules): | 356 | def write_infos(self, modules): |
1271 | 357 | import openerp.release as release | 357 | import release |
1272 | 358 | self.buffer.write("# Translation of %(project)s.\n" \ | 358 | self.buffer.write("# Translation of %(project)s.\n" \ |
1273 | 359 | "# This file contains the translation of the following modules:\n" \ | 359 | "# This file contains the translation of the following modules:\n" \ |
1274 | 360 | "%(modules)s" \ | 360 | "%(modules)s" \ |
1275 | @@ -588,7 +588,7 @@ | |||
1276 | 588 | push_translation(module, 'view', encode(obj.model), 0, t) | 588 | push_translation(module, 'view', encode(obj.model), 0, t) |
1277 | 589 | elif model=='ir.actions.wizard': | 589 | elif model=='ir.actions.wizard': |
1278 | 590 | service_name = 'wizard.'+encode(obj.wiz_name) | 590 | service_name = 'wizard.'+encode(obj.wiz_name) |
1280 | 591 | import openerp.netsvc as netsvc | 591 | import netsvc |
1281 | 592 | if netsvc.Service._services.get(service_name): | 592 | if netsvc.Service._services.get(service_name): |
1282 | 593 | obj2 = netsvc.Service._services[service_name] | 593 | obj2 = netsvc.Service._services[service_name] |
1283 | 594 | for state_name, state_def in obj2.states.iteritems(): | 594 | for state_name, state_def in obj2.states.iteritems(): |
1284 | 595 | 595 | ||
1285 | === modified file 'openerp/tools/yaml_import.py' | |||
1286 | --- openerp/tools/yaml_import.py 2011-02-07 12:57:23 +0000 | |||
1287 | +++ openerp/tools/yaml_import.py 2011-02-09 22:36:08 +0000 | |||
1288 | @@ -4,7 +4,7 @@ | |||
1289 | 4 | from datetime import datetime, timedelta | 4 | from datetime import datetime, timedelta |
1290 | 5 | import logging | 5 | import logging |
1291 | 6 | 6 | ||
1293 | 7 | import openerp.pooler as pooler | 7 | import pooler |
1294 | 8 | import misc | 8 | import misc |
1295 | 9 | from config import config | 9 | from config import config |
1296 | 10 | import yaml_tag | 10 | import yaml_tag |
1297 | @@ -296,7 +296,7 @@ | |||
1298 | 296 | return record_dict | 296 | return record_dict |
1299 | 297 | 297 | ||
1300 | 298 | def process_record(self, node): | 298 | def process_record(self, node): |
1302 | 299 | import openerp.osv as osv | 299 | import osv |
1303 | 300 | record, fields = node.items()[0] | 300 | record, fields = node.items()[0] |
1304 | 301 | model = self.get_model(record.model) | 301 | model = self.get_model(record.model) |
1305 | 302 | if isinstance(model, osv.osv.osv_memory): | 302 | if isinstance(model, osv.osv.osv_memory): |
1306 | @@ -447,7 +447,7 @@ | |||
1307 | 447 | signals=[x['signal'] for x in self.cr.dictfetchall()] | 447 | signals=[x['signal'] for x in self.cr.dictfetchall()] |
1308 | 448 | if workflow.action not in signals: | 448 | if workflow.action not in signals: |
1309 | 449 | raise YamlImportException('Incorrect action %s. No such action defined' % workflow.action) | 449 | raise YamlImportException('Incorrect action %s. No such action defined' % workflow.action) |
1311 | 450 | import openerp.netsvc as netsvc | 450 | import netsvc |
1312 | 451 | wf_service = netsvc.LocalService("workflow") | 451 | wf_service = netsvc.LocalService("workflow") |
1313 | 452 | wf_service.trg_validate(uid, workflow.model, id, workflow.action, self.cr) | 452 | wf_service.trg_validate(uid, workflow.model, id, workflow.action, self.cr) |
1314 | 453 | 453 | ||
1315 | 454 | 454 | ||
1316 | === modified file 'openerp/wizard/__init__.py' | |||
1317 | --- openerp/wizard/__init__.py 2011-02-07 12:57:23 +0000 | |||
1318 | +++ openerp/wizard/__init__.py 2011-02-09 22:36:08 +0000 | |||
1319 | @@ -19,18 +19,18 @@ | |||
1320 | 19 | # | 19 | # |
1321 | 20 | ############################################################################## | 20 | ############################################################################## |
1322 | 21 | 21 | ||
1327 | 22 | import openerp.netsvc as netsvc | 22 | import netsvc |
1328 | 23 | from openerp.tools import copy | 23 | from tools import copy |
1329 | 24 | from openerp.tools.misc import UpdateableStr, UpdateableDict | 24 | from tools.misc import UpdateableStr, UpdateableDict |
1330 | 25 | from openerp.tools.translate import translate | 25 | from tools.translate import translate |
1331 | 26 | from lxml import etree | 26 | from lxml import etree |
1332 | 27 | 27 | ||
1335 | 28 | import openerp.ir as ir | 28 | import ir |
1336 | 29 | import openerp.pooler as pooler | 29 | import pooler |
1337 | 30 | 30 | ||
1341 | 31 | from openerp.osv.osv import except_osv | 31 | from osv.osv import except_osv |
1342 | 32 | from openerp.osv.orm import except_orm | 32 | from osv.orm import except_orm |
1343 | 33 | from openerp.netsvc import Logger, LOG_ERROR | 33 | from netsvc import Logger, LOG_ERROR |
1344 | 34 | import sys | 34 | import sys |
1345 | 35 | 35 | ||
1346 | 36 | class except_wizard(Exception): | 36 | class except_wizard(Exception): |
1347 | 37 | 37 | ||
1348 | === modified file 'openerp/workflow/instance.py' | |||
1349 | --- openerp/workflow/instance.py 2011-02-07 12:57:23 +0000 | |||
1350 | +++ openerp/workflow/instance.py 2011-02-09 22:36:08 +0000 | |||
1351 | @@ -22,8 +22,8 @@ | |||
1352 | 22 | import wkf_logs | 22 | import wkf_logs |
1353 | 23 | import workitem | 23 | import workitem |
1354 | 24 | 24 | ||
1357 | 25 | import openerp.netsvc as netsvc | 25 | import netsvc |
1358 | 26 | import openerp.pooler as pooler | 26 | import pooler |
1359 | 27 | 27 | ||
1360 | 28 | def create(cr, ident, wkf_id): | 28 | def create(cr, ident, wkf_id): |
1361 | 29 | (uid,res_type,res_id) = ident | 29 | (uid,res_type,res_id) = ident |
1362 | 30 | 30 | ||
1363 | === modified file 'openerp/workflow/wkf_expr.py' | |||
1364 | --- openerp/workflow/wkf_expr.py 2011-02-07 12:57:23 +0000 | |||
1365 | +++ openerp/workflow/wkf_expr.py 2011-02-09 22:36:08 +0000 | |||
1366 | @@ -20,10 +20,10 @@ | |||
1367 | 20 | ############################################################################## | 20 | ############################################################################## |
1368 | 21 | 21 | ||
1369 | 22 | import sys | 22 | import sys |
1374 | 23 | import openerp.netsvc as netsvc | 23 | import netsvc |
1375 | 24 | import openerp.osv as base | 24 | import osv as base |
1376 | 25 | import openerp.pooler as pooler | 25 | import pooler |
1377 | 26 | from openerp.tools.safe_eval import safe_eval as eval | 26 | from tools.safe_eval import safe_eval as eval |
1378 | 27 | 27 | ||
1379 | 28 | class Env(dict): | 28 | class Env(dict): |
1380 | 29 | def __init__(self, cr, uid, model, ids): | 29 | def __init__(self, cr, uid, model, ids): |
1381 | 30 | 30 | ||
1382 | === modified file 'openerp/workflow/wkf_logs.py' | |||
1383 | --- openerp/workflow/wkf_logs.py 2011-02-07 12:57:23 +0000 | |||
1384 | +++ openerp/workflow/wkf_logs.py 2011-02-09 22:36:08 +0000 | |||
1385 | @@ -22,7 +22,7 @@ | |||
1386 | 22 | # | 22 | # |
1387 | 23 | # May be uncommented to logs workflows modifications | 23 | # May be uncommented to logs workflows modifications |
1388 | 24 | # | 24 | # |
1390 | 25 | import openerp.netsvc as netsvc | 25 | import netsvc |
1391 | 26 | 26 | ||
1392 | 27 | def log(cr,ident,act_id,info=''): | 27 | def log(cr,ident,act_id,info=''): |
1393 | 28 | return | 28 | return |
1394 | 29 | 29 | ||
1395 | === modified file 'openerp/workflow/wkf_service.py' | |||
1396 | --- openerp/workflow/wkf_service.py 2011-02-07 12:57:23 +0000 | |||
1397 | +++ openerp/workflow/wkf_service.py 2011-02-09 22:36:08 +0000 | |||
1398 | @@ -23,8 +23,8 @@ | |||
1399 | 23 | import workitem | 23 | import workitem |
1400 | 24 | import instance | 24 | import instance |
1401 | 25 | 25 | ||
1404 | 26 | import openerp.netsvc as netsvc | 26 | import netsvc |
1405 | 27 | import openerp.pooler as pooler | 27 | import pooler |
1406 | 28 | 28 | ||
1407 | 29 | class workflow_service(netsvc.Service): | 29 | class workflow_service(netsvc.Service): |
1408 | 30 | def __init__(self, name='workflow', audience='*'): | 30 | def __init__(self, name='workflow', audience='*'): |
1409 | 31 | 31 | ||
1410 | === modified file 'openerp/workflow/workitem.py' | |||
1411 | --- openerp/workflow/workitem.py 2011-02-07 12:57:23 +0000 | |||
1412 | +++ openerp/workflow/workitem.py 2011-02-09 22:36:08 +0000 | |||
1413 | @@ -24,7 +24,7 @@ | |||
1414 | 24 | # cr.execute('delete from wkf_triggers where model=%s and res_id=%s', (res_type,res_id)) | 24 | # cr.execute('delete from wkf_triggers where model=%s and res_id=%s', (res_type,res_id)) |
1415 | 25 | # | 25 | # |
1416 | 26 | 26 | ||
1418 | 27 | import openerp.netsvc as netsvc | 27 | import netsvc |
1419 | 28 | import instance | 28 | import instance |
1420 | 29 | 29 | ||
1421 | 30 | import wkf_expr | 30 | import wkf_expr |
1422 | 31 | 31 | ||
1423 | === modified file 'setup.cfg' | |||
1424 | --- setup.cfg 2010-10-18 22:00:03 +0000 | |||
1425 | +++ setup.cfg 2011-02-09 22:36:08 +0000 | |||
1426 | @@ -7,8 +7,8 @@ | |||
1427 | 7 | formats=rpm | 7 | formats=rpm |
1428 | 8 | 8 | ||
1429 | 9 | [bdist_rpm] | 9 | [bdist_rpm] |
1432 | 10 | # release must exactly match 'release' as set in bin/release.py | 10 | # release must exactly match 'release' as set in openerp/release.py |
1433 | 11 | release=6.0.0-rc1 | 11 | release=6.1-dev |
1434 | 12 | 12 | ||
1435 | 13 | requires=python >= 2.5 | 13 | requires=python >= 2.5 |
1436 | 14 | #build-requires=python-devel >= 2.3 | 14 | #build-requires=python-devel >= 2.3 |
1437 | 15 | 15 | ||
1438 | === modified file 'setup.py' | |||
1439 | --- setup.py 2011-02-03 23:00:23 +0000 | |||
1440 | +++ setup.py 2011-02-09 22:36:08 +0000 | |||
1441 | @@ -42,9 +42,9 @@ | |||
1442 | 42 | import py2exe | 42 | import py2exe |
1443 | 43 | has_py2exe = True | 43 | has_py2exe = True |
1444 | 44 | 44 | ||
1446 | 45 | sys.path.append(join(os.path.abspath(os.path.dirname(__file__)), "bin")) | 45 | sys.path.append(join(os.path.abspath(os.path.dirname(__file__)), "openerp")) |
1447 | 46 | 46 | ||
1449 | 47 | execfile(join('bin', 'release.py')) | 47 | execfile(join('openerp', 'release.py')) |
1450 | 48 | 48 | ||
1451 | 49 | if 'bdist_rpm' in sys.argv: | 49 | if 'bdist_rpm' in sys.argv: |
1452 | 50 | version = version.split('-')[0] | 50 | version = version.split('-')[0] |
1453 | @@ -85,7 +85,7 @@ | |||
1454 | 85 | os.walk = walk_followlinks | 85 | os.walk = walk_followlinks |
1455 | 86 | 86 | ||
1456 | 87 | def find_addons(): | 87 | def find_addons(): |
1458 | 88 | for root, _, names in os.walk(join('bin', 'addons'), followlinks=True): | 88 | for root, _, names in os.walk(join('openerp', 'addons'), followlinks=True): |
1459 | 89 | if '__openerp__.py' in names or '__terp__.py' in names: | 89 | if '__openerp__.py' in names or '__terp__.py' in names: |
1460 | 90 | yield basename(root), root | 90 | yield basename(root), root |
1461 | 91 | #look for extra modules | 91 | #look for extra modules |
1462 | @@ -111,9 +111,9 @@ | |||
1463 | 111 | '''Build list of data files to be installed''' | 111 | '''Build list of data files to be installed''' |
1464 | 112 | files = [] | 112 | files = [] |
1465 | 113 | if os.name == 'nt': | 113 | if os.name == 'nt': |
1467 | 114 | os.chdir('bin') | 114 | os.chdir('openerp') |
1468 | 115 | for (dp, dn, names) in os.walk('addons'): | 115 | for (dp, dn, names) in os.walk('addons'): |
1470 | 116 | files.append((dp, map(lambda x: join('bin', dp, x), names))) | 116 | files.append((dp, map(lambda x: join('openerp', dp, x), names))) |
1471 | 117 | os.chdir('..') | 117 | os.chdir('..') |
1472 | 118 | #for root, _, names in os.walk(join('bin','addons')): | 118 | #for root, _, names in os.walk(join('bin','addons')): |
1473 | 119 | # files.append((root, [join(root, name) for name in names])) | 119 | # files.append((root, [join(root, name) for name in names])) |
1474 | @@ -121,7 +121,7 @@ | |||
1475 | 121 | files.append((root, [join(root, name) for name in names])) | 121 | files.append((root, [join(root, name) for name in names])) |
1476 | 122 | #for root, _, names in os.walk('pixmaps'): | 122 | #for root, _, names in os.walk('pixmaps'): |
1477 | 123 | # files.append((root, [join(root, name) for name in names])) | 123 | # files.append((root, [join(root, name) for name in names])) |
1479 | 124 | files.append(('.', [join('bin', 'import_xml.rng'),])) | 124 | files.append(('.', [join('openerp', 'import_xml.rng'),])) |
1480 | 125 | else: | 125 | else: |
1481 | 126 | man_directory = join('share', 'man') | 126 | man_directory = join('share', 'man') |
1482 | 127 | files.append((join(man_directory, 'man1'), ['man/openerp-server.1'])) | 127 | files.append((join(man_directory, 'man1'), ['man/openerp-server.1'])) |
1483 | @@ -136,7 +136,7 @@ | |||
1484 | 136 | 136 | ||
1485 | 137 | openerp_site_packages = join(get_python_lib(prefix=''), 'openerp-server') | 137 | openerp_site_packages = join(get_python_lib(prefix=''), 'openerp-server') |
1486 | 138 | 138 | ||
1488 | 139 | files.append((openerp_site_packages, [join('bin', 'import_xml.rng'),])) | 139 | files.append((openerp_site_packages, [join('openerp', 'import_xml.rng'),])) |
1489 | 140 | 140 | ||
1490 | 141 | if sys.version_info[0:2] == (2,5): | 141 | if sys.version_info[0:2] == (2,5): |
1491 | 142 | files.append((openerp_site_packages, [ join('python25-compat','BaseHTTPServer.py'), | 142 | files.append((openerp_site_packages, [ join('python25-compat','BaseHTTPServer.py'), |
1492 | @@ -163,7 +163,7 @@ | |||
1493 | 163 | f.close() | 163 | f.close() |
1494 | 164 | 164 | ||
1495 | 165 | def find_package_dirs(): | 165 | def find_package_dirs(): |
1497 | 166 | package_dirs = {'openerp-server': 'bin'} | 166 | package_dirs = {'openerp-server': 'openerp'} |
1498 | 167 | for mod, path in find_addons(): | 167 | for mod, path in find_addons(): |
1499 | 168 | package_dirs['openerp-server.addons.' + mod] = path | 168 | package_dirs['openerp-server.addons.' + mod] = path |
1500 | 169 | return package_dirs | 169 | return package_dirs |
1501 | @@ -224,8 +224,8 @@ | |||
1502 | 224 | package_dir = find_package_dirs(), | 224 | package_dir = find_package_dirs(), |
1503 | 225 | console = [ | 225 | console = [ |
1504 | 226 | { | 226 | { |
1507 | 227 | "script": join("bin", "openerp-server.py"), | 227 | "script": join("openerp","openerp-server.py"), |
1508 | 228 | "icon_resources": [(1, join("pixmaps","openerp-icon.ico"))] | 228 | "icon_resources": [(1, join("pixmaps","openerp-icon.ico"))], |
1509 | 229 | } | 229 | } |
1510 | 230 | ], | 230 | ], |
1511 | 231 | options = options, | 231 | options = options, |
1512 | @@ -241,7 +241,7 @@ | |||
1513 | 241 | 'caldav', | 241 | 'caldav', |
1514 | 242 | 'pyyaml', | 242 | 'pyyaml', |
1515 | 243 | 'pywebdav', | 243 | 'pywebdav', |
1517 | 244 | 'feedparser', | 244 | 'feedparser', |
1518 | 245 | ], | 245 | ], |
1519 | 246 | extras_require={ | 246 | extras_require={ |
1520 | 247 | 'SSL' : ['pyopenssl'], | 247 | 'SSL' : ['pyopenssl'], |
The bin to openerp renaming did cause problems in the setup.py and the setup.py itself was later corrected. So this branch is unnecessary now.