Commit Graph
154 Commits
Author SHA1 Message Date
Pierre Collinet (pic) f1c99a60fa [IMP] crm: improve onboarding tour of module CRM
Add an autocomplete for opportunity name. If no name is set when a customer is
selected set the name partner_id.name's Opportunity

Change help title and subtitle to be more explicit. Change title from "Create
an opportunity in your pipeline" to "Create opportunities to keep an eye on
all your ongoing sales talks." Concerning subtitle, if a valid
and active email alias is found : Emails sent to ALIAS@address automatically
create opportunities.

Improve crm onboarding tour text messages and display.

Change menuitem from Teams to Team Pipelines to be more explicit. Update
the corresponding act_window name in the sales_team module.

Make the "schedule an activity" button bigger (100% of the div) and highlight
the entire Schedule button box.

Update test tours accordingly. Since quick create opportunity form is updated
the tests were failing. Reason is a trigger on input:first trying to detect
the field "name". This is not the case after this commit's changes.

Task ID 2226563
Community PR #51587
2020-06-11 12:26:45 +00:00
Florent LejolyandThibault Delavallée d13dba106c [REF] crm : use stored editable r+w fields
PURPOSE

Try to move from onchange / default_get to stored editable computed fields.
Behavior should be the same (computed or set by user), with support of
create / write / onchange field update without additional code.

SPECIFICATIONS

Update classic fields updated in some cases by onchange and/or default methods
by fields with store=True, readonly=False. It means their value comes either
from manual user input, either from trigger based computation.

Remove onchange and default_get when possible, leading to an unique computation
method and clearing fields definition.

Also clean some fields definition inconsistencies, notably required fields
that should instead be correctly computed or default that have no real meaning.

SPECIFIATIONS: CONSTRAINT USER_ID / TEAM_ID

In this commit we also remove all the better implementations of "not really a
constraint" constraint about user_id and team_id. Indeed as this is a computed
field normally we should not have to call the onchange manually, even through
a hackish call to a falsy constraint (see fdc8749, 222cca2, 4e8ebc7 ). You are
all inferior to SM team.

SPECIFIATIONS: DATE_OPEN

Assignment field, namely ``date_open``, has a random definition as it seems
linked to assignation, with several behaviors intended

  * ce39ca8a97 : reset only when going from
    no salesman to a salesman (aka, keep assignation when changing)
  * 8e540558ee: reset when changing salesman

We choose to keep first implementation as it seems a bugfix broken again
by second commit. It will also replace the ``assign_date`` defined in
``website_crm_score`` module.

SIDE EFFECTS

Several side effects occur with this commit. Indeed behavior is not always
exactly the same, notably as code rewriting allowed to fix some issues,
incoherent behavior or was simply not able to achieve exactly the same
result. Notably

  * at lead creation: default probability is the one coming from PLS and not
    0.0 anymore, since field is already computed. Synchronization with PLS
    still works the same way (change probability, you are out of syn);
  * various user_id / team_id combinations notably in convert / merge wizards
    may change, notably we do not reset team_id if user_id is reset. We
    consider we could keep a team_id set without user_id;

LINKS

Task ID 2088565 (crm: from onchange to compute)
Upgrade PR odoo/upgrade#781

Co-Authored-By: Thibault Delavallée <tde@odoo.com>
Co-Authored-By: Florent Lejoly <fle@odoo.com>
2020-03-23 11:42:12 +00:00
Thibault Delavallée d8b6b35cb3 [REF] crm(_*): improve code of methods used in lead/opp convert/merge wizards
PURPOSE

As CRM is going to be updated (onchange -> compute, code improvements, better
management of sales teams) cleaning and improving code is a necessary first
step.

SPECIFICATIONS

Purpose of this commit is to rewrite code located and/or used in convert or
merge wizards. Indeed it holds unnecessary variables, dictionaries manipulation
that hides the real business flow, badly named variables, unclear methods, ...
Logic of those wizards seem quite simple but is hidden behind a wall of
bloated code.

Notably for wizards

  * try to set explicit arguments in methods;
  * less use of context values, replaced by arguments when possible;
  * try to make better use of lead2opportunity wizard in its mass wizard that
    inherit from it, notably by correctly calling super;

Notably for tools

  * ``get_duplicated_leads`` was just a shortcut to ``_get_duplicated_leads_by
    _emails``;
  * ``_get_duplicated_leads_by_emails`` is renamed to ``_get_lead_duplicates``
    because email is not the only way of finding duplicates;
  * try to make better use of record sets instead of propagating ids, notably
    for partner. For example input of ``_get_lead_duplicates`` or output of
    ``_find_matching_partner``;
  * ``_create_lead_partner`` rename to ``_create_customer``, and its sub
    method ``_create_lead_partner_data`` to ``_prepare_customer_values``;
  * ``handle_partner_assignation`` was difficult as its use is not documented
    and its docstring was not updated. Parameter have been renamed to be more
    explicit about what it does. Method is renamed to ``handle_partner_
    assignment`` as assignation has other meaning in English;
  * ``allocate_salesman`` is renamed to ``handle_salesmen_assignment`` to match
    the partner assignement and code is slightly cleaned;

No functional change should occur with this commit. Tests have been gradually
added to try to ensure behavior does not change.

LINKS

Task ID 2088565 (crm: from onchange to compute)
2020-03-23 11:42:11 +00:00
David BeguinandThibault Delavallée 5f551d235c [REF] (sale_)crm: remove crm.partner.binding mixin
PURPOSE

This refactoring commit removes the crm.partner.binding mixin. Indeed it
defines a mixin for unnecessary fields, generally either redefined in
inheriting models, either not used at all. It also holds an utility method
we moved directly on crm.lead model.

SPECIFICATIONS

Code move

  * move _find_matching_partner to crm.lead model;
  * move action field into inheriting models, except crm.lead.convert2ticket
    that does not use it;
  * move partner_id to inheriting models;
  * remove crm.partner.binding model and inheritance;

Improve behavior

  * correctly store lead and partner many2one fields on all inheriting
    models. It allows to support a default_lead_id instead of always
    relying on active_model / active_id, making the wizards more generic;
  * update default_get accordingly in various inheriting models in order to
    correctly compute lead / partner values;

LINKS

Part of Task ID 2056759 (remove crm.partner.binding mixin)
Part of Task ID 2088565 (crm onchange -> compute)
Community PR odoo/odoo#44970
Enterprise PR odoo/enterprise#8307
Upgrade PR odoo/upgrade#750

Related: odoo/enterprise#8307
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Co-authored-by: David Beguin <dbe@odoo.com>
Co-authored-by: Thibault Delavallée <tde@odoo.com>
2020-02-13 15:29:40 +00:00
Florent Lejoly 38d8b0526f [FIX] sale_crm: correctly handle customer option when converting opportunity
When converting an opportunity to a quotation, it will give 3 options where
the last option is "Do not link to a customer". When clicked it has the
same behavior than "Create a new customer".

Followup of 1d2bccd0db that added the
selection entry but did not implement its behavior.

This commit fixes that behavior. Now it opens a quotation without linked
customer.

Task ID 2065014

closes odoo/odoo#37026

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-09-24 11:08:27 +00:00
Raphael Collet 1d2bccd0db [IMP] fields: stricter rules on selection fields overridings
One cannot override the attribute `selection`, and list selections can only be
extended with `selection_add`.

Adapt the bad extensions to be consistent with the new warnings

closes odoo/odoo#35663

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-08-21 14:36:19 +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
David Beguin 4c9c249cc3 [IMP] sale_crm : create partner on new quotation if no customer set on opportunity
When creating a quotation from a opportunity that does not have any
customer set, we ended up on a quotation without any customer or any of
the contact information entered on the crm.lead.

If no customer is set on the opportunity, when hitting New Quotation button,
a modal is displayed to ask the user what to do to fill in the customer field.

- Create a new customer : Use the information from the opportunity to create
automatically a res.partner. Set the res.partner on the quotation
and on the opportunity.
- Use an existing customer : Set this customer on the quotation
and on the opportunity.

Task ID : 1917332
Closes PR #30475
2019-03-25 14:50:55 +00:00
Fabien Pinckaers 6a7f17a057 [IMP] improved usability: revenues & quotes on opportunities, no wizard for opportunity to quotes 2015-03-07 20:34:27 -08:00
Christophe Simonis 7f2de62378 [MERGE] forward port of branch 8.0 up to 33a8989 2015-02-11 17:25:33 +01:00
Denis Ledoux 90230a967f [FIX] sale_crm: preserve opp time when converting to sale order.
Field date_order of sale.order model was changed from date to datetime
during rev. 56cbc9421d

When converting the opp to a sale order, we must therefore use fields.datetime.now
which returns a datetime
instead of fields.datetime.context_today
which returns a date
2015-02-04 11:16:52 +01:00
dka-odoo b960874960 [IMP] crm, sales_team : usability onboarding. Improvements in kanban and form views mainly. 2015-01-21 18:03:04 +03: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
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
Turkesh Patel fd659e908b [IMP] crm: business model cleaning
Models renamings:
- crm.case.stage becomes crm.stage
- crm.case.section becomes crm.team

Model split:
crm.case.categ has been splitted into:
- crm.phonecall.tag
- crm.lead tag
- crm.claim.tag
- crm.helpdesk.tag

Models removal:
- crm.payment.mode
- crm.segmentation
- report.crm.case

Removal of the crm_profiling module

(all these refactorings have been done in order to ease new API
migrations)
2014-11-04 16:58:41 +05:30
Jitendra Prajapati 4ea9c4f05d [IMP] sale_crm: on opportunity form view, add a button linking to the
sales related to the current opportunity, using a stat button. Two fields are
introduced: opportunity_id on sale.order (automatically set when using the
make sale wizard), and sale_amount_total on the opportunity, function field
computing the total amount for the not canceled quotations related to the
opportunity.
2014-09-02 10:42:19 +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
Fabien Meghazi faa09da325 Removed version="7.0" from form views 2014-06-12 09:09:59 +02:00
Denis Ledoux 41fe705943 [MERGE] Forward-port of latest 7.0 bugfixes, up to rev. 9674 rev-id: dle@openerp.com-20131204133633-t7wfbnipv3jtss82
bzr revid: chs@openerp.com-20131204125051-dexejzwigpu0z1yy
bzr revid: dle@openerp.com-20131204134400-50y7ojeb8pw7k56s
2013-12-04 14:44:00 +01:00
Denis Ledoux c0c971b87a [FIX] sale_crm: wizard crm_make_sale crash if partner_id not sent on the opp.
Because defaults get function of partner_id of wizard read the partner_id of the opp and return the first item of the tuple, but if there isnt a partner on the opp, the read return a false for this field, not a tuple. 
No return the first item of the tuple if the partner_id is set, else False

bzr revid: dle@openerp.com-20131204133633-t7wfbnipv3jtss82
2013-12-04 14:36:33 +01:00
Denis Ledoux 7baee28221 [MERGE] Forward-port of latest 7.0 bugfixes, up to rev. 9642 rev-id: dle@openerp.com-20131125160315-tj8n5bv6e5yv8jku
bzr revid: dle@openerp.com-20131125143003-vjtzj1c5051pdnk3
bzr revid: dle@openerp.com-20131125160523-hecq5u2uo0mfyoq0
2013-11-25 17:05:23 +01:00
Martin Trigaux d96d2d8725 [FIX] sale_crm: correctly return id only (would break if readonly field)
bzr revid: mat@openerp.com-20131122142211-pvbw55ikk74132zm
2013-11-22 15:22:11 +01:00
Thibault Delavallée 769962e5f9 [FIX] sale_crm: fixed call to case_close that does not exits anymore; using case_mark_won instead
bzr revid: tde@openerp.com-20130809075213-cffxz6rx8t1s2gq1
2013-08-09 09:52:13 +02:00
Thibault Delavallée 1a51e9b88d [MERGE] Sync with trunk
bzr revid: tde@openerp.com-20130614141720-7qjo6fpkm83jhpm2
2013-06-14 16:17:20 +02:00
Christophe Simonis 6a9adbca62 [MERGE] forward port of branch 7.0 up to revid 9236 mat@openerp.com-20130613160953-itt79mu5xrl7suv4
bzr revid: chs@openerp.com-20130613181503-82234mo34wxb0oap
2013-06-13 20:15:03 +02:00
Christophe Matthieu 9d9e3d2ef8 [IMP] Improve typos in warning (Grammar mistake, Capitalize title, Typos)
bzr revid: chm@openerp.com-20130607113829-1mi6jk18c2v3jjhn
2013-06-07 13:38:29 +02:00
sgo@tinyerp.com 2bda4f7b3c [MERGE]sync with trunk
bzr revid: sgo@tinyerp.com-20130607113500-jzhet9cr98c0ss4s
2013-06-07 17:05:00 +05:30
Vishmita Jadeja (openerp) 1b08798b52 [TYPO]changes in typo
bzr revid: vja@tinyerp.com-20130430072547-7gyl7nivdc8717ua
2013-04-30 12:55:47 +05:30
ggh-openerp 3b73e2b2a4 [IMP]Removed space before Exclamation marks [!]
bzr revid: ggh@tinyerp.com-20130429071557-vnxo5nni03vc886j
2013-04-29 12:45:57 +05:30
sgo@tinyerp.com d1e17fbde0 [MERGE]sync with trunk
bzr revid: sgo@tinyerp.com-20130417061434-zry7pxo7fb17063k
2013-04-17 11:44:34 +05:30
Vo Minh Thu e69326ee3b [REF] removed explicit model instanciations.
bzr revid: vmt@openerp.com-20130415102349-vgcrfok2k5y10cwz
2013-04-15 12:23:49 +02:00
sgo@tinyerp.com 3d5f4f5f3d [IMP]improve code
bzr revid: sgo@tinyerp.com-20130124123607-rb405xsiq62gwn5n
2013-01-24 18:06:07 +05:30
sgo@tinyerp.com 923115f895 [IMP]remove total sale.shop from sale_crm
bzr revid: sgo@tinyerp.com-20130121101127-4a1anxi5jkdeivtz
2013-01-21 15:41:27 +05:30
Mayur Maheshwari (OpenERP) d99a4cfeda [FIX]sale_crm:Fixed issue of partner payment_term is not carry when opportunity converted into sale order case:583948
bzr revid: mma@tinyerp.com-20130109090456-e5xwgl2i0h46tfqs
2013-01-09 14:34:56 +05:30
Olivier Dony 49597f0e66 [MERGE] *: improved english wording, suggestions courtesy of OpenERP Community
bzr revid: odo@openerp.com-20121221164808-kdjrtcbgma4dr3on
2012-12-21 17:48:08 +01:00
Vo Minh Thu e7f4891d46 [IMP] use the openerp namespace.
bzr revid: vmt@openerp.com-20121206145632-0h1coh5aaem65wsy
2012-12-06 15:56:32 +01:00
Arnaud Pineux 7b76c5216e [MERGE] fix the phone call to opportunity to quotation
lp bug: https://launchpad.net/bugs/1017353 fixed

bzr revid: api@openerp.com-20121113134911-gd4o1zj6ixtu83hm
2012-11-13 14:49:11 +01:00
Mayur Maheshwari (OpenERP) e6541e7791 [MERGE]: Merge with lp:openobject-addons
bzr revid: mma@tinyerp.com-20120823123824-6yot4cwpejdmdrdz
2012-08-23 18:08:24 +05:30
Fabien Pinckaers b62858e83e [IMP] Merging different ways of posting a message:
message_append_note
  message_append_dict
  message_append
  --> merged all to message_post

bzr revid: fp@tinyerp.com-20120817100302-bqsqv23ogrchslew
2012-08-17 12:03:02 +02:00
Vo Minh Thu 2376fe0add [MERGE] merged view changes: the type is now a functional field derived from the arch.
bzr revid: vmt@openerp.com-20120814121117-dent4ctz89kdcabi
2012-08-14 14:11:17 +02:00
Vo Minh Thu 9822629548 [MERGE] merged trunk.
bzr revid: vmt@openerp.com-20120813160657-ilujdek8ys4fzhp9
2012-08-13 18:06:57 +02:00
Stephane Wirtel b01fc5c9a2 [MERGE] lp:~openerp-dev/openobject-addons/trunk-addons-issues4-crm-pso
bzr revid: stw@openerp.com-20120810091332-c80h6kh3gc88mpt7
2012-08-10 11:13:32 +02:00
pso (OpenERP) 55da32ff65 [MERGE] Merged HSA's branch for sale_crm improvement
bzr revid: pso@tinyerp.com-20120809123606-7jrxaxqs9tqhvl2r
2012-08-09 18:06:06 +05:30
Twinkle Christian (OpenERP) fc1b1749a8 [IMP]Remove type field from the modules
bzr revid: tch@tinyerp.com-20120809060516-zgx3gdyv6wdshfyw
2012-08-09 11:35:16 +05:30
Hardik 22a4b11322 [IMP]sale_crm : set the group on shop field
bzr revid: hsa@tinyerp.com-20120808112345-rqgdsncaghzq36nc
2012-08-08 16:53:45 +05:30
Antonin Bourguignon fe5956057a [FIX] spelling: 'insufficient data' instead of 'data insufficient'
bzr revid: abo@openerp.com-20120807102326-sro2nxr4zn95zhs1
2012-08-07 12:23:26 +02:00
Stephane Wirtel 6a92f8856b [FIX] sale_crm: Rename 'Close Opportunity' to 'Mark Won'
bzr revid: stw@openerp.com-20120803074013-4lzh8092oiu7xdcd
2012-08-03 09:40:13 +02:00
Divyesh Makwana (Open ERP) 770df36345 [Merge] Merge with main addons.
bzr revid: mdi@tinyerp.com-20120711045811-fi5t79g6kk20wn8v
2012-07-11 10:28:11 +05:30
Fabien Pinckaers 64a9321d56 [IMP] footer on forms
bzr revid: fp@tinyerp.com-20120710164011-unqi1okf2uu8yhts
2012-07-10 18:40:11 +02:00
Divyesh Makwana (Open ERP) 789103e93b [IMP] crm, sale_crm : Change the field defination of 'categ_id' to many2many and its related changes.
bzr revid: mdi@tinyerp.com-20120706110621-nkgcqllbw1wpf1r6
2012-07-06 16:36:21 +05:30