SlideShare a Scribd company logo
1 of 19
Download to read offline
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Questions?
Thank you!

More Related Content

Similar to Howtocustomizeviewsmenuesofopenerponlineinasustainablewayfredericgilson 130709033833-phpapp02

exploring_a03_grader_h3.accdb (solution)
exploring_a03_grader_h3.accdb (solution)exploring_a03_grader_h3.accdb (solution)
exploring_a03_grader_h3.accdb (solution)JackCandtona
 
Porfolio of Setfocus work
Porfolio of Setfocus workPorfolio of Setfocus work
Porfolio of Setfocus workKevinPSF
 
Dynamic_UI_Concepts_version_2.pdf
Dynamic_UI_Concepts_version_2.pdfDynamic_UI_Concepts_version_2.pdf
Dynamic_UI_Concepts_version_2.pdfJoeRodriguez477329
 
Migrate Custom data/object in SAP S/4 HANA
Migrate Custom data/object in SAP S/4 HANA Migrate Custom data/object in SAP S/4 HANA
Migrate Custom data/object in SAP S/4 HANA Ashish Saxena
 
Tech ed 2012 eim260 modeling in sap hana-exercise
Tech ed 2012 eim260   modeling in sap hana-exerciseTech ed 2012 eim260   modeling in sap hana-exercise
Tech ed 2012 eim260 modeling in sap hana-exerciseLuc Vanrobays
 
Cbse computer science (c++) class 12 board project bank managment system
Cbse computer science (c++)  class 12 board project  bank managment systemCbse computer science (c++)  class 12 board project  bank managment system
Cbse computer science (c++) class 12 board project bank managment systempranoy_seenu
 
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling Sencha
 
Inventory management system
Inventory management systemInventory management system
Inventory management systemALMAHMUD420
 
Apex enterprise patterns
Apex enterprise patternsApex enterprise patterns
Apex enterprise patternsAmit Jain
 
SetFocus SQL Portfolio
SetFocus SQL PortfolioSetFocus SQL Portfolio
SetFocus SQL Portfoliogeometro17
 
Cbsecomputersciencecclass12boardproject bankmanagmentsystem-180703065625-conv...
Cbsecomputersciencecclass12boardproject bankmanagmentsystem-180703065625-conv...Cbsecomputersciencecclass12boardproject bankmanagmentsystem-180703065625-conv...
Cbsecomputersciencecclass12boardproject bankmanagmentsystem-180703065625-conv...sriram sarwan
 
How to embed reporting into your asp.net core web applications
How to embed reporting into your asp.net core web applications How to embed reporting into your asp.net core web applications
How to embed reporting into your asp.net core web applications Concetto Labs
 
Transforming Feature Ideas into Machine Learning Inputs
Transforming Feature Ideas into Machine Learning InputsTransforming Feature Ideas into Machine Learning Inputs
Transforming Feature Ideas into Machine Learning InputsFeatureByte
 
Data Science training in Bangalore - Learnbay.in
Data Science training in Bangalore - Learnbay.inData Science training in Bangalore - Learnbay.in
Data Science training in Bangalore - Learnbay.inKrishna Kumar
 
Advanced Remarketing in Google Analytics Using CRM Data
Advanced Remarketing in Google Analytics Using CRM DataAdvanced Remarketing in Google Analytics Using CRM Data
Advanced Remarketing in Google Analytics Using CRM Datametricmogul
 
Warranty processing recall bbp
Warranty processing recall bbpWarranty processing recall bbp
Warranty processing recall bbpvinayk_35919
 
T3SolutionsTeamProjectPowerPointforFinancialApplication (1)
T3SolutionsTeamProjectPowerPointforFinancialApplication (1)T3SolutionsTeamProjectPowerPointforFinancialApplication (1)
T3SolutionsTeamProjectPowerPointforFinancialApplication (1)Katherine Shelton
 
Binding to multiple datasources on a single xPage
Binding to multiple datasources on a single xPageBinding to multiple datasources on a single xPage
Binding to multiple datasources on a single xPagedominion
 
iOS Contact List Application Tutorial
iOS Contact List Application TutorialiOS Contact List Application Tutorial
iOS Contact List Application TutorialIshara Amarasekera
 

Similar to Howtocustomizeviewsmenuesofopenerponlineinasustainablewayfredericgilson 130709033833-phpapp02 (20)

exploring_a03_grader_h3.accdb (solution)
exploring_a03_grader_h3.accdb (solution)exploring_a03_grader_h3.accdb (solution)
exploring_a03_grader_h3.accdb (solution)
 
Porfolio of Setfocus work
Porfolio of Setfocus workPorfolio of Setfocus work
Porfolio of Setfocus work
 
Dynamic_UI_Concepts_version_2.pdf
Dynamic_UI_Concepts_version_2.pdfDynamic_UI_Concepts_version_2.pdf
Dynamic_UI_Concepts_version_2.pdf
 
Migrate Custom data/object in SAP S/4 HANA
Migrate Custom data/object in SAP S/4 HANA Migrate Custom data/object in SAP S/4 HANA
Migrate Custom data/object in SAP S/4 HANA
 
Tech ed 2012 eim260 modeling in sap hana-exercise
Tech ed 2012 eim260   modeling in sap hana-exerciseTech ed 2012 eim260   modeling in sap hana-exercise
Tech ed 2012 eim260 modeling in sap hana-exercise
 
Cbse computer science (c++) class 12 board project bank managment system
Cbse computer science (c++)  class 12 board project  bank managment systemCbse computer science (c++)  class 12 board project  bank managment system
Cbse computer science (c++) class 12 board project bank managment system
 
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
 
Inventory management system
Inventory management systemInventory management system
Inventory management system
 
Apex enterprise patterns
Apex enterprise patternsApex enterprise patterns
Apex enterprise patterns
 
SetFocus SQL Portfolio
SetFocus SQL PortfolioSetFocus SQL Portfolio
SetFocus SQL Portfolio
 
Cbsecomputersciencecclass12boardproject bankmanagmentsystem-180703065625-conv...
Cbsecomputersciencecclass12boardproject bankmanagmentsystem-180703065625-conv...Cbsecomputersciencecclass12boardproject bankmanagmentsystem-180703065625-conv...
Cbsecomputersciencecclass12boardproject bankmanagmentsystem-180703065625-conv...
 
Shubham.Cv
Shubham.CvShubham.Cv
Shubham.Cv
 
How to embed reporting into your asp.net core web applications
How to embed reporting into your asp.net core web applications How to embed reporting into your asp.net core web applications
How to embed reporting into your asp.net core web applications
 
Transforming Feature Ideas into Machine Learning Inputs
Transforming Feature Ideas into Machine Learning InputsTransforming Feature Ideas into Machine Learning Inputs
Transforming Feature Ideas into Machine Learning Inputs
 
Data Science training in Bangalore - Learnbay.in
Data Science training in Bangalore - Learnbay.inData Science training in Bangalore - Learnbay.in
Data Science training in Bangalore - Learnbay.in
 
Advanced Remarketing in Google Analytics Using CRM Data
Advanced Remarketing in Google Analytics Using CRM DataAdvanced Remarketing in Google Analytics Using CRM Data
Advanced Remarketing in Google Analytics Using CRM Data
 
Warranty processing recall bbp
Warranty processing recall bbpWarranty processing recall bbp
Warranty processing recall bbp
 
T3SolutionsTeamProjectPowerPointforFinancialApplication (1)
T3SolutionsTeamProjectPowerPointforFinancialApplication (1)T3SolutionsTeamProjectPowerPointforFinancialApplication (1)
T3SolutionsTeamProjectPowerPointforFinancialApplication (1)
 
Binding to multiple datasources on a single xPage
Binding to multiple datasources on a single xPageBinding to multiple datasources on a single xPage
Binding to multiple datasources on a single xPage
 
iOS Contact List Application Tutorial
iOS Contact List Application TutorialiOS Contact List Application Tutorial
iOS Contact List Application Tutorial
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Howtocustomizeviewsmenuesofopenerponlineinasustainablewayfredericgilson 130709033833-phpapp02

  • 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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