Advanced List Management

Public Channel / Odoo Experience 2015

How to make complex record selections easy for end-users

Share on Social Networks

Share Link

Use permanent link to share in social media

Share with a friend

Please login to send this presentation by email!

Embed in your website

Select page to start with

3. Donor!Selec2on!on!previous!system!

4. Donor!Selec2on!on!previous!system....!

13. Example!of!sta2c!SQL!unit!query!

14. Example!of!sta2c!SQL!unit!query.......!

16. Scripted!SQL!query...postcodes!in!list!

17. Scripted!SQL!query...postcodes!in!list....!

18. Scripted!SQL!allows!for!op2onal!parameters.....!

19. Parameters!can!look!up!values!for!easy!use!selec2on!

20. Parameters!can!look!up!values!for!easy!use!selec2on...!

21. Parameters!can!look!up!values!for!easy!use!selec2on...!

22. Parameters!can!look!up!values!for!easy!use!selec2on...!

23. Parameters!can!look!up!values!for!easy!use!selec2on...!

24. Real!example!

25. Real!example....!

26. Real!example....!

1. Advanced(List(Management ! Making!complex!record!selec2ons!easy!for!end5users ! !

15. Unit!queries!using!scripted!SQL! !   Scripted!queries!using!Python!allow!for!even!more!flexibility! !   Of!course,!queries!are!strictly!limited!to!select!statements! !   Example...Ability!to!enter!a!list!of!comma!separated!postcodes!(zip!codes)...! !

27. Demonstra2on......! !   Some!examples.......! !   Create!a!list!from!an!advanced!query:!zip=‘3204’,!email!contains!‘@’! !   Demonstrate!advanced!unit!queries!and!lists:!! Unit!query:!“Postcode!Select!(list)”! Chain!query:!“Members!in!Postcode!with!Email!address”! !   Demonstrate:!“155Tax!Appeal:!Current!donors!running”!

10. 7.   New!filter!–!“Donors!with!an!email!address! ! ! ! ! ! 8.   Make!the!unit!query.!Note!that!not!parameters!are!prompted! ! Example!1! (con2nued) :!User!makes!another!filter!! 5!donors!with!email!addresses!

11. 5.   Join!the!unit!queries!–!we!use!simple!join!concepts! ! ! ! ! ! ! 6.   And!then!run!the!chained!query!to!create!!a!list:! ! Example!1! (con2nued) :!Joins!the!unit!queries!into!a!chain!query! “Donors!in!a!par2cular!postcode!with!an!email!address”!

28. Ideas!for!the!future! !   A!“list”!is!just!a!bunch!of!Id’s!! !   So!we!could!have!a!higher!level!of!abstrac2on!that!links!them!to!a! nominated! Odoo !model!and!view! !   This!would!enable!any!model!to!use!the!advanced!search!facili2es!described! here,!e.g.!leads,!opportuni2es,!products!(think!complex!sales!history! queries),!tasks,!etc.......! !   We!will!be!releasing!on!the!OCA!shortly......!

9. 5.   Make!a!parameter!invisible:! ! ! ! ! ! ! ! 6.   Change!the!prompt!for!the!parameter:! ! Example!1! (con2nued) :!User!can! customise !the!prompts!for!the!parameters!

5. The!Challenge! !   Create!a!flexible,!powerful!but!easy!to!use!list! genera2on!tool! !   We!wanted!a!general!purpose!solu2on!that! allowed!specific!and!targeted!queries!to!be! created! !   Ability!for!users!to!design!their!own!dynamic! queries!using! Odoo !advanced!filters! !   Ability!to!use!more!complex!queries!designed! by!technical!staff!using!SQL!and!python!

7. Example!1:!Unit!query!created!from! Odoo’s !advanced!filters! 1.   Using! Odoo’s !advanced!search!the!end!user!creates!a!filter!which!selects! donors!in!a!par2cular!postcode!(zip)!and!who!have!email!addresses! ! ! ! ! ! ! ! ! ! 2.   User!must!then!save!the!filter........! !

2. The!Project!and!Challenge!! !   Replace!a!20+!year!old!donor!management!system!for! Arthri2s!and!Osteoporosis!Victoria!( AoV )!in!Australia! who!are!a!not–for5profit!organisa2on! !   A!major!requirement!was!the!genera2on!of!targeted! lists!of!donors!as!this!is!vital!for!fund5raising! campaigns! !   Old!system!was!“clunky”!but!func2onal!and!the!staff! were!familiar!with!it! !   Donor!lists!were!created!by!answering!hard!coded! ques2ons!across!several!forms:!obscure,!complex!and! rigid!

12. Unit!queries!using!sta2c!SQL! !   User!created!unit!queries!are!limited!to!the!ability!to!select!records!on! “primary”!fields!on!the!partners!table!(although!we!did!create!some!stored! func2onal!fields!for!important!data!so!it!was!easily!accessible)! !   Complex!queries!doing!selects!across!mul2ple!tables!could!be!designed!by! technical!staff!but!could!be!easily!selected!and!combined!with!other!unit! queries! !   These!more!complex!queries!require!a!good!knowledge!and!understanding! of!the!database!schema! !   Of!course!queries!are!strictly!limited!to!select!statements! !   Example.......! !

29. Developers!and!Designers! !   ! Paulius ! Sladkevičius ! !   Richard! DeMeester ! !   Douglas!Parker! !   Terry!Cameron! !   Jonathan!Wilson!

8. 3.   Create!a!new!unit!query!based!on!the! Odoo !advanced!query:! ! ! ! ! ! ! ! ! ! ! ! ! 4.   The!advanced!search!is!just!an!Odoo!domain!and!we!name!the! parameters!! ! Example!1! (con2nued) :!Unit!query!created!from! Odoo’s !advanced!filters!

6. The!Solu2on! “ From%li(le%things%big%things%grow ”! 1.   Make!small!queries!and!allow!users!to!join!them!together! 2.   We!called!these!small!queries!“Unit!Queries”! 3.   Unit!queries!could!be!made!by!end!users!using! Odoo’s !advanced!filters! 4.   Unit!queries!could!be!made!arbitrarily!complex!using!sta2c!or!scripted! SQL!5!these!unit!queries!had!to!be!created!by!technical!staff,!however! could!be!easily!used!by!end5users! 5.   Unit!queries!must!be!easy!to!use!with!all!parameters!prompted!and! where!appropriate!selec2on!lists!provided! 6.   Unit!queries!could!be!joined!together!with!the!basic!set!opera2ons:! union,!intersec2on!and!difference!–!it!was!not!difficult!to!explain!these! basic!opera2ons!to!end5users!

Views

  • 603 Total Views
  • 386 Website Views
  • 217 Embeded Views

Actions

  • 0 Social Shares
  • 0 Likes
  • 0 Dislikes
  • 0 Comments

Share count

  • 0 Facebook
  • 0 Twitter
  • 0 LinkedIn
  • 0 Google+

Embeds 2

  • 2 www.odoo.com
  • 2 www.tinyerp.org