Ejemplo n.º 1
0
    def _prepare_qcontext(self):
        """ Returns the qcontext : rendering context with website specific value (required
            to render website layout template)
        """
        qcontext = super(View, self)._prepare_qcontext()

        if request and getattr(request, 'is_frontend', False):
            Website = self.env['website']
            editable = request.website.is_publisher()
            translatable = editable and self._context.get(
                'lang') != request.env['ir.http']._get_default_lang().code
            editable = not translatable and editable

            cur = Website.get_current_website()
            if self.env.user.has_group('website.group_website_publisher'
                                       ) and self.env.user.has_group(
                                           'website.group_multi_website'):
                qcontext['multi_website_websites_current'] = {
                    'website_id': cur.id,
                    'name': cur.name,
                    'domain': cur._get_http_domain()
                }
                qcontext['multi_website_websites'] = [{
                    'website_id':
                    website.id,
                    'name':
                    website.name,
                    'domain':
                    website._get_http_domain()
                } for website in Website.search([]) if website != cur]

                cur_company = self.env.company
                qcontext['multi_website_companies_current'] = {
                    'company_id': cur_company.id,
                    'name': cur_company.name
                }
                qcontext['multi_website_companies'] = [{
                    'company_id': comp.id,
                    'name': comp.name
                } for comp in self.env.user.company_ids if comp != cur_company]

            qcontext.update(
                dict(
                    self._context.copy(),
                    main_object=self,
                    website=request.website,
                    url_for=url_for,
                    res_company=request.website.company_id.sudo(),
                    default_lang_code=request.env['ir.http']._get_default_lang(
                    ).code,
                    languages=request.env['res.lang'].get_available(),
                    translatable=translatable,
                    editable=editable,
                    # retrocompatibility, remove me in master
                    menu_data={'children': []}
                    if request.website.is_user() else None,
                ))

        return qcontext
Ejemplo n.º 2
0
    def _prepare_qcontext(self):
        """ Returns the qcontext : rendering context with website specific value (required
            to render website layout template)
        """
        qcontext = super(View, self)._prepare_qcontext()

        if request and getattr(request, 'is_frontend', False):
            Website = self.env['website']
            editable = request.website.is_publisher()
            translatable = editable and self._context.get(
                'lang') != request.env['ir.http']._get_default_lang().code
            editable = not translatable and editable

            cur = Website.get_current_website()
            if self.env.user.has_group('website.group_website_publisher'
                                       ) and self.env.user.has_group(
                                           'website.group_multi_website'):
                qcontext['multi_website_websites_current'] = {
                    'website_id': cur.id,
                    'name': cur.name,
                    'domain': cur._get_http_domain()
                }
                qcontext['multi_website_websites'] = [{
                    'website_id':
                    website.id,
                    'name':
                    website.name,
                    'domain':
                    website._get_http_domain()
                } for website in Website.search([]) if website != cur]

                cur_company = self.env.company
                qcontext['multi_website_companies_current'] = {
                    'company_id': cur_company.id,
                    'name': cur_company.name
                }
                qcontext['multi_website_companies'] = [{
                    'company_id': comp.id,
                    'name': comp.name
                } for comp in self.env.user.company_ids if comp != cur_company]

            qcontext.update(
                dict(
                    main_object=self,
                    website=request.website,
                    is_view_active=request.website.is_view_active,
                    res_company=request.env['res.company'].browse(
                        request.website._get_cached('company_id')).sudo(),
                    translatable=translatable,
                    editable=editable,
                ))

        return qcontext