Question: Is there a way to override openerp's default views, developing a module instead of doing it manually from Settings / Customization / User Interface / Views...?

We are using OpenERP and customizing a lot of default views (Project List, Invoice List, Invoice Search etc) adding and hiding fields from list and search filters / groups, we are doing it manually view by view from web client.
Is there a way to develop a module where I can write the xml for all the views I want to customize, and when I install that module all that views (and window actions as well) will be updated?

Answer: 
You can use [View Inheritance](http://doc.openerp.com/v6.1/developer/03_modules_3.html#inheritance-in-views) to customize any view using XML files. 

Using inheritance, you can add, remove and replace elements to any view. You can also define new complete views to replace the default instead of inheritance. Just create a new module with the XML files that customizes or replaces the current views and load that module. The module folder should contain only `__init__.py`, `__openerp__.py` and the XML files.

Here is a simple example to remove the `EAN13` field from the product view.

---

**`__init__.py`** empty file

---

**`__openerp__.py`**:

```
{
    "name" : "View Customization Test",
    "version" : "1.0",
    "category" : "Generic Modules/Inventory Control",
    'depends' : ['product',],
    "update_xml" : ["product.xml",],
    "installable": True,
    "active": True
}

```

---

**`product.xml`**:

```
<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
    <record model="ir.ui.view" id="view_product_form_custom">
      <field name="name">product.form.inherit2</field>
      <field name="model">product.product</field>
      <field name="inherit_id" ref="product.product_normal_form_view" />
      <field name="arch" type="xml">
        <field name="ean13" position="replace" />
      </field>
    </record>
  </data>
</openerp>

```
Of course there is. You can create your custom module and install it. See the basics in the [official docs](http://doc.openerp.com/v6.1/developer/03_modules_1.html). The [Technical Memento](http://doc.openerp.com/memento/OpenERP_Technical_Memento_v0.6.4_A4.pdf) is also something you should have at hand.

This makes it a lot easier to develop and test in a development environment, and afterwards copy and install in the production environment.