This question has been flagged
9 Replies
59419 Views

How to change Favicon?

Avatar
Discard
Best Answer

Install app Favicon shortcut and edit image in menu Configuration > Company > Web Favicon

Avatar
Discard
Best Answer

You have to override the web module with your own module. You can add a line like

'data': [ 'views/website_templates.xml' ]

in your __openerp__.py.

Put your favicon at static/src/img/favicon.ico and add a template to views/website_templates:

<template id="MYSITE_layout" inherit_id="website.layout" name="MYSITE layout" priority="17">
<xpath expr="//head//link" position="after">
<link rel="shortcut icon" href="/MYSITE_web/static/src/img/favicon.ico" type="image/x-icon"/>
</xpath>
</template>

Avatar
Discard
Best Answer

You can try my module web_debranding

It allows to configure favicon dynamically at Settings\System Parameters:

    <template id="web_debranding.web_layout" inherit_id="web.layout">
<xpath expr="//title" position="replace"></xpath>
<xpath expr="//link[@rel='shortcut icon']" position="replace">
<t t-set="favicon" t-value="request.env['ir.config_parameter'].get_param('web_debranding.favicon_url', '').strip()"/>
<t t-if="favicon">
<link rel="shortcut icon" t-att-href="favicon" type="image/x-icon"/>
</t>
</xpath>
</template>


Avatar
Discard
Best Answer

In V8 you can change favicon by modifying templates. See e.g. "website.layout" view

Avatar
Discard

Could you explain your solution with one more sentence please? I found website.layout, but no reference to the used favicon. just put the reference there?

Best Answer

You may do it through the interface with the help of this module: https://apps.odoo.com/apps/modules/8.0/colors_customization/

Avatar
Discard
Best Answer

In Odoo 17 we cannot anymore change the favicon via company, they have removed the field

Avatar
Discard
Best Answer

you can also replace the favicon.ico by just tracing it and replacing the ico file with your ico file.

i tried this step and it worked.

Avatar
Discard
Best Answer

Try changing the source code:

/addons/web/controllers/main.py#L548

image description

Avatar
Discard

I don't like to change any default modules. Is it possible to override main.py somehow?

Try this: https://www.odoo.com/fr_FR/forum/help-1/question/how-to-remove-manage-databases-2615

Best Answer

Or just drop yours here : addons/web/static/src/img

Regards

Avatar
Discard
Author

Thanks for you repky, but i don't want to change default module, i changed successfully using inherit JavaScript $('link[href="/web/static/src/img/favicon.ico"]').attr('href','/kderp_web/static/src/img/favicon.ico');     (function() {         var link = document.createElement('link');         link.type = 'image/x-icon';         link.rel = 'shortcut icon';         link.href = '/kderp_web/static/src/img/favicon.ico';         document.getElementsByTagName('head')[0].appendChild(link);     }());

Is it possible to somehow override stuff that's living in addons/web/static/src/img through a custom module?