id,summary,reporter,owner,description,type,status,priority,component,severity,resolution,keywords,cc,release
8979,[PATCH] macro config=xxx argument_ trac.ini option lookup with inheritance,bof,ChrisNelson,As discussed shortly in #8704_ here is a patch providing inheritable option\r\nlookup and defaulting.\r\n\r\n'''NOTE:''' depends on the newly created TracMacroConfigPlugin. I'm unsure whether that dependency can somehow be handled automatically in setup.py - there seem to be some options related to that_ but I have not yet played with them.\r\n\r\nWith this patch applied_ the configuration can contain something like this:\r\n\r\n{{{\r\n[trac-jsgantt]\r\noption.inherit = base\r\nbase.userMap = 0\r\nbase.omitMilestones = 1\r\nbase.dateDisplay = yyyy-mm-dd\r\nmini.inherit = base\r\nmini.startDate = 0\r\nmini.endDate = 0\r\nmini.res = 0\r\nmini.dur = 0\r\nmini.comp = 0\r\nmini.lwidth = 256\r\n}}}\r\n\r\nA macro call with only TracQuery arguments_ or other but not all macro arguments_ will then take its full option list from the ''option.xxx'' option set_ which immediately inherits them all from ''base.xxx'' for the sake of exposition.\r\n\r\nAdditionally_ a macro call written as {{{[[TracJSGanttChart(config=mini)]]}}}_ will take its options from the ''mini.xxx'' settings (which also inherit some from ''base.xxx'')\r\n\r\nIt is even possible to write something like {{{[[TracJSGanttChart(config=mini|foobar)]]}}}\r\nto get ''multiple inheritance'' from ''mini.xxx''_ and from ''foobar.xxx'' when missing from the ''mini.'' path. Such multiple inheritance is also supported within trac.ini for the ''xxx.inherit = a|b'' options.\r\n\r\n(tested under 0.11.7 and 0.12.2)\r\n,enhancement,new,normal,TracJsGanttPlugin,normal,,,rjollos,0.11
