From: Michael Fladischer <FladischerMichael@fladi.at>
Date: Mon, 27 Jun 2022 06:31:01 +0000
Subject: Use local objects.inv in intersphinx mapping.

---
 docs/conf.py | 47 ++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 40 insertions(+), 7 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index 29e8031..9cd570b 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -1,7 +1,46 @@
 import os
+import sys
+import django
+import celery
 
 from sphinx_celery import conf
 
+
+def check_object_path(key, url, path):
+    if os.path.isfile(path):
+        return {key: (url, path)}
+    return {}
+
+intersphinx_mapping = {}
+intersphinx_mapping.update(
+    check_object_path(
+        'python',
+        'https://docs.python.org/',
+        '/usr/share/doc/python' + '.'.join((str(x) for x in sys.version_info[:2])) + '/html/objects.inv'
+    )
+)
+intersphinx_mapping.update(
+    check_object_path(
+        'sphinx',
+        'https://www.sphinx-doc.org/en/master/',
+        '/usr/share/doc/sphinx-doc/html/objects.inv'
+    )
+)
+intersphinx_mapping.update(
+    check_object_path(
+        'django',
+        'https://docs.djangoproject.com/en/' + '.'.join((str(c) for c in django.VERSION[:2])) + '/_objects/',
+        '/usr/share/doc/python-django-doc/html/objects.inv'
+    )
+)
+intersphinx_mapping.update(
+    check_object_path(
+        'celery',
+        'https://docs.celeryq.dev/en/' + '.'.join((str(c) for c in celery.VERSION[:3])) + '/',
+        '/usr/share/doc/python-celery-doc/html/objects.inv'
+    )
+)
+
 globals().update(conf.build_config(
     'django_celery_beat', __file__,
     project='django_celery_beat',
@@ -12,7 +51,7 @@ globals().update(conf.build_config(
     github_project='celery/django-celery-beat',
     copyright='2016',
     django_settings='proj.settings',
-    include_intersphinx={'python', 'sphinx', 'django', 'celery'},
+    intersphinx_mapping=intersphinx_mapping,
     path_additions=[os.path.join(os.pardir, 't')],
     html_logo='images/logo.png',
     html_favicon='images/favicon.ico',
@@ -31,10 +70,4 @@ globals().update(conf.build_config(
             'GitHub PR #%s',
         ),
     },
-    extra_intersphinx_mapping={
-        'django-celery-results': (
-            'https://django-celery-results.readthedocs.io/en/latest/',
-            None
-        ),
-    },
 ))
