INSECTICIDE RESISTANCE MANAGEMENT FROM THEORY TO PRACTICE

3.7

Integrated Vector Control

Integrated Vector Control (IVC) and Integrated Vector Management (IVM), whilst having overlapping principles, are sometimes erroneously used interchangeably.

The WHO defines IVM as “A rational decision-making process for the optimal use of resources for vector control”. IVC, on the other hand, has a more general meaning, which can perhaps best be described as taking a holistic or systems approach to reducing the burden of vector-borne disease (VBD), and is the subject of this article.


An integrated system

The use of insecticide-treated bed nets (ITNs) and indoor residual spraying (IRS) aren’t the only activities that are employed for the control of malaria mosquitoes, or which place a selection pressure on them for insecticide resistance development.

Other insecticide-based vector control activities may be employed alongside, or in place of, ITNs and IRS. For example: the use of larvicides to prevent mosquito larvae developing into adults; the use of space sprays or fogs to control adult mosquitoes; spatial repellents, which use volatile insecticides that repel or kill mosquitoes in a limited zone around the source.

Other approaches that are being developed, and show promise, include: Attractive Targeted Sugar Baits (ATSB), which provide a toxic sugar-based bait in a device that only mosquitoes can access; and eave tubes, which expose mosquitoes to an insecticide deposit when they try to enter a modified house.

One aspect of IVC is to integrate the use of such insecticide-based interventions to increase the overall impact of the programme. This may also have an IRM benefit if insecticides with different modes of action are used.


Non-insecticidal interventions

However, there are also interventions that don’t rely on insecticides that can impact mosquito numbers and their interaction with humans. For example, environmental modifications that minimise the water bodies that the larvae develop in. This could include draining or filling holes left in the ground after construction work, tyre tracks etc., careful water storage, minimising standing water in irrigated crops, or careful management of water in paddy rice.

Various house designs and modifications have also been shown to minimise the number of mosquitoes that enter. This is not meant to be an exhaustive list of activities that can reduce mosquito numbers, but are examples to show that there are other activities that can be undertaken, without necessarily increasing the selection pressure for a less insecticide-susceptible mosquito population. Where feasible, they should always be included as part of vector control programmes.


Unintentional exposure

Mosquitoes can be exposed to insecticides in situations not directly related to their control. The agricultural and horticultural use of pesticides can unintentionally expose both adult and larval mosquitoes to selection pressure. This is particularly concerning when the insecticides used in agriculture are from the same mode of action groups as those used in vector control.

An integrated approach to vector control needs to engage with those involved with agriculture to minimise the number of mosquitoes associated with it. By limiting breeding sites, and minimising the potential for exposure to the agricultural use of insecticides, the overall number of mosquitoes can be reduced and selection pressure for insecticide resistance minimised.


The wider system

Malaria vector control doesn’t occur in isolation; it is part of a wider healthcare environment. In many malaria-endemic regions, there are other vector-borne diseases present. Dengue, chikungunya, yellow fever etc., are viral diseases vectored by Aedes species mosquitoes. Both malaria and these viral diseases, and their mosquito vectors, may be present in the same location. Activities aimed at controlling malaria vectors may impact the vectors of the viral diseases, and vice versa.

An integrated approach to vector control needs to take a holistic view and consider the use of all insecticide-based interventions, to maximise the impact on the mosquito populations, and to minimise the selection pressure for reduced susceptibility in all vector species present. This may become an increasingly important consideration with the spread of Anopheles stephensi in East Africa. Anopheles stephensi is a malaria vector that is well adapted to living in urban areas in similar habitats to the Aedes vectors of viral diseases.


Stakeholder engagement

Vector control programmes are undertaken to protect people from vector-borne disease. People are therefore at the heart of the ‘system’. A programme that fails to integrate the people – individuals, families, and communities – into its design and implementation, is missing a key component of the system.

While vector control programmes are coordinated at the national, regional, provincial or district levels, we must remember that interventions are deployed at the community level. Integration of efforts, for the optimal use of resources for vector control, needs to occur at all scales.

This means optimising not only the control of the mosquito vectors today, but also minimising the selection pressure for resistance development, ensuring they can be used successfully tomorrow.

A case study is presented as additional reading in the download section, looking at integrated efforts at the community and international scales.

Authors: Chadwick Sikaala and Mark Hoppé

Downloads

DJDT

Versions

Package Name Version
Django 5.2.3
Python 3.12.11
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 Debug Toolbar 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

Time

Resource usage

Resource Value
User CPU time 11.674 msec
System CPU time 1.981 msec
Total CPU time 13.655 msec
Elapsed time 13.955 msec
Context switches 2 voluntary, 0 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

Settings from config.settings.staging

Setting Value
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 '21e92357'
CI_COMMIT_TAG ''
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 0x76f3850d74c0>}
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', 'German'), ('en', 'English'), ('fr', 'French'))
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=.*']
LINKCHECKER_MAX_RETRIES 3
LINKCHECKER_NO_FOLLOW_PATTERNS ['^https?://(?!nmc-tales-staging\\.nmc\\.unibas\\.ch/).*']
LINKCHECKER_RECURSION_LEVEL -1
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 '********************'
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': 3700, 'timeout': 3600, 'workers': 2}
REDIS_STREAM_MAX_LENGTH 1000
RELEASE_NAME ''
REQUIRE_SUPERUSER True
ROOT_URLCONF 'config.urls'
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'

Headers

Request headers

Key Value
Accept */*
Accept-Encoding gzip, br, zstd, deflate
Cookie => see Request panel
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.188
X-Forwarded-Host nmc-tales-staging.nmc.unibas.ch
X-Forwarded-Proto https

Response headers

Key Value
Content-Type text/html; charset=utf-8

WSGI environ

Since the WSGI environ inherits the environment of the server, only a significant subset is shown below.

Key Value
PATH_INFO /en/the-resistant-mosquito-43/insecticide-resistance-management-from-theory-to-practice-224/integrated-vector-control-1348
QUERY_STRING
REMOTE_ADDR 172.19.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

Request

View information

View function Arguments Keyword arguments URL name
utils.decorators.cache_per_user.<locals>.decorator.<locals>.apply_cache () {'chapter_pk': 224, 'chapter_slug': 'insecticide-resistance-management-from-theory-to-practice', 'course_pk': 43, 'course_slug': 'the-resistant-mosquito', 'pk': 1348, 'slug': 'integrated-vector-control'} tales:step

Cookies

Variable Value
'csrftoken' '********************'

No session data

No GET data

No POST data

SQL queries from 0 connections

No SQL queries were recorded during this request.

Static files (298 found, 0 used)

Static file path

  1. /app/project/static

Static file apps

  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

Static files

None

django.contrib.staticfiles.finders.FileSystemFinder (127 files)

Path Location
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
lms_base/font/nmc.woff /app/project/static/lms_base/font/nmc.woff
lms_base/font/5bb74ee4-4a67-417b-ae1a-b917bf83946f.woff2 /app/project/static/lms_base/font/5bb74ee4-4a67-417b-ae1a-b917bf83946f.woff2
lms_base/font/864f8bdc-1a42-4d28-97a5-c15513fd193b.woff2 /app/project/static/lms_base/font/864f8bdc-1a42-4d28-97a5-c15513fd193b.woff2
lms_base/font/icon-left.woff2 /app/project/static/lms_base/font/icon-left.woff2
lms_base/font/4201a9f6-3b6a-4b16-8b4d-39f514509601.woff2 /app/project/static/lms_base/font/4201a9f6-3b6a-4b16-8b4d-39f514509601.woff2
lms_base/font/nmc.woff2 /app/project/static/lms_base/font/nmc.woff2
lms_base/font/nmc.eot /app/project/static/lms_base/font/nmc.eot
lms_base/font/icon-left.woff /app/project/static/lms_base/font/icon-left.woff
lms_base/font/70b47997-f7be-4ac4-9cb3-59f94b71dbe9.woff2 /app/project/static/lms_base/font/70b47997-f7be-4ac4-9cb3-59f94b71dbe9.woff2
lms_base/font/nmc.svg /app/project/static/lms_base/font/nmc.svg
lms_base/font/631ae528-b46d-426d-953b-02e858a339eb.woff2 /app/project/static/lms_base/font/631ae528-b46d-426d-953b-02e858a339eb.woff2
lms_base/font/1417c77f-aed3-4e96-a236-a666c8eb9879.woff2 /app/project/static/lms_base/font/1417c77f-aed3-4e96-a236-a666c8eb9879.woff2
lms_base/font/icon-left.svg /app/project/static/lms_base/font/icon-left.svg
lms_base/font/c5f91eda-7bd6-4dda-920e-a8aca7f11884.woff2 /app/project/static/lms_base/font/c5f91eda-7bd6-4dda-920e-a8aca7f11884.woff2
lms_base/font/nmc.ttf /app/project/static/lms_base/font/nmc.ttf
lms_base/font/icon-left.eot /app/project/static/lms_base/font/icon-left.eot
lms_base/font/icon-left.ttf /app/project/static/lms_base/font/icon-left.ttf
lms_base/js/lms_base.js /app/project/static/lms_base/js/lms_base.js
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
lms_tales/font/nmc.woff /app/project/static/lms_tales/font/nmc.woff
lms_tales/font/icon-left.woff2 /app/project/static/lms_tales/font/icon-left.woff2
lms_tales/font/nmc.woff2 /app/project/static/lms_tales/font/nmc.woff2
lms_tales/font/nmc.eot /app/project/static/lms_tales/font/nmc.eot
lms_tales/font/icon-left.woff /app/project/static/lms_tales/font/icon-left.woff
lms_tales/font/nmc.svg /app/project/static/lms_tales/font/nmc.svg
lms_tales/font/icon-left.svg /app/project/static/lms_tales/font/icon-left.svg
lms_tales/font/nmc.ttf /app/project/static/lms_tales/font/nmc.ttf
lms_tales/font/icon-left.eot /app/project/static/lms_tales/font/icon-left.eot
lms_tales/font/icon-left.ttf /app/project/static/lms_tales/font/icon-left.ttf
lms_tales/js/lms_tales.js /app/project/static/lms_tales/js/lms_tales.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 (171 files)

Path Location
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/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/_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

Templates (0 rendered)

Template paths

None

Templates

None

Context processors

None

Cache calls from 1 backend

Summary

Total calls Total time Cache hits Cache misses
2 1.5018479898571968 ms 65 0

Commands

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

Calls

Time (ms) Type Arguments Keyword arguments Backend
0.7397 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 0x76f38433f320>
/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.7621 get ('view_cache_view_/en/the-resistant-mosquito-43/insecticide-resistance-management-from-theory-to-practice-224/integrated-vector-control-1348_anonymous', None) {} <django_redis.cache.RedisCache object at 0x76f38433f320>
/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/utils/decorators.py in apply_cache(58)
  response = cache.get(CACHE_KEY, None)

Cachalot

Database 'default'

Application Model Last invalidation
django_q Failure 3 hours, 44 minutes
lms_tales CourseMetrics 3 hours, 44 minutes
django_q Schedule 3 hours, 44 minutes
search FulltextSearchModel 17 hours, 10 minutes
reporting Report 1 week
users UserSettings 1 week, 5 days
users User 1 week, 5 days
admin LogEntry 2 months, 1 week
lms_assignment Assignment 2 months, 1 week
lms_assignment UserAssignment 2 months, 1 week
lms_assignment AssignmentFeedback 2 months, 1 week
lms_ai LLMProvider 2 months, 1 week
lms_ai LLMServiceConfig 2 months, 1 week
lms_ai LLMTask 2 months, 1 week
lms_roles CourseRole 2 months, 1 week
lms_notifications Notification 2 months, 1 week
search TrigramSearchModel 2 months, 1 week
startpage SliderItem 2 months, 1 week
startpage CategoryCourse 2 months, 1 week
tags Category 2 months, 1 week
tags Tag 2 months, 1 week
lms_static_texts StaticText 2 months, 1 week
lms_static_texts HistoricalStaticText 2 months, 1 week
lms_comments Comment 2 months, 1 week
lms_comments Reply 2 months, 1 week
lms_comments Reaction 2 months, 1 week
lms_comments Flag 2 months, 1 week
lms_tales TalesStep 2 months, 1 week
lms_tales TalesStepFileNew 2 months, 1 week
lms_tales TalesStepFile 2 months, 1 week
lms_tales TalesCourseFile 2 months, 1 week
lms_tales TalesChapter 2 months, 1 week
lms_tales TalesCourse 2 months, 1 week
lms_tales TalesAuthor 2 months, 1 week
lms_tales TalesPartner 2 months, 1 week
lms_tales TalesPath 2 months, 1 week
lms_tales TalesPathStep 2 months, 1 week
lms_tales TalesCourseRun 2 months, 1 week
lms_tales TalesCourseRunStep 2 months, 1 week
lms_tales ScheduledMessage 2 months, 1 week
lms_tales HistoricalTalesStep 2 months, 1 week
lms_tales HistoricalTalesStepFile 2 months, 1 week
lms_tales HistoricalTalesChapter 2 months, 1 week
lms_tales HistoricalTalesCourse 2 months, 1 week
lms_tales HistoricalTalesPath 2 months, 1 week
auth Permission 2 months, 1 week
auth Group 2 months, 1 week
contenttypes ContentType 2 months, 1 week
sessions Session 2 months, 1 week
sites Site 2 months, 1 week
flatpages FlatPage 2 months, 1 week
redirects Redirect 2 months, 1 week
account EmailAddress 2 months, 1 week
account EmailConfirmation 2 months, 1 week
socialaccount SocialApp 2 months, 1 week
socialaccount SocialAccount 2 months, 1 week
socialaccount SocialToken 2 months, 1 week
waffle Flag 2 months, 1 week
waffle Switch 2 months, 1 week
waffle Sample 2 months, 1 week
tos TermsOfService 2 months, 1 week
tos UserAgreement 2 months, 1 week
impersonate ImpersonationLog 2 months, 1 week
django_q OrmQ 2 months, 1 week

Signals

Signal Receivers
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