DJDT

Versions

Paquet Nom Version
Django 5.2.3
Python 3.12.12
allauth Allauth 65.9.0.final.0
cachalot Cachalot 2.8.0
crispy_bootstrap5 Crispy_Bootstrap5 2025.4
crispy_forms Crispy_Forms 2.4
debug_toolbar Barre d'outils de débogage 5.2.0
django_extensions Django Extensions 3.2.3
django_filters Django_Filters 25.1
django_q Django Q 1.8.0
imagekit Imagekit 5.0.0
impersonate Impersonate 1.9.5
markdownx Markdownx 4.0.9
mozilla_django_oidc Mozilla_Django_Oidc 4.0.1
notifications Notifications 1.8.3
rosetta Rosetta 0.10.2
rules Rules 3.5.0.final.1
simple_history Simple_History 3.8.0
tos Terms Of Service 1.1.0
waffle django-waffle 4.2.0

Temps

Utilisation des ressources

Ressource Valeur
Temps CPU de l'utilisateur 128.648 ms
Temps CPU du système 5.958 ms
Temps total du CPU 134.606 ms
Temps écoulé 142.595 ms
Basculements de contexte 28 volontaire, 7 involontaire

Chronologie du navigateur

Attribut mesuré Chronologie Millisecondes depuis le début de la navigation (+longueur)

Paramètres de config.settings.staging

Paramètre Valeur
ABSOLUTE_URL_OVERRIDES {}
ACCOUNT_ADAPTER 'lms_base.adapter.AccountAdapter'
ADMINS (('admin', 'notifications-nmc@unibas.ch'),)
ADMIN_URL 'admin/'
ALLOWED_HOSTS ['*']
APPEND_SLASH True
AUTHENTICATION_BACKENDS '********************'
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_USER_MODEL '********************'
BASE_DIR '/app/project/config/../'
CACHALOT_ENABLED True
CACHES {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://tales-redis:6379/1', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'IGNORE_EXCEPTIONS': True}}}
CACHE_MIDDLEWARE_ALIAS 'default'
CACHE_MIDDLEWARE_KEY_PREFIX '********************'
CACHE_MIDDLEWARE_SECONDS 600
CI_COMMIT_SHORT_SHA 'c401eb2c'
CI_COMMIT_TAG '2.6.23'
CRISPY_ALLOWED_TEMPLATE_PACKS 'bootstrap5'
CRISPY_TEMPLATE_PACK 'bootstrap5'
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY False
CSRF_COOKIE_NAME 'csrftoken'
CSRF_COOKIE_PATH '/'
CSRF_COOKIE_SAMESITE None
CSRF_COOKIE_SECURE False
CSRF_FAILURE_VIEW 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS []
CSRF_USE_SESSIONS False
DATABASES {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'tales-postgres', 'NAME': 'tptt', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'tales_db_user'}}
DATABASE_ROUTERS []
DATA_UPLOAD_MAX_MEMORY_SIZE 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS 1000
DATA_UPLOAD_MAX_NUMBER_FILES 100
DATETIME_FORMAT 'N j, Y, P'
DATETIME_INPUT_FORMATS ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']
DATE_FORMAT 'N j, Y'
DATE_INPUT_FORMATS ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG True
DEBUG_PROPAGATE_EXCEPTIONS False
DEBUG_TOOLBAR_CONFIG {'SHOW_TOOLBAR_CALLBACK': <function show_toolbar at 0x788312fd34c0>}
DEBUG_TOOLBAR_PANELS ['debug_toolbar.panels.history.HistoryPanel', 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'debug_toolbar.panels.sql.SQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.cache.CachePanel', 'cachalot.panels.CachalotPanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.logging.LoggingPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', 'debug_toolbar.panels.profiling.ProfilingPanel']
DECIMAL_SEPARATOR '.'
DEFAULT_AUTO_FIELD 'django.db.models.AutoField'
DEFAULT_CHARSET 'utf-8'
DEFAULT_EXCEPTION_REPORTER 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FROM_EMAIL 'contact-nmc@unibas.ch'
DEFAULT_INDEX_TABLESPACE ''
DEFAULT_TABLESPACE ''
DEPLOY_ENV 'staging'
DISALLOWED_USER_AGENTS []
DJANGO_APPS ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.forms', 'django.contrib.sites', 'django.contrib.flatpages', 'modeltranslation', 'django.contrib.admin', 'django.contrib.redirects', 'django.contrib.sitemaps', 'django.contrib.humanize')
DJANGO_NOTIFICATIONS_CONFIG {'USE_JSONFIELD': True}
EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST 'smtp.unibas.ch'
EMAIL_HOST_PASSWORD '********************'
EMAIL_HOST_USER ''
EMAIL_PORT 25
EMAIL_SSL_CERTFILE None
EMAIL_SSL_KEYFILE '********************'
EMAIL_SUBJECT_PREFIX '[Django] '
EMAIL_TIMEOUT None
EMAIL_USE_LOCALTIME False
EMAIL_USE_SSL False
EMAIL_USE_TLS False
FILE_UPLOAD_DIRECTORY_PERMISSIONS None
FILE_UPLOAD_HANDLERS ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE 2621440
FILE_UPLOAD_PERMISSIONS 420
FILE_UPLOAD_TEMP_DIR None
FIRST_DAY_OF_WEEK 0
FIXTURE_DIRS []
FORCE_SCRIPT_NAME None
FORMAT_MODULE_PATH None
FORMS_URLFIELD_ASSUME_HTTPS False
FORM_RENDERER 'django.forms.renderers.TemplatesSetting'
IGNORABLE_404_URLS []
IMAGEKIT_CACHEFILE_DIR 'CACHE/images'
IMAGEKIT_CACHEFILE_NAMER 'imagekit.cachefiles.namers.hash'
IMAGEKIT_CACHE_BACKEND 'default'
IMAGEKIT_CACHE_PREFIX 'imagekit:'
IMAGEKIT_CACHE_TIMEOUT 300
IMAGEKIT_DEFAULT_CACHEFILE_BACKEND 'imagekit.cachefiles.backends.Simple'
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY 'imagekit.cachefiles.strategies.JustInTime'
IMAGEKIT_DEFAULT_FILE_STORAGE 'default'
IMAGEKIT_SPEC_CACHEFILE_NAMER 'imagekit.cachefiles.namers.source_name_as_path'
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY '********************'
INSTALLED_APPS ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.forms', 'django.contrib.sites', 'django.contrib.flatpages', 'modeltranslation', 'django.contrib.admin', 'django.contrib.redirects', 'django.contrib.sitemaps', 'django.contrib.humanize', 'simple_history', 'crispy_forms', 'crispy_bootstrap5', 'allauth', 'allauth.account', 'allauth.socialaccount', 'mozilla_django_oidc', 'django_extensions', 'markdownx', 'rules.apps.AutodiscoverRulesConfig', 'imagekit', 'waffle', 'django_htmx', 'cachalot', 'corsheaders', 'tos', 'tos_i18n', 'impersonate', 'rosetta', 'django_q', 'notifications', 'link_check', 'django_filters', 'users.apps.UsersConfig', 'lms_base.apps.LmsBaseConfig', 'lms_tales.apps.LMSTalesConfig', 'lms_comments.apps.LMSCommentsConfig', 'lms_static_texts.apps.LMSStaticTextsConfig', 'tags.apps.TagsConfig', 'startpage.apps.StartpageConfig', 'search.apps.SearchConfig', 'utils.apps.UtilsConfig', 'dashboard.apps.DashboardConfig', 'reporting.apps.ReportingConfig', 'lms_notifications.apps.LMSNotificationsConfig', 'lms_roles.apps.LMSRolesConfig', 'lms_ai.apps.LMSAiConfig', 'lms_assignment.apps.LMSAssignmentConfig', 'debug_toolbar')
INTERNAL_IPS ['127.0.0.1']
LANGUAGES (('de', 'Allemand'), ('en', 'Anglais'), ('fr', 'Français'))
LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']
LANGUAGE_CODE 'de'
LANGUAGE_COOKIE_AGE None
LANGUAGE_COOKIE_DOMAIN None
LANGUAGE_COOKIE_HTTPONLY False
LANGUAGE_COOKIE_NAME 'django_language'
LANGUAGE_COOKIE_PATH '/'
LANGUAGE_COOKIE_SAMESITE None
LANGUAGE_COOKIE_SECURE False
LANGUAGE_PUBLICATION_ENABLED True
LINKCHECKER_CHECK_EXTERN True
LINKCHECKER_IGNORE_PATTERNS ['.*/admin/.*', '.*/oidc/authenticate/\\?next=.*', '.*\\.(jpe?g|png|gif|svg|webp|ico|pdf|mp4|avi|mov|css|js|json|xml|txt)$', '.*/logout/.*', '.*/login/.*', '.*/#.*']
LINKCHECKER_MAX_RETRIES 3
LINKCHECKER_NO_FOLLOW_PATTERNS ['^https?://(?!nmc-tales-staging\\.nmc\\.unibas\\.ch/).*']
LINKCHECKER_RECURSION_LEVEL 5
LINKCHECKER_RETRY_DELAY 30
LINKCHECKER_TIMEOUT 10
LINKCHECKER_URL 'https://nmc-tales-staging.nmc.unibas.ch/'
LINKCHECKER_USER_AGENT 'Tales-LinkChecker/1.0'
LOCALE_PATHS ['/app/project/config/../locale']
LOCAL_APPS ('users.apps.UsersConfig', 'lms_base.apps.LmsBaseConfig', 'lms_tales.apps.LMSTalesConfig', 'lms_comments.apps.LMSCommentsConfig', 'lms_static_texts.apps.LMSStaticTextsConfig', 'tags.apps.TagsConfig', 'startpage.apps.StartpageConfig', 'search.apps.SearchConfig', 'utils.apps.UtilsConfig', 'dashboard.apps.DashboardConfig', 'reporting.apps.ReportingConfig', 'lms_notifications.apps.LMSNotificationsConfig', 'lms_roles.apps.LMSRolesConfig', 'lms_ai.apps.LMSAiConfig', 'lms_assignment.apps.LMSAssignmentConfig')
LOGGING {'disable_existing_loggers': False, 'formatters': {'verbose': {'format': '{asctime} {levelname} {name} {module} ' '{message}', 'style': '{'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'verbose'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'include_html': True, 'level': 'ERROR'}}, 'loggers': {'django': {'handlers': ['console', 'mail_admins'], 'level': 'WARNING', 'propagate': True}, 'django.request': {'handlers': ['console', 'mail_admins'], 'level': 'ERROR', 'propagate': False}, 'django.security': {'handlers': ['console', 'mail_admins'], 'level': 'ERROR', 'propagate': False}, 'fontTools': {'handlers': ['console'], 'level': 'ERROR'}, 'lms_ai': {'handlers': ['console'], 'level': 'DEBUG'}, 'tales': {'handlers': ['console'], 'level': 'INFO'}, 'weasyprint': {'handlers': ['console'], 'level': 'ERROR'}}, 'root': {'handlers': ['console'], 'level': 'WARNING'}, 'version': 1}
LOGGING_CONFIG 'logging.config.dictConfig'
LOGIN_REDIRECT_URL '/'
LOGIN_URL 'account_login'
LOGOUT_REDIRECT_URL '/'
MANAGERS []
MARKDOWNX_EDITOR_RESIZABLE True
MARKDOWNX_IMAGE_MAX_SIZE {'quality': 90, 'size': (1920, 5600)}
MARKDOWNX_MARKDOWNIFY_FUNCTION 'lms_base.utils.markdownify'
MARKDOWNX_MARKDOWN_EXTENSIONS ['markdown.extensions.extra', 'markdown.extensions.smarty', 'markdown.extensions.codehilite', 'markdown.extensions.fenced_code', 'markdown.extensions.attr_list', 'markdown.extensions.toc', 'utils.markdown_extensions', 'python_markdown_oembed_extension']
MARKDOWNX_MEDIA_PATH 'markdownx/'
MARKDOWNX_UPLOAD_URLS_PATH '/markdownx/upload/'
MARKDOWNX_URLS_PATH '/markdownx/markdownify/'
MEDIA_ROOT '/app/project/media'
MEDIA_URL '/media/'
MESSAGE_REAPPEAR_TIME 600
MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE ['corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'lms_tales.middleware.SetLocaleFoundInUserSettings', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'allauth.account.middleware.AccountMiddleware', 'impersonate.middleware.ImpersonateMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'simple_history.middleware.HistoryRequestMiddleware', 'django.contrib.redirects.middleware.RedirectFallbackMiddleware', 'waffle.middleware.WaffleMiddleware', 'django_htmx.middleware.HtmxMiddleware', 'lms_tales.middleware.TalesUserAgreementMiddleware', 'lms_tales.middleware.ScheduledMessagesMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware']
MIGRATION_MODULES {'tos': 'lms_tales.migrate.tos'}
MODELTRANSLATION_CUSTOM_FIELDS ('JSONField',)
MODELTRANSLATION_DEFAULT_LANGUAGE 'de'
MODELTRANSLATION_FALLBACK_LANGUAGES ('de', 'en', 'fr')
MONTH_DAY_FORMAT 'F j'
NOTIFICATIONS_NOTIFICATION_MODEL 'lms_notifications.Notification'
NUMBER_GROUPING 0
OIDC_OP_AUTHORIZATION_ENDPOINT '********************'
OIDC_OP_JWKS_ENDPOINT 'https://login.eduid.ch/idp/profile/oidc/keyset'
OIDC_OP_TOKEN_ENDPOINT '********************'
OIDC_OP_USER_ENDPOINT 'https://login.eduid.ch/idp/profile/oidc/userinfo'
OIDC_RP_CLIENT_ID 'unibas-tales-staging'
OIDC_RP_CLIENT_SECRET '********************'
OIDC_RP_SCOPES 'openid email profile https://login.eduid.ch/authz/User.Read'
OIDC_RP_SIGN_ALGO 'RS256'
OIDC_TOKEN_USE_BASIC_AUTH '********************'
OPENAI_API_KEY '********************'
OPENAI_BASE_URL 'http://nmc-macmini1.nmc.unibas.ch/api/v1'
OPENAI_MODEL 'granite4:small-h'
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT '********************'
PREPEND_WWW False
PROJECT_DIR '/app/project/config/../'
Q_CLUSTER {'catch_up': False, 'django_redis': 'default', 'max_attempts': 5, 'name': 'QCluster', 'recycle': 50, 'retry': 7500, 'timeout': 7200, 'workers': 2}
REDIS_STREAM_MAX_LENGTH 1000
RELEASE_NAME ''
REQUIRE_SUPERUSER True
ROOT_URLCONF 'config.urls'
ROSETTA_ENABLE_TRANSLATION_SUGGESTIONS True
ROSETTA_MESSAGES_SOURCE_LANGUAGE_CODE 'de'
ROSETTA_MESSAGES_SOURCE_LANGUAGE_NAME 'Deutsch'
ROSETTA_SHOW_AT_ADMIN_PANEL 'True'
SECRET_KEY '********************'
SECRET_KEY_FALLBACKS '********************'
SECURE_CONTENT_TYPE_NOSNIFF True
SECURE_CROSS_ORIGIN_OPENER_POLICY 'same-origin'
SECURE_HSTS_INCLUDE_SUBDOMAINS False
SECURE_HSTS_PRELOAD False
SECURE_HSTS_SECONDS 0
SECURE_PROXY_SSL_HEADER ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_REDIRECT_EXEMPT []
SECURE_REFERRER_POLICY 'same-origin'
SECURE_SSL_HOST None
SECURE_SSL_REDIRECT False
SERVER_EMAIL 'root@localhost'
SESSION_CACHE_ALIAS 'default'
SESSION_COOKIE_AGE 1209600
SESSION_COOKIE_DOMAIN None
SESSION_COOKIE_HTTPONLY True
SESSION_COOKIE_NAME 'sessionid'
SESSION_COOKIE_PATH '/'
SESSION_COOKIE_SAMESITE None
SESSION_COOKIE_SECURE False
SESSION_ENGINE 'django.contrib.sessions.backends.cache'
SESSION_EXPIRE_AT_BROWSER_CLOSE False
SESSION_FILE_PATH None
SESSION_SAVE_EVERY_REQUEST False
SESSION_SERIALIZER 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE 'config.settings.staging'
SHORT_DATETIME_FORMAT 'm/d/Y P'
SHORT_DATE_FORMAT 'm/d/Y'
SIGNING_BACKEND 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS []
SITE_DOMAIN 'https://nmc-tales-staging.nmc.unibas.ch/'
SITE_ID 1
SLACK_WEBHOOK 'https://hooks.slack.com/services/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'
SSE_HEARTBEAT_SEC 15
SSE_RETRY_MS 5000
STAGING_EMAIL_RECIPIENTS ['notifications-nmc@unibas.ch']
STATICFILES_DIRS ['/app/project/config/../static']
STATICFILES_FINDERS ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder')
STATIC_ROOT '/app/project/config/../../staticfiles'
STATIC_URL '/static/'
STORAGES {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}
TALES_BASE_URL 'https://tales.nmc.unibas.ch'
TALES_VERSION 'dev'
TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/app/project/config/../templates', '/usr/local/lib/python3.12/site-packages/django/forms/templates'], 'OPTIONS': {'builtins': ['django.templatetags.i18n', 'django.templatetags.static'], 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', 'utils.context_processors.ci_info'], 'debug': False, 'loaders': ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader']}}]
TEST_NON_SERIALIZED_APPS []
TEST_RUNNER 'django.test.runner.DiscoverRunner'
THIRD_PARTY_APPS ('debug_toolbar',)
THOUSAND_SEPARATOR ','
TIME_FORMAT 'P'
TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE 'Europe/Zurich'
USER_DEACTIVATION_AFTER_DAYS 730
USER_DELETION_AFTER_DAYS 912
USE_I18N True
USE_THOUSAND_SEPARATOR False
USE_TZ True
USE_X_FORWARDED_HOST True
USE_X_FORWARDED_PORT False
VIEW_CACHE_TTL 600
WAFFLE_CREATE_MISSING_FLAGS True
WAFFLE_CREATE_MISSING_SAMPLES True
WAFFLE_CREATE_MISSING_SWITCHES True
WAFFLE_LOG_MISSING_FLAGS 30
WAFFLE_LOG_MISSING_SAMPLES 30
WAFFLE_LOG_MISSING_SWITCHES 30
WSGI_APPLICATION 'config.wsgi.application'
X_FRAME_OPTIONS 'DENY'
YEAR_MONTH_FORMAT 'F Y'

En-têtes

En-têtes de requête

Clé Valeur
Accept */*
Accept-Encoding gzip, br, zstd, deflate
Host nmc-tales-staging.nmc.unibas.ch
User-Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Via 2.0 Caddy
X-Forwarded-For 216.73.216.159
X-Forwarded-Host nmc-tales-staging.nmc.unibas.ch
X-Forwarded-Proto https

En-têtes de réponse

Clé Valeur
Content-Type text/html; charset=utf-8

Environnement WSGI

Comme l'environnement WSGI hérite de celui du serveur, seul un sous-ensemble pertinent est affiché ci-dessous.

Clé Valeur
PATH_INFO /fr/courses/
QUERY_STRING categories=3
REMOTE_ADDR 172.18.0.2
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME 0.0.0.0
SERVER_PORT 8000
SERVER_PROTOCOL HTTP/1.1
SERVER_SOFTWARE gunicorn/23.0.0

Requête

Afficher l'information

Fonction de vue Paramètres Paramètres nommés Nom d'URL
lms_tales.views_filter_courses.new_filter_courses () {} tales:course_list

Pas de cookies

Pas de données de session

Données GET

Variable Valeur
'categories' '3'

Aucune donnée POST

requêtes SQL venant de 1 connexion

  • default 3,36 ms (1 requête )
Requête Chronologie Temps (ms) Action
SELECT "lms_tales_talescourse"."id",
       "lms_tales_talescourse"."created",
       "lms_tales_talescourse"."modified",
       "lms_tales_talescourse"."status",
       "lms_tales_talescourse"."status_changed",
       "lms_tales_talescourse"."is_removed",
       "lms_tales_talescourse"."published_languages",
       "lms_tales_talescourse"."title",
       "lms_tales_talescourse"."title_de",
       "lms_tales_talescourse"."title_en",
       "lms_tales_talescourse"."title_fr",
       "lms_tales_talescourse"."subtitle",
       "lms_tales_talescourse"."subtitle_de",
       "lms_tales_talescourse"."subtitle_en",
       "lms_tales_talescourse"."subtitle_fr",
       "lms_tales_talescourse"."short_description",
       "lms_tales_talescourse"."short_description_de",
       "lms_tales_talescourse"."short_description_en",
       "lms_tales_talescourse"."short_description_fr",
       "lms_tales_talescourse"."title_image",
       "lms_tales_talescourse"."slug",
       "lms_tales_talescourse"."content",
       "lms_tales_talescourse"."content_de",
       "lms_tales_talescourse"."content_en",
       "lms_tales_talescourse"."content_fr",
       "lms_tales_talescourse"."copyright",
       "lms_tales_talescourse"."copyright_de",
       "lms_tales_talescourse"."copyright_en",
       "lms_tales_talescourse"."copyright_fr",
       "lms_tales_talescourse"."course_contact"
  FROM "lms_tales_talescourse"
 INNER JOIN "lms_tales_talescourse_related_tags"
    ON ("lms_tales_talescourse"."id" = "lms_tales_talescourse_related_tags"."talescourse_id")
 WHERE (NOT "lms_tales_talescourse"."is_removed" AND "lms_tales_talescourse"."status" = 'published' AND "lms_tales_talescourse_related_tags"."tag_id" = 3)
 ORDER BY "lms_tales_talescourse"."title_fr" ASC
SELECT ••• FROM "lms_tales_talescourse" INNER JOIN "lms_tales_talescourse_related_tags" ON ("lms_tales_talescourse"."id" = "lms_tales_talescourse_related_tags"."talescourse_id") WHERE (NOT "lms_tales_talescourse"."is_removed" AND "lms_tales_talescourse"."status" = 'published' AND "lms_tales_talescourse_related_tags"."tag_id" = 3) ORDER BY "lms_tales_talescourse"."title_fr" ASC
3,36

Connexion : default

État de la transaction : Inactif

/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(326)
  if match:

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(65)
  result = execute_query_func()

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in <lambda>(85)
  execute_query_func = lambda: original(compiler, *args, **kwargs)

Fichiers statiques (276 trouvé(s), 7 utilisé(s))

Chemin de fichier statique

  1. /app/project/static

Applications de fichiers statiques

  1. modeltranslation
  2. django.contrib.admin
  3. allauth.account
  4. django_extensions
  5. markdownx
  6. django_htmx
  7. rosetta
  8. notifications
  9. lms_base
  10. lms_tales
  11. reporting
  12. debug_toolbar

Statische Dateien

images/icon_tales_white.png
/app/project/static/images/icon_tales_white.png
images/icon_tales_transp.png
/app/project/static/images/icon_tales_transp.png
lms_base/css/lms_base_main.css
/app/project/lms_base/static/lms_base/css/lms_base_main.css
lms_tales/css/lms_tales.css
None
lms_base/js/lms_base.js
/app/project/lms_base/static/lms_base/js/lms_base.js
lms_tales/js/lms_tales.js
/app/project/lms_tales/static/lms_tales/js/lms_tales.js
images/uni-basel-logo-en.svg
/app/project/static/images/uni-basel-logo-en.svg

django.contrib.staticfiles.finders.FileSystemFinder (98 fichiers)

Chemin Emplacement
robots.txt /app/project/static/robots.txt
alphorn_07.jpg /app/project/static/alphorn_07.jpg
browserconfig.xml /app/project/static/browserconfig.xml
alphorn_11.jpg /app/project/static/alphorn_11.jpg
lottie/optimized_tales_banner2.mp4 /app/project/static/lottie/optimized_tales_banner2.mp4
lottie/optimized_tales_banner_av1.webm /app/project/static/lottie/optimized_tales_banner_av1.webm
lottie/tales_banner3.mp4 /app/project/static/lottie/tales_banner3.mp4
lottie/optimized_tales_banner3.webm /app/project/static/lottie/optimized_tales_banner3.webm
lottie/optimized_tales_banner2.webm /app/project/static/lottie/optimized_tales_banner2.webm
lottie/tales_banner.json /app/project/static/lottie/tales_banner.json
lottie/optimized_tales_banner3.mp4 /app/project/static/lottie/optimized_tales_banner3.mp4
lottie/optimized_tales_banner_av1.mp4 /app/project/static/lottie/optimized_tales_banner_av1.mp4
lottie/optimized_tales_banner.mp4 /app/project/static/lottie/optimized_tales_banner.mp4
lottie/tales_banner2.mp4 /app/project/static/lottie/tales_banner2.mp4
reporting/css/report_pdf.css.map /app/project/static/reporting/css/report_pdf.css.map
reporting/css/report_pdf.css /app/project/static/reporting/css/report_pdf.css
reporting/images/nmcunilogo.png /app/project/static/reporting/images/nmcunilogo.png
reporting/images/background.jpg /app/project/static/reporting/images/background.jpg
dropzone/dropzone.min.css /app/project/static/dropzone/dropzone.min.css
dropzone/dropzone-amd-module.min.js /app/project/static/dropzone/dropzone-amd-module.min.js
dropzone/basic.min.css /app/project/static/dropzone/basic.min.css
dropzone/dropzone.min.js /app/project/static/dropzone/dropzone.min.js
opos/4_4.html /app/project/static/opos/4_4.html
opos/4_3.html /app/project/static/opos/4_3.html
opos/4_5.html /app/project/static/opos/4_5.html
opos/4_1.html /app/project/static/opos/4_1.html
tales_editor/favicon.ico /app/project/static/tales_editor/favicon.ico
tales_editor/index.html /app/project/static/tales_editor/index.html
tales_editor/css/chunk-vendors.css /app/project/static/tales_editor/css/chunk-vendors.css
tales_editor/css/app.css /app/project/static/tales_editor/css/app.css
tales_editor/img/bootstrap-icons.svg /app/project/static/tales_editor/img/bootstrap-icons.svg
tales_editor/img/remixicon.symbol.svg /app/project/static/tales_editor/img/remixicon.symbol.svg
tales_editor/js/app.js /app/project/static/tales_editor/js/app.js
tales_editor/js/app.js.map /app/project/static/tales_editor/js/app.js.map
tales_editor/js/chunk-vendors.js /app/project/static/tales_editor/js/chunk-vendors.js
tales_editor/js/chunk-vendors.js.map /app/project/static/tales_editor/js/chunk-vendors.js.map
images/opos_map_xs.png /app/project/static/images/opos_map_xs.png
images/opos_map_xl.png /app/project/static/images/opos_map_xl.png
images/edu-id-button-gray.png /app/project/static/images/edu-id-button-gray.png
images/icon_tales_mint.png /app/project/static/images/icon_tales_mint.png
images/favicon.ico /app/project/static/images/favicon.ico
images/door.jpg /app/project/static/images/door.jpg
images/icon_tales_transp_32x32.png /app/project/static/images/icon_tales_transp_32x32.png
images/uni-basel-logo-de.svg /app/project/static/images/uni-basel-logo-de.svg
images/raymond_ammann.jpg /app/project/static/images/raymond_ammann.jpg
images/help_en.jpg /app/project/static/images/help_en.jpg
images/opos_map_xs.avif /app/project/static/images/opos_map_xs.avif
images/opos_map_md.png /app/project/static/images/opos_map_md.png
images/help_de.jpg /app/project/static/images/help_de.jpg
images/bild.png /app/project/static/images/bild.png
images/help.jpg /app/project/static/images/help.jpg
images/Hochformat.jpg /app/project/static/images/Hochformat.jpg
images/empty_classroom.jpg /app/project/static/images/empty_classroom.jpg
images/uni-basel-logo-de.png /app/project/static/images/uni-basel-logo-de.png
images/contact-side-image-1.jpg /app/project/static/images/contact-side-image-1.jpg
images/icon_tales_white.png /app/project/static/images/icon_tales_white.png
images/portalflag.png /app/project/static/images/portalflag.png
images/uni-basel-logo-en.svg /app/project/static/images/uni-basel-logo-en.svg
images/contact-side-image-2.jpg /app/project/static/images/contact-side-image-2.jpg
images/alp_und_hirtenhorn.jpg /app/project/static/images/alp_und_hirtenhorn.jpg
images/icon_tales_transp.png /app/project/static/images/icon_tales_transp.png
images/Weltkarte_Opos.png /app/project/static/images/Weltkarte_Opos.png
images/batkitty.jpg /app/project/static/images/batkitty.jpg
images/help_fr.jpg /app/project/static/images/help_fr.jpg
nahtkurs_glossar/antikoagu.jpg /app/project/static/nahtkurs_glossar/antikoagu.jpg
nahtkurs_glossar/anamnese.jpg /app/project/static/nahtkurs_glossar/anamnese.jpg
nahtkurs_glossar/wundinfektion.jpg /app/project/static/nahtkurs_glossar/wundinfektion.jpg
nahtkurs_glossar/tensilestength.jpg /app/project/static/nahtkurs_glossar/tensilestength.jpg
nahtkurs_glossar/glucose.jpg /app/project/static/nahtkurs_glossar/glucose.jpg
nahtkurs_glossar/nacl.jpg /app/project/static/nahtkurs_glossar/nacl.jpg
sounds/temperiert_nr_7.mp3 /app/project/static/sounds/temperiert_nr_7.mp3
sounds/alphorn_13.mp3 /app/project/static/sounds/alphorn_13.mp3
sounds/alphorn_05.mp3 /app/project/static/sounds/alphorn_05.mp3
sounds/alphorn_11.mp3 /app/project/static/sounds/alphorn_11.mp3
sounds/naturton_nr_7.mp3 /app/project/static/sounds/naturton_nr_7.mp3
sounds/hirtenhorn_04.mp3 /app/project/static/sounds/hirtenhorn_04.mp3
sounds/alphorn_14.mp3 /app/project/static/sounds/alphorn_14.mp3
sounds/alphorn_01.mp3 /app/project/static/sounds/alphorn_01.mp3
sounds/alphorn_12.mp3 /app/project/static/sounds/alphorn_12.mp3
sounds/alphorn_02.mp3 /app/project/static/sounds/alphorn_02.mp3
sounds/alphorn_09.mp3 /app/project/static/sounds/alphorn_09.mp3
sounds/alphorn_04.mp3 /app/project/static/sounds/alphorn_04.mp3
sounds/alphorn_15.mp3 /app/project/static/sounds/alphorn_15.mp3
sounds/hirtenhorn_07.mp3 /app/project/static/sounds/hirtenhorn_07.mp3
sounds/alphorn_08.mp3 /app/project/static/sounds/alphorn_08.mp3
sounds/alphorn_03.mp3 /app/project/static/sounds/alphorn_03.mp3
sounds/hirtenhorn_02.mp3 /app/project/static/sounds/hirtenhorn_02.mp3
sounds/alphorn_10.mp3 /app/project/static/sounds/alphorn_10.mp3
sounds/hirtenhorn_01.mp3 /app/project/static/sounds/hirtenhorn_01.mp3
sounds/hirtenhorn_06.mp3 /app/project/static/sounds/hirtenhorn_06.mp3
sounds/alphorn_07.mp3 /app/project/static/sounds/alphorn_07.mp3
sounds/temperiert_nr_11.mp3 /app/project/static/sounds/temperiert_nr_11.mp3
sounds/hirtenhorn_08.mp3 /app/project/static/sounds/hirtenhorn_08.mp3
sounds/naturton_nr_11.mp3 /app/project/static/sounds/naturton_nr_11.mp3
sounds/alphorn_16.mp3 /app/project/static/sounds/alphorn_16.mp3
sounds/hirtenhorn_05.mp3 /app/project/static/sounds/hirtenhorn_05.mp3
sounds/hirtenhorn_03.mp3 /app/project/static/sounds/hirtenhorn_03.mp3
sounds/alphorn_06.mp3 /app/project/static/sounds/alphorn_06.mp3

django.contrib.staticfiles.finders.AppDirectoriesFinder (178 fichiers)

Chemin Emplacement
modeltranslation/css/tabbed_translation_fields.css /usr/local/lib/python3.12/site-packages/modeltranslation/static/modeltranslation/css/tabbed_translation_fields.css
modeltranslation/js/clearable_inputs.js /usr/local/lib/python3.12/site-packages/modeltranslation/static/modeltranslation/js/clearable_inputs.js
modeltranslation/js/tabbed_translation_fields.js /usr/local/lib/python3.12/site-packages/modeltranslation/static/modeltranslation/js/tabbed_translation_fields.js
modeltranslation/js/force_jquery.js /usr/local/lib/python3.12/site-packages/modeltranslation/static/modeltranslation/js/force_jquery.js
admin/css/autocomplete.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/autocomplete.css
admin/css/responsive.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive.css
admin/css/widgets.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/widgets.css
admin/css/changelists.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/changelists.css
admin/css/unusable_password_field.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/unusable_password_field.css
admin/css/dark_mode.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dark_mode.css
admin/css/responsive_rtl.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css
admin/css/nav_sidebar.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css
admin/css/dashboard.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dashboard.css
admin/css/forms.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/forms.css
admin/css/rtl.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/rtl.css
admin/css/login.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/login.css
admin/css/base.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/base.css
admin/css/vendor/select2/select2.min.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css
admin/css/vendor/select2/select2.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css
admin/css/vendor/select2/LICENSE-SELECT2.md /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md
admin/img/icon-clock.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg
admin/img/sorting-icons.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg
admin/img/icon-alert.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg
admin/img/icon-changelink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg
admin/img/selector-icons.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg
admin/img/calendar-icons.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg
admin/img/tooltag-arrowright.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg
admin/img/inline-delete.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg
admin/img/icon-yes.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg
admin/img/icon-unknown-alt.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg
admin/img/icon-viewlink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg
admin/img/search.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/search.svg
admin/img/icon-deletelink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg
admin/img/icon-hidelink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-hidelink.svg
admin/img/README.txt /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/README.txt
admin/img/LICENSE /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/LICENSE
admin/img/icon-calendar.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg
admin/img/tooltag-add.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg
admin/img/icon-unknown.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg
admin/img/icon-addlink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg
admin/img/icon-no.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-no.svg
admin/img/gis/move_vertex_off.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg
admin/img/gis/move_vertex_on.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg
admin/js/SelectBox.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectBox.js
admin/js/jquery.init.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/jquery.init.js
admin/js/inlines.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/inlines.js
admin/js/filters.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/filters.js
admin/js/unusable_password_field.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/unusable_password_field.js
admin/js/change_form.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/change_form.js
admin/js/autocomplete.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/autocomplete.js
admin/js/nav_sidebar.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js
admin/js/popup_response.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/popup_response.js
admin/js/SelectFilter2.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js
admin/js/actions.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/actions.js
admin/js/core.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/core.js
admin/js/cancel.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/cancel.js
admin/js/prepopulate.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate.js
admin/js/urlify.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/urlify.js
admin/js/calendar.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/calendar.js
admin/js/prepopulate_init.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js
admin/js/theme.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/theme.js
admin/js/admin/DateTimeShortcuts.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
admin/js/admin/RelatedObjectLookups.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
admin/js/vendor/select2/select2.full.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js
admin/js/vendor/select2/select2.full.min.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js
admin/js/vendor/select2/LICENSE.md /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md
admin/js/vendor/select2/i18n/zh-CN.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js
admin/js/vendor/select2/i18n/sr-Cyrl.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js
admin/js/vendor/select2/i18n/uk.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js
admin/js/vendor/select2/i18n/ar.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js
admin/js/vendor/select2/i18n/ka.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js
admin/js/vendor/select2/i18n/bn.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js
admin/js/vendor/select2/i18n/pt.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js
admin/js/vendor/select2/i18n/hi.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js
admin/js/vendor/select2/i18n/dsb.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js
admin/js/vendor/select2/i18n/bs.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js
admin/js/vendor/select2/i18n/ru.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js
admin/js/vendor/select2/i18n/ms.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js
admin/js/vendor/select2/i18n/et.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js
admin/js/vendor/select2/i18n/sl.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js
admin/js/vendor/select2/i18n/he.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js
admin/js/vendor/select2/i18n/is.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js
admin/js/vendor/select2/i18n/cs.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js
admin/js/vendor/select2/i18n/sq.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js
admin/js/vendor/select2/i18n/sv.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js
admin/js/vendor/select2/i18n/ne.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js
admin/js/vendor/select2/i18n/ko.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js
admin/js/vendor/select2/i18n/vi.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js
admin/js/vendor/select2/i18n/ca.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js
admin/js/vendor/select2/i18n/id.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js
admin/js/vendor/select2/i18n/nb.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js
admin/js/vendor/select2/i18n/hr.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js
admin/js/vendor/select2/i18n/af.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js
admin/js/vendor/select2/i18n/de.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js
admin/js/vendor/select2/i18n/mk.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js
admin/js/vendor/select2/i18n/hy.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js
admin/js/vendor/select2/i18n/it.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js
admin/js/vendor/select2/i18n/hu.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js
admin/js/vendor/select2/i18n/ja.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js
admin/js/vendor/select2/i18n/sk.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js
admin/js/vendor/select2/i18n/hsb.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js
admin/js/vendor/select2/i18n/ro.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js
admin/js/vendor/select2/i18n/en.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js
admin/js/vendor/select2/i18n/el.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js
admin/js/vendor/select2/i18n/fa.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js
admin/js/vendor/select2/i18n/pt-BR.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js
admin/js/vendor/select2/i18n/da.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js
admin/js/vendor/select2/i18n/sr.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js
admin/js/vendor/select2/i18n/ps.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js
admin/js/vendor/select2/i18n/lt.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js
admin/js/vendor/select2/i18n/az.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js
admin/js/vendor/select2/i18n/fr.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js
admin/js/vendor/select2/i18n/fi.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js
admin/js/vendor/select2/i18n/tk.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js
admin/js/vendor/select2/i18n/th.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js
admin/js/vendor/select2/i18n/gl.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js
admin/js/vendor/select2/i18n/eu.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js
admin/js/vendor/select2/i18n/es.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js
admin/js/vendor/select2/i18n/km.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js
admin/js/vendor/select2/i18n/bg.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js
admin/js/vendor/select2/i18n/lv.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js
admin/js/vendor/select2/i18n/zh-TW.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js
admin/js/vendor/select2/i18n/pl.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js
admin/js/vendor/select2/i18n/tr.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js
admin/js/vendor/select2/i18n/nl.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js
admin/js/vendor/xregexp/xregexp.min.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js
admin/js/vendor/xregexp/LICENSE.txt /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt
admin/js/vendor/xregexp/xregexp.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js
admin/js/vendor/jquery/jquery.min.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js
admin/js/vendor/jquery/jquery.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js
admin/js/vendor/jquery/LICENSE.txt /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt
account/js/account.js /usr/local/lib/python3.12/site-packages/allauth/account/static/account/js/account.js
account/js/onload.js /usr/local/lib/python3.12/site-packages/allauth/account/static/account/js/onload.js
django_extensions/css/jquery.autocomplete.css /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/css/jquery.autocomplete.css
django_extensions/img/indicator.gif /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/img/indicator.gif
django_extensions/js/jquery.ajaxQueue.js /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/js/jquery.ajaxQueue.js
django_extensions/js/jquery.autocomplete.js /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/js/jquery.autocomplete.js
django_extensions/js/jquery.bgiframe.js /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/js/jquery.bgiframe.js
markdownx/admin/css/markdownx.css /usr/local/lib/python3.12/site-packages/markdownx/static/markdownx/admin/css/markdownx.css
markdownx/admin/css/markdownx.min.css /usr/local/lib/python3.12/site-packages/markdownx/static/markdownx/admin/css/markdownx.min.css
markdownx/js/markdownx.min.js /usr/local/lib/python3.12/site-packages/markdownx/static/markdownx/js/markdownx.min.js
markdownx/js/markdownx.js /usr/local/lib/python3.12/site-packages/markdownx/static/markdownx/js/markdownx.js
django_htmx/htmx.min.js /usr/local/lib/python3.12/site-packages/django_htmx/static/django_htmx/htmx.min.js
django_htmx/htmx.js /usr/local/lib/python3.12/site-packages/django_htmx/static/django_htmx/htmx.js
django_htmx/django-htmx.js /usr/local/lib/python3.12/site-packages/django_htmx/static/django_htmx/django-htmx.js
admin/rosetta/css/rosetta.css /usr/local/lib/python3.12/site-packages/rosetta/static/admin/rosetta/css/rosetta.css
admin/rosetta/js/rosetta.js /usr/local/lib/python3.12/site-packages/rosetta/static/admin/rosetta/js/rosetta.js
admin/img/icon_searchbox_rosetta.png /usr/local/lib/python3.12/site-packages/rosetta/static/admin/img/icon_searchbox_rosetta.png
notifications/notify.js /usr/local/lib/python3.12/site-packages/notifications/static/notifications/notify.js
lms_base/fonts/Inter-VariableFont_opsz,wght.ttf /app/project/lms_base/static/lms_base/fonts/Inter-VariableFont_opsz,wght.ttf
lms_base/fonts/PTSerif-BoldItalic.ttf /app/project/lms_base/static/lms_base/fonts/PTSerif-BoldItalic.ttf
lms_base/fonts/PTSerif-Regular.ttf /app/project/lms_base/static/lms_base/fonts/PTSerif-Regular.ttf
lms_base/fonts/Inter-Italic-VariableFont_opsz,wght.ttf /app/project/lms_base/static/lms_base/fonts/Inter-Italic-VariableFont_opsz,wght.ttf
lms_base/fonts/PTSerif-Italic.ttf /app/project/lms_base/static/lms_base/fonts/PTSerif-Italic.ttf
lms_base/fonts/PTSerif-Bold.ttf /app/project/lms_base/static/lms_base/fonts/PTSerif-Bold.ttf
lms_base/css/lms_base_main.css /app/project/lms_base/static/lms_base/css/lms_base_main.css
lms_base/css/_codehilite_dark.css /app/project/lms_base/static/lms_base/css/_codehilite_dark.css
lms_base/css/_lms_base_variables.css /app/project/lms_base/static/lms_base/css/_lms_base_variables.css
lms_base/css/_lms_base.css /app/project/lms_base/static/lms_base/css/_lms_base.css
lms_base/css/_codehilite.css /app/project/lms_base/static/lms_base/css/_codehilite.css
lms_base/css/_codehilite_light.css /app/project/lms_base/static/lms_base/css/_codehilite_light.css
lms_base/css/fonts.css /app/project/lms_base/static/lms_base/css/fonts.css
lms_base/css/_lms_tales.css /app/project/lms_base/static/lms_base/css/_lms_tales.css
lms_base/css/_search.css /app/project/lms_base/static/lms_base/css/_search.css
lms_base/js/lms_base.js /app/project/lms_base/static/lms_base/js/lms_base.js
browserconfig.xml /app/project/lms_tales/static/browserconfig.xml
lms_tales/js/lms_tales.js /app/project/lms_tales/static/lms_tales/js/lms_tales.js
reporting/bar-chart.png /app/project/reporting/static/reporting/bar-chart.png
reporting/js/runtime.js /app/project/reporting/static/reporting/js/runtime.js
reporting/js/index.js /app/project/reporting/static/reporting/js/index.js
reporting/js/views_summary.js /app/project/reporting/static/reporting/js/views_summary.js
debug_toolbar/css/toolbar.css /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css
debug_toolbar/css/print.css /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/css/print.css
debug_toolbar/js/utils.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js
debug_toolbar/js/toolbar.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js
debug_toolbar/js/history.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/history.js
debug_toolbar/js/timer.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js
debug_toolbar/js/redirect.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js

Gabarits (31 affichés)

Template-Pfade

  1. /app/project/templates
  2. /usr/local/lib/python3.12/site-packages/django/forms/templates

Templates

new_filter_courses.html
/app/project/lms_tales/templates/new_filter_courses.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'} {'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'is_editor': False, 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">'}
lms_tales_base.html
/app/project/templates/lms_tales_base.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'} {'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'is_editor': False, 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">'}
base.html
/app/project/templates/base.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'} {'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'is_editor': False, 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">'}
components/header.html
/app/project/templates/components/header.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'} {'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'is_editor': False, 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">'} {'block': <Block Node: header. Contents: [<TextNode: '\n '>, <IncludeNode: template=<FilterExpression '"components/header.html"'>>, <TextNode: '\n '>]>}
components/tales-messages.html
/app/project/lms_tales/templates/components/tales-messages.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'} {'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'is_editor': False, 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">'} {'block': <Block Node: main-content. Contents: [<TextNode: '\n <main id="ma'>, <Block Node: messages. Contents: [<TextNode: '\n '>, <TextNode: '\n '>, <IncludeNode: template=<FilterExpression '"components/tales-messages.html"'>>, <TextNode: '\n '>]>, <TextNode: '\n '>, <Block Node: content. Contents: [<TextNode: '\n '>]>, <TextNode: '\n </main>\n '>]>} {'block': <Block Node: messages. Contents: [<TextNode: '\n '>, <TextNode: '\n '>, <IncludeNode: template=<FilterExpression '"components/tales-messages.html"'>>, <TextNode: '\n '>]>}
bootstrap5/field.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882ef288b90>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark" placeholder="Search by title"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/help_text_and_errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882ef288b90>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark" placeholder="Search by title"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/field_errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882ef288b90>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark" placeholder="Search by title"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/help_text.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882ef288b90>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark" placeholder="Search by title"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/column.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/column.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'div': <crispy_forms.layout.Column object at 0x7882eedb2db0>, 'fields': '\n' '\n' '\n' ' \n' ' <div id="div_id_title" class="mb-3">\n' ' \n' ' \n' ' <label\n' ' for="id_title" class="form-label">\n' ' Title\n' ' </label>\n' ' \n' '\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' <input type="text" name="title" ' 'class="rounded-0 border-dark textinput form-control" ' 'placeholder="Search by title" id="id_title">\n' ' \n' ' \n' ' \n' '\n' '\n' ' \n' '\n' '\n' '\n' '\n' ' \n' '\n' '\n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' </div>\n' ' \n' '\n'}
bootstrap5/field.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882f41e34d0>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/help_text_and_errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882f41e34d0>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/field_errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882f41e34d0>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/help_text.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882f41e34d0>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/column.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/column.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'div': <crispy_forms.layout.Column object at 0x7882eedb3c20>, 'fields': '\n' '\n' '\n' ' \n' ' <div id="div_id_categories" class="mb-3">\n' ' \n' ' \n' ' <label\n' ' for="id_categories" class="form-label">\n' ' Category\n' ' </label>\n' ' \n' '\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' <select name="categories" ' 'class="rounded-0 border-dark select form-select" ' 'id="id_categories">\n' ' <option value="">All Categories</option>\n' '\n' ' <option value="8">Compétences numériques</option>\n' '\n' ' <option value="7">Éthique</option>\n' '\n' ' <option value="1">Anthropologie</option>\n' '\n' ' <option value="4">Histoire</option>\n' '\n' ' <option value="5">Études et enseignement</option>\n' '\n' ' <option value="13">Littérature</option>\n' '\n' ' <option value="9">Médias</option>\n' '\n' ' <option value="3" selected>Médecine &amp; santé ' 'publique</option>\n' '\n' ' <option value="2">Musique</option>\n' '\n' ' <option value="12">Développement durable et ' 'environnement</option>\n' '\n' ' <option value="11">Sciences naturelles, mathématiques</option>\n' '\n' ' <option value="14">Politique et société</option>\n' '\n' ' <option value="6">Psychologie et psychothérapie</option>\n' '\n' ' <option value="10">Droit</option>\n' '\n' ' <option value="15">Économie et gestion</option>\n' '\n' '</select>\n' ' \n' ' \n' ' \n' ' \n' '\n' '\n' ' \n' '\n' '\n' '\n' '\n' ' \n' '\n' '\n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' </div>\n' ' \n' '\n'}
bootstrap5/field.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882eeea7470>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/help_text_and_errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882eeea7470>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/field_errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882eeea7470>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/help_text.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882eeea7470>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/column.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/column.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'div': <crispy_forms.layout.Column object at 0x7882eedb2f90>, 'fields': '\n' '\n' '\n' ' \n' ' <div id="div_id_languages" class="mb-3">\n' ' \n' ' \n' ' <label\n' ' for="id_languages" class="form-label">\n' ' Language\n' ' </label>\n' ' \n' '\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' <select name="languages" ' 'class="rounded-0 border-dark select form-select" ' 'id="id_languages">\n' ' <option value="" selected>All Languages</option>\n' '\n' ' <option value="16">Allemand</option>\n' '\n' ' <option value="17">Anglais</option>\n' '\n' ' <option value="18">Français</option>\n' '\n' '</select>\n' ' \n' ' \n' ' \n' ' \n' '\n' '\n' ' \n' '\n' '\n' '\n' '\n' ' \n' '\n' '\n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' </div>\n' ' \n' '\n'}
bootstrap5/field.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882eedb0d10>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/help_text_and_errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882eedb0d10>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/field_errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882eedb0d10>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/help_text.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field': <django.forms.boundfield.BoundField object at 0x7882eedb0d10>, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': ' class="rounded-0 border-dark"', 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'labelclass': None, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/layout/column.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/column.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'div': <crispy_forms.layout.Column object at 0x7882eedb1610>, 'fields': '\n' '\n' '\n' ' \n' ' <div id="div_id_order_by" class="mb-3">\n' ' \n' ' \n' ' <label\n' ' for="id_order_by" class="form-label">\n' ' Order by\n' ' </label>\n' ' \n' '\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' <select name="order_by" ' 'class="rounded-0 border-dark csvselect form-select" ' 'id="id_order_by">\n' ' <option value="title">Title (A - Z)</option>\n' '\n' ' <option value="-title">Title (Z - A)</option>\n' '\n' ' <option value="-metrics__interactions">Views (Most - ' 'Least)</option>\n' '\n' ' <option value="metrics__interactions">Views (Least - ' 'Most)</option>\n' '\n' ' <option value="-modified">Last modified (Recent - ' 'Oldest)</option>\n' '\n' '</select>\n' ' \n' ' \n' ' \n' ' \n' '\n' '\n' ' \n' '\n' '\n' '\n' '\n' ' \n' '\n' '\n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' </div>\n' ' \n' '\n'}
bootstrap5/layout/row.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/row.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'div': <crispy_forms.layout.Row object at 0x7882eedb2510>, 'fields': '<div \n' ' class="col-md-3" >\n' ' \n' '\n' '\n' ' \n' ' <div id="div_id_title" class="mb-3">\n' ' \n' ' \n' ' <label\n' ' for="id_title" class="form-label">\n' ' Title\n' ' </label>\n' ' \n' '\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' <input type="text" name="title" ' 'class="rounded-0 border-dark textinput form-control" ' 'placeholder="Search by title" id="id_title">\n' ' \n' ' \n' ' \n' '\n' '\n' ' \n' '\n' '\n' '\n' '\n' ' \n' '\n' '\n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' </div>\n' ' \n' '\n' '\n' '</div>\n' '\n' '\n' '<div \n' ' class="col-md-3" >\n' ' \n' '\n' '\n' ' \n' ' <div id="div_id_categories" class="mb-3">\n' ' \n' ' \n' ' <label\n' ' for="id_categories" class="form-label">\n' ' Category\n' ' </label>\n' ' \n' '\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' <select name="categories" ' 'class="rounded-0 border-dark select form-select" ' 'id="id_categories">\n' ' <option value="">All Categories</option>\n' '\n' ' <option value="8">Compétences numériques</option>\n' '\n' ' <option value="7">Éthique</option>\n' '\n' ' <option value="1">Anthropologie</option>\n' '\n' ' <option value="4">Histoire</option>\n' '\n' ' <option value="5">Études et enseignement</option>\n' '\n' ' <option value="13">Littérature</option>\n' '\n' ' <option value="9">Médias</option>\n' '\n' ' <option value="3" selected>Médecine &amp; santé ' 'publique</option>\n' '\n' ' <option value="2">Musique</option>\n' '\n' ' <option value="12">Développement durable et ' 'environnement</option>\n' '\n' ' <option value="11">Sciences naturelles, mathématiques</option>\n' '\n' ' <option value="14">Politique et société</option>\n' '\n' ' <option value="6">Psychologie et psychothérapie</option>\n' '\n' ' <option value="10">Droit</option>\n' '\n' ' <option value="15">Économie et gestion</option>\n' '\n' '</select>\n' ' \n' ' \n' ' \n' ' \n' '\n' '\n' ' \n' '\n' '\n' '\n' '\n' ' \n' '\n' '\n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' </div>\n' ' \n' '\n' '\n' '</div>\n' '\n' '\n' '<div \n' ' class="col-md-2" >\n' ' \n' '\n' '\n' ' \n' ' <div id="div_id_languages" class="mb-3">\n' ' \n' ' \n' ' <label\n' ' for="id_languages" class="form-label">\n' ' Language\n' ' </label>\n' ' \n' '\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' <select name="languages" ' 'class="rounded-0 border-dark select form-select" ' 'id="id_languages">\n' ' <option value="" selected>All Languages</option>\n' '\n' ' <option value="16">Allemand</option>\n' '\n' ' <option value="17">Anglais</option>\n' '\n' ' <option value="18">Français</option>\n' '\n' '</select>\n' ' \n' ' \n' ' \n' ' \n' '\n' '\n' ' \n' '\n' '\n' '\n' '\n' ' \n' '\n' '\n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' </div>\n' ' \n' '\n' '\n' '</div>\n' '\n' '\n' '<div \n' ' class="col-md-2 ms-auto" >\n' ' \n' '\n' '\n' ' \n' ' <div id="div_id_order_by" class="mb-3">\n' ' \n' ' \n' ' <label\n' ' for="id_order_by" class="form-label">\n' ' Order by\n' ' </label>\n' ' \n' '\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' <select name="order_by" ' 'class="rounded-0 border-dark csvselect form-select" ' 'id="id_order_by">\n' ' <option value="title">Title (A - Z)</option>\n' '\n' ' <option value="-title">Title (Z - A)</option>\n' '\n' ' <option value="-metrics__interactions">Views (Most - ' 'Least)</option>\n' '\n' ' <option value="metrics__interactions">Views (Least - ' 'Most)</option>\n' '\n' ' <option value="-modified">Last modified (Recent - ' 'Oldest)</option>\n' '\n' '</select>\n' ' \n' ' \n' ' \n' ' \n' '\n' '\n' ' \n' '\n' '\n' '\n' '\n' ' \n' '\n' '\n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' ' </div>\n' ' \n' '\n' '\n' '</div>\n' '\n' '\n'}
bootstrap5/whole_uni_form.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/whole_uni_form.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': '', 'form': <TalesCourseFilterForm bound=True, valid=True, fields=(title;categories;languages;order_by)>, 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/display_form.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/display_form.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': '', 'form': <TalesCourseFilterForm bound=True, valid=True, fields=(title;categories;languages;order_by)>, 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/errors.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/errors.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': '', 'form': <TalesCourseFilterForm bound=True, valid=True, fields=(title;categories;languages;order_by)>, 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
bootstrap5/inputs.html
/usr/local/lib/python3.12/site-packages/crispy_bootstrap5/templates/bootstrap5/inputs.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'False': False, 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'None': None, 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'True': True, 'attrs': {}, 'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>, 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'disable_csrf': False, 'error_text_inline': True, 'field_class': '', 'field_template': 'bootstrap5/field.html', 'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'flat_attrs': '', 'form': <TalesCourseFilterForm bound=True, valid=True, fields=(title;categories;languages;order_by)>, 'form_action': '', 'form_attrs': {}, 'form_class': '', 'form_error_title': '', 'form_id': '', 'form_method': 'get', 'form_show_errors': True, 'form_show_labels': True, 'form_tag': True, 'formset_error_title': '', 'help_text_inline': False, 'include_media': True, 'inputs': [], 'is_bound': True, 'is_editor': False, 'is_formset': False, 'label_class': '', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">', 'template_pack': 'bootstrap5', 'use_custom_control': True, 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'}
htmx/new_filtered_course_list.html
/app/project/lms_tales/templates/htmx/new_filtered_course_list.html
Afficher/masquer le contexte {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'fr', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef22e5a0>>>'} {'filter': <lms_tales.filters.TalesCourseFilter object at 0x7882eecbc050>, 'is_editor': False, 'sentry_trace_meta': '<meta name="sentry-trace" ' 'content="6178211a14bf4b119f0ad3dcf57b7433-8e12fa603651dfa8-0"><meta ' 'name="baggage" ' 'content="sentry-trace_id=6178211a14bf4b119f0ad3dcf57b7433,sentry-sample_rand=0.412006,sentry-environment=production,sentry-release=tales%40dev,sentry-public_key=7b87fbc6652f485cb8b4b6dfd63debe4,sentry-transaction=/de/courses/,sentry-sample_rate=0.01,sentry-sampled=false">'} {'block': <Block Node: main-content. Contents: [<TextNode: '\n <main id="ma'>, <Block Node: messages. Contents: [<TextNode: '\n '>, <TextNode: '\n '>, <IncludeNode: template=<FilterExpression '"components/tales-messages.html"'>>, <TextNode: '\n '>]>, <TextNode: '\n '>, <Block Node: content. Contents: [<TextNode: '\n '>]>, <TextNode: '\n </main>\n '>]>} {'block': <Block Node: content. Contents: [<TextNode: '\n <div class="containe'>, <URLNode view_name=''tales:course_list'' args=[] kwargs={} as=None>, <TextNode: '"\n hx-target="'>, <django.template.defaulttags.CsrfTokenNode object at 0x7882eee358e0>, <TextNode: '\n '>, <crispy_forms.templatetags.crispy_forms_tags.CrispyFormNode object at 0x7882eee35ac0>, <TextNode: '\n </form>\n '>, <IncludeNode: template=<FilterExpression '"htmx/new_filtered_course_list.html"'>>, <TextNode: '\n </div>\n'>]>} {'courses': '<<multilingualsoftdeletablequeryset of lms_tales.TalesCourse>>'}

Processeurs de contexte

django.template.context_processors.csrf
Afficher/masquer le contexte {'csrf_token': <SimpleLazyObject: 'ISqOMytZwUiFSokKzOttPqU2OEAFco3F6h9tmiPjYk3RAg0caUT1VzWyixUrA3BB'>}
django.template.context_processors.debug
Afficher/masquer le contexte {}
django.template.context_processors.request
Afficher/masquer le contexte {'request': <WSGIRequest: GET '/fr/courses/?categories=3'>}
django.contrib.auth.context_processors.auth
Afficher/masquer le contexte {'user': <SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef22e5a0>>>)}
django.template.context_processors.i18n
Afficher/masquer le contexte {'LANGUAGES': (('de', 'Allemand'), ('en', 'Anglais'), ('fr', 'Français')), 'LANGUAGE_CODE': 'fr', 'LANGUAGE_BIDI': False}
django.template.context_processors.media
Afficher/masquer le contexte {'MEDIA_URL': '/media/'}
django.template.context_processors.static
Afficher/masquer le contexte {'STATIC_URL': '/static/'}
django.template.context_processors.tz
Afficher/masquer le contexte {'TIME_ZONE': 'Europe/Zurich'}
django.contrib.messages.context_processors.messages
Afficher/masquer le contexte {'messages': <FallbackStorage: request=<WSGIRequest: GET '/fr/courses/?categories=3'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}}
utils.context_processors.ci_info
Afficher/masquer le contexte {'CI_COMMIT_TAG': '2.6.23', 'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'RELEASE_NAME': '', 'DEPLOY_ENV': 'staging'}

Appels au cache depuis 1 moteur

Résumé

Nombre total d'appels Temps total Succès de cache Défauts de cache
14 6,12459983676672 ms 84 1

Commandes

add get set get_or_set touch delete clear get_many set_many delete_many has_key incr decr incr_version decr_version
0 8 0 0 0 0 0 5 1 0 0 0 0 0 0

Appels

Temps (ms) Type Paramètres Paramètres nommés Moteur
0,9644 get_many (dict_keys(['b5ac959681ff06eff632d25a5961a4d3cad09b42', '542c27005f4e84288827ce70a7d49bc73324a5e7', '887f8247d0ff979264c73b069f790024b2aa98e1', 'a2cec6efb2cb51d9fcdc73ec65d0d02848d3205f', 'af167bf678e72a9b2a64d8869d420b8d25e96148', 'f2b266a5acd7f191551fca80dea8475d456a300c', 'e5890f0f95e54c95fc7d85ffd3cd8f5079a384eb', '7d22fa9ec7aaf50b239b17bb4529f27be72f4b3d', 'fab86eaeb6f68c1bd14e3c42d6a32fc63fe5c10b', '1671d58e08fb6227d160e4add3baac34f778006f', '5634047d837b3106d3997f0611a298a16f6754cb', '38c0c9db04f183fb89086db2a3a02d20d5c1cbda', '33cd0b10f8c2fd53802b0948820b8b58da6bb27c', 'dbdc4e6f3de4931fbb7e39044291d87c49a581a7', 'bf555e2c224baeeac5838ee69c053900ce037b1d', '452aaa2adbf5d826d715538ebfd87013a599bacd', '5ef73f3d610667d7836abd847979ad8d02582140', '28b4f1c78186b497fc0611b76d5609a36a170804', 'acd1c2a120952e0445e89d8a2cc8faa99cc73454', '3fdb5b63faddfa01f5ebd09a89b74c9b3ec742bf', 'bc41695a90f568da6f9c44d14dbb30130bea76db', '6d6bdc7046f6d1410bd41d09cd570831af97fd31', 'f6e1a4d48790db63f8cb8c5653192a74ca00d34a', 'e19dd8b0e8a705c5914b55bbeb94d01f20e5368e', '138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', 'd890e5bc0b77c02793036efa76f50a25770a52a7', 'd00779073776b2287204a6fa5336494275fc73d5', '76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'd144abeb0db81d5dfea390a27c6d616aa1783141', 'a78875b90f65061214a7b7eaa1a66176310060a1', 'd1accdb7a5e2af4fd7d0fc7e34b048f555cd65a0', '0b7593abe25ebbf222c98d71b199a17877e17478', 'da8bff0e0d25742e869a69b7508c37ccde5f8f33', '0098dff618e4e4ce8b226fb3dcd5d9042e69eb75', '8e3f73e6feaebee5ffbc4479f566917f08b4bbca', '5c50c6b3292213266ec6601a46b9ff857efec10a', '9ba11033f2e0b0478fa7ea0cfcde90c7ea880b1b', '810de96c2cc412e55eb18a19206c9b4f4879ec68', 'da75293c9ac4e9ae833da9fecd1ab668d629ce49', 'e4392949c2513e35c4d436a230e913efc13e4556', '9a3409722cd89bb29bc78c6bd4bca2cc2aad3e96', '5bd1ef7c64b457cbb725c42d97969db3ebe85f66', 'f3d241856fbbba355385868203e06010b65b882e', '1511f7c2f0ac6c43b58dfa27858c3d8561280f80', 'e2a6b84fc2a64f0ca59dd6e95fe6e1a5f3850ad5', 'b72f66480a030f14a954ea7eeb482d64fa1da084', '9e3a2b98ae55fa975425fa81a4e6e13342147b8a', '0e90ed3afbea5b3254d013a2b352642aaa2ce984', '2b2eb1f58e7ba0ac1ae04f9e9c95bde41f64e3fc', 'f38ac9d1db097d95b5062273e0a941d2da616361', 'cf84cec99a10af4507238b31bfce2171063a0c1d', 'c9b253ceb06244b30c24377ae68ae44353b4b3c4', '946a725506b18b4afe14d273540101238984908d', '53be6fda1fd748ebf22448f6a7198ac840f72333', 'd34b8ed7c3bb0d3a712a5e42065744014bfe1542', '79e961accf5948510a59b713e9ce3e05149ecb9a', '278c8c5d27e7320e3af5c0e58455e4cde02b8a72', '6fba3302f986e5123578c49cb4b67a30260902ef', '2cba4b775af45bd99b4d40c0eeea58bc34f649af', 'c3887a52bdae91615f95386118c2933047f56eda', 'a8659af44b2a1917aa38ef15409b212aaf5fec76']),) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(40)
  self.collect_invalidations()

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in collect_invalidations(52)
  for cache_key, timestamp in cache.get_many(

0,5699 get_many (['9e3a2b98ae55fa975425fa81a4e6e13342147b8a', '0e90ed3afbea5b3254d013a2b352642aaa2ce984', 'a175fbf0a67b238ed9014fef66a4cd5d269575b6'],) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/crispy_forms/templatetags/crispy_forms_tags.py in render(199)
  c = self.get_render(context).flatten()

/usr/local/lib/python3.12/site-packages/crispy_forms/templatetags/crispy_forms_tags.py in get_render(117)
  actual_form.form_html = helper.render_layout(

/usr/local/lib/python3.12/site-packages/crispy_forms/helper.py in render_layout(276)
  html = self.layout.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(142)
  return self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(748)
  fields = self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(748)
  fields = self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(947)
  return self.get_rendered_fields(

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(137)
  html = template.render(context.flatten())

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/usr/local/lib/python3.12/site-packages/django/forms/boundfield.py in css_classes(227)
  if self.errors and hasattr(self.form, "error_css_class"):

/usr/local/lib/python3.12/site-packages/django/forms/boundfield.py in errors(74)
  return self.form.errors.get(

/usr/local/lib/python3.12/site-packages/django/forms/forms.py in errors(201)
  self.full_clean()

/usr/local/lib/python3.12/site-packages/django/forms/forms.py in full_clean(337)
  self._clean_fields()

/usr/local/lib/python3.12/site-packages/django/forms/forms.py in _clean_fields(345)
  self.cleaned_data[name] = field._clean_bound_field(bf)

/usr/local/lib/python3.12/site-packages/django/forms/fields.py in _clean_bound_field(273)
  return self.clean(value)

/usr/local/lib/python3.12/site-packages/django/forms/fields.py in clean(208)
  value = self.to_python(value)

/usr/local/lib/python3.12/site-packages/django_filters/fields.py in to_python(311)
  return super().to_python(value)

/usr/local/lib/python3.12/site-packages/django/forms/models.py in to_python(1564)
  value = self.queryset.get(**{key: value})

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0,5048 get_many (['9e3a2b98ae55fa975425fa81a4e6e13342147b8a', '0e90ed3afbea5b3254d013a2b352642aaa2ce984', '66d86a9d4d29d0b80e9d451d977c1867af11b41a'],) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/crispy_forms/templatetags/crispy_forms_tags.py in render(199)
  c = self.get_render(context).flatten()

/usr/local/lib/python3.12/site-packages/crispy_forms/templatetags/crispy_forms_tags.py in get_render(117)
  actual_form.form_html = helper.render_layout(

/usr/local/lib/python3.12/site-packages/crispy_forms/helper.py in render_layout(276)
  html = self.layout.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(142)
  return self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(748)
  fields = self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(748)
  fields = self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(947)
  return self.get_rendered_fields(

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(137)
  html = template.render(context.flatten())

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/crispy_forms/templatetags/crispy_forms_field.py in render(125)
  return str(field)

/usr/local/lib/python3.12/site-packages/django/forms/utils.py in __str__(79)
  return self.as_widget()

/usr/local/lib/python3.12/site-packages/django/forms/boundfield.py in as_widget(108)
  return widget.render(

/usr/local/lib/python3.12/site-packages/django/forms/widgets.py in render(329)
  context = self.get_context(name, value, attrs)

/usr/local/lib/python3.12/site-packages/django/forms/widgets.py in get_context(830)
  context = super().get_context(name, value, attrs)

/usr/local/lib/python3.12/site-packages/django/forms/widgets.py in get_context(781)
  context["widget"]["optgroups"] = self.optgroups(

/usr/local/lib/python3.12/site-packages/django/forms/widgets.py in optgroups(721)
  for index, (option_value, option_label) in enumerate(self.choices):

/usr/local/lib/python3.12/site-packages/django_filters/fields.py in __iter__(256)
  yield from iterable

/usr/local/lib/python3.12/site-packages/django/forms/models.py in __iter__(1424)
  for obj in queryset:

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0,4497 get_many (['9e3a2b98ae55fa975425fa81a4e6e13342147b8a', '0e90ed3afbea5b3254d013a2b352642aaa2ce984', '06ab284e42bd3489f10391af938ec2310f0d9ca4'],) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/crispy_forms/templatetags/crispy_forms_tags.py in render(199)
  c = self.get_render(context).flatten()

/usr/local/lib/python3.12/site-packages/crispy_forms/templatetags/crispy_forms_tags.py in get_render(117)
  actual_form.form_html = helper.render_layout(

/usr/local/lib/python3.12/site-packages/crispy_forms/helper.py in render_layout(276)
  html = self.layout.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(142)
  return self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(748)
  fields = self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(748)
  fields = self.get_rendered_fields(form, context, template_pack, **kwargs)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(65)
  return field.render(form, context, template_pack=template_pack)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in render(947)
  return self.get_rendered_fields(

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in get_rendered_fields(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/layout.py in <genexpr>(105)
  "".join(render_field(field, form, context, template_pack=template_pack, **kwargs) for field in self.fields)

/usr/local/lib/python3.12/site-packages/crispy_forms/utils.py in render_field(137)
  html = template.render(context.flatten())

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/crispy_forms/templatetags/crispy_forms_field.py in render(125)
  return str(field)

/usr/local/lib/python3.12/site-packages/django/forms/utils.py in __str__(79)
  return self.as_widget()

/usr/local/lib/python3.12/site-packages/django/forms/boundfield.py in as_widget(108)
  return widget.render(

/usr/local/lib/python3.12/site-packages/django/forms/widgets.py in render(329)
  context = self.get_context(name, value, attrs)

/usr/local/lib/python3.12/site-packages/django/forms/widgets.py in get_context(830)
  context = super().get_context(name, value, attrs)

/usr/local/lib/python3.12/site-packages/django/forms/widgets.py in get_context(781)
  context["widget"]["optgroups"] = self.optgroups(

/usr/local/lib/python3.12/site-packages/django/forms/widgets.py in optgroups(721)
  for index, (option_value, option_label) in enumerate(self.choices):

/usr/local/lib/python3.12/site-packages/django_filters/fields.py in __iter__(256)
  yield from iterable

/usr/local/lib/python3.12/site-packages/django/forms/models.py in __iter__(1424)
  for obj in queryset:

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0,4695 get_many (['b6315cb80b5148d2e69ecec43051aa7717627164', '0e90ed3afbea5b3254d013a2b352642aaa2ce984', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'd444ded1d9810ff19b6ca6d77383228ea3d01784'],) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(326)
  if match:

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

1,1038 set_many ({'d444ded1d9810ff19b6ca6d77383228ea3d01784': (1765768979.0550313, [[(13, datetime.datetime(2020, 11, 2, 15, 9, 33, 652377, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 9, 14, 28, 12, 262295, tzinfo=datetime.timezone.utc), 'published', datetime.datetime(2024, 11, 26, 8, 29, 25, 264808, tzinfo=datetime.timezone.utc), False, '[]', "One Health : Connecter les humains, les animaux et l'environnement", "One Health : Connecter les humains, les animaux et l'environnement", 'One Health: Connecting Humans, Animals and the Environment', "One Health : Connecter les humains, les animaux et l'environnement", '', None, None, None, 'Dieser Kurs erforscht One Health aus verschiedenen wissenschaftlichen Perspektiven. Kurssprachen: Französisch, Englisch.', 'Dieser Kurs erforscht One Health aus verschiedenen wissenschaftlichen Perspektiven. Kurssprachen: Französisch, Englisch.', 'This course explores how One Health works in practice, bringing together different scientific perspectives. Course languages: English, French.', 'Ce cours explore le fonctionnement pratique de One Health avec différentes perspectives scientifiques. Langues du cours : français, anglais.', 'one-health-french-test-version/Course_image_one_health_06_course_image_tales_var_Kopie.png', 'one-health-connecter-les-humains-les-animaux-et-lenvironnement', "A l'ère de la mondialisation, d’anciennes pathologies perdurent et de nouvelles se propagent plus rapidement que jamais grâce aux écosystèmes interconnectés et aux liens étroits existant entre l’être humain et les animaux. En mettant en évidence cette interdépendance, One Health appelle à une coopération renforcée entre la santé humaine et la santé animale. \r\n{.lead}\r\n\r\nCe cours explore le fonctionnement pratique de One Health en regroupant différentes perspectives scientifiques. Vous étudierez, par exemple, les données sur la couverture vaccinale et débattrez de l'amélioration de la sécurité sanitaire des aliments. Vous apprendrez à calculer la valeur ajoutée résultant de l'approche One Health à l'aide d'études de cas. \r\n\r\nIl vous suffit d'apporter à ce cours un intérêt pour les relations entre êtres humains et animaux dans différentes cultures. Vous n'avez pas besoin de connaissances préalables en médecine humaine ou vétérinaire. Il s’adresse aux non-professionnels, aux professionnels de la santé, aux politiques, aux ONG et aux étudiants en médecine vétérinaire et humaine du monde entier.\r\n\r\nPour participer à ce cours, il est utile de disposer d'un logiciel type feuille de calcul. Cependant, il est aussi possible de calculer les exemples à la main sur papier.\r\n\r\nUne version de ce cours a initialement été publiée sous la forme d’un MOOC (Massive Open Online Course). Pour cette raison tous les vidéos sont en Anglais. Si les sous-titres français vous gênent, appuyez sur le symbole cc en bas du lecteur vidéo pour les désélectionner. Vous pouvez aussi télécharger la transcription de chaque vidéo en bas de la page.\r\n \r\nL’ancienne structure du cours était divisée en semaines. Dans les vidéos, il y a donc quelques références à ce programme hebdomadaire. Dans le cours que vous allez suivre, les semaines ont été transformées en chapitres.\r\n \r\nLe cours actuel a été fait possible par le support de la [Direction du développement et de la coopération Suisse](https://www.eda.admin.ch/deza/fr/home.html)", "A l'ère de la mondialisation, d’anciennes pathologies perdurent et de nouvelles se propagent plus rapidement que jamais grâce aux écosystèmes interconnectés et aux liens étroits existant entre l’être humain et les animaux. En mettant en évidence cette interdépendance, One Health appelle à une coopération renforcée entre la santé humaine et la santé animale. \r\n{.lead}\r\n\r\nCe cours explore le fonctionnement pratique de One Health en regroupant différentes perspectives scientifiques. Vous étudierez, par exemple, les données sur la couverture vaccinale et débattrez de l'amélioration de la sécurité sanitaire des aliments. Vous apprendrez à calculer la valeur ajoutée résultant de l'approche One Health à l'aide d'études de cas. \r\n\r\nIl vous suffit d'apporter à ce cours un intérêt pour les relations entre êtres humains et animaux dans différentes cultures. Vous n'avez pas besoin de connaissances préalables en médecine humaine ou vétérinaire. Il s’adresse aux non-professionnels, aux professionnels de la santé, aux politiques, aux ONG et aux étudiants en médecine vétérinaire et humaine du monde entier.\r\n\r\nPour participer à ce cours, il est utile de disposer d'un logiciel type feuille de calcul. Cependant, il est aussi possible de calculer les exemples à la main sur papier.\r\n\r\nUne version de ce cours a initialement été publiée sous la forme d’un MOOC (Massive Open Online Course). Pour cette raison tous les vidéos sont en Anglais. Si les sous-titres français vous gênent, appuyez sur le symbole cc en bas du lecteur vidéo pour les désélectionner. Vous pouvez aussi télécharger la transcription de chaque vidéo en bas de la page.\r\n \r\nL’ancienne structure du cours était divisée en semaines. Dans les vidéos, il y a donc quelques références à ce programme hebdomadaire. Dans le cours que vous allez suivre, les semaines ont été transformées en chapitres.\r\n \r\nLe cours actuel a été fait possible par le support de la [Direction du développement et de la coopération Suisse](https://www.eda.admin.ch/deza/fr/home.html)", 'In today’s globalised world, old diseases pertain and new illnesses spread faster than ever thanks to interconnected ecosystems and the close ties between humans and animals. Stressing this interrelatedness, One Health calls for closer cooperation between human and animal health. \r\n{.lead}\r\n\r\nThis course explores how One Health works in practice, bringing together different scientific perspectives. You will, for instance, study vaccination coverage data and discuss food safety enhancement. You learn how to compute the added value resulting from the One Health approach using case studies. \r\n\r\nThe only thing you need to bring to this course is an interest in the relationship between human and animals in different cultures. You don’t need prior knowledge of human or veterinary medicine to benefit from this course - it addresses non-professionals as well as health professionals and those working in politics, NGOs, and students of veterinary and human medicine throughout the world.\r\n\r\nTo take part in this course it is helpful to have access to a spreadsheet calculation program. However, you may also calculate the examples by hand on paper. \r\n\r\nA version of this course was originally published as a MOOC (Massive Open Online Course)\r\nThe old course structure was divided into weeks. In the videos, there are therefore some references to this weekly programme. In the course you are about to follow, the weeks have been transformed into chapters. The current course was made possible by the support of the [Swiss Agency for Development and Cooperation](https://www.eda.admin.ch/deza/en/home.html){:target=“_blank”}.\r\n\r\n##Note##\r\nFrom **6 October 2024 until 12 January 2025** learners can log in, comment and take part in discussions with peers and lecturers, while the course content remains accessible to all. In order to comment, a login via [SWITCH edu-ID](https://eduid.ch/?lang=en){:target="_blank"} is required. The login-button is on the top right of this window.', 'A l\'ère de la mondialisation, d’anciennes pathologies perdurent et de nouvelles se propagent plus rapidement que jamais grâce aux écosystèmes interconnectés et aux liens étroits existant entre l’être humain et les animaux. En mettant en évidence cette interdépendance, One Health appelle à une coopération renforcée entre la santé humaine et la santé animale. \r\n{.lead}\r\n\r\nCe cours explore le fonctionnement pratique de One Health en regroupant différentes perspectives scientifiques. Vous étudierez, par exemple, les données sur la couverture vaccinale et débattrez de l\'amélioration de la sécurité sanitaire des aliments. Vous apprendrez à calculer la valeur ajoutée résultant de l\'approche One Health à l\'aide d\'études de cas. \r\n\r\nIl vous suffit d\'apporter à ce cours un intérêt pour les relations entre êtres humains et animaux dans différentes cultures. Vous n\'avez pas besoin de connaissances préalables en médecine humaine ou vétérinaire. Il s’adresse aux non-professionnels, aux professionnels de la santé, aux politiques, aux ONG et aux étudiants en médecine vétérinaire et humaine du monde entier.\r\n\r\nPour participer à ce cours, il est utile de disposer d\'un logiciel type feuille de calcul. Cependant, il est aussi possible de calculer les exemples à la main sur papier.\r\n\r\nUne version de ce cours a initialement été publiée sous la forme d’un MOOC (Massive Open Online Course). Pour cette raison tous les vidéos sont en Anglais. Si les sous-titres français vous gênent, appuyez sur le symbole cc en bas du lecteur vidéo pour les désélectionner. Vous pouvez aussi télécharger la transcription de chaque vidéo en bas de la page.\r\n \r\nL’ancienne structure du cours était divisée en semaines. Dans les vidéos, il y a donc quelques références à ce programme hebdomadaire. Dans le cours que vous allez suivre, les semaines ont été transformées en chapitres.\r\n \r\nLe cours actuel a été fait possible par le support de la [Direction du développement et de la coopération Suisse](https://www.eda.admin.ch/deza/fr/home.html)\r\n\r\n##Note##\r\nDu **6 octobre 2024 au 12 janvier 2025**, les apprenants peuvent s\'inscrire, commenter et participer à des discussions avec des pairs et des enseignants, tandis que le contenu du cours reste accessible à tous. Pour pouvoir commenter, il est nécessaire de se connecter via [SWITCH edu-ID](https://eduid.ch/?lang=fr){:target="_blank"}. Le bouton de connexion se trouve en haut à droite de la fenêtre.', 'Université de Bâle', 'Université de Bâle', 'University of Basel', 'Université de Bâle', 'Prof. Dr. Jakob Zinsstag \r\nSwiss Tropical and Public Health Institute (Swiss TPH)\r\nSocinstrasse 57 \r\n4051 Basel \r\n\r\nPhone: [+41 (0)61 284 81 11](tel:+41612848111) \r\nEmail : [jakob.zinsstag@swisstph.ch](mailto: jakob.zinsstag@swisstph.ch)'), (43, datetime.datetime(2022, 4, 12, 13, 37, 58, 799543, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 9, 12, 52, 40, 669961, tzinfo=datetime.timezone.utc), 'published', datetime.datetime(2024, 6, 10, 8, 39, 24, 146713, tzinfo=datetime.timezone.utc), False, '[]', 'The Resistant Mosquito', None, 'The Resistant Mosquito', None, 'Staying Ahead of the Game in the Fight against Malaria', None, 'Staying Ahead of the Game in the Fight against Malaria', None, 'Entdecken Sie Ansätze und Fortschritte im Kampf gegen die Malariamücke mit Hilfe des Insektizid-Resistenzmanagements. Kurssprache: Englisch.', 'Entdecken Sie Ansätze und Fortschritte im Kampf gegen die Malariamücke mit Hilfe des Insektizid-Resistenzmanagements. Kurssprache: Englisch.', 'Discover approaches and advances in our fight against the malaria mosquito using Insecticide Resistance Management. Course language: English.', 'Découvrez les progrès dans la lutte contre le moustique vecteur du paludisme grâce à la gestion de la résistance aux insecticides. En anglais.', 'the-resistant-mosquito/001.jpg', 'the-resistant-mosquito', 'Malaria has been the scourge of humanity for too long. Ever since scientists at the end of the 19th century discovered that the malaria parasite is transmitted by mosquitoes, controlling the ‘malaria mosquitoes’ has been the most effective tool against malaria. Yet as recently as 2020, there were still 241 million cases of malaria globally, and at least 627,000 deaths, the majority in sub-Saharan Africa.\r\n\r\nIn the last twenty years, there has been a significant increase in mosquito control interventions. The development and mass distribution of long-lasting insecticide-treated mosquito bed nets offered protection to millions of people from the bites of malaria-infected mosquitoes. Along with increased access to effective drugs to treat malaria and improved diagnostic tests, remarkable progress has been made in reducing the burden of malaria, bringing us closer to the goal of eliminating this disease. \r\n\r\nHowever, malaria mosquitoes are becoming resistant to the insecticides that have been so effective at controlling them. This course will look at why and how this is happening, its impact, and what can be practically done to address it. This helps us to remain ahead of the game in the fight against malaria.\r\n\r\n<br>\r\n\r\n#"Weeks", "Chapters" and invitation to comment\r\n \r\nPlease note that this course was originally published by the University of Basel on FutureLearn. FutureLearn is a global platform offering online courses that encourage social learning, including discussions between learners. On FutureLearn, we added comment sections to certain steps and measured course durations in **weeks** rather than in **chapters**.\r\n \r\nHere on Tales, we measure courses in **chapters**. These chapters are equivalent to the “weeks” on FutureLearn. So when you watch a video here and hear an educator talking about “weeks”, you’ll know that this was because the videos were geared towards FutureLearn’s set-up.\r\n \r\nAnother difference to FutureLearn is the comment option. The educators in the videos will sometimes invite you to discuss something in the comments section. If you don’t see a comment option here on Tales, then the course is not open to comments at this moment in time. But **for certain periods of time announced in advance, this course will be open to comments**.\r\n \r\nThe good news is that either way, **you can freely access the course and all of its contents at any time**. If the comment section is not open, why not write down your comments as you go through the course? That way you can keep track of how your knowledge changes. And should you be able to participate in one of the authors’ face-to-face courses, you can then refer back to your comments and discuss them with your peers.', '', 'Malaria has been the scourge of humanity for too long. Ever since scientists at the end of the 19th century discovered that the malaria parasite is transmitted by mosquitoes, controlling the ‘malaria mosquitoes’ has been the most effective tool against malaria. Yet as recently as 2020, there were still 241 million cases of malaria globally, and at least 627,000 deaths, the majority in sub-Saharan Africa.\r\n\r\nIn the last twenty years, there has been a significant increase in mosquito control interventions. The development and mass distribution of long-lasting insecticide-treated mosquito bed nets offered protection to millions of people from the bites of malaria-infected mosquitoes. Along with increased access to effective drugs to treat malaria and improved diagnostic tests, remarkable progress has been made in reducing the burden of malaria, bringing us closer to the goal of eliminating this disease. \r\n\r\nHowever, malaria mosquitoes are becoming resistant to the insecticides that have been so effective at controlling them. This course will look at why and how this is happening, its impact, and what can be practically done to address it. This helps us to remain ahead of the game in the fight against malaria.\r\n\r\n<br>\r\n\r\n#"Weeks", "Chapters" and invitation to comment\r\n \r\nPlease note that this course was originally published by the University of Basel on FutureLearn. FutureLearn is a global platform offering online courses that encourage social learning, including discussions between learners. On FutureLearn, we added comment sections to certain steps and measured course durations in **weeks** rather than in **chapters**.\r\n \r\nHere on Tales, we measure courses in **chapters**. These chapters are equivalent to the “weeks” on FutureLearn. So when you watch a video here and hear an educator talking about “weeks”, you’ll know that this was because the videos were geared towards FutureLearn’s set-up.\r\n \r\nAnother difference to FutureLearn is the comment option. The educators in the videos will sometimes invite you to discuss something in the comments section. If you don’t see a comment option here on Tales, then the course is not open to comments at this moment in time. But **for certain periods of time announced in advance, this course will be open to comments**.\r\n \r\nThe good news is that either way, **you can freely access the course and all of its contents at any time**. If the comment section is not open, why not write down your comments as you go through the course? That way you can keep track of how your knowledge changes. And should you be able to participate in one of the authors’ face-to-face courses, you can then refer back to your comments and discuss them with your peers.', '', 'University of Basel', '', 'University of Basel', '', ''), (12, datetime.datetime(2020, 11, 2, 15, 9, 33, 652377, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 7, 1, 9, 21, 10, 863047, tzinfo=datetime.timezone.utc), 'published', datetime.datetime(2025, 7, 1, 8, 38, 28, 569433, tzinfo=datetime.timezone.utc), False, '["de"]', 'Histologie', 'Histologie', 'Histology', None, 'Herzlich willkommen zur virtuellen Mikroskopie', 'Herzlich willkommen zur virtuellen Mikroskopie', 'Welcome to virtual microscopy.', None, 'Dieser Kurs vermittelt allgemeine Histologie und mikroskopische Anatomie der Organe. Kurssprache: Deutsch.', 'Dieser Kurs vermittelt allgemeine Histologie und mikroskopische Anatomie der Organe. Kurssprache: Deutsch.', 'This course teaches general histology and microscopic anatomy of the organs. Course language: German.', "Ce cours enseigne l'histologie générale et l'anatomie microscopique des organes. Langue du cours : allemand.", 'histologie/Titelbild_Histologie_5.jpg', 'histologie', 'Der «Tales» Kurs Histologie ist zurzeit einer der erfolgreichsten Kurse der Medizinischen Fakultät der Universität Basel. Weit über 1 Million Zugriffe während der vergangenen vier Jahre zeugen von dem Bedürfnis nach histologischer Online-Information. Konzipiert für die Studierenden der Medizin, gliedert sich der Kurs in einen Teil «allgemeine Histologie» und einen Teil «Mikroskopische Anatomie» der Organe. Um das Spektrum der gezeigten Organe zu vervollständigen, sind im Jahr 2025 diverse zusätzliche Präparate neu hinzugefügt worden. Dank der guten Zusammenarbeit mit dem Anatomischen Institut der Universität, unter Frau Prof. M. Müller-Gerbl, die zwei Mitarbeiterinnen für die weiterführende Bearbeitung der Website zur Verfügung stellte, werden in Zukunft Frau Dr. O. Raabe und Frau Dr. H. Franz als Co-Autorinnen zeichnen.\r\n\r\nJedes histologische Präparat ist mit einer eigenen «Mikroskopier-Anleitung» ausgestattet, in der das Ziel der Untersuchung, Besonderheiten und die zu untersuchenden Präparatestellen aufgeführt sind. Diese Anleitungen können auch als PDF-Datei heruntergeladen werden.\r\n\r\nViele der verwendeten Fachausdrücke können im «[Glossarium](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/glossar-464)» nachgeschlagen und heruntergeladen werden. Verschiedene durch die Verarbeitung entstandenen Kunstprodukte können im Kapitel «[Artefakte](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/artefakte-463)» nachschaut werden.\r\n\r\nDer Kurs «Histologie» ist während zwei Jahren intensiver Arbeit erstellt worden. In der «[Danksagung](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/danksagung-465)» sind einige direkt oder indirekt an der Entstehung beteiligte Personen genannt.\r\n\r\nEs ist geplant, diesen Kurs in naher Zukunft auch in einer englischen Version unter «Tales» ins Netz zu stellen. \r\n\r\nRückmeldungen zum Kurs an den Autor oder die Co-Autorinnen sind jederzeit willkommen.', 'Der «Tales» Kurs Histologie ist zurzeit einer der erfolgreichsten Kurse der Medizinischen Fakultät der Universität Basel. Weit über 1 Million Zugriffe während der vergangenen vier Jahre zeugen von dem Bedürfnis nach histologischer Online-Information. Konzipiert für die Studierenden der Medizin, gliedert sich der Kurs in einen Teil «allgemeine Histologie» und einen Teil «Mikroskopische Anatomie» der Organe. Um das Spektrum der gezeigten Organe zu vervollständigen, sind im Jahr 2025 diverse zusätzliche Präparate neu hinzugefügt worden. Dank der guten Zusammenarbeit mit dem Anatomischen Institut der Universität, unter Frau Prof. M. Müller-Gerbl, die zwei Mitarbeiterinnen für die weiterführende Bearbeitung der Website zur Verfügung stellte, werden in Zukunft Frau Dr. O. Raabe und Frau Dr. H. Franz als Co-Autorinnen zeichnen.\r\n\r\nJedes histologische Präparat ist mit einer eigenen «Mikroskopier-Anleitung» ausgestattet, in der das Ziel der Untersuchung, Besonderheiten und die zu untersuchenden Präparatestellen aufgeführt sind. Diese Anleitungen können auch als PDF-Datei heruntergeladen werden.\r\n\r\nViele der verwendeten Fachausdrücke können im «[Glossarium](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/glossar-464)» nachgeschlagen und heruntergeladen werden. Verschiedene durch die Verarbeitung entstandenen Kunstprodukte können im Kapitel «[Artefakte](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/artefakte-463)» nachschaut werden.\r\n\r\nDer Kurs «Histologie» ist während zwei Jahren intensiver Arbeit erstellt worden. In der «[Danksagung](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/danksagung-465)» sind einige direkt oder indirekt an der Entstehung beteiligte Personen genannt.\r\n\r\nEs ist geplant, diesen Kurs in naher Zukunft auch in einer englischen Version unter «Tales» ins Netz zu stellen. \r\n\r\nRückmeldungen zum Kurs an den Autor oder die Co-Autorinnen sind jederzeit willkommen.', 'The “Tales” Histology course is currently one of the most successful courses at the Faculty of Medicine of the University of Basel. Well over 1 million accesses during the past four years demonstrate the need for histological online information. Designed for medical students, the course is divided into a section on “general histology” and a section on “Microscopic Anatomy” of the organs. To complete the spectrum of organs shown, various additional specimens have been newly added in 2025. Thanks to the good cooperation with the Anatomical Institute of the University, under Prof. M. Müller-Gerbl, who provided two employees for the further development of the website, Dr. O. Raabe and Dr. H. Franz will be credited as co-authors in the future.\r\n\r\nEach histological specimen is equipped with its own “Microscopy Guide”, which lists the aim of the examination, special features and the specimen sites to be examined. These guides can also be downloaded as a PDF file.\r\n\r\nMany of the technical terms used can be looked up and downloaded in the “[Glossary](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/glossar-464)”. Various artifacts created during processing can be viewed in the “[Artifacts](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/artefakte-463)” chapter.\r\n\r\nThe “Histology” course was created over two years of intensive work. Some of the people directly or indirectly involved in its creation are listed in the “[Acknowledgements](https://tales.nmc.unibas.ch/de/histologie-12/zusatzliche-informationen-64/danksagung-465)”.\r\n\r\nIt is planned to publish this course in English as well under “Tales” in the near future.\r\n\r\nFeedback on the course to the author or co-authors is welcome at any time.', '', 'Universität Basel', 'Universität Basel', 'University of Basel', '', 'Prof. Dr. Udo M. Spornitz\r\n\r\nEmail: [udo.spornitz@unibas.ch](mailto: udo.spornitz@unibas.ch)\r\n\r\nFeedback zu diesem Kurs, den Präparaten, den Informationsblättern etc. wird gerne vom Autor dieses Projekts Prof. Dr. Udo M. Spornitz, per Mail entgegengenommen.\r\n\r\nBITTE KEINE FRAGEN ALLGEMEINER NATUR, d.h. keine Verständnisfragen zur allgemeinen und mikroskopischen Anatomie. Wenden Sie sich für diese Fragen bitte an die für Sie zuständigen Dozierenden oder konsultieren Sie die entsprechenden Bücher der Histologie, Embryologie und Anatomie. Dieses Projekt kann die Lektüre eines Histologiebuches nicht ersetzen, ebenso wenig wie den Besuch der relevanten Vorlesungen zu den einzelnen Themen.'), (40, datetime.datetime(2022, 4, 6, 9, 47, 40, 958932, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 9, 13, 6, 35, 838880, tzinfo=datetime.timezone.utc), 'published', datetime.datetime(2024, 6, 10, 8, 24, 13, 807077, tzinfo=datetime.timezone.utc), False, '[]', 'Examining African Contributions to Global Health', None, 'Examining African Contributions to Global Health', None, '', None, None, None, 'Entdecken Sie die Leistungen und den Einfluss afrikanischer Experten im globalen Gesundheitswesen. Kurssprache: Englisch.', 'Entdecken Sie die Leistungen und den Einfluss afrikanischer Experten im globalen Gesundheitswesen. Kurssprache: Englisch.', 'Discover the achievements and impact made by African experts in global healthcare. Course language: English.', "Découvrez les réalisations et l'influence des experts africains dans le domaine de la santé mondiale. Langue du cours : anglais.", 'examining-african-contributions-to-global-health/Course_Image_AFRICAN_contributions.jpg', 'examining-african-contributions-to-global-health', 'The history of science has largely been written from the perspective of the Global North. Therefore, the impact of the Global South has been neglected and undervalued. This course uncovers examples of the innovation and excellence that Africa has brought to global health over time.\r\n\r\n<br>\r\n\r\n#Use African ingenuity to improve public health worldwide \r\n\r\nAfrica has been at the forefront of the fight against COVID-19, having contributed 12.8% of the technologies used to respond to the pandemic. And African countries such as Senegal also did remarkably well in managing the pandemic. As you will learn in the case studies in this course, many African countries have overcome health challenges using innovative solutions that can benefit the world. You’ll explore theories, financing solutions, and technologies from Africa that can be used to uplift health systems across the world.\r\n\r\n<br>\r\n\r\n#Utilise the knowledge exchange of the Global South to inspire innovation\r\n\r\nAfrican countries have a wealth of knowledge that the Global North could benefit from.\r\nUsing the knowledge from this course, you will be able to identify problems relating to clinical trials and financing in the Global North and learn from innovative approaches in Africa. You will also learn about examples of knowledge exchange in the Global South and find connections between urban planning and public health that can be used to motivate transformation in global health.\r\n\r\n<br>\r\n\r\n#Learn with the experts in African Studies from the University of Basel\r\n\r\nThe University of Basel has a renowned Centre for African Studies, has one of the few chairs of African History in Europe, and is associated with one of the leading tropical medicine institutes in the world.\r\nThe experts are best placed to guide you in your journey, to broaden your horizons, and to improve your knowledge of the history of African contributions to global health.\r\n\r\n<br>\r\n\r\n#"Weeks", "Chapters" and invitation to comment\r\n \r\nPlease note that this course was originally published by the University of Basel on FutureLearn. FutureLearn is a global platform offering online courses that encourage social learning, including discussions between learners. On FutureLearn, we added comment sections to certain steps and measured course durations in **weeks** rather than in **chapters**.\r\n \r\nHere on Tales, we measure courses in **chapters**. These chapters are equivalent to the “weeks” on FutureLearn. So when you watch a video here and hear an educator talking about “weeks”, you’ll know that this was because the videos were geared towards FutureLearn’s set-up.\r\n \r\nAnother difference to FutureLearn is the comment option. The educators in the videos will sometimes invite you to discuss something in the comments section. If you don’t see a comment option here on Tales, then the course is not open to comments at this moment in time. But **for certain periods of time announced in advance, this course will be open to comments**.\r\n \r\nThe good news is that either way, **you can freely access the course and all of its contents at any time**. If the comment section is not open, why not write down your comments as you go through the course? That way you can keep track of how your knowledge changes. And should you be able to participate in one of the authors’ face-to-face courses, you can then refer back to your comments and discuss them with your peers.', '', 'The history of science has largely been written from the perspective of the Global North. Therefore, the impact of the Global South has been neglected and undervalued. This course uncovers examples of the innovation and excellence that Africa has brought to global health over time.\r\n\r\n<br>\r\n\r\n#Use African ingenuity to improve public health worldwide \r\n\r\nAfrica has been at the forefront of the fight against COVID-19, having contributed 12.8% of the technologies used to respond to the pandemic. And African countries such as Senegal also did remarkably well in managing the pandemic. As you will learn in the case studies in this course, many African countries have overcome health challenges using innovative solutions that can benefit the world. You’ll explore theories, financing solutions, and technologies from Africa that can be used to uplift health systems across the world.\r\n\r\n<br>\r\n\r\n#Utilise the knowledge exchange of the Global South to inspire innovation\r\n\r\nAfrican countries have a wealth of knowledge that the Global North could benefit from.\r\nUsing the knowledge from this course, you will be able to identify problems relating to clinical trials and financing in the Global North and learn from innovative approaches in Africa. You will also learn about examples of knowledge exchange in the Global South and find connections between urban planning and public health that can be used to motivate transformation in global health.\r\n\r\n<br>\r\n\r\n#Learn with the experts in African Studies from the University of Basel\r\n\r\nThe University of Basel has a renowned Centre for African Studies, has one of the few chairs of African History in Europe, and is associated with one of the leading tropical medicine institutes in the world.\r\nThe experts are best placed to guide you in your journey, to broaden your horizons, and to improve your knowledge of the history of African contributions to global health.\r\n\r\n<br>\r\n\r\n#"Weeks", "Chapters" and invitation to comment\r\n \r\nPlease note that this course was originally published by the University of Basel on FutureLearn. FutureLearn is a global platform offering online courses that encourage social learning, including discussions between learners. On FutureLearn, we added comment sections to certain steps and measured course durations in **weeks** rather than in **chapters**.\r\n \r\nHere on Tales, we measure courses in **chapters**. These chapters are equivalent to the “weeks” on FutureLearn. So when you watch a video here and hear an educator talking about “weeks”, you’ll know that this was because the videos were geared towards FutureLearn’s set-up.\r\n \r\nAnother difference to FutureLearn is the comment option. The educators in the videos will sometimes invite you to discuss something in the comments section. If you don’t see a comment option here on Tales, then the course is not open to comments at this moment in time. But **for certain periods of time announced in advance, this course will be open to comments**.\r\n \r\nThe good news is that either way, **you can freely access the course and all of its contents at any time**. If the comment section is not open, why not write down your comments as you go through the course? That way you can keep track of how your knowledge changes. And should you be able to participate in one of the authors’ face-to-face courses, you can then refer back to your comments and discuss them with your peers.', '', '', '', '', '', ''), (16, datetime.datetime(2020, 11, 2, 15, 9, 33, 652377, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 6, 26, 9, 18, 27, 650502, tzinfo=datetime.timezone.utc), 'published', datetime.datetime(2024, 6, 10, 8, 45, 21, 808626, tzinfo=datetime.timezone.utc), False, '[]', 'Nahtkurs', 'Nahtkurs', None, None, 'Chirurgische Basiskompetenz', 'Chirurgische Basiskompetenz', None, None, 'In diesem Kurs lernt medizinisches Fachpersonal die einfache Wundversorgung. Kurssprache: Deutsch.', 'In diesem Kurs lernt medizinisches Fachpersonal die einfache Wundversorgung. Kurssprache: Deutsch.', 'In this course, healthcare professionals learn about the basics of treating wounds. Course language: German.', 'Dans ce cours, le personnel médical spécialisé apprend le traitement simple des plaies. Langue du cours : allemand.', 'chirurgische-basiskompetenz/startbild.jpg', 'nahtkurs', 'Zu den grundlegenden Fertigkeiten, die Ärzte und Ärztinnen brauchen, gehört die einfache Wundversorgung. «Einfach» bedeutet dabei mitnichten «eindimensional»: Wer Medizin studiert, muss lernen, mit dem Patienten umzugehen, eine korrekte Diagnose zu stellen und die richtigen Instrumente auszuwählen. Nadel und Faden sollten korrekt geführt, der Knoten effizient geknüpft, die Wunde fachgerecht nachbehandelt werden.\r\n{.lead}\r\n\r\nDer Kurs ist in drei Teile gegliedert. Zu Beginn, im Kapitel «Experte», können die Studierenden einer Ärztin bei der Arbeit über die Schulter schauen und alles Wichtige rund um die Wundversorgung lernen. Im zweiten Teil «Entdecker» gilt es das Gelernte anhand unterschiedlicher Übungen zu erproben und das Wissen zu festigen. Abschliessend werden die wichtigsten Lerninhalte in Tests abgefragt. Die Struktur des Kurses ist so angelegt, dass die Studierenden je nach ihrem Vorwissen frei entscheiden können, ob sie zuerst alle Steps durcharbeiten wollen oder ob sie sich direkt an den Übungen und Tests versuchen wollen. \r\n\r\nDer Nahtkurs kam 2005 ins Finale des MedidaPrix und ergänzt seit 2006 den Präsenzunterricht «Chirurgische Basiskompetenzen» mit interaktiven Lernmaterialien - zunächst als CD-Rom, dann in einer Webapplikation, auf die nun auch Smartphones zugreifen können sollen. Mit dieser neuesten Version ist der Kurs nun in seiner Ganzheit öffentlich zugänglich. \r\n\r\nDer Kurs richtet sich an Mediziner und Medizinerinnen oder Personal des Gesundheitswesens. Er soll Studierende dabei unterstützen, die Präsenzveranstaltung vor- oder nachzubereiten und kann Praktikern helfen, ihr Wissen aufzufrischen. Unterschiedliche Ebenen ermöglichen, Lernziele je nach Vorkenntnissen und Lernbedürfnissen individuell zu erreichen. Wer sich das Wissen Schritt für Schritt als Zuschauer aneignen möchte, begleitet im Kapitel Experte die Ärztin durch alle Phasen der chirurgischen Wundversorgung. Wer in Übungen seinen Wissensstand erarbeiten will, wählt die Perspektive des Entdeckers. Wer sein Wissen in Bezug auf einen Lernzielkatalog testen möchte, arbeitet sich durch die Kapitel der Quizzes. \r\n\r\n**Hinweis**: Dieser Kurs ist für medizinisches Fachpersonal bestimmt. Er enthält Bilder von Wunden und Blut, welche die Sensibilität gewisser Personen verletzen könnten.', 'Zu den grundlegenden Fertigkeiten, die Ärzte und Ärztinnen brauchen, gehört die einfache Wundversorgung. «Einfach» bedeutet dabei mitnichten «eindimensional»: Wer Medizin studiert, muss lernen, mit dem Patienten umzugehen, eine korrekte Diagnose zu stellen und die richtigen Instrumente auszuwählen. Nadel und Faden sollten korrekt geführt, der Knoten effizient geknüpft, die Wunde fachgerecht nachbehandelt werden.\r\n{.lead}\r\n\r\nDer Kurs ist in drei Teile gegliedert. Zu Beginn, im Kapitel «Experte», können die Studierenden einer Ärztin bei der Arbeit über die Schulter schauen und alles Wichtige rund um die Wundversorgung lernen. Im zweiten Teil «Entdecker» gilt es das Gelernte anhand unterschiedlicher Übungen zu erproben und das Wissen zu festigen. Abschliessend werden die wichtigsten Lerninhalte in Tests abgefragt. Die Struktur des Kurses ist so angelegt, dass die Studierenden je nach ihrem Vorwissen frei entscheiden können, ob sie zuerst alle Steps durcharbeiten wollen oder ob sie sich direkt an den Übungen und Tests versuchen wollen. \r\n\r\nDer Nahtkurs kam 2005 ins Finale des MedidaPrix und ergänzt seit 2006 den Präsenzunterricht «Chirurgische Basiskompetenzen» mit interaktiven Lernmaterialien - zunächst als CD-Rom, dann in einer Webapplikation, auf die nun auch Smartphones zugreifen können sollen. Mit dieser neuesten Version ist der Kurs nun in seiner Ganzheit öffentlich zugänglich. \r\n\r\nDer Kurs richtet sich an Mediziner und Medizinerinnen oder Personal des Gesundheitswesens. Er soll Studierende dabei unterstützen, die Präsenzveranstaltung vor- oder nachzubereiten und kann Praktikern helfen, ihr Wissen aufzufrischen. Unterschiedliche Ebenen ermöglichen, Lernziele je nach Vorkenntnissen und Lernbedürfnissen individuell zu erreichen. Wer sich das Wissen Schritt für Schritt als Zuschauer aneignen möchte, begleitet im Kapitel Experte die Ärztin durch alle Phasen der chirurgischen Wundversorgung. Wer in Übungen seinen Wissensstand erarbeiten will, wählt die Perspektive des Entdeckers. Wer sein Wissen in Bezug auf einen Lernzielkatalog testen möchte, arbeitet sich durch die Kapitel der Quizzes. \r\n\r\n**Hinweis**: Dieser Kurs ist für medizinisches Fachpersonal bestimmt. Er enthält Bilder von Wunden und Blut, welche die Sensibilität gewisser Personen verletzen könnten.', '', '', 'Universität Basel', 'Universität Basel', '', '', 'Prof. Dr. Gerhard Pierer \r\ngerhard.pierer@tirol-kliniken.at \r\n\r\ntirol kliniken \r\nUniv.-Klinik für Plastische, Rekonstruktion und Ästhetische Chirurgie \r\nAnichstraße 35 \r\nA-6020 Innsbruck'), (51, datetime.datetime(2023, 6, 28, 13, 7, 8, 719227, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 9, 13, 16, 47, 844104, tzinfo=datetime.timezone.utc), 'published', datetime.datetime(2024, 6, 10, 8, 30, 34, 685106, tzinfo=datetime.timezone.utc), False, '[]', 'Gesundheitliche Vorausplanung', 'Gesundheitliche Vorausplanung', None, None, '', None, None, None, '', None, None, None, 'gesundheitliche-vorausplanung-basel-stadt-und-baselland/Illustartion_Gespraech_1_4.png', 'gesundheitliche-vorausplanung', 'Im Gespräch mit dem oder der Patient:in geht es nicht nur um die Behandlung von Krankheiten, sondern auch um die Planung möglicher zukünftiger medizinischer Behandlungsentscheidungen. Hier kommt die Gesundheitliche Vorausplanung ins Spiel. \r\n{.lead}\r\n\r\nDoch was genau beinhaltet diese und weshalb ist sie wichtig? In diesem Kurs lernen Sie die Gesundheitliche Vorausplanung kennen und erfahren, wie dieses Instrument hilfreich eingesetzt werden kann. \r\n \r\nDas erste Kapitel führt Sie in die Inhalte, die Ziele und die Modelle der Gesundheitlichen Vorausplanung ein. Wir stellen Ihnen das Modell vor, das für die Region Basel-Stadt und Baselland entwickelt wurde. Im zweiten Kapitel zeigen wir auf, wie Sie als medizinische Fachperson eine Gesundheitliche Vorausplanung im Einzelfall umsetzen können. Beide Kapitel enthalten sowohl theoretische als auch praktische Inputs und konkrete Fallbeispiele. \r\n\r\nDer Kurs richtet sich primär an medizinische Fachpersonen. Er kann aber auch medizinische Laien in das Thema der Gesundheitlichen Vorausplanung einführen.\r\n \r\nWir wünschen Ihnen ein aufschlussreiches E-Learning!\r\n\r\n<br>\r\nDieses Projekt wird unterstützt vom Universitären Zentrum für Hausarztmedizin beider Basel und von der GGG Basel.\r\n{.footnote}', 'Im Gespräch mit dem oder der Patient:in geht es nicht nur um die Behandlung von Krankheiten, sondern auch um die Planung möglicher zukünftiger medizinischer Behandlungsentscheidungen. Hier kommt die Gesundheitliche Vorausplanung ins Spiel. \r\n{.lead}\r\n\r\nDoch was genau beinhaltet diese und weshalb ist sie wichtig? In diesem Kurs lernen Sie die Gesundheitliche Vorausplanung kennen und erfahren, wie dieses Instrument hilfreich eingesetzt werden kann. \r\n \r\nDas erste Kapitel führt Sie in die Inhalte, die Ziele und die Modelle der Gesundheitlichen Vorausplanung ein. Wir stellen Ihnen das Modell vor, das für die Region Basel-Stadt und Baselland entwickelt wurde. Im zweiten Kapitel zeigen wir auf, wie Sie als medizinische Fachperson eine Gesundheitliche Vorausplanung im Einzelfall umsetzen können. Beide Kapitel enthalten sowohl theoretische als auch praktische Inputs und konkrete Fallbeispiele. \r\n\r\nDer Kurs richtet sich primär an medizinische Fachpersonen. Er kann aber auch medizinische Laien in das Thema der Gesundheitlichen Vorausplanung einführen.\r\n \r\nWir wünschen Ihnen ein aufschlussreiches E-Learning!\r\n\r\n<br>\r\nDieses Projekt wird unterstützt vom Universitären Zentrum für Hausarztmedizin beider Basel und von der GGG Basel.\r\n{.footnote}', '', '', '', '', '', '', ''), (41, datetime.datetime(2022, 4, 11, 11, 42, 4, 164219, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 9, 14, 5, 37, 471020, tzinfo=datetime.timezone.utc), 'published', datetime.datetime(2024, 6, 10, 8, 3, 24, 81456, tzinfo=datetime.timezone.utc), False, '[]', 'Allergies: When the Immune System Backfires', None, 'Allergies: When the Immune System Backfires', None, '', None, None, None, 'Entdecken Sie, wie verschiedene Allergien heute verstanden, diagnostiziert und behandelt werden. Kurssprache: Englisch.', 'Entdecken Sie, wie verschiedene Allergien heute verstanden, diagnostiziert und behandelt werden. Kurssprache: Englisch.', 'Discover how different allergies are understood, diagnosed, and treated today. Course language: English.', "Découvrez comment les différentes allergies sont aujourd'hui comprises, diagnostiquées et traitées. Langue du cours : anglais.", 'allergies-when-the-immune-system-backfires/Course-Image-Castle_3.png', 'allergies-when-the-immune-system-backfires', 'The human immune system is designed to fight infection, but sometimes this defence mechanism provokes allergic disorders. In this course, you will explore the similarities and differences of infections and allergies, and understand the intricacies of the immune system.\r\n\r\nYou will address the events, mishaps, and discoveries that have led to a common understanding of allergies today. You will explore different types of allergies, like food allergies and hayfever, as well as allergy symptoms, methods of diagnosis, and different allergy treatments with the support of case studies.\r\n\r\n<br/>\r\n\r\n#"Weeks", "Chapters" and invitation to comment\r\n \r\nPlease note that this course was originally published by the University of Basel on FutureLearn. FutureLearn is a global platform offering online courses that encourage social learning, including discussions between learners. On FutureLearn, we added comment sections to certain steps and measured course durations in **weeks** rather than in **chapters**.\r\n \r\nHere on Tales, we measure courses in **chapters**. These chapters are equivalent to the “weeks” on FutureLearn. So when you watch a video here and hear an educator talking about “weeks”, you’ll know that this was because the videos were geared towards FutureLearn’s set-up.\r\n \r\nAnother difference to FutureLearn is the comment option. The educators in the videos will sometimes invite you to discuss something in the comments section. If you don’t see a comment option here on Tales, then the course is not open to comments at this moment in time. But **for certain periods of time announced in advance, this course will be open to comments**.\r\n \r\nThe good news is that either way, **you can freely access the course and all of its contents at any time**. If the comment section is not open, why not write down your comments as you go through the course? That way you can keep track of how your knowledge changes. And should you be able to participate in one of the authors’ face-to-face courses, you can then refer back to your comments and discuss them with your peers.', '', 'The human immune system is designed to fight infection, but sometimes this defence mechanism provokes allergic disorders. In this course, you will explore the similarities and differences of infections and allergies, and understand the intricacies of the immune system.\r\n\r\nYou will address the events, mishaps, and discoveries that have led to a common understanding of allergies today. You will explore different types of allergies, like food allergies and hayfever, as well as allergy symptoms, methods of diagnosis, and different allergy treatments with the support of case studies.\r\n\r\n<br/>\r\n\r\n#"Weeks", "Chapters" and invitation to comment\r\n \r\nPlease note that this course was originally published by the University of Basel on FutureLearn. FutureLearn is a global platform offering online courses that encourage social learning, including discussions between learners. On FutureLearn, we added comment sections to certain steps and measured course durations in **weeks** rather than in **chapters**.\r\n \r\nHere on Tales, we measure courses in **chapters**. These chapters are equivalent to the “weeks” on FutureLearn. So when you watch a video here and hear an educator talking about “weeks”, you’ll know that this was because the videos were geared towards FutureLearn’s set-up.\r\n \r\nAnother difference to FutureLearn is the comment option. The educators in the videos will sometimes invite you to discuss something in the comments section. If you don’t see a comment option here on Tales, then the course is not open to comments at this moment in time. But **for certain periods of time announced in advance, this course will be open to comments**.\r\n \r\nThe good news is that either way, **you can freely access the course and all of its contents at any time**. If the comment section is not open, why not write down your comments as you go through the course? That way you can keep track of how your knowledge changes. And should you be able to participate in one of the authors’ face-to-face courses, you can then refer back to your comments and discuss them with your peers.', '', 'University of Basel', '', 'University of Basel', '', ''), (23, datetime.datetime(2020, 11, 2, 15, 9, 33, 652377, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 9, 14, 16, 58, 594970, tzinfo=datetime.timezone.utc), 'published', datetime.datetime(2024, 9, 20, 6, 37, 23, 610993, tzinfo=datetime.timezone.utc), False, '[]', 'Learning and Memory', None, 'Learning and Memory', None, '', None, None, None, 'This is an introductory course to human learning and memory. Course language: English.', 'Einführungskurs in das menschliche Lernen und Gedächtnis. Kurssprache: Englisch.', 'This is an introductory course to human learning and memory. Course language: English.', "Cours d'introduction à l'apprentissage et à la mémoire humaine. Langue du cours : anglais.", 'learning-and-memory/brain_kOvh625.png', 'learning-and-memory', 'Learning and memory are fundamental brain functions of all animals living on this planet.\r\n{.lead}\r\n\r\nFor humans, these cognitive abilities are indispensable for the acquisition and the passing on of knowledge, for self-reflection, the avoidance of dangers and, last but not least, for the successful passing of exams. Disturbed learning and memory functions occur in a variety of disorders, including dementias, which are characterized by memory deficits, and phobias, which are characterized by a strong aversive memory of a specific object or situation.\r\n \r\nThis is an introductory course to human learning and memory, which will cover the following topics: Overview of the human memory systems, methods to study learning and memory, declarative memory, memory deficits, short-term forms of memory, non-declarative memory, emotional memory and the phenomenon of superior memory. Here and there studies from our own group are presented to give an insight into memory research.\r\n \r\nThe course consists of short introductory videos to the topics, articles, links to external resources, and selected book chapters of "Cognitive Neuroscience: The Biology of the Mind; 5th Edition. Michael Gazzaniga, Richard B. Ivry, George R. Mangung".\r\n\r\nSome of the materials used in this course are freely accessible, others are only made freely accessible to students and members of the University of Basel who are enrolled in the course. The latter have access to such materials via [ADAM](https://adam.unibas.ch/login.php){:target="_blank"}. Please note that certain links are only available within the [eduroam network](https://its.unibas.ch/de/anleitungen/netzwerkzugang/){:target="_blank"} if they concern publications for which the university has a campus license. If you are a member of the University of Basel and want to access university resources from home, you will need to install a [VPN client](https://its.unibas.ch/de/anleitungen/netzwerkzugang/){:target="_blank"}.', '', 'Learning and memory are fundamental brain functions of all animals living on this planet.\r\n{.lead}\r\n\r\nFor humans, these cognitive abilities are indispensable for the acquisition and the passing on of knowledge, for self-reflection, the avoidance of dangers and, last but not least, for the successful passing of exams. Disturbed learning and memory functions occur in a variety of disorders, including dementias, which are characterized by memory deficits, and phobias, which are characterized by a strong aversive memory of a specific object or situation.\r\n \r\nThis is an introductory course to human learning and memory, which will cover the following topics: Overview of the human memory systems, methods to study learning and memory, declarative memory, memory deficits, short-term forms of memory, non-declarative memory, emotional memory and the phenomenon of superior memory. Here and there studies from our own group are presented to give an insight into memory research.\r\n \r\nThe course consists of short introductory videos to the topics, articles, links to external resources, and selected book chapters of "Cognitive Neuroscience: The Biology of the Mind; 5th Edition. Michael Gazzaniga, Richard B. Ivry, George R. Mangung".\r\n\r\nSome of the materials used in this course are freely accessible, others are only made freely accessible to students and members of the University of Basel who are enrolled in the course. The latter have access to such materials via [ADAM](https://adam.unibas.ch/login.php){:target="_blank"}. Please note that certain links are only available within the [eduroam network](https://its.unibas.ch/de/anleitungen/netzwerkzugang/){:target="_blank"} if they concern publications for which the university has a campus license. If you are a member of the University of Basel and want to access university resources from home, you will need to install a [VPN client](https://its.unibas.ch/de/anleitungen/netzwerkzugang/){:target="_blank"}.', '', '', '', '', '', '')]])}, None) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(326)
  if match:

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(76)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0,3064 get ('imagekit:CACHE/images/one-health-french-test-version/Course_image_one_health_06_course_image_tales_var_Kopie/187fc4425becb44b1135708e367f9dbd.png-state',) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in url(89)
  return self._storage_attr('url')

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in _storage_attr(79)
  existence_required.send(sender=self, file=self)

/usr/local/lib/python3.12/site-packages/django/dispatch/dispatcher.py in send(189)
  response = receiver(signal=self, sender=sender, **named)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/signals_handlers.py in wrapper(73)
  return receiver(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in existence_required_receiver(53)
  self._receive(file, 'on_existence_required')

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in _receive(61)
  call_strategy_method(file, callback)

/usr/local/lib/python3.12/site-packages/imagekit/utils.py in call_strategy_method(119)
  fn(file)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/strategies.py in on_existence_required(11)
  file.generate()

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in generate(98)
  self.cachefile_backend.generate(self, force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate(111)
  self.generate_now(file, force=force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate_now(96)
  if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in get_state(68)
  state = self.cache.get(key)

0,2642 get ('imagekit:CACHE/images/the-resistant-mosquito/001/0915de7887bd75813114602ab93933fd.jpg-state',) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in url(89)
  return self._storage_attr('url')

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in _storage_attr(79)
  existence_required.send(sender=self, file=self)

/usr/local/lib/python3.12/site-packages/django/dispatch/dispatcher.py in send(189)
  response = receiver(signal=self, sender=sender, **named)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/signals_handlers.py in wrapper(73)
  return receiver(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in existence_required_receiver(53)
  self._receive(file, 'on_existence_required')

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in _receive(61)
  call_strategy_method(file, callback)

/usr/local/lib/python3.12/site-packages/imagekit/utils.py in call_strategy_method(119)
  fn(file)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/strategies.py in on_existence_required(11)
  file.generate()

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in generate(98)
  self.cachefile_backend.generate(self, force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate(111)
  self.generate_now(file, force=force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate_now(96)
  if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in get_state(68)
  state = self.cache.get(key)

0,2510 get ('imagekit:CACHE/images/histologie/Titelbild_Histologie_5/730b1f852463fe9e2d6677550c44592b.jpg-state',) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in url(89)
  return self._storage_attr('url')

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in _storage_attr(79)
  existence_required.send(sender=self, file=self)

/usr/local/lib/python3.12/site-packages/django/dispatch/dispatcher.py in send(189)
  response = receiver(signal=self, sender=sender, **named)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/signals_handlers.py in wrapper(73)
  return receiver(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in existence_required_receiver(53)
  self._receive(file, 'on_existence_required')

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in _receive(61)
  call_strategy_method(file, callback)

/usr/local/lib/python3.12/site-packages/imagekit/utils.py in call_strategy_method(119)
  fn(file)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/strategies.py in on_existence_required(11)
  file.generate()

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in generate(98)
  self.cachefile_backend.generate(self, force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate(111)
  self.generate_now(file, force=force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate_now(96)
  if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in get_state(68)
  state = self.cache.get(key)

0,2878 get ('imagekit:CACHE/images/examining-african-contributions-to-global-health/Course_Image_AFRICAN_contributions/f15fb5a44a4949684b517d40d42e1ddd.jpg-state',) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in url(89)
  return self._storage_attr('url')

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in _storage_attr(79)
  existence_required.send(sender=self, file=self)

/usr/local/lib/python3.12/site-packages/django/dispatch/dispatcher.py in send(189)
  response = receiver(signal=self, sender=sender, **named)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/signals_handlers.py in wrapper(73)
  return receiver(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in existence_required_receiver(53)
  self._receive(file, 'on_existence_required')

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in _receive(61)
  call_strategy_method(file, callback)

/usr/local/lib/python3.12/site-packages/imagekit/utils.py in call_strategy_method(119)
  fn(file)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/strategies.py in on_existence_required(11)
  file.generate()

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in generate(98)
  self.cachefile_backend.generate(self, force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate(111)
  self.generate_now(file, force=force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate_now(96)
  if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in get_state(68)
  state = self.cache.get(key)

0,2470 get ('imagekit:CACHE/images/chirurgische-basiskompetenz/startbild/c0028365e0b1c44214555e74b68b0e80.jpg-state',) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in url(89)
  return self._storage_attr('url')

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in _storage_attr(79)
  existence_required.send(sender=self, file=self)

/usr/local/lib/python3.12/site-packages/django/dispatch/dispatcher.py in send(189)
  response = receiver(signal=self, sender=sender, **named)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/signals_handlers.py in wrapper(73)
  return receiver(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in existence_required_receiver(53)
  self._receive(file, 'on_existence_required')

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in _receive(61)
  call_strategy_method(file, callback)

/usr/local/lib/python3.12/site-packages/imagekit/utils.py in call_strategy_method(119)
  fn(file)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/strategies.py in on_existence_required(11)
  file.generate()

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in generate(98)
  self.cachefile_backend.generate(self, force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate(111)
  self.generate_now(file, force=force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate_now(96)
  if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in get_state(68)
  state = self.cache.get(key)

0,2499 get ('imagekit:CACHE/images/gesundheitliche-vorausplanung-basel-stadt-und-baselland/Illustartion_Gespraech_1_4/e017818259c9a1dee03f6d7e91e5de07.png-state',) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in url(89)
  return self._storage_attr('url')

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in _storage_attr(79)
  existence_required.send(sender=self, file=self)

/usr/local/lib/python3.12/site-packages/django/dispatch/dispatcher.py in send(189)
  response = receiver(signal=self, sender=sender, **named)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/signals_handlers.py in wrapper(73)
  return receiver(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in existence_required_receiver(53)
  self._receive(file, 'on_existence_required')

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in _receive(61)
  call_strategy_method(file, callback)

/usr/local/lib/python3.12/site-packages/imagekit/utils.py in call_strategy_method(119)
  fn(file)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/strategies.py in on_existence_required(11)
  file.generate()

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in generate(98)
  self.cachefile_backend.generate(self, force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate(111)
  self.generate_now(file, force=force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate_now(96)
  if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in get_state(68)
  state = self.cache.get(key)

0,2211 get ('imagekit:CACHE/images/allergies-when-the-immune-system-backfires/Course-Image-Castle_3/5cca6a8662a6110c7c46a8b466adc3cd.png-state',) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in url(89)
  return self._storage_attr('url')

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in _storage_attr(79)
  existence_required.send(sender=self, file=self)

/usr/local/lib/python3.12/site-packages/django/dispatch/dispatcher.py in send(189)
  response = receiver(signal=self, sender=sender, **named)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/signals_handlers.py in wrapper(73)
  return receiver(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in existence_required_receiver(53)
  self._receive(file, 'on_existence_required')

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in _receive(61)
  call_strategy_method(file, callback)

/usr/local/lib/python3.12/site-packages/imagekit/utils.py in call_strategy_method(119)
  fn(file)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/strategies.py in on_existence_required(11)
  file.generate()

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in generate(98)
  self.cachefile_backend.generate(self, force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate(111)
  self.generate_now(file, force=force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate_now(96)
  if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in get_state(68)
  state = self.cache.get(key)

0,2350 get ('imagekit:CACHE/images/learning-and-memory/brain_kOvh625/cfe513e856d8901a4dc81526fe7411bc.png-state',) {} <django_redis.cache.RedisCache object at 0x78830fe1ec90>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/lms_tales/views_filter_courses.py in new_filter_courses(165)
  return render(

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in render(105)
  return real_render(request, template_name, context, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/django/shortcuts.py in render(25)
  content = loader.render_to_string(template_name, context, request, using=using)

/usr/local/lib/python3.12/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in url(89)
  return self._storage_attr('url')

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in _storage_attr(79)
  existence_required.send(sender=self, file=self)

/usr/local/lib/python3.12/site-packages/django/dispatch/dispatcher.py in send(189)
  response = receiver(signal=self, sender=sender, **named)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/signals_handlers.py in wrapper(73)
  return receiver(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in existence_required_receiver(53)
  self._receive(file, 'on_existence_required')

/usr/local/lib/python3.12/site-packages/imagekit/registry.py in _receive(61)
  call_strategy_method(file, callback)

/usr/local/lib/python3.12/site-packages/imagekit/utils.py in call_strategy_method(119)
  fn(file)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/strategies.py in on_existence_required(11)
  file.generate()

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/__init__.py in generate(98)
  self.cachefile_backend.generate(self, force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate(111)
  self.generate_now(file, force=force)

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in generate_now(96)
  if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):

/usr/local/lib/python3.12/site-packages/imagekit/cachefiles/backends.py in get_state(68)
  state = self.cache.get(key)

Cachalot

Database 'default'

Application Model Last invalidation
django_q Failure 4 heures, 22 minutes
search FulltextSearchModel 4 heures, 22 minutes
django_q Schedule 4 heures, 22 minutes
lms_tales CourseMetrics 14 heures, 56 minutes
reporting Report 1 semaine, 1 jour
lms_assignment Assignment 3 semaines, 2 jours
lms_assignment UserAssignment 3 semaines, 2 jours
lms_assignment AssignmentFeedback 3 semaines, 2 jours
lms_ai LLMProvider 3 semaines, 2 jours
lms_ai LLMServiceConfig 3 semaines, 2 jours
lms_ai LLMTask 3 semaines, 2 jours
lms_roles CourseRole 3 semaines, 2 jours
lms_notifications Notification 3 semaines, 2 jours
search TrigramSearchModel 3 semaines, 2 jours
startpage SliderItem 3 semaines, 2 jours
startpage CategoryCourse 3 semaines, 2 jours
tags Category 3 semaines, 2 jours
tags Tag 3 semaines, 2 jours
lms_static_texts StaticText 3 semaines, 2 jours
lms_static_texts HistoricalStaticText 3 semaines, 2 jours
lms_comments Comment 3 semaines, 2 jours
lms_comments Reply 3 semaines, 2 jours
lms_comments Reaction 3 semaines, 2 jours
lms_comments Flag 3 semaines, 2 jours
lms_tales TalesStep 3 semaines, 2 jours
lms_tales TalesStepFileNew 3 semaines, 2 jours
lms_tales TalesStepFile 3 semaines, 2 jours
lms_tales TalesCourseFile 3 semaines, 2 jours
lms_tales TalesChapter 3 semaines, 2 jours
lms_tales TalesCourse 3 semaines, 2 jours
lms_tales TalesAuthor 3 semaines, 2 jours
lms_tales TalesPartner 3 semaines, 2 jours
lms_tales TalesPath 3 semaines, 2 jours
lms_tales TalesPathStep 3 semaines, 2 jours
lms_tales TalesCourseRun 3 semaines, 2 jours
lms_tales TalesCourseRunStep 3 semaines, 2 jours
lms_tales ScheduledMessage 3 semaines, 2 jours
lms_tales HistoricalTalesStep 3 semaines, 2 jours
lms_tales HistoricalTalesStepFile 3 semaines, 2 jours
lms_tales HistoricalTalesChapter 3 semaines, 2 jours
lms_tales HistoricalTalesCourse 3 semaines, 2 jours
lms_tales HistoricalTalesPath 3 semaines, 2 jours
auth Permission 3 semaines, 2 jours
auth Group 3 semaines, 2 jours
contenttypes ContentType 3 semaines, 2 jours
sessions Session 3 semaines, 2 jours
sites Site 3 semaines, 2 jours
flatpages FlatPage 3 semaines, 2 jours
admin LogEntry 3 semaines, 2 jours
redirects Redirect 3 semaines, 2 jours
account EmailAddress 3 semaines, 2 jours
account EmailConfirmation 3 semaines, 2 jours
socialaccount SocialApp 3 semaines, 2 jours
socialaccount SocialAccount 3 semaines, 2 jours
socialaccount SocialToken 3 semaines, 2 jours
waffle Flag 3 semaines, 2 jours
waffle Switch 3 semaines, 2 jours
waffle Sample 3 semaines, 2 jours
tos TermsOfService 3 semaines, 2 jours
tos UserAgreement 3 semaines, 2 jours
impersonate ImpersonationLog 3 semaines, 2 jours
django_q OrmQ 3 semaines, 2 jours
users User 3 semaines, 2 jours
users UserSettings 3 semaines, 2 jours

Signaux

Signal Receveurs
class_prepared StatusField.prepare_class, add_status_query_managers, add_timeframed_query_manager, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class
connection_created
got_request_exception _got_request_exception
m2m_changed flag_membership_changed, flag_membership_changed
post_delete HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, delete_search_index, delete_search_index
post_init ModelSignalRouter.post_init_receiver, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, delete_mt_init, delete_mt_init, delete_mt_init
post_migrate create_permissions, create_contenttypes, create_default_site, _invalidate_on_migration
post_save ModelSignalRouter.post_save_receiver, call_hook, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, create_user_settings, save_user_settings, update_search_index, update_search_index, notification_created
pre_delete clear_site_cache, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete
pre_init
pre_migrate inject_rename_contenttypes_operations
pre_save clear_site_cache
request_finished close_old_connections, close_caches, reset_urlconf
request_started reset_queries, close_old_connections
setting_changed reset_cache, reload_settings, Settings.change_setting, clear_cache_handlers, update_installed_apps, update_connections_time_zone, clear_routers_cache, reset_template_engines, storages_changed, clear_serializers_cache, language_changed, localize_settings_changed, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, form_renderer_changed, auth_password_validators_changed, user_model_swapped, update_toolbar_config, reset_hashers, Options.setting_changed, Options.setting_changed, Options.setting_changed, Options.setting_changed, Options.setting_changed, Options.setting_changed, update_level_tags, clear_caches, StaticFilesStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties