cms.models: 61 total statements, 0.0% covered

Generated: Wed 2013-03-13 10:33 CET

Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/cms/models/__init__.py

Stats: 0 executed, 48 missed, 13 excluded, 15 ignored

  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings as d_settings
  3. from django.core.exceptions import ImproperlyConfigured
  4. from django.core.urlresolvers import get_resolver, get_script_prefix, \
  5. NoReverseMatch
  6. from django.utils.encoding import iri_to_uri
  7. from moderatormodels import *
  8. from pagemodel import *
  9. from permissionmodels import *
  10. from placeholdermodel import *
  11. from pluginmodel import *
  12. from titlemodels import *
  13. import django.core.urlresolvers
  14. # must be last
  15. from cms import signals as s_import
  16. def validate_settings():
  17. if not "django.core.context_processors.request" in d_settings.TEMPLATE_CONTEXT_PROCESSORS:
  18. raise ImproperlyConfigured('django-cms needs django.core.context_processors.request in settings.TEMPLATE_CONTEXT_PROCESSORS to work correctly.')
  19. if not 'mptt' in d_settings.INSTALLED_APPS:
  20. raise ImproperlyConfigured('django-cms needs django-mptt installed.')
  21. if 'cms.middleware.multilingual.MultilingualURLMiddleware' in d_settings.MIDDLEWARE_CLASSES and 'django.middleware.locale.LocaleMiddleware' in d_settings.MIDDLEWARE_CLASSES:
  22. raise ImproperlyConfigured('django-cms MultilingualURLMiddleware replaces django.middleware.locale.LocaleMiddleware! Please remove django.middleware.locale.LocaleMiddleware from your MIDDLEWARE_CLASSES settings.')
  23. def validate_dependencies():
  24. # check for right version of reversions
  25. if 'reversion' in d_settings.INSTALLED_APPS:
  26. from reversion.admin import VersionAdmin
  27. if not hasattr(VersionAdmin, 'get_urls'):
  28. raise ImproperlyConfigured('django-cms requires never version of reversion (VersionAdmin must contain get_urls method)')
  29. def remove_current_root(url):
  30. current_root = "/%s/" % get_language()
  31. if url[:len(current_root)] == current_root:
  32. url = url[len(current_root) - 1:]
  33. return url
  34. def monkeypatch_reverse():
  35. if hasattr(django.core.urlresolvers.reverse, 'cms_monkeypatched'):
  36. return
  37. django.core.urlresolvers.old_reverse = django.core.urlresolvers.reverse
  38. def new_reverse(viewname, urlconf=None, args=None, kwargs=None, prefix=None, current_app=None):
  39. url = ''
  40. i18n = 'cms.middleware.multilingual.MultilingualURLMiddleware' in settings.MIDDLEWARE_CLASSES
  41. lang = None
  42. if isinstance(viewname, basestring) and viewname.split(":")[0] in dict(settings.LANGUAGES).keys():
  43. lang = viewname.split(":")[0]
  44. try:
  45. url = django.core.urlresolvers.old_reverse(viewname, urlconf=urlconf, args=args, kwargs=kwargs, prefix=prefix, current_app=current_app)
  46. if lang:
  47. url = "/%s%s" % (lang, url)
  48. except NoReverseMatch, e:
  49. if i18n:
  50. if not lang:
  51. try:
  52. lang = get_language()
  53. ml_viewname = "%s:%s" % (lang, viewname)
  54. url = django.core.urlresolvers.old_reverse(ml_viewname, urlconf=urlconf, args=args, kwargs=kwargs, prefix=prefix, current_app=current_app)
  55. return url
  56. except NoReverseMatch:
  57. pass
  58. raise e
  59. url = remove_current_root(url)
  60. return url
  61. new_reverse.cms_monkeypatched = True
  62. django.core.urlresolvers.reverse = new_reverse
  63. validate_dependencies()
  64. validate_settings()
  65. monkeypatch_reverse()