Index: modules/univention/admin/modules.py =================================================================== --- modules/univention/admin/modules.py (Revision 45140) +++ modules/univention/admin/modules.py (Arbeitskopie) -38,8 +38,6 @@ import copy import locale import imp -import inspect -import py_compile import univention.debug as ud import univention.admin import univention.admin.uldap -62,7 +60,7 @@ superordinates=set() ## since last update(), syntax.d and hooks.d may have changed (Bug #31154) - univention.admin.syntax.import_syntax_files() + imp.reload(univention.admin.syntax) univention.admin.hook.import_hook_files() def _walk(root, dir, files): -76,6 +74,7 @@ parts=p.split(os.path.sep) mod, name='.'.join(parts), '/'.join(parts) m=__import__(mod, globals(), locals(), name) + imp.reload(m) m.initialized=0 modules[m.module]=m if isContainer(m): -108,7 +107,7 @@ # especially because update_extended_attributes # called twice will have side-effects if force_reload: - imp.reload(module) + update() # reset property descriptions to defaults if possible if hasattr(module,'default_property_descriptions'): module.property_descriptions=copy.deepcopy(module.default_property_descriptions) -977,7 +976,6 @@ module = get(module_name) return copy.deepcopy( getattr(module, 'childmodules', []) ) -univention.admin.syntax.import_syntax_files() univention.admin.hook.import_hook_files() # The update will cause in a recursion, see https://forge.univention.org/bugzilla/show_bug.cgi?id=22439 Index: modules/univention/admin/handlers/settings/usertemplate.py =================================================================== --- modules/univention/admin/handlers/settings/usertemplate.py (Revision 45140) +++ modules/univention/admin/handlers/settings/usertemplate.py (Arbeitskopie) -30,12 +30,16 @@ # /usr/share/common-licenses/AGPL-3; if not, see # . +import imp + from univention.admin.layout import Tab, Group import univention.admin.filter import univention.admin.handlers import univention.admin.localization import univention.admin.mungeddial as mungeddial +imp.reload(mungeddial) + translation=univention.admin.localization.translation('univention.admin.handlers.settings') _=translation.translate Index: modules/univention/admin/handlers/users/user.py =================================================================== --- modules/univention/admin/handlers/users/user.py (Revision 45140) +++ modules/univention/admin/handlers/users/user.py (Arbeitskopie) -38,7 +38,7 @@ import time import types import struct -import tempfile +import imp from M2Crypto import X509 import ldap import base64 -63,6 +63,8 @@ translation=univention.admin.localization.translation('univention.admin.handlers.users') _=translation.translate +imp.reload(mungeddial) + class vacationResendDays(univention.admin.syntax.select): name = 'vacationresendDays' choices = [('1','1 %s' % _('day'))] Index: modules/univention/admin/syntax.py =================================================================== --- modules/univention/admin/syntax.py (Revision 45140) +++ modules/univention/admin/syntax.py (Arbeitskopie) -51,32 +51,6 @@ translation=univention.admin.localization.translation('univention/admin') _=translation.translate -# -# load all additional syntax files from */site-packages/univention/admin/syntax.d/*.py -# -def import_syntax_files(): - for dir in sys.path: - fn = os.path.join( dir, 'univention/admin/syntax.py' ) - if os.path.exists( fn ): - try: - fd = open( fn, 'r' ) - exec fd in univention.admin.syntax.__dict__ - univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'admin.syntax.import_syntax_files: importing "%s"' % fn) - except: - univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'admin.syntax.import_syntax_files: loading %s failed' % fn ) - - if os.path.isdir( os.path.join( dir, 'univention/admin/syntax.d/' ) ): - for f in os.listdir( os.path.join( dir, 'univention/admin/syntax.d/' ) ): - if f.endswith('.py'): - fn = os.path.join( dir, 'univention/admin/syntax.d/', f ) - try: - fd = open( fn, 'r' ) - exec fd in univention.admin.syntax.__dict__ - univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'admin.syntax.import_syntax_files: importing "%s"' % fn) - except: - univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'admin.syntax.import_syntax_files: loading %s failed' % fn ) - - choice_update_functions = [] def __register_choice_update_function(func): choice_update_functions.append(func) -2901,7 +2875,24 @@ ( 'temporary', _( 'Mark this object as temporary' ) ), ] +class myInt(integer): + pass +class myUID2(uid_umlauts): + pass + +for dir in sys.path: + if os.path.isdir( os.path.join( dir, 'univention/admin/syntax.d/' ) ): + for f in os.listdir( os.path.join( dir, 'univention/admin/syntax.d/' ) ): + if f.endswith('.py'): + fn = os.path.join( dir, 'univention/admin/syntax.d/', f ) + try: + fd = open( fn, 'r' ) + exec fd in globals() + univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'admin.syntax.import_syntax_files: importing "%s"' % fn) + except: + univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'admin.syntax.import_syntax_files: loading %s failed' % fn ) + if __name__ == '__main__': import doctest doctest.testmod()