Commit Graph
946 Commits
Author SHA1 Message Date
Christophe Simonis 5e055a2afd [MERGE] forward port branch saas-11.4 up to f6ca72b3ce 2018-11-02 10:52:55 +01:00
Christophe Simonis f6ca72b3ce [MERGE] forward port branch saas-11.3 up to 21eb31d804 2018-10-31 20:43:03 +01:00
Christophe Simonis 21eb31d804 [MERGE] forward port branch 11.0 up to a587325ca7 2018-10-31 19:22:21 +01:00
Akim Juillerat b4ca8d0bc6 [FIX] website: Add onchange language_ids on website model
On res.config.settings for website, when removing a language from language_ids, if this language is defined as default_lang_id, the default language will be updated by an onchange to prevent any inconsistency.
The same should happen when doing this directly on the form view of a website record.

closes odoo/odoo#27727
2018-10-19 13:58:42 +00:00
Xavier Morel 238e561ad9 [FIX] website: current website caching
Not taking fallback in account means incorrect values can get cached/retrieved
on fallback v not fallback cases

closes odoo/odoo#27989
2018-10-19 15:28:43 +00:00
Jeremy Kersten 1ccd148775 [FIX] website: multi website - auto public user
Before this commit
When user was in company A and try to create a second website for company B an
error was raised, because the search from user in company A don't find a public
user in company B and the same default user (public-user@company-B.com) was
created again before to be catched and raised by the sql contraint login_key.

Now we use '-' instead of '_' to avoid parser of email to detect it as invalid

After this commit, we don't have anymore the error:
    - 'You can not have two users with the same login!'
 or - 'Login must be a valid email address'

opw-1891315

closes odoo/odoo#27873
2018-10-17 08:52:58 +00:00
Romain Derie b48d2b6b5e [FIX] website: Remove related website menus on module uninstall
Commit 850e1675eb improved the website.menu creation on module install
(eg: /shop for website_sale).
This commit aims to do the same on module uninstall.

Before this commit:
Uninstalling a website module would uninstall its website.menu (/shop) stored
on the default menu tree.
But the copies of that default menu, on websites, would remains.
Indeed, there is no direct link between the default menus and its copies.

More annoyingly, installing that website module again after uninstalling it
would create a new copy of the default menu, resulting in multiple same menus
on website.

Now, if the menu to be uninstalled is in the default tree menu, we remove all
its copies (the website.menu having that same URL).

Closes #27488, closes #27721
2018-10-12 12:11:09 +00:00
Lucas Perais (lpe) f2ff47403f [FIX] website: multiwebsite supports optional 'subviews'
on the webiste sale, have a category with a subcategory
Then in the customize menu, enable "ecommerce categories"

Before this commit, the option to have collapsible categories wasn't there
This was because, due to multi_website, the children views of the "categories"
that were inactive weren't written upon when copying their parent

After this commit, the functionality is back

OPW 1893169

closes odoo/odoo#27796
2018-10-15 12:46:16 +00:00
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
Olivier Dony f4041de4ed [FIX] website: use proper env in model methods
Using `request.env` should be reserved for code that lies outside of
model methods (typically: controllers). Model methods have to use the
appropriate `self.env`.

This particular case caused frequent Python-PostgreSQL undetected
deadlocks during installations of website-related modules in 12.0.
One way to reproduce it was to trigger the installation of both
`website` and `website_form` in a single transaction, with neither
pre-installed.

Installing Apps that depend on both would do the job, such as
`website_sale`, provided that GEOIP is available on the system.

In details:
During installation of `website`, new attachments creation would call
get_current_website (see 602807acdf and
4f6ec1cd2a), using the wrong database
cursor: the one from the request instead of the one for the
installation, as provided by `ir.module.module._button_immediate_function`.
This would acquire database locks on `res.country` and `ir.model` in
the wrong transaction, later blocking alterations to `ir.model` in
the installation transaction, e.g. for website_form's
'website_form_access' column.

This combination of events was possible before 12.0, but more difficult
to reproduce as module installations used to happen with a super-user
account, ignoring ACL checks and therefore not locking `ir.model`.
2018-10-08 19:29:24 +02:00
Jeremy Kersten c39d559ebb [FIX] website: auto enable multi website when creating a second website
Before this commit, you need to check manually multi website.
And demo data create 2 websites by default, but don't check it.
2018-10-08 15:51:29 +02:00
Jeremy Kersten 7549ea0371 [FIX] website: use email as login for public user
Multiwebsite cannot work on the saas since the login use a constraint to check that it is an email.
2018-10-08 15:29:12 +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
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
qsm-odoo a3aaad9286 [REF] website: use get_current_website method instead of context 2018-10-01 15:07:50 +02:00
Christophe Simonis 998723b909 [MERGE] forward port branch saas-11.3 up to e980af9df0 2018-10-01 11:27:51 +02:00
qsm-odoo dd139948f0 [IMP] web_editor: use inheriting views for oe_structure content
Before this commit, when using the website editor, modifications were
saved in place in the original view. The view was also marked as non
updatable so that when an user migrates its database, he does not lose
its modifications.

The problem with this system is that users were able to keep their
modifications at the cost of having views which are not up-to-date with
the latest odoo updates.

Now, the views' content which is inside an oe_structure element is saved
in an inheriting view instead of the original view. The original
view is not marked as non updatable anymore.

Note 1: we only consider elements with the 'oe_structure' class which
also have an id containing the 'oe_structure' string.

Note 2: if a non oe_structure but editable content is edited, the
original view is still marked as non updatable (however, with the new
multi-website feature, this may not be necessary as the edited view will
be duplicated to be website-specific... we may want to disable the
behavior in a future update).
2018-09-30 19:55:17 +02:00
qsm-odoo 55131b8f5b [REF] website, *: add automatic context for call_kw rpc
* web_editor, website_blog, website_crm_partner_assign, website_links,
  website_livechat, website_mail_channel, website_mass_mailing,
  website_slides

Calling a model's method thanks to an RPC will now always send the
web_editor context automatically, making sure the method gets the
website_id all the time, removing the need to guess the current website
(now the get_current_website method uses the context website_id if any).

Note: other routes already have the website_id via request.env.context
if they correctly set website=True (this commit also adds website=True
for scss files customization routes).
2018-09-30 19:55:17 +02:00
Romain Derie 850e1675eb [FIX] website: store default menu tree (apps menu) for new website
Previously, for multi-websites it was decided that:
  - creating a new website would not get already existing apps menu (shop,
    blog, forum..).
  - installing a new app would create the app's menu on existing website

This was decided mostly for technical reason but it is a weird behavior.

This commit saves the installed apps menus in order to copy them on new website
If this default menu got deleted, we ensure a minimalist tree menu for new
website

Note: This also fixes the bug where installing a website_module more than once
(with -i website_module in command line) would create the menu (blog, shop,
forum..) on the first website a second time.

This was because the website.menu.create() overrided in website would
return the last created record in the self loop, thus the last one created
would be the one set to the xml_id (ir.model.data).

This commit closes #27253
2018-09-29 17:56:21 +02:00
Sébastien Theys 79e56bddc9 [IMP] website: add default social share image
Allow to specify another image than the logo as default share image.

This commit closes #27297
2018-09-28 21:28:20 +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
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
Jeremy Kersten 44d659d0df [FIX] web_editor,website: add hook method in web editor to allow to add the website_id
Before this commit, the view create by editor (to change the scss file in asset for example) was not website specific.
Now we override (use the new hook method) to add the website_id.
2018-09-25 19:40:42 +02:00
Romain Derie 569554b9e0 [FIX] website: website forced on wrong session with website selector
Forcing website on session before navigating to the other website would not
work as expected if the other website has a different URL (hostname).
It would force the website on session on current website, then navigate to
second website which could still had another website in session.

Now, we force the website in session once we land on the website in the
dispatch() method.

Step to reproduce:
  - Set website1 to 127.0.0.10
  - Set website2 to 127.0.0.20
  - From website1 click on website2 in website selector
  - Website2 is forced on website1 session (wrong)
  - You land correctly on website2 and see website2
  - From there (website2) click on website1 in website selector
  - Website1 is forced on website2 session (wrong)
  - You land on website1 but see website2 since website2 was forced on
    website1 session at steps 3/4.

This is even more trickier when there is a third website without a domain in
the equation (meaning this website can be seen from website1 and website2
without changing URL (hostname)).
2018-09-25 19:16:16 +02:00
Sébastien Theys 2ab6ce80d6 [IMP] website: add quick install from "new content"
This gives the user an overview of the possible actions,
including those he currently does not have installed.

It allows him to quickly install the missing applications
without having to go on the backend.

The commit also improves the existing actions:
- correct handling of the actions deferred
- add some translated terms

PR: #27110
task-1885419
2018-09-25 16:23:08 +02:00
Jeremy Kersten 411ce6a79e [FIX] website: don't force website_id on view in all cases
It make test of studio red, and better to have website broken that studio
2018-09-24 12:45:07 +02:00
Jeremy Kersten acc77825f5 [FIX] website: settings - allow uncheck of social network 2018-09-21 18:20:00 +02:00
Jeremy Kersten 092870270e [FIX] website: allow to get current website without fallback
Before this commit, when we ask for get_current_website, we always
get one website. If we don't know which, we took the first one.

Now we can ask, if we are into a website context or not with a new argument fallback.

Previous code like:
   website = get_current_website()
   if website:
       ...
Have now a sense ;)
2018-09-21 13:24:03 +02:00
Nimesh Jethva 53e8aba1ab [IMP]website_*: 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
Romain Derie 93b2a55b5d [FIX] website: avoid translation issue with copy on inherited record
Since Odoo saas-11.3, copying a record with it's inherited record in the copy
dict values will trigger translation of the inherited record's fields which it
shouldn't.

This issue will be fixed with #27108

In the meantime, we can avoid this issue by not copying the view separately
from the page as this code is a residue from the old implementation (no
inheritS between `website.page` and `ir.ui.view` + they both had `name` field)
and is not usefull anymore.
2018-09-20 13:49:31 +02:00
Nicolas Seinlet b5a12b4aac [IMP] website: ensure login uniqueness per website in SQL
Constraints in SQL are faster than python equivalent.
Adding a coalesce in PostgreSQL constraint doesn't seems possible.
This combination of constraint and weird named unique index is the
fastest way to ensure a unique constraint with NULL values.

This index require the website_id to be present in the res_users
table. To do this, a stored readonly related field is used.

This was introduced by 4f6ec1cd2a
2018-09-20 13:25:28 +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
Nicolas Martinelli 6e0afe864b [FIX] website: AccessError
The AccessError made sense when it was introduced back in v10, but
doesn't make sense anymore since there is only one setting wizard.
2018-09-14 12:40:06 +02:00
Sébastien Theys a670f092b9 [IMP] website: improve Optimize SEO and Page Manager
Modal generic:
- Fix footer overflowing buttons by pushing them to a new line.

Page manager:
- Add an SEO column to easily see which pages have incomplete SEO.
- Add an edit SEO column to navigate to the SEO modal on said page.
- Hide "edit in backend" column as debug.
- Generally improve the whole view by adding appropriate titles on icons, etc.

SEO modal:
- Improve general style.
- Add description length alert.
- Restructure the keyword table/suggestions.
- Reset page meta to their initial value on Discard.
- Various small usability improvements.

PR: #26897
task-1850579
2018-09-13 18:18:02 +02:00
Jeremy Kersten f620039527 [FIX] website: multi website and company switcher
Remove domain based
Use domain if set

That will imply that you need to reconnect on your new website too.

task-1878245
2018-09-13 13:55:51 +02:00
Jeremy Kersten 9747ff249f [FIX] website: remove share page info option from page manager
Advanced user can do it from the backend by the way and it is not
obvious to understand the impact to set/unset this option.

Seems like I was the only guy to think that this feature was needed

task-1878245
2018-09-13 13:55:51 +02:00
qsm-odoo 6113a20fa7 [FIX] website: multi-solve multi-website's multi-write
The write method did not work properly for views anymore as soon as it
was called on a multi-records recordset which contains at least one
view which is not website specific. In that case, it used the cow
system for that view (and thus created a specific copy)... but forgot
to continue the write method for the other views, leading to strange
results.
2018-09-13 10:35:42 +02:00
Jeremy Kersten 9ea4e85e69 [FIX] website: add welcome message on new bootstrapped homepage.
Before this commit, when you create a new website, the home page was empty

task-1878245
2018-09-13 08:17:09 +02:00
Christophe Simonis 86ff929ad6 [MERGE] forward port branch saas-11.4 up to 1199451606 2018-09-10 17:06:18 +02:00
Yannick Tivisse 7978d4ba0f Revert "[IMP] *: Define groups on res.users models"
This reverts commit 99f497b390.
2018-09-10 14:23:42 +02:00
Christophe Simonis 68d36512ef [MERGE] forward port branch saas-11.4 up to d78f23df84 2018-09-07 20:20:45 +02:00
ThanhDodeurOdooandPierre Paridans 16aeecc73d [REF] base, mail: Documents (enterprise) related changes
-removed force_ext from ir.http.
    -added signature arg to web/image to differentiate cache entries by URL.
    -added an embed youtube viewer for youtube URL's
    -added a PDF splitter to the PDF viewer UI
    -added tests for mail's Document Viewer
    -added a "signature" param to web/image to go around the browser cache

    -thumbnail field of ir.attachment is now stored in the filestore
    as a distinct attachment.

task 1853490

Co-authored-by: Pierre Paridans <app@odoo.com>
2018-09-07 16:06:47 +02:00
Christophe Simonis 49c3264ce0 [MERGE] forward port branch saas-11.3 up to 4850fb0838 2018-09-07 14:43:48 +02:00
Christophe Simonis 21a186dadd [MERGE] forward port branch 11.0 up to 737ca0eb42 2018-09-06 18:13:56 +02:00
Pedro M. Baeza 89c1555096 [FIX] website: Unlink several website.page records
Avoid singleton error

This commit closes #26825

Partial backport of saas-15 - multiwebsite commit
2018-09-06 13:57:18 +02:00
Romain Derie 47b00c5d53 [FIX] base,website,web_editor: handle key field on ir.ui.view for multi website
With multi-websites, we expect qweb views to have a key set as it is the key
that is used to find duplicates (two views with same keys are duplicate, the
one with a website_id set is more specific than the one without a website_id)

Thus, 5ff87e8039 sort on key in order to find the most suitable one.

It would crash if a qweb view is created without a key (False) as it can't sort
`bool` and `str`.

This commit:
  - Adds a generated key to scss views
  - Adds an SQL constraint to avoid QWeb views without a `key`
  - Generates a random key when creating a QWeb view without a `key`
  - Handle False key in `filter_duplicate()` by extracting views with False key
    before sorting, and then adding these views to the recordset

Note: We also want the key to be editable as it is now an important field with
      multiwebsite. Thus, we removed the readonly on this field.

+ fix python tests as we now force key on qweb views with sql constraint
+ pep8
2018-08-31 16:37:45 +02:00
Jeremy Kersten 9b1d1d5728 [FIX] website: allow to switch from company from the front end
In some case, you can be on website 2 (where company_id = 2) with your user into the company 1.
In this case, you will not see the product on ecommerce from company 2 while you stay in company 1.
2018-08-31 16:37:45 +02:00
Jeremy Kersten ba2116838e [FIX] website, mass_mailing: fix social network
- Remove useless onchange company id from website, now that we configure it
in the res config.
- Add the onchange company into the res_config_settings
- Remove left duplicate data from mass_mailing
- Add ALL social links into the res config
2018-08-31 16:37:45 +02:00