Commit Graph
48 Commits
Author SHA1 Message Date
Thibault Delavallée 5649fc88e8 [REF] {website_}mail: move and replace published field of mail.message to is_internal
PURPOSE

Clean posting process and improve mail.message definition and comprehension.

SPECIFICATIONS

Website mail defines a website_published field allowing to publish / unpublish
comments on the frontend of some modules. This field has several drawbacks :

  * it is used only for front-end people (portal, public) and has no real
    effect in chatter / classic discussions;
  * it is used only in some advanced front-end module and is not available
    in portal by default;
  * its naming is not really correct as it is not linked to fields coming
    from the website_published mixin and its behavior is not really
    the same;
  * its use is a bit duplicated with internal flag coming from subtype
    allowing to hide messages related to an internal subtype;
  * there are overrides of standard mail.message methods just to handle
    this flag;

In this commit we change that field by an is_internal flag directly on
mail.message model itself. It tells if share people (customers, share users)
are allowed to read the message. This field can be given through posting
API or set manually using widgets. It is also used in access rights custom
methods and managed like the internal flag of subtypes.

Mailgateway was already using an internal flag for internal note replies. It
is renamed to is_internal and propagated as it is now a standard field. It
also eases code understanding.

Portal is updated to allow managing the flag directly. It means customer portal
now natively allows to moderate customer comments without any need of website
modules.

Rating is updated accordingly. An is_internal field is added, replacing the
related on website published.

LINKS

Task ID 2071556
PR #38692
2019-12-02 15:18:44 +00:00
Thibault Delavallée 46b9a97b56 [MOV] {website_}mail: move description field of mail.message directly in mail
PURPOSE

Clean posting process and improve mail.message definition and comprehension.

SPECIFCIATIONS

Move description from website_mail directly to mail. Anyway it is a
non stored computed field and therefore having it available directly
in mail does not cost anything.

LINKS

Task ID 2071556
PR #38692
2019-12-02 15:18:44 +00:00
Adrian Torres 4b38cc6590 [REM] *: calls to @api.multi
Multi is the default api for methods, it is not necessary to explicitly
decorate methods with it, adds clutter and most people use it because
they see that the rest of the code uses it.

Done with `find . -type f -name '*.py' | xargs sed -i '/@api.multi/d'`
2019-07-17 14:13:12 +02:00
Nicolas Martinelliandjev-odoo 94a2c54fb5 [IMP] mail, website_mail, base: extra info on error messages
Display extra information on error messages:
- Access error based on ACLs: user, fields (if applies)
- Access error based on record rules: user, ids
- Missing error: model, operation, user, ids

closes odoo/odoo#33943

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>


Co-authored-by: jev-odoo <jev@odoo.com>
2019-06-06 11:40:28 +00:00
Goffin Simon 2c3451de12 [FIX] portal, website_mail: Wrong dependance
The field website_published is not ensured when module portal
is installed because the module portal doesn't depend on module
website_mail.

PS:The module website_mail depends on the module portal because
website_mail depends on website and website depends on portal.

opw:1997478

closes odoo/odoo#33452

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-05-17 03:18:08 +00:00
Jérome Maes 3cfd64f63f [MOV] portal,website_mail: move chatter frontend to portal
This split responsiblilies :
- portal provides basic chatter for portal document, and
website documents (slides, blog, ...).
- website_mail provides comments moderation (unpublished mail
message)
- website_rating integrate rating when posting comments
2017-08-16 14:56:40 +02:00
Jérome Maes d79678fdd5 [IMP] website_mail: make the frontend chatter lazy
Message are now fetched and display using javascript
to optimize performance.
Also the chatter is completely rewrite : add pager,
filter possiblity, ...

This commit is mainly technical: posting feature does
not change. Only the display with pager is new.
The goal is also to prepare frontend chatter for a
better integration with rating widget.

The mail.thread mixin is extended to manage the field
website_message_ids (display all messages that can be
seen on frontend by user (employee or not).

When fetching or posting message, a check is done to see
if we need to do it as sudo(). website_mail implement posting
messages with token or sha_in (using in website_quote).
The same verification is now done when fetching messages, via
'_special_access_object' method.
2017-06-30 11:06:32 +02:00
Jérome Maes 56ed99cff5 [IMP] website_mail: extends mail.thread mixin to manage website messages
mail.thread mixin will (re)provide the field 'website_message_ids'.
Models can redifined its domain, since it can differ a bit (blog, forum,
... are not the same).
Even if the domain can differ, we still keep it on the mixin since
it will be required for the new chatter frontend (see following
commits).
2017-06-30 11:06:32 +02:00
xmo-odoo b4429c2a91 [FIX] Various P3-related import changes
* LDAP import: python-ldap is not python3-compatible, pyldap is

  Warning: only supported from debian Stretch (current testing)?
  https://packages.debian.org/search?searchon=names&keywords=pyldap

* implicitly relative imports
* imports of moved or removed stdlib modules

issue #8530
2017-04-28 09:06:53 +02:00
Raphael Collet 6956696eb2 [REM] models: remove _defaults 2016-08-31 17:21:46 +02:00
Christophe Matthieu f1b58b1293 [IMP] website_mail: use 'user_has_groups' API
The custom check is a more complicated and slower code than using the API
method provided for that.
2016-08-04 10:44:20 +02:00
Jérome Maes fb88cff1bd [IMP] website_mail : remove 'website_message_ids' from mail.thread
This inheritance wasn't working till the commit of rco, modifying
models inheritance.
Anyway, `website_message_ids` field is already defined on several
models (product, slide, forum questions, blog post, ...), and each
of them have a different domain attribute.
So making the mail.thread mixin providing this field is not so
interessting since it will be overrided for specific behavior.
We remove this field as it can't be usefull and generic.
2016-04-13 11:21:05 +02:00
Keyur Gajjar 30f48eb6b6 [MIG] website_mail: code migration to new api
No functional changes, only rewrite the code with
the api.v8 which more pythonic and smooth.
2016-04-13 11:20:53 +02:00
Thibault Delavallée c128ddf827 [FIX] website: remove unnecessary dependency from website
to mail. The only use was to update a method of publisher_warranty.contract
model that is defined in mail.

This code has been moved to the bridge module between website and mail
aka website_mail.

Dependency to share has also been removed.
2015-07-01 10:58:20 +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
Thibault Delavallée 4b122ad41d [MIGR] mail: migration to the new API 2015-04-27 10:36:15 +02:00
Christophe Matthieu 70c30fe5b1 [IMP] website_mail: improved template designer, added support for background color, font color and convert class to inline style in mail designer, changed snippet according to new format, added theme selector in mail_designer, added font-awesome support (convert in image) in mail snippets 2015-02-12 11:58:13 +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
Julien De Coster d88c34d11e [IMP] Mass mailings send in cron
1. The merge of the "email_template" module into the "mail" module.
2. The send action of the mass mailing has been moved from the frontend to a cron, because it was too slow to send over 10,000 mails (the user's browser was blocked for 15 - 20 minutes). Mass mailings have now their own process in the kanban view.
3. Mails sent from the mail form are sent immediatly instead of from the mail queue (for instance, when you go to sales > customers > list view > select 2 -3 customers > More > Partner Mass Mailing).
4. Users have now the choice from which mailing list they want to unsubscribe when they click on the unsubscribe link at the bottom of the mail.
5. Mass mailings inherit from their campaign UTMs and mass mailing campaigns are linked to an UTM campaign.
6. Many little improvements
2015-01-07 18:01:58 +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
Martin 9ee4ba8098 [FIX] website_mail: avoid error when message.body is empty 2014-12-16 10:42:37 +01:00
Olivier Dony 6da3648fd6 [FIX] website_mail: mail.message.check_access_rule: no check for super-user 2014-08-08 16:56:44 +02:00
Raphael Collet cbe2dbb672 [MERGE] new v8 api by rco
A squashed merge is required as the conversion of the apiculture branch from
bzr to git was not correctly done. The git history contains irrelevant blobs
and commits. This branch brings a lot of changes and fixes, too many to list
exhaustively.

- New orm api, objects are now used instead of ids
- Environements to encapsulates cr uid context while maintaining backward compatibility
- Field compute attribute is a new object oriented way to define function fields
- Shared browse record cache
- New onchange protocol
- Optional copy flag on fields
- Documentation update
- Dead code cleanup
- Lots of fixes
2014-07-06 17:05:41 +02:00
Jonathan Nemry de9654deec [FIX] website_mail: default could be None 2014-06-10 16:57:54 +02:00
Martin Trigaux ddaac15f48 [FIX] website_mail: backport of master fix a54caabbcb 2014-06-10 16:48:19 +02:00
Thibault Delavallée b7c6b1cbca [FIX] website_mail: message description should effectively be limited to the first 30 characters. 2014-05-21 16:27:17 +02:00
Thibault Delavallée d264cd1640 [IMP] website_mail: make the template / mail editor work. We now have a limited
set of fields that we try to edit (body_html and body for body, email_from and email for
email-from, name and subject for subject), because t-field is not dynamic. If the model
that should be edited does not hold those fields, the mail editor won't work.

Also fixed editor not being actiated when going into the body edition.

bzr revid: tde@openerp.com-20140416105901-vavkh9erjsq4mof9
2014-04-16 12:59:01 +02:00
Thibault Delavallée 55266ab25d [MERGE] Merged fp's refactoring branch.
bzr revid: tde@openerp.com-20140414131109-7ijlz4gybjd2b2oj
2014-04-14 15:11:09 +02:00
Fabien Pinckaers 3db3160644 [IMP] website_link field removed
bzr revid: fp@tinyerp.com-20140413204625-tu2bw7cyj14rjx53
2014-04-13 22:46:25 +02:00
Thibault Delavallée 8178669795 [FIX] mail, mass_mailing
- mail: now trigger postprocess_sent_message in every case, being sent or not, as the state
is propagated in the method; udpated all addons accordingly;
- email_template: fixed URL to edit it in website + form view;
- mass_mailing: barchart now send jsonified value;
- mass_mailing: tweaking the form view with all options

bzr revid: tde@openerp.com-20140408124053-o9tb14k6v47s5mjd
2014-04-08 14:40:53 +02:00
Christophe Simonis 0fad8159f3 [MERGE] forward port of branch saas-3 up to revid 9380 chs@openerp.com-20140407144439-10n8fs6zovodwwtx
bzr revid: chs@openerp.com-20140407163318-hh3jwfkj3o2c83lk
2014-04-07 18:33:18 +02:00
Martin Trigaux 9553c48a8b [FIX] website_mail: force the copy method not to copy website_message_ids field, we do not want duplicated emails (opw 605975).
bzr revid: mat@openerp.com-20140402123707-r3e38b64zsheq0tn
2014-04-02 14:37:07 +02:00
Denis Ledoux f22169ebfb [FIX] website_mail: overwritten _search method created domains syntactically not correct + security rule was applied on superuser
bzr revid: dle@openerp.com-20140402093721-hwcdwltbkict4oz4
2014-04-02 11:37:21 +02:00
Thibault Delavallée 6af6575efb [IMP] website_mail: added not stored function field
on mail.message that is a short description of the message, either
the subject if present, of the beginning of the plain-text version
of the body. Used whenever messages 'subject' for all messages
is necessary.

bzr revid: tde@openerp.com-20140320151004-qq57s9r8qcpue0rs
2014-03-20 16:10:04 +01:00
Christophe Simonis 99a3c45976 [MERGE] forward port of branch saas-3 up to revid 9328 chs@openerp.com-20140318120024-mcxmkncn1xktjs7v
bzr revid: chs@openerp.com-20140318132741-aur3q1k7t9iympri
2014-03-18 14:27:41 +01:00
Olivier Dony 3f7d176a55 [FIX] website_mail: very expensive copy/paste typo
bzr revid: odo@openerp.com-20140311155309-bs0frntkkhym8e2o
2014-03-11 16:53:09 +01:00
Christophe Simonis d504764eff [MERGE] forward port of branch saas-3 up to revid 9298 chm@openerp.com-20140311130852-3ft0v1mc9ht1any6
bzr revid: chs@openerp.com-20140311145205-s56fj113fsrnisc3
2014-03-11 15:52:05 +01:00
Thibault Delavallée db2bdee343 MERGE] [FIX] email_template: fix relative -> absolute url conversion
Local URLs are converted into absolute URLs, notably because when using the
email designer, images are added using local URLs. Previously to this fix
the template was analyzed to find local URLs and make them absolute.
However this causes 2 issues :
- mako-based URLs are broken because a scheme is added before the mako that
generated the image src
- when changing the base url, the templates are not updated
The URLs are now converted dynamically when generating the content of the
html. This is done by passing a new parameter that enable the post processing
of the generated content.
Also fixed double body generation when using templates; fields parameter
was not propagated correctly.

bzr revid: tde@openerp.com-20140304112957-l9b10gyjqphs5fgc
2014-03-04 12:29:57 +01:00
Thibault Delavallée 05fdc2290a [IMP] email_template: relocate url rewritign stuff directly into the rendering method.
bzr revid: tde@openerp.com-20140303104044-hgmii31ga6msf72z
2014-03-03 11:40:44 +01:00
Thibault Delavallée a9a4767d17 [FIX] email_template :
- fixed composer using template that were rendering the body twice, once form the template and
once from the composer body. Only the latter one is used, so avoid generating the template body
that is not necessary
- fixed email_template generating values for a set of given fields, ignoring the field list
given into parameter
- fixed post processing of templates to transform local urls into absolute urls; now urls are
transformed after body generation, when sending email based on templates , or when generating
the content when using the composer.

bzr revid: tde@openerp.com-20140227153835-gmqnxrzed9fnbxhm
2014-02-27 16:38:35 +01:00
Christophe Simonis 4b72678bc7 [MERGE] forward port of branch saas-2 up to revid 9195 chs@openerp.com-20140220154517-6y531n1mqtnfnsmr
bzr revid: chs@openerp.com-20140220163815-69sza1kclnh5mavs
2014-02-20 17:38:15 +01:00
Olivier Dony ea5d111166 [IMP] website_mail: avoid marking old messages as published
There is semantically no reason to publish old
messages, and doing so can be expensive for large
databases. Defaulting new messages to published
makes sense depending on the model on which they
are attached, so it might be better to improve
this as an opt-in handled in create() or
message_post() or via default_* context keys.

bzr revid: odo@openerp.com-20140217142006-ik18uqy9ewhhhb42
2014-02-17 15:20:06 +01:00
Thibault Delavallée 93a5122ac5 [IMP] website_mail: improve email_template link for front-end edition didsplay
bzr revid: tde@openerp.com-20140206145510-y4mangyhhmwcofa7
2014-02-06 15:55:10 +01:00
Olivier Dony a09fa10c49 [FIX] website_mail: useless and expensive DISTINCT
bzr revid: odo@openerp.com-20140129162532-os3lzjyf87hg1ouc
2014-01-29 17:25:32 +01:00
Thibault Delavallée 6072e586f4 [FIX] website_mail: email_template: fixed lxml/etree adding a div
outside of the html content, breaking the snippets-based editor.

bzr revid: tde@openerp.com-20140115151644-0cei3chdl5op2flr
2014-01-15 16:16:44 +01:00
Thibault Delavallée b97727701c [IMP] [ADD] website: added base for template designer.
[ADD] website: email_template: added website_link field, a link to edit the template
directly in the website
[ADD] website_mail: added controller and page to edit templates. They are still jinja
templates editable in the website. Not qweb templates.
[ADD] website_mail: JS file and editor override to enable only certain snippets. Those
are still to add, but will be base templates for email.
[IMP] website: improved the addition of editor JS in the template header to be able
to add JS file that override the editor without having to hack everything in the
template.

bzr revid: tde@openerp.com-20140113125534-djy48pi7lf42f9ms
2014-01-13 13:55:34 +01:00
Thibault Delavallée 3fb01132d2 [MOVE] website_mail: moved model-related files inside a models directory.
This is done to match the new module organization we want to set
for OpenERP modules. Model-related files should lie in a models
directory.

bzr revid: tde@openerp.com-20131011100057-bpe5620omyjsj0y0
2013-10-11 12:00:57 +02:00