Changeset 1630 for trunk/pylucid/PyLucid/system/plugin_manager.py
- Timestamp:
- 06/04/08 20:44:17 (2 years ago)
- Files:
-
- 1 modified
-
trunk/pylucid/PyLucid/system/plugin_manager.py (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pylucid/PyLucid/system/plugin_manager.py
r1612 r1630 27 27 from django.conf import settings 28 28 29 from django.db import connection30 29 from django.db.models import Model 30 from django.db import connection, transaction 31 from django.utils.safestring import mark_safe 32 from django.utils.translation import ugettext as _ 31 33 from django.core.management.sql import sql_model_create, \ 32 34 sql_indexes_for_model, custom_sql_for_model … … 65 67 return 66 68 67 plugin_config = get_plugin_config( 68 package_name = plugin.package_name, 69 plugin_name = plugin.plugin_name, 70 debug = request.debug, 71 ) 69 plugin_config = get_plugin_config(plugin.package_name, plugin.plugin_name) 72 70 # request.page_msg(plugin_config.plugin_manager_data) 73 71 try: … … 108 106 URLs.current_plugin = plugin_name 109 107 110 debug = request.user.is_superuser or request.debug 111 plugin_module = get_plugin_module(plugin.package_name, plugin_name, debug) 108 plugin_module = get_plugin_module(plugin.package_name, plugin_name) 112 109 113 110 plugin_class = getattr(plugin_module, plugin_name) 114 # p rintplugin_class, type(plugin_class)111 # page_msg(plugin_class, type(plugin_class) 115 112 class_instance = plugin_class(context, local_response) 116 113 unbound_method = getattr(class_instance, method_name) … … 127 124 run the plugin with and without errorhandling 128 125 """ 129 # p rint"plugin_manager.run():", plugin_name, method_name, url_args, method_kwargs126 # page_msg("plugin_manager.run():", plugin_name, method_name, url_args, method_kwargs 130 127 request = context["request"] 131 128 try: … … 145 142 request.page_msg.red("%s:" % msg) 146 143 import sys, traceback 147 request.page_msg( "<pre>%s</pre>" % traceback.format_exc())144 request.page_msg(mark_safe("<pre>%s</pre>" % traceback.format_exc())) 148 145 return msg + "(Look in the page_msg)" 149 146 … … 208 205 209 206 210 def create_plugin_tables(plugin, extra_verbose):207 def create_plugin_tables(plugin, page_msg, verbose): 211 208 plugin_models = Plugin.objects.get_plugin_models( 212 209 plugin.package_name, 213 210 plugin.plugin_name, 214 debug=extra_verbose,211 page_msg, verbose 215 212 ) 216 213 if not plugin_models: 217 # Plugin has no models 214 if verbose>1: 215 page_msg.green(_("Plugin has no models, ok.")) 218 216 return 219 217 220 218 statements = get_create_table(plugin_models) 219 221 220 cursor = connection.cursor() 222 221 for statement in statements: 223 #print repr(statement) 222 if verbose>1: 223 page_msg(statement) 224 224 cursor.execute(statement) 225 225 226 227 def _install_plugin(package_name, plugin_name, plugin_config, active, 228 extra_verbose): 226 if verbose: 227 page_msg.green(_("%i plugin models installed.") % len(statements)) 228 229 230 def _install_plugin(package_name, plugin_name, plugin_config, page_msg, 231 verbose, active): 229 232 """ 230 233 insert a plugin/plugin in the 'plugin' table 231 234 """ 232 if extra_verbose:233 print "Install %s.%s..." % (package_name, plugin_name),234 235 235 plugin = Plugin.objects.create( 236 236 package_name = package_name, … … 245 245 pref_form = getattr(plugin_config, "PreferencesForm", None) 246 246 if pref_form: 247 # plugin module has a preferences newform class 248 plugin.init_pref_form(pref_form, debug=extra_verbose) 247 if verbose>1: 248 page_msg("Found a preferences newform class.") 249 plugin.init_pref_form(pref_form, page_msg, verbose) 249 250 250 251 plugin.save() 251 if extra_verbose:252 p rint "OK, ID:", plugin.id253 254 create_plugin_tables(plugin, extra_verbose)252 if verbose>1: 253 page_msg("OK, ID:", plugin.id) 254 255 create_plugin_tables(plugin, page_msg, verbose) 255 256 256 257 return plugin … … 258 259 259 260 260 from django.db import transaction261 261 262 262 @transaction.commit_on_success 263 def install_plugin(package_name, plugin_name, debug, active, 264 extra_verbose=False): 263 def install_plugin(package_name, plugin_name, page_msg, verbose, active=False): 265 264 """ 266 265 Get the config object from disk and insert the plugin into the database 267 266 """ 268 plugin_config = get_plugin_config(package_name, plugin_name , debug)269 if extra_verbose:267 plugin_config = get_plugin_config(package_name, plugin_name) 268 if verbose>1: 270 269 obsolete_test = ( 271 270 hasattr(plugin_config, "__important_buildin__") or … … 273 272 ) 274 273 if obsolete_test: 275 p rint "*** DeprecationWarning: ***"276 p rint(274 page_msg("*** DeprecationWarning: ***") 275 page_msg( 277 276 " - '__important_buildin__'" 278 277 " or '__essential_buildin__'" … … 281 280 282 281 plugin = _install_plugin( 283 package_name, plugin_name, plugin_config, active, extra_verbose282 package_name, plugin_name, plugin_config, page_msg, verbose, active 284 283 ) 285 284 return plugin 286 285 287 286 288 def auto_install_plugins(debug, extra_verbose=True):287 def auto_install_plugins(debug, page_msg, verbose=True): 289 288 """ 290 289 Install all internal plugin how are markt as important or essential. … … 294 293 for path_cfg in settings.PLUGIN_PATH: 295 294 if path_cfg["auto_install"] == True: 296 _auto_install_plugins(debug, path_cfg, extra_verbose)297 298 299 def _auto_install_plugins(debug, path_cfg, extra_verbose):295 _auto_install_plugins(debug, path_cfg, page_msg, verbose) 296 297 298 def _auto_install_plugins(debug, path_cfg, page_msg, verbose): 300 299 package_name = ".".join(path_cfg["path"]) 301 300 … … 304 303 305 304 for plugin_name in plugin_list: 306 if extra_verbose:307 print"\n\ninstall '%s' plugin: *** %s ***\n" % (305 if verbose>1: 306 msg= "\n\ninstall '%s' plugin: *** %s ***\n" % ( 308 307 path_cfg["type"], plugin_name 309 308 ) 309 page_msg(msg) 310 310 311 311 try: 312 312 install_plugin( 313 package_name, plugin_name, debug, 314 active=True, extra_verbose=extra_verbose 313 package_name, plugin_name, debug, page_msg, verbose, active=True 315 314 ) 316 except Exception, e :315 except Exception, err: 317 316 # FIXME 318 p rint "Error:"317 page_msg.red("Error: %s" % err) 319 318 import traceback 320 traceback.print_exc()319 page_msg(traceback.format_exc()) 321 320 continue 322 321 323 if extra_verbose:324 p rint "OK, plugins installed."325 326 327 328 329 330 331 322 if verbose>1: 323 page_msg("OK, plugins installed.") 324 325 326 327 328 329 330