diff --git a/addons/crm_partner_assign/res_partner_demo.xml b/addons/crm_partner_assign/res_partner_demo.xml index 776d7d6834c..a0711657810 100644 --- a/addons/crm_partner_assign/res_partner_demo.xml +++ b/addons/crm_partner_assign/res_partner_demo.xml @@ -1,21 +1,21 @@ - - Bronze - 1 - - - Silver - 2 + + Platinum + 4 Gold 3 - - Platinum - 4 + + Silver + 2 + + + Bronze + 1 diff --git a/addons/website_crm/__openerp__.py b/addons/website_crm/__openerp__.py index 4a7a0d1c0e8..a1776cfbd39 100644 --- a/addons/website_crm/__openerp__.py +++ b/addons/website_crm/__openerp__.py @@ -14,5 +14,5 @@ OpenERP Contact Form 'data/website_crm_data.xml', 'views/website_crm.xml', ], - 'installable': False, + 'installable': True, } diff --git a/addons/website_crm_partner_assign/controllers/main.py b/addons/website_crm_partner_assign/controllers/main.py index 2656ae47c96..7c7fbdbebdf 100644 --- a/addons/website_crm_partner_assign/controllers/main.py +++ b/addons/website_crm_partner_assign/controllers/main.py @@ -7,14 +7,17 @@ from openerp.addons.web import http from openerp.tools.translate import _ from openerp.addons.web.http import request from openerp.addons.website.models import website +from openerp.addons.website_partner.controllers import main as website_partner class WebsiteCrmPartnerAssign(http.Controller): _references_per_page = 20 @website.route([ - '/partners/', '/partners/page//', - '/partners/country/', '/partners/country/page//', + '/partners/', + '/partners/page//', + '/partners/country/', + '/partners/country/page//', ], type='http', auth="public", multilang=True) def partners(self, country_id=0, page=0, **post): country_obj = request.registry['res.country'] @@ -24,7 +27,7 @@ class WebsiteCrmPartnerAssign(http.Controller): country = None # format displayed membership lines domain - base_partner_domain = [('is_company', '=', True)] + base_partner_domain = [('is_company', '=', True), ('grade_id', '!=', False), ('website_published', '=', True)] partner_domain = list(base_partner_domain) if grade_id and grade_id != "all": partner_domain += [('grade_id', '=', int(grade_id))] # try/catch int @@ -36,26 +39,26 @@ class WebsiteCrmPartnerAssign(http.Controller): # format pager partner_ids = partner_obj.search( - request.cr, request.uid, partner_domain, + request.cr, openerp.SUPERUSER_ID, partner_domain, context=request.context) pager = request.website.pager(url="/partners/", total=len(partner_ids), page=page, step=self._references_per_page, scope=7, url_args=post) # search for partners to display partner_ids = partner_obj.search( - request.cr, request.uid, partner_domain, + request.cr, openerp.SUPERUSER_ID, partner_domain, context=request.context, limit=self._references_per_page, offset=pager['offset'], order="grade_id ASC,partner_weight DESC") google_map_partner_ids = ",".join([str(p) for p in partner_ids]) - partners = partner_obj.browse( - request.cr, request.uid, partner_ids, request.context) + partners_data = partner_obj.read( + request.cr, openerp.SUPERUSER_ID, partner_ids, website_partner.white_list, context=request.context) # group by country countries = partner_obj.read_group( - request.cr, request.uid, base_partner_domain, ["id", "country_id"], + request.cr, openerp.SUPERUSER_ID, base_partner_domain, ["id", "country_id"], groupby="country_id", orderby="country_id", context=request.context) countries_partners = partner_obj.search( - request.cr, request.uid, base_partner_domain, + request.cr, openerp.SUPERUSER_ID, base_partner_domain, context=request.context, count=True) countries.insert(0, { 'country_id_count': countries_partners, @@ -64,10 +67,10 @@ class WebsiteCrmPartnerAssign(http.Controller): # group by grade grades = partner_obj.read_group( - request.cr, request.uid, base_partner_domain, ["id", "grade_id"], + request.cr, openerp.SUPERUSER_ID, base_partner_domain, ["id", "grade_id"], groupby="grade_id", orderby="grade_id", context=request.context) grades_partners = partner_obj.search( - request.cr, request.uid, base_partner_domain, + request.cr, openerp.SUPERUSER_ID, base_partner_domain, context=request.context, count=True) grades.insert(0, { 'grade_id_count': grades_partners, @@ -80,7 +83,7 @@ class WebsiteCrmPartnerAssign(http.Controller): 'current_country': country, 'grades': grades, 'grade_id': grade_id, - 'partners': partners, + 'partners_data': partners_data, 'google_map_partner_ids': google_map_partner_ids, 'pager': pager, 'searches': post, @@ -88,16 +91,9 @@ class WebsiteCrmPartnerAssign(http.Controller): } return request.website.render("website_crm_partner_assign.index", values) - @website.route(['/partners//'], type='http', auth="public", multilang=True) - def partners_ref(self, partner_id=0, **post): - partner_obj = request.registry['res.partner'] - partner_ids = partner_obj.search(request.cr, request.uid, [('id', '=', partner_id)], context=request.context) - if not partner_ids: - return self.members(post) - - values = { - 'partner_id': partner_obj.browse( - request.cr, request.uid, partner_ids[0], - context=dict(request.context, show_address=True)), - } + @website.route(['/partners//'], type='http', auth="public", multilang=True) + def partners_ref(self, partner, **post): + values = website_partner.get_partner_template_value(partner) + if not values: + return self.partners(**post) return request.website.render("website_crm_partner_assign.partner", values) diff --git a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml index 4df6b4a5998..3af23e60f18 100644 --- a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml +++ b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml @@ -75,22 +75,20 @@
- - - + +

- Partners + Partners in

- - - + +
- - -
+ - +
diff --git a/addons/website_customer/__openerp__.py b/addons/website_customer/__openerp__.py index c705acdd54b..8782a0f90f7 100644 --- a/addons/website_customer/__openerp__.py +++ b/addons/website_customer/__openerp__.py @@ -40,5 +40,5 @@ OpenERP Customer References 'views/website_customer.xml', ], 'qweb': [], - 'installable': False, + 'installable': True, } diff --git a/addons/website_customer/controllers/main.py b/addons/website_customer/controllers/main.py index 91f0023a521..1f2d3e593ab 100644 --- a/addons/website_customer/controllers/main.py +++ b/addons/website_customer/controllers/main.py @@ -5,6 +5,7 @@ from openerp.addons.web import http from openerp.tools.translate import _ from openerp.addons.web.http import request from openerp.addons.website.models import website +from openerp.addons.website_partner.controllers import main as website_partner import urllib @@ -12,8 +13,10 @@ class WebsiteCustomer(http.Controller): _references_per_page = 20 @website.route([ - '/customers/', '/customers/page//', - '/customers/country/', '/customers/country//page//' + '/customers/', + '/customers/page//', + '/customers/country/', + '/customers/country//page//' ], type='http', auth="public", multilang=True) def customers(self, country_id=None, page=0, **post): cr, uid, context = request.cr, request.uid, request.context @@ -33,17 +36,17 @@ class WebsiteCustomer(http.Controller): # group by country, based on all customers (base domain) countries = partner_obj.read_group( - cr, uid, base_domain, ["id", "country_id"], + cr, openerp.SUPERUSER_ID, base_domain, ["id", "country_id"], groupby="country_id", orderby="country_id", context=request.context) country_count = partner_obj.search( - cr, uid, base_domain, count=True, context=request.context) + cr, openerp.SUPERUSER_ID, base_domain, count=True, context=request.context) countries.insert(0, { 'country_id_count': country_count, 'country_id': (0, _("All Countries")) }) # search customers to display - partner_ids = partner_obj.search(cr, uid, domain, context=request.context) + partner_ids = partner_obj.search(cr, openerp.SUPERUSER_ID, domain, context=request.context) google_map_partner_ids = ",".join([str(p) for p in partner_ids]) # pager @@ -54,15 +57,14 @@ class WebsiteCustomer(http.Controller): # browse page of customers to display partner_ids = partner_obj.search( - cr, uid, domain, + cr, openerp.SUPERUSER_ID, domain, limit=self._references_per_page, offset=pager['offset'], context=context) - partners = partner_obj.browse(request.cr, request.uid, - partner_ids, request.context) - + partners_data = partner_obj.read( + request.cr, openerp.SUPERUSER_ID, partner_ids, website_partner.white_list, context=request.context) values = { 'countries': countries, 'current_country_id': country_id or 0, - 'partner_ids': partners, + 'partners_data': partners_data, 'google_map_partner_ids': google_map_partner_ids, 'pager': pager, 'post': post, @@ -71,9 +73,23 @@ class WebsiteCustomer(http.Controller): return request.website.render("website_customer.index", values) @website.route(['/customers//'], type='http', auth="public", multilang=True) - def customer(self, partner=None, **post): - """ Route for displaying a single partner / customer. """ - values = { - 'partner': partner - } + def customer(self, partner, **post): + values = website_partner.get_partner_template_value(partner, ["commercial_partner_id", "assigned_partner_id", "implemented_partner_ids"]) + if not values: + return self.customers(**post) + + partner_obj = request.registry['res.partner'] + if values['partner_data']['assigned_partner_id']: + values['assigned_partner_data'] = partner_obj.read( + request.cr, openerp.SUPERUSER_ID, [values['partner_data']['assigned_partner_id'][0]], + website_partner.white_list, context=request.context)[0] + if values['partner_data']['implemented_partner_ids']: + implemented_partners_data = partner_obj.read( + request.cr, openerp.SUPERUSER_ID, values['partner_data']['implemented_partner_ids'], + website_partner.white_list, context=request.context) + values['implemented_partners_data'] = [] + for data in implemented_partners_data: + if data.get('website_published'): + values['implemented_partners_data'].append(data) + return request.website.render("website_customer.details", values) diff --git a/addons/website_customer/views/website_customer.xml b/addons/website_customer/views/website_customer.xml index 002039c84bf..9b874016d8f 100644 --- a/addons/website_customer/views/website_customer.xml +++ b/addons/website_customer/views/website_customer.xml @@ -39,16 +39,16 @@
- +

- +

-
+
@@ -66,7 +66,7 @@ @@ -78,7 +78,7 @@
  • - + @@ -99,20 +99,17 @@ -
    - -
    -
    -

    -

    -
    -
    -
    -
    -
    + + +
    +
    + +
    +
    +
  • @@ -121,25 +118,27 @@ + + + + diff --git a/addons/website_customer_crm_partner_assign/__init__.py b/addons/website_customer_crm_partner_assign/__init__.py deleted file mode 100644 index eecb359a225..00000000000 --- a/addons/website_customer_crm_partner_assign/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2013-Today OpenERP S.A. (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## diff --git a/addons/website_customer_crm_partner_assign/__openerp__.py b/addons/website_customer_crm_partner_assign/__openerp__.py deleted file mode 100644 index 92cb0404f3e..00000000000 --- a/addons/website_customer_crm_partner_assign/__openerp__.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2013-Today OpenERP S.A. (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -{ - 'name': 'Public Customer References + Partner Assign', - 'category': 'Website', - 'summary': 'Add Partner Assignment Info to your Customer References', - 'version': '1.0', - 'description': """ -OpenERP Customer References + Partner Assign -============================================ -""", - 'author': 'OpenERP SA', - 'depends': [ - 'crm_partner_assign', - 'website_customer' - ], - 'data': [ - 'views/website_customer.xml', - ], - 'qweb': [], - 'installable': False, - 'auto_install': False, -} diff --git a/addons/website_customer_crm_partner_assign/views/website_customer.xml b/addons/website_customer_crm_partner_assign/views/website_customer.xml deleted file mode 100644 index 0e65885f72c..00000000000 --- a/addons/website_customer_crm_partner_assign/views/website_customer.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - diff --git a/addons/website_membership/controllers/main.py b/addons/website_membership/controllers/main.py index e2b201bb855..e36700bf1f6 100644 --- a/addons/website_membership/controllers/main.py +++ b/addons/website_membership/controllers/main.py @@ -4,6 +4,7 @@ import openerp from openerp.addons.web import http from openerp.addons.web.http import request from openerp.addons.website.models import website +from openerp.addons.website_partner.controllers import main as website_partner from openerp.tools.translate import _ import urllib @@ -39,7 +40,7 @@ class WebsiteMembership(http.Controller): # group by country, based on all customers (base domain) membership_line_ids = membership_line_obj.search(cr, uid, base_line_domain, context=context) countries = partner_obj.read_group( - cr, uid, [('member_lines', 'in', membership_line_ids)], ["id", "country_id"], + cr, uid, [('member_lines', 'in', membership_line_ids), ("website_published", "=", True)], ["id", "country_id"], groupby="country_id", orderby="country_id", context=request.context) countries_total = sum(country_dict['country_id_count'] for country_dict in countries) countries.insert(0, { @@ -57,6 +58,10 @@ class WebsiteMembership(http.Controller): partner_ids = [m.partner and m.partner.id for m in membership_lines] google_map_partner_ids = ",".join(map(str, partner_ids)) + partners_data = {} + for partner in partner_obj.read(cr, openerp.SUPERUSER_ID, partner_ids, website_partner.white_list, context=context): + partners_data[partner.get("id")] = partner + # format domain for group_by and memberships membership_ids = product_obj.search(cr, uid, [('membership', '=', True)], context=context) memberships = product_obj.browse(cr, uid, membership_ids, context=context) @@ -65,6 +70,7 @@ class WebsiteMembership(http.Controller): pager = request.website.pager(url="/members/", total=len(membership_line_ids), page=page, step=self._references_per_page, scope=7, url_args=post) values = { + 'partners_data': partners_data, 'membership_lines': membership_lines, 'memberships': memberships, 'membership': membership, @@ -78,12 +84,7 @@ class WebsiteMembership(http.Controller): @website.route(['/members//'], type='http', auth="public", multilang=True) def partners_ref(self, partner, **post): - if not partner.exists(): + values = website_partner.get_partner_template_value(partner) + if not values: return self.members(**post) - - values = { - 'partner_id': request.registry['res.partner'].browse( - request.cr, request.uid, partner.id, - context=dict(request.context, show_address=True)), - } return request.website.render("website_membership.partner", values) diff --git a/addons/website_membership/views/website_membership.xml b/addons/website_membership/views/website_membership.xml index c28498c7e55..01457eb2128 100644 --- a/addons/website_membership/views/website_membership.xml +++ b/addons/website_membership/views/website_membership.xml @@ -31,7 +31,7 @@