[IMP] using one model for document template instead of two different
This commit is contained in:
parent
0c711f58ef
commit
0964cf9672
@ -17,7 +17,6 @@
|
|||||||
"security/ir.model.access.csv",
|
"security/ir.model.access.csv",
|
||||||
"views/res_partner_contract.xml",
|
"views/res_partner_contract.xml",
|
||||||
"views/res_partner_contract_annex.xml",
|
"views/res_partner_contract_annex.xml",
|
||||||
"views/res_partner_template_print.xml",
|
|
||||||
"views/res_partner.xml",
|
"views/res_partner.xml",
|
||||||
"views/sale_order.xml",
|
"views/sale_order.xml",
|
||||||
"wizard/res_partner_contract_wizard.xml",
|
"wizard/res_partner_contract_wizard.xml",
|
||||||
|
@ -127,9 +127,9 @@ class PartnerContract(models.Model):
|
|||||||
return _(arg)
|
return _(arg)
|
||||||
|
|
||||||
|
|
||||||
class PrintTemplate(models.Model):
|
class DocumentTemplate(models.Model):
|
||||||
_name = "res.partner.template.print"
|
_name = "res.partner.document.template"
|
||||||
_description = "Print Template"
|
_description = "Document Template"
|
||||||
_order = "sequence"
|
_order = "sequence"
|
||||||
|
|
||||||
name = fields.Char()
|
name = fields.Char()
|
||||||
@ -143,16 +143,7 @@ class PrintTemplate(models.Model):
|
|||||||
("plc", "Private Limited Company"),
|
("plc", "Private Limited Company"),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
template_type = fields.Selection(
|
||||||
|
selection=[("contract", "Contract"), ("annex", "Annex"),]
|
||||||
|
)
|
||||||
sequence = fields.Integer()
|
sequence = fields.Integer()
|
||||||
|
|
||||||
|
|
||||||
class PrintTemplateContract(models.Model):
|
|
||||||
_name = "res.partner.template.print.contract"
|
|
||||||
_inherit = "res.partner.template.print"
|
|
||||||
_description = "Print Template Contract"
|
|
||||||
|
|
||||||
|
|
||||||
class PrintTemplateAnnex(models.Model):
|
|
||||||
_name = "res.partner.template.print.annex"
|
|
||||||
_inherit = "res.partner.template.print"
|
|
||||||
_description = "Print Template Contract Annex"
|
|
||||||
|
@ -10,20 +10,11 @@
|
|||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- res.partner.template.print.contract action window -->
|
<!-- res.partner.document.template action window -->
|
||||||
<record id="res_partner_print_contract_action" model="ir.actions.act_window">
|
<record id="res_partner_document_template_action" model="ir.actions.act_window">
|
||||||
<field name="name">res.partner.template.print.contract.action</field>
|
<field name="name">res.partner.document.template.action</field>
|
||||||
<field name="type">ir.actions.act_window</field>
|
<field name="type">ir.actions.act_window</field>
|
||||||
<field name="res_model">res.partner.template.print.contract</field>
|
<field name="res_model">res.partner.document.template</field>
|
||||||
<field name="view_mode">tree,form</field>
|
|
||||||
<field name="view_type">form</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<!-- res.partner.template.print.annex action window -->
|
|
||||||
<record id="res_partner_print_annex_action" model="ir.actions.act_window">
|
|
||||||
<field name="name">res.partner.template.print.annex.action</field>
|
|
||||||
<field name="type">ir.actions.act_window</field>
|
|
||||||
<field name="res_model">res.partner.template.print.annex</field>
|
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">tree,form</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
</record>
|
</record>
|
||||||
@ -92,21 +83,10 @@
|
|||||||
parent="res_partner_menu_contracts"
|
parent="res_partner_menu_contracts"
|
||||||
sequence="1"/>
|
sequence="1"/>
|
||||||
|
|
||||||
<menuitem id="res_partner_menu_contracts_templates"
|
<menuitem id="res_partner_menu_contracts_templates_"
|
||||||
name="Templates"
|
name="Templates"
|
||||||
parent="res_partner_menu_contracts"
|
parent="res_partner_menu_contracts"
|
||||||
sequence="2"/>
|
action="res_partner_document_template_action"
|
||||||
|
|
||||||
<menuitem id="res_partner_menu_contracts_templates_contract"
|
|
||||||
name="Contract"
|
|
||||||
parent="res_partner_menu_contracts_templates"
|
|
||||||
action="res_partner_print_contract_action"
|
|
||||||
sequence="1"/>
|
|
||||||
|
|
||||||
<menuitem id="res_partner_menu_contracts_templates_annex"
|
|
||||||
name="Annex"
|
|
||||||
parent="res_partner_menu_contracts_templates"
|
|
||||||
action="res_partner_print_annex_action"
|
|
||||||
sequence="2"/>
|
sequence="2"/>
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<odoo>
|
|
||||||
<data>
|
|
||||||
|
|
||||||
<!-- res.partner.template.print.contract tree view -->
|
|
||||||
<record id="res_partner_template_print_contract_view_tree" model="ir.ui.view">
|
|
||||||
<field name="name">res.partner.template.print.contract.view.tree</field>
|
|
||||||
<field name="model">res.partner.template.print.contract</field>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<tree>
|
|
||||||
<field name="name"/>
|
|
||||||
<field name="company_type"/>
|
|
||||||
</tree>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<!-- res.partner.template.print.contract form view -->
|
|
||||||
<record id="res_partner_template_print_contract_view_form" model="ir.ui.view">
|
|
||||||
<field name="name">res.partner.template.print.contract.view.form</field>
|
|
||||||
<field name="model">res.partner.template.print.contract</field>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<form string="Template Contract">
|
|
||||||
<sheet>
|
|
||||||
<group>
|
|
||||||
<field name="name"/>
|
|
||||||
<field name="attachment_id"/>
|
|
||||||
<field name="company_type"/>
|
|
||||||
<field name="sequence"/>
|
|
||||||
</group>
|
|
||||||
</sheet>
|
|
||||||
</form>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<!-- res.partner.template.print.annex tree view -->
|
|
||||||
<record id="res_partner_template_print_annex_view_tree" model="ir.ui.view">
|
|
||||||
<field name="name">res.partner.template.print.annex.view.tree</field>
|
|
||||||
<field name="model">res.partner.template.print.annex</field>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<tree>
|
|
||||||
<field name="name"/>
|
|
||||||
<field name="company_type"/>
|
|
||||||
</tree>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<!-- res.partner.template.print.annex form view -->
|
|
||||||
<record id="res_partner_template_print_annex_view_form" model="ir.ui.view">
|
|
||||||
<field name="name">res.partner.template.print.annex.view.form</field>
|
|
||||||
<field name="model">res.partner.template.print.annex</field>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<form string="Template Annex">
|
|
||||||
<sheet>
|
|
||||||
<group>
|
|
||||||
<field name="name"/>
|
|
||||||
<field name="attachment_id"/>
|
|
||||||
<field name="company_type"/>
|
|
||||||
<field name="sequence"/>
|
|
||||||
</group>
|
|
||||||
</sheet>
|
|
||||||
</form>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
</data>
|
|
||||||
</odoo>
|
|
@ -27,20 +27,16 @@ class ContractWizard(models.TransientModel):
|
|||||||
)
|
)
|
||||||
company_id = fields.Many2one("res.partner", string="Company")
|
company_id = fields.Many2one("res.partner", string="Company")
|
||||||
partner_id = fields.Many2one("res.partner", string="Partner")
|
partner_id = fields.Many2one("res.partner", string="Partner")
|
||||||
print_template_contract = fields.Many2one(
|
document_template = fields.Many2one(
|
||||||
"res.partner.template.print.contract", string="Print Template of Contract",
|
"res.partner.document.template", string="Document Template", required=True,
|
||||||
)
|
)
|
||||||
print_template_annex = fields.Many2one(
|
|
||||||
"res.partner.template.print.annex", string="Print Template of Contract Annex",
|
|
||||||
)
|
|
||||||
|
|
||||||
transient_field_ids = fields.One2many(
|
transient_field_ids = fields.One2many(
|
||||||
"res.partner.contract.field.transient",
|
"res.partner.contract.field.transient",
|
||||||
"_contract_wizard_id",
|
"_contract_wizard_id",
|
||||||
string="Contract Fields",
|
string="Contract Fields",
|
||||||
)
|
)
|
||||||
|
|
||||||
@api.onchange("target")
|
@api.onchange("document_template")
|
||||||
def _onchange_target(self):
|
def _onchange_target(self):
|
||||||
"""Creates transient fields for generate contract template
|
"""Creates transient fields for generate contract template
|
||||||
Looks as a tree view of *_contract_field_transient model in xml
|
Looks as a tree view of *_contract_field_transient model in xml
|
||||||
@ -111,21 +107,26 @@ class ContractWizard(models.TransientModel):
|
|||||||
]
|
]
|
||||||
|
|
||||||
# Set up template domain
|
# Set up template domain
|
||||||
|
template_type = {
|
||||||
|
"res.partner.contract": "contract",
|
||||||
|
"res.partner.contract.annex": "annex",
|
||||||
|
}.get(active_model, False)
|
||||||
company_type = (
|
company_type = (
|
||||||
self.partner_id.company_form if self.partner_id.is_company else "person"
|
self.partner_id.company_form if self.partner_id.is_company else "person"
|
||||||
)
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"domain": {
|
"domain": {
|
||||||
"print_template_contract": [("company_type", "=", company_type)],
|
"document_template": [
|
||||||
"print_template_annex": [("company_type", "=", company_type)],
|
("template_type", "=", template_type),
|
||||||
|
("company_type", "=", company_type),
|
||||||
|
],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def get_docx_contract(self):
|
def get_docx_contract(self):
|
||||||
template = self._get_template()
|
template = self.document_template
|
||||||
if not template:
|
|
||||||
raise UserError("Template must be set up")
|
|
||||||
|
|
||||||
path_to_template = template._full_path(template.store_fname)
|
path_to_template = template._full_path(template.store_fname)
|
||||||
|
|
||||||
@ -176,11 +177,3 @@ class ContractWizard(models.TransientModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
return document_as_attachment
|
return document_as_attachment
|
||||||
|
|
||||||
@api.multi
|
|
||||||
def _get_template(self):
|
|
||||||
model_to_template = {
|
|
||||||
"res.partner.contract": self.print_template_contract.attachment_id,
|
|
||||||
"res.partner.contract.annex": self.print_template_annex.attachment_id,
|
|
||||||
}
|
|
||||||
return model_to_template.get(self.env.context.get("active_model"), False)
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<form>
|
<form>
|
||||||
|
|
||||||
<group string="Template">
|
<group string="Template">
|
||||||
<field name="print_template_contract"></field>
|
<field name="document_template"></field>
|
||||||
</group>
|
</group>
|
||||||
<group name="requisites" string="Requisites">
|
<group name="requisites" string="Requisites">
|
||||||
<field name="target"/>
|
<field name="target"/>
|
||||||
@ -43,7 +43,7 @@
|
|||||||
<form>
|
<form>
|
||||||
|
|
||||||
<group string="Template">
|
<group string="Template">
|
||||||
<field name="print_template_annex"></field>
|
<field name="document_template"></field>
|
||||||
</group>
|
</group>
|
||||||
<group name="info" string="Info">
|
<group name="info" string="Info">
|
||||||
<field name="target"/>
|
<field name="target"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user