context_processors.py 902 B

123456789101112131415161718192021222324252627282930313233
  1. from django.conf import settings as django_settings
  2. from packaging import version
  3. from utilities.versions import get_latest_release
  4. def settings(request):
  5. """
  6. Expose Django settings in the template context. Example: {{ settings.DEBUG }}
  7. """
  8. return {
  9. 'settings': django_settings,
  10. }
  11. def latest_version(request):
  12. """
  13. Get the latest version from the GitHub repository
  14. """
  15. latest_release, github_url = get_latest_release()
  16. latest_version_str = None
  17. latest_version_url = None
  18. if isinstance(latest_release, version.Version):
  19. current_version = version.parse(django_settings.VERSION)
  20. if latest_release > current_version:
  21. latest_version_str = str(latest_release)
  22. latest_version_url = github_url
  23. return {
  24. 'latest_version': latest_version_str,
  25. 'latest_version_url': latest_version_url
  26. }