[MIG] website_partner: migrated into new api

This commit is contained in:
Srushti Patel
2015-11-24 16:09:28 +01:00
committed by Thibault Delavallée
parent f15bd6ee41
commit 62cd76ed22
8 changed files with 47 additions and 59 deletions
@@ -1 +1,3 @@
# -*- coding: utf-8 -*-
import main
+9 -9
View File
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
from openerp import SUPERUSER_ID
from openerp.addons.web import http
from openerp.addons.web.http import request
from openerp.addons.website.models.website import unslug
from odoo import http
from odoo.http import request
from odoo.addons.website.models.website import unslug
class WebsitePartnerPage(http.Controller):
@@ -12,12 +12,12 @@ class WebsitePartnerPage(http.Controller):
def partners_detail(self, partner_id, **post):
_, partner_id = unslug(partner_id)
if partner_id:
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
is_website_publisher = request.registry['res.users'].has_group(request.cr, request.uid, 'base.group_website_publisher')
if partner.exists() and (partner.website_published or is_website_publisher):
partner_sudo = request.env['res.partner'].sudo().browse(partner_id)
is_website_publisher = request.env['res.users'].has_group('base.group_website_publisher')
if partner_sudo.exists() and (partner_sudo.website_published or is_website_publisher):
values = {
'main_object': partner,
'partner': partner,
'main_object': partner_sudo,
'partner': partner_sudo,
'edit_page': False
}
return request.website.render("website_partner.partner_page", values)
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<odoo>
<record id="base.main_partner" model="res.partner">
<field name="website_published">True</field>
</record>
</data>
</openerp>
</odoo>
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<odoo>
<record id="base.partner_root" model="res.partner">
<field name="website_published">True</field>
@@ -251,5 +250,4 @@ Best Designers has now emerged serving the Small and Medium Business – SMB’s
<record id="base.res_partner_1" model="res.partner">
<field name="notify_email">none</field>
</record>
</data>
</openerp>
</odoo>
@@ -1 +1,3 @@
# -*- coding: utf-8 -*-
import res_partner
+25 -32
View File
@@ -1,46 +1,39 @@
# -*- coding: utf-8 -*-
from openerp.osv import osv, fields
from openerp.addons.website.models.website import slug
from odoo import api, fields, models
from odoo.addons.website.models.website import slug
class WebsiteResPartner(osv.Model):
class WebsiteResPartner(models.Model):
_name = 'res.partner'
_inherit = ['res.partner', 'website.seo.metadata', 'website.published.mixin']
def _get_ids(self, cr, uid, ids, flds, args, context=None):
return {i: i for i in ids}
website_private = fields.Boolean(string='Private Profile', compute='_compute_private',
inverse='_set_private', search='_search_private')
website_description = fields.Html('Website Partner Full Description', strip_style=True)
website_short_description = fields.Text('Website Partner Short Description')
# hack to allow using plain browse record in qweb views
self = fields.Many2one(comodel_name=_name, compute='_compute_get_ids')
def _set_private(self, cr, uid, ids, field_name, value, arg, context=None):
return self.write(cr, uid, ids, {'website_published': not value}, context=context)
@api.one
def _compute_get_ids(self):
self.self = self.id
def _get_private(self, cr, uid, ids, field_name, arg, context=None):
return dict((rec.id, not rec.website_published) for rec in self.browse(cr, uid, ids, context=context))
@api.multi
def _compute_private(self):
for partner in self:
partner.website_private = not partner.website_published
def _search_private(self, cr, uid, obj, name, args, context=None):
return [('website_published', '=', not args[0][2])]
def _set_private(self):
for partner in self:
partner.website_published = not partner.website_private
_columns = {
'website_private': fields.function(
_get_private, fnct_inv=_set_private, fnct_search=_search_private,
type='boolean', string='Private Profile'),
'website_description': fields.html(
'Website Partner Full Description',
strip_style=True
),
'website_short_description': fields.text(
'Website Partner Short Description'
),
# hack to allow using plain browse record in qweb views
'self': fields.function(_get_ids, type='many2one', relation=_name),
}
def _search_private(self, operator, value):
return [('website_published', '=', not value)]
def _website_url(self, cr, uid, ids, field_name, arg, context=None):
res = super(WebsiteResPartner, self)._website_url(cr, uid, ids, field_name, arg, context=context)
for partner in self.browse(cr, uid, ids, context=context):
@api.multi
def _website_url(self, field_name, arg):
res = super(WebsiteResPartner, self)._website_url(field_name, arg)
for partner in self:
res[partner.id] = "/partners/%s" % slug(partner)
return res
_defaults = {
'website_private': True,
}
@@ -1,6 +1,5 @@
<?xml version="1.0"?>
<openerp>
<data>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Add team_id (SalesTeam) and contextual button on partner form view -->
<record id="view_partners_form_website" model="ir.ui.view">
@@ -19,6 +18,4 @@
</data>
</field>
</record>
</data>
</openerp>
</odoo>
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<odoo>
<template id="partner_page" name="Partner Page">
<t t-call="website.layout">
<div id="wrap">
@@ -42,5 +41,4 @@
<t t-raw="right_column or ''"/>
</div>
</template>
</data>
</openerp>
</odoo>