Commit Graph
127250 Commits
Author SHA1 Message Date
jem-odoo dadec538bc [IMP] doc: rewrite part of module structure and js references guidelines
This commit
 * removes deprecated guidelines for static file and assets struture;
 * fixes some typo and mistakes;
 * correctly links JS guidelines section;
 * adds a running example to ease understanding;
 * adds missing section about security files;
 * adds text blocks for each directory to show directly the
   expected result of each section;
 * perform some rewording;

Thanks to @pedrobaeza for its review.

Task-1817988
2019-03-05 08:38:30 +00:00
Nans Lefebvre fc1389f8d8 [FIX] payment: provide missing return_url in values
Render from payment//payment_acquirer.py promises:
All templates will receive:
    'feedback_url', 'return_url', 'cancel_url', 'error_url'
However they are all in -> FIXME.
After 6 years in FIXME, this promise is still a lie.

It is unfortunate since the Adyen payment provider requires 'return_url' to work.
Before, this function was called by _get_shop_payment_values,
which provided a value for it.
We copy the value that was given there directly as a default in render,
so that it doesn't crash no matter what method calls it.

opw 1928918
opw 1944142

closes odoo/odoo#31814

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-03-15 14:56:19 +00:00
Nicolas Lempereur d7ca0357f3 [FIX] point_of_sale: numpad left-to-right in arabic
A numpad in right-to-left language is not right-to-left.

So with this change we keep numbers in the order:

1 2 3
4 5 6
7 8 9

and not how it was currently with RTL support:

3 2 1
6 5 4
9 8 7

We used the directive `/*rtl:ignore*/` that prevent rtlcss to mirror a
rule but this also could have done with eg.

  .o_rtl .pos .numpad button { direction: right; }
  .o_rtl .pos .popup-numpad { direction: rtl; }

so when the reversed is reversed (only in rtl) we get back the original.

opw-1950001
closes #31888

Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2019-03-15 16:44:27 +00:00
Nicolas Martinelli 547e6e37f4 [FIX] purchase: canceled bill in suggestion
- Install `account_cancel`
- Create a vendor bill for Partner A, cancel it
- Create a new vendor bill for A

The 'Auto-Complete' suggest a bill with an empty name, and only an
amount. It corresponds to the canceled bill.

On a canceled bill, the `number` field is empty, and consequently the
`name` is empty as well.

Whatever is the state of the bill, displaying a bill is useless is only
the amount is shown. Therefore, we make sure to only display the bills
with a number set.

opw-1950846

closes odoo/odoo#31863

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-03-15 09:32:34 +00:00
Romain Derie f8efc9a957 [FIX] website_sale: fix _get_pl_partner_order
1. Encapsulate `show_visible` to avoid duplicate same code in filtered and to
   make it more easy to read.
2. When GEOIP is enabled, `_get_pl_partner_order` would retrive the available
   pricelists for that country group.
   We should also ensure the returned pricelists are also available on that
   website
3. Rewrite the `country_code` condition in one line thanks to 1.
4. !! Do not use `property_product_pricelist` in the method as it is not cached
   and now it depends website. Anyway it was useless as it was a duplicate of
   `partner_pl`.
5. Add `is_public` to the if condition as it was actually implicit as if not
   public it and no pricelists it would go in previous condition and set the
   pricelist from `property_product_pricelist`.
6. The last if condition (`not country_code`) has always been subject to fixes
   and always broke a flow to fix another one (see 60300fc2 and e11908d42, both
   were wrong).
   This condition refactoring should still preserves the beavior fixes
   mentionned in both commits and fix the flow where a logged in user would not
   get selectable pricelists if he has a partner_pl (property_product_pricelist)
   before entering the all_pl filtered.

closes odoo/odoo#28301

Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2019-03-14 10:28:02 +00:00
Romain Derie 9608d4551d [FIX] website_sale: prevent compute search to be run in sudo
Before this commit, when accessing an user's pricelist, it would raise a 500
error in multi-company environment.
Indeed, when doing `self.env.user.partner_id.property_product_pricelist`, even
if self.env is not un sudo mode, the compute from `property_product_pricelist`
is executed as sudo. Since this method is then doing a `search()`, it won't use
the multi-company pricelist ir.rule. It will return all the pricelist,
including the ones from other companies.
Then, when trying to read that pricelist, it will raise an access error.

Now, we correctly execute the compute (and so the search) in the user env, it
won't get pricelists from other companies.
2019-03-14 10:28:02 +00:00
Romain Derie a5a5a57e48 [FIX] website(_sale): allow to use and access website pricelist
Before this commit, if the website's company was different than the user
company, the ecommerce would use the user's company instead of its own
pricelists.

Step to reproduce:
  - Set company2 to website1
  - Create a pricelist1 for company1 and a pricelist2 for company2
  - With an user from company1, visit the website1.
  - The pricelist used will be the one from the user, pricelist1 and not the
    pricelist2 from company2 which is the website1 company.
2019-03-14 10:28:02 +00:00
Romain Derie 2d970942ba [FIX] website_sale: limit pricelist to it's website if set
Before this commit:
1. Non Public User would get the main company pricelist returned when calling
   `get_current_pricelist`. As this is saved in an `ir.property`
   (`property_product_pricelist`) that is not website dependant, that pricelist
   would always be returned on every website.
   This is a problem if that pricelist is website limited, you should not be
   able to use it on other websites.
2. Public User would not have a valid pricelist on other website than the
   default one. Indeed, every pricelists are restricted that default website.
   It would result in prices shown as "0" (without currency symbol) on the shop
3. Pricelists set as selectable without a website_id set would not be
   selectable
4. Public User would not get a fallback pricelist when reading its
   `property_product_pricelist`. Indeed, the public user's partner is not
   active and since the refactoring of this field compute method to be a multi,
   it would end up doing a search() instead of a browse(). Thus, it would find
   a pricelist for the public user but it would not set it.

This commit:
1. We override and check that pricelists returnes by the `ir.property` are
   indeed available on the current website.
2. Remove the website restriction on `Public Pricelist` so other websites have
   at least one pricelist available.
3. `pricelist_ids` on `website` now return all available pricelists including
   the ones that are generic (no website set)
4. We search for inactive partners too.

Part of this commit fixes part of 27861
Github-25109
2019-03-14 10:28:02 +00:00
Romain Derie 08a17b6883 [FIX] product, website_sale: clean dead code
The `_get_pl()` method introduced with bcb395616 was replaced by
`_get_pl_partner_order()` in afe1d20dac.
After that, it looks like this method was never called again.

Plus, add a missing ensure_one() (not critical).
2019-03-14 10:28:02 +00:00
Romain Derie 25a8b507b1 [FIX] website, website_sale: create utility method to check if frontend
Before this commit, at multiple places to check if we were in a frontend
context we would check if `request and hasattr(request, 'website')` and
then access `request.website`.

Now, we call an utility method to get that website if we are in a frontend
context. If not the method will return False.

This method will be usefull for incoming pricelist fixes & tests.
Indeed, we will have more check of that kind and this will be easier to mock as
mocking this method will be enough, instead of mocking every method doing that
if condition to simulate a frontend context (to do website tests in python
wihout having to go frontend with a tour).
2019-03-14 10:28:02 +00:00
Odoo Translation Bot 29423872b1 [I18N] Update translation terms from Transifex 2019-03-17 01:22:27 +01:00
Nans Lefebvre 411603f4e3 [FIX] fields: safe check on ondelete cascade
In the case of attachment_ids, comodel._fields[inverse] can be res_id,
an integer field. Such fields do not have a default ondelete attribute.

opw 1945926

closes odoo/odoo#31864

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-03-15 09:49:13 +00:00
Nicolas Martinelli 72bc566ad8 [FIX] sale_timesheet: project template
- Create 2 companies A & B
- Set the superuser in A
- Create a product P:
  Product Type: 'Service'
  Service Tracking: 'Create a task in a new project'
  Project Template: set one for both companies
- Switch to company B
- Create a SO with P, validate
- Access the project through the stat button 'Project(s) Overview'

An `AccessError` is raised.

In case no 'Project Template' has been set for company A, the project is
created without the specified template.

This is because the new project is created as `sudo`, and the
`project_template_id` field is a company-dependant field. Therefore, a
project template from company A is used to create a project in company
B.

opw-1953011

closes odoo/odoo#31883

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-03-15 14:11:04 +00:00
Jeremy Kersten a710a86993 [FIX] website_blog: fix layouting bs4 in view grid
courtesy of @Moto017

closes odoo/odoo#31870

Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2019-03-15 10:10:34 +00:00
Martin Trigaux 69159b27a8 [FIX] website_mass_mailing: remove 10.0 terms from 12.0 pot
Was forward-ported
This is problematic as it has the old translation syntax, trying to import a
model:ir.ui.view entry can crash (should be model_terms)

Export mass_mailing where the string "Update my subscriptions" is now present
(no longer in website_mass_mailing as in 10.0)

closes odoo/odoo#31868

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-03-15 10:05:04 +00:00
Jorge Pinna Puissant c41d1d2ca8 [FIX] website_event: pricelist in event register
Create an event with a price.
Create a pricelist with a different price for the event.
Add the pricelist to the Public user.
On the website, open the event to register.

Before this commit, the shown price is the one of the event, and not the
one of the pricelist.

Now, the price is shown correctly and take into account the pricelist.

opw-1951252

closes odoo/odoo#31848

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-03-14 12:46:01 +00:00
Johan Demaret Rivarola 9d3fed6d3f [FIX] payment: wire transfer redirection
When sequentially paying multiple SO with wire transfer, the user was
always redirected to the first paid SO.

This commit fixes this issue by redirecting to the most recent one.

Technical choice:

payment_transaction rows are ordered by id desc so we can trust the
first one will be the most recent on the client side (in the scope of
this diff).

opw-1949629
Closes #31754

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-03-12 15:17:29 +00:00
Nicolas Lempereur b8d4fe6d38 [FIX] web: keep col group by on 2nd reload+after 0 result
In 11.0 f8b38f64d improved the column group by managment when reloading
several times by having the same "groupbys" dictionaries between the
pivot model instance and the header menu.

This has been reverted in 12.0 (with c6e7adfb95) because the following
pivot tests failed with the change:
- 'rendering of pivot view with comparison'
- 'export data in excel with comparison'

The failure is because now that the "groupbys" dictionaries are the same
object, the truncated dictionary of a header truncate the one of the
model instance.

So if we search something that has no results, then something with
results, the groupbys could be lost.

This behavior has no reason to be and is changed in 11.0 with #31644,
this commit is the forward-port of f8b38f64d and #31644.

closes #31627

Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2019-03-06 17:04:42 +00:00
qsm-odoo fdb9f8273b [FIX] web_editor: stop using translated versions in HTML editor
Since https://github.com/odoo/odoo/commit/5a030db3eb77b6d80187f8ae1a64303b2f50391d
the HTML editor displayed the translated versions of the templates it
allows to customize. So if the user edited and saved such a template,
the non-translated version was saved with translated-version content.

The behavior before the mentioned commit was:
1) Load all views the HTML editor allows to edit
2) Each time a view is displayed, re-make a RPC to load the view again

The mentioned commit made this simpler by making:
1) Load all views the HTML editor allows to edit
2) Each time a view is displayed, simply show the previously loaded view

... the problem was that the step (2) of the old behavior was
explicitly saying (client-side) to load the view's untranslated content.
This commit makes step (1) always load the untranslated versions of the
views (server-side).
2019-03-04 17:05:01 +01:00
Lucas Perais (lpe) 6aad8b2691 [FIX] l10n_fr_fec: dom-tom excluded from EU's fiscal territory
Sources:
https://www.service-public.fr/professionnels-entreprises/vosdroits/F23570
http://www.douane.gouv.fr/articles/a11024-tva-dans-les-dom

This commit allows a Dom-Tom based company to export the FEC file out
without needing to have a normalized French TVA set on the company

OPW 1946623

closes odoo/odoo#31543

Signed-off-by: "Lucas Perais (lpe)" <lpe@odoo.com>
2019-03-04 13:53:50 +00:00
Lucas Perais (lpe) 5dfb6e39af [FIX] l10n_fr_fec: no new line at the end of file
It seems that our beloved administration is not happy with the FEC file
ending with an empty new line

Hence, this commit makes the FEC file last line end without \r\n characters
and there is no empty new line

OPW 1943302
2019-03-04 13:53:48 +00:00
Christophe Simonis 1693a27f28 [FIX] account: mute logger on expected Exception in test 2019-03-04 17:09:21 +01:00
Christophe Simonis c3764265de [FIX] base: mute logger for expected Exceptions in tests 2019-03-04 16:33:38 +01:00
Christophe Simonis 1c712986c4 [MERGE] forward port branch saas-15 up to 1f1fa35c07 2019-03-04 15:49:35 +01:00
Christophe Simonis 1f1fa35c07 [MERGE] forward port branch saas-14 up to 232da9a0ec 2019-03-04 13:40:44 +01:00
Christophe Simonis 232da9a0ec [MERGE] forward port branch 10.0 up to 0f0c5db49d 2019-03-04 12:02:31 +01:00
Julien Legros 0f0c5db49d [FIX] base: fix parse_version import 2019-03-04 11:24:18 +01:00
Romain Estievenart ab90dfd6c3 [FIX] portal: Remove non compliant ES5 syntax
Currently Odoo JavaScript code base support only ecmascript <= 5

So using a non compliant ES5 syntax can trigger a javascript engines
crash for some browsers like: IE, webview used by some old mobile
devices.

This commit fixes non compliant JS code syntax found to avoid potential
crash.

closes odoo/odoo#31522

Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
2019-03-01 13:56:05 +00:00
Romain Estievenart 9950c38ec3 [FIX] hr_skills: Remove non compliant ES5 syntax
Currently Odoo JavaScript code base support only ecmascript <= 5

So using a non compliant ES5 syntax can trigger a javascript engines
crash for some browsers like: IE, webview used by some old mobile
devices.

This commit fixes non compliant JS code syntax found to avoid potential
crash.
2019-03-01 13:56:05 +00:00
Thibault Delavallée 62d0eee644 [FIX] website_slides_forum: put demo in demo
Otherwise zizisse error traceback prone.

closes odoo/odoo#31672

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-07 15:33:37 +00:00
mgh-odoo f217aa528f [FIX]web_editor: Fixed traceback due to 'field_html' widget while saving record
Previously, when user edited record having 'field_html' widget and
tried to save the record immediately, a traceback was faced sometimes
because content was not loaded yet. This commit fixes the issue
by calling super method if the content is not loaded yet properly.

Task: #1932687
Closes: #30833

closes odoo/odoo#31581

Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
2019-03-05 09:09:33 +00:00
jem-odoo 3393dd0030 [REF] website_slides: redesign quiz widget
This commit makes the quiz widget a real odoo widget that triggers up some
events. The widget is now only responsible of

 * fetching quiz data (if not given)
 * decorating the anwsers according to the result
 * displaying message (error or modal)

To do so, some code move/rewrite was needed

 * extract and factorize some template
 * add 'sudo' on technical model to avoid access rights error
 * factorize some python method from controller to model
 * remove some CSS classes to lighten the code
 * fixing access model error
 * make quiz widget handle the display of error message
 * give browse record for template rendering, rather than slug
 * cleaning some spaghetti code in Fullscreen widget
 * ...

Commit linked to task ID 1941250 and PR #31584.

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-07 09:41:43 +00:00
David Beguin f029bf71d0 [IMP] website_slides_forum : allow to create a forum and to comment on course frontend creation
When creating a course via the frontend, the behaviour with forum and comment
should be the same than from backend. The website_publisher can decide to
create or not a forum linked to this course and decide independantely to allow
the review and comment on that course.

Commit linked to task ID 1941250 and PR #31584.
2019-03-07 09:42:03 +00:00
Thibault Delavallée 47b308d8ae [FIX] website_slides: correctly return deferred when calling slide routes in fullscreen
I promise to fix all deferred. Huk huk huk.

Commit linked to task ID 1941250 and PR #31584.
2019-03-07 09:41:43 +00:00
Robot Odoo 10469b81f6 [MERGE] website_slides: clean controllers and apply various fixes
Purpose of this merge is to perform some code cleaning in eLearning
controllers and demo data. There are also some fixes coming from first
user testing of eLearning. See sub commits for more details.

Merge linked to task ID 1941250 ("fix all the eLearning").

closes odoo/odoo#31512

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-06 16:58:30 +01:00
David Beguin 6aedd56c40 [FIX] website_slides_forum : fix elearning navbar style in forum
Since design refactoring from af41382fa1, eLearning navbar style
was not displayed correctly. This commit fixes this by applying same design
rules as user profile page navbar.

Task ID : 1941250
PR #31512
2019-03-06 14:09:16 +00:00
David Beguin 1949c796b5 [FIX] gamification, website_profile : re-fix division by zero if user has no karma
If a new user try to access the elearning platform or his porfile, if he has
no karma, has it is the case for new users, he won't get any rank. So that
the next rank karma minus current rank karma equals zero.

To avoid this, next_rank will always be first one existing if the user has no
karma. Also, the current rank will not be displayed if the user has no karma.
finally, next rank will not be displayed if the user reached the last existing
rank.

Task ID : 1941250
PR #31512
2019-03-06 14:08:24 +00:00
David Beguin c7cceaef79 [FIX] website_profile : hide badge if not website_published on user's profile page
Badges that should be displayed on user's profile page must be website
published. Badges that are website_published are typically forum badges or
others that will be configured for eLearning.

Task ID : 1941250
PR #31512
2019-03-06 14:06:27 +00:00
Thibault Delavallée 31d9bbd904 [FIX] website_slides: add gray background to lesson not fullscreen display
Simple fix to already have the standard gray background. Future commits will
improve display of not fullscreen lessons but this fix was necessary for
incoming work.

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 9e7c5537d2 [FIX] website_slides: fix set viewed slide
Currently a slide that can be previewed is never set as completed. Correct
condition to not update the hard slide-partner relationship is:

 * either current user is public;
 * either current slide is not published (happens when a publisher sees still
   unpublished lessons);
 * either current user is not member of slide channel (happens when seeing a
  free preview slide without being channel member);

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 3bdccc0867 [FIX] website_slides: latest courses should display all my courses
Correctly fetch courses the current user is a member of, not those he already
finished at least a lesson.

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 711a48aaa8 [REF] website_slides: clean slide fetch details method and controller
Currently there is a tool method on controller allowing to prepare some
slide related data. However controllers still add values in the slide
dictionary outside of this method, making it non consistent.

Let us prepare all side related data in this tool method to simplify code
understanding.

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 181e6487ef [IMP] website_slides: reorder controller code to ease understanding
Purpose is to order methods and routes according to the main related model.
Main routes are above, then tools (sub routes, json routes).

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 813943c8bc [IMP] website_slides: improve demo related to quizzes
Purpose is to have a bit more demo data allowing to test quizzes and see
how they behave. Notably

 * have more than one question in existing quizzes to check answer validation
   more in-depth;
 * have more than 2 answers to check answer highlighting more in-depth;
 * clean a bit user related demo for channels and slides;

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:16 +00:00
Antoine Guenet 0374ecaeb8 [FIX] web_editor: properly set media dialog onlyImages and find video
Media dialog was trying to reach the current media's parent node, which
was not possible as it was cloned on instantiation.
To fix this, the `showImageDialog` now passes the `onlyImages` option
upon instantiation, checking the parent's data. It also passes the
media's parent if said parent is a video. This way, neither of these two
things need to be done in media dialog.

closes odoo/odoo#31634

Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2019-03-06 12:51:41 +00:00
Lucas Perais (lpe) f5813975d3 [FIX] account: reconciliation proposition div by 0
In some cases when computing reconciliation propositions against
reconciliation models, there may be case where we try to divide by 0

This commit handles the case

OPW 1946266

closes odoo/odoo#31534

Signed-off-by: "Lucas Perais (lpe)" <lpe@odoo.com>
2019-03-01 13:01:23 +00:00
Odoo Translation Bot 42469048d8 [I18N] Update translation terms from Transifex 2019-03-03 06:02:06 +01:00
Lucas Lefèvre 221caccb70 [FIX] hr_holidays: Group team leader imply group user
Currently, group Team Leader does not imply group user.
However a team leader is always a user and should be member of
the corresponding group.

closes odoo/odoo#31539
2019-03-01 15:05:22 +00:00
Lucas Lefèvre a8ab3063e8 [FIX] hr_holidays: Allow Team leader to approve
Currently, a Team leader can't approve a leave of an employee
in his team if the leave type requires an allocation.

The reason is the `ir.rule` for `base.group_user` restricting allocation
read access to only your own allocation (`[('employee_id.user_id', '=', user.id)]`)
There are no `ir.rule` for group Team leader.
Therefore, a team leader can't read allocations for his team members.

Fix: add an `ir.rule` to allow a team leader to read allocations
of employees in his team.

+ add associated tests
2019-03-01 14:30:39 +00:00
XavierDo a95756faac [FIX] bus: gc event at the end of a polling
When making a poll, an event is registered on each channel. Once
a notification is sent on a channel, only the events of the
notified channel are removed. A pointer to the event is kept
in all other channel the user subscribes to until those channel
are notified.

Since a user usually has many mail.channels but only a few active ones,
a new event and a bunch of pointers are created at each poll and
never removed.

This fix simply remove the pointers to the current event at the
end of a poll.

closes odoo/odoo#31215

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-02-28 15:49:04 +00:00