[IMP] website_contract

- removed already-defined res.partner fields, using dependency towards website_partner;
- fixed references/<partner_id>/ that was buggy;
- cleaned a bit references controller;
- fixed customer template that was crashing;

website_partner: added website_published onto the partner form view, to be able to
change it directly in the backend

bzr revid: tde@openerp.com-20131002125801-zdoor3laarm7j3su
This commit is contained in:
Thibault Delavallée 2013-10-02 14:58:01 +02:00
parent 84e24d62b5
commit a0c2def796
7 changed files with 55 additions and 41 deletions

View File

@ -1,2 +1 @@
import controllers
import website_contract

View File

@ -9,7 +9,7 @@ OpenERP Blog
""",
'author': 'OpenERP SA',
'depends': ['website', 'sale', 'website_google_map'],
'depends': ['website_partner', 'sale', 'website_google_map'],
'data': [
'views/website_contract.xml',
],

View File

@ -7,6 +7,7 @@ from openerp.addons.web.http import request
from openerp.addons.website.models import website
import urllib
class website_contract(http.Controller):
@website.route(['/references/', '/references/page/<int:page>/'], type='http', auth="public")
@ -23,9 +24,13 @@ class website_contract(http.Controller):
domain = ['|', ('id', "in", contract_project_ids), ('id', "child_of", contract_project_ids)]
if post.get('search'):
domain += ['|',
domain += [
'|',
('name', 'ilike', "%%%s%%" % post.get("search")),
('website_description', 'ilike', "%%%s%%" % post.get("search"))]
('website_description', 'ilike', "%%%s%%" % post.get("search"))
]
if request.context['is_public_user']:
domain = ['&'] + domain + [('website_published', '=', True)]
# public partner profile
partner_ids = partner_obj.search(
@ -33,12 +38,6 @@ class website_contract(http.Controller):
domain + [('website_published', '=', True)], context=request.context)
google_map_partner_ids = ",".join([str(p) for p in partner_ids])
if not request.context['is_public_user']:
# search without website_published
partner_ids += partner_obj.search(request.cr, request.uid,
domain, context=request.context)
partner_ids = list(set(partner_ids))
# group by country
countries = partner_obj.read_group(
request.cr, request.uid, domain, ["id", "country_id"],
@ -75,22 +74,28 @@ class website_contract(http.Controller):
}
return request.website.render("website_contract.index", values)
@website.route(['/references/<int:ref_id>/'], type='http', auth="public")
def references_ref(self, ref_id=0, **post):
@website.route(['/references/<int:partner_id>/'], type='http', auth="public")
def references_ref(self, partner_id=None, **post):
""" Route for displaying a single partner.
:param integer partner_id: partner to display. If not set or not valid
call basic references method.
"""
partner_obj = request.registry['res.partner']
partner_ids = partner_obj.search(
request.cr, openerp.SUPERUSER_ID, [
('website_published', '=', True),
('id', '=', ref_id)
], context=request.context)
if not request.context['is_public_user']:
partner_ids += partner_obj.search(
request.cr, request.uid, [('id', '=', ref_id)],
context=request.context)
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)
partner_id = partner_ids and partner_ids[0] or None
if not partner_id:
return self.references(post)
values = {
'partner_id': partner_obj.browse(
request.cr, openerp.SUPERUSER_ID, partner_ids[0],
request.cr, openerp.SUPERUSER_ID, partner_id,
dict(request.context, show_address=True)),
}

View File

@ -101,7 +101,8 @@
<div class="text-center">
<img t-att-src="partner_id.img('image_medium')"/>
</div>
<address>
<div class="mt32" t-field="partner_id.website_short_description"/>
<address>
<table style="margin: auto;" class="well">
<colgroup>
<col width="100"/>
@ -110,11 +111,11 @@
<tbody>
<t t-set="address" t-value="'&lt;br/&gt;'.join(partner_id.name_get()[0][1].split('\n')[1:])"/>
<tr t-if="address or editable"><th>Address</th><td class="col-md-2" t-raw="address"/></tr>
<tr t-if="partner_id.website or editable"><th>Website</th><td class="col-md-2" t-field="partner_id.website"/></tr>
<tr t-if="partner_id.phone or editable"><th>Tel</th><td class="col-md-2" t-field="partner_id.phone"/></tr>
<tr t-if="partner_id.mobile or editable"><th>Tel</th><td class="col-md-2" t-field="partner_id.mobile"/></tr>
<tr t-if="partner_id.fax or editable"><th>Fax</th><td class="col-md-2" t-field="partner_id.fax"/></tr>
<tr t-if="partner_id.email or editable"><th>Email</th><td class="col-md-2" t-field="partner_id.email"/></tr>
<tr t-if="partner_id.website or editable"><th>Website</th><td class="col-md-2"><span t-field="partner_id.website"/></td></tr>
<tr t-if="partner_id.phone or editable"><th>Tel</th><td class="col-md-2"><span t-field="partner_id.phone"/></td></tr>
<tr t-if="partner_id.mobile or editable"><th>Tel</th><td class="col-md-2"><span t-field="partner_id.mobile"/></td></tr>
<tr t-if="partner_id.fax or editable"><th>Fax</th><td class="col-md-2"><span t-field="partner_id.fax"/></td></tr>
<tr t-if="partner_id.email or editable"><th>Email</th><td class="col-md-2"><span t-field="partner_id.email"/></td></tr>
</tbody>
</table>
</address>

View File

@ -1,13 +0,0 @@
# -*- coding: utf-8 -*-
from openerp.osv import osv, fields
class res_partner(osv.osv):
_inherit = 'res.partner'
_columns = {
'website_description': fields.html('Description for the website'),
'website_short_description': fields.text('Sort description for the website'),
}
def img(self, cr, uid, ids, field='image_small', context=None):
return "/website/image?model=%s&field=%s&id=%s" % (self._name, field, ids[0])

View File

@ -28,6 +28,7 @@
'author': 'OpenERP SA',
'depends': ['website'],
'data': [
'views/res_partner_view.xml',
],
'css': [
],

View File

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<openerp>
<data>
<!-- Add section_id (SalesTeam) and contextual button on partner form view -->
<record id="view_partners_form_website" model="ir.ui.view">
<field name="name">view.res.partner.form.website</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<data>
<field name="active" position="after">
<field name="website_published"/>
</field>
</data>
</field>
</record>
</data>
</openerp>