Commit Graph
507 Commits
Author SHA1 Message Date
qsm-odoo 3daab8ac16 [FIX] web_editor, *: allow cropping all theme images
* base, website

An image URL may be like "/web/image/<xml_id>" where <xml_id> is the
xml id of an ir.attachment. In fact, the route does not use the xml_id
but the 'key' field, which is normally equal to the xml_id for standard
attachment. In the context of themes + multi-website, the value used as
an xml_id may refer to a theme.ir.attachment instead of an ir.attachment
and this led to a bug as those must not be used the same way.

The crop route which gets image information is adapted by this commit to
always look for the *current website* *ir.attachment* related to the
given xml_id/key.

Thanks to @kig-odoo for spotting the issue.
Closes https://github.com/odoo/odoo/pull/27588

closes odoo/odoo#27611
2018-10-10 09:47:45 +00:00
mreficent dddd4072de [FIX] v12 urls
Was still pointing to old links

closes odoo/odoo#27443
2018-10-09 13:44:38 +00:00
ThanhDodeurOdoo 8ea5637c1d [FIX] base: ir_http access mode
Before the fix, routes using binary_content with access_mode
and access_token didn't work properly since access_token
was compared to the object's access token in all cases.

This commit:

 -prevents the object's access_token check if
access_mode is truthy (since access_mode does its own access_token
check).

 -changes check_access_mode so it now returns a boolean instead of
 a record and is now private.

Closes #27401
2018-10-03 18:10:07 +02:00
Pedro M. Baeza 1ad4d42f0b [ADD] *: replace hardcoded data URIs with helper
- Add a method for generating an image data URI, and expose it in QWeb context

- Fix reports, website templates or mail templates with data hardcoded
  data URIs, to use the helper (Python cases), or the existing
  kanban_image helper (for JS cases)

This will gracefully handle SVG support in addition to classical image
formats.

Closes #26635
2018-10-03 17:48:14 +02:00
Pedro M. Baeza 1be50fdeaf [ADD] *: support SVG images
Introduce official support for SVG files in the framework, including the
following parts:

1. When client-side SVG images are uploaded, the content is displayed until
you save using data URI scheme according RFC 2397 [1]. This scheme requires
to specify content format. Using hardcoded "image/png" works for all images
types except SVG.
Type-sniffing is done using "magic byte" detection via the first base64
encode byte, so that the proper data URI scheme can be used.
This should not cause SVG-related security problems as the file is
displayed through `<img>` tag, which does not allow SVG scripting [2].

2. Make /web/image controller compatible with SVG

3. Add support for SVG files for company logo, which uses a dedicated
controller.

4. Resizing of SVG files is a no-op, as it makes little sense for a
vector-based format. We also want to avoid micro-alterations to the SVG
document (in "natural" viewport parameters) as we would store multiple
copies of the files in the filestore.

5. Because SVG files are inherently dangerous, upload of SVG files is
restricted to administrators, either by blocking it directly before
saving it in the database (binary fields with attachment=False), or by
neutering them to text/plain mimetype (for binary fields with
attachment=True)

6. Add tests for the SVG upload cases and for the non-admin uploads.

[1] https://tools.ietf.org/html/rfc2397
[2] https://www.w3.org/wiki/SVG_Security

Closes #26635
2018-10-03 17:48:01 +02:00
qsm-odoo d9a589ad7a [FIX] base, website: review https://github.com/odoo/odoo/commit/89678c60412feea004cd3081200092365e6ef3b4
Share the common code in the ir.attachment model and add a sort order
and a limit to attachment serving.
2018-10-02 15:17:09 +02:00
Yannick Tivisse b2b9545cf3 [IMP] ir_ui_view: Log warning on incorrect 'groups' attribute
Purpose
=======

They are a lot of places where we set an attribute 'groups' on a view element and:

- The group doesn't exist anymore
- The group xmlid is not correct
- The group xmlid exists but the modularity is not respected (example: group_stock_user
  used in a view in the 'product' module).

Where it happens, nothing warns the user or the developer. The element is just never
rendered.

Specification
=============

In the method _check_xml, log a warning if a 'groups' attribute is set and if
a group doesn't not exist at that moment.
2018-10-02 12:35:34 +02:00
Martin Trigaux c9837ac5dc [FIX] base: compare on original module
Introduced at 574f4c3d
model._module has for value of the last module extending the model.
This means that, when a module B inherit from a model defined in a module A (e.g
to add a field on the model), an external id, tagged with module B, will be
created for each field of the model, including the one defined only in A.

The intention of the patch at 574f4c3d was to include the automatic fields (i.e.
LOG_ACCESS_COLUMNS) into the condition.
Without that condition, the fields such as create_date were deleted when
upgrading a module (not defined in any module)
2018-10-02 11:51:15 +02:00
qsm-odoo 89678c6041 [FIX] base, website: make attachment serving multi-website
- Reaching an attachment datas thanks to its URL was not multi-website
- Compiling assets with URLs to attachment datas was not multi-website
2018-10-01 21:33:32 +02:00
Christophe Simonis 43b63a0465 [MERGE] forward port branch saas-11.4 up to 57e387b645 2018-10-01 16:01:54 +02:00
Christophe Simonis 998723b909 [MERGE] forward port branch saas-11.3 up to e980af9df0 2018-10-01 11:27:51 +02:00
Christophe Simonis e980af9df0 [MERGE] forward port branch 11.0 up to a9a556178d 2018-10-01 10:44:38 +02:00
Rémi Rahir b6a981405e [IMP] snailmail: adding special map for the country names 2018-09-29 11:12:38 +02:00
Raphael Collet 574f4c3deb [FIX] base: update XML ids of automatic fields
Upon module upgrade, automatic fields are removed from `ir.model.fields`.  This
is because those fields do not belong to the module of their model.  Fix the
condition to update their XML id when the module of their model is upgraded.
2018-09-27 15:29:53 +02:00
qsm-odoo 509a7f73b0 [FIX] website, *: restore color edition in theme dialog
* base, web_editor

Commit https://github.com/odoo/odoo/commit/44d659d0df6b50ae230af39a0d41a46b9549e2ae
made the system work with multi-website but fetching the assets content
was unfortunately not working in multi-website...

Also restore correct search operators.
2018-09-27 13:56:09 +02:00
ThanhDodeurOdoo ed2a8c4f3b [FIX] documents, base: pdf split
Reason: Following feedback from FP and AVW.

- Fixed the "split PDF" feature, it is now possible to leave an
empty page input, check the "split all" box and get a result.

Task: 1888982
2018-09-27 12:12:33 +02:00
Adrian Torres 3f4f77fd9d [REF] *: adapt code to new related default behaviour
This commit adapts the business code to changes introduced by
the parent commit in order to keep the same behaviour as before.

All readonly=False fields will have to be checked afterwards to confirm
that the business case requires write access to the source field.
2018-09-27 12:10:23 +02:00
Raphael Collet 3a30391e9d [FIX] base: superuser cannot become active 2018-09-27 09:54:28 +02:00
Christophe Simonis 5f08d82bcd [MERGE] forward port branch 11.0 up to fd122aec52 2018-09-26 19:37:29 +02:00
ThanhDodeurOdoo 2d82692648 [REF] documents, base: binary_content
- Changed the binary_content method
to make it more generic and allow alternative ways of checking
the access rights by using a new method check_access_mode.

   Reason: Asked by ODO following documents' security review.

- if all pages are processed, splitting a pdf will
archive the original attachment.

   Reason: FP feedback.

Task: 1853490
2018-09-26 19:18:38 +02:00
Martin Geubelle 77f6384240 [FIX] base: description of contact widget options
There were spelling errors in the description of the `contact` qweb
widget options.
2018-09-26 13:48:48 +02:00
Raphael Collet a99e04dfee [FIX] base: perform field reflection in batch
Speedup 4% of installation time.
2018-09-26 11:46:30 +02:00
Raphael Collet 13fc1380ba [FIX] ir_ui_view: do not check arch twice upon install/upgrade
After a module upgrade, validate the architecture of the module's views that
are impacted by updates, but have not been checked yet.  Before this patch,
views were checked twice on average.

This patch speeds up the installation of modules by about 15% without demo
data.  With demo data, the speedup is around 10%.
2018-09-25 10:41:55 +02:00
Martin Geubelle 587b21fb46 [FIX] base: correctly keep report values
When rendering a report (`render_qweb_html` for example), one can pass `data`
(a dict of values, used for the template rendering).

This dict was overriden in `_get_rendering_context` if the method
`_get_report_values` on the report model was not correctly written.

This was causing an issue when rendering a report in Studio because the `studio`
key was overriden.

Now, the `data` dict is updated (instead of replaced) with the rendering context.
2018-09-25 09:53:48 +02:00
ThanhDodeurOdoo b428bf1023 [FIX] ir.attachment: thumbnails.
- attachments with res_field do not get thumbnails anymore.
2018-09-24 14:37:59 +02:00
Martin Trigaux 19523ea21b [IMP] base: use a generic warning message
l10n_mx_edi is a specific enterprise module
amount_to_text may be used in different modules (e.g. account_check_printing)
2018-09-24 09:58:21 +02:00
Akim Juillerat 9cc39b77fc [ADD] base: split pdf merge method
To be able to extend the way different PDFs are merged together

closes odoo/odoo#27161
2018-09-21 14:42:18 +00:00
Yannick Tivisse c67ac34ee4 [IMP] base: Add missing _description on models 2018-09-21 16:13:59 +02:00
Antony Lesuisse a6e1eb9f0a [ADD] partner_autocomplete: Added autocomplete on partners fields
For Name field or M2O, gives a list of companies
Data comes from Odoo IAP Service
2018-09-21 14:02:22 +02:00
Raphael Collet 0f04b64544 [FIX] base: put loaded XML ids in a set (no need for a dict)
This is simpler, cleaner, and has a smaller memory footprint.
2018-09-21 13:21:49 +02:00
Nimesh Jethva 7eea263f36 [IMP]base_*: Improvement in model description
Purpose of this commit is to give description more "business oriented"
because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers.

Related Task ID : 37311
2018-09-21 11:45:15 +02:00
Prakash Prajapati 4b5265b9b9 [IMP] contact, product, various: improve labels and tooltips of partner and product fields
Purpose: improve understanding of partner and product models as well as their
daily use. This is done by improving tooltips and labels of some fields
according to business logic.

This commit is related to task ID 1880696 and closes PR #27133 .

Thanks to @xmo-odoo for its in-depth review.
2018-09-21 10:57:58 +02:00
Laurent Smet 7053ae7828 [IMP] account: management of reconciliation rules
Bank statement lines need to be matched with entries; We have to automate this operation as much as possible.
At the same time, create an algorithm that fit everyone needs is quite impossible.
For that reason we will let users choose the rules they want with the improvement of reconciliation models.

Note that we did it only for bank statement reconliation, not for manual reconciliations.

Was task: 1877375
Was PR #26669
2018-09-20 17:11:52 +02:00
Yannick Tivisse b3fef6a72a [IMP] base: Order user's type groups by id
Purpose
=======

Traceback when following these steps:
- Install MRP
- Load French translations
- Set language to French
- Activate 'work orders' on MRP configuration

Error: The field 'sel_groups_9_10_1' doesn't exist.

This is because the only selection groups field on the res_users view
that doesn't have a transitive closure (the user's type Internal/Portal/Public)
is ordered by name.

1: Internal User
9: Portal
10: Public

becomes

9: Portail
10: Public
1: Utilisateur Interne

which lead to the traceback.

We should retrieve these groups ordered by 'id' to avoid the issue.
2018-09-20 16:19:24 +02:00
sed-odoo 3a883e6728 [IMP] l10n_ch,account,website_sale: Add SwissQR Code on invoice and improve the SEPA QR Code usability
Purpose
=======

 - Add the SwissQR Code on the invoice in aim to replace the actual ISR
 - Improve the settings of the SEPA QR Code to make it more user friendly

Specifications
==============

 - ln_ch:

   - Add a SwissQR Code on the invoice to fit the Switzerland QR-Bill Format
   - Use the "partner_bank_id" field to generate the QR Code
   - Add function to get the address number out of the field "street" and "street2"

 - account:

   - Remove the SEPA QR Code's journal settings from the general setting
   - Display the "partner_bank_id" field on the invoice "Other info" page
   - Use the "partner_bank_id" field to generate the QR Code

 - website_sale:

   - Add a check box on the payment acquirers to use the SEPA QR Code on the e-commerce
   - Use the payment acquirer "journal_id" field to generate the SEPA QR Code
2018-09-20 09:41:06 +02:00
Rémi Rahir 46dc8ceef9 [IMP] snailmail: adapt reports for snailmail
In order to ease the integration with the snailmail posting service provider,
We will generate specific reports with a layout that fits their
criteria.
In short,
* we specify the postition of the recipient's address on the
document
* we force the A4 format

This also support the din5008 type B report.
2018-09-19 17:58:35 +02:00
Rémi Rahir 6ba9a2011f [FIX] account, base, web: fixing report layouts
Reverting some changes introduced in
f29df7fb2e.
By changing the html tag from 'article' to 'page' we were losing the
style on the body of the document. The problem it was supposed to tackle
will be addresed in the future.
2018-09-19 17:58:35 +02:00
Raphael Collet 19e9909557 [FIX] base: avoid prefetching all the fields when getting context
When getting the context of res_users, all the fields are read but if
the schema is being modified and the modifications are not yet commited
in the database, this leads to a bad query.

With this commit, a read is used to fetch only the needed fields.

Thanks to @RCO for finding this issue that only occurs in specific
planetary alignment.
2018-09-19 15:58:10 +02:00
Sébastien Theys bb6813956e [FIX] base: fix "flex-direction: column" for wkhtmltopdf
This css rule is used notably by bs4 .card-deck. The fix is needed to make sure multiple cards inside a card-deck prints on a new line instead of overflowing horizontally out of the view.

PR: #26801
task-1876864
2018-09-19 12:00:37 +02:00
Christophe Simonis 77849703a1 [MERGE] forward port branch saas-11.5 up to 197119a37d
closes odoo/odoo#27088
2018-09-19 09:12:38 +00:00
Aaron Bohy 66c716d781 [FIX] *: adapt calls to _is_superuser
Rev. 2f7c03d added a second admin user (id 2), the 'human' one, on
top of the 'technical' one (id 1, also known as the superuser).
Basically, all calls to _is_superuser() should have been changed to
_is_admin(). They weren't. As a consequence, some features that
were previously available for the admin weren't anymore (e.g.
tours).

This rev. replaces all calls to _is_superuser() by calls to
_is_admin().
2018-09-18 20:31:28 +02:00
Pierre Masereel 7288b4779a [IMP] base, tools, web_edeitor: improve ir_translation insertion
The ir_translations were pretty slow to load, this was mainly caused by
the condition in variable 'find_expr' and the import of po values in the
temporary table.

To improve the load performance, we made two improvement:

1. Insert the row in the temporary table by batch instead of making an
   insertion for each record.
2. Replacing the condition in the variable 'find_expr' by partial unique
   index. To perform such a thing, we had to separate the type model in
   two types, 'model' and 'model_terms' because it wasn't possible to
   create a partial unique index on type 'model' because the type was
   used for two different use cases. The type model is now used for
   fields that have have a value not callable for the attribute
   translate, these field can only have one record for the same field,
   model, res_id and language. And the type 'model_terms' is used for
   the fields callable, because they can have multiple sources for the
   same res_id.

We also removed the deprecated types 'report', 'help', 'view', 'field'.

Thanks to @rco-odoo for the improvement of the first point.
2018-09-18 14:30:03 +02:00
Christophe Simonis a12c4d284c [MERGE] forward port branch saas-11.4 up to a1b384d66b 2018-09-18 11:42:52 +02:00
Christophe Simonis a1b384d66b [MERGE] forward port branch saas-11.3 up to 2de573440e 2018-09-17 19:40:47 +02:00
Christophe Simonis 0942a57b5a [MERGE] forward port branch 11.0 up to f2b8caff07 2018-09-17 18:03:41 +02:00
Christophe Simonis 3117afbb7e [MERGE] forward port branch saas-11.5 up to 4e85ca8a76 2018-09-17 12:07:26 +02:00
Nicolas Martinelli de1b97f493 [FIX] base: set_value
By default, the `set_value` method doesn't do anything, and is expected
to be overridden. However, `ir.default`, groups and
`ir.config_parameter` are set BEFORE `set_value` is actually called.

This is an issue when it is necessary to retrieve one of these values
before the save, for example in order to compare the value before and
after.

We move the setting of the various values directly in the `set_value`.
This way, it becomes possible to interact with the values before any
modification is performed. On the other hand, the existing logic remains
unchanged.

opw-1882068
2018-09-17 08:28:38 +02:00
Fabien Pinckaers 53eb6d51f9 [IMP] base: speed improvement (-450 SQL queries) 2018-09-15 10:22:09 +02:00
Christophe Simonis 9c77066f34 [MERGE] forward port branch saas-11.4 up to 6c103589c1 2018-09-14 16:00:17 +02:00
Raphael Collet 2b9d5f929c [FIX] base: avoid clash between field and method copy 2018-09-14 14:26:24 +02:00