From b6a7402fdbddfe817fa36292e6f89e8659f9bdea Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Wed, 21 May 2014 11:20:37 +0200 Subject: [PATCH 1/4] [FIX] report: correct page numbering --- openerp/report/render/rml2pdf/trml2pdf.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/openerp/report/render/rml2pdf/trml2pdf.py b/openerp/report/render/rml2pdf/trml2pdf.py index 91dfc9dd79b..00b119ac61f 100644 --- a/openerp/report/render/rml2pdf/trml2pdf.py +++ b/openerp/report/render/rml2pdf/trml2pdf.py @@ -104,7 +104,7 @@ class NumberedCanvas(canvas.Canvas): self.setFont("Helvetica", 8) self.drawRightString((self._pagesize[0]-30), (self._pagesize[1]-40), " %(this)i / %(total)i" % { - 'this': self._pageNumber+1, + 'this': self._pageNumber, 'total': page_count, } ) @@ -1001,8 +1001,6 @@ class _rml_template(object): if story_cnt > 0: fis.append(platypus.PageBreak()) fis += r.render(node_story) - # Reset Page Number with new story tag - fis.append(PageReset()) story_cnt += 1 try: if self.localcontext and self.localcontext.get('internal_header',False): From 1b40b5b37a0f017da29accb770a1482626d83432 Mon Sep 17 00:00:00 2001 From: --global Date: Wed, 21 May 2014 16:52:24 +0200 Subject: [PATCH 2/4] [IMP] [BACKPORT] Converto bzrignore to gitignore, like what has been done in master. --- .bzrignore | 15 --------------- .gitignore | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 15 deletions(-) delete mode 100644 .bzrignore create mode 100644 .gitignore diff --git a/.bzrignore b/.bzrignore deleted file mode 100644 index 86a1881981f..00000000000 --- a/.bzrignore +++ /dev/null @@ -1,15 +0,0 @@ -.* -*.egg-info -*.orig -*.vim -build/ -RE:^bin/ -RE:^dist/ -RE:^include/ - -RE:^share/ -RE:^man/ -RE:^lib/ - -RE:^addons/\w+/doc/_build/ -RE:^.*?/node_modules diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000000..4b38dc02ac7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +# sphinx build directories +_build/ + +# dotfiles +.* +# compiled python files +*.py[co] +# setup.py egg_info +*.egg-info +# emacs backup files +*~ +# hg stuff +*.orig +status + +# generated for windows installer? +install/win32/*.bat +install/win32/meta.py + +# various virtualenv +/bin/ +/build/ +/dist/ +/include/ +/lib/ +/man/ +/share/ +/src/ \ No newline at end of file From 37d6fe344b3735f6b33f32cb8a1322cc3d9fc39d Mon Sep 17 00:00:00 2001 From: Richard Mathot Date: Wed, 21 May 2014 17:10:50 +0200 Subject: [PATCH 3/4] [FIX] website_event_track: display speakers name to public users --- addons/website_event_track/controllers/event.py | 11 +++++++++++ addons/website_event_track/views/website_event.xml | 12 ++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/addons/website_event_track/controllers/event.py b/addons/website_event_track/controllers/event.py index 712c168e1db..e24aee7e62d 100644 --- a/addons/website_event_track/controllers/event.py +++ b/addons/website_event_track/controllers/event.py @@ -88,10 +88,21 @@ class website_event(http.Controller): days_tracks_count[day] = len(tracks) days[day] = self._prepare_calendar(event, tracks) + cr, uid, context = request.cr, request.uid, request.context + track_obj = request.registry['event.track'] + tracks_ids = track_obj.search(cr, openerp.SUPERUSER_ID, [('event_id', '=', event.id)], context=context) + speakers = dict() + for t in track_obj.browse(cr, openerp.SUPERUSER_ID, tracks_ids, context=context): + acc = "" + for speaker in t.speaker_ids: + acc = speaker.name + u" – " + acc if acc else speaker.name + speakers[t.id] = acc + return request.website.render("website_event_track.agenda", { 'event': event, 'days': days, 'days_nbr': days_tracks_count, + 'speakers': speakers, 'tag': tag }) diff --git a/addons/website_event_track/views/website_event.xml b/addons/website_event_track/views/website_event.xml index 45531ef73b0..3cea1b35599 100644 --- a/addons/website_event_track/views/website_event.xml +++ b/addons/website_event_track/views/website_event.xml @@ -85,8 +85,8 @@ -
- +
+
@@ -98,11 +98,11 @@ -
-
- -
+
+
+ +
From a096ae0080bc6555a8b832e87d4de6b827257304 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Wed, 21 May 2014 19:12:37 +0200 Subject: [PATCH 4/4] [FIX] http: force rolleback for failed http request 1st issue: When an exception was raised, it was badly handled by the website in case of website_enabled key. The response page was generated without calling super. The WebRequest object being responsible to rollback the transaction in case of errors. 2sd issue: The _failed attribute is required to rollback the transaction in an WebRequest object. Previously it was only set in the JsonRequest object (which inherit from WebRequest), replace by call to super. The attribute _failed is now set in the WebRequest object. --- addons/website/models/ir_http.py | 3 ++- openerp/http.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index 696734b5f05..f724eb2fa5a 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -99,6 +99,7 @@ class ir_http(orm.AbstractModel): werkzeug.exceptions.abort(werkzeug.utils.redirect(url)) def _handle_exception(self, exception=None, code=500): + res = super(ir_http, self)._handle_exception(exception) if isinstance(exception, werkzeug.exceptions.HTTPException) and hasattr(exception, 'response') and exception.response: return exception.response if getattr(request, 'website_enabled', False) and request.website: @@ -136,7 +137,7 @@ class ir_http(orm.AbstractModel): html = request.website._render('website.http_error', values) return werkzeug.wrappers.Response(html, status=code, content_type='text/html;charset=utf-8') - return super(ir_http, self)._handle_exception(exception) + return res class ModelConverter(ir.ir_http.ModelConverter): def __init__(self, url_map, model=False): diff --git a/openerp/http.py b/openerp/http.py index 24f538f3828..68c206793bc 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -207,7 +207,7 @@ class WebRequest(object): """Called within an except block to allow converting exceptions to abitrary responses. Anything returned (except None) will be used as response.""" - raise + self._failed = exception # prevent tx commit def _call_function(self, *args, **kwargs): request = self @@ -374,8 +374,8 @@ class JsonRequest(WebRequest): """Called within an except block to allow converting exceptions to abitrary responses. Anything returned (except None) will be used as response.""" + super(JsonRequest, self)._handle_exception(exception) _logger.exception("Exception during JSON request handling.") - self._failed = exception # prevent tx commit error = { 'code': 200, 'message': "OpenERP Server Error",