Changeset 1548 for trunk/pylucid/PyLucid/system/plugin_manager.py
- Timestamp:
- 05/01/08 12:24:21 (23 months ago)
- Files:
-
- 1 modified
-
trunk/pylucid/PyLucid/system/plugin_manager.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pylucid/PyLucid/system/plugin_manager.py
r1544 r1548 34 34 from django.http import HttpResponse, Http404 35 35 36 from PyLucid.db.preferences import Preferences, preference_cache, \ 37 PreferenceDoesntExist 36 #from PyLucid.db.preferences import Preferences, preference_cache, PreferenceDoesntExist 38 37 from PyLucid.system.plugin_import import get_plugin_module, get_plugin_config 39 38 from PyLucid.system.exceptions import * … … 112 111 URLs.current_plugin = plugin_name 113 112 114 plugin_module = get_plugin_module(request, plugin.package_name, plugin_name) 115 116 if plugin_name in preference_cache: 117 context.preferences = preference_cache[plugin_name] 118 else: 119 if hasattr(plugin_module, "PreferencesForm"): 120 # Get the preferences dict data from the database 121 try: 122 p = Preferences() 123 p.set_plugin(plugin) 124 p.load_from_db() 125 context.preferences = p.data_dict 126 except PreferenceDoesntExist, e: 127 error("Can't get preferences: %s" % e) 128 return 129 else: 130 # plugin has no preferences 131 context.preferences = None 113 debug = request.user.is_superuser or request.debug 114 plugin_module = get_plugin_module(plugin.package_name, plugin_name, debug) 132 115 133 116 plugin_class = getattr(plugin_module, plugin_name) 117 # print plugin_class, type(plugin_class) 134 118 class_instance = plugin_class(context, local_response) 135 119 unbound_method = getattr(class_instance, method_name) … … 216 200 217 201 218 def _install_plugin( package_name, plugin_name, plugin_config, active,202 def _install_plugin(request, package_name, plugin_name, plugin_config, active, 219 203 extra_verbose): 220 204 """ … … 223 207 if extra_verbose: 224 208 print "Install %s.%s..." % (package_name, plugin_name), 209 225 210 plugin = Plugin.objects.create( 226 211 package_name = package_name, 227 212 plugin_name = plugin_name, 228 version = plugin_config.__version__,229 213 author = plugin_config.__author__, 230 214 url = plugin_config.__url__, 231 215 description = plugin_config.__description__, 232 long_description = plugin_config.__long_description__,233 216 can_deinstall = getattr(plugin_config, "__can_deinstall__", True), 234 217 active = active, 235 218 ) 219 debug = request.user.is_superuser or request.debug 220 plugin_module = get_plugin_module(package_name, plugin_name, debug) 221 pref_form = getattr(plugin_module, "PreferencesForm", None) 222 if pref_form: 223 # plugin module has a preferences newform class 224 plugin.init_pref_form(pref_form) 225 226 236 227 plugin.save() 237 228 if extra_verbose: … … 239 230 return plugin 240 231 241 242 def _insert_preferences(request, plugin, package_name, plugin_name):243 """244 insertet the initial values from the newforms preferences class into the245 database.246 """247 plugin_module = get_plugin_module(request, package_name, plugin_name)248 249 pref_form = getattr(plugin_module, "PreferencesForm", None)250 if pref_form == None:251 # Has no preferences newform class252 return253 254 p = Preferences()255 p.set_plugin(plugin)256 p.create_initial(pref_form)257 232 258 233 … … 280 255 281 256 plugin = _install_plugin( 282 package_name, plugin_name, plugin_config, active, extra_verbose 257 request, package_name, plugin_name, 258 plugin_config, active, extra_verbose 283 259 ) 284 _insert_preferences(request, plugin, package_name, plugin_name)285 260 286 261 … … 314 289 ) 315 290 except Exception, e: 316 print "Error:", e 291 print "Error:" 292 import traceback 293 traceback.print_exc() 317 294 continue 318 295