Commit Graph
89 Commits
Author SHA1 Message Date
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
Desai Binjal c743c65d36 [IMP] mass_mailing: campaign form view: add a stat
button to go to the campaign mailings + its function field to have the
counter.
2014-12-26 13:14:11 +01:00
Julien De Coster 27331a79d7 [FIX] mass_mailing: updated link conversion.
Previously to this fix, url matching the same base url were linked to
the same shortened url: foo.be -> /aaa, foo.be/bar -> /aaa/bar instead of
a new shortened url.
2014-12-24 14:30:05 +01:00
Julien De Coster ddac26cdbb [ADD] Add the website_links module.
This module tracks clicks in mass mailing mails and allow the generation of trackable links in a website interface.

Modules modifications
---------------------
Refractoring of the crm_tracking_* classes in a new module.

* Extract the crm_tracking_* from the crm module into a new module "utm"
* Remove the crm_mass_mailing bridge module
* New dependencies of mass_mailing and website_links to utm.
2014-12-17 17:14:33 +01:00
Christophe Simonis 1d3f8eba87 [MERGE] forward port of branch 8.0 up to 591e329 2014-12-02 16:18:08 +01:00
Binjal Desai 4c550d73c8 [FIX] mass_mailing: attachments were not send. 2014-11-20 16:32:53 +01:00
Dikshit Prajapati 17937e7e92 [IMP] mass_mailing: add creation date in fields
to display it on list view + perform search on it.
2014-11-14 12:54:28 +01:00
Christophe Simonis 5068cffbb0 [MERGE] forward port of branch 8.0 up to 491372e 2014-11-05 20:30:40 +01:00
Raphael Collet f2e4a10e1a [IMP] use model._fields instead of model._all_columns to cover all fields
The old-api model._all_columns contains information about model._columns and
inherited columns.  This dictionary is missing new-api computed non-stored
fields, and the new field objects provide a more readable api...

This commit contains the following changes:

 - adapt several methods of BaseModel to use fields instead of columns and
   _all_columns

 - copy all semantic-free attributes of related fields from their source

 - add attribute 'group_operator' on integer and float fields

 - base, base_action_rule, crm, edi, hr, mail, mass_mailing, pad,
   payment_acquirer, share, website, website_crm, website_mail: simply use
   _fields instead of _all_columns

 - base, decimal_precision, website: adapt qweb rendering methods to use fields
   instead of columns
2014-11-04 13:47:57 +01:00
Bhavik Bagdiya ea6a3785bb [IMP] mass_mailing: option to keep sent emails 2014-10-02 09:34:29 +02:00
qdc ff83b439c9 [IMP] mass_mailing: graph view for mailing list contacts, customer filters. Added unsubscription / bounce counter on mass mailing contacts 2014-09-12 13:35:34 +02:00
qdc f57787e07e [IMP] Cleaning of reporting (group_by, filters), adding new favourites and default views, some renaming (py and xml files) 2014-08-26 11:56:49 +02:00
Olivier LAURENT ac9954d210 * [8.0][mass_mailing] some fixes
* [FIX] rename wrong mailing_type field and add missing fields when creating a mass mailing from the composer
* [FIX] coerce tooltip to an unicode string to avoid a json crash when locale produces a non unicode string for strftime(%B)
* [FIX] repair wrong sql statement computing statistics
2014-08-21 11:07:00 +02:00
Thibault Delavallée c64b077362 [FIX] mail: fixed bounce email recognition + invite email headers + mass mailing statistics not lost anymore
- [FIX] bounce regex: too many emails were considered as bounce and therefore
not displayed in the chatter and lost for the communication history. The regex
was not correctly looking for the bounce alias in the email_to.
- [FIX] invite email: replying to the invitation email (invitation as new
follower) now replies to the user sending the invitation.
- [FIX] mass_mailing: added a column to store the id of the original email
in addition to the many2one column. The many2one is set to null when deleting
the original email. As the information is necessary, it is saved on another
field. The many2one is necessary for indexes purpose as the inverse of
a one2many.
2014-08-11 15:39:26 +02:00
Thibault Delavallée 7f0353974d [REF] mail: same_thread field changed into no_auto_thread, its contrary, to avoid migration issues (adding a 'always False' column is easier than an 'always True'). 2014-08-04 14:46:47 +02:00
Olivier Dony 494ecc620f [MERGE] Foward-port saas-5 up to ee4df1e 2014-08-01 14:24:07 +02:00
Olivier Dony ee4df1e397 [MERGE] Forward-port saas-4 up to 8b15482 2014-08-01 13:06:49 +02:00
Jeremy Kersten cc9205d1d1 [FIX] mass_mailing: allow to add a user/email to a specific mailing list and not always the last as previously. 2014-08-01 11:25:41 +02:00
Christophe Simonis f654a7719b [MERGE] forward port of branch saas-5 up to 73d39a0 2014-07-10 22:49:53 +02:00
Martin Trigaux fa44bdb486 [FIX] mass_mailing: load images in emails
The emails containing emails generated with the image widget have absolute path (src='/website/static/...'), adding <base> tag allows the mail client to load it correctly.
2014-07-09 16:42:22 +02:00
Jeremy Kersten faba7cd5aa [IMP] Crm: Add tracking mixin to manage utm campaign and add this mixin to mass_mailing, crm_lead and sale_order 2014-07-08 17:33:00 +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
Olivier Dony d9cda97cf4 [MERGE] Forward-port saas-4 up to 5ceded9 2014-07-05 01:28:19 +02:00
Olivier Dony 5ceded9d69 [MERGE] Forward-port saas-3 up to 4fa30f5 2014-07-05 01:04:19 +02:00
Thibault Delavallée 0ce1ecd6db [FIX] mass_mailing: various fixes 2014-06-18 11:10:31 +02:00
Thibault Delavallée 1dc7d4d3d8 [FIX] mass_mailing: fixed computation of mailing domain when having more than 1 mailing list added in the recipients. A bit longer, but less buggy. 2014-06-04 18:54:20 +02:00
Thibault Delavallée cbdf7830b1 [FIX] mass_mailing: fixes:
- fixed keeping the original message for routing, only when choosing to reply in the
original thread (notification=True)
- auto delete sent emails explicitely
- mail_thread: routing: fixed replies always choosen even when replying to emails
with a specified reply_to (using ref_match in the algorithm)
- mail_thread: routing: instead of exclusive routing heuristics, use each case
as a fallback of the previous.
2014-06-02 13:52:27 +02:00
Denis Ledoux dd36a0e509 [FIX] mass_mailing: on mass mailing sending, set same_thread for message composer
same_thread boolean field of mail.compose.message model define wether or not replies should be posted in the thread or not
On composer creation, this boolean should be passed according to the reply_to_mode of the mass_mailing
Otherwise, all replies would be posted in the thread, and the reply_to will be ignored (if same_thread id True, reply_to is poped from the mails values, mail/wizard/mail_compose_message.py:284)
2014-06-01 22:08:56 +02:00
Denis Ledoux d6a2ae642b [FIX] mass_mailing: avoid to eval an undefined domain 2014-06-01 21:45:26 +02:00
Thibault Delavallée c93d169fde [FIX] mail: fixed get_default_recipient, trying to call a method even if the target model do not have it; also fixed default recipients generation on the contact model; sending a mass mailing when not having recipient now raise a warning. 2014-05-27 13:33:10 +02:00
Christophe Simonis f38387820d [TYPO] mass_mailing: rename wrongly named function field (dayly -> daily).
[FIX] mass_mailing: add `oldname` attribute to some renamed fields.
[FIX] mass_mailing: replace int field with many2one field to enforce fkey

bzr revid: chs@openerp.com-20140429165430-6w4xplwr4c5ymi1j
2014-04-29 18:54:30 +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 fe8a745b02 [MERGE] Sync with trunk
bzr revid: tde@openerp.com-20140416082925-eph1x8vnwj6o31rt
2014-04-16 10:29:25 +02:00
Thibault Delavallée 4336c64a7c [IMP] mail, mass_mailing: using a _mail_mass_mailing class attribute
it is now possible to compute models allowing mass mailing using mass_mailing_campaign
module. This allows to completely remove the bridges modules, using a more generic
controller for unsubscription.

bzr revid: tde@openerp.com-20140416082851-8duo6yrwr5hwd8c2
2014-04-16 10:28:51 +02:00
Thibault Delavallée c5627c4d3f [FIX] mass_mailing: fixed issue when generating unsubscirbe urlé
bzr revid: tde@openerp.com-20140415160743-5i0pjieo4o031ico
2014-04-15 18:07:43 +02:00
Thibault Delavallée f7d7e34467 [REM] mass_mailing: removed now dead code
bzr revid: tde@openerp.com-20140415154754-60uvhxt8ho78pdqd
2014-04-15 17:47:54 +02:00
Thibault Delavallée 3eaeae55a0 [IMP] mail, mass_mailing: better recipientsz computation
for mass mailing, composer and template. This allows to have one method computing recipints
and avoid repetiting myself.

bzr revid: tde@openerp.com-20140415154700-zu2izvxfjq1k4h4a
2014-04-15 17:47:00 +02:00
Thibault Delavallée ea2e59f86b [FIX] mass_mailing: fixed email sending
bzr revid: tde@openerp.com-20140415113944-hjwjc2lh4ydzugr1
2014-04-15 13:39:44 +02:00
Thibault Delavallée 7e1e475d89 [IMP] mass_mailing :handle attachments for mailings
bzr revid: tde@openerp.com-20140415110439-j72v9cnz3nml7g04
2014-04-15 13:04:39 +02:00
Thibault Delavallée d538a02c0e [FIX] mass_mailing: fixed graph buttons in form view + fixed stat computation
bzr revid: tde@openerp.com-20140415104328-yll2kgxtjmg6f3hc
2014-04-15 12:43:28 +02:00
Thibault Delavallée 90d9b497b3 [FIX] mass_mailing: various fixes in campaign view and basic management
bzr revid: tde@openerp.com-20140415101342-7vvadykp1udz6hgs
2014-04-15 12:13:42 +02:00
Thibault Delavallée 35d51fe71f [REM] mass_mailing: removed report, a graph view on statistics will be sufficient
bzr revid: tde@openerp.com-20140415095817-rx7bokd6qc5rkrhq
2014-04-15 11:58:17 +02:00
Thibault Delavallée 6179d9b6a2 [IMP] mass_mailing: finishing refactoring for the new func flow.
- cleaned reply-to management, now displaying an alert but simplifying the underlying
model about options available / not available for certain documents;
- cleaned a bit the form view;
- date -> create_date, and added a sent_date to distinguish the two;
- removed dead code;
- first draft of improving the chardomain widget

bzr revid: tde@openerp.com-20140415092503-q1hku1rh12ldy9i1
2014-04-15 11:25:03 +02:00
Thibault Delavallée 48d7a6fa6c [CLEAN] mass_mailing: rmeoved dead stuff
bzr revid: tde@openerp.com-20140414144011-awu4g35etq9s4gje
2014-04-14 16:40:11 +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 96a750fd03 [IMP] Removing featuer
bzr revid: fp@tinyerp.com-20140413203309-digp60hsobgv3i57
2014-04-13 22:33:09 +02:00
Fabien Pinckaers 2ad0b6e369 [IMP] removing unused code
bzr revid: fp@tinyerp.com-20140413202922-glv198j62sqeugz2
2014-04-13 22:29:22 +02:00
Fabien Pinckaers b1ccd56368 [IMP] better usability
bzr revid: fp@tinyerp.com-20140413201748-u8e26ef40dt7360i
2014-04-13 22:17:48 +02:00
Fabien Pinckaers f908137d76 [IMP] Template Editor
bzr revid: fp@tinyerp.com-20140413162028-9tqqzis7qbggcrp4
2014-04-13 18:20:28 +02:00