[IMP] website_crm_partner_assign: improve 'Partner Assignment' and creation

- This commit removes `selection` widget given on 'Partner Level'
  and 'Activation' fields on contact form view to allow users to
  create records for them on the fly (with 'no_open' option).

- This commit moves geo-location related fields below the parter assignment
  related fields in the 'Partner Assignment' page of contact form view.

- This commit adds default lowest 'Partner Level' and 'Activation' (based on
  sequence) while creating assigned partner on the fly from opportunity form
  view. The purpose is to allow user to select the created partner again in
  'Assigned Partner' m2o, which displays only partners having 'Partner Level'
  (grade_id) set.

TaskID-2443894
closes https://github.com/odoo/odoo/pull/67524

Part-of: odoo/odoo#67524
This commit is contained in:
ijas ahammed
2021-10-19 15:58:48 +00:00
parent b28aae2a71
commit 433bc7474e
3 changed files with 17 additions and 5 deletions
@@ -38,6 +38,18 @@ class ResPartnerActivation(models.Model):
class ResPartner(models.Model):
_inherit = "res.partner"
@api.model
def default_get(self, fields_list):
default_vals = super().default_get(fields_list)
if self.env.context.get('partner_set_default_grade_activation'):
# sets the lowest grade and activation if no default values given, mainly useful while
# creating assigned partner on the fly (to make it visible in same m2o again)
if 'grade_id' in fields_list and not default_vals.get('grade_id'):
default_vals['grade_id'] = self.env['res.partner.grade'].search([], order='sequence', limit=1).id
if 'activation' in fields_list and not default_vals.get('activation'):
default_vals['activation'] = self.env['res.partner.activation'].search([], order='sequence', limit=1).id
return default_vals
partner_weight = fields.Integer(
'Level Weight', compute='_compute_partner_weight',
readonly=False, store=True, tracking=True,
@@ -21,7 +21,7 @@
</div>
<button string="Automatic Assignment" name="action_assign_partner" type="object" class="btn-link"/>
<field name="partner_assigned_id" domain="[('grade_id','!=',False)]"/>
<field name="partner_assigned_id" domain="[('grade_id','!=',False)]" context="{'partner_set_default_grade_activation': 1}"/>
<button string="Send Email" type="action" class="btn-link"
attrs="{'invisible':[('partner_assigned_id','=',False)]}"
name="%(crm_lead_forward_to_partner_act)d"
@@ -144,12 +144,12 @@
<field name="inherit_id" ref="base_geolocalize.view_crm_partner_geo_form"/>
<field name="arch" type="xml">
<data>
<xpath expr="//page[@name='geo_location']" position="inside">
<group>
<xpath expr="//page[@name='geo_location']/group" position="before">
<group name="group_partner_activation_review">
<group>
<separator string="Partner Activation" colspan="2"/>
<field name="grade_id" options="{'no_open': True, 'no_create': True}"/>
<field name="activation" options="{'no_open': True, 'no_create': True}"/>
<field name="grade_id" options="{'no_open': True}"/>
<field name="activation" options="{'no_open': True}"/>
<field name="partner_weight"/>
</group>
<group>