[MOV] website_crm_partner_assign: split models and views into separate files

Give a little coup de jeune to this module by reorganizing models and views
into separate files.

Task-2752043

Part-of: odoo/odoo#83806
This commit is contained in:
Thibault Delavallée
2022-02-15 10:25:58 +00:00
parent 5664ee04f4
commit 82f3ee064c
9 changed files with 166 additions and 146 deletions
@@ -33,8 +33,11 @@ The automatic assignment is figured from the weight of partner levels and the ge
'security/ir_rule.xml',
'wizard/crm_forward_to_partner_view.xml',
'views/res_partner_views.xml',
'views/res_partner_activation_views.xml',
'views/res_partner_grade_views.xml',
'views/crm_lead_views.xml',
'views/website_crm_partner_assign_templates.xml',
'views/partner_assign_menus.xml',
'report/crm_partner_report_view.xml',
],
'demo': [
@@ -3,4 +3,6 @@
from . import crm_lead
from . import res_partner
from . import res_partner_activation
from . import res_partner_grade
from . import website
@@ -3,37 +3,6 @@
from odoo import api, fields, models
from odoo.osv import expression
from odoo.addons.http_routing.models.ir_http import slug
class ResPartnerGrade(models.Model):
_name = 'res.partner.grade'
_order = 'sequence desc'
_inherit = ['website.published.mixin']
_description = 'Partner Grade'
sequence = fields.Integer('Sequence')
active = fields.Boolean('Active', default=lambda *args: 1)
name = fields.Char('Level Name', translate=True)
partner_weight = fields.Integer('Level Weight', default=1,
help="Gives the probability to assign a lead to this partner. (0 means no assignment.)")
def _compute_website_url(self):
super(ResPartnerGrade, self)._compute_website_url()
for grade in self:
grade.website_url = "/partners/grade/%s" % (slug(grade))
def _default_is_published(self):
return True
class ResPartnerActivation(models.Model):
_name = 'res.partner.activation'
_order = 'sequence desc'
_description = 'Partner Activation'
sequence = fields.Integer('Sequence')
name = fields.Char('Name', required=True)
class ResPartner(models.Model):
@@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class ResPartnerActivation(models.Model):
_name = 'res.partner.activation'
_order = 'sequence desc'
_description = 'Partner Activation'
sequence = fields.Integer('Sequence')
name = fields.Char('Name', required=True)
@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
from odoo.addons.http_routing.models.ir_http import slug
class ResPartnerGrade(models.Model):
_name = 'res.partner.grade'
_order = 'sequence desc'
_inherit = ['website.published.mixin']
_description = 'Partner Grade'
sequence = fields.Integer('Sequence')
active = fields.Boolean('Active', default=lambda *args: 1)
name = fields.Char('Level Name', translate=True)
partner_weight = fields.Integer('Level Weight', default=1,
help="Gives the probability to assign a lead to this partner. (0 means no assignment.)")
def _compute_website_url(self):
super(ResPartnerGrade, self)._compute_website_url()
for grade in self:
grade.website_url = "/partners/grade/%s" % (slug(grade))
def _default_is_published(self):
return True
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<menuitem id="crm_menu_resellers"
name="Resellers"
parent="crm.crm_menu_config"
sequence="16"/>
<menuitem id="menu_res_partner_grade_action"
action="res_partner_grade_action"
parent="crm_menu_resellers"
sequence="1"/>
<menuitem id="res_partner_activation_config_mi"
parent="crm_menu_resellers"
action="res_partner_activation_act"
sequence="2"/>
</odoo>
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.ui.view" id="res_partner_activation_form">
<field name="name">res.partner.activation.form</field>
<field name="model">res.partner.activation</field>
<field name="arch" type="xml">
<form string="Activation">
<sheet>
<group col="4">
<field name="name" />
<field name="sequence" />
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="res_partner_activation_tree">
<field name="name">res.partner.activation.tree</field>
<field name="model">res.partner.activation</field>
<field name="arch" type="xml">
<tree string="Activation" editable="bottom">
<field name="sequence" widget="handle"/>
<field name="name"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="res_partner_activation_act">
<field name="name">Partner Activations</field>
<field name="res_model">res.partner.activation</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a Partner Activation
</p><p>
Those are used to know where your Partners stand in your onboarding process.
</p>
</field>
</record>
</odoo>
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_partner_grade_tree" model="ir.ui.view">
<field name="name">res.partner.grade.tree</field>
<field name="model">res.partner.grade</field>
<field name="arch" type="xml">
<tree string="Partner Level">
<field name="sequence" widget="handle"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="view_partner_grade_form" model="ir.ui.view">
<field name="name">res.partner.grade.form</field>
<field name="model">res.partner.grade</field>
<field name="arch" type="xml">
<form string="Partner Level">
<sheet string="Level">
<div class="oe_button_box" name="button_box">
<field name="is_published" widget="website_redirect_button"/>
</div>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" placeholder="e.g. Gold Partner" required="True"/>
</h1>
</div>
<group>
<field name="partner_weight"/>
<field name="sequence"/>
<field name="active" widget="boolean_toggle"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="res_partner_grade_view_search" model="ir.ui.view">
<field name="name">res.partner.grade.view.search</field>
<field name="model">res.partner.grade</field>
<field name="arch" type="xml">
<search string="Search Partner Grade">
<field name="name"/>
<separator/>
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
</search>
</field>
</record>
<record id="res_partner_grade_action" model="ir.actions.act_window">
<field name="name">Partner Levels</field>
<field name="res_model">res.partner.grade</field>
<field name="search_view_id" ref="res_partner_grade_view_search"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a Partner Level
</p><p>
Partner Levels allow you to rank your Partners based on their performances.
</p>
</field>
</record>
</odoo>
@@ -1,119 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<menuitem id="crm_menu_resellers" name="Resellers" parent="crm.crm_menu_config" sequence="16"/>
<!--Partner Activation -->
<record model="ir.ui.view" id="res_partner_activation_form">
<field name="name">res.partner.activation.form</field>
<field name="model">res.partner.activation</field>
<field name="arch" type="xml">
<form string="Activation">
<sheet>
<group col="4">
<field name="name" />
<field name="sequence" />
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="res_partner_activation_tree">
<field name="name">res.partner.activation.tree</field>
<field name="model">res.partner.activation</field>
<field name="arch" type="xml">
<tree string="Activation" editable="bottom">
<field name="sequence" widget="handle"/>
<field name="name"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="res_partner_activation_act">
<field name="name">Partner Activations</field>
<field name="res_model">res.partner.activation</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a Partner Activation
</p><p>
Those are used to know where your Partners stand in your onboarding process.
</p>
</field>
</record>
<menuitem id="res_partner_activation_config_mi" parent="crm_menu_resellers" action="res_partner_activation_act"
sequence="6"/>
<!--Partner Level -->
<record id="view_partner_grade_tree" model="ir.ui.view">
<field name="name">res.partner.grade.tree</field>
<field name="model">res.partner.grade</field>
<field name="arch" type="xml">
<tree string="Partner Level">
<field name="sequence" widget="handle"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="view_partner_grade_form" model="ir.ui.view">
<field name="name">res.partner.grade.form</field>
<field name="model">res.partner.grade</field>
<field name="arch" type="xml">
<form string="Partner Level">
<sheet string="Level">
<div class="oe_button_box" name="button_box">
<field name="is_published" widget="website_redirect_button"/>
</div>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" placeholder="e.g. Gold Partner" required="True"/>
</h1>
</div>
<group>
<field name="partner_weight"/>
<field name="sequence"/>
<field name="active" widget="boolean_toggle"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="res_partner_grade_view_search" model="ir.ui.view">
<field name="name">res.partner.grade.view.search</field>
<field name="model">res.partner.grade</field>
<field name="arch" type="xml">
<search string="Search Partner Grade">
<field name="name"/>
<separator/>
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
</search>
</field>
</record>
<record id="res_partner_grade_action" model="ir.actions.act_window">
<field name="name">Partner Levels</field>
<field name="res_model">res.partner.grade</field>
<field name="search_view_id" ref="res_partner_grade_view_search"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a Partner Level
</p><p>
Partner Levels allow you to rank your Partners based on their performances.
</p>
</field>
</record>
<menuitem action="res_partner_grade_action" id="menu_res_partner_grade_action"
parent="crm_menu_resellers"
sequence="5" />
<!-- Partner form -->
<record id="view_res_partner_filter_assign_tree" model="ir.ui.view">
<field name="name">res.partner.geo.inherit.tree</field>
<field name="model">res.partner</field>
@@ -166,5 +52,4 @@
</data>
</field>
</record>
</odoo>