Changeset 1706
- Timestamp:
- 07/23/08 12:46:51 (20 months ago)
- Location:
- trunk/pylucid
- Files:
-
- 5 modified
-
doc/plugin_api.py (modified) (1 diff)
-
PyLucid/models/Plugin.py (modified) (2 diffs)
-
PyLucid/system/BasePlugin.py (modified) (2 diffs)
-
tests/preferences.py (modified) (1 diff)
-
tests/unittest_plugin/unittest_plugin.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pylucid/doc/plugin_api.py
r1700 r1706 162 162 my_entry_value = preferences["entry_key"] 163 163 164 def change_preference_entry(self): 165 """ 166 A plugin can change a preference entry with self.set_preferences() 167 """ 168 new_preference_dict = self.set_preferences("key", "new_value") 169 170 self.page_msg("Changed value:", new_preference_dict["key"]) 164 171 165 172 #__________________________________________________________________________ -
trunk/pylucid/PyLucid/models/Plugin.py
r1699 r1706 76 76 Adds caching to plugin preference queries. 77 77 """ 78 def get_preferences(self, plugin_name, id=None): 79 """ 80 returns the preference data dict, use the cache 81 """ 78 def get_pref_obj(self, plugin_name, id=None): 82 79 # Get the name of the plugin, if __file__ used 83 80 plugin_name = os.path.splitext(os.path.basename(plugin_name))[0] … … 102 99 ) % (id, pref.plugin, plugin) 103 100 101 return pref 102 103 def get_preferences(self, plugin_name, id=None): 104 """ 105 returns the preference data dict, use the cache 106 """ 107 pref = self.get_pref_obj(plugin_name, id) 104 108 data_dict = pref.get_data() 105 109 return data_dict 110 111 def set_preferences(self, plugin_name, key, value, user, id=None): 112 """ 113 set a new value to one preferences entry 114 """ 115 pref_obj = self.get_pref_obj(plugin_name, id) 116 data_dict = pref_obj.get_data() 117 data_dict[key] = value 118 pref_obj.set_data(data_dict, user) 119 pref_obj.save() 106 120 return data_dict 107 121 -
trunk/pylucid/PyLucid/system/BasePlugin.py
r1700 r1706 61 61 self.current_page = self.context["PAGE"] 62 62 63 def get_preferences(self, id =None):63 def get_preferences(self, id=None): 64 64 """ 65 65 returns the preferences from the database as a dict … … 67 67 preference = Plugin.objects.get_preferences(self.plugin_name, id) 68 68 return preference 69 70 def set_preferences(self, key, value, id=None): 71 """ 72 set a new value to one preferences entry 73 """ 74 user = self.request.user 75 data_dict = Plugin.objects.set_preferences( 76 self.plugin_name, key, value, user, id 77 ) 78 return data_dict 69 79 70 80 def build_menu(self): -
trunk/pylucid/tests/preferences.py
r1668 r1706 182 182 pref_obj3 = self.test_plugin.get_preference(id = id) 183 183 self.assertEqual(pref_obj3.get_data(), TEST_DICT2) 184 185 186 def test_plugin_manager(self): 187 """ 188 Test Plugin.objects.set_preferences 189 """ 190 pref_obj1 = self.test_plugin.set_default_preference( 191 comment = "default pref", 192 data = {"a":1, "b":2}, 193 user = None, 194 ) 195 self.assertEqual(pref_obj1.get_data(), {"a":1, "b":2}) 196 197 # Test set_preferences 198 data_dict = Plugin.objects.set_preferences( 199 self.test_plugin.plugin_name, "b", 3, user=None 200 ) 201 self.assertEqual(data_dict, {"a":1, "b":3}) 202 203 # Check Plugin.objects.get_preferences 204 preference = Plugin.objects.get_preferences( 205 self.test_plugin.plugin_name, id=None 206 ) 207 self.assertEqual(preference, {"a":1, "b":3}) 184 208 185 209 -
trunk/pylucid/tests/unittest_plugin/unittest_plugin.py
r1668 r1706 158 158 ) 159 159 160 # Change a preference entry 161 new_preference_dict = self.set_preferences('print_index', True) 162 assert(new_preference_dict['print_index'], True) 163 164 # Get the preference from the database again and check 165 preferences = self.get_preferences() 166 assert(preferences['print_index'], True) 167 160 168 self.response.write("test preferences END") 161 169