checks.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import os
  2. from django.core.checks import Error, Warning, register
  3. @register()
  4. def css_install_check(app_configs, **kwargs):
  5. errors = []
  6. css_path = os.path.join(
  7. os.path.dirname(__file__), 'static', 'wagtailadmin', 'css', 'normalize.css'
  8. )
  9. if not os.path.isfile(css_path):
  10. error_hint = """
  11. Most likely you are running a development (non-packaged) copy of
  12. Wagtail and have not built the static assets -
  13. see http://docs.wagtail.io/en/latest/contributing/developing.html
  14. File not found: %s
  15. """ % css_path
  16. errors.append(
  17. Warning(
  18. "CSS for the Wagtail admin is missing",
  19. hint=error_hint,
  20. id='wagtailadmin.W001',
  21. )
  22. )
  23. return errors
  24. @register()
  25. def base_form_class_check(app_configs, **kwargs):
  26. from wagtail.admin.forms import WagtailAdminPageForm
  27. from wagtail.core.models import get_page_models
  28. errors = []
  29. for cls in get_page_models():
  30. if not issubclass(cls.base_form_class, WagtailAdminPageForm):
  31. errors.append(Error(
  32. "{}.base_form_class does not extend WagtailAdminPageForm".format(
  33. cls.__name__),
  34. hint="Ensure that {}.{} extends WagtailAdminPageForm".format(
  35. cls.base_form_class.__module__,
  36. cls.base_form_class.__name__),
  37. obj=cls,
  38. id='wagtailadmin.E001'))
  39. return errors
  40. @register()
  41. def get_form_class_check(app_configs, **kwargs):
  42. from wagtail.admin.forms import WagtailAdminPageForm
  43. from wagtail.core.models import get_page_models
  44. errors = []
  45. for cls in get_page_models():
  46. edit_handler = cls.get_edit_handler()
  47. if not issubclass(edit_handler.get_form_class(), WagtailAdminPageForm):
  48. errors.append(Error(
  49. "{cls}.get_edit_handler().get_form_class() does not extend WagtailAdminPageForm".format(
  50. cls=cls.__name__),
  51. hint="Ensure that the EditHandler for {cls} creates a subclass of WagtailAdminPageForm".format(
  52. cls=cls.__name__),
  53. obj=cls,
  54. id='wagtailadmin.E002'))
  55. return errors