[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",
|
||||
"views/res_partner_contract.xml",
|
||||
"views/res_partner_contract_annex.xml",
|
||||
"views/res_partner_template_print.xml",
|
||||
"views/res_partner.xml",
|
||||
"views/sale_order.xml",
|
||||
"wizard/res_partner_contract_wizard.xml",
|
||||
|
@ -127,9 +127,9 @@ class PartnerContract(models.Model):
|
||||
return _(arg)
|
||||
|
||||
|
||||
class PrintTemplate(models.Model):
|
||||
_name = "res.partner.template.print"
|
||||
_description = "Print Template"
|
||||
class DocumentTemplate(models.Model):
|
||||
_name = "res.partner.document.template"
|
||||
_description = "Document Template"
|
||||
_order = "sequence"
|
||||
|
||||
name = fields.Char()
|
||||
@ -143,16 +143,7 @@ class PrintTemplate(models.Model):
|
||||
("plc", "Private Limited Company"),
|
||||
]
|
||||
)
|
||||
template_type = fields.Selection(
|
||||
selection=[("contract", "Contract"), ("annex", "Annex"),]
|
||||
)
|
||||
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>
|
||||
</record>
|
||||
|
||||
<!-- res.partner.template.print.contract action window -->
|
||||
<record id="res_partner_print_contract_action" model="ir.actions.act_window">
|
||||
<field name="name">res.partner.template.print.contract.action</field>
|
||||
<!-- res.partner.document.template action window -->
|
||||
<record id="res_partner_document_template_action" model="ir.actions.act_window">
|
||||
<field name="name">res.partner.document.template.action</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">res.partner.template.print.contract</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="res_model">res.partner.document.template</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
@ -92,21 +83,10 @@
|
||||
parent="res_partner_menu_contracts"
|
||||
sequence="1"/>
|
||||
|
||||
<menuitem id="res_partner_menu_contracts_templates"
|
||||
<menuitem id="res_partner_menu_contracts_templates_"
|
||||
name="Templates"
|
||||
parent="res_partner_menu_contracts"
|
||||
sequence="2"/>
|
||||
|
||||
<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"
|
||||
action="res_partner_document_template_action"
|
||||
sequence="2"/>
|
||||
|
||||
</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")
|
||||
partner_id = fields.Many2one("res.partner", string="Partner")
|
||||
print_template_contract = fields.Many2one(
|
||||
"res.partner.template.print.contract", string="Print Template of Contract",
|
||||
document_template = fields.Many2one(
|
||||
"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(
|
||||
"res.partner.contract.field.transient",
|
||||
"_contract_wizard_id",
|
||||
string="Contract Fields",
|
||||
)
|
||||
|
||||
@api.onchange("target")
|
||||
@api.onchange("document_template")
|
||||
def _onchange_target(self):
|
||||
"""Creates transient fields for generate contract template
|
||||
Looks as a tree view of *_contract_field_transient model in xml
|
||||
@ -111,21 +107,26 @@ class ContractWizard(models.TransientModel):
|
||||
]
|
||||
|
||||
# Set up template domain
|
||||
template_type = {
|
||||
"res.partner.contract": "contract",
|
||||
"res.partner.contract.annex": "annex",
|
||||
}.get(active_model, False)
|
||||
company_type = (
|
||||
self.partner_id.company_form if self.partner_id.is_company else "person"
|
||||
)
|
||||
|
||||
return {
|
||||
"domain": {
|
||||
"print_template_contract": [("company_type", "=", company_type)],
|
||||
"print_template_annex": [("company_type", "=", company_type)],
|
||||
"document_template": [
|
||||
("template_type", "=", template_type),
|
||||
("company_type", "=", company_type),
|
||||
],
|
||||
}
|
||||
}
|
||||
|
||||
@api.multi
|
||||
def get_docx_contract(self):
|
||||
template = self._get_template()
|
||||
if not template:
|
||||
raise UserError("Template must be set up")
|
||||
template = self.document_template
|
||||
|
||||
path_to_template = template._full_path(template.store_fname)
|
||||
|
||||
@ -176,11 +177,3 @@ class ContractWizard(models.TransientModel):
|
||||
)
|
||||
|
||||
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>
|
||||
|
||||
<group string="Template">
|
||||
<field name="print_template_contract"></field>
|
||||
<field name="document_template"></field>
|
||||
</group>
|
||||
<group name="requisites" string="Requisites">
|
||||
<field name="target"/>
|
||||
@ -43,7 +43,7 @@
|
||||
<form>
|
||||
|
||||
<group string="Template">
|
||||
<field name="print_template_annex"></field>
|
||||
<field name="document_template"></field>
|
||||
</group>
|
||||
<group name="info" string="Info">
|
||||
<field name="target"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user