-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[16.0][3863][ADD] crm_exception #56
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
============= | ||
Crm Exception | ||
============= | ||
|
||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! This file is generated by oca-gen-addon-readme !! | ||
!! changes will be overwritten. !! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
|
||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png | ||
:target: https://odoo-community.org/page/development-status | ||
:alt: Beta | ||
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png | ||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html | ||
:alt: License: AGPL-3 | ||
.. |badge3| image:: https://img.shields.io/badge/github-qrtl%2Faxls--custom-lightgray.png?logo=github | ||
:target: https://github.com/qrtl/axls-custom/tree/16.0/crm_exception | ||
:alt: qrtl/axls-custom | ||
|
||
|badge1| |badge2| |badge3| | ||
|
||
This module allows you attach several customizable exceptions to your opportunity. | ||
|
||
**Table of contents** | ||
|
||
.. contents:: | ||
:local: | ||
|
||
Bug Tracker | ||
=========== | ||
|
||
Bugs are tracked on `GitHub Issues <https://github.com/qrtl/axls-custom/issues>`_. | ||
In case of trouble, please check there if your issue has already been reported. | ||
If you spotted it first, help us smashing it by providing a detailed and welcomed | ||
`feedback <https://github.com/qrtl/axls-custom/issues/new?body=module:%20crm_exception%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. | ||
|
||
Do not contact contributors directly about support or help with technical issues. | ||
|
||
Credits | ||
======= | ||
|
||
Authors | ||
~~~~~~~ | ||
|
||
* Quartile Limited | ||
|
||
Maintainers | ||
~~~~~~~~~~~ | ||
|
||
This module is part of the `qrtl/axls-custom <https://github.com/qrtl/axls-custom/tree/16.0/crm_exception>`_ project on GitHub. | ||
|
||
You are welcome to contribute. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,13 @@ | ||||||
# Copyright 2023 Quartile Limited | ||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). | ||||||
{ | ||||||
"name": "Crm Exception", | ||||||
"version": "16.0.1.0.0", | ||||||
"category": "Tools", | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
"author": "Quartile Limited", | ||||||
"website": "https://www.quartile.co", | ||||||
"depends": ["crm", "base_exception"], | ||||||
"license": "AGPL-3", | ||||||
"data": ["views/crm_lead_views.xml"], | ||||||
"installable": True, | ||||||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
from . import exception_rule | ||
from . import crm_lead |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,32 @@ | ||||||||||||||||||||||||||||||||
# Copyright 2023 Quartile Limited | ||||||||||||||||||||||||||||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
from odoo import api, models | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
class CrmLead(models.Model): | ||||||||||||||||||||||||||||||||
_inherit = ["crm.lead", "base.exception"] | ||||||||||||||||||||||||||||||||
_name = "crm.lead" | ||||||||||||||||||||||||||||||||
_order = "main_exception_id asc, name desc" | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
@api.model | ||||||||||||||||||||||||||||||||
def _reverse_field(self): | ||||||||||||||||||||||||||||||||
return "crm_lead_ids" | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
def _fields_trigger_check_exception(self): | ||||||||||||||||||||||||||||||||
return ["ignore_exception", "stage_id"] | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
def crm_check_exception(self): | ||||||||||||||||||||||||||||||||
self._check_exception() | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
def _check_crm_lead_check_exception(self, vals): | ||||||||||||||||||||||||||||||||
check_exceptions = any( | ||||||||||||||||||||||||||||||||
field in vals for field in self._fields_trigger_check_exception() | ||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||
if check_exceptions: | ||||||||||||||||||||||||||||||||
self.crm_check_exception() | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
def write(self, vals): | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @AungKoKoLin1997 Any reason to use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The main purpose is to avoid hardcoding a trigger field list in @api.constrains and ensure flexibility for potential future additions to the _fields_trigger_check_exception. May be rare case but I think it is also good for design. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @AungKoKoLin1997 Isn't that practically the same as the trigger fields are hardcoded anyway in There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes. The trigger fields are hardcoded in |
||||||||||||||||||||||||||||||||
result = super().write(vals) | ||||||||||||||||||||||||||||||||
self._check_crm_lead_check_exception(vals) | ||||||||||||||||||||||||||||||||
return result |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Copyright 2023 Quartile Limited | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). | ||
|
||
from odoo import fields, models | ||
|
||
|
||
class ExceptionRule(models.Model): | ||
_inherit = "exception.rule" | ||
|
||
crm_lead_ids = fields.Many2many(comodel_name="crm.lead", string="Opportunities") | ||
model = fields.Selection( | ||
selection_add=[ | ||
("crm.lead", "Lead"), | ||
], | ||
ondelete={"crm.lead": "cascade"}, | ||
) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This module allows you attach several customizable exceptions to your opportunity. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Check grammar. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.