whoops replace: plugin_py_template_path = os.path.join(current_app,'static','plugin_plugin','template_plugin_plugin_py')
with: controller_py_template_path = os.path.join(current_app,'static','plugin_plugin','template_plugin_controller_py') sorry... On May 6, 7:31 am, Christopher Steel <chris.st...@gmail.com> wrote: > 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 applicationhttp://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 > >