diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 785f2a6e8ce..bf6ef242cc8 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -977,7 +977,7 @@ class crm_lead(format_address, osv.osv): if obj.type == 'opportunity': model, view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'crm', 'crm_case_form_view_oppor') else: - view_id = super(crm_lead, self).get_formview_id(cr, uid, id, model='crm.lead', context=context) + view_id = super(crm_lead, self).get_formview_id(cr, uid, id, context=context) return view_id def message_get_suggested_recipients(self, cr, uid, ids, context=None): diff --git a/addons/mass_mailing/views/email_template.xml b/addons/mass_mailing/views/email_template.xml index cde5685abaf..84ac3925fcc 100644 --- a/addons/mass_mailing/views/email_template.xml +++ b/addons/mass_mailing/views/email_template.xml @@ -21,12 +21,11 @@
+
diff --git a/addons/website/tests/test_requests.py b/addons/website/tests/test_requests.py index 127aea274d5..e0309c9ab4b 100644 --- a/addons/website/tests/test_requests.py +++ b/addons/website/tests/test_requests.py @@ -41,6 +41,9 @@ class CrawlSuite(unittest2.TestSuite): starting the crawl """ + at_install = False + post_install = True + def __init__(self, user=None, password=None): super(CrawlSuite, self).__init__() @@ -108,14 +111,23 @@ class CrawlSuite(unittest2.TestSuite): for link in doc.xpath('//a[@href]'): href = link.get('href') + parts = urlparse.urlsplit(href) + # href with any fragment removed + href = urlparse.urlunsplit(( + parts.scheme, + parts.netloc, + parts.path, + parts.query, + '' + )) + # avoid repeats, even for links we won't crawl no need to # bother splitting them if we've already ignored them # previously if href in seen: continue seen.add(href) - parts = urlparse.urlsplit(href) - + # FIXME: handle relative link (not parts.path.startswith /) if parts.netloc or \ not parts.path.startswith('/') or \ parts.path == '/web' or\ diff --git a/addons/website_blog/static/src/js/website_blog.editor.js b/addons/website_blog/static/src/js/website_blog.editor.js index 103b2bee1e7..4a18b5e406b 100644 --- a/addons/website_blog/static/src/js/website_blog.editor.js +++ b/addons/website_blog/static/src/js/website_blog.editor.js @@ -30,11 +30,12 @@ }, }), edit: function () { + var self = this; $('.popover').remove(); this._super(); var vHeight = $(window).height(); - $('body').on('click','#change_cover',_.bind(this.change_bg,{},vHeight)); - $('body').on('click', '#clear_cover',_.bind(this.clean_bg,{},vHeight)); + $('body').on('click','#change_cover',_.bind(this.change_bg, self.rte.editor, vHeight)); + $('body').on('click', '#clear_cover',_.bind(this.clean_bg, self.rte.editor, vHeight)); }, save : function() { var res = this._super(); @@ -51,12 +52,12 @@ }, change_bg : function(vHeight) { var self = this; - var editor = new website.editor.ImageDialog(); - editor.on('start', self, function (o) { - o.url = $('.js_fullheight').length ? $('.js_fullheight').css('background-image').replace(/url\(|\)|"|'/g,'') : ''; - }); - editor.on('save', self, function (o) { - $('.js_fullheight').css({"background-image": o.url && o.url !== "" ? 'url(' + o.url + ')' : "", 'min-height': vHeight}) + var element = new CKEDITOR.dom.element(self.element.find('.cover-storage').$[0]); + var editor = new website.editor.MediaDialog(self, element); + $(document.body).on('media-saved', self, function (o) { + var url = $('.cover-storage').attr('src'); + $('.js_fullheight').css({"background-image": !_.isUndefined(url) ? 'url(' + url + ')' : "", 'min-height': vHeight}); + $('.cover-storage').remove(); }); editor.appendTo('body'); }, diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml index fa6c6af53c6..20d042830e7 100644 --- a/addons/website_blog/views/website_blog_templates.xml +++ b/addons/website_blog/views/website_blog_templates.xml @@ -49,7 +49,7 @@

- +   @@ -187,6 +187,7 @@

+
diff --git a/addons/website_crm/controllers/main.py b/addons/website_crm/controllers/main.py index 163e3ee9793..e3662ef40a0 100644 --- a/addons/website_crm/controllers/main.py +++ b/addons/website_crm/controllers/main.py @@ -23,38 +23,29 @@ class contactus(http.Controller): if kwargs.get(field): values[field] = kwargs.pop(field) values.update(kwargs=kwargs.items()) - print values return request.website.render("website.contactus", values) @http.route(['/crm/contactus'], type='http', auth="public", website=True, multilang=True) def contactus(self, description=None, partner_name=None, phone=None, contact_name=None, email_from=None, name=None, **kwargs): - post = {} - post['description'] = description - post['partner_name'] = partner_name - post['phone'] = phone - post['contact_name'] = contact_name - post['email_from'] = email_from - post['name'] = name - - required_fields = ['contact_name', 'email_from', 'description'] - error = set() - values = dict((key, post.get(key)) for key in post) - values['error'] = error + post = { + 'description': description, + 'partner_name': partner_name, + 'phone': phone, + 'contact_name': contact_name, + 'email_from': email_from, + 'name': name or contact_name, + 'user_id': False, + } # fields validation - for field in required_fields: - if not post.get(field): - error.add(field) + error = set(field for field in ['contact_name', 'email_from', 'description'] + if not post.get(field)) + + values = dict(post, error=error) if error: values.update(kwargs=kwargs.items()) return request.website.render("website.contactus", values) - # if not given: subject is contact name - if not post.get('name'): - post['name'] = post.get('contact_name') - - post['user_id'] = False - try: post['channel_id'] = request.registry['ir.model.data'].get_object_reference(request.cr, SUPERUSER_ID, 'crm', 'crm_case_channel_website')[1] except ValueError: diff --git a/addons/website_crm_partner_assign/__openerp__.py b/addons/website_crm_partner_assign/__openerp__.py index 82b16173666..06b6dc9410e 100644 --- a/addons/website_crm_partner_assign/__openerp__.py +++ b/addons/website_crm_partner_assign/__openerp__.py @@ -10,6 +10,7 @@ Publish and Assign Partner 'author': 'OpenERP SA', 'depends': ['crm_partner_assign','website_partner', 'website_google_map'], 'data': [ + 'views/partner_grade.xml', 'views/website_crm_partner_assign.xml', ], 'qweb': ['static/src/xml/*.xml'], diff --git a/addons/website_crm_partner_assign/controllers/main.py b/addons/website_crm_partner_assign/controllers/main.py index 6d6dda59a99..0581c44ba57 100644 --- a/addons/website_crm_partner_assign/controllers/main.py +++ b/addons/website_crm_partner_assign/controllers/main.py @@ -3,7 +3,6 @@ import werkzeug import openerp -from openerp import SUPERUSER_ID from openerp.addons.web import http from openerp.tools.translate import _ from openerp.addons.web.http import request @@ -23,21 +22,21 @@ class WebsiteCrmPartnerAssign(http.Controller): '/partners/country/-', '/partners/country//page/', '/partners/country/-/page/', - + '/partners/grade//country/', '/partners/grade//country/-', '/partners/grade//country//page/', '/partners/grade//country/-/page/', - + ], type='http', auth="public", website=True, multilang=True) - def partners(self, country_id=0, grade_id=0, page=0, **post): + def partners(self, country_id=0, grade_id=0, page=0, country_name='', **post): country_obj = request.registry['res.country'] partner_obj = request.registry['res.partner'] post_name = post.get('search', '') country = None # format displayed membership lines domain - base_partner_domain = [('is_company', '=', True), ('grade_id', '!=', False), ('website_published', '=', True)] + base_partner_domain = [('is_company', '=', True), ('grade_id.website_published', '=', True), ('website_published', '=', True)] partner_domain = list(base_partner_domain) if post_name: partner_domain += ['|', ('name', 'ilike', post_name), ('website_description', 'ilike', post_name)] @@ -51,7 +50,7 @@ class WebsiteCrmPartnerAssign(http.Controller): countries_partners = partner_obj.search( request.cr, openerp.SUPERUSER_ID, partner_domain, context=request.context, count=True) - + if country_id: country = country_obj.browse(request.cr, request.uid, country_id, request.context) partner_domain += [('country_id', '=', country_id)] @@ -61,33 +60,29 @@ class WebsiteCrmPartnerAssign(http.Controller): 'country_id': (country_id, country.name) }) countries.sort(key=lambda d: d['country_id'][1]) - + countries.insert(0, { 'country_id_count': countries_partners, 'country_id': (0, _("All Countries")) }) - # format pager - partner_ids = partner_obj.search( + partner_count = partner_obj.search_count( 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) + pager = request.website.pager(url="/partners", total=partner_count, page=page, step=self._references_per_page, scope=7, url_args=post) - # search for partners to display - partners_data = partner_obj.search_read(request.cr, openerp.SUPERUSER_ID, - domain=partner_domain, - fields=request.website.get_partner_white_list_fields(), - offset=pager['offset'], - limit=self._references_per_page, - order="grade_id DESC,partner_weight DESC", - context=request.context) - google_map_partner_ids = ",".join([str(p['id']) for p in partners_data]) + partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, partner_domain, + offset=pager['offset'], limit=self._references_per_page, + order="grade_id DESC, partner_weight DESC", + context=request.context) + google_map_partner_ids = ','.join(map(str, partner_ids)) + partners = partner_obj.browse(request.cr, openerp.SUPERUSER_ID, partner_ids, request.context) # group by grade grades = partner_obj.read_group( request.cr, openerp.SUPERUSER_ID, base_partner_domain, ["id", "grade_id"], - groupby="grade_id", orderby="grade_id", context=request.context) + groupby="grade_id", orderby="grade_id DESC", context=request.context) grades_partners = partner_obj.search( request.cr, openerp.SUPERUSER_ID, base_partner_domain, context=request.context, count=True) @@ -102,7 +97,7 @@ class WebsiteCrmPartnerAssign(http.Controller): 'current_country': country, 'grades': grades, 'grade_id': grade_id, - 'partners_data': partners_data, + 'partners': partners, 'google_map_partner_ids': google_map_partner_ids, 'pager': pager, 'searches': post, @@ -111,9 +106,8 @@ class WebsiteCrmPartnerAssign(http.Controller): return request.website.render("website_crm_partner_assign.index", values) @http.route(['/partners/', '/partners/-'], type='http', auth="public", website=True, multilang=True) - def partners_ref(self, partner_id, **post): - partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context) - values = website_partner.get_partner_template_value(partner) + def partners_ref(self, partner_id, partner_name='', **post): + values = website_partner.get_partner_template_value(partner_id) if not values: return self.partners(**post) values['main_object'] = values['partner'] diff --git a/addons/website_crm_partner_assign/models/__init__.py b/addons/website_crm_partner_assign/models/__init__.py index 20036e92f6c..4e5bc1614d1 100644 --- a/addons/website_crm_partner_assign/models/__init__.py +++ b/addons/website_crm_partner_assign/models/__init__.py @@ -1,2 +1 @@ import res_partner -import website diff --git a/addons/website_crm_partner_assign/models/res_partner.py b/addons/website_crm_partner_assign/models/res_partner.py index e295c7ab0b1..cc00f8bd6e1 100644 --- a/addons/website_crm_partner_assign/models/res_partner.py +++ b/addons/website_crm_partner_assign/models/res_partner.py @@ -1,9 +1,8 @@ # -*- coding: utf-8 -*- - from openerp.osv import osv, fields class res_partner_grade(osv.osv): _inherit = 'res.partner.grade' _columns = { - 'website_description': fields.html('Description for the website'), + 'website_published': fields.boolean('Published On Website'), } diff --git a/addons/website_crm_partner_assign/models/website.py b/addons/website_crm_partner_assign/models/website.py deleted file mode 100644 index f0d428ae5fa..00000000000 --- a/addons/website_crm_partner_assign/models/website.py +++ /dev/null @@ -1,11 +0,0 @@ -# -*- coding: utf-8 -*- -from openerp.osv import orm - - -class Website(orm.Model): - _inherit = 'website' - - def get_partner_white_list_fields(self, cr, uid, ids, context=None): - fields = super(Website, self).get_partner_white_list_fields(cr, uid, ids, context=context) - fields += ["grade_id"] - return fields diff --git a/addons/website_crm_partner_assign/views/partner_grade.xml b/addons/website_crm_partner_assign/views/partner_grade.xml new file mode 100644 index 00000000000..2acf8e1eb24 --- /dev/null +++ b/addons/website_crm_partner_assign/views/partner_grade.xml @@ -0,0 +1,18 @@ + + + + + + res.partner.grade.website + res.partner.grade + + + + + + + + + + + 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 56ac22d1eee..3e96bc12443 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 @@ -81,27 +81,28 @@
- -

No result found.

-
- - +

No result found

+ +

- Partners - in + Partners

- +
- - - +
- - -
+ + + +
+
@@ -126,5 +127,12 @@
+ + diff --git a/addons/website_customer/controllers/main.py b/addons/website_customer/controllers/main.py index 5f0825e132c..2caf8c74373 100644 --- a/addons/website_customer/controllers/main.py +++ b/addons/website_customer/controllers/main.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- import openerp -from openerp import SUPERUSER_ID from openerp.addons.web import http from openerp.tools.translate import _ from openerp.addons.web.http import request @@ -19,14 +18,13 @@ class WebsiteCustomer(http.Controller): '/customers/country//page/', '/customers/country/-/page/', ], type='http', auth="public", website=True, multilang=True) - def customers(self, country_id=0, page=0, **post): + def customers(self, country_id=0, page=0, country_name='', **post): cr, uid, context = request.cr, request.uid, request.context country_obj = request.registry['res.country'] partner_obj = request.registry['res.partner'] partner_name = post.get('search', '') - base_domain = [('website_published','=',True)] - domain = list(base_domain) + domain = [('website_published', '=', True), ('assigned_partner_id', '!=', False)] if partner_name: domain += [ '|', @@ -57,25 +55,24 @@ class WebsiteCustomer(http.Controller): }) # search customers to display - 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]) + partner_count = partner_obj.search_count(cr, openerp.SUPERUSER_ID, domain, context=request.context) # pager pager = request.website.pager( - url="/customers", total=len(partner_ids), page=page, step=self._references_per_page, + url="/customers", total=partner_count, page=page, step=self._references_per_page, scope=7, url_args=post ) - # browse page of customers to display - partner_ids = partner_obj.search( - cr, openerp.SUPERUSER_ID, domain, - limit=self._references_per_page, offset=pager['offset'], context=context) - partners_data = partner_obj.read( - request.cr, openerp.SUPERUSER_ID, partner_ids, request.website.get_partner_white_list_fields(), context=request.context) + partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, domain, + offset=pager['offset'], limit=self._references_per_page, + context=request.context) + google_map_partner_ids = ','.join(map(str, partner_ids)) + partners = partner_obj.browse(request.cr, openerp.SUPERUSER_ID, partner_ids, request.context) + values = { 'countries': countries, 'current_country_id': country_id or 0, - 'partners_data': partners_data, + 'partners': partners, 'google_map_partner_ids': google_map_partner_ids, 'pager': pager, 'post': post, @@ -84,25 +81,10 @@ class WebsiteCustomer(http.Controller): return request.website.render("website_customer.index", values) @http.route(['/customers/', '/customers/-'], type='http', auth="public", website=True, multilang=True) - def customer(self, partner_id, **post): - partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context) - values = website_partner.get_partner_template_value(partner) + def customer(self, partner_id, partner_name='', **post): + values = website_partner.get_partner_template_value(partner_id) if not values: return self.customers(**post) - partner_obj = request.registry['res.partner'] - if values['partner_data'].get('assigned_partner_id', None): - values['assigned_partner_data'] = partner_obj.read( - request.cr, openerp.SUPERUSER_ID, [values['partner_data']['assigned_partner_id'][0]], - request.website.get_partner_white_list_fields(), context=request.context)[0] - if values['partner_data'].get('implemented_partner_ids', None): - implemented_partners_data = partner_obj.read( - request.cr, openerp.SUPERUSER_ID, values['partner_data']['implemented_partner_ids'], - request.website.get_partner_white_list_fields(), context=request.context) - values['implemented_partners_data'] = [] - for data in implemented_partners_data: - if data.get('website_published'): - values['implemented_partners_data'].append(data) - values['main_object'] = values['partner'] 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 ba89f456e23..a2a5fc99c16 100644 --- a/addons/website_customer/views/website_customer.xml +++ b/addons/website_customer/views/website_customer.xml @@ -39,21 +39,22 @@
- -

No result found.

-
- -
- - - - - @@ -101,15 +102,15 @@ -
+
-
+
@@ -119,57 +120,59 @@
-