Show
Ignore:
Timestamp:
06/04/08 20:44:17 (2 years ago)
Author:
JensDiemer
Message:

change some debug handling/concept and user feedback around the plugin management.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pylucid/PyLucid/system/plugin_manager.py

    r1612 r1630  
    2727from django.conf import settings 
    2828 
    29 from django.db import connection 
    3029from django.db.models import Model 
     30from django.db import connection, transaction 
     31from django.utils.safestring import mark_safe 
     32from django.utils.translation import ugettext as _ 
    3133from django.core.management.sql import sql_model_create, \ 
    3234                                    sql_indexes_for_model, custom_sql_for_model 
     
    6567        return 
    6668 
    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) 
    7270#    request.page_msg(plugin_config.plugin_manager_data) 
    7371    try: 
     
    108106    URLs.current_plugin = plugin_name 
    109107 
    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) 
    112109 
    113110    plugin_class = getattr(plugin_module, plugin_name) 
    114 #    print plugin_class, type(plugin_class) 
     111#    page_msg(plugin_class, type(plugin_class) 
    115112    class_instance = plugin_class(context, local_response) 
    116113    unbound_method = getattr(class_instance, method_name) 
     
    127124    run the plugin with and without errorhandling 
    128125    """ 
    129 #    print "plugin_manager.run():", plugin_name, method_name, url_args, method_kwargs 
     126#    page_msg("plugin_manager.run():", plugin_name, method_name, url_args, method_kwargs 
    130127    request = context["request"] 
    131128    try: 
     
    145142        request.page_msg.red("%s:" % msg) 
    146143        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())) 
    148145        return msg + "(Look in the page_msg)" 
    149146 
     
    208205 
    209206 
    210 def create_plugin_tables(plugin, extra_verbose): 
     207def create_plugin_tables(plugin, page_msg, verbose): 
    211208    plugin_models = Plugin.objects.get_plugin_models( 
    212209        plugin.package_name, 
    213210        plugin.plugin_name, 
    214         debug=extra_verbose, 
     211        page_msg, verbose 
    215212    ) 
    216213    if not plugin_models: 
    217         # Plugin has no models 
     214        if verbose>1: 
     215            page_msg.green(_("Plugin has no models, ok.")) 
    218216        return 
    219217 
    220218    statements = get_create_table(plugin_models) 
     219 
    221220    cursor = connection.cursor() 
    222221    for statement in statements: 
    223         #print repr(statement) 
     222        if verbose>1: 
     223            page_msg(statement) 
    224224        cursor.execute(statement) 
    225225 
    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 
     230def _install_plugin(package_name, plugin_name, plugin_config, page_msg, 
     231                                                            verbose, active): 
    229232    """ 
    230233    insert a plugin/plugin in the 'plugin' table 
    231234    """ 
    232     if extra_verbose: 
    233         print "Install %s.%s..." % (package_name, plugin_name), 
    234  
    235235    plugin = Plugin.objects.create( 
    236236        package_name = package_name, 
     
    245245    pref_form = getattr(plugin_config, "PreferencesForm", None) 
    246246    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) 
    249250 
    250251    plugin.save() 
    251     if extra_verbose: 
    252         print "OK, ID:", plugin.id 
    253  
    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) 
    255256 
    256257    return plugin 
     
    258259 
    259260 
    260 from django.db import transaction 
    261261 
    262262@transaction.commit_on_success 
    263 def install_plugin(package_name, plugin_name, debug, active, 
    264                                                         extra_verbose=False): 
     263def install_plugin(package_name, plugin_name, page_msg, verbose, active=False): 
    265264    """ 
    266265    Get the config object from disk and insert the plugin into the database 
    267266    """ 
    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: 
    270269        obsolete_test = ( 
    271270            hasattr(plugin_config, "__important_buildin__") or 
     
    273272        ) 
    274273        if obsolete_test: 
    275             print "*** DeprecationWarning: ***" 
    276             print ( 
     274            page_msg("*** DeprecationWarning: ***") 
     275            page_msg( 
    277276                " - '__important_buildin__'" 
    278277                " or '__essential_buildin__'" 
     
    281280 
    282281    plugin = _install_plugin( 
    283         package_name, plugin_name, plugin_config, active, extra_verbose 
     282        package_name, plugin_name, plugin_config, page_msg, verbose, active 
    284283    ) 
    285284    return plugin 
    286285 
    287286 
    288 def auto_install_plugins(debug, extra_verbose=True): 
     287def auto_install_plugins(debug, page_msg, verbose=True): 
    289288    """ 
    290289    Install all internal plugin how are markt as important or essential. 
     
    294293    for path_cfg in settings.PLUGIN_PATH: 
    295294        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 
     298def _auto_install_plugins(debug, path_cfg, page_msg, verbose): 
    300299    package_name = ".".join(path_cfg["path"]) 
    301300 
     
    304303 
    305304    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" % ( 
    308307                path_cfg["type"], plugin_name 
    309308            ) 
     309            page_msg(msg) 
    310310 
    311311        try: 
    312312            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 
    315314            ) 
    316         except Exception, e: 
     315        except Exception, err: 
    317316            # FIXME 
    318             print "Error:" 
     317            page_msg.red("Error: %s" % err) 
    319318            import traceback 
    320             traceback.print_exc() 
     319            page_msg(traceback.format_exc()) 
    321320            continue 
    322321 
    323         if extra_verbose: 
    324             print "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