#!/dev/null # # (c) 1999 M.T.G. Handelsges.m.b.H. # # This module is only an experimental Extension module to play around with ZClass internals. # import string def fetchzclass(REQUEST,prefix=""): rg=REQUEST.get PARENTS=rg("PARENTS") product=rg(prefix+"product") zclass=rg(prefix+"zclass") app=PARENTS[-1] prod=getattr(app.Control_Panel.Products,product) zc=getattr(prod,zclass) return zc def strbases(zc): r=[] for i in zc._zbases: r.append(str(i)) return string.join(r,"\n") def show(self,REQUEST): "This shows the bases of zclass in product." zc=fetchzclass(REQUEST) return strbases(zc) def copybases(self,REQUEST): "this copies the bases from class srczclass in srcproduct to dstzclass in dstproduct." src_class=fetchzclass(REQUEST,"src") dst_class=fetchzclass(REQUEST,"dst") dst_class._setBasesHoldOnToYourButts(src_class._zbases[1:]) rg=REQUEST.get get_transaction().note("Copied baseclasses from %s[%s] to %s[%s]." % (rg("srcproduct"),rg("srczclass"),rg("dstproduct"),rg("dstzclass"))) return strbases(dst_class)