Commit Graph
126133 Commits
Author SHA1 Message Date
Xavier Morel 3de97f1689 [IMP] base_import: error message on transport/HTTP failure
Attempt to clarify/improve error message (and avoid traceback) when
import fails due to some intermediate system e.g. memory error or
gateway timeout.

Task 38254

Closes #20627

This change is loosely related to
35d452cffb and PR #24854 in the sense
that that was an attempt to better handle transport/gateway issues
during file download.
2018-08-13 13:52:41 +02:00
Arnold Moyaux e1ff6ce3d9 [FIX] purchase: cancel a PO undo the closest picking cancellation
Usecase to reproduce:
- Set a product buy and MTO
- Create a SO with it and cancel it
- All the pickings are cancel
- Cancel the PO
- The picking that generate the PO is set to confirm
The picking should remain in cancel state

It happens because the button_cancel method still
consider the canceled moves.

This commit only modify destination moves if they still
require an action from the user.
2018-08-13 13:51:54 +02:00
Fabrice Henrion c0e40b0828 [FIX] lunch: typo
Closes #26327
Closes #26328
2018-08-13 13:48:14 +02:00
eco-odoo bbf405eaf8 [IMP] account: reconciliation widget: replace the pager with a load more button
Replace the pager and set default visible items to 15.
2018-08-13 12:58:33 +02:00
Christophe Matthieu c530c2eceb [Mass Mailing] Plain text template, disable the snippets
Make plain text mode more user-friendly and behave like gmail

* No snippet bar for plain text template
* once the plain text template selected, the cursor should be in the mail or
add a placeholder
* Default Unsubscribe link in the plain text template
* Don't force the font type; Let each email client use its own default font.

opw-1852811
2018-08-13 12:24:37 +02:00
Rémi Rahir 8c1c42e666 [FIX] snailmail_account: updating field default value
A company field name was updated but missed to update it on other
models.
2018-08-13 12:09:56 +02:00
Parth Gajjar 072d7232ce [IMP] mass_mailing: focus on content when user selects the plaintext theme 2018-08-13 11:34:34 +02:00
Anshuman Sharma 40c029e44a [IMP] mass_mailing: hide snippetbar for plain text theme
Purpose behind this commit is to disable snippets in plaintext theme. So here we
hide it with css.

And we hide plaintext theme option form style selector. So once user select
another theme then user can only switch back theme except plaintext theme.
2018-08-13 11:34:34 +02:00
Anshuman Sharma 590679f868 [IMP] mass_mailing: removed font-family from plain text
Purpose behind this commit is to remove font-family from all elements in
plaintext theme. So mail receiver will see this mail in default system font.
This is inspired by new Gmail and suggested by FP

As we want to show system's default font in the mail sent with the basic theme.
And so we remove font-family from basic theme while saving. But by doing so in
readonly mode is not getting proper font in odoo as we don't having any assets in
readonly mail editor. So we added stylesheet just for display purpose.
2018-08-13 11:34:34 +02:00
Anshuman Sharma 7f0cc6ac52 [IMP] mass_mailing: added unsubscribe link in plaintext theme
As we are hiding snippet bar in plaintext theme, there is no way to add snippet
with unsubscribe link. So we are adding it by default in plaintext theme
2018-08-13 11:34:34 +02:00
Nicolas Lempereur 9b609842e3 [FIX] l10n_in: invoice col length kept same
If there is less than 5 invoices lines, {5 - number of invoice line}
empty invoice line are added as padding.

But these line could have a different number of column than the content,
thus the style could differ slightly or more erroneously if there was
background color depending on column number such as on the boxed style
layout.

opw-1870625
closes #26317
2018-08-13 11:32:24 +02:00
Xavier ALT c5e1bffa3d [FIX] tools: formatLang should use cached lang 2018-08-13 11:18:00 +02:00
Martin Trigaux 0222fdfdc7 [IMP] point_of_sale: trust client totals
The amounts sent by the point of sale should be trusted instead of recomputing
it server side.
The previous compution could introduce differences in amounts.

The pos.orders should only be created from the pos interface.

Turn the compute methods into onchange to still be possible to do refund but
disable edition from the backend.

Change amount_paid computation with the one server side
The way amount_paid is computed was not coherant

Remove pos.discount model as never used from the server interface

Adapt tests to use a computed amount_total and amount_paid
Adapt tests to be closer to real use flows (no more manual creation of account
move lines or pickings, it should be automatic)
Remove tests that no longer make sense (create + payment from backend is only
relevant for refund, rest should be with create_from_ui)

Add force_create in the view to make sure the onchange values are used
2018-08-13 11:08:03 +02:00
Cocographique 68616ea746 [FIX] website_mass_mailing: BS4, adapt snippet options UI 2018-08-13 10:20:08 +02:00
Cocographique ae1e964f69 [FIX] web_editor: review snippets "Customize" dropdown style 2018-08-13 10:20:08 +02:00
60aa9ffd01 [IMP] base,mail,web: attachments adaptation for documents
This commit is the counter-part of an enteprise commit introducing
the Documents app.

Here is a summary of what has been done:
  - tweak unlink of ir_attachment to prevent unlink recursivity
    (when attachments are attached to ir_attachments)
  - improve ir_attachment kanban view
  - add several arguments to binary_content controller:
    - 'force_ext': to force the extension in the filename, base on
      mimetype
    - 'share_token' and 'share_id': to autorize download from a
      share link
  - add 'thumbnail' field on ir_attachment to optimize Kanban view
  - add 'upper_limit' argument to image to allow to bypass the
    500*500 size limit
  - DocumentViewer now handles text files

More information available on task 1853490

Co-authored-by: Pierre Paridans <app@odoo.com>
Co-authored-by: sri-odoo <sri@odoo.com>
Co-authored-by: ThanhDodeurOdoo <tso@odoo.com>
2018-08-13 09:11:53 +02:00
sri-odoo ad2e2cc8b5 [REF] web: Overwrite bts4 custom checkbox design
Overwrite bts4 custom-checkbox design (un-checked state only).
Use outline rule to avoid conflics with :focus and :hover states.
The change has been added in ui.scss to affect both backend and frontend.
2018-08-13 09:09:53 +02:00
Aaron Bohy 04e0f8a7e5 [FIX] web: MockServer: don't alter domain in place
In a test, we might want to check the domains given to RPCs with
assert.step/verifySteps. Before this rev., if there were an
'active' field on the model, ['active', '=', true] was
automatically added to the domain by the MockServer in place, thus
altering the expected domain in the test.
2018-08-13 09:09:53 +02:00
Aaron Bohy 43d21dd9ce [IMP] web: FieldMany2One: add 'noOpen' option
This rev. allows to instantiate a FieldMany2one Widget with option
'noOpen' (which hides the external button allowing to open the
related record in a dialog).

This option already existed, but it had to be specified in the
nodeOptions (i.e. in the view arch), which is not convenient for
standalone fields for which there is no view.

Part of task 1853490
2018-08-13 09:09:53 +02:00
Aaron Bohy 05c5a8c525 [IMP] mail: Chatter: add 'display_log_button' option
This rev. allows to instantiate a Chatter Widget with option
'display_log_button' (which shows the 'Log note' button).

This option already existed, but it had to be specified in the
nodeOptions (i.e. in the view arch), which is not convenient when
a Chatter is instantiated outside the context of a FormView.

Part of task 1853490
2018-08-13 09:09:53 +02:00
Aaron Bohy 755a8d815a [IMP] mail: Chatter: allow to instantiate outside FormView 2018-08-13 09:09:53 +02:00
Aaron Bohy cc38f9a535 [REF] web: Kanban: parameterize KanbanRecord class
This allows to define extensions of KanbanRenderer using specific
Widget (probably extensions of KanbanRecord) to render the records.
2018-08-13 09:09:53 +02:00
Dipalee Bhalodia c31e2047b1 [IMP] web_editor: change UI for snippet background color menu
Replace current UI of the snippet background options with the
same one as the standard editor colorpicker

task-37974
Closes #26274
2018-08-12 18:37:08 +02:00
Dipalee Bhalodia f37c1b124b [IMP] web_editor: add custom colors for editor colorpicker
- Custom color can now be applied to elements
- Find used custom colors in the page and add them as colorpicker
  suggestions
- Current color is selected in the picker when you open the custom
  color wizard

task-37974
Closes #26274
2018-08-12 18:37:08 +02:00
Dipalee Bhalodia a17771f591 [IMP] web_editor: improve text colorpicker
- Split editor button: one for font color and one for background color
- Remove recent color button feature
- Add only theme colors and remove other color sections like
  graypalette/standard colors
- Button's icon for font color and background color buttons have the
  same color of currently selected element

task-37974
Closes #26274
2018-08-12 18:37:08 +02:00
qsm-odoo af30c2ee61 [IMP] website_blog: integrate snippet latest posts
Moved from the themes repository.

Now, users can use a snippet which showcases the latest blog posts as
soon as they install the blog app.

Note: in the future we may want to develop a snippet which can showcase
any model records (products, projects, ...).

task-1874216
2018-08-12 18:04:27 +02:00
Cedric Snauwaert 8517a3c335 [FIX] account: don't remove the reconciliation menu
commit cf4d4a05fd removed the reconciliation menu. The menu should not have been removed.
2018-08-12 09:16:25 +02:00
Odoo Translation Bot 566d1586bc [I18N] Update translation terms from Transifex 2018-08-12 07:14:34 +02:00
Odoo Translation Bot 75630e3d69 [I18N] Update translation terms from Transifex 2018-08-12 04:15:33 +02:00
Odoo Translation Bot 62a93c1ddb [I18N] Update translation terms from Transifex 2018-08-12 00:27:42 +02:00
Rémi Rahir 53cdd68e7c [IMP] account,snailmail: support batch calls
- reworked the multi.compose.message model to manage
   several documents simultaneously
 - Added a letter model for asynchronous processing
 - usability improvement of the modal
2018-08-10 18:41:00 +02:00
Rémi Rahir a07902ffa8 [IMP] base: res_partner imp name_get
Added an option to display the address of the partner on a single line.
2018-08-10 18:33:15 +02:00
Francois Volral 6caf5ed7d2 [FIX] orm: Adapt test and read_group_fill_temporal
In the commit 4a40db2. the implementation of read_group_fill_temporal was
simplified during final review and tests needed to be adapted.

Also fix the implementation issues as detected by the tests.
2018-08-10 18:15:27 +02:00
David Beguin 4b3766e8eb [IMP] mass_mailing : include invalid emails into ignored state
If the email is invalid (incorrect pattern),
the mailing status is set to canceled and will be flaged as ignored
in the mail.mail.statistics
2018-08-10 17:46:08 +02:00
David Beguin a1d6064dcc [IMP] mail : auto-blacklist rule when too much email bounced
In order to avoid sending mail indefinitely to a wrong email address,
Take the mail statistics for the recipient of the last 3 month :
	if more than 5 mails bounced (with interval of more than 1 week)
		the email is blacklisted.
2018-08-10 17:46:08 +02:00
David Beguin 59b4836e8d [IMP] mail, mass_mailing : apply blacklist, opt_out per mailing list
Purpose
=======
- Apply the blacklist implementation to Improve mailing subscription to be more
  compliant with the European GDPR law. Keep a list of people who does not want
  to receive promotional emails (or mass mailing in general) anymore.
- Allows the recipient to update himself his mailing preferences

Specifications
===========
This commit is regrouping some main changes on mass mailing.
  Apply Blacklist for following models through blacklist.mixin :
    - crm.lead
    - res.partner
    - mail.mass_mailing.contact
    - mail.channel.partner
- Opt_out per mailing list instead of per mailing contact.
- Replace opt_out by blacklist in crm.lead + res.partner models
- Added 'ignored' state for mass_mailing. Ignored = blacklisted, opted-out
  Ignored email are not included into final statistics to avoid confusion.
- Unsubscribe(d) pages migrated from website_mass_mailing to mass_mailing module
  as thoses pages should work without having the website module installed

Detailed implementation
===================
Mass-mailing :
	- A blacklisted email is notified by the ban icon next to the email field.
	  (at the left of the email field for display purpose)
	- Renaming the '_get_blacklist' method that was actually
	  searching opt_out list into 'get_opt_out_list'
	- Opt out per mailing list : Add opt_out + related fields (for display and
	  ergonomy reasons) on the relational model
	- Display relational model tree view instead of mass_mailing.contact tree
	  view when clicking on mass_mailing_list in kanban view
	  -> In order to be align between contact_nbr displayed in kanban tile and
	     the content of the tree view
	  -> mass_mailing contact is accesible via the user icon in this tree view
	- Remove custom filters 'filter_contact_subscription' and
	  'filter_contact_unsubscription' as opt_out is not on mass_mailing.contact
	  model anymore
	- Add 'is_public' to mailing list
	    The name of this mailing list can be seen (or not) by recipient in
	    the unsubscription page
	    If the mailing lists used in the mass mailing are not public,
	    the user in only informed that he has been unsubscribed.
	    If the mailing lists are public, the user is informed that he has been
	    unsubscribed from the mailing lists
	    and he has the choice to modify his subscription to all the public
	    mailing list he is or was subscribed to.
	- Unsubscription Page :
		- mass_mailing_contact :
		  Opt_out per mailing list, done by email and not by id, as multiple
		  contact can have the same email
		  The recipient can add/remove himself to/from the blacklist
		  The recipient can send a feedback about why he unsubscribed
		- crm.lead + res.partner :
		  Once the recipient unsubscribe, he is automatically blacklisted
		  The recipient can 'Come back' and remove himself from the blacklist
		  if he changes his mind
		- Show blacklist button parameter added in config :
		  The idea is to enable/disable the fact that the recipient can add
		  himself to the blacklist by showing or not the 'blacklist me' button
		  Only applies for mass_mailing.contact. The recipient, once
		  blacklisted, can always, no matter the value of this parameter,
		  'come back' and unblacklist himself

crm.lead + res.partner :
	- Replace opt_out by blacklist in crm.lead + res.partner models.
	  As when a res.partner or crm.lead unsubcribe, we assume that the recipient
	  does not want to receive mass mailing anymore, at all, even if we adds him
	  to a mailing list afterwards. He is then blacklisted to avoid this.
	  With this behaviour, if a new lead is created with the same email address,
	  he won't be able to receive mail in mass_mode.
	  But he will still be able to receive '1 to 1' direct email.

Task ID 33224
Closes #25966
2018-08-10 17:46:08 +02:00
David Beguin 98ce81cac5 [IMP] mail - mail.blacklist: Not send mass_mail to recipient that does't want to
Purpose
=======
Improve mailing subscription to be more compliant with the European GDPR law.
Keep a list of people who does not want to receive promotional emails
(or mass mailing in general) anymore.

Specifications
===========
This commit is regrouping some main changes on mass mailing.
- Added blacklist : Avoid sending mass mailing to blacklisted recipient
  (blacklisted = email address that doens't want to receive mass mailing anymore)

Detailed implementation
===================
Mail :
- Add Blacklist mechanism in mail module (NOT in mass-mailing) :
  as we can send mass-mail without the mass-mailing module
- Unicity in email -> To avoid error in import, override the create and return
  the existing record if any, else, create the record normally.
- Blacklisting is done by email address and is cross model.
  Will apply to model that inherit the blacklist.mixin.
- field 'is_blacklisted' -> computed : check if email is in blacklist
  + search method to be able to filter on is_blacklisted
- When a email address is blacklisted, it will never get mass mailings anymore.
  Even if the email address is added to another mailing lists
- Avoid sending notification to blacklisted recipients when sending email
  in mass mail mode. If the recipient is blacklisted, we should not even send a
  notification in the recipient's chatter for an email that he won't even
  receive.
- When a email address is blacklisted, it can still get 'normal' mailings.
- The blacklist shoud be accessible in
  Mass Mailing / Configuration / Blacklist
  and Settings / Technical / Email / Blacklist
  -> Renaming Settings / Technical / White / Black List config menu item
     into Channel Moderation to avoid confusion with Mass Mail Blacklist
- Add indexes to the blacklist table (on email) to make it fast for access for
  the different use cases
- _primary_email : attribute that must be overriden to specify which field must
  be used as email in the blacklist mechanism.
- Filtering the blacklisted recipient in mail composer :
  done in mail._get mail value()
  In case of real mass mailing, we need the statistics to be computed in order
  to know how many recipients were ignored in the mail.
  So we cannot avoid sending mail but instead flag the mail as canceled.

Task ID 33224
2018-08-10 17:46:08 +02:00
Francois Volral 6c68059a80 [FIX] web: Add a right margin to line chart
Before, the line chart was rendered with a right margin of 0 px meaning the
right border of the graph was stucked against the right border of the screen
cutting out the last x-axis label. This was uggly. This commit fix that
situation by adding a right margin of 80 px.
2018-08-10 17:21:17 +02:00
Francois Volral 3d2ca8104e [IMP] web: Handle date interval in graph charts
This commit only applies for chart grouped on date or datetime fields.

In that case:
- Line Charts : fill missing groups and doesn't display undefined values.
- Bar Charts : doesn't fill missing groups but display undefined values.
- Pie Charts : doesn't fill missing groups but display undefined values.

This commit is part of task #1835644
2018-08-10 17:21:17 +02:00
Francois Volral 4a40db2097 [IMP] orm: add support to fill temporal holes (read_group)
This commit add an extra parameter 'fill_temporal' to read_group which allows
the orm to add missing groups for date intervals. This is useful for charts.

Suppose that we are in a use case where data are grouped by a date fields
(typically months but it could be another interval) and displayed in a Bar Chart
or a Line Char.
Let's says a request has to group records by month for August, September
and ...December.  If we don't changed anything, we would get a Bar Chart
looking like this :
                                        ___
                              ___      |   |
                             |   |     |   |
                             |   | ___ |   |
                             |   ||   ||   |
                             |___||___||___|
                              Aug  Sep  D
December follows directly after September, it can be unintuitive for the
user, so we change that. We add some fake records for each missing months
between the earliest and the lastest date of the result
                                             ___
                         ___                |   |
                        |   |               |   |
                        |   | ___           |   |
                        |   ||   |          |   |
                        |___||___| ___  ___ |___|
                         Aug  Sep  Oct  Nov  Dec

This commit is part of task #1835644
2018-08-10 17:21:17 +02:00
Francois Volral 32e232149f [IMP] web: fill area under LineChart
Part of Task #1835644
2018-08-10 17:21:17 +02:00
Thibault Delavallée 4a11185cd6 [FIX] mail: fix data using an outdated field
Master is going wild. https://github.com/odoo/odoo/commit/b6f7ad3adb23fff1aa888d8315aca8157b555b03 added activity
data but https://github.com/odoo/odoo/commit/83fc5dc03ce92df9b920386f9215cdc5504c3be1 renamed the field.
2018-08-10 17:07:27 +02:00
Nikunj Ladava f6aba7fb5b [REM] website_sale: remove dead code
The commit https://github.com/odoo/odoo/commit/01216345e28374b554bfe95df82d607c591271cf#diff-6bc8c8d6d3cf3075da7e6f417cf28434L33
removes the methods `_confirm_so`, `_generate_and_pay_invoice`, but the
commit doesn't apply these changes everywhere.

Hence we had dead code still remaining in website_sale
2018-08-10 17:01:41 +02:00
Nikunj Ladava d68d8d9039 [IMP] sale_payment,website_sale: send email when automatic invoice activated
Currently when in payment is configure in automatic invoice mode,
customers don't receive anything.
If they want to see their invoice, they have to log into their portal
account.

Task #1866497
Closes #25864
2018-08-10 17:01:41 +02:00
Martin Trigaux b387a7e541 [FIX] base: rename languages to be more international
Chinese (China) is actually the Simplified version of Chinese
Chinese (Taiwan) is actually the traditionnal version
This will avoids confusions
2018-08-10 16:55:42 +02:00
eco-odoo 687f9243bd [IMP] sale,account: Improve payment acquirers onboarding step
Purpose
=======

- Propose other payment acquired than the predefined ones
- Improve the layout for this step
2018-08-10 16:50:54 +02:00
qsm-odoo 9c4215b9b2 [MERGE] website, *: new theme customization dialog
* web, web_editor, website_theme_install, portal, theme_default,
theme_bootswatch

See sub-commits for details.

task-31677
2018-08-10 16:49:40 +02:00
qsm-odoo 22c4311e28 [IMP] *: make customize dialog generic and improve options
* web, web_editor, website, website_theme_install, portal,
  theme_default, theme_bootswatch

The purpose of this task is to make the customize dialog as generic as
possible, that is theme-independant:

1) The design is now totally generic (Odoo visuals)
2) The XML definition is form-view like. This allows themes to extend
   the dialog without any risk of breaking the style and also allows to
   not care about lots of technical details.
3) New options have been included. Those were themes options that are
   now generic and which themes can simply adapt without touching the
   customize modal (navbar colors, footer color, navbar layout, fonts,
   body background, ...).

The color palette can now also be customized with user colors.

Using sass functionnalities, color palettes and fonts integration is now
a lot better.

Thanks to @qha-odoo for the original design.

task-31677
2018-08-10 16:49:29 +02:00
qsm-odoo fcd4d29c04 [REF] theme_default: delete po files
The theme will be reviewed and merged with website app.
2018-08-10 16:47:53 +02:00
qsm-odoo bcbfd96740 [REF] website: review customize dialog JS 2018-08-10 16:47:53 +02:00