[ADD] class-interface for document-based models

This commit is contained in:
Stepan Savelyev 2020-01-17 17:22:56 +05:00
parent 822b095cdf
commit 096a4d7b80
3 changed files with 16 additions and 4 deletions

View File

@ -4,10 +4,10 @@ from odoo import _, api, fields, models
from odoo.tools.misc import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
from ..utils import MODULE_NAME
from ..utils.misc import Extension
from ..utils.misc import Extension, IDocument
class PartnerContract(models.Model, Extension):
class PartnerContract(models.Model, IDocument, Extension):
_name = "res.partner.contract"
_description = "Contract"
_inherit = ["mail.thread", "mail.activity.mixin", "mail.followers"]

View File

@ -3,10 +3,10 @@ import math
from odoo import _, api, fields, models
from ..utils import MODULE_NAME
from ..utils.misc import Extension
from ..utils.misc import Extension, IDocument
class ContractOrderAnnex(models.Model, Extension):
class ContractOrderAnnex(models.Model, IDocument, Extension):
_name = "res.partner.contract.annex"
_description = "Contract Annex"

View File

@ -1,8 +1,20 @@
import inspect
import datetime as dt
from odoo import fields
from odoo.tools.misc import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
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):
raise NotImplementedError('Method {} is not implemented'.format(inspect.currentframe().f_code.co_name))
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):