import controllers
+import models
""",
'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,
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)]
# 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)
@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)
<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>
--- /dev/null
+import product
--- /dev/null
+# -*- 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,
+ }
--- /dev/null
+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
\ No newline at end of file
--- /dev/null
+<?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>