[wingide-users] Plone 4 with zope 2.12

Jason Mehring nrgaway at yahoo.com
Thu Sep 9 15:17:56 MDT 2010


In order to successfully use encolpe's WindDBG egg with Plone 4 I had to do the 
following:

I created a wing.cfg configuration file which I extend from my main buildout.  
This also assumes mr.developer is installed from main buildout:

#
# Wing IDE zope/plone debugging support
#
[buildout]
auto-checkout += WingDBG
eggs += WingDBG

[instance]
enable-product-installation = on 
eggs += WingDBG
zcml += WingDBG

[sources]
WingDBG = hg http://bitbucket.org/encolpe/wingdbg

# Once I have the egg, I comment out above and use filesystem copy, since I make 
changes
WingDBG = fs WingDBG

Now since the WingDBG can not be stored in control panel in zope 2.12, there is 
no link to it, so here is the URL you use to access the WingDBG contol panel.  
Note that changes you make will be lost every thime server is reloaded for the 
same reason.:

http://localhost:8080/Control_Panel/WingDebugService/manage_main

Now, I used to get this error:

AttributeError: _v_ft

That is because script debugging does not seem to work with Plone 4, so in order 
to fix that problem, go into the "advanced' settings box in wing control panel 
and uncheck the flag that activated script debugging BEFORE you start the 
server.  Again you will need to do this every time you restart the server since 
setting are not saved, or just hack the WingDBG code like I do:

To start WingDBG automatically and connect to your IDE modify these files 
located in src/WindDBG/WingDBG:

__init__.py:  
At line 41 add this:

wds.auto_start = True
wds.connect_at_start = True

[heres a code snippet]
    wds = cp._getOb(WingDBG.WingDebugService.id)
    wds.auto_start = True
    wds.connect_at_start = True
    if wds.auto_start:
        try:
            wds.startDebugger()
        except ConflictError:


WingDBG.py: (very important to make this modification to disable script 
debugging):
At line 252 add this:

self.script_support = False

[heres a code snippet]
# Install script debugging patch if requested
        self.script_support = False
        if self.script_support:
            ScriptDebugging.patch()

Well, the hack is not too pretty, but will at least get you up and running until 
someone figure out how to place the WingDBG control panel somewhere else.

Happy debugging!

Jason





More information about the wingide-users mailing list