1
View Customization
How to customize views & menus
of OpenERP Online
in a sustainable way:
the case of an Expertise Compa...
2
Content
● Goal
● Scope
● What is/Why an inherited view
● Add an existing field
● Add new fields
● Add a 'Group by'
● Ren...
3
Goal
● Use the standard OpenERP
(without any custom module)
● Fully customize the Project
Management interface in order ...
4
Scope
Insured people reports an incident to Broker
Broker reports it to Insurance Company
Insurance company asks for Exp...
5
Customize a view
2 steps to modify a view properly:
● Modify the database structure
Create new fields in the model assoc...
6
Inherited view
What is an inherited view?
Why an inherited view to modify an existing one?
ORIGINAL VIEW
xml record
stor...
7
1. Add an existing field
Add customers' addresses in the list view
● Create an inherited view:
● Object: res.partner
● I...
8
2. Add new fields
Add 'Insured' and 'Broker' checkboxes in the
customer form view (below 'Website')
● Step 1: Edit the d...
9
3. Add a 'Group by'
Add a 'Group by... City' in the customer list
view
● Create a new inherited view
● Object: res.partn...
10
4. Rename menu items
Contextualize the Project menu items
● Rename the main menu item “Project” in “Claims”
● Go to Set...
11
5. Add new menu items
Add 'Insured' and 'Broker' menu items in the
'Claims' menu
● Create two new menu items in the 'Cl...
12
6. Add a new selection field
A mission can be:
● A storm
● A robbery
● A damage
● An accident
Let's modify the view aga...
13
6. Add a new selection field
Add a new 'Incident type' selection field in the
Mission form (below the 'Category' field)...
14
7. Add new m2o fields
An issue has to be associated to:
● An Insurance company
● An expert
● An insured
● A broker
The ...
15
7. Add new m2o fields
Add new fields in the Mission form
● Step 1: Edit the database structure
● Create two new many-to...
16
8. Add new o2m fields
Missions should be directly visible in the customer
form view
● If the customer is an insured: se...
17
8. Add new o2m fields
Add contextual 'Missions' tabs with new o2m fields
in the customer form
● Step 1: Edit the databa...
18
TO SUMMARIZE:
●
We have customized the original Project Management interface to
entirely fit the context of our Expert ...
19
Questions?
Thank you!
Upcoming SlideShare
Loading in …5
×

How to customize views & menues of OpenERP online in a sustainable way. Frederic Gilson, OpenERP

51,923 views

Published on

Published in: Technology, News & Politics
0 Comments
23 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
51,923
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
1,256
Comments
0
Likes
23
Embeds 0
No embeds

No notes for slide

How to customize views & menues of OpenERP online in a sustainable way. Frederic Gilson, OpenERP

  1. 1. 1 View Customization How to customize views & menus of OpenERP Online in a sustainable way: the case of an Expertise Company Fré d é r i c G I LS O N Func tio na l C onsul ta nt a t O penERP Be lgium – Q uick St a r t Te a m O p e n Day s – J u l y 4 t h 2 0 1 3
  2. 2. 2 Content ● Goal ● Scope ● What is/Why an inherited view ● Add an existing field ● Add new fields ● Add a 'Group by' ● Rename menu items ● Add new menu items ● Add a new selection field ● Add new m2o fields ● Add new o2m fields
  3. 3. 3 Goal ● Use the standard OpenERP (without any custom module) ● Fully customize the Project Management interface in order to make it useful and understandable for the customer
  4. 4. 4 Scope Insured people reports an incident to Broker Broker reports it to Insurance Company Insurance company asks for Experts to Our Company Our company manages experts' missions.
  5. 5. 5 Customize a view 2 steps to modify a view properly: ● Modify the database structure Create new fields in the model associated to the original view (in Setting > Technical > Database Structure > Models) Keep the 'x_' syntax in order the field to survive updates! ● Modify the view Add an inherited view (including the new fields) to the original view (in Setting > Technical > User Interface > View)
  6. 6. 6 Inherited view What is an inherited view? Why an inherited view to modify an existing one? ORIGINAL VIEW xml record stored in database (uploaded from sources) INHERITED VIEW new xml record in database ORIGINAL VIEW INHERITED VIEWUPDATED VIEW
  7. 7. 7 1. Add an existing field Add customers' addresses in the list view ● Create an inherited view: ● Object: res.partner ● Inherited view: res.partner.form ● XML architecture:
  8. 8. 8 2. Add new fields Add 'Insured' and 'Broker' checkboxes in the customer form view (below 'Website') ● Step 1: Edit the database structure – Create two new boolean fields in the 'Partner' model: i.e. 'x_insured' & 'x_broker' ● Step 2: Create an inherited view for the form view – Object: res.partner / Inherited view: res.partner.form – XML architecture:
  9. 9. 9 3. Add a 'Group by' Add a 'Group by... City' in the customer list view ● Create a new inherited view ● Object: res.partner / Inherited view: res.partner.select ● XML architecture: ● The view type is automatically set by OpenERP.
  10. 10. 10 4. Rename menu items Contextualize the Project menu items ● Rename the main menu item “Project” in “Claims” ● Go to Settings > User Interface > Menu Items and open the 'Project' item ● In the 'Name' field, click on the translation icon and create/modify the translation ● If you use the default English, you need to create a new translation. So install at least a second language and duplicate the existing translation (from the form view) in order to get automatically the right record ID (mandatory in that case). ● Rename “Issues” in “Missions” ● Etc
  11. 11. 11 5. Add new menu items Add 'Insured' and 'Broker' menu items in the 'Claims' menu ● Create two new menu items in the 'Claims' menu ● Go to Settings > Database Structure > Models and open the 'Partner' item ● Create two new menu items based on this model (at the bottom) in 'Claims': 'Broker' and 'Insured' ● Filter the customer list displayed based on fields added in the customer view (Broker and Insured) ● Click on the 'Insured' item and open 'Edit Action' in the developer menu ● Add a domain value (filter): [('x_insured','=',True)] ● Add a contect value (default value for new records): {"default_x_insured":True} ● Do it the same for the 'Broker' item
  12. 12. 12 6. Add a new selection field A mission can be: ● A storm ● A robbery ● A damage ● An accident Let's modify the view again in order to get a field with a set of predefined items (selection field).
  13. 13. 13 6. Add a new selection field Add a new 'Incident type' selection field in the Mission form (below the 'Category' field) ● Step 1: Edit the database structure ● Create one new field: i.e. 'x_issue_type' (field type: selection) ● Expression: i.e. [('storm','Storm'),('robery','Robery'),('damage','Damage'), ('accident','Accident')] ● Step 2: Create a new inherited view ● Similar definition (inherited from Project Issue Tracker Form) ● XML architecture:
  14. 14. 14 7. Add new m2o fields An issue has to be associated to: ● An Insurance company ● An expert ● An insured ● A broker The two new fields must be related to the 'Partner' object as well. → Contact → Responsible → Missing field → Missing field
  15. 15. 15 7. Add new m2o fields Add new fields in the Mission form ● Step 1: Edit the database structure ● Create two new many-to-one fields in the 'project.issue' model: i.e. 'x_insured' & 'x_broker' (object relation: res.partner) ● Domain for 'x_insured' to filter the available contacts: [('x_insured','=',True)] ● Step 2: Create an inherited view including a tab ● Object: project.issue / Inherited view: Project Issue Tracker Form ● XML architecture: A group divides a tab into two columns!
  16. 16. 16 8. Add new o2m fields Missions should be directly visible in the customer form view ● If the customer is an insured: see the missions wherein he is marked as insured ● If the customer is a borker: see the missions wherein he is marked as broker ● Need of two different tabs which appear depending on the customer type ● Insured = True → new tab “Missions linked to this insured” ● Broker = True → new tab “Missions linked to this broker”
  17. 17. 17 8. Add new o2m fields Add contextual 'Missions' tabs with new o2m fields in the customer form ● Step 1: Edit the database structure ● Create two new one-to-many fields: i.e. 'x_missions_broker' ● Object relation: project.issue / Relation field: x_broker_partner ● Step 2: Create a new inherited view with 2 new tabs ● Object: res.partner / Inherited view: res.partner.form ● XML architecture:
  18. 18. 18 TO SUMMARIZE: ● We have customized the original Project Management interface to entirely fit the context of our Expert Insurance company ● New links between objects without extra module thanks to m2o and o2m fields (i.e. customers & issues, meetings & issues, etc) ● You just need to add short XML views (inspired by existing ones) ● Sustainable thanks to inherited views (will get through updates and migrations) ● TIME SAVING ● SaaS PLATFORM COMPATIBLE 9. Conclusions
  19. 19. 19 Questions? Thank you!

×