Re-introduce module agreement_account

Update agreement and agreement_sale to restore the behavior of v10
This commit is contained in:
Alexis de Lattre
2020-05-21 16:55:05 +02:00
committed by newtratip
parent ea167e6376
commit 6b16543a84
4 changed files with 57 additions and 13 deletions

View File

@@ -10,11 +10,11 @@ class Agreement(models.Model):
_description = 'Agreement' _description = 'Agreement'
_inherit = ["mail.thread", "mail.activity.mixin"] _inherit = ["mail.thread", "mail.activity.mixin"]
code = fields.Char(required=True) code = fields.Char(required=True, track_visibility='onchange')
name = fields.Char(required=True) name = fields.Char(required=True, track_visibility='onchange')
partner_id = fields.Many2one( partner_id = fields.Many2one(
'res.partner', string='Partner', ondelete='restrict', 'res.partner', string='Partner', ondelete='restrict',
domain=[('parent_id', '=', False)]) domain=[('parent_id', '=', False)], track_visibility='onchange')
company_id = fields.Many2one( company_id = fields.Many2one(
'res.company', string='Company', 'res.company', string='Company',
default=lambda self: self.env['res.company']._company_default_get()) default=lambda self: self.env['res.company']._company_default_get())
@@ -30,10 +30,25 @@ class Agreement(models.Model):
string="Agreement Type", string="Agreement Type",
help="Select the type of agreement", help="Select the type of agreement",
) )
domain = fields.Selection(
'_domain_selection', string='Domain', default='sale',
track_visibility='onchange')
active = fields.Boolean(default=True) active = fields.Boolean(default=True)
signature_date = fields.Date() signature_date = fields.Date(track_visibility='onchange')
start_date = fields.Date() start_date = fields.Date(track_visibility='onchange')
end_date = fields.Date() end_date = fields.Date(track_visibility='onchange')
@api.model
def _domain_selection(self):
return [
('sale', _('Sale')),
('purchase', _('Purchase')),
]
@api.onchange('agreement_type_id')
def agreement_type_change(self):
if self.agreement_type_id and self.agreement_type_id.domain:
self.domain = self.agreement_type_id.domain
def name_get(self): def name_get(self):
res = [] res = []

View File

@@ -1,7 +1,7 @@
# Copyright (C) 2018 - TODAY, Pavlov Media # Copyright (C) 2018 - TODAY, Pavlov Media
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models from odoo import api, fields, models
class AgreementType(models.Model): class AgreementType(models.Model):
@@ -10,3 +10,9 @@ class AgreementType(models.Model):
name = fields.Char(string="Name", required=True) name = fields.Char(string="Name", required=True)
active = fields.Boolean(default=True) active = fields.Boolean(default=True)
domain = fields.Selection(
'_domain_selection', string='Domain', default='sale')
@api.model
def _domain_selection(self):
return self.env['agreement']._domain_selection()

View File

@@ -20,20 +20,26 @@
options='{"terminology": "archive"}'/> options='{"terminology": "archive"}'/>
</button> </button>
</div> </div>
<div class="oe_title">
<label for="name" class="oe_edit_only" string="Agreement Name"/>
<h1>
<field name="name"/>
</h1>
</div>
<group name="main"> <group name="main">
<group name="left"> <group name="left">
<field name="agreement_type_id" <field name="code"/>
groups="agreement.group_use_agreement_type"/>
<field name="is_template" groups="agreement.group_use_agreement_template"/>
<field name="partner_id" <field name="partner_id"
attrs="{'required': [('is_template', '=', False)]}"/> attrs="{'required': [('is_template', '=', False)]}"/>
<field name="name"/> <field name="agreement_type_id"
<field name="signature_date"/> groups="agreement.group_use_agreement_type"/>
<field name="domain" widget="radio"/>
<field name="is_template" groups="agreement.group_use_agreement_template"/>
</group> </group>
<group name="right"> <group name="right">
<field name="signature_date"/>
<field name="start_date"/> <field name="start_date"/>
<field name="end_date"/> <field name="end_date"/>
<field name="code"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
</group> </group>
</group> </group>
@@ -61,6 +67,7 @@
<field name="signature_date"/> <field name="signature_date"/>
<field name="start_date"/> <field name="start_date"/>
<field name="end_date"/> <field name="end_date"/>
<field name="domain"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
</tree> </tree>
</field> </field>
@@ -74,12 +81,17 @@
<field name="name" filter_domain="['|', ('name', 'ilike', self), ('code', 'ilike', self)]" string="Name or Number"/> <field name="name" filter_domain="['|', ('name', 'ilike', self), ('code', 'ilike', self)]" string="Name or Number"/>
<field name="partner_id"/> <field name="partner_id"/>
<separator/> <separator/>
<filter name="sale" string="Sale" domain="[('domain', '=', 'sale')]"/>
<filter name="purchase" string="Purchase" domain="[('domain', '=', 'purchase')]"/>
<separator/>
<filter name="inactive" string="Archived" domain="[('active', '=', False)]"/> <filter name="inactive" string="Archived" domain="[('active', '=', False)]"/>
<group name="groupby"> <group name="groupby">
<filter name="partner_groupby" string="Partner" <filter name="partner_groupby" string="Partner"
context="{'group_by': 'partner_id'}"/> context="{'group_by': 'partner_id'}"/>
<filter name="signature_date_groupby" string="Signature Date" <filter name="signature_date_groupby" string="Signature Date"
context="{'group_by': 'signature_date'}"/> context="{'group_by': 'signature_date'}"/>
<filter name="domain_groupby" string="Domain"
context="{'group_by': 'domain'}"/>
</group> </group>
</search> </search>
</field> </field>

View File

@@ -7,6 +7,7 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Agreement Types" default_order="name"> <tree string="Agreement Types" default_order="name">
<field name="name" string="Type Name"/> <field name="name" string="Type Name"/>
<field name="domain"/>
</tree> </tree>
</field> </field>
</record> </record>
@@ -29,6 +30,9 @@
<label for="name" class="oe_edit_only"/> <label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1> <h1><field name="name"/></h1>
</div> </div>
<group name="main">
<field name="domain" widget="radio"/>
</group>
</sheet> </sheet>
</form> </form>
</field> </field>
@@ -40,7 +44,14 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Agreement Type"> <search string="Agreement Type">
<field name="name"/> <field name="name"/>
<separator/>
<filter name="sale" string="Sale" domain="[('domain', '=', 'sale')]"/>
<filter name="purchase" string="Purchase" domain="[('domain', '=', 'purchase')]"/>
<separator/>
<filter name="archived" string="Archived" domain="[('active', '=', False)]"/> <filter name="archived" string="Archived" domain="[('active', '=', False)]"/>
<group name="groupby">
<filter name="domain_groupby" string="Domain" context="{'group_by': 'domain'}"/>
</group>
</search> </search>
</field> </field>
</record> </record>