openerp r&d
TRANSCRIPT
OpenERP R&D Projects
Introduction
Antony Lesuisse
Agenda: R&D Projects (part 1)
• OpenERP Apps
• Release Policy
• Packaging
• R&D Processes– Bug Reports Lifecycle
– R&D Projects Lifecycle
– Merge proposals Lifecycle
• Web Client v6.1
OpenERP Apps
OpenERP Apps
• Origin: Loempia project by stw, chs
• For end users– User-friendly, easy access to applications
– One Stop Library
• For Community
– Instant mass visibility
– Auto-import of new modules and versions
– Statistics about popularity
– Ownership of code branches
OpenERP Apps
• Categories
• Call for contributions!– update branch layout
• <branch>/<module_name>/__openerp__.py
– update description and screenshots
• Phase out extra-addons
• Future: rating, speed
Release Policy & Packaging
Antony Lesuisse
Release Cycle
Packaging
• Cleanup setup.py
• Nightly Builds
• .rpm packages submitted to Fedora/RedHat
• .deb packages for Debian-based
R&D / Community Processes
Olivier Dony
Daily feedback is huge!
Daily feedback is huge!
Nobody can handle this alone!
• We defined feedback processes– Bug reports
– Feedback
– Merge proposals
• We created dedicated Teams– Qualify the feedback
– Follow-up
• We monitor– Dashboards
– Continuous Improvements
Bug Lifecycle
Bug Lifecycle
Bug Lifecycle
Continuous Testing
Buildbot• Auto branch import
• Full test suite
• Email feedback
buildbot.openobject.com
Runbot• Auto branch import
• Online live install
runbot.openerp.com
Bug Lifecycle
Bug Lifecycle
Monitoring
Full picture OpenERP 2011
R&D Projects Lifecycle
• Project organization– Inception: internal, feedback.openerp.com
– Projects product backlogs
– Project Lead
– Sprint review 2 weeks
– Project branches
• Feature branches (usually one product backlog)
• Merged by project lead
– Project validation
– Merged into trunk
Project Validation Steps
• Keep trunk branch stable
Feature & Merge Proposal Lifecycles
Merge Proposal Monitoring
OpenERP Web Client
Antony Lesuisse
OpenERP Web Client
OpenERP Client Web 6.0
• New design
• Still a classical web 1.0 application
• HTML generated server side
• GET POST
• Some client side Javascript– Mix of serverside and client side
– Unclear semantics
OpenERP Web 6.0 vs 6.1
OpenERP Web 6.1
Web 2.0 HTML5
• Clean architecture
• Fast
• Linkable
• Embeddable
• Modular (chat,mobile,geoviewlist)
• Frontend Framework for ERP based applications
OpenERP Web Architecture
OpenERP Web Architecture
• WebClient Chrome– Header
– Footer
– Login
– Menu
– Loading
OpenERP Web Architecture
• ActionController– ViewManager
• ListView
– ListWidgets
• FormView
– FormWidgets
• GanttView
OpenERP Web Architecture
OpenERP Web Fast
OpenERP Web Fast
OpenERP Web Modularity
OpenERP Web Technical Ecosystem
OpenERP Web addons
OpenERP Web Linkable
OpenERP Web Linkable
• Using hash #url
• Controller serialize() part of their state
• domain.com/#menu/12/crm_lead/24/form
• Controller can unserialize() to restore their state
• Add link icon
OpenERP Web Embeddable
OpenERP Web Embeddable
• Embed button
• <script>generatedcode</script>
• Paste script snippet to paste to any webpage
• No need to interface openerp server.– Share permission using records rules
– JSONP tranport
OpenERP Web Plaform
• Leverage the existing controllers and widget
• Easy access to openerp objects
• Transform existing wizard into web apps
• Example:– POS
– Contact form
– E-commerce shopping cart
– Survey module
OpenERP Web Mobile
• Subclasses the normal controllers
• Use JQuery UI mobile widgets
OpenERP Web Roadmap
• Workshop tomorrow in room– Share your ideas on:
http://pad.openerp.com/webclientimprovements
• Launchpad branch:– lp:~openerp-dev/openobject-client-web/trunk-proto61
– Contributions welcome!
• Roadmap
– 80% done 1.5 month
– 20% will take 50% of total time
– Estimated 1.5 month more
KeynoteOpenERP Vision
Fabien Pinckaers
R&D Strategy
Antony Lesuisse
R&D Strategy
• 3 main types of developments– New features
• Added value for customers
– Usability
• No added value
• Helps new users
– Core improvement
• No visible value for customer
• Long-term productivity
R&D Strategy
Community/Partners
• New features
– Paid by customers
• Usability
– Training cheaper than UI improvements
• Core improvements
– Specific development when needed
• Examples:
– Improvement to 1 YAML test
– Bugfixes
– Medical
– Country-specific payroll
Publisher
• New features
– Only if useful for mass
• Usability
– Publisher's role
• Core improvements
– Major refactoring
• Examples:
– YAML tests for all modules
– Global refactoring
– new Web client
– Generic Payroll
Projects (part 2)
• Projects– Communication and sharing tools: portal, …
– Usability
– Core improvement: emails, import openerp
– Third-party integration
– Payroll
– Point of Sale
Communication & Sharing
Olivier Dony
Sharing Module
• Introduced in v6.0
• Improved in trunk/v6.1
• Web add-on
• Read-only / Full access
• Automatically computes
access rights for
appropriate restrictions
Portal Module
• (Re)-introduced in trunk / v6.1
• Easier setup via share module
• Maintains settings for a group of users:– Access rights and filters
– Dedicated menus
– Homepage widgets
• Example:– New Partner Portal (more on this on Friday!)
Next, in communication tools...
• Email notifications for business flows
• One-click sharing of single documents
• Replacing “internal requests” with emails
• ...
Usability
Fabien Pinckaers
Core improvements
Olivier Dony
Email subsystem: unification
• Before: mix and match of email features:– Core framework (tools.email_send)
– Mail Gateway module (e.g. crm history)
– Email template (marketing campaign)
– Etc..
• Interoperability problem: different models
• No consistency
Email subsystem: unification
• After:– One single model for each concept (mail, server...)
– Layered architecture, each feature at the right
level
“import openerp”
• Promised last year
• Now available in trunk:
• More cleanup coming
Third-party integration
Thibaut François
Vision
● First step : develop comprehensive software
● Second step : Integration with third party
software
– Salesforce
– Sugarcrm
– Quickbook
– …..
Easy to use
• Embedded module, no external scripts
• oriented end user
– No complex configuration
– Simple wizard
• Just provide login, or a file to upload
• Import just what you need
How ?
Connection to Web service
Import data file
Mapping:field, link
Create/updateData in openerp
Enough talk, more demo
Demonstration : Sugarcrm
CRM Workshop
• Workshop tomorrow in room 3
• Share your ideas: http://pad.openerp.com/crm-marketing-plugins
Payroll
Quentin de Paoli
Payroll Project
• Objectives
– Make a generic payroll engine
• Powerfull
• Easy to complete with countries specificities
• Compliant with all payroll concepts possible
• Easy to use
– Proof it's working with « belgian/indian payroll »
modules
• Based on generic payroll
• No need to create specific python code
– Integrate the payroll with the accounting and HR
Payroll Project
• Progress– Generic payroll
engine
– Reporting on
generic payroll
– Belgian/Indian
payroll
– Integration with
accounting
Progress (%)
0
20
40
60
80
100
120
Generic Payroll EngineReporting on generic payrollBelgian payrollIntegration with accounting
Payroll Project - Objects
• Salary Rules– Determines an amount to add/subtract on the
employee payslip
– Determines an amount to be paid to a contribution
register
• Contribution Registers– Third party to whom the amount have to be
paid/collected
Payroll Project - Objects
• Salary Structure– Contains a set a rule
– Hierachical
• Salary Heads
– Groups logically the rules
– Hierachical
Payroll Project - Computing
• Payslip
– Salary can be based on contract wage or worked days/hours
– Connected with holidays
– Multi-contracts
• Rule
– Can be computed using
• Any field on employee/payslip/contract
• Any input in the tab « Worked Days »
• Any rule/head already computed
Payroll Project
• Workshop tomorrow in room 2– Share your knowledge
– Test some of your country specificities
• Give feedback on
http://pad.openerp.com/payroll
Point of Sale
Antoine Huvelle