Commit Graph
59 Commits
Author SHA1 Message Date
Simon Lejeune 95a391f815 [FIX] report: more precise routes in the controller
ie, make `converter` argument not a path but a string. Converter
in our codebase are one-word string anyway (html, pdf).

This is done because a less asset in the report module is not reachable
in debug mode (it is a fake file that is reachable by a fallback in the
http dispatching and the fallback is not done because the `/report/converter
` matched the route of the fake file).
2016-07-05 17:48:32 +02:00
Ravi Patel 9c012ad07e [FIX] report: Traceback on print report from wizard.
Go to Product Variant  >> Select any Product Variant >> Print Report Of Price List >> select any Price List
and Click on print button it's gives traceback like:
http://www.awesomescreenshot.com/image/1288867/b6639baf8cb94e3a90ce9d347b3f4f35

Introduced by https://github.com/odoo/odoo/commit/da3d2fb1dc76654e630fba27ca3dcf03002d9431
2016-06-02 14:46:12 +02:00
Mohammed Shekha da3d2fb1dc [IMP] report: Printed Report names customization
PURPOSE
=======

I've seen this new improvement regarding the naming of the printed reports:
https://www.odoo.com/web?#id=10870&view_type=form&model=project.task&menu_id=3942&action=327

This makes the report have the pdf name being the name instead of the report_name of
the ir.actions.report.xml, which is already an improvement.

But why don't we allow the users to have their own naming conventions?
I mean, we could allow our client to create and name their pdf the way they want, as
they do regarding the attachment.

Not only when it's about saving it as an attachment on the record, but also when downloading
directly the pdf, such that the modification in the previous screenshot, would give the following
result when downloaded:

People need to have their pdf named automatically according to a convention. When you print 10 sales
order during an hour, you don't want to get lost in having the following:
Devis / Commande.pdf
Devis / Commande(1).pdf
Devis / Commande(2).pdf
Devis / Commande(3).pdf
Devis / Commande(4).pdf
Devis / Commande(5).pdf
Devis / Commande(6).pdf
Devis / Commande(7).pdf

especially when those are for different partners.
2016-05-27 09:44:01 +02:00
Christophe Simonis e46f65ab26 [MERGE] forward port of branch saas-6 up to 62fc257 2016-03-04 15:03:39 +01:00
Christophe Simonis 62fc2571c0 [MERGE] forward port of branch 8.0 up to 40fdb84 2016-03-04 14:33:37 +01:00
Denis Ledoux 14282f1659 [FIX] report, website_report: barcode widget
Up to this revision, barcodes set in reports are generated
using the controller `/report/barcode`,
using a `img` HTML tag, e.g. (from `report_location_barcode`)
```
<img t-if="not o.loc_barcode"
     t-att-src="'/report/barcode/?type=%s&amp;value=%s&amp;width=%s&amp;height=%s'
     % ('Code128', o.name, 600, 100)" style="width:300px;height:50px"/>
``

This `/report/barcode` route is set as `auth='user'`, meaning
the route can only be accessed by signed in users.

When wkhtmltopdf prints a report containing such a barcode,
it calls this `report/barcode` route, making sure to pass
the request session in the cookies, so wkhtmltopdf
uses the same session than the one of the user. This is
needed, as only users can access this `report/barcode/` route.

This session is passed in `report.py`, in the method
`_run_wkhtmltopdf`, thanks to the --cookie wkhtmltopdf
parameter.

Nevertheless, if a report is printed through the website
front-end, as public (without a signed in user), the request
session is not associated to a signed in user, and therefore
the route `/report/barcode` refuses the access / redirects
to the login, making it impossible to print a report
containing a barcode without being signed in. This even
if the report is printed as `sudo` through a controller
(as this is the session of the not signed in user which is passed,
not a session associated to `sudo).

Fixes #10621
opw-667797
2016-03-03 13:51:44 +01:00
Denis Ledoux 13f1426bf5 [FIX] report: UPC-A barcodes drawing
It looks like reportlab doesn't handle well
UPC-A barcodes.

As UPC-A barcodes became EAN13 barcodes when
adding a `0` to the beginning of the barcode,
and the render is the same, we ask reportlab
a EAN13 barcode type when a UPC-A barcode is asked,
making sure to add the `0` automatically first.

From Wikipedia:
```
The EAN was developed as a superset of UPC,
adding an extra digit to the beginning of every UPC number.
[...]
the original rules for UPC are treated as a '0'
if read as EAN-13.
A UPC barcode XXXXXXXXXXXX therefore is the EAN-13 barcode 0XXXXXXXXXXXX.
It is possible to prefix a UPC barcode with a 0;
they become EAN-13 rather than UPC-A.
This does not change the check digit.
All point-of-sale systems can now understand both equally.
```
opw-670560
2016-03-03 11:08:36 +01:00
vnsoft 4b635a1da7 [FIX] report: barcode controller: correct humanreadable handling
humanreadble arg comes as a string, so bool(0) was True. Cast it to int before.
2015-12-16 14:48:25 +01:00
Leonardo Rochael Almeida 60af7cac02 [IMP] replace simplejson with stdlib json
The stdlib version of the json library is more recent than the 3.5.3
version we are pinning in `requirements.txt`

There is no reason to use it.

Closes #6940
2015-09-28 10:53:32 +02:00
Christophe Matthieu f8357a1a60 [FIX] report: update data with options for backward compatibility; Remove empty website_report module. 2015-08-14 12:00:02 +02:00
Christophe Matthieu c9492f8904 [IMP] report: adapt report to use web_editor and remove website_report 2015-07-10 17:00:11 +02:00
Olivier Dony 0bd4545348 [LEGAL] Use global LICENSE/COPYRIGHT files, remove boilerplate text
- Preserved explicit 3rd-party copyright notices
- Explicit boilerplate should not be necessary - copyright law applies
  automatically in all countries thanks to Berne Convention + WTO rules,
  and a reference to the applicable license is clear enough.
2015-06-02 03:16:04 +02:00
Mohammed Shekha 0399a1a8c2 [FIX] report: downloadable qweb report files are properly named 2015-02-02 15:18:55 +01:00
Goffin Simon 0fd773a486 [IMP] Cleanup and refactoring of exception handling
Unify and refactor exception handling in framework and addons.

The generic `except_osv` is now deprecated, and replaced by more specialized exception subtypes:
 - `UserError` (renamed from Warning, as it conflicts with the built-in `Warning`) raised when a non-technical error occurs during a business operation. It could be a missing information in the data provided by the user, or a misconfiguration.
 - `AccessError`: raised when any operation is denied because the user conducting it does not have the required access rights.
 - `AccessDenied`: raised when an operation that requires authenticated access is attempted via an unauthenticated request.
 - `MissingError`: raised when an operation is attempted on a record that does not exist.
 - `ValidationError`: raised when an operation violates a SQL or Python constraint.
 - All other exceptions are internal errors due to a system problem or bug, and raised untouched to the client-side, which should display a traceback.

All exceptions take a single message argument.

The `test_exceptions` module has been updated to showcase both new and old (deprecated) exceptions.

A great many old `except_osv` had a useless title with "Error!" or "Warning", those have been removed, as this is handled by the client-side widget that displays the messages.

This commit introduces a more consistent policy for logging errors and warnings:
 - All messages that do not require administrator attention should be logged at INFO level or lower. This includes all errors that are notified to the user in a friendly manner, even for access right problems or validation errors during business operations.
 - All messages that indicate a likely misconfiguration or malicious use by the users should be logged at WARNING level, as they typically require administrator attention.
 - All other unhandled internal errors cannot typically be handled by the user and should be logged at ERROR or higher level, as they require immediate administrator attention.
2015-01-16 17:15:18 +01:00
Christophe Simonis fab4d6d442 [MERGE] forward port of branch 8.0 up to ea54d4a 2015-01-06 11:49:04 +01:00
Leonardo Donelli 4a0b13ed92 [REF] remove vim modelines and resulting trailing blank lines
Let 2015 be a year without modelines!
cf #4174
2014-12-31 15:52:13 +01:00
kevin wang 7566b9d425 [FIX] report barcode cast humanreadable 2014-12-23 00:10:57 +01:00
Simon Lejeune 46ec35ef9a [REM] web_pdf_viewer: PDF in-browser preview
This reverts commit 8b46d7b04f.
2014-12-19 17:48:35 +01:00
Franck Bret e0d482968d [FIX] report add the humanreadable option to barcode image generator
Closes #4334
2014-12-19 05:09:31 +01:00
Simon Lejeune 08604812d8 [FIX] Report: html escape the error json string
session.get_file appends the json to the body of the generated iframe and
then tries to json.parse it by reading contentNode on the body.
Exceptions from `report_download` method may contain `<` and `>`, so when
json.parse tries to json.parse the contentNode, it reads only a part of
the original json string. htmlescaping the json string solves the issue
by preventing the content of the json string to be interpreted as html.
2014-12-12 16:04:31 +01:00
Simon Lejeune 80bb4422be [FIX] Report: don't shallow exceptions in report_download 2014-12-12 16:04:31 +01:00
Parth Gajjar 8b46d7b04f [ADD] web_pdf_viewer: PDF in-browser preview
This module extends web client and reporting tool in order to allow a
preview of PDF files directly in the browser (if supported by the
browser). If you disable it, standard file download stays available.
2014-09-24 14:06:06 +02:00
Simon Lejeune ce0dcac161 [FIX] report: /report/download route should not be website enabled
There's a little magic inside the website enabled route modifying the
context's lang, thus breaking the logic to print the report in the
current user's lang. The direct route to display the report should
stay in website_enabled mode, as it allows to switch lang, use the
website translator and so on.
2014-09-12 12:29:29 +02:00
rlu-odoo 8b67a7202d [REF] OpenERP --> Odoo in various UI texts
Rebranding has been done in:
- data/demo files
- html templates
- help notices
- comments
- logger messages
- and other various messages

(Commit taken from odoo-dev:8.0-improve-openerp-odoo-rlu at rev 7deaa08)

Closes #1260
2014-07-18 13:45:41 +02:00
Simon Lejeune fc8592adf2 [FIX] Report: translation fixed, use of 'primary clone' of web.layout and website.layout, minimal template is now a QWeb template 2014-06-27 12:00:49 +02:00
Olivier Dony 04211015fc [MERGE] Forward-port of latest saas-4 fixes, up to 0452851 2014-05-27 20:49:49 +02:00
Simon Lejeune 1745c738ee [FIX] Report: double the default height/width of barcode image to avoid a blurred/unusable barcode once integrated in a report 2014-05-21 12:59:05 +02:00
Fabien Meghazi 8eed143112 [IMP] Invert multilang logic in route decorator. True by default, can be set to False explicitlty 2014-05-13 11:35:45 +02:00
Simon Lejeune afd490c984 [REM] removed details_summary, sales_user, sales_user_today, payment_user reports, wizards and rml
[REM] dead code:  pos_box_entries.py/xml, pos_box_out.py/xml, pos_return_view.py/xml
[ADD] lines, invoice, cashbox of the day, payment, receipt, users product reports converted to QWeb. Added YML tests for the bank statement reports.
[FIX] closed cashbox of the day sql using old fields in its queries, yml test not correctly generating an invoice from a pos order

bzr revid: sle@openerp.com-20140414104954-xj10wi640tyr3ufe
2014-04-14 12:49:54 +02:00
Simon Lejeune 2c90fad7ac [REF][IMP] report module: merge the four report's routes into one; extra report arguments are passed json encoded (therefore removed the _eval_params method); added an abstract_report model to wrap old-style report without touching them; Removed formatLang method from report as it is embeded in the old-style report localcontext; moved the save_in_attachment logic in a method for readability; adapted the action manager to encode data and context of action if needed; fixed the post install test to test the generic report
bzr revid: sle@openerp.com-20140402162344-3lrako0jepmhasvl
2014-04-02 18:23:44 +02:00
Simon Lejeune c771903c3b [IMP] account* reports: removed rml, added qweb template, changed the wizard to return qweb actions
bzr revid: sle@openerp.com-20140327182520-uu7ezsqic30x7mqo
2014-03-27 19:25:20 +01:00
Simon Lejeune 1b6b320445 [FIX] fixed the report type 'controller', fixed the report_vat_xls route
bzr revid: sle@openerp.com-20140321183649-rg8wrlvcrzvv0d29
2014-03-21 19:36:49 +01:00
Simon Lejeune 8581b1847f [IMP] Multiple improvements: eval_param is set on the controller, the subprocess to get the version of wkhtmltopdf is only open at OpenERP start, better exceptions handling (try to avoid exceptions shallowing) and the rpc call from the webclient to know the version of wkhtmltopdf is only done once
bzr revid: sle@openerp.com-20140321164716-uksuu6hsjj7q3698
2014-03-21 17:47:16 +01:00
Simon Lejeune 1128743932 [FIX] Added the decorator website on the get_file route, correctly pass the context on the mrp bom structure and allow to install report module without pypdf installed
bzr revid: sle@openerp.com-20140321122103-mzp465s8hxckq4ai
2014-03-21 13:21:03 +01:00
Simon Lejeune 57e6e8fd28 [FIX] Multiples fixes: correct context passing, changed osv.Model to osv.AbstractModel to avoid creating tables in database when the model use for the reports contains only method
bzr revid: sle@openerp.com-20140321105806-0bwo992995la91fe
2014-03-21 11:58:06 +01:00
Simon Lejeune ad50d5fcfe [FIX] Multiple improvements in report including giving formatlang a cursor and a uid via a lambda method, cleaning of some comments and restoring the page numbering
bzr revid: sle@openerp.com-20140320165841-21clvch4ujak1y3m
2014-03-20 17:58:41 +01:00
Simon Lejeune 52522bf0f9 [FIX] get_pdf can be called on is own (no need to call get_html before on particular controller-report) and make the multiple ids work
bzr revid: sle@openerp.com-20140320140609-7ozly6f55sgeow7k
2014-03-20 15:06:09 +01:00
Simon Lejeune 221d2a6eeb [FIX] Reports not using the generic controller should not declare a controller anymore. They are now openerp models and are availabel either trough openerp model 'report' with get_html, get_pdf or through a controller. Adapted report_vat this way.
bzr revid: sle@openerp.com-20140320133425-z04ewof8ktjanmn9
2014-03-20 14:34:25 +01:00
Simon Lejeune 060a171a26 [WIP] Refactoring report module to avoid using request in OpenERP models : the generation of the html/pdf is now done on the model side and not on the controller side anymore => it is possible to generate a pdf python-side without making a request to an url, request that can be refused because of access right in the request object at this precise moment
bzr revid: sle@openerp.com-20140319183614-vibnmm6kkh2h6piu
2014-03-19 19:36:14 +01:00
Simon Lejeune 77e56eea05 [REF] Changed seek(0) to flush when manipulating files and reordered the impors
bzr revid: sle@openerp.com-20140313133459-y3zvhhjby8pysew1
2014-03-13 14:34:59 +01:00
Simon Lejeune 5f417a7397 [FIX] Removed the ending slash of download attachment routes
bzr revid: sle@openerp.com-20140311171219-j80lkmaezfezptxx
2014-03-11 18:12:19 +01:00
Xavier Morel b73cef9007 [FIX] don't fail installation entirely if pyPdf isn't available
should print an error message though

bzr revid: xmo@openerp.com-20140310083204-9akr4ucwqzbv3oxu
2014-03-10 09:32:04 +01:00
Simon Lejeune 27a232596c [IMP] Add notification on the web client when wkhtmltopdf is not present or too old
bzr revid: sle@openerp.com-20140227154046-hxnhyho6v096hjx8
2014-02-27 16:40:46 +01:00
Simon Lejeune a82c186611 [IMP] Added a route to check presence and version of wkhtmltopdf. If the soft is not present, qweb-pdf fallback on qweb-html mode.
bzr revid: sle@openerp.com-20140227144810-d14iwu5pudmrshh9
2014-02-27 15:48:10 +01:00
Simon Lejeune 258c8b5ee5 [FIX] type in the import of the reset stylesheet
bzr revid: sle@openerp.com-20140225144407-li218a3ppz4f8y7z
2014-02-25 15:44:07 +01:00
Simon Lejeune d64c4a3f17 [FIX] mrp: removed empty files and barcode controller value set to path in order to be able to receive URL
bzr revid: sle@openerp.com-20140224151944-dqi63kjvyejp6xja
2014-02-24 16:19:44 +01:00
Simon Lejeune 901172a194 [FIX] Workaround to get printing done with 1 worker
bzr revid: sle@openerp.com-20140224134732-imptqwtzyoyml2qq
2014-02-24 14:47:32 +01:00
Simon Lejeune 5557a1152c [IMP] Report controller: little changes to get the barcode route working with reportlab 2.5
bzr revid: sle@openerp.com-20140224120749-nlg3n95vgghxv63y
2014-02-24 13:07:49 +01:00
Simon Lejeune 09d34a8e96 [IMP] Report controller: put the css/js as relative links in the minimal html page (they were copied inline)
bzr revid: sle@openerp.com-20140224103329-pmmmcl56mzmynmx5
2014-02-24 11:33:29 +01:00
Simon Lejeune ffa475afcd [IMP] Added the possibility to define ultra-specific reports outputing any king of file. These reports are of type 'controller' because they redirects to a controller that must returns a response containing the http headers 'content-type' and 'content-disposition'. The route for this controller is specified in the report_file field. Added an XLS version of the tax report for the POC (testable by setting 'report_vat' type to controller and setting '/report/account.report_vat_xls' in the 'report_file' field).
bzr revid: sle@openerp.com-20140221163320-g5ouoywsuduoi0qe
2014-02-21 17:33:20 +01:00