diff --git a/models/product_product.py b/models/product_product.py
index b4d5948..126988d 100644
--- a/models/product_product.py
+++ b/models/product_product.py
@@ -7,6 +7,6 @@ class ProductProduct(models.Model):
description_sale = fields.Text(
"Sale Description",
translate=True,
- help="A description of the Product that you want to communicate to your customers. "
+ help="A product's description you want to inform to your customers.\n"
"This description will be copied to every Sales Order, Delivery Order and Customer Invoice/Credit Note",
)
diff --git a/models/res_partner_contract.py b/models/res_partner_contract.py
index 70cb17c..1eb5912 100755
--- a/models/res_partner_contract.py
+++ b/models/res_partner_contract.py
@@ -3,13 +3,13 @@ import datetime
from odoo import _, fields, models
from ..utils import MODULE_NAME
-from ..utils.misc import Extension, IDocument
+# from ..utils.misc import Extension, IDocument
-class PartnerContract(models.Model, IDocument, Extension):
+class PartnerContract(models.Model): #, IDocument, Extension):
_name = "res.partner.contract"
_description = "Contract"
- _inherit = ["mail.thread", "mail.activity.mixin", "mail.followers"]
+ _inherit = ["mail.thread", "mail.activity.mixin", "mail.followers", "client_contracts.utils"]
def _get_default_name(self):
"""Returns name format `№YYMM-D-N`,
@@ -43,7 +43,7 @@ class PartnerContract(models.Model, IDocument, Extension):
company_id = fields.Many2one(
"res.partner",
string="Company",
- default=lambda self: self.env.user.company_id.partner_id,
+ default=lambda self: self.env.company.partner_id,
)
create_date_ts = fields.Char(default=_get_default_create_date_ts)
res_model = fields.Char(default=lambda self: self._name)
@@ -79,7 +79,7 @@ class PartnerContract(models.Model, IDocument, Extension):
readonly=True,
copy=False,
index=True,
- track_visibility="onchange",
+ tracking=True,
track_sequence=3,
default="draft",
)
diff --git a/models/res_partner_contract_annex.py b/models/res_partner_contract_annex.py
index 9893b2d..4875f0d 100755
--- a/models/res_partner_contract_annex.py
+++ b/models/res_partner_contract_annex.py
@@ -3,11 +3,12 @@ import math
from odoo import _, api, fields, models
from ..utils import MODULE_NAME
-from ..utils.misc import Extension, IDocument
+# from ..utils.misc import Extension, IDocument
-class ContractOrderAnnex(models.Model, IDocument, Extension):
+class ContractOrderAnnex(models.Model): # , IDocument, Extension):
_name = "res.partner.contract.annex"
+ _inherit = ["client_contracts.utils"]
_description = "Contract Annex"
name = fields.Char(
@@ -85,12 +86,18 @@ class ContractOrderAnnex(models.Model, IDocument, Extension):
string="Total Cost",
)
- payment_part_one = fields.Float(string="Payment 1 Part (%)", default=100)
+ payment_part_one = fields.Float(
+ string="Payment 1 Part (%)",
+ default=100,
+ digits="Account",
+ )
payment_part_two = fields.Float(
string="Payment 2 Part (%)",
+ digits="Account",
)
payment_part_three = fields.Float(
string="Payment 3 Part (%)",
+ digits="Account",
)
@api.depends("name")
@@ -134,14 +141,11 @@ class ContractOrderAnnex(models.Model, IDocument, Extension):
@api.model
def create(self, values):
record = super().create(values)
-
# Fill annex_id to domain it in future
record.order_id.contract_annex_id = record.id
-
# Counter
record.counter = record.contract_id.contract_annex_number
record.contract_id.contract_annex_number += 1 # TODO: should I use a sequence?
-
return record
def action_print_form(self):
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 658f47c..ca472bb 100755
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -6,3 +6,4 @@ access_contracts_field_transient,access_contracts_field_transient,model_res_part
access_contracts_field_contract_annex,access_contracts_field_contract_annex,model_res_partner_contract_annex,base.group_user,1,1,1,1
access_contract_document_template,access_contract_document_template,model_res_partner_document_template,base.group_user,1,0,0,0
access_contract_document_template_manager,access_contract_document_template,model_res_partner_document_template,hr.group_hr_manager,1,1,1,1
+access_contracts_wizard,access_contracts_wizard,model_res_partner_contract_wizard,base.group_user,1,1,1,1
diff --git a/utils/__init__.py b/utils/__init__.py
index 6d0f55e..73af1c3 100755
--- a/utils/__init__.py
+++ b/utils/__init__.py
@@ -1 +1,3 @@
+from . import misc
+
MODULE_NAME = __package__.split(".")[-2]
diff --git a/utils/misc.py b/utils/misc.py
index 2df45a0..aab7646 100755
--- a/utils/misc.py
+++ b/utils/misc.py
@@ -1,11 +1,11 @@
import datetime as dt
-import inspect
+# import inspect
-from odoo import fields
+from odoo import models # , fields
from odoo.tools.misc import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
-class IDocument(object):
+'''class IDocument(object):
"""Class must be used as an interface for create new document based model"""
def get_name_by_document_template(self, document_template_id: fields.Many2one):
@@ -16,17 +16,22 @@ class IDocument(object):
def get_filename_by_document_template(self, document_template_id: fields.Many2one):
raise NotImplementedError(
"Method {} is not implemented".format(inspect.currentframe().f_code.co_name)
- )
+ )'''
-class Extension(object):
- def parse_odoo_date(self, date: str):
+class Utils(models.AbstractModel):
+ _name = "client_contracts.utils"
+
+ @staticmethod
+ def parse_odoo_date(date: str):
return dt.datetime.strptime(date, DEFAULT_SERVER_DATE_FORMAT)
- def parse_odoo_datetime(self, datetime: str):
+ @staticmethod
+ def parse_odoo_datetime(datetime: str):
return dt.datetime.strptime(datetime, DEFAULT_SERVER_DATETIME_FORMAT)
- def to_fixed(self, number, digit=2):
+ @staticmethod
+ def to_fixed(number, digit=2):
if isinstance(number, str) and number.isdigit():
number = float(number)
return format(number, ".{digit}f".format(digit=digit))
diff --git a/views/res_partner.xml b/views/res_partner.xml
index fb950f1..016f0eb 100755
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -7,7 +7,6 @@
ir.actions.act_window
res.partner.contract.field
tree,form
- form
@@ -16,7 +15,6 @@
ir.actions.act_window
res.partner.document.template
tree,form
- form
@@ -66,11 +64,11 @@
-
diff --git a/views/res_partner_contract.xml b/views/res_partner_contract.xml
index a0a37c2..4095bbb 100755
--- a/views/res_partner_contract.xml
+++ b/views/res_partner_contract.xml
@@ -87,7 +87,6 @@
Contracts
res.partner.contract
- form
tree,form
{}
@@ -95,7 +94,6 @@
Contracts
res.partner.contract
- form
tree,form
{'search_default_partner_id': active_id}
diff --git a/wizard/res_partner_contract_wizard.py b/wizard/res_partner_contract_wizard.py
index 45874a8..27ca4e6 100755
--- a/wizard/res_partner_contract_wizard.py
+++ b/wizard/res_partner_contract_wizard.py
@@ -6,13 +6,14 @@ from odoo.exceptions import ValidationError
from ..utils import MODULE_NAME
from ..utils.docxtpl import get_document_from_values_stream
-from ..utils.misc import Extension
+# from ..utils.misc import Extension
_logger = logging.getLogger(__name__)
-class ContractWizard(models.TransientModel, Extension):
+class ContractWizard(models.TransientModel): #, Extension):
_name = "res.partner.contract.wizard"
+ _inherit = ["client_contracts.utils"]
def _default_target(self):
return "{model},{target_id}".format(