diff --git a/addons/website_crm_partner_assign/data/crm_partner_assign_data.xml b/addons/website_crm_partner_assign/data/crm_partner_assign_data.xml index ff42c8c4310..cc4abe26921 100644 --- a/addons/website_crm_partner_assign/data/crm_partner_assign_data.xml +++ b/addons/website_crm_partner_assign/data/crm_partner_assign_data.xml @@ -8,6 +8,10 @@ Spam 3 + + Created by Partner + 4 + Lead Mass Mail diff --git a/addons/website_crm_partner_assign/models/crm_lead.py b/addons/website_crm_partner_assign/models/crm_lead.py index a6302f5008b..fe2f42e156b 100644 --- a/addons/website_crm_partner_assign/models/crm_lead.py +++ b/addons/website_crm_partner_assign/models/crm_lead.py @@ -243,3 +243,30 @@ class CrmLead(models.Model): 'priority': values['priority'], 'date_deadline': values['date_deadline'] if values['date_deadline'] else False, }) + + @api.model + def create_opp_portal(self, values): + if self.env.user.partner_id.grade_id or self.env.user.commercial_partner_id.grade_id: + user = self.env.user + self = self.sudo() + if not (values['contact_name'] and values['description'] and values['title']): + return { + 'errors': _('All fields are required !') + } + tag_own = self.env.ref('website_crm_partner_assign.tag_portal_lead_own_opp', False) + values = { + 'contact_name': values['contact_name'], + 'name': values['title'], + 'description': values['description'], + 'priority': '2', + 'partner_assigned_id': user.partner_id.id, + } + if tag_own: + values['tag_ids'] = [(4, tag_own.id, False)] + + lead = self.create(values) + lead.assign_salesman_of_assigned_partner() + lead.convert_opportunity(lead.partner_id.id) + return { + 'id': lead.id + } \ No newline at end of file diff --git a/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js b/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js index 6ba98e15ef6..df265a4221b 100644 --- a/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js +++ b/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js @@ -13,8 +13,9 @@ var website = require('website.website'); var interested_form = $('.interested_partner_assign_form'); var desinterested_form = $('.desinterested_partner_assign_form'); var opp_stage_buttons = $('.opp-stage-button'); +var new_opp_form = $('.new_opp_form'); -if(!interested_form.length && !desinterested_form.length && !opp_stage_buttons.length) { +if(!interested_form.length && !desinterested_form.length && !opp_stage_buttons.length && !new_opp_form.length) { return $.Deferred().reject("DOM doesn't contain website_crm_partner_assign elements"); } @@ -82,6 +83,25 @@ $('.edit_contact_confirm').on('click',function(e){ return false; }); +$('.new_opp_confirm').on('click',function(e){ + new Model('crm.lead') + .call("create_opp_portal", [{ + contact_name: $('.new_opp_form .contact_name').val(), + title: $('.new_opp_form .title').val(), + description: $('.new_opp_form .description').val(), + }]) + .done(function(response){ + if (response.errors) { + $('#new-opp-dialog .alert').remove(); + $('#new-opp-dialog div:first').prepend("" + response.errors + ""); + } + else { + window.location = '/my/opportunity/' + response.id; + } + }); + return false; +}); + $('.edit_opp_confirm').on('click',function(e){ new Model('crm.lead') .call("update_lead_portal", [[parseInt($('.edit_opp_form .opportunity_id').val())],{ diff --git a/addons/website_crm_partner_assign/views/res_partner_views.xml b/addons/website_crm_partner_assign/views/res_partner_views.xml index d8fed863f69..b719c7c297e 100644 --- a/addons/website_crm_partner_assign/views/res_partner_views.xml +++ b/addons/website_crm_partner_assign/views/res_partner_views.xml @@ -66,6 +66,7 @@ + diff --git a/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml b/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml index 0a114af3c15..2fb4aea29b0 100644 --- a/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml +++ b/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml @@ -276,17 +276,49 @@ Your Opportunities + - - There are no opportunities. + + + + + + × + New Opportunity + + + + Contact name + + + + Title + + + + Description + + + + + + - - + + + + There are no opportunities. + + + Date - Name - Expected Revenue + Name + Expected Contact Name Stage