The effect is similar (but the method is not the same) to creating a
new Web2py application from the Welcome application only we are doing
it with plugins using templates so the new plugin comes with as
standard skeleton which includes menus, plugin_config and plugin admin
users and whatever else you want in the plugins you generate...

pip install mako
launch web2py
create a new application
http://code.google.com/p/uc-plugin-dev/downloads/
install the plugin plugin_plugin
reload webpage
go to new menu item called "plugin menu"
choose plugin menu -> plugin options -> create plugin
refresh the web page and now you will have  a new menu item called:
plugin_uc_test001 that corresponds to the new plugin in the plugin
section of the Web2py web interface.

I would love to replace the mako and use the Web2py templating system
instead. It works like this now:

def ensure_file(path,content=None):
    '''If file does not exist create it'''

def ensure_dir(path):
    '''if directory does not exist create it'''

plugin_py_template_path  =
os.path.join(current_app,'static','plugin_plugin','template_plugin_plugin_py')
other templates as desired...

def create_plugin():
    plugin_name =   ''
    spacer      =   '_'
    prefix      =   'plugin'
    cat         =   'uc'
    flav        =   'test001'
    plugin_name =   prefix  +   spacer  +   cat +  spacer  +   flav
    controller  =   os.path.join(current_app,'controllers',plugin_name
+ '.py')
    controller_py_template =
Template(filename=controller_py_template_path)
    controller_py_content =
controller_py_template.render(plugin_name=plugin_name)
    ensure_file(controller,content=controller_py_content)
    message = '''
    You ran the create_plugin plugin and it probably worked.
    If it did you should see a new menu item after refreshing your
browser
    '''
    return dict(message=message)

On May 5, 11:30 pm, Massimo Di Pierro <massimo.dipie...@gmail.com>
wrote:
> good.
>
> I am lost about the second part. What is plugin generator?
>
> On May 5, 10:17 pm, Christopher Steel <chris.st...@gmail.com> wrote:
>
> > Thanks Massimo, That was a really good call! I think I messed things
> > up while I was creating a prototype for an automated plugin creator
> > made some, um, adjustments so that my generated plugins where really
> > organized, but apparently not functioning as expected because I forgot
> > about that little exception with the model file and not files. LOL, I
> > go t confused trying to make things clearer...
>
> > and perhaps I noticed a similar effect when checking out the
> > powerpack, hummm, how very interesting but unexpected.
>
> > This is what my plugin generator and the resulting plugins looked like
> > before:
>
> > plugin_uc_plugin.py
> > plugin_uc_plugin/initialization.py
> > plugin_uc_plugin/menu.py
>
> > in the above case a response.menu += [ bla bla] in plugin_uc_plugin/
> > menu.py does NOT show up when visiting  
> > http://127.0.0.1:8000/app/default/index.html
> > but does show up when 
> > visitinghttp://127.0.0.1:8000/app/plugin_uc_plugin/index
>
> > If you consolidating the contents of plugin_uc_plugin/menu.py into
> > plugin_uc_plugin.py a response.menu += [ bla bla] will show up 
> > inhttp://127.0.0.1:8000/app/default/index.html
>
> > I have not experimented with the contents of plugin_uc_plugin/
> > initialization.py yet but that could be interesting as well...
>
> > the test plugin generator, plugin_plugin will generate a plugin called
> > plugin_font_gothic with the following three files in the models if you
> > want to check uut the effect. the menu.py has assignes the menus to
> > response.menu += [ my menus ] as well:
>
> > plugin_font_gothic.py
> > plugin_font_gothic/initialization.py
> > plugin_font_gothic/menu.py
> > ...
>
> > If you want to check it out the beginnings of a plugin to create
> > plugins you can check it out here for now. if anyone has an idea of
> > how to implement Web2py templates rather than using mako templates I
> > can remove that dependence which could be nice since mako seems to
> > have trouble dealling with two or more hash signs -> ##, for now
> > something like:
>
> > pip install mako
> > hg clonehttps://uc-theme-dev.googlecode.com/hg/uc_theme_dev
>
> > will get you going.
>
> > I will move the plugin here after a little more cleanup.
>
> > hg clonehttps://uc-plugin-dev.googlecode.com/hg/uc_plugin_dev
>
> > Christopher Steel
>
> > On May 5, 9:27 pm, Massimo Di Pierro <massimo.dipie...@gmail.com>
> > wrote:
>
> > > I doubt this is an issue with the new import or the new gluon.current
> > > tread local object.
> > > This is probably to the new use of subfolder in models.
> > > Do you have subfolders under models/ ?
>
> > > On May 5, 7:52 pm, Christopher Steel <chris.st...@gmail.com> wrote:
>
> > > > my menu.py in my plugin no longer show up at the apps index and only
> > > > display "in" the plugin directory. Is this due to the new current
> > > > scope? Is their a way to get this working again or a "current scope"
> > > > toggle ? I have a lot of plugins that use this for menu's so any help
> > > > on this is very appreciated.
>
> > > > Thanks,
>
> > > > Chris
>
> > > > example, before using something like
>
> > > > response.menu+= [bla bla]
>
> > > > in a plugin added the plugin menu to the main menu and it showed up
> > > > at:
>
> > > >  http://127.0.0.1:8000/blank/default/index
>
> > > > Now it only shows up "in" the plugin, for example here:
>
> > > >  http://127.0.0.1:8000/blank/plugin_uc_language/index
>
> > > > but no longer shows up here:
>
> > > >  http://127.0.0.1:8000/blank/default/index
>
> > > > SO it does not work with 1.95.1 (2011-05-05 15:15:00)
> > > > but does work with 1.95.1 (2011-04-27 ..:..:..)
>
> > > > On May 4, 5:29 pm, Bruno Rocha <rochacbr...@gmail.com> wrote:
>
> > > > > I am testing right now, at this point I have 2 apps running with no
> > > > > problems!
>
> > > > > models subfolder, custom importer and current scope are great 
> > > > > improvements
> > > > > to web2py, I am waiting to rely on this for the app I am working now.
>
> > > > > Thank you Massimo and Jonathan (of course all the other 
> > > > > collaborators),
> > > > > @web2py "the framework that evolves every two weeks"
>
> > > > > --
> > > > > Bruno Rocha
> > > > > [ About me:http://zerp.ly/rochacbruno]
>
> > > > > On Wed, May 4, 2011 at 6:09 PM, Massimo Di Pierro
> > > > > <mdipie...@cs.depaul.edu>wrote:
>
> > > > > > Hello everybody....
>
> > > > > > Jonathan and I have been working on an internal web2py rewrite that 
> > > > > > while
> > > > > > keeping everything backward compatible will allow you to do this
>
> > > > > > ==== modules/mymodule.py
> > > > > > from gluon import *
> > > > > > def f(): return DIV(A(current.request.function,_href=URL()))
> > > > > > ==== end
>
> > > > > > ==== default/controller.py
> > > > > > def index():
> > > > > >    from mymodule import f
> > > > > >    return dict(div=f())
> > > > > > ==== end
>
> > > > > > Thanks to Pierre we can now import modules from the app local folder
> > > > > > without local_import and thanks to Jonathan those modules only need 
> > > > > > to do
> > > > > > "from gluon import *" to see everything web2py has to offer. This 
> > > > > > should
> > > > > > make life easier for Eclipse users too.
>
> > > > > > In models/db.py you no longer need to pass globals() to Auth
>
> > > > > >   auth=Auth(globals(),db)
> > > > > > or
> > > > > >   auth=Auth(db)
>
> > > > > > both work.
>
> > > > > > Also error messages in validators (including default error 
> > > > > > messages) should
> > > > > > not be by T(...) by default.
>
> > > > > > This is now in trunk but we are still working on it. This means 
> > > > > > trunk may
> > > > > > not very stable for the next day or two.
> > > > > > Meanwhile help us test it. In particular help us test if we are 
> > > > > > breaking
> > > > > > your apps.
>
> > > > > > Massimo
>
>

Reply via email to