@@ -10,6 +10,7 @@ def ready(self):
1010 from . import plugin_tag
1111
1212 checks .register (check_settings )
13+ checks .register (check_installed_apps )
1314 plugin_tag .setup ()
1415
1516
@@ -19,21 +20,51 @@ def check_settings(*args, **kwargs):
1920 warnings = []
2021
2122 if hasattr (settings , "DJANGOCMS_FRONTEND_MINIMUM_INPUT_LENGTH" ): # pragma: no cover
22- warnings .append (checks .Warning (
23- "The DJANGOCMS_FRONTEND_MINIMUM_INPUT_LENGTH setting was removed in djangocms-frontend 2.\n "
24- "Use DJANGOCMS_LINK_MINIMUM_INPUT_LENGTH instead." ,
25- "This message disappears after removing the DJANGOCMS_FRONTEND_MINIMUM_INPUT_LENGTH from your project's "
26- "settings.\n " ,
27- id = "djangocms_frontend.W001" ,
28- obj = "settings.DJANGOCMS_FRONTEND_MINIMUM_INPUT_LENGTH" ,
29- ))
23+ warnings .append (
24+ checks .Warning (
25+ "The DJANGOCMS_FRONTEND_MINIMUM_INPUT_LENGTH setting was removed in djangocms-frontend 2.\n "
26+ "Use DJANGOCMS_LINK_MINIMUM_INPUT_LENGTH instead." ,
27+ "This message disappears after removing the DJANGOCMS_FRONTEND_MINIMUM_INPUT_LENGTH from "
28+ "your project's settings.\n " ,
29+ id = "djangocms_frontend.W001" ,
30+ obj = "settings.DJANGOCMS_FRONTEND_MINIMUM_INPUT_LENGTH" ,
31+ )
32+ )
3033 if hasattr (settings , "DJANGOCMS_FRONTEND_LINK_MODELS" ): # pragma: no cover
31- warnings .append (checks .Warning (
32- "The DJANGOCMS_FRONTEND_LINK_MODELS setting was removed in djangocms-frontend 2.\n "
33- "djangocms-frontend 2 uses linkable models from djangocms-link. See "
34- "https://github.com/django-cms/djangocms-link#django-cms-link for more info." ,
35- "This message disappears after removing the DJANGOCMS_FRONTEND_LINK_MODELS from your project's settings.\n " ,
36- id = "djangocms_frontend.W002" ,
37- obj = "settings.DJANGOCMS_FRONTEND_LINK_MODELS" ,
38- ))
34+ warnings .append (
35+ checks .Warning (
36+ "The DJANGOCMS_FRONTEND_LINK_MODELS setting was removed in djangocms-frontend 2.\n "
37+ "djangocms-frontend 2 uses linkable models from djangocms-link. See "
38+ "https://github.com/django-cms/djangocms-link#django-cms-link for more info." ,
39+ "This message disappears after removing the DJANGOCMS_FRONTEND_LINK_MODELS from your "
40+ "project's settings.\n " ,
41+ id = "djangocms_frontend.W002" ,
42+ obj = "settings.DJANGOCMS_FRONTEND_LINK_MODELS" ,
43+ )
44+ )
3945 return warnings
46+
47+
48+ def check_installed_apps (app_configs , ** kwargs ):
49+ from django .conf import settings
50+
51+ errors = []
52+ link_contrib_apps = [
53+ "djangocms_frontend.contrib.carousel" ,
54+ "djangocms_frontend.contrib.image" ,
55+ "djangocms_frontend.contrib.link" ,
56+ ]
57+
58+ if any (app in settings .INSTALLED_APPS for app in link_contrib_apps ):
59+ if "djangocms_link" not in settings .INSTALLED_APPS : # pragma: no cover
60+ errors .append (
61+ checks .Error (
62+ "djangocms-frontend requires djangocms-link to be installed for the following plugins: {}.\n "
63+ "Add 'djangocms_link' to your INSTALLED_APPS setting or remove all of the above apps." .format (
64+ ", " .join (link_contrib_apps )
65+ ),
66+ id = "djangocms_frontend.E001" ,
67+ obj = "settings.INSTALLED_APPS" ,
68+ )
69+ )
70+ return errors
0 commit comments