[FIX] website_membership: access right and demo data
bzr revid: chm@openerp.com-20131114113927-oiuy6zqtkwombvrw
This commit is contained in:
parent
62f00f6941
commit
3b88083958
|
@ -1 +1,2 @@
|
|||
import controllers
|
||||
import models
|
||||
|
|
|
@ -10,7 +10,11 @@ Website for browsing Associations, Groups and Memberships
|
|||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['website_partner', 'website_google_map', 'association'],
|
||||
'data': ['views/website_membership.xml',],
|
||||
'data': [
|
||||
'views/website_membership.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'security/website_membership.xml',
|
||||
],
|
||||
'demo': ['demo/membership.xml'],
|
||||
'qweb': ['static/src/xml/*.xml'],
|
||||
'installable': True,
|
||||
|
|
|
@ -27,15 +27,12 @@ class WebsiteMembership(http.Controller):
|
|||
post_country_id = int(post.get('country_id', '0'))
|
||||
|
||||
# base domain for groupby / searches
|
||||
if request.context['is_public_user']:
|
||||
base_line_domain = [('partner.website_published', '=', True)]
|
||||
else:
|
||||
base_line_domain = [(1, '=', 1)]
|
||||
base_line_domain = [(1, '=', 1)]
|
||||
if membership_id:
|
||||
base_line_domain += [('membership_id', '=', membership_id)]
|
||||
membership = product_obj.browse(cr, openerp.SUPERUSER_ID, membership_id, context=context)
|
||||
membership = product_obj.browse(cr, uid, membership_id, context=context)
|
||||
else:
|
||||
membership = ''
|
||||
membership = None
|
||||
if post_name:
|
||||
base_line_domain += ['|', ('partner.name', 'ilike', "%%%s%%" % post_name), ('partner.website_description', 'ilike', "%%%s%%" % post_name)]
|
||||
|
||||
|
@ -62,8 +59,8 @@ class WebsiteMembership(http.Controller):
|
|||
|
||||
# format domain for group_by and memberships
|
||||
membership_domain = [('membership', '=', True)]
|
||||
membership_ids = product_obj.search(cr, openerp.SUPERUSER_ID, membership_domain, context=context)
|
||||
memberships = product_obj.browse(cr, openerp.SUPERUSER_ID, membership_ids, context=context)
|
||||
membership_ids = product_obj.search(cr, uid, membership_domain, context=context)
|
||||
memberships = product_obj.browse(cr, uid, membership_ids, context=context)
|
||||
|
||||
# request pager for lines
|
||||
pager = request.website.pager(url="/members/", total=len(membership_line_ids), page=page, step=self._references_per_page, scope=7, url_args=post)
|
||||
|
@ -83,16 +80,13 @@ class WebsiteMembership(http.Controller):
|
|||
@website.route(['/members/<int:partner_id>/'], type='http', auth="public", multilang=True)
|
||||
def partners_ref(self, partner_id=0, **post):
|
||||
partner_obj = request.registry['res.partner']
|
||||
if request.context['is_public_user']:
|
||||
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('website_published', '=', True), ('id', '=', partner_id)], context=request.context)
|
||||
else:
|
||||
partner_ids = partner_obj.search(request.cr, request.uid, [('id', '=', partner_id)], context=request.context)
|
||||
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, openerp.SUPERUSER_ID, partner_ids[0],
|
||||
request.cr, request.uid, partner_ids[0],
|
||||
context=dict(request.context, show_address=True)),
|
||||
}
|
||||
return request.website.render("website_membership.partner", values)
|
||||
|
|
|
@ -6,5 +6,14 @@
|
|||
<record id="base.res_partner_2" model="res.partner">
|
||||
<field name="website_published" eval="True"/>
|
||||
</record>
|
||||
<record id="membership.membership_0" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
</record>
|
||||
<record id="membership.membership_1" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
</record>
|
||||
<record id="membership.membership_2" model="product.product">
|
||||
<field name="website_published" eval="True"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
import product
|
|
@ -0,0 +1,32 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2013-Today OpenERP SA (<http://www.openerp.com>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp.osv import osv, fields
|
||||
|
||||
class product_template(osv.Model):
|
||||
_inherit = 'product.template'
|
||||
|
||||
_columns = {
|
||||
'website_published': fields.boolean('Available in the website'),
|
||||
}
|
||||
_defaults = {
|
||||
'website_published': False,
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_membership_product_product_public,event.product.product.public,product.model_product_product,base.group_public,1,0,0,0
|
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="membership_product_product_public" model="ir.rule">
|
||||
<field name="name">Product membership: Public</field>
|
||||
<field name="model_id" ref="product.model_product_product"/>
|
||||
<field name="domain_force">[('website_published', '=', True), ('membership', '=', True)]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_public'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
<record id="membership_membership_line_public" model="ir.rule">
|
||||
<field name="name">Membership line: Public</field>
|
||||
<field name="model_id" ref="membership.model_membership_membership_line"/>
|
||||
<field name="domain_force">[('partner.website_published', '=', True)]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_public'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
Loading…
Reference in New Issue